- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
thanks for your response
I had tried the lastest igb driver v3.2.10, but it also didn't work.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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..........
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page