>] local_pci_probe+0x5c/0xd0 [] pci_device_probe+0x109/0x130 [] driver_probe_device+0x9c/0x2b0 [] __driver_attach+0xab/0xb0 [] ? driver_probe_device+0x2b0/0x2b0 [] ? driver_probe_device+0x2b0/0x2b0 [] bus_for_each_dev+0x5c/0x90 [] driver_attach+0x1e/0x20 [] bus_add_driver+0x1b0/0x2a0 [] ? 0xffffffffa0187fff [] driver_register+0x76/0x140 [] ? printk+0x51/0x53 [] ? 0xffffffffa0187fff [] __pci_register_driver+0x56/0xd0 [] vmxnet3_init_module+0x3a/0x3c [vmxnet3] [] do_one_initcall+0x42/0x180 [] sys_init_module+0x91/0x200 [] system_call_fastpath+0x16/0x1b ---[ end trace 44593438a59a9558 ]--- Using INTx interrupt, #Rx queues: 1. It occurs when populate_msi_sysfs fails, which in turn causes free_msi_irqs to be called. Because populate_msi_sysfs fails, we never registered any of the msi irq sysfs objects, but free_msi_irqs still calls kobject_del and kobject_put on each of them, which gets flagged in the above stack trace. The fix is pretty straightforward. We can key of the parent pointer in the kobject. It is only set if the kobject_init_and_add succededs in populate_msi_sysfs. If anything fails there, each kobject has its parent reset to NULL Signed-off-by: Neil Horman CC: Bjorn Helgaas CC: Greg Kroah-Hartman CC: linux-pci@vger.kernel.org Signed-off-by: Jesse Barnes