Subject: Re: linux-next: build warnings after merge of the block tree

From: Jens Axboe <[email-masked]>
Date: Tue, 6 Feb 2024 07:53:11 -0700

On 2/6/24 6:42 AM, Geert Uytterhoeven wrote:
> On Tue, Feb 6, 2024 at 12:12 PM Geert Uytterhoeven <[email-masked]> wrote:
>> On Tue, Feb 6, 2024 at 3:11 AM Stephen Rothwell <[email-masked]> wrote:
>>> After merging the block tree, today's linux-next build (arm
>>> multi_v7_defconfig) produced these warnings:
>>>
>>> In file included from /home/sfr/next/next/include/linux/bits.h:6,
>>>                  from /home/sfr/next/next/include/linux/bitops.h:6,
>>>                  from /home/sfr/next/next/include/linux/kernel.h:23,
>>>                  from /home/sfr/next/next/io_uring/nop.c:2:
>>> /home/sfr/next/next/include/vdso/bits.h:7:40: warning: left shift count >= width of type [-Wshift-count-overflow]
>>>     7 | #define BIT(nr)                 (UL(1) << (nr))
>>>       |                                        ^~
>>> /home/sfr/next/next/include/linux/io_uring_types.h:538:35: note: in expansion of macro 'BIT'
>>>   538 |         REQ_F_CAN_POLL          = BIT(REQ_F_CAN_POLL_BIT),
>>>       |                                   ^~~
>>>
>>> (and mny more similar)
>>>
>>> Introduced by commit
>>>
>>>   d964e8440442 ("io_uring: add io_file_can_poll() helper")
>>>
>>> REQ_F_CAN_POLL_BIT is 32.
>>
>> All of these BIT() have to be changed to BIT_ULL().
>> And let's hope all variables used for storing these flags have been
>> changed from unsigned long to u64...
> 
> I have sent a fix
> https://lore.kernel.org/19601[email-masked]

It needs a bit more than that, just because there's one helper that
also returns flags to be set. I've sorted it out and amended the commit,
should be fine now. I'll check on 32-bit as well.

-- 
Jens Axboe