Re: [GIT PULL] XArray for 5.8

From: Matthew Wilcox
Date: Wed Jul 22 2020 - 14:46:40 EST


On Wed, Jul 22, 2020 at 11:40:13AM -0700, Linus Torvalds wrote:
> On Wed, Jul 22, 2020 at 7:11 AM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
> >
> > XArray updates for 5.8
> >
> > - Fix the test suite after introduction of the local_lock
>
> What? No.
>
> Now you broke the actual kernel build:
>
> In file included from ./include/linux/local_lock.h:5,
> from ./include/linux/radix-tree.h:14,
> from ./include/linux/idr.h:15,
> from lib/idr.c:5:
> ./include/linux/local_lock_internal.h: In function âlocal_lock_acquireâ:
> ./include/linux/local_lock_internal.h:41:13: error: âcurrentâ
> undeclared (first use in this function)
> 41 | l->owner = current;
> | ^~~~~~~
> ./include/linux/local_lock_internal.h:41:13: note: each undeclared
> identifier is reported only once for each function it appears in
>
> How the hell did you not see this, and why did you think it was a good
> idea to mess with kernel headers and make them alphabetically ordered?

Ah, crap. I was building without CONFIG_DEBUG_LOCK_ALLOC, so I didn't
see this.

But I think the real problem is that local_lock_internal.h doesn't include
<linux/sched.h>. Header files shouldn't depend on other headers to be
included first.

> Headers need to be ordered by _contents_, not by some "sort alphabetically".
>
> Do you sort your bookcases by color and size of the book too?

By author, typically ;-)