From: Greg Kroah-Hartman Date: Wed, 2 Oct 2013 16:55:24 +0000 (-0700) Subject: 3.4-stable patches X-Git-Tag: v3.0.99~24 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f9370a8066cde7a160f7f1a975394589487d4278;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: staging-vt6656-main_usb.c-oops-on-device_close-move-flag-earlier.patch --- diff --git a/queue-3.4/series b/queue-3.4/series index 7b5f1b30187..c488386d1d0 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -1,2 +1,3 @@ x86-reboot-add-quirk-to-make-dell-c6100-use-reboot-pci-automatically.patch x86-efi-don-t-map-boot-services-on-i386.patch +staging-vt6656-main_usb.c-oops-on-device_close-move-flag-earlier.patch diff --git a/queue-3.4/staging-vt6656-main_usb.c-oops-on-device_close-move-flag-earlier.patch b/queue-3.4/staging-vt6656-main_usb.c-oops-on-device_close-move-flag-earlier.patch new file mode 100644 index 00000000000..3e468c235b9 --- /dev/null +++ b/queue-3.4/staging-vt6656-main_usb.c-oops-on-device_close-move-flag-earlier.patch @@ -0,0 +1,45 @@ +From e3eb270fab7734427dd8171a93e4946fe28674bc Mon Sep 17 00:00:00 2001 +From: Malcolm Priestley +Date: Sun, 22 Sep 2013 19:48:54 +0100 +Subject: staging: vt6656: [BUG] main_usb.c oops on device_close move flag earlier. + +From: Malcolm Priestley + +commit e3eb270fab7734427dd8171a93e4946fe28674bc upstream. + +The vt6656 is prone to resetting on the usb bus. + +It seems there is a race condition and wpa supplicant is +trying to open the device via iw_handlers before its actually +closed at a stage that the buffers are being removed. + +The device is longer considered open when the +buffers are being removed. So move ~DEVICE_FLAGS_OPENED +flag to before freeing the device buffers. + +Signed-off-by: Malcolm Priestley +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/staging/vt6656/main_usb.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/staging/vt6656/main_usb.c ++++ b/drivers/staging/vt6656/main_usb.c +@@ -1220,6 +1220,8 @@ device_release_WPADEV(pDevice); + memset(pMgmt->abyCurrBSSID, 0, 6); + pMgmt->eCurrState = WMAC_STATE_IDLE; + ++ pDevice->flags &= ~DEVICE_FLAGS_OPENED; ++ + device_free_tx_bufs(pDevice); + device_free_rx_bufs(pDevice); + device_free_int_bufs(pDevice); +@@ -1231,7 +1233,6 @@ device_release_WPADEV(pDevice); + usb_free_urb(pDevice->pInterruptURB); + + BSSvClearNodeDBTable(pDevice, 0); +- pDevice->flags &=(~DEVICE_FLAGS_OPENED); + + DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "device_close2 \n"); +