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>
This commit is contained in:
parent
c472d7ded2
commit
99be3e371b
1 changed files with 10 additions and 8 deletions
|
@ -345,11 +345,12 @@ static ssize_t m48t59_nvram_read(struct file *filp, struct kobject *kobj,
|
||||||
ssize_t cnt = 0;
|
ssize_t cnt = 0;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
for (; size > 0 && pos < pdata->offset; cnt++, size--) {
|
spin_lock_irqsave(&m48t59->lock, flags);
|
||||||
spin_lock_irqsave(&m48t59->lock, flags);
|
|
||||||
|
for (; cnt < size; cnt++)
|
||||||
*buf++ = M48T59_READ(cnt);
|
*buf++ = M48T59_READ(cnt);
|
||||||
spin_unlock_irqrestore(&m48t59->lock, flags);
|
|
||||||
}
|
spin_unlock_irqrestore(&m48t59->lock, flags);
|
||||||
|
|
||||||
return cnt;
|
return cnt;
|
||||||
}
|
}
|
||||||
|
@ -365,11 +366,12 @@ static ssize_t m48t59_nvram_write(struct file *filp, struct kobject *kobj,
|
||||||
ssize_t cnt = 0;
|
ssize_t cnt = 0;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
for (; size > 0 && pos < pdata->offset; cnt++, size--) {
|
spin_lock_irqsave(&m48t59->lock, flags);
|
||||||
spin_lock_irqsave(&m48t59->lock, flags);
|
|
||||||
|
for (; cnt < size; cnt++)
|
||||||
M48T59_WRITE(*buf++, cnt);
|
M48T59_WRITE(*buf++, cnt);
|
||||||
spin_unlock_irqrestore(&m48t59->lock, flags);
|
|
||||||
}
|
spin_unlock_irqrestore(&m48t59->lock, flags);
|
||||||
|
|
||||||
return cnt;
|
return cnt;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue