Re: [PATCH net-next v2] misc: Add Renesas Synchronization Management Unit (SMU) support

From: Greg KH
Date: Fri Feb 12 2021 - 02:43:15 EST


On Thu, Feb 11, 2021 at 08:16:15PM -0500, min.li.xe@xxxxxxxxxxx wrote:
> +static int
> +rsmu_open(struct inode *iptr, struct file *fptr)
> +{
> + struct rsmu_cdev *rsmu;
> +
> + rsmu = container_of(iptr->i_cdev, struct rsmu_cdev, rsmu_cdev);
> + if (!rsmu)
> + return -EAGAIN;
> +
> + /* Only one open per device at a time */
> + if (!atomic_dec_and_test(&rsmu->open_count)) {
> + atomic_inc(&rsmu->open_count);
> + return -EBUSY;

This does not do what you think it does, and does not prevent multiple
applications from talking to your device at the same time.

There is no need for this at all, as it does not work, sorry. If
multiple apps talk to your device, it's their fault, not the kernel's
fault, that things go wrong.

And I thought that Arnd already told you to fix this?

thanks,

greg k-h