[PATCH] staging: dgnc: take lock when storing value in dgnc_poll_tick
Dan Carpenter
dan.carpenter at oracle.com
Wed Aug 19 10:21:46 UTC 2015
On Tue, Aug 18, 2015 at 08:37:21PM +0100, Salah Triki wrote:
> @@ -57,11 +57,17 @@ static ssize_t dgnc_driver_pollrate_store(struct device_driver *ddp,
> const char *buf, size_t count)
> {
> int ret;
> + unsigned long flags;
>
> + spin_lock_irqsave(&dgnc_poll_lock, flags);
> ret = sscanf(buf, "%d\n", &dgnc_poll_tick);
> if (ret != 1)
> - return -EINVAL;
> - return count;
> + ret = -EINVAL;
> + else
> + ret = count;
> + spin_unlock_irqrestore(&dgnc_poll_lock, flags);
> +
> + return ret;
> }
Looks basically ok, but I wonder if it would be better to use a
temporary buffer for the sscanf.
unsigned long flags;
int tick;
int ret;
ret = sscanf(buf, "%d\n", &tick);
if (ret != 1)
return -EINVAL;
spin_lock_irqsave(&dgnc_poll_lock, flags);
dgnc_poll_tick = tick;
spin_unlock_irqrestore(&dgnc_poll_lock, flags);
return count;
regards,
dan carpenter
More information about the devel
mailing list