Hello all.
fusion_entry_destroy() function removes entry while it being locked. It
can have a lot of bad consequences (e.g. in case of deadlock detection
code in kernel it causes segmentation fault). Possible fix for this case
is attached, please take a look on it.
Best regards,
Maxim
diff -Naur linux-fusion-3.0/linux/drivers/char/fusion/entries.c linux-fusion-3.0-fixed/linux/drivers/char/fusion/entries.c
--- linux-fusion-3.0/linux/drivers/char/fusion/entries.c 2006-03-26 22:44:19.000000000 +0400
+++ linux-fusion-3.0-fixed/linux/drivers/char/fusion/entries.c 2006-09-13 16:16:19.000000000 +0400
@@ -233,6 +233,9 @@
/* Remove the entry from the list. */
fusion_list_remove( &entries->list, &entry->link );
+ /* Unlock the entry */
+ up( &entry->lock );
+
/* Wake up any waiting process. */
wake_up_interruptible_all( &entry->wait );
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev