aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorFlorian Fainelli <florian@openwrt.org>2013-01-21 04:58:51 -0500
committerDavid S. Miller <davem@davemloft.net>2013-01-21 15:40:12 -0500
commitf9bf5a2ca6cc331f32e3dd9cf16ced7215d0e6e8 (patch)
tree774573c6a730967410a51e954577424be0977fe6 /net
parentf490be049ba0a3b194bed3a0dfbdcab1ef0ae063 (diff)
dsa: make dsa_switch_setup check for valid port names
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>
Diffstat (limited to 'net')
-rw-r--r--net/dsa/dsa.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
index 45295ca09571..2bc62ea857c8 100644
--- a/net/dsa/dsa.c
+++ b/net/dsa/dsa.c
@@ -80,6 +80,7 @@ dsa_switch_setup(struct dsa_switch_tree *dst, int index,
80 int ret; 80 int ret;
81 char *name; 81 char *name;
82 int i; 82 int i;
83 bool valid_name_found = false;
83 84
84 /* 85 /*
85 * Probe for switch model. 86 * Probe for switch model.
@@ -131,8 +132,13 @@ dsa_switch_setup(struct dsa_switch_tree *dst, int index,
131 } else { 132 } else {
132 ds->phys_port_mask |= 1 << i; 133 ds->phys_port_mask |= 1 << i;
133 } 134 }
135 valid_name_found = true;
134 } 136 }
135 137
138 if (!valid_name_found && i == DSA_MAX_PORTS) {
139 ret = -EINVAL;
140 goto out;
141 }
136 142
137 /* 143 /*
138 * If the CPU connects to this switch, set the switch tree 144 * If the CPU connects to this switch, set the switch tree