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

From: Jens Axboe
Date: Thu Jun 01 2023 - 11:15:26 EST


On 6/1/23 2:27 AM, Johannes Thumshirn wrote:
> On 01.06.23 02:50, Stephen Rothwell wrote:
>> Hi all,
>>
>> After merging the block tree, today's linux-next build (x86_64
>> allmodconfig) failed like this:
>>
>> In file included from include/linux/slab.h:15,
>> from drivers/md/raid1.c:26:
>> drivers/md/raid1.c: In function 'alloc_behind_master_bio':
>> include/linux/gfp.h:320:36: error: passing argument 1 of 'free_pages' makes integer from pointer without a cast [-Werror=int-conversion]
>> 320 | #define free_page(addr) free_pages((addr), 0)
>> | ^~~~~~
>> | |
>> | struct page *
>> drivers/md/raid1.c:1151:25: note: in expansion of macro 'free_page'
>> 1151 | free_page(page);
>> | ^~~~~~~~~
>> include/linux/gfp.h:303:38: note: expected 'long unsigned int' but argument is of type 'struct page *'
>> 303 | extern void free_pages(unsigned long addr, unsigned int order);
>> | ~~~~~~~~~~~~~~^~~~
>>
>> Caused by commit
>>
>> 6473bc325644 ("md: check for failure when adding pages in alloc_behind_master_bio")
>>
>> I have used the block tree from next-20230531 for today.
>>
>
> This obviously has to be:
> diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
> index ff89839455ec..3570da63969b 100644
> --- a/drivers/md/raid1.c
> +++ b/drivers/md/raid1.c
> @@ -1148,7 +1148,7 @@ static void alloc_behind_master_bio(struct r1bio *r1_bio,
> goto free_pages;
>
> if (!bio_add_page(behind_bio, page, len, 0)) {
> - free_page(page);
> + put_page(page);
> goto free_pages;
> }
>
>
> But I wonder why I dint see it in my allmodconfig build.
>
> Jens can you fold that in or do you want me to update the patch?

Done

--
Jens Axboe