Community
cancel
Showing results for 
Search instead for 
Did you mean: 
idata
Community Manager
2,280 Views

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

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:

 

2.6.32.12-0.7 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
Mark_H_Intel
Employee
42 Views

You should try the latest igb driver, v3.2.10 to make sure this issue hasn't already been fixed: http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=13663 http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=13663.

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

Mark H

idata
Community Manager
42 Views

thanks for your response

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

idata
Community Manager
42 Views

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.

idata
Community Manager
42 Views

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..........

idata
Community Manager
42 Views

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.