Chengfeng Ye
b02bb79eee
ipmi: fix potential deadlock on &kcs_bmc->lock
...
As kcs_bmc_handle_event() is executed inside both a timer and a hardirq,
it should disable irq before lock acquisition otherwise deadlock could
happen if the timmer is preemtped by the irq.
Possible deadlock scenario:
aspeed_kcs_check_obe() (timer)
-> kcs_bmc_handle_event()
-> spin_lock(&kcs_bmc->lock)
<irq interruption>
-> aspeed_kcs_irq()
-> kcs_bmc_handle_event()
-> spin_lock(&kcs_bmc->lock) (deadlock here)
This flaw was found using an experimental static analysis tool we are
developing for irq-related deadlock.
The tentative patch fix the potential deadlock by spin_lock_irqsave()
Signed-off-by: Chengfeng Ye <dg573847474@gmail.com>
Message-Id: <20230627152449.36093-1-dg573847474@gmail.com>
Signed-off-by: Corey Minyard <minyard@acm.org>
2023-07-04 09:22:45 -05:00
..
2023-04-27 11:53:57 -07:00
2023-05-04 20:23:41 +02:00
2023-04-27 11:53:57 -07:00
2023-04-27 19:42:02 -07:00
2023-05-12 09:09:06 -06:00
2023-04-23 22:07:27 -07:00
2023-04-27 16:36:55 -07:00
2023-04-27 16:21:32 -07:00
2023-07-04 09:22:45 -05:00
2023-05-07 10:31:45 -07:00
2023-04-29 10:24:30 -07:00
2023-05-02 10:41:31 -07:00
2023-04-27 11:53:57 -07:00
2023-04-29 13:04:50 -07:00
2023-05-07 10:57:14 -07:00
2023-05-13 00:20:06 -07:00
2023-04-27 19:57:00 -07:00
2023-04-27 11:53:57 -07:00
2023-05-03 11:11:56 -07:00
2023-04-27 19:42:02 -07:00
2023-04-27 11:53:57 -07:00
2023-05-11 09:06:49 +09:00
2023-05-12 05:32:36 +10:00
2023-04-27 12:07:50 -07:00
2023-05-03 11:00:27 -07:00
2023-05-12 06:46:34 +10:00
2023-04-27 11:53:57 -07:00
2023-04-27 10:09:05 -07:00
2023-04-27 17:17:12 -07:00
2023-05-08 11:36:19 +02:00
2023-05-03 17:27:29 +02:00
2023-04-30 23:50:26 +02:00
2023-04-27 19:37:36 +02:00
2023-04-27 12:07:50 -07:00
2023-04-29 17:21:24 -07:00
2023-05-01 17:18:56 -07:00
2023-04-27 16:36:55 -07:00
2023-04-30 13:00:38 -07:00
2023-04-27 19:42:02 -07:00
2023-05-05 19:12:01 -07:00
2023-05-02 10:36:02 -07:00
2023-04-28 16:24:32 -07:00
2023-05-07 10:17:33 -07:00
2023-04-20 14:24:01 +02:00
2023-05-06 08:28:58 -07:00
2023-05-08 09:10:07 -07:00
2023-04-25 12:02:16 -07:00
2023-04-28 14:02:54 -07:00
2023-05-02 10:41:31 -07:00
2023-04-28 14:02:54 -07:00
2023-04-27 11:46:26 -07:00
2023-05-03 18:58:59 -07:00
2023-05-10 12:11:18 +01:00
2023-04-24 18:12:42 -07:00
2023-05-07 10:00:09 -07:00
2023-04-27 16:36:55 -07:00
2023-05-05 13:27:59 -07:00
2023-04-27 10:09:05 -07:00
2023-05-03 17:43:26 +02:00
2023-04-30 11:51:51 -07:00
2023-04-29 13:04:50 -07:00
2023-05-05 11:57:29 -07:00
2023-05-02 15:40:41 -07:00
2023-05-09 11:54:35 +02:00
2023-04-29 17:37:02 -07:00
2023-04-27 11:53:57 -07:00
2023-05-03 11:25:01 -07:00
2023-04-27 19:57:00 -07:00
2023-04-27 16:36:55 -07:00
2023-04-27 19:57:00 -07:00
2023-04-29 17:29:39 -07:00
2023-04-27 11:53:57 -07:00
2023-05-02 10:41:31 -07:00
2023-04-30 11:43:31 -07:00
2023-04-27 11:53:57 -07:00
2023-05-06 08:37:28 -07:00
2023-04-27 16:36:55 -07:00
2023-04-27 12:07:50 -07:00
2023-04-20 14:16:39 +02:00
2023-04-27 16:36:55 -07:00
2023-04-27 11:53:57 -07:00
2023-05-04 20:30:18 +02:00
2023-04-27 12:07:50 -07:00
2023-05-08 07:15:05 -04:00
2023-04-27 12:07:50 -07:00
2023-04-27 17:05:34 -07:00
2023-05-02 11:56:43 -07:00
2023-04-28 14:53:30 -07:00
2023-05-12 11:50:33 +02:00
2023-04-27 10:09:05 -07:00
2023-04-27 19:42:02 -07:00
2023-04-27 12:07:50 -07:00
2023-05-04 18:33:56 -07:00
2023-04-27 17:27:06 -07:00