diff options
| -rw-r--r-- | net/dsa/dsa2.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c index adf50fbc4c13..47725250b4ca 100644 --- a/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c | |||
| @@ -258,11 +258,13 @@ static void dsa_tree_teardown_default_cpu(struct dsa_switch_tree *dst) | |||
| 258 | static int dsa_port_setup(struct dsa_port *dp) | 258 | static int dsa_port_setup(struct dsa_port *dp) |
| 259 | { | 259 | { |
| 260 | struct dsa_switch *ds = dp->ds; | 260 | struct dsa_switch *ds = dp->ds; |
| 261 | int err; | 261 | int err = 0; |
| 262 | 262 | ||
| 263 | memset(&dp->devlink_port, 0, sizeof(dp->devlink_port)); | 263 | memset(&dp->devlink_port, 0, sizeof(dp->devlink_port)); |
| 264 | 264 | ||
| 265 | err = devlink_port_register(ds->devlink, &dp->devlink_port, dp->index); | 265 | if (dp->type != DSA_PORT_TYPE_UNUSED) |
| 266 | err = devlink_port_register(ds->devlink, &dp->devlink_port, | ||
| 267 | dp->index); | ||
| 266 | if (err) | 268 | if (err) |
| 267 | return err; | 269 | return err; |
| 268 | 270 | ||
| @@ -293,7 +295,8 @@ static int dsa_port_setup(struct dsa_port *dp) | |||
| 293 | 295 | ||
| 294 | static void dsa_port_teardown(struct dsa_port *dp) | 296 | static void dsa_port_teardown(struct dsa_port *dp) |
| 295 | { | 297 | { |
| 296 | devlink_port_unregister(&dp->devlink_port); | 298 | if (dp->type != DSA_PORT_TYPE_UNUSED) |
| 299 | devlink_port_unregister(&dp->devlink_port); | ||
| 297 | 300 | ||
| 298 | switch (dp->type) { | 301 | switch (dp->type) { |
| 299 | case DSA_PORT_TYPE_UNUSED: | 302 | case DSA_PORT_TYPE_UNUSED: |
