diff options
author | sos <sos@FreeBSD.org> | 2006-11-17 11:13:47 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2006-11-17 11:13:47 +0000 |
commit | f53308110bc715c1ce8de2cc4334ff4b72677cbc (patch) | |
tree | 2fe9d78181995d514bc09082c982810d15f7fb0d /sys/dev/ata | |
parent | 75a5c5100987b9f5d82f3d7d35674c19bcef2086 (diff) | |
download | FreeBSD-src-f53308110bc715c1ce8de2cc4334ff4b72677cbc.zip FreeBSD-src-f53308110bc715c1ce8de2cc4334ff4b72677cbc.tar.gz |
Deal more generically with the byteswap needed on !littleendian HW.
Account for the odd layout on ARM bigendian HW.
Diffstat (limited to 'sys/dev/ata')
-rw-r--r-- | sys/dev/ata/ata-all.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index bdf1eed..c25ac82 100644 --- a/sys/dev/ata/ata-all.c +++ b/sys/dev/ata/ata-all.c @@ -601,12 +601,12 @@ ata_getparam(struct ata_device *atadev, int init) isprint(atadev->param.model[1]))) { struct ata_params *atacap = &atadev->param; char buffer[64]; -#if BYTE_ORDER == BIG_ENDIAN +#ifndef __ARMEB__ int16_t *ptr; for (ptr = (int16_t *)atacap; ptr < (int16_t *)atacap + sizeof(struct ata_params)/2; ptr++) { - *ptr = bswap16(*ptr); + *ptr = le16toh(*ptr); } #endif if (!(!strncmp(atacap->model, "FX", 2) || |