Fabien Lahoudere
666b5d1e9f
rtc: rx8010: change lock mechanism
Remove spinlock and use the "rtc->ops_lock" from RTC subsystem instead.
spin_lock_irqsave() is not needed here because we do not have hard IRQs.
This patch fixes the following issue:
root@GE004097290448 b850v3:~# hwclock --systohc
root@GE004097290448 b850v3:~# hwclock --systohc
root@GE004097290448 b850v3:~# hwclock --systohc
root@GE004097290448 b850v3:~# hwclock --systohc
root@GE004097290448 b850v3:~# hwclock --systohc
[ 82.108175] BUG: spinlock wrong CPU on CPU#0, hwclock/855
[ 82.113660] lock: 0xedb4899c, .magic: dead4ead, .owner: hwclock/855, .owner_cpu: 1
[ 82.121329] CPU: 0 PID: 855 Comm: hwclock Not tainted 4.8.0-00042-g09d5410-dirty #20
[ 82.129078] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[ 82.135609] Backtrace:
[ 82.138090] [<8010d378>] (dump_backtrace) from [<8010d5c0>] (show_stack+0x20/0x24)
[ 82.145664] r7:ec936000 r6:600a0013 r5:00000000 r4:81031680
[ 82.151402] [<8010d5a0>] (show_stack) from [<80401518>] (dump_stack+0xb4/0xe8)
[ 82.158636] [<80401464>] (dump_stack) from [<8017b8b0>] (spin_dump+0x84/0xcc)
[ 82.165775] r10:00000000 r9:ec936000 r8:81056090 r7:600a0013 r6:edb4899c r5:edb4899c
[ 82.173691] r4:e5033e00 r3:00000000
[ 82.177308] [<8017b82c>] (spin_dump) from [<8017bcb0>] (do_raw_spin_unlock+0x108/0x130)
[ 82.185314] r5:edb4899c r4:edb4899c
[ 82.188938] [<8017bba8>] (do_raw_spin_unlock) from [<8094b93c>] (_raw_spin_unlock_irqrestore+0x34/0x54)
[ 82.198333] r5:edb4899c r4:600a0013
[ 82.201953] [<8094b908>] (_raw_spin_unlock_irqrestore) from [<8065b090>] (rx8010_set_time+0x14c/0x188)
[ 82.211261] r5:00000020 r4:edb48990
[ 82.214882] [<8065af44>] (rx8010_set_time) from [<80653fe4>] (rtc_set_time+0x70/0x104)
[ 82.222801] r7:00000051 r6:edb39da0 r5:edb39c00 r4:ec937e8c
[ 82.228535] [<80653f74>] (rtc_set_time) from [<80655774>] (rtc_dev_ioctl+0x3c4/0x674)
[ 82.236368] r7:00000051 r6:7ecf1b74 r5:00000000 r4:edb39c00
[ 82.242106] [<806553b0>] (rtc_dev_ioctl) from [<80284034>] (do_vfs_ioctl+0xa4/0xa6c)
[ 82.249851] r8:00000003 r7:80284a40 r6:ed1e9c80 r5:edb44e60 r4:7ecf1b74
[ 82.256642] [<80283f90>] (do_vfs_ioctl) from [<80284a40>] (SyS_ioctl+0x44/0x6c)
[ 82.263953] r10:00000000 r9:ec936000 r8:7ecf1b74 r7:4024700a r6:ed1e9c80 r5:00000003
[ 82.271869] r4:ed1e9c80
[ 82.274432] [<802849fc>] (SyS_ioctl) from [<80108520>] (ret_fast_syscall+0x0/0x1c)
[ 82.282005] r9:ec936000 r8:801086c4 r7:00000036 r6:00000000 r5:00000003 r4:0008e1bc
root@GE004097290448 b850v3:~#
Message from syslogd@GE004097290448 at Dec 3 11:17:08 ...
kernel:[ 82.108175] BUG: spinlock wrong CPU on CPU#0, hwclock/855
Message from syslogd@GE004097290448 at Dec 3 11:17:08 ...
kernel:[ 82.113660] lock: 0xedb4899c, .magic: dead4ead, .owner: hwclock/855, .owner_cpu: 1
hwclock --systohc
root@GE004097290448 b850v3:~#
Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
2017-01-04 23:39:15 +01:00
..
2016-03-14 17:08:18 +01:00
2015-04-17 09:04:02 -04:00
2016-12-25 17:21:22 +01:00
2016-12-19 00:59:21 +01:00
2016-12-19 00:59:21 +01:00
2015-09-05 13:19:05 +02:00
2014-10-20 16:21:31 +02:00
2015-04-03 08:18:25 +02:00
2015-11-08 14:12:25 +01:00
2015-09-05 13:19:08 +02:00
2016-07-19 17:27:42 +02:00
2016-09-22 00:14:41 +02:00
2015-09-05 19:37:22 +02:00
2016-03-14 17:08:25 +01:00
2016-10-19 08:45:48 +02:00
2016-09-02 01:24:06 +02:00
2015-11-08 14:12:28 +01:00
2016-07-26 00:09:18 +02:00
2014-10-20 16:21:31 +02:00
2015-09-05 13:19:09 +02:00
2016-08-31 18:21:35 +02:00
2014-10-20 16:21:31 +02:00
2016-12-18 18:18:03 -08:00
2016-09-02 01:24:06 +02:00
2015-09-05 13:19:07 +02:00
2016-07-19 18:15:21 +02:00
2016-07-19 18:15:21 +02:00
2016-01-11 20:19:57 +01:00
2016-09-02 01:24:06 +02:00
2015-09-05 13:19:07 +02:00
2016-09-02 01:24:06 +02:00
2014-10-20 16:21:31 +02:00
2016-05-20 12:33:51 +02:00
2016-07-08 16:23:11 +02:00
2016-09-02 01:24:06 +02:00
2016-07-09 10:24:45 +02:00
2016-12-19 00:59:07 +01:00
2016-07-09 10:24:45 +02:00
2016-09-22 00:14:40 +02:00
2016-12-07 16:34:43 +01:00
2015-11-10 10:01:21 -08:00
2016-05-20 12:33:51 +02:00
2016-05-20 12:33:51 +02:00
2016-05-20 12:33:51 +02:00
2016-07-09 10:24:45 +02:00
2016-05-20 12:33:51 +02:00
2016-06-27 10:48:28 +02:00
2016-07-09 10:24:45 +02:00
2015-04-17 09:04:02 -04:00
2016-06-06 17:07:33 +02:00
2015-04-17 09:03:59 -04:00
2016-05-20 12:33:51 +02:00
2015-09-05 13:19:06 +02:00
2016-09-02 01:24:06 +02:00
2016-06-04 00:23:35 +02:00
2015-06-19 20:03:20 +02:00
2016-07-19 18:18:06 +02:00
2016-12-07 16:47:47 +01:00
2016-05-20 12:33:51 +02:00
2016-05-20 12:33:51 +02:00
2016-11-09 01:37:03 +01:00
2016-11-04 23:31:29 +01:00
2014-10-20 16:21:31 +02:00
2015-09-05 13:19:06 +02:00
2016-01-11 20:19:59 +01:00
2015-06-21 21:53:59 +02:00
2016-07-21 20:06:57 +02:00
2015-10-28 10:30:17 +09:00
2015-10-28 10:30:17 +09:00
2016-05-20 12:33:51 +02:00
2015-09-05 13:19:10 +02:00
2016-06-27 18:15:25 +02:00
2016-05-20 12:33:51 +02:00
2015-10-28 10:30:17 +09:00
2016-06-04 16:05:59 +02:00
2014-10-20 16:21:31 +02:00
2014-10-20 16:21:31 +02:00
2015-09-05 19:37:21 +02:00
2015-06-25 01:13:36 +02:00
2016-03-14 17:08:27 +01:00
2016-05-20 12:33:51 +02:00
2016-06-26 01:20:08 +02:00
2016-12-19 00:59:25 +01:00
2015-09-05 19:37:22 +02:00
2015-09-05 19:37:22 +02:00
2016-07-09 10:24:45 +02:00
2015-04-17 09:04:02 -04:00
2016-09-02 01:24:06 +02:00
2015-09-05 19:37:22 +02:00
2016-05-20 12:33:51 +02:00
2016-09-02 01:24:06 +02:00
2016-11-04 23:11:39 +01:00
2016-06-29 17:33:18 +10:00
2016-09-02 01:24:06 +02:00
2014-10-20 16:21:31 +02:00
2016-08-31 18:21:34 +02:00
2016-03-14 17:08:41 +01:00
2016-03-14 17:08:30 +01:00
2016-07-19 18:15:21 +02:00
2015-09-05 13:19:06 +02:00
2016-09-02 01:24:06 +02:00
2016-11-04 23:08:59 +01:00
2016-08-31 18:21:35 +02:00
2013-11-13 12:09:31 +09:00
2015-11-08 14:12:24 +01:00
2016-08-31 09:33:33 +01:00
2016-01-11 20:19:55 +01:00
2014-10-20 16:21:31 +02:00
2014-10-20 16:21:31 +02:00
2015-09-05 19:37:16 +02:00
2016-12-19 00:59:21 +01:00
2015-10-28 10:30:17 +09:00
2016-07-19 18:15:21 +02:00
2015-12-20 13:39:00 +01:00
2015-09-05 13:19:10 +02:00
2016-05-20 12:33:51 +02:00
2016-05-20 12:33:51 +02:00
2016-07-09 10:24:45 +02:00
2016-05-21 17:07:16 +02:00
2016-10-12 13:24:39 +02:00
2015-10-28 10:30:17 +09:00
2016-09-02 01:24:06 +02:00
2017-01-04 23:39:15 +01:00
2016-09-02 01:24:06 +02:00
2016-05-20 12:33:51 +02:00
2016-07-19 17:48:06 +02:00
2016-03-14 17:08:18 +01:00
2016-07-11 23:22:35 +02:00
2015-09-05 19:37:16 +02:00
2015-09-05 19:37:16 +02:00
2016-07-11 23:22:33 +02:00
2015-09-05 13:19:06 +02:00
2016-05-20 12:33:51 +02:00
2016-09-02 01:24:06 +02:00
2015-07-23 17:07:35 +01:00
2016-11-04 23:31:31 +01:00
2016-05-20 12:33:51 +02:00
2016-09-02 01:24:06 +02:00
2016-11-04 23:31:33 +01:00
2014-09-19 12:39:19 +02:00
2016-01-11 20:19:57 +01:00
2016-08-31 18:21:35 +02:00
2016-09-02 01:24:06 +02:00
2015-04-03 08:18:24 +02:00
2014-10-20 16:21:31 +02:00
2016-05-21 17:07:17 +02:00
2016-03-14 17:08:23 +01:00
2016-03-14 17:08:24 +01:00
2016-11-30 21:21:33 +01:00
2015-09-05 13:19:10 +02:00
2016-07-09 10:24:21 +02:00
2016-03-14 17:08:25 +01:00
2015-09-05 19:37:22 +02:00
2013-07-03 16:07:59 -07:00
2013-04-29 18:28:32 -07:00
2016-05-20 12:33:51 +02:00
2014-10-20 16:21:31 +02:00
2016-05-20 12:33:51 +02:00
2015-06-25 01:13:42 +02:00