On Wed, Sep 03, 2014 at 06:45:56AM +0000, Gonglei (Arei) wrote: [...] > > > 4. When we hotplug the virtio-net-pci device, only pass virtio-net-pci's > > > pointer > > to > > > del_boot_device_path(). But virtio-net-pci != virtio-net-device, so I add > > > a > > function > > > named is_same_fw_dev_path() to handle this situation. > > > > When hot-unplugging virtio-net-pci I'd expect we free both > > virtio-net-pci and virtio-net-device (and therefore call > > del_boot_device_path twice, once for each device). Can you check that? > > > Yes, I can. > > The del_boot_device_path() is called only once, just for virtio-net-pci. > For its child, virtio-net-devcie's resource is cleaned by qbus->child > unrealizing > process, will not call device_finalize().
Then we need to fix this to make sure there's a corresponding del_boot_device_path() call (with the same pointer) to every add_boot_device_path() call, instead of adding a hack to del_boot_device_path(). -- Eduardo