Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: vt6656: return if pControlURB->hcpriv not NULL

Fixes occasional urb submitted while active.

Even thought the fMP_CONTROL_WRITES/fMP_CONTROL_READS flags
are cleared in the return context urb->hcpriv is not NULL.

check for hcpriv and return STATUS_FAILURE if not NULL.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Malcolm Priestley and committed by
Greg Kroah-Hartman
e1feda13 60cc2747

+6
+6
drivers/staging/vt6656/usbpipe.c
··· 118 118 if (pDevice->Flags & fMP_CONTROL_READS) 119 119 return STATUS_FAILURE; 120 120 121 + if (pDevice->pControlURB->hcpriv) 122 + return STATUS_FAILURE; 123 + 121 124 MP_SET_FLAG(pDevice, fMP_CONTROL_WRITES); 122 125 123 126 pDevice->sUsbCtlRequest.bRequestType = 0x40; ··· 178 175 return STATUS_FAILURE; 179 176 180 177 if (pDevice->Flags & fMP_CONTROL_WRITES) 178 + return STATUS_FAILURE; 179 + 180 + if (pDevice->pControlURB->hcpriv) 181 181 return STATUS_FAILURE; 182 182 183 183 MP_SET_FLAG(pDevice, fMP_CONTROL_READS);