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).
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
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
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).
Next try. I removed the change of ACCESS_ONCE and just left the new interfaces and the simple reworks in the queue.
I will tackle everything else after rc1 when next should be small again. Keeping fingers crossed....
Christian