diff options
author | Ralf Corsepius <ralf.corsepius@rtems.org> | 2009-11-12 16:34:24 +0000 |
---|---|---|
committer | Ralf Corsepius <ralf.corsepius@rtems.org> | 2009-11-12 16:34:24 +0000 |
commit | d949482a3c3838d88332d3101cf671c348d4d97a (patch) | |
tree | 542c506c2275bed7e19433df89587b7e78a61334 /c | |
parent | New test case (diff) | |
download | rtems-d949482a3c3838d88332d3101cf671c348d4d97a.tar.bz2 |
2009-11-12 Ralf Corsépius <ralf.corsepius@rtems.org>
* libchip/ide/ata.c (rtems_ata_initialize): Avoid implicit cast to uint16_t.
Diffstat (limited to 'c')
-rw-r--r-- | c/src/ChangeLog | 1 | ||||
-rw-r--r-- | c/src/libchip/ide/ata.c | 7 |
2 files changed, 5 insertions, 3 deletions
diff --git a/c/src/ChangeLog b/c/src/ChangeLog index 99c60b62ba..57268eac06 100644 --- a/c/src/ChangeLog +++ b/c/src/ChangeLog @@ -1,5 +1,6 @@ 2009-11-12 Ralf Corsépius <ralf.corsepius@rtems.org> + * libchip/ide/ata.c (rtems_ata_initialize): Avoid implicit cast to uint16_t. * libchip/ide/ata.c (ata_non_data_request): Change arg from int to uint32_t (16bit ints are too small). diff --git a/c/src/libchip/ide/ata.c b/c/src/libchip/ide/ata.c index 450148bbf3..2d17748a57 100644 --- a/c/src/libchip/ide/ata.c +++ b/c/src/libchip/ide/ata.c @@ -1405,9 +1405,10 @@ rtems_ata_initialize(rtems_device_major_number major, CF_LE_W(buffer[ATA_IDENT_WORD_NUM_OF_CURR_LOG_HEADS]); ATA_DEV_INFO(ctrl_minor, dev).sectors = CF_LE_W(buffer[ATA_IDENT_WORD_NUM_OF_CURR_LOG_SECS]); - ATA_DEV_INFO(ctrl_minor, dev).lba_sectors = - (CF_LE_W(buffer[ATA_IDENT_WORD_NUM_OF_USR_SECS1]) << 16) + - CF_LE_W(buffer[ATA_IDENT_WORD_NUM_OF_USR_SECS0]); + ATA_DEV_INFO(ctrl_minor, dev).lba_sectors = + CF_LE_W(buffer[ATA_IDENT_WORD_NUM_OF_USR_SECS1]); + ATA_DEV_INFO(ctrl_minor, dev).lba_sectors <<= 16; + ATA_DEV_INFO(ctrl_minor, dev).lba_sectors += CF_LE_W(buffer[ATA_IDENT_WORD_NUM_OF_USR_SECS0]); ATA_DEV_INFO(ctrl_minor, dev).lba_avaible = (CF_LE_W(buffer[ATA_IDENT_WORD_CAPABILITIES]) >> 9) & 0x1; |