ide-disk: use ide_get_lba_addr()
PATCH 8/18 ide-disk: use ide_get_lba_addr()
* Export ide_get_lba_addr().
* Convert idedisk_{read_native,set}_max_address() to use ide_get_lba_addr().
* Remove incorrect comment from idedisk_read_native_max_address() (noticed by Sergei).
There should be no functionality changes caused by this patch.
Cc Sergei Shtylyov <[email protected]>
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/ide-disk.c | 26 ++++---------------------- drivers/ide/ide-lib.c | 3 ++- include/linux/ide.h | 1 + 3 files changed, 7 insertions(+), 23 deletions(-)
drivers/ide/ide-disk.c +4 -22
@@ -352,18 +352,9 @@ static u64 idedisk_read_native_max_addreide_no_data_taskfile (drive, &args);/* if OK, compute maximum address value */ -if ((tf->status &0x01 ) ==0 ) { -u32 high, low; +if ((tf->status &0x01 ) ==0 ) + addr =ide_get_lba_addr (tf, lba48) +1 ; -if (lba48) - high = (tf->hob_lbah <<16 ) | (tf->hob_lbam <<8 ) | - tf->hob_lbal; -else - high = tf->device &0xf ; - low = (tf->lbah <<16 ) | (tf->lbam <<8 ) | tf->lbal; - addr = ((__u64 )high <<24 ) | low; - addr++;/* since the return value is (maxlba - 1), we add 1 */ - }return addr; }
@@ -399,18 +390,9 @@ static u64 idedisk_set_max_address(ide_d/* submit command request */ ide_no_data_taskfile (drive, &args);/* if OK, compute maximum address value */ -if ((tf->status &0x01 ) ==0 ) { -u32 high, low; +if ((tf->status &0x01 ) ==0 ) + addr_set =ide_get_lba_addr (tf, lba48) +1 ; -if (lba48) - high = (tf->hob_lbah <<16 ) | (tf->hob_lbam <<8 ) | - tf->hob_lbal; -else - high = tf->device &0xf ; - low = (tf->lbah <<16 ) | (tf->lbam <<8 ) | tf->lbal; - addr_set = ((__u64 )high <<24 ) | low; - addr_set++; - }return addr_set; }
drivers/ide/ide-lib.c +2 -1
@@ -476,7 +476,7 @@ static void ide_dump_opcode(ide_drive_tprintk ("0x%02x\n" , opcode); } -static u64 ide_get_lba_addr (struct ide_taskfile *tf,int lba48) +u64 ide_get_lba_addr (struct ide_taskfile *tf,int lba48) {u32 high, low;
@@ -489,6 +489,7 @@ static u64 ide_get_lba_addr(struct ide_treturn ((u64 )high <<24 ) | low; } +EXPORT_SYMBOL_GPL (ide_get_lba_addr);static void ide_dump_sector (ide_drive_t *drive) {
include/linux/ide.h +1 -0
@@ -1238,6 +1238,7 @@ static inline int ide_dev_is_sata(structreturn 0 ; } +u64 ide_get_lba_addr (struct ide_taskfile *,int );u8 ide_dump_status (ide_drive_t *,const char *,u8 ); typedef struct ide_pio_timings_s {
Quoted 10 lines · Bartlomiej Zolnierkiewicz
* Export
ide_get_lba_addr().* Convert idedisk_{read_native,set}_max_address() to use
ide_get_lba_addr().* Remove incorrect comment from
idedisk_read_native_max_address()(noticed by Sergei).There should be no functionality changes caused by this patch.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
Acked-by Sergei Shtylyov <[email protected]>
MBR, Sergei