Re: [PATCH] staging: usbip: stub_dev: Fixed oops during removal ofusbip_host

From: Dan Carpenter
Date: Tue Sep 18 2012 - 05:36:43 EST


On Tue, Sep 18, 2012 at 03:02:15PM +0530, navin patidar wrote:
> On Tue, Sep 18, 2012 at 1:10 PM, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
> > On Tue, Sep 18, 2012 at 09:30:06AM +0530, navin patidar wrote:
> >> stub_device_reset should set kernel thread pointers to NULL.
> >> so that at the time of usbip_host removal stub_shoutdown_connection
> >> doesn't try to kill kernel threads which are already killed.
> >>
> >
> > If you have the Oops output, that's always nice to put in the commit
> > message.
>
> i'll surely keep this in mind before submitting further patches.
>
> > Why don't you set the pointers to NULL in stub_shutdown_connection()
> > since that's where you actually kill the threads. Setting them to
> > NULL in stub_device_reset() will (sometimes) solve the problem but
> > it gives you a new problem of a resource leak.
>
> stub_device_reset() always gets executed after
> stub_shutdown_connection() , never before.
>

No it isn't. Read event_handler() more carefully. They can be
executed independently.

In other words, stub_shutdown_connection() can be called without
calling stub_device_reset() and stub_device_reset() can be called
without stub_shutdown_connection(). If either of those happen then
it causes a problem with the patch you have just sent.

regards,
dan carpenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/