From 520c22046fe9a6f6d5aa053699b978cd78223951 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 20 Feb 2010 13:18:34 +0000 Subject: [PATCH] [br2684] allow routed mode operation again Fix part of bug #6709. SVN-Revision: 19779 --- .../busybox/patches/250-ash_export-n.patch | 4 +- package/busybox/patches/510-awk_include.patch | 8 ++-- .../640-br2684_backport_routed.patch | 42 +++++++++++++++++++ .../640-br2684_backport_routed.patch | 42 +++++++++++++++++++ .../640-br2684_backport_routed.patch | 42 +++++++++++++++++++ 5 files changed, 132 insertions(+), 6 deletions(-) create mode 100644 target/linux/generic-2.6/patches-2.6.30/640-br2684_backport_routed.patch create mode 100644 target/linux/generic-2.6/patches-2.6.31/640-br2684_backport_routed.patch create mode 100644 target/linux/generic-2.6/patches-2.6.32/640-br2684_backport_routed.patch diff --git a/package/busybox/patches/250-ash_export-n.patch b/package/busybox/patches/250-ash_export-n.patch index 6a420e221f..92b198ce57 100644 --- a/package/busybox/patches/250-ash_export-n.patch +++ b/package/busybox/patches/250-ash_export-n.patch @@ -1,6 +1,6 @@ --- a/shell/ash.c +++ b/shell/ash.c -@@ -12360,8 +12360,17 @@ exportcmd(int argc UNUSED_PARAM, char ** +@@ -12351,8 +12351,17 @@ exportcmd(int argc UNUSED_PARAM, char ** const char *p; char **aptr; int flag = argv[0][0] == 'r' ? VREADONLY : VEXPORT; @@ -19,7 +19,7 @@ aptr = argptr; name = *aptr; if (name) { -@@ -12373,10 +12382,12 @@ exportcmd(int argc UNUSED_PARAM, char ** +@@ -12364,10 +12373,12 @@ exportcmd(int argc UNUSED_PARAM, char ** vp = *findvar(hashvar(name), name); if (vp) { vp->flags |= flag; diff --git a/package/busybox/patches/510-awk_include.patch b/package/busybox/patches/510-awk_include.patch index 50f6cc549a..b9d7d7137e 100644 --- a/package/busybox/patches/510-awk_include.patch +++ b/package/busybox/patches/510-awk_include.patch @@ -34,7 +34,7 @@ chain_group(); clear_array(ahash); -@@ -2408,7 +2414,8 @@ static var *evaluate(node *op, var *res) +@@ -2410,7 +2416,8 @@ static var *evaluate(node *op, var *res) break; case XC( OC_FUNC ): @@ -44,7 +44,7 @@ syntax_error(EMSG_UNDEF_FUNC); X.v = R.v = nvalloc(op->r.f->nargs+1); -@@ -2425,7 +2432,10 @@ static var *evaluate(node *op, var *res) +@@ -2427,7 +2434,10 @@ static var *evaluate(node *op, var *res) fnargs = X.v; L.s = g_progname; @@ -56,7 +56,7 @@ g_progname = L.s; nvfree(fnargs); -@@ -2788,6 +2798,143 @@ static rstream *next_input_file(void) +@@ -2790,6 +2800,143 @@ static rstream *next_input_file(void) #undef files_happen } @@ -200,7 +200,7 @@ int awk_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int awk_main(int argc, char **argv) { -@@ -2853,6 +3000,9 @@ int awk_main(int argc, char **argv) +@@ -2855,6 +3002,9 @@ int awk_main(int argc, char **argv) *s1 = '='; } } diff --git a/target/linux/generic-2.6/patches-2.6.30/640-br2684_backport_routed.patch b/target/linux/generic-2.6/patches-2.6.30/640-br2684_backport_routed.patch new file mode 100644 index 0000000000..d925144fa9 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.30/640-br2684_backport_routed.patch @@ -0,0 +1,42 @@ +commit 2e302ebfeac04beb5a5d6af1ac583c6a1fb76d1a +Author: chas williams - CONTRACTOR +Date: Fri Dec 4 11:06:32 2009 +0000 + + atm: [br2684] allow routed mode operation again + + in routed mode, we don't have a hardware address so netdev_ops doesnt + need to validate our hardware address via .ndo_validate_addr + + Reported-by: Manuel Fuentes + Signed-off-by: Chas Williams - CONTRACTOR + Signed-off-by: David S. Miller + +--- a/net/atm/br2684.c ++++ b/net/atm/br2684.c +@@ -544,6 +544,12 @@ static const struct net_device_ops br268 + .ndo_validate_addr = eth_validate_addr, + }; + ++static const struct net_device_ops br2684_netdev_ops_routed = { ++ .ndo_start_xmit = br2684_start_xmit, ++ .ndo_set_mac_address = br2684_mac_addr, ++ .ndo_change_mtu = eth_change_mtu ++}; ++ + static void br2684_setup(struct net_device *netdev) + { + struct br2684_dev *brdev = BRPRIV(netdev); +@@ -559,11 +565,10 @@ static void br2684_setup(struct net_devi + static void br2684_setup_routed(struct net_device *netdev) + { + struct br2684_dev *brdev = BRPRIV(netdev); +- brdev->net_dev = netdev; + ++ brdev->net_dev = netdev; + netdev->hard_header_len = 0; +- +- netdev->netdev_ops = &br2684_netdev_ops; ++ netdev->netdev_ops = &br2684_netdev_ops_routed; + netdev->addr_len = 0; + netdev->mtu = 1500; + netdev->type = ARPHRD_PPP; diff --git a/target/linux/generic-2.6/patches-2.6.31/640-br2684_backport_routed.patch b/target/linux/generic-2.6/patches-2.6.31/640-br2684_backport_routed.patch new file mode 100644 index 0000000000..1623e7f9b5 --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.31/640-br2684_backport_routed.patch @@ -0,0 +1,42 @@ +commit 2e302ebfeac04beb5a5d6af1ac583c6a1fb76d1a +Author: chas williams - CONTRACTOR +Date: Fri Dec 4 11:06:32 2009 +0000 + + atm: [br2684] allow routed mode operation again + + in routed mode, we don't have a hardware address so netdev_ops doesnt + need to validate our hardware address via .ndo_validate_addr + + Reported-by: Manuel Fuentes + Signed-off-by: Chas Williams - CONTRACTOR + Signed-off-by: David S. Miller + +--- a/net/atm/br2684.c ++++ b/net/atm/br2684.c +@@ -536,6 +536,12 @@ static const struct net_device_ops br268 + .ndo_validate_addr = eth_validate_addr, + }; + ++static const struct net_device_ops br2684_netdev_ops_routed = { ++ .ndo_start_xmit = br2684_start_xmit, ++ .ndo_set_mac_address = br2684_mac_addr, ++ .ndo_change_mtu = eth_change_mtu ++}; ++ + static void br2684_setup(struct net_device *netdev) + { + struct br2684_dev *brdev = BRPRIV(netdev); +@@ -551,11 +557,10 @@ static void br2684_setup(struct net_devi + static void br2684_setup_routed(struct net_device *netdev) + { + struct br2684_dev *brdev = BRPRIV(netdev); +- brdev->net_dev = netdev; + ++ brdev->net_dev = netdev; + netdev->hard_header_len = 0; +- +- netdev->netdev_ops = &br2684_netdev_ops; ++ netdev->netdev_ops = &br2684_netdev_ops_routed; + netdev->addr_len = 0; + netdev->mtu = 1500; + netdev->type = ARPHRD_PPP; diff --git a/target/linux/generic-2.6/patches-2.6.32/640-br2684_backport_routed.patch b/target/linux/generic-2.6/patches-2.6.32/640-br2684_backport_routed.patch new file mode 100644 index 0000000000..28dd74dd7c --- /dev/null +++ b/target/linux/generic-2.6/patches-2.6.32/640-br2684_backport_routed.patch @@ -0,0 +1,42 @@ +commit 2e302ebfeac04beb5a5d6af1ac583c6a1fb76d1a +Author: chas williams - CONTRACTOR +Date: Fri Dec 4 11:06:32 2009 +0000 + + atm: [br2684] allow routed mode operation again + + in routed mode, we don't have a hardware address so netdev_ops doesnt + need to validate our hardware address via .ndo_validate_addr + + Reported-by: Manuel Fuentes + Signed-off-by: Chas Williams - CONTRACTOR + Signed-off-by: David S. Miller + +--- a/net/atm/br2684.c ++++ b/net/atm/br2684.c +@@ -554,6 +554,12 @@ static const struct net_device_ops br268 + .ndo_validate_addr = eth_validate_addr, + }; + ++static const struct net_device_ops br2684_netdev_ops_routed = { ++ .ndo_start_xmit = br2684_start_xmit, ++ .ndo_set_mac_address = br2684_mac_addr, ++ .ndo_change_mtu = eth_change_mtu ++}; ++ + static void br2684_setup(struct net_device *netdev) + { + struct br2684_dev *brdev = BRPRIV(netdev); +@@ -569,11 +575,10 @@ static void br2684_setup(struct net_devi + static void br2684_setup_routed(struct net_device *netdev) + { + struct br2684_dev *brdev = BRPRIV(netdev); +- brdev->net_dev = netdev; + ++ brdev->net_dev = netdev; + netdev->hard_header_len = 0; +- +- netdev->netdev_ops = &br2684_netdev_ops; ++ netdev->netdev_ops = &br2684_netdev_ops_routed; + netdev->addr_len = 0; + netdev->mtu = 1500; + netdev->type = ARPHRD_PPP; -- 2.30.2