* Alex Williamson <[email protected]> [2017-01-17 14:02:33 -0700]:
[...]
> > diff --git a/drivers/s390/cio/vfio_ccw_ops.c
> > b/drivers/s390/cio/vfio_ccw_ops.c
[...]
> > +static int vfio_ccw_mdev_create(struct kobject *kobj, struct mdev_device
> > *mdev)
> > +{
> > + struct vfio_ccw_private *private = dev_get_drvdata(mdev->parent->dev);
> > +
> > + /* Only support one mediated device for each physical subchannel. */
> > + if (private->mdev)
> > + return -EPERM;
> > +
> > + private->mdev = mdev;
> > + available_instances--;
>
>
> This looks racy and doesn't enforce the available instances. Should
> this maybe be an atomic_t and use atomic_dec_if_positive() to return an
> error if no instances are available?
Hi Alex,
You are right. I will fix this according to your comment.
>
>
> > +
> > + return 0;
> > +}
> > +
[...]
--
Dong Jia