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/