Subject: Re: [PATCH net RESEND] vlan: don't allow to add VLAN on VLAN device

From: John Fastabend <[email-masked]>
Date: Thu, 27 Feb 2014 19:45:59 -0800

On 2/27/2014 6:43 PM, Ding Tianhong wrote:
> I run these steps:
>
> modprobe 8021q
> vconfig add eth2 20
> vconfig add eth2.20 20
> ifconfig eth2 xx.xx.xx.xx
>
> then the Call Trace happened:
>

[...]

> ========================================================================
>
> The reason is that if add vlan on vlan dev, the vlan dev will create vlan_info,
> then the notification will let the real dev to run dev_set_rx_mode() and hold
> netif_addr_lock, and then the real dev will call ndo_set_rx_mode(), if the real
> dev is vlan dev, the ndo_set_rx_mode() will hold netif_addr_lock again, so deadlock
> happened.
>
> Don't allow to add vlan on vlan dev to fix this problem.
>
> Signed-off-by: Ding Tianhong <[email-masked]>
> ---

I'm not sure we can just disable stacked vlans. There might be something
using them today and they have worked in the past. Lets try to find a
better fix.

.John