Fix big endian build
authorAnton Blanchard <anton@samba.org>
Mon, 7 Nov 2011 13:16:26 +0000 (14:16 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 7 Nov 2011 13:16:26 +0000 (14:16 +0100)
I get the following error when building fio on PowerPC:

client.c: In function ‘convert_agg’:
client.c:641:22: error: invalid operands to binary & (have ‘long double’ and ‘long long unsigned int’)

It looks like we have things backwards, we should byteswap the
integer value before we convert it to a double.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
client.c

index a61bc803b4267708a7f1f8affe160f9154256ac5..f1675492a6d38775f56aeb99ae91041d67b7b70d 100644 (file)
--- a/client.c
+++ b/client.c
@@ -638,7 +638,7 @@ static void convert_agg(struct disk_util_agg *agg)
        agg->io_ticks           = le32_to_cpu(agg->io_ticks);
        agg->time_in_queue      = le32_to_cpu(agg->time_in_queue);
        agg->slavecount         = le32_to_cpu(agg->slavecount);
-       agg->max_util.u.f       = __le64_to_cpu(fio_uint64_to_double(agg->max_util.u.i));
+       agg->max_util.u.f       = fio_uint64_to_double(__le64_to_cpu(agg->max_util.u.i));
 }
 
 static void convert_dus(struct disk_util_stat *dus)