Re: [PATCH 15/15] vfio/mdev: remove an extra parent kobject reference

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 06, 2022 at 09:42:19AM +0200, Christoph Hellwig wrote:
> The mdev_type already holds a reference to the parent through
> mdev_types_kset, so drop the extra reference.

I would drop this patch, but at least the explanation needs tweaking..

kobj's are weird things, they have a kobj.parent, but the refcount for
that is dropped during kobject_del() and parent is NULL'd. vs this
reference which is being put back at kobject release.

So, the extra kset reference isn't contributing more protection - when
mdev_unregister_device() calls kset_unregister() it still has a valid
reference on the parent from the caller.

If this change is safe it is because no accesses to mdev->parent are
happening after mdev_unregister_device() returns, due to things like
the sysfs attribute fencing and the mdev_unreg_sem fencing child
devices. I didn't check everything, but it seems believable it could
be true.

I also suggest this patch should NULL mdev_type->parent during
unregister_device as the kobj stuff does, so any use after unregister
but before release could be crash, we generally shouldn't leave
unref'd pointers floating around.

Jason



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Kernel Development]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Info]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Linux Media]     [Device Mapper]

  Powered by Linux