netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Weiping Pan <wpan@redhat.com>
To: "Nicolas de Pesloüan" <nicolas.2p.debian@gmail.com>
Cc: "Patrick McHardy (maintainer:VLAN (802.1Q))" <kaber@trash.net>,
	"\"David S. Miller\" (maintainer:NETWORKING [GENERAL])"
	<davem@davemloft.net>,
	"open list:VLAN (802.1Q)" <netdev@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH V2] vlan:return error when real dev is enslaved
Date: Wed, 16 Nov 2011 15:16:40 +0800	[thread overview]
Message-ID: <4EC36358.3030905@redhat.com> (raw)
In-Reply-To: <4EC2BB48.2070802@gmail.com>

On 11/16/2011 03:19 AM, Nicolas de Pesloüan wrote:
> Le 15/11/2011 13:44, Weiping Pan a écrit :
>> Qinhuibin reported a kernel panic when he do some operation about vlan.
>> https://lkml.org/lkml/2011/11/6/218
>>
>> The operation is as below:
>> ifconfig eth2 up
>> modprobe bonding
>> modprobe 8021q
>> ifconfig bond0 up
>> ifenslave bond0 eth2
>> vconfig add eth2 3300
>> vconfig add bond0 33
>> vconfig rem eth2.3300
>>
>> the panic stack is as below:
>> [<ffffffffa002f1c9>] panic_event+0x49/0x70 [ipmi_msghandler]
>> [<ffffffff80378917>] notifier_call_chain+0x37/0x70
>> [<ffffffff80372122>] panic+0xa2/0x195
>> [<ffffffff80376ed8>] oops_end+0xd8/0x140
>> [<ffffffff8001bea7>] no_context+0xf7/0x280
>> [<ffffffff8001c1a5>] __bad_area_nosemaphore+0x175/0x250
>> [<ffffffff80376318>] page_fault+0x28/0x30
>> [<ffffffffa039dabd>] igb_vlan_rx_kill_vid+0x4d/0x100 [igb]
>> [<ffffffffa044045f>] bond_vlan_rx_kill_vid+0x9f/0x290 [bonding]
>> [<ffffffffa047e636>] unregister_vlan_dev+0x136/0x180 [8021q]
>> [<ffffffffa047ed20>] vlan_ioctl_handler+0x170/0x3f0 [8021q]
>> [<ffffffff802c1d3f>] sock_ioctl+0x21f/0x280
>> [<ffffffff800e6d7f>] vfs_ioctl+0x2f/0xb0
>> [<ffffffff800e726b>] do_vfs_ioctl+0x3cb/0x5a0
>> [<ffffffff800e74e1>] sys_ioctl+0xa1/0xb0
>> [<ffffffff80007388>] system_call_fastpath+0x16/0x1b
>> [<00007f108a2b8bd7>] 0x7f108a2b8bd7
>> And the nic is as below:
>> [root@localhost ~]# ethtool -i eth2
>> driver: igb
>> version: 3.0.6-k2
>> firmware-version: 1.2-1
>> bus-info: 0000:04:00.0
>> kernel version:
>> 2.6.32.12-0.7 also happen in 2.6.32-131
>>
>> For kernel 2.6.32, the reason of this bug is that when we do "vconfig 
>> add bond0 33",
>> adapter->vlgrp is overwritten in igb_vlan_rx_register. So when we do 
>> "vconfig rem
>> eth2.3300", it can't find the correct vlgrp.
>>
>> And this bug is avoided by vlan cleanup patchset from Jiri Pirko
>> <jpirko@redhat.com>, especially commit b2cb09b1a772(igb: do vlan 
>> cleanup).
>>
>> But it is not a correct operation to creat a vlan interface on eth2
>> when it have been enslaved by bond0, so this patch is to return error
>> when the real dev is already enslaved.
>
> Why isn't this setup correct?
>
> Compare to bridge, where ebtables allow for some sort of sharing of 
> the physical interface between bridge and vlan.
>
> I think bonding should behave the same way instead of denying this setup.
>
>     Nicolas.
>
Hi, Nicolas,

After some investigation I agree with you that this setup is correct,
since we can  "switchport trunk allowed vlan 2-3" on the switch.

I can confirm that both bonding and bridge support this kind of setup.

bond0.2                                        br0.2
       |                                                |
   eth0 ----- eth0.3                          eth0 -----eth0.3

Both works fine(git commit 06236ac3726f1),  so please discard this patch.

thanks
Weiping Pan

      reply	other threads:[~2011-11-16  7:16 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-15  8:36 [PATCH] vlan:return error when real dev is enslaved Weiping Pan
2011-11-15  8:46 ` Américo Wang
2011-11-15 12:44   ` [PATCH V2] " Weiping Pan
2011-11-15 17:34     ` Ben Hutchings
2011-11-15 19:19     ` Nicolas de Pesloüan
2011-11-16  7:16       ` Weiping Pan [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EC36358.3030905@redhat.com \
    --to=wpan@redhat.com \
    --cc=davem@davemloft.net \
    --cc=kaber@trash.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nicolas.2p.debian@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).