aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorAlbert Lee <albertcc@tw.ibm.com>2005-10-12 03:12:26 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-10-18 17:18:16 -0400
commitc6a33e2464edd87f8c12cc2d11369a5b44c65b77 (patch)
treef15eb374fa98fb1f76bf3a7cffd9cb8ef7173091 /include/linux
parent59a10b172fccaea793352c00fd9065f0a5b4ef70 (diff)
[PATCH] libata CHS: LBA28/LBA48 optimization (revise #6)
- add lba_28_ok() and lba_48_ok() to ata.h. - check ending block number instead of staring block number. - use lba_28_ok() for CHS range check - LBA28/LBA48 optimization Suggested by Mark Lord and Alan Cox. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> ===== Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ata.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h
index 630908c9378b..b7e7e1cb2633 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -291,4 +291,16 @@ static inline int ata_ok(u8 status)
291 == ATA_DRDY); 291 == ATA_DRDY);
292} 292}
293 293
294static inline int lba_28_ok(u64 block, u32 n_block)
295{
296 /* check the ending block number */
297 return ((block + n_block - 1) < ((u64)1 << 28)) && (n_block <= 256);
298}
299
300static inline int lba_48_ok(u64 block, u32 n_block)
301{
302 /* check the ending block number */
303 return ((block + n_block - 1) < ((u64)1 << 48)) && (n_block <= 65536);
304}
305
294#endif /* __LINUX_ATA_H__ */ 306#endif /* __LINUX_ATA_H__ */