It isn't. But the disconnect is still wrong. You fail to unlink the current
urb. This has to be done before you kill the tasklet. And you have to use a
flag and a spinlock to guard against a race with the completion handler.
There's a recent discussion on this in the usb archives. And you need to
defer freeing the memory if the device is open.
Have a look at how pwc does it. It should be correct in that regard.
And while you at it, could you rename the tasklet from ...bh... to ...tl... ?
It's no longer a bottom half.
Regards
Oliver
-
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/