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
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel