io_uring: fix 1-bit bitfields to be unsigned
authorRandy Dunlap <rdunlap@infradead.org>
Thu, 6 Feb 2020 04:57:10 +0000 (20:57 -0800)
committerJens Axboe <axboe@kernel.dk>
Thu, 6 Feb 2020 20:41:00 +0000 (13:41 -0700)
Make bitfields of size 1 bit be unsigned (since there is no room
for the sign bit).
This clears up the sparse warnings:

  CHECK   ../fs/io_uring.c
../fs/io_uring.c:207:50: error: dubious one-bit signed bitfield
../fs/io_uring.c:208:55: error: dubious one-bit signed bitfield
../fs/io_uring.c:209:63: error: dubious one-bit signed bitfield
../fs/io_uring.c:210:54: error: dubious one-bit signed bitfield
../fs/io_uring.c:211:57: error: dubious one-bit signed bitfield

Found by sight and then verified with sparse.

Fixes: 69b3e546139a ("io_uring: change io_ring_ctx bool fields into bit fields")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: io-uring@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 1859e866c7285657edeab5fb62e06ec215be2f6f..a31187e90697eeabcc75d73d1cc70a7acfb30e5a 100644 (file)
@@ -204,11 +204,11 @@ struct io_ring_ctx {
 
        struct {
                unsigned int            flags;
-               int                     compat: 1;
-               int                     account_mem: 1;
-               int                     cq_overflow_flushed: 1;
-               int                     drain_next: 1;
-               int                     eventfd_async: 1;
+               unsigned int            compat: 1;
+               unsigned int            account_mem: 1;
+               unsigned int            cq_overflow_flushed: 1;
+               unsigned int            drain_next: 1;
+               unsigned int            eventfd_async: 1;
 
                /*
                 * Ring buffer of indices into array of io_uring_sqe, which is