I found that 9pnet_virtio.ko could not be removed by rmmod command, and I
could still found it by lsmod. The reason is that we forgot decrease the
refcount of 9p virtio device by kobject_put. So we should put refcount in
p9_virtio_remove.

Signed-off-by: Jun Piao <piao...@huawei.com>
---
 net/9p/trans_virtio.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c
index 46a5ab2..a00e992 100644
--- a/net/9p/trans_virtio.c
+++ b/net/9p/trans_virtio.c
@@ -710,7 +710,8 @@ static void p9_virtio_remove(struct virtio_device *vdev)
        vdev->config->del_vqs(vdev);

        sysfs_remove_file(&(vdev->dev.kobj), &dev_attr_mount_tag.attr);
-       kobject_uevent(&(vdev->dev.kobj), KOBJ_CHANGE);
+       kobject_uevent(&(vdev->dev.kobj), KOBJ_REMOVE);
+       kobject_put(&(vdev->dev.kobj));
        kfree(chan->tag);
        kfree(chan->vc_wq);
        kfree(chan);
-- 

Reply via email to