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)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 23 Feb 2017 03:51:00 +0000 (03:51 +0000)
commit19b2b6a14c3321617628e6ae5903d6e521dd7ff2
tree8b2dbfd3b38fec2eeb2dad7d7847904dba54dd3d
parenta1aa5ae641b2c7a8d7aa523754c18ebe219a20d0
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: Ben Hutchings <ben@decadent.org.uk>
drivers/usb/storage/transport.c