Thank you for the explanation. > serial_close is safe because serial_disconnect > lowers the refcount
Sorry, I meant serial_open, as in my original example. I am currently trying to fix a legacy 2.4 based USB driver and I am having various races, serial_open/usb_serial_disconnect is the most lively. I am not asking your help in fixing this old 2.4 junk (in fact I already fixed it using a global semaphore to protect serial_table). But I still want to understand how the latest and greatest 2.6 driver is supposed to work so I can adopt some of the changes. At first I thought that the ref-counting will help, but then found that it does not fix much! The race is as lively as ever. Also I found that BKL/lock_kernel is compiled out in my configuration because it is not an SMP build. I see that in 2.6 BKL/lock_kernel are also optional for non-SMP builds. Is it true? If yes, then again, how this is supposed to work and avoid races? Thank you John __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/