diff options
Diffstat (limited to 'include/linux/ata.h')
| -rw-r--r-- | include/linux/ata.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/include/linux/ata.h b/include/linux/ata.h index 20f31567ccee..700c5b9b3583 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
| @@ -841,7 +841,8 @@ static inline int ata_id_current_chs_valid(const u16 *id) | |||
| 841 | 841 | ||
| 842 | static inline int ata_id_is_cfa(const u16 *id) | 842 | static inline int ata_id_is_cfa(const u16 *id) |
| 843 | { | 843 | { |
| 844 | if (id[ATA_ID_CONFIG] == 0x848A) /* Traditional CF */ | 844 | if ((id[ATA_ID_CONFIG] == 0x848A) || /* Traditional CF */ |
| 845 | (id[ATA_ID_CONFIG] == 0x844A)) /* Delkin Devices CF */ | ||
| 845 | return 1; | 846 | return 1; |
| 846 | /* | 847 | /* |
| 847 | * CF specs don't require specific value in the word 0 anymore and yet | 848 | * CF specs don't require specific value in the word 0 anymore and yet |
| @@ -1024,8 +1025,8 @@ static inline int ata_ok(u8 status) | |||
| 1024 | 1025 | ||
| 1025 | static inline int lba_28_ok(u64 block, u32 n_block) | 1026 | static inline int lba_28_ok(u64 block, u32 n_block) |
| 1026 | { | 1027 | { |
| 1027 | /* check the ending block number */ | 1028 | /* check the ending block number: must be LESS THAN 0x0fffffff */ |
| 1028 | return ((block + n_block) < ((u64)1 << 28)) && (n_block <= 256); | 1029 | return ((block + n_block) < ((1 << 28) - 1)) && (n_block <= 256); |
| 1029 | } | 1030 | } |
| 1030 | 1031 | ||
| 1031 | static inline int lba_48_ok(u64 block, u32 n_block) | 1032 | static inline int lba_48_ok(u64 block, u32 n_block) |
