[PATCH] ALSA: rawmidi: Return the error from snd_rawmidi_input_params()

From: HyeongJun An

Date: Wed Sep 02 2026 - 08:56:59 EST


The snd_rawmidi_input_params() computes err for the three invalid mode
combinations and for resize_runtime_buffer(), applies the new framing
and clock type only when err is zero, and then returns 0 anyway. A
caller that asked for parameters the kernel rejected is told the change
succeeded, and the substream keeps its old buffer.

The open_mutex conversion turned the early returns into assignments.
It handled the output sibling correctly, which still returns err, and
left this one behind.

Fixes: 94b98194b62e ("ALSA: rawmidi: Take open_mutex around parameter changes")
Cc: stable@xxxxxxxxxxxxxxx
Assisted-by: Claude:claude-opus-5
Signed-off-by: HyeongJun An <sammiee5311@xxxxxxxxx>
---
Reproduced on 6.17.0-35-generic with snd-virmidi:

INPUT buffer_size=0 -> ret 0, errno 0
INPUT avail_min=0 -> ret 0, errno 0
OUTPUT buffer_size=0 -> ret -1, EINVAL

The same rejected parameters report success on the input stream and
failure on the output stream.

sound/core/rawmidi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c
index bf504e27f73e..f9cef3c61861 100644
--- a/sound/core/rawmidi.c
+++ b/sound/core/rawmidi.c
@@ -782,7 +782,7 @@ int snd_rawmidi_input_params(struct snd_rawmidi_substream *substream,
substream->framing = framing;
substream->clock_type = clock_type;
}
- return 0;
+ return err;
}
EXPORT_SYMBOL(snd_rawmidi_input_params);

--
2.43.0