mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-20 14:16:02 +00:00
USB: usb-storage: increase max_sectors for tape drives
This patch (as1203) increases the max_sector limit for USB tape drives. By default usb-storage sets max_sectors to 240 (i.e., 120 KB) for all devices. But tape drives need a higher limit, since tapes can and do have very large block sizes. Without the ability to transfer an entire large block in a single command, such tapes can't be used. This fixes Bugzilla #12207. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Reported-and-tested-by: Phil Mitchell <philipm@sybase.com> Cc: stable <stable@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
090b901182
commit
5c16034d73
1 changed files with 6 additions and 0 deletions
|
@ -135,6 +135,12 @@ static int slave_configure(struct scsi_device *sdev)
|
||||||
if (sdev->request_queue->max_sectors > max_sectors)
|
if (sdev->request_queue->max_sectors > max_sectors)
|
||||||
blk_queue_max_sectors(sdev->request_queue,
|
blk_queue_max_sectors(sdev->request_queue,
|
||||||
max_sectors);
|
max_sectors);
|
||||||
|
} else if (sdev->type == TYPE_TAPE) {
|
||||||
|
/* Tapes need much higher max_sector limits, so just
|
||||||
|
* raise it to the maximum possible (4 GB / 512) and
|
||||||
|
* let the queue segment size sort out the real limit.
|
||||||
|
*/
|
||||||
|
blk_queue_max_sectors(sdev->request_queue, 0x7FFFFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Some USB host controllers can't do DMA; they have to use PIO.
|
/* Some USB host controllers can't do DMA; they have to use PIO.
|
||||||
|
|
Loading…
Reference in a new issue