On Tue, 28 Jan 2025 17:54:15 +0100, Kuan-Wei Chiu wrote:
The auto_parser assumed sort() was stable, but the kernel's sort() uses heapsort, which has never been stable. After commit 0e02ca29a563 ("lib/sort: optimize heapsort with double-pop variation"), the order of equal elements changed, causing the headset to fail to work.
Fix the issue by recording the original order of elements before sorting and using it as a tiebreaker for equal elements in the comparison function.
Fixes: b9030a005d58 ("ALSA: hda - Use standard sort function in hda_auto_parser.c") Reported-by: Austrum austrum.lab@gmail.com Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219158 Tested-by: Austrum austrum.lab@gmail.com Cc: stable@vger.kernel.org Signed-off-by: Kuan-Wei Chiu visitorckw@gmail.com
Applied now. Thanks.
Takashi