Hi Michael, >> Fix panic in virtio.c when CONFIG_DEBUG_SLAB is set. > > What's the root cause of the panic? I believe the cause of the panic is calling ida_simple_remove(&virtio_index_ida, dev->index); when the dev structure is "poisoned" after kfree. It might be the "BUG_ON((int)id < 0)" that bites... >> Use device_del() and put_device() instead of >> device_unregister(), and access device data before >> calling put_device(). > Why does this help? Does device_unregister free the > device so dev->index access crashes? Yes, if device ref-count is one when calling unregister the device is freed. > If yes virtio_pci_remove will crash too > as it accesses the device after the > call to unregister_virtio_device so the > fix won't be effective. I discovered this using the remoteproc framework. It might be that device is unregistered with ref-count greater than one normally, in that case this bug will not show up. Regards, Sjur _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization