libata: Fix accesses at LBA28 boundary (old bug, but nasty) (v2)
authorMark Lord <kernel@teksavvy.com>
Wed, 7 Apr 2010 17:52:08 +0000 (13:52 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 12 May 2010 21:57:10 +0000 (14:57 -0700)
commit4c57ef6ae19a315202f7af060f28d9880fc5d2dd
treee6438fee0ba05887f2be531f8da553d8203a7eff
parent8eaa5f76db8a81c6edf7185e89711e5ade8a5637
libata: Fix accesses at LBA28 boundary (old bug, but nasty) (v2)

commit 45c4d015a92f72ec47acd0c7557abdc0c8a6499d upstream.

Most drives from Seagate, Hitachi, and possibly other brands,
do not allow LBA28 access to sector number 0x0fffffff (2^28 - 1).
So instead use LBA48 for such accesses.

This bug could bite a lot of systems, especially when the user has
taken care to align partitions to 4KB boundaries. On misaligned systems,
it is less likely to be encountered, since a 4KB read would end at
0x10000000 rather than at 0x0fffffff.

Signed-off-by: Mark Lord <mlord@pobox.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
include/linux/ata.h