libata: add ATA_HORKAGE_MAX_SEC_1024 to revert back to previous max_sectors limit
authorDavid Milburn <dmilburn@redhat.com>
Mon, 13 Jul 2015 16:48:23 +0000 (11:48 -0500)
committerTejun Heo <tj@kernel.org>
Wed, 15 Jul 2015 15:47:24 +0000 (11:47 -0400)
commitaf34d637637eabaf49406eb35c948cd51ba262a6
tree4dcfd80cdc49c3aa9fc9510e3edd93b97265be2a
parentcda57b1b05cf7b8b99ab4b732bea0b05b6c015cc
libata: add ATA_HORKAGE_MAX_SEC_1024 to revert back to previous max_sectors limit

Since no longer limiting max_sectors to BLK_DEF_MAX_SECTORS (commit 34b48db66e08),
data corruption may occur on ST380013AS drive configured on 82801JI (ICH10 Family)
SATA controller. This patch will allow the driver to limit max_sectors as before

 # cat /sys/block/sdb/queue/max_sectors_kb
 512

I was able to double the max_sectors_kb value up to 16384 on linux-4.2.0-rc2
before seeing corruption, but seems safer to use previous limit. Without this
patch max_sectors_kb will be 32767.

tj: Minor comment update.

Reported-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: David Milburn <dmilburn@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: stable@vger.kernel.org # v3.19 and later
Fixes: 34b48db66e08 ("block: remove artifical max_hw_sectors cap")
drivers/ata/libata-core.c
include/linux/ata.h
include/linux/libata.h