bcm63xx: Don't hardcode the switch ethernet interface in preinit.
authorDaniel Dickinson <crazycshore@gmail.com>
Sun, 28 Nov 2010 22:04:26 +0000 (22:04 +0000)
committerDaniel Dickinson <crazycshore@gmail.com>
Sun, 28 Nov 2010 22:04:26 +0000 (22:04 +0000)
Currently eth1 is hardcoded as the expected interface switches in diagmode.
This patch replaces the eth1 with the ifname, and also directly tests if
the interface specified by ifname has a switch attached.

Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com>
SVN-Revision: 24186

target/linux/brcm63xx/base-files/lib/preinit/05_failsafe_config_switch_brcm63xx
target/linux/brcm63xx/base-files/lib/preinit/15_set_preinit_interface_brcm63xx

index b9be96e..43da8cc 100644 (file)
@@ -1,9 +1,9 @@
 #!/bin/sh
 
 failsafe_ip() {
-       [ -d /proc/switch/eth1 ] && [ "$ifname" = "eth1" ] && {
-               ifconfig eth1 0.0.0.0 down
-               echo "0 1 2 3 4 ${cpu_port:-5u*}" > /proc/switch/eth1/vlan/0/ports
+       [ -d "/proc/switch/$ifname" ] && {
+               ifconfig "$ifname" 0.0.0.0 down
+               echo "0 1 2 3 4 ${cpu_port:-5u*}" > "/proc/switch/$ifname/vlan/0/ports"
        }
        
        [ -n "$pi_ifname" ] && grep -q "$pi_ifname" /proc/net/dev && {
index 6c7a8a8..9d366fa 100644 (file)
@@ -16,9 +16,9 @@ preinit_ip_deconfig() {
                        ifconfig $pi_ifname 0.0.0.0 down
                }
        fi
-       [ -d /proc/switch/eth1 ] && [ "$ifname" = "eth1" ] && {
-               echo 1 >/proc/switch/eth1/reset
-               echo "0 1 2 3 4 ${cpu_port:-5u*}" > /proc/switch/eth1/vlan/0/ports
+       [ -d "/proc/switch/$ifname" ] && {
+               echo 1 > "/proc/switch/$ifname/reset"
+               echo "0 1 2 3 4 ${cpu_port:-5u*}" > "/proc/switch/$ifname/vlan/0/ports"
        }
 
 }
@@ -26,17 +26,17 @@ preinit_ip_deconfig() {
 preinit_net_echo() {
        preinit_ip
        
-       [ -d /proc/switch/eth1 ] && [ "$ifname" = "eth1" ] && {
-               echo 1 >/proc/switch/eth1/reset
+       [ -d "/proc/switch/$ifname" ] && {
+               echo 1 > "/proc/switch/$ifname/reset"
 
                # this would be easier if we blasted the message across all ports
                # but we don't want packets leaking across interfaces
                for port in $(seq 0 4); do {
-                       echo "$port ${cpu_port:-5u*}" > /proc/switch/eth1/vlan/0/ports
+                       echo "$port ${cpu_port:-5u*}" > "/proc/switch/$ifname/vlan/0/ports"
                        port_net_echo $1
                }; done
                
-               echo "0 ${cpu_port:-5u*}" > /proc/switch/eth1/vlan/0/ports
+               echo "0 ${cpu_port:-5u*}" > "/proc/switch/$ifname/vlan/0/ports"
                
        } || port_net_echo $1
 }