[PATCH] Midi close race

Adrian Cox (adrian@humboldt.co.uk)
Fri, 21 Sep 2001 11:04:10 +0100


The patch below fixes a race condition when closing the MIDI input device. The
previous code left the timer running while freeing buffers used by the timer
routine, leading to frequent OOPSes. Thomas: you seem to have been the last
person to touch this file. Any comments?

--- 1.1/drivers/sound/midibuf.c Sat Jan 6 07:28:25 2001
+++ 1.2/drivers/sound/midibuf.c Thu Jun 14 16:33:40 2001
@@ -253,13 +253,13 @@

midi_devs[dev]->close(dev);

+ if (open_devs < 2)
+ del_timer(&poll_timer);
+ open_devs--;
vfree(midi_in_buf[dev]);
vfree(midi_out_buf[dev]);
midi_in_buf[dev] = NULL;
midi_out_buf[dev] = NULL;
- if (open_devs < 2)
- del_timer(&poll_timer);;
- open_devs--;

if (midi_devs[dev]->owner)
__MOD_DEC_USE_COUNT (midi_devs[dev]->owner);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/