From: Akinobu Mita Date: Thu, 25 Jun 2015 13:39:41 +0000 (+0900) Subject: Fix testing and setting set_options bitmap X-Git-Tag: fio-2.2.9~1 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=e9d686d62ee544098a3d2534574b7ae9c22f4163;p=fio.git Fix testing and setting set_options bitmap set_options bitmap is an array of uint64_t. But while testing and setting a bit in the bitmap, the bit mask is calculated with an unsigned long value. For the systems which have 32-bit long type, upper 32-bit cannot be set correctly. Fix it by using (uint64_t)1 instead of 1UL to calculate correct bit mask. Signed-off-by: Akinobu Mita Signed-off-by: Jens Axboe --- diff --git a/options.c b/options.c index 76146a71..ed5d37e4 100644 --- a/options.c +++ b/options.c @@ -4365,7 +4365,7 @@ static int opt_is_set(struct thread_options *o, struct fio_option *opt) opt_off = opt - &fio_options[0]; index = opt_off / (8 * sizeof(uint64_t)); offset = opt_off & ((8 * sizeof(uint64_t)) - 1); - return (o->set_options[index] & (1UL << offset)) != 0; + return (o->set_options[index] & ((uint64_t)1 << offset)) != 0; } int __fio_option_is_set(struct thread_options *o, unsigned int off1) @@ -4390,5 +4390,5 @@ void fio_option_mark_set(struct thread_options *o, struct fio_option *opt) opt_off = opt - &fio_options[0]; index = opt_off / (8 * sizeof(uint64_t)); offset = opt_off & ((8 * sizeof(uint64_t)) - 1); - o->set_options[index] |= 1UL << offset; + o->set_options[index] |= (uint64_t)1 << offset; }