diff options
| author | Dan Carpenter <dan.carpenter@oracle.com> | 2016-03-02 05:07:45 -0500 |
|---|---|---|
| committer | Alexandre Belloni <alexandre.belloni@free-electrons.com> | 2016-03-14 12:08:28 -0400 |
| commit | 8c09b9fdecab1f4a289f07b46e2ad174b6641928 (patch) | |
| tree | d29a18e30908ae3637e5a54ad7d803ec27a17e01 /drivers/rtc | |
| parent | 7e84536cb9ffb6562b3a2584c7454104e750e01a (diff) | |
rtc: ds1685: passing bogus values to irq_restore
We call spin_lock_irqrestore with "flags" set to zero instead of to the
value from spin_lock_irqsave().
Fixes: aaaf5fbf56f1 ('rtc: add driver for DS1685 family of real time clocks')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Diffstat (limited to 'drivers/rtc')
| -rw-r--r-- | drivers/rtc/rtc-ds1685.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/rtc/rtc-ds1685.c b/drivers/rtc/rtc-ds1685.c index 535050fc5e9f..08e0ff8c786a 100644 --- a/drivers/rtc/rtc-ds1685.c +++ b/drivers/rtc/rtc-ds1685.c | |||
| @@ -187,9 +187,9 @@ ds1685_rtc_end_data_access(struct ds1685_priv *rtc) | |||
| 187 | * Only use this where you are certain another lock will not be held. | 187 | * Only use this where you are certain another lock will not be held. |
| 188 | */ | 188 | */ |
| 189 | static inline void | 189 | static inline void |
| 190 | ds1685_rtc_begin_ctrl_access(struct ds1685_priv *rtc, unsigned long flags) | 190 | ds1685_rtc_begin_ctrl_access(struct ds1685_priv *rtc, unsigned long *flags) |
| 191 | { | 191 | { |
| 192 | spin_lock_irqsave(&rtc->lock, flags); | 192 | spin_lock_irqsave(&rtc->lock, *flags); |
| 193 | ds1685_rtc_switch_to_bank1(rtc); | 193 | ds1685_rtc_switch_to_bank1(rtc); |
| 194 | } | 194 | } |
| 195 | 195 | ||
| @@ -1300,7 +1300,7 @@ ds1685_rtc_sysfs_ctrl_regs_store(struct device *dev, | |||
| 1300 | { | 1300 | { |
| 1301 | struct ds1685_priv *rtc = dev_get_drvdata(dev); | 1301 | struct ds1685_priv *rtc = dev_get_drvdata(dev); |
| 1302 | u8 reg = 0, bit = 0, tmp; | 1302 | u8 reg = 0, bit = 0, tmp; |
| 1303 | unsigned long flags = 0; | 1303 | unsigned long flags; |
| 1304 | long int val = 0; | 1304 | long int val = 0; |
| 1305 | const struct ds1685_rtc_ctrl_regs *reg_info = | 1305 | const struct ds1685_rtc_ctrl_regs *reg_info = |
| 1306 | ds1685_rtc_sysfs_ctrl_regs_lookup(attr->attr.name); | 1306 | ds1685_rtc_sysfs_ctrl_regs_lookup(attr->attr.name); |
| @@ -1321,7 +1321,7 @@ ds1685_rtc_sysfs_ctrl_regs_store(struct device *dev, | |||
| 1321 | bit = reg_info->bit; | 1321 | bit = reg_info->bit; |
| 1322 | 1322 | ||
| 1323 | /* Safe to spinlock during a write. */ | 1323 | /* Safe to spinlock during a write. */ |
| 1324 | ds1685_rtc_begin_ctrl_access(rtc, flags); | 1324 | ds1685_rtc_begin_ctrl_access(rtc, &flags); |
| 1325 | tmp = rtc->read(rtc, reg); | 1325 | tmp = rtc->read(rtc, reg); |
| 1326 | rtc->write(rtc, reg, (val ? (tmp | bit) : (tmp & ~(bit)))); | 1326 | rtc->write(rtc, reg, (val ? (tmp | bit) : (tmp & ~(bit)))); |
| 1327 | ds1685_rtc_end_ctrl_access(rtc, flags); | 1327 | ds1685_rtc_end_ctrl_access(rtc, flags); |
