Greg,
I'm sending two patches for the usbserial NULL pointer dereference we
discussed last week:
http://marc.theaimsgroup.com/?l=linux-kernel&m=113216151918308&w=2
The first patch adds the missing checks you suggested we should use in
usb-serial driver's entry points, to avoid NULL pointer dereferences.
The second one is the same I've sent before, except that now I'm using
down() in serial_close() instead of down_interruptible() (as you also
suggested). I didn't use down() in the first version because I don't
wanted processes in a close() waiting for a open() too long. But
Eduardo Habkost showed me it will not happen: the only possibility for a
open() to sleep after the semaphore is acquired, is when 'open_count'
equals 1, and there will be no close, since the port is being opened for the
first time.
Is ok for a open() to wait a close().
Both patches were tested with a pl2303 device, running hundreds of my
test-case and using minicom in parallel.
--
Luiz Fernando N. Capitulino