Takashi Iwai
a8469215da
ALSA: core: Add async signal helpers
...
[ Upstream commit ef34a0ae7a2654bc9e58675e36898217fb2799d8 ]
Currently the call of kill_fasync() from an interrupt handler might
lead to potential spin deadlocks, as spotted by syzkaller.
Unfortunately, it's not so trivial to fix this lock chain as it's
involved with the tasklist_lock that is touched in allover places.
As a temporary workaround, this patch provides the way to defer the
async signal notification in a work. The new helper functions,
snd_fasync_helper() and snd_kill_faync() are replacements for
fasync_helper() and kill_fasync(), respectively. In addition,
snd_fasync_free() needs to be called at the destructor of the relevant
file object.
Link: https://lore.kernel.org/r/20220728125945.29533-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2022-08-25 11:15:46 +02:00
..
2018-07-02 10:56:09 +01:00
2018-07-02 10:56:09 +01:00
2017-11-02 11:10:55 +01:00
2015-01-02 16:26:20 +01:00
2017-05-17 07:13:03 +02:00
2017-05-17 07:13:03 +02:00
2017-05-17 07:13:03 +02:00
2017-11-02 11:10:55 +01:00
2020-07-16 08:17:24 +02:00
2018-04-25 10:37:46 +02:00
2022-08-25 11:15:46 +02:00
2016-06-27 17:39:06 +01:00
2016-10-21 12:02:44 +01:00
2017-05-19 17:31:34 +01:00
2013-11-28 10:20:51 +00:00
2014-05-05 18:20:22 -07:00
2013-10-18 00:37:29 +01:00
2014-04-03 14:59:48 +02:00
2015-10-07 15:11:34 +01:00
2015-11-30 12:24:12 +00:00
2015-10-02 18:11:27 +01:00
2018-03-09 17:40:41 +00:00
2017-06-28 19:01:12 +01:00
2018-07-02 10:55:52 +01:00
2018-04-16 14:01:53 +02:00
2017-06-09 22:09:45 +02:00
2015-01-02 16:27:03 +01:00
2015-01-28 16:49:33 +01:00
2017-11-02 11:10:55 +01:00
2018-07-17 22:25:48 +02:00
2018-07-17 22:25:48 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-06-28 07:33:29 +02:00
2018-09-17 18:59:21 +02:00
2017-05-24 18:45:29 +01:00
2017-11-27 16:19:52 -05:00
2015-11-30 11:40:08 +01:00
2017-11-27 16:19:52 -05:00
2022-06-14 16:59:15 +02:00
2017-11-02 11:10:55 +01:00
2018-07-30 12:02:24 +01:00
2017-05-17 07:13:04 +02:00
2017-08-16 12:52:41 +03:00
2017-06-09 22:09:45 +02:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-03-23 22:18:05 +01:00
2018-12-13 09:16:16 +01:00
2017-05-25 23:34:45 +02:00
2022-05-15 19:41:58 +02:00
2018-06-29 12:05:04 +01:00
2020-05-20 08:18:47 +02:00
2014-07-04 18:50:51 +01:00
2015-07-09 12:00:11 +01:00
2017-11-07 11:23:36 +01:00
2017-12-12 10:41:56 +00:00
2018-02-12 09:31:26 +00:00
2016-09-24 19:51:57 +01:00
2017-09-19 12:57:59 +01:00
2017-02-25 12:12:50 -08:00
2018-04-16 19:24:32 +01:00
2020-07-29 10:16:58 +02:00
2018-06-18 12:54:38 +01:00
2017-11-02 11:10:55 +01:00
2018-07-27 09:05:33 +02:00
2015-01-28 16:49:33 +01:00
2015-02-12 14:15:54 +01:00
2017-11-06 20:25:31 +01:00
2018-08-01 22:54:35 +02:00
2018-07-30 14:52:30 +02:00
2018-08-02 10:56:59 +01:00
2018-07-02 10:52:52 +01:00
2018-07-02 10:52:47 +01:00
2017-11-13 15:45:57 +01:00
2018-07-02 10:55:27 +01:00
2018-07-02 10:55:27 +01:00
2018-07-24 12:06:43 +01:00
2019-10-11 18:20:47 +02:00
2018-07-02 10:55:05 +01:00
2018-07-02 10:55:42 +01:00
2022-01-27 09:04:31 +01:00
2015-04-28 16:31:01 +01:00
2015-01-27 17:13:25 +00:00
2014-05-05 12:52:59 -07:00
2014-07-17 17:57:05 +01:00
2017-11-02 11:10:55 +01:00
2017-11-06 10:41:24 +01:00
2017-07-17 16:22:28 +01:00
2016-09-25 22:16:49 +02:00
2014-11-24 18:04:49 +00:00
2014-09-15 15:52:03 +02:00
2015-10-20 15:46:09 +01:00
2014-07-31 20:51:26 +01:00
2015-01-02 16:30:08 +01:00