Hi, I recently saw an article in Linux Journal about writing a USB device driver. One thing that leapt out at me was that the skeleton driver code called MOD_INC_USE_COUNT and MOD_DEC_USE_COUNT in the file_operations open and release methods. Aren't these macros Linux 2.2-isms that have been made redundant by the file_operations.owner field? Since the owner field is already correctly set to THIS_MODULE, I have attached a patch to remove the MOD_XXX_USE_COUNT macro calls. After all, asking a module to lock itself has an implicit race condition.
This patch is against Linux 2.4.16. Cheers, Chris --- drivers/usb/usb-skeleton.c.orig Tue Dec 4 13:05:28 2001 +++ drivers/usb/usb-skeleton.c Tue Dec 4 13:06:42 2001 @@ -215,15 +215,11 @@ return -ENODEV; } - /* increment our usage count for the module */ - MOD_INC_USE_COUNT; - /* lock our minor table and get our local data for this minor */ down (&minor_table_mutex); dev = minor_table[subminor]; if (dev == NULL) { up (&minor_table_mutex); - MOD_DEC_USE_COUNT; return -ENODEV; } @@ -278,7 +274,6 @@ /* the device was unplugged before the file was released */ up (&dev->sem); skel_delete (dev); - MOD_DEC_USE_COUNT; up (&minor_table_mutex); return 0; } @@ -290,9 +285,6 @@ usb_unlink_urb (dev->write_urb); dev->open_count = 0; } - - /* decrement our usage count for the module */ - MOD_DEC_USE_COUNT; exit_not_opened: up (&dev->sem); _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel