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)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 8 Apr 2010 16:53:57 +0000 (12:53 -0400)
commit45c4d015a92f72ec47acd0c7557abdc0c8a6499d
tree8c71c959f3c7c04647336cca27dc18e3cd0bbe0b
parentcf90bfe2ebaf9d32f37acbebb7425c280fd6cd30
libata: Fix accesses at LBA28 boundary (old bug, but nasty) (v2)

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>
include/linux/ata.h