Messages in this thread | | | From | Bjørn Mork <> | Subject | Re: [PATCH V3] usbnet: fix race condition caused spinlock bad magic issue | Date | Thu, 14 Nov 2013 10:18:05 +0100 |
| |
Oliver Neukum <oliver@neukum.org> writes:
> On Thu, 2013-11-14 at 10:03 +0800, wangbiao wrote: >> From: wang, biao <biao.wang@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.wang@intel.com> >> Signed-off-by: Zhang, Di <di.zhang@intel.com> > Acked-by: Oliver Neukum <oliver@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 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/
| |