From 9f9bdca061713322d9f1f6e2e71dee14f44e98fe Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sat, 5 Mar 2016 18:44:05 +0000 Subject: [PATCH] uas: Fix high-order alloc --- debian/changelog | 1 + .../bugfix/all/uas-fix-high-order-alloc.patch | 29 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 31 insertions(+) create mode 100644 debian/patches/bugfix/all/uas-fix-high-order-alloc.patch diff --git a/debian/changelog b/debian/changelog index b82eb17ac..b8469795f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -441,6 +441,7 @@ linux (4.4.4-1) UNRELEASED; urgency=medium - mmc-modules: Include MMC controller drivers by default - mmc-modules: Depends on usb-modules - usb-modules: Include USB PHY drivers by default + * uas: Fix high-order alloc [ Ian Campbell ] * [armhf] dts: Add DTB for Novena, patches from Vagrant Cascadian diff --git a/debian/patches/bugfix/all/uas-fix-high-order-alloc.patch b/debian/patches/bugfix/all/uas-fix-high-order-alloc.patch new file mode 100644 index 000000000..25b4fae4b --- /dev/null +++ b/debian/patches/bugfix/all/uas-fix-high-order-alloc.patch @@ -0,0 +1,29 @@ +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, diff --git a/debian/patches/series b/debian/patches/series index ef6054aea..e8a2d17f6 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -127,3 +127,4 @@ debian/i386-686-pae-pci-set-pci-nobios-by-default.patch bugfix/arm/net-mv643xx_eth-fix-packet-corruption-with-tso-and-t.patch bugfix/x86/x86-efi-bgrt-fix-kernel-panic-when-mapping-bgrt-data.patch bugfix/x86/x86-efi-bgrt-replace-early_memremap-with-memremap.patch +bugfix/all/uas-fix-high-order-alloc.patch