> + case NETDEV_GOING_DOWN: {
> + struct dsa_port *dp, *cpu_dp;
> + struct dsa_switch_tree *dst;
> + int err = 0;
> +
> + if (!netdev_uses_dsa(dev))
> + return NOTIFY_DONE;
> +
> + cpu_dp = dev->dsa_ptr;
> + dst = cpu_dp->ds->dst;
> +
> + list_for_each_entry(dp, &dst->ports, list) {
> + if (!dsa_is_user_port(dp->ds, dp->index)) {
!dsa_is_user_port() ??
That ! seems odd.
> + struct net_device *slave = dp->slave;
> +
> + if (!(slave->flags & IFF_UP))
> + continue;
> +
> + err = dev_change_flags(slave,
> + slave->flags & ~IFF_UP,
> + NULL);
Andrew