From: Hans de Goede Date: Fri, 04 Mar 2016 07:18:00 +0000 Subject: uas: Fix high-order alloc Origin: http://thread.gmane.org/gmane.linux.usb.general/138042/focus=111495 Can you try building a kernel with the following line in drivers/usb/storage/uas.c : .can_queue = 65536, /* Is there a limit on the _host_ ? */ (around line 815) Replaced with .can_queue = MAX_CMNDS, That should help as MAX_CMNDS is 256, so claiming that we can queue more is not helpful, and that likely is what is causing this quite high order alloc. Reported-and-tested-by: Yves-Alexis Perez --- --- a/drivers/usb/storage/uas.c +++ b/drivers/usb/storage/uas.c @@ -812,7 +812,7 @@ static struct scsi_host_template uas_hos .slave_configure = uas_slave_configure, .eh_abort_handler = uas_eh_abort_handler, .eh_bus_reset_handler = uas_eh_bus_reset_handler, - .can_queue = 65536, /* Is there a limit on the _host_ ? */ + .can_queue = MAX_CMNDS, /* Is there a limit on the _host_ ? */ .this_id = -1, .sg_tablesize = SG_NONE, .skip_settle_delay = 1,