Messages in this thread | | | Subject | Re: [PATCH V3] usbnet: fix race condition caused spinlock bad magic issue | From | Oliver Neukum <> | Date | Thu, 14 Nov 2013 08:44:42 +0100 |
| |
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>
| |