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)
committerDanny Wood <danwood76@gmail.com>
Tue, 29 Jan 2019 13:14:39 +0000 (13:14 +0000)
commit5cc8c6feb70fe27f886a172ac3941c4baed7f432
treef9a33dfab705d1879070bd6007da42d077472bb8
parentb73476a3dbc040b60eeb0816861a5af03333d9c5
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