diff options
author | Vladimir Zapolskiy <vz@mleia.com> | 2015-08-05 14:13:02 -0400 |
---|---|---|
committer | Alexandre Belloni <alexandre.belloni@free-electrons.com> | 2015-09-05 07:19:10 -0400 |
commit | 99be3e371b2ac03b936044139be10cf0c7b9cc58 (patch) | |
tree | 1597cb6f031aea7ee7ed3a6a080f394aa6164590 /drivers/rtc | |
parent | c472d7ded2dfbe7da29531a9c9e6b951e5658605 (diff) |
rtc: m48t59: clean up m48t59_nvram_read()/m48t59_nvram_write()
The change removes redundant sysfs binary file boundary checks, since
this task is already done on caller side in fs/sysfs/file.c
Spinlock acquisition/release is moved out of the loop body to get
atomic states of NVRAM reading and writing operations.
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Diffstat (limited to 'drivers/rtc')
-rw-r--r-- | drivers/rtc/rtc-m48t59.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/rtc/rtc-m48t59.c b/drivers/rtc/rtc-m48t59.c index 90abb5bd589c..d99a705bec07 100644 --- a/drivers/rtc/rtc-m48t59.c +++ b/drivers/rtc/rtc-m48t59.c | |||
@@ -345,11 +345,12 @@ static ssize_t m48t59_nvram_read(struct file *filp, struct kobject *kobj, | |||
345 | ssize_t cnt = 0; | 345 | ssize_t cnt = 0; |
346 | unsigned long flags; | 346 | unsigned long flags; |
347 | 347 | ||
348 | for (; size > 0 && pos < pdata->offset; cnt++, size--) { | 348 | spin_lock_irqsave(&m48t59->lock, flags); |
349 | spin_lock_irqsave(&m48t59->lock, flags); | 349 | |
350 | for (; cnt < size; cnt++) | ||
350 | *buf++ = M48T59_READ(cnt); | 351 | *buf++ = M48T59_READ(cnt); |
351 | spin_unlock_irqrestore(&m48t59->lock, flags); | 352 | |
352 | } | 353 | spin_unlock_irqrestore(&m48t59->lock, flags); |
353 | 354 | ||
354 | return cnt; | 355 | return cnt; |
355 | } | 356 | } |
@@ -365,11 +366,12 @@ static ssize_t m48t59_nvram_write(struct file *filp, struct kobject *kobj, | |||
365 | ssize_t cnt = 0; | 366 | ssize_t cnt = 0; |
366 | unsigned long flags; | 367 | unsigned long flags; |
367 | 368 | ||
368 | for (; size > 0 && pos < pdata->offset; cnt++, size--) { | 369 | spin_lock_irqsave(&m48t59->lock, flags); |
369 | spin_lock_irqsave(&m48t59->lock, flags); | 370 | |
371 | for (; cnt < size; cnt++) | ||
370 | M48T59_WRITE(*buf++, cnt); | 372 | M48T59_WRITE(*buf++, cnt); |
371 | spin_unlock_irqrestore(&m48t59->lock, flags); | 373 | |
372 | } | 374 | spin_unlock_irqrestore(&m48t59->lock, flags); |
373 | 375 | ||
374 | return cnt; | 376 | return cnt; |
375 | } | 377 | } |