| From 3510c7aa069aa83a2de6dab2b41401a198317bdc Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Mon, 6 Nov 2017 20:16:50 +0100 |
| Subject: ALSA: seq: Avoid invalid lockdep class warning |
| |
| From: Takashi Iwai <tiwai@suse.de> |
| |
| commit 3510c7aa069aa83a2de6dab2b41401a198317bdc upstream. |
| |
| The recent fix for adding rwsem nesting annotation was using the given |
| "hop" argument as the lock subclass key. Although the idea itself |
| works, it may trigger a kernel warning like: |
| BUG: looking up invalid subclass: 8 |
| .... |
| since the lockdep has a smaller number of subclasses (8) than we |
| currently allow for the hops there (10). |
| |
| The current definition is merely a sanity check for avoiding the too |
| deep delivery paths, and the 8 hops are already enough. So, as a |
| quick fix, just follow the max hops as same as the max lockdep |
| subclasses. |
| |
| Fixes: 1f20f9ff57ca ("ALSA: seq: Fix nested rwsem annotation for lockdep splat") |
| Reported-by: syzbot <syzkaller@googlegroups.com> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| include/sound/seq_kernel.h | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/include/sound/seq_kernel.h |
| +++ b/include/sound/seq_kernel.h |
| @@ -49,7 +49,8 @@ typedef union snd_seq_timestamp snd_seq_ |
| #define SNDRV_SEQ_DEFAULT_CLIENT_EVENTS 200 |
| |
| /* max delivery path length */ |
| -#define SNDRV_SEQ_MAX_HOPS 10 |
| +/* NOTE: this shouldn't be greater than MAX_LOCKDEP_SUBCLASSES */ |
| +#define SNDRV_SEQ_MAX_HOPS 8 |
| |
| /* max size of event size */ |
| #define SNDRV_SEQ_MAX_EVENT_LEN 0x3fffffff |