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 <akinobu.mita@gmail.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
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)
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;
}