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

From: Christian Borntraeger
Date: Mon Dec 08 2014 - 06:35:47 EST


Am 08.12.2014 um 12:26 schrieb Stephen Rothwell:
> Hi Christian,
>
> After merging the acess_once tree, today's linux-next build (powerpc
> allnoconfig) failed like this:
>
> arch/powerpc/mm/hugetlbpage.c: In function 'find_linux_pte_or_hugepte':
> arch/powerpc/mm/hugetlbpage.c:981:3: error: invalid initializer
> pud = ACCESS_ONCE(*pudp);
> ^
> arch/powerpc/mm/hugetlbpage.c:993:4: error: invalid initializer
> pmd = ACCESS_ONCE(*pmdp);
> ^
>
> These are preexisting ...
>
> mm/gup.c: In function 'gup_pmd_range':
> mm/gup.c:929:3: error: invalid initializer
> pmd_t pmd = ACCESS_ONCE(*pmdp);
> ^
> mm/gup.c:929:3: error: (near initialization for 'pmd')
>
> This is from commit f30c59e921f1 ("mm: Update generic gup
> implementation to handle hugepage directory") from the powerpc-mpe (and
> powerpc) tree and so will require a merge fix patch (presumable
> s/ACCESS_ONCE/READ_ONCE/).
>
> I am not sure how many architectures you are trying to cover, but
> powerpc is one I care about :-)
>
> I have dropped the access_once tree again today, sorry (its too late at
> night).

Yes, we expect that tightening ACCESS_ONCE will trigger these bugs. I tried to cover everything in Linus master, but next is certainly a new game. It will be pretty hard for me to keep this running when hundreds of trees get merged during 3.19-rc. :-(

Linus, I see two options:

a: Either we go a full round in linux-next and expect all trees to follow the new rules, so we can merge this for 3.20
b: Only apply READ/ASSIGN_ONCE and the first fixups for 3.19 and put the ACCESS_ONCE change in next after rc1 so it will go in for 3.20 (or later) so that people can adopt.

Any opinions?

Christian


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/