Oliver Neukum <oli...@neukum.org> writes:

> On Thu, 2013-11-14 at 10:03 +0800, wangbiao wrote:
>> From: wang, biao <biao.w...@intel.com>
>> Date: Mon, 11 Nov 2013 10:23:40 +0800
>> Subject: [PATCH] usbnet: fix race condition caused spinlock bad magic issue
>> 
>> there is race between usbnet_terminate_urbs and usbnet_bh.
>> for example:
>>     cpu 0                                     cpu 1
>>                                           usbnet_suspend
>> usbnet_bh {                               ->usbnet_terminate_urbs {
>>                                               dev->wait = &unlink_wakeup;
>>                                               while(....){..}//break
>>     if(dev->wait) is true
>>                                                    dev->wait=NULL
>>                                           }//unlink_wakeup is invalid
>>     __wake_up(dev->wait)//garbage value
>> }
>> 
>> the race is due to unprotection of dev->wait, so this patch involves a
>> spinlock to avoid it.
>> 
>> Signed-off-by: wang, biao <biao.w...@intel.com>
>> Signed-off-by: Zhang, Di <di.zh...@intel.com>
> Acked-by: Oliver Neukum <oli...@neukum.org>


Really?  Serializing the suspend of all usbnet devices seems like a good
idea?


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

Reply via email to