Description of problem:
crash because of incorrect backport of vlan_group_set_device() function:
implementation in compat headers do not checks first argument.
Parallels/OpenVZ support team got bugreport with screenshot that shows oops in e1000_vlan_rx_kill_vid() in e1000e driver.
I've processed it and found following:
kernel was crashed inside
because of adapter->vlgrp was NULL.
IMHO it's possible for example when e1000_vlan_rx_kill_vid() is called from
e1000_close() or from e1000_vlan_rx_register()
It happens because of backport of vlan_group_set_device() function does not check first argument.
Similar issue exists at least in igb driver too, when igb_vlan_rx_kill_vid() is called from igb_close() or from igb_vlan_rx_register()
Unfortunately I cannot provide clear error messages: I have only partially saved messages on screenshot. Also I was unable to reproduce issue locally.
On the other hand according to reporter it's reproducible issue. We're trying to get full oops messages and reproducer from him, and will update this bug when we'll got it.
IMHO issue exists in2.6.18-194.el5 and .198.el5 RHEL5 kernels
Thanks, Vasily. We have plans to remove all of the *compat.h files in the network driver tree during this update cycle, so I hope to have all of these issues fixed in RHEL5.6.
*** This bug has been marked as a duplicate of bug 546740 ***