Ethernet Products
Intel® Ethernet products and technologies
3894 Discussions

kernel panic when I remove vlan on 82576 which enslaved by bond

Community Manager

Hi, all


A kernel panic occurred when I do some operation about vlan.

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:


[] panic_event+0x49/0x70 [ipmi_msghandler]


[] notifier_call_chain+0x37/0x70


[] panic+0xa2/0x195


[] oops_end+0xd8/0x140


[] no_context+0xf7/0x280


[] __bad_area_nosemaphore+0x175/0x250


[] page_fault+0x28/0x30


[] igb_vlan_rx_kill_vid+0x4d/0x100 [igb]


[] bond_vlan_rx_kill_vid+0x9f/0x290 [bonding]


[] unregister_vlan_dev+0x136/0x180 [8021q]


[] vlan_ioctl_handler+0x170/0x3f0 [8021q]


[] sock_ioctl+0x21f/0x280


[] vfs_ioctl+0x2f/0xb0


[] do_vfs_ioctl+0x3cb/0x5a0


[] sys_ioctl+0xa1/0xb0


[] 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

# lspci | grep Eth


01:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)

kernel version: also happen in 2.6.32-131

I had tried the same operation on other nics, like tg3,bnx2. But they haven't panic.


So I find the reason is that igb have two more netdev_ops (ndo_vlan_rx_add_vid and ndo_vlan_rx_kill_vid) than tg3 and bnx2.


I think the reason of panic is that when ndo_vlan_rx_kill_vid has been called, the vlgrp haven't been correctly find.

My question is what the purpose of "vlan_group_set_device(adapter->vlgrp, vid, NULL);" in method igb_vlan_rx_kill_vid?

unregister_vlan_dev(vlan.c) has done the same thing after ops->ndo_vlan_rx_kill_vid was called.

If I delete it , Would it cause somthing bad?

0 Kudos
5 Replies

You should try the latest igb driver, v3.2.10 to make sure this issue hasn't already been fixed:

Sorry, I don't know enough about this code to help you with your question.

Mark H

Community Manager

thanks for your response

I had tried the lastest igb driver v3.2.10, but it also didn't work.

Community Manager

There were some changes in this area of the driver made recently. The latest version of the driver has this line of code removed as sometimes the vlgrp is not defined at the time of the execution of this function. Try removing it and let me know if it fixes teh probelm.

Community Manager

I had removed it and did some test.

It resolve my problem and seems that nothing wrong has happened.

My question is

what the purpose of "vlan_group_set_device(adapter->vlgrp, vid, NULL);" in method igb_vlan_rx_kill_vid?

Because I didn't kown why it exsits, I couldn't delete it with confidence..........

Community Manager

Sorry for the delay in responding. The code you ask about was assigning a vlan id, but it requires a vlan group. The operating system has changed and now this function can be called before a vlan group is assigned, so the code was removed. It can be removed safely.