diff --git a/sys/dev/disk/nata/chipsets/ata-serverworks.c b/sys/dev/disk/nata/chipsets/ata-serverworks.c --- a/sys/dev/disk/nata/chipsets/ata-serverworks.c +++ b/sys/dev/disk/nata/chipsets/ata-serverworks.c @@ -176,13 +176,13 @@ request->u.ata.count = ATA_IDX_INW(ch, ATA_COUNT); temp = ATA_IDX_INW(ch, ATA_SECTOR); request->u.ata.lba = (u_int64_t)(temp & 0x00ff) | - ((u_int64_t)(temp & 0xff00) << 24); + ((u_int64_t)(temp & 0xff00) << 16); temp = ATA_IDX_INW(ch, ATA_CYL_LSB); request->u.ata.lba |= ((u_int64_t)(temp & 0x00ff) << 8) | - ((u_int64_t)(temp & 0xff00) << 32); + ((u_int64_t)(temp & 0xff00) << 24); temp = ATA_IDX_INW(ch, ATA_CYL_MSB); request->u.ata.lba |= ((u_int64_t)(temp & 0x00ff) << 16) | - ((u_int64_t)(temp & 0xff00) << 40); + ((u_int64_t)(temp & 0xff00) << 32); } else { request->u.ata.count = ATA_IDX_INW(ch, ATA_COUNT) & 0x00ff;