dsa: make dsa_switch_setup check for valid port names
authorFlorian Fainelli <florian@openwrt.org>
Mon, 21 Jan 2013 09:58:51 +0000 (09:58 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 21 Jan 2013 20:40:12 +0000 (15:40 -0500)
This patch changes dsa_switch_setup() to ensure that at least one valid
valid port name is specified and will bail out with an error in case we
walked the maximum number of port with a valid port name found.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/dsa.c

index 45295ca095717314294e1be8172a6e852fe1a679..2bc62ea857c8b6842c27ed9d6ee12b564fb2d1e6 100644 (file)
@@ -80,6 +80,7 @@ dsa_switch_setup(struct dsa_switch_tree *dst, int index,
        int ret;
        char *name;
        int i;
+       bool valid_name_found = false;
 
        /*
         * Probe for switch model.
@@ -131,8 +132,13 @@ dsa_switch_setup(struct dsa_switch_tree *dst, int index,
                } else {
                        ds->phys_port_mask |= 1 << i;
                }
+               valid_name_found = true;
        }
 
+       if (!valid_name_found && i == DSA_MAX_PORTS) {
+               ret = -EINVAL;
+               goto out;
+       }
 
        /*
         * If the CPU connects to this switch, set the switch tree