[kernel] r15542 - in dists/sid/linux-2.6/debian: . patches/bugfix/all patches/series

Maximilian Attems maks at alioth.debian.org
Fri Apr 23 02:36:50 UTC 2010


Author: maks
Date: Fri Apr 23 02:36:48 2010
New Revision: 15542

Log:
"libata: Fix accesses at LBA28 boundary (old bug, but nasty) (v2)"

sent to stable too.

Added:
   dists/sid/linux-2.6/debian/patches/bugfix/all/libata-fix-accesses-at-LBA28-boundary.patch
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/12

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Fri Apr 23 00:33:24 2010	(r15541)
+++ dists/sid/linux-2.6/debian/changelog	Fri Apr 23 02:36:48 2010	(r15542)
@@ -38,6 +38,7 @@
     - [x86] KVM: disable paravirt mmu reporting (Closes: #573071)
   * Add drm changes from stable 2.6.33.3:
     - drm/radeon: R300 AD only has one quad pipe (Closes: #575681)
+  * libata: Fix accesses at LBA28 boundary (old bug, but nasty) (v2)
 
   [ dann frazier ]
   * Add DRBD backport

Added: dists/sid/linux-2.6/debian/patches/bugfix/all/libata-fix-accesses-at-LBA28-boundary.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/libata-fix-accesses-at-LBA28-boundary.patch	Fri Apr 23 02:36:48 2010	(r15542)
@@ -0,0 +1,35 @@
+From: Mark Lord <kernel at teksavvy.com>
+Date: Wed, 7 Apr 2010 17:52:08 +0000 (-0400)
+Subject: libata: Fix accesses at LBA28 boundary (old bug, but nasty) (v2)
+X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=45c4d015a92f72ec47acd0c7557abdc0c8a6499d
+
+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 at pobox.com>
+Signed-off-by: Jeff Garzik <jgarzik at redhat.com>
+---
+
+diff --git a/include/linux/ata.h b/include/linux/ata.h
+index b4c85e2..700c5b9 100644
+--- a/include/linux/ata.h
++++ b/include/linux/ata.h
+@@ -1025,8 +1025,8 @@ static inline int ata_ok(u8 status)
+ 
+ static inline int lba_28_ok(u64 block, u32 n_block)
+ {
+-	/* check the ending block number */
+-	return ((block + n_block) < ((u64)1 << 28)) && (n_block <= 256);
++	/* check the ending block number: must be LESS THAN 0x0fffffff */
++	return ((block + n_block) < ((1 << 28) - 1)) && (n_block <= 256);
+ }
+ 
+ static inline int lba_48_ok(u64 block, u32 n_block)

Modified: dists/sid/linux-2.6/debian/patches/series/12
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/12	Fri Apr 23 00:33:24 2010	(r15541)
+++ dists/sid/linux-2.6/debian/patches/series/12	Fri Apr 23 02:36:48 2010	(r15542)
@@ -25,3 +25,4 @@
 + bugfix/all/stable/2.6.32.12-rc1.patch
 + bugfix/all/stable/2.6.32.3-rc1.patch
 + features/all/ipheth-add.patch
++ bugfix/all/libata-fix-accesses-at-LBA28-boundary.patch



More information about the Kernel-svn-changes mailing list