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

Paul E. McKenney
2023-03-14T04:43:44Z

On Tue, Mar 14, 2023 at 12:29:22PM +1100, Stephen Rothwell wrote:
> Hi all,
>
> After merging the rcu tree, today's linux-next build (x86_64 allmodconfig)
> failed like this:
>
> net/mac802154/scan.c: In function 'mac802154_scan_cleanup_locked':
> net/mac802154/scan.c:55:26: error: macro "kfree_rcu" requires 2 arguments, but only 1 given
> 55 | kfree_rcu(request);
> | ^
> In file included from include/linux/rbtree.h:24,
> from include/linux/mm_types.h:11,
> from include/linux/buildid.h:5,
> from include/linux/module.h:14,
> from net/mac802154/scan.c:11:
> include/linux/rcupdate.h:984: note: macro "kfree_rcu" defined here
> 984 | #define kfree_rcu(ptr, rhf) kvfree_rcu_arg_2(ptr, rhf)
> |
> net/mac802154/scan.c:55:9: error: 'kfree_rcu' undeclared (first use in this function); did you mean 'kfree_skb'?
> 55 | kfree_rcu(request);
> | ^~~~~~~~~
> | kfree_skb
> net/mac802154/scan.c:55:9: note: each undeclared identifier is reported only once for each function it appears in
> net/mac802154/scan.c: In function 'mac802154_stop_beacons_locked':
> net/mac802154/scan.c:406:26: error: macro "kfree_rcu" requires 2 arguments, but only 1 given
> 406 | kfree_rcu(request);
> | ^
> include/linux/rcupdate.h:984: note: macro "kfree_rcu" defined here
> 984 | #define kfree_rcu(ptr, rhf) kvfree_rcu_arg_2(ptr, rhf)
> |
> net/mac802154/scan.c:406:9: error: 'kfree_rcu' undeclared (first use in this function); did you mean 'kfree_skb'?
> 406 | kfree_rcu(request);
> | ^~~~~~~~~
> | kfree_skb
> drivers/infiniband/sw/rxe/rxe_mr.c: In function 'rxe_dereg_mr':
> drivers/infiniband/sw/rxe/rxe_mr.c:734:21: error: macro "kfree_rcu" requires 2 arguments, but only 1 given
> 734 | kfree_rcu(mr);
> | ^
> In file included from include/linux/rculist.h:11,
> from include/linux/dcache.h:8,
> from include/linux/fs.h:8,
> from include/linux/highmem.h:5,
> from include/linux/bvec.h:10,
> from include/linux/blk_types.h:10,
> from include/linux/bio.h:10,
> from include/linux/libnvdimm.h:14,
> from drivers/infiniband/sw/rxe/rxe_mr.c:7:
> include/linux/rcupdate.h:984: note: macro "kfree_rcu" defined here
> 984 | #define kfree_rcu(ptr, rhf) kvfree_rcu_arg_2(ptr, rhf)
> |
> drivers/infiniband/sw/rxe/rxe_mr.c:734:9: error: 'kfree_rcu' undeclared (first use in this function); did you mean 'kfree_skb'?
> 734 | kfree_rcu(mr);
> | ^~~~~~~~~
> | kfree_skb
> drivers/infiniband/sw/rxe/rxe_mr.c:734:9: note: each undeclared identifier is reported only once for each function it appears in
>
> Caused by commit
>
> 62a2ac23b35f ("rcu/kvfree: Eliminate k[v]free_rcu() single argument macro")
>
> I have used the rcu tree from next-20230310 for today.

Please accept my apologies -- I left out that revert. I have pushed
out an rcu/next including it.

But I guess we now know for sure that this revert is still needed. :-/

Thanx, Paul