[PATCH] Midi close race

From: Adrian Cox (adrian@humboldt.co.uk)
Date: Fri Sep 21 2001 - 05:04:10 EST


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/



This archive was generated by hypermail 2b29 : Sun Sep 23 2001 - 21:00:42 EST