Fix USB CB/CBI storage devices with CONFIG_VMAP_STACK=y
authorPetr Vandrovec <petr@vandrovec.name>
Thu, 10 Nov 2016 21:57:14 +0000 (13:57 -0800)
committerWilly Tarreau <w@1wt.eu>
Mon, 6 Feb 2017 22:33:09 +0000 (23:33 +0100)
commit64c179fa3ca3220b5e2e38aa09bff0b820178b78
treecc7f756939f3bf822166c76c55d2de7efacd22f0
parent82e63143d9a02b971c87223a6a220c77efbbe3e7
Fix USB CB/CBI storage devices with CONFIG_VMAP_STACK=y

commit 2ce9d2272b98743b911196c49e7af5841381c206 upstream.

Some code (all error handling) submits CDBs that are allocated
on the stack.  This breaks with CB/CBI code that tries to create
URB directly from SCSI command buffer - which happens to be in
vmalloced memory with vmalloced kernel stacks.

Let's make copy of the command in usb_stor_CB_transport.

Signed-off-by: Petr Vandrovec <petr@vandrovec.name>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Willy Tarreau <w@1wt.eu>
drivers/usb/storage/transport.c