RE: [PATCH v1 2/5] mdev: Make mdev alias unique among all mdevs
> -Original Message- > From: Alex Williamson > Sent: Thursday, August 29, 2019 3:07 AM > To: Parav Pandit > Cc: Jiri Pirko ; kwankh...@nvidia.com; > coh...@redhat.com; da...@davemloft.net; k...@vger.kernel.org; linux- > ker...@vger.kernel.org; net...@vger.kernel.org > Subject: Re: [PATCH v1 2/5] mdev: Make mdev alias unique among all mdevs > > On Tue, 27 Aug 2019 14:16:51 -0500 > Parav Pandit wrote: > > > Mdev alias should be unique among all the mdevs, so that when such > > alias is used by the mdev users to derive other objects, there is no > > collision in a given system. > > > > Signed-off-by: Parav Pandit > > > > --- > > Changelog: > > v0->v1: > > - Fixed inclusiong of alias for NULL check > > - Added ratelimited debug print for sha1 hash collision error > > --- > > drivers/vfio/mdev/mdev_core.c | 7 +++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/drivers/vfio/mdev/mdev_core.c > > b/drivers/vfio/mdev/mdev_core.c index 62d29f57fe0c..4b9899e40665 > > 100644 > > --- a/drivers/vfio/mdev/mdev_core.c > > +++ b/drivers/vfio/mdev/mdev_core.c > > @@ -375,6 +375,13 @@ int mdev_device_create(struct kobject *kobj, struct > device *dev, > > ret = -EEXIST; > > goto mdev_fail; > > } > > + if (tmp->alias && alias && strcmp(tmp->alias, alias) == 0) { > > Nit, test if the device we adding has an alias before the device we're testing > against. The compiler can better optimize keeping alias hot. > Thanks, > Ok. will do. > Alex
Re: [PATCH v1 2/5] mdev: Make mdev alias unique among all mdevs
On Tue, 27 Aug 2019 14:16:51 -0500 Parav Pandit wrote: > Mdev alias should be unique among all the mdevs, so that when such alias > is used by the mdev users to derive other objects, there is no > collision in a given system. > > Signed-off-by: Parav Pandit > > --- > Changelog: > v0->v1: > - Fixed inclusiong of alias for NULL check > - Added ratelimited debug print for sha1 hash collision error > --- > drivers/vfio/mdev/mdev_core.c | 7 +++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/vfio/mdev/mdev_core.c b/drivers/vfio/mdev/mdev_core.c > index 62d29f57fe0c..4b9899e40665 100644 > --- a/drivers/vfio/mdev/mdev_core.c > +++ b/drivers/vfio/mdev/mdev_core.c > @@ -375,6 +375,13 @@ int mdev_device_create(struct kobject *kobj, struct > device *dev, > ret = -EEXIST; > goto mdev_fail; > } > + if (tmp->alias && alias && strcmp(tmp->alias, alias) == 0) { Nit, test if the device we adding has an alias before the device we're testing against. The compiler can better optimize keeping alias hot. Thanks, Alex > + mutex_unlock(_list_lock); > + ret = -EEXIST; > + dev_dbg_ratelimited(dev, "Hash collision in alias > creation for UUID %pUl\n", > + uuid); > + goto mdev_fail; > + } > } > > mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
[PATCH v1 2/5] mdev: Make mdev alias unique among all mdevs
Mdev alias should be unique among all the mdevs, so that when such alias is used by the mdev users to derive other objects, there is no collision in a given system. Signed-off-by: Parav Pandit --- Changelog: v0->v1: - Fixed inclusiong of alias for NULL check - Added ratelimited debug print for sha1 hash collision error --- drivers/vfio/mdev/mdev_core.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/drivers/vfio/mdev/mdev_core.c b/drivers/vfio/mdev/mdev_core.c index 62d29f57fe0c..4b9899e40665 100644 --- a/drivers/vfio/mdev/mdev_core.c +++ b/drivers/vfio/mdev/mdev_core.c @@ -375,6 +375,13 @@ int mdev_device_create(struct kobject *kobj, struct device *dev, ret = -EEXIST; goto mdev_fail; } + if (tmp->alias && alias && strcmp(tmp->alias, alias) == 0) { + mutex_unlock(_list_lock); + ret = -EEXIST; + dev_dbg_ratelimited(dev, "Hash collision in alias creation for UUID %pUl\n", + uuid); + goto mdev_fail; + } } mdev = kzalloc(sizeof(*mdev), GFP_KERNEL); -- 2.19.2