From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f66.google.com ([209.85.220.66]:35640 "EHLO mail-pa0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753114AbcEWQCz (ORCPT ); Mon, 23 May 2016 12:02:55 -0400 Message-ID: <574329ae.c726620a.60f3.ffffd14b@mx.google.com> From: tom.ty89@gmail.com To: gregkh@linuxfoundation.org Cc: kraxel@redhat.com, stern@rowland.harvard.edu, linux-usb@vger.kernel.org, linux-scsi@vger.kernel.org, stable@vger.kernel.org, hdegoede@redhat.com, Tom Yan Subject: [PATCH 1/1] uas: leave can_queue as MAX_CMNDS if device reports larger qdepth Date: Tue, 24 May 2016 00:02:43 +0800 Sender: stable-owner@vger.kernel.org List-ID: From: Tom Yan Commit 198de51dbc34 ("USB: uas: Limit qdepth at the scsi-host level") made qdepth limit set in host template (`.can_queue = MAX_CMNDS`) useless. Instead of removing the template limit, now we only change limit according to the qdepth reported by the device if it is smaller than MAX_CMNDS. Signed-off-by: Tom Yan diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c index 4d49fce..d7790e6 100644 --- a/drivers/usb/storage/uas.c +++ b/drivers/usb/storage/uas.c @@ -972,7 +972,8 @@ static int uas_probe(struct usb_interface *intf, const struct usb_device_id *id) * 1 tag is reserved for untagged commands + * 1 tag to avoid off by one errors in some bridge firmwares */ - shost->can_queue = devinfo->qdepth - 2; + if (devinfo->qdepth - 2 < MAX_CMNDS) + shost->can_queue = devinfo->qdepth - 2; usb_set_intfdata(intf, shost); result = scsi_add_host(shost, &intf->dev); -- 2.8.2