Commit 89dbb33
committed
ALSA: jack: Fix mutex call in snd_jack_report()
snd_jack_report() is supposed to be callable from an IRQ context, too,
and it's indeed used in that way from virtsnd driver. The fix for
input_dev race in commit 1b6a6fc ("ALSA: jack: Access input_dev
under mutex"), however, introduced a mutex lock in snd_jack_report(),
and this resulted in a potential sleep-in-atomic.
For addressing that problem, this patch changes the relevant code to
use the object get/put and removes the mutex usage. That is,
snd_jack_report(), it takes input_get_device() and leaves with
input_put_device() for assuring the input_dev being assigned.
Although the whole mutex could be reduced, we keep it because it can
be still a protection for potential races between creation and
deletion.
Fixes: 1b6a6fc ("ALSA: jack: Access input_dev under mutex")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/r/cf95f7fe-a748-4990-8378-000491b40329@moroto.mountain
Tested-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20230706155357.3470-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>1 parent 5284876 commit 89dbb33
1 file changed
Lines changed: 7 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
654 | 654 | | |
655 | 655 | | |
656 | 656 | | |
| 657 | + | |
657 | 658 | | |
658 | 659 | | |
659 | 660 | | |
| |||
670 | 671 | | |
671 | 672 | | |
672 | 673 | | |
673 | | - | |
674 | | - | |
675 | | - | |
| 674 | + | |
| 675 | + | |
676 | 676 | | |
677 | | - | |
678 | 677 | | |
679 | 678 | | |
680 | 679 | | |
681 | 680 | | |
682 | 681 | | |
683 | | - | |
| 682 | + | |
684 | 683 | | |
685 | 684 | | |
686 | 685 | | |
687 | 686 | | |
688 | 687 | | |
689 | 688 | | |
690 | 689 | | |
691 | | - | |
| 690 | + | |
692 | 691 | | |
693 | 692 | | |
694 | 693 | | |
695 | 694 | | |
696 | | - | |
697 | | - | |
| 695 | + | |
| 696 | + | |
698 | 697 | | |
699 | 698 | | |
700 | 699 | | |
0 commit comments