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

Johannes Thumshirn
2023-06-01T08:27:36Z

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?