Thread (3 messages) 3 messages, 3 authors, 2017-09-30

Re: [PATCH v2] powerpc: fix compile error on 64K pages on 40x, 44x

From: Christian Lamparter <hidden>
Date: 2017-09-30 10:05:35

On Saturday, September 30, 2017 10:25:45 AM CEST christophe leroy wrote:
=20
Le 28/09/2017 =C3=A0 20:32, Christian Lamparter a =C3=A9crit :
quoted
The mmu context on the 40x, 44x does not define pte_frag
entry. This causes gcc abort the compilation due to:
=20
setup-common.c: In function =E2=80=98setup_arch=E2=80=99:
setup-common.c:908: error: =E2=80=98mm_context_t=E2=80=99 has no =E2=80=
=98pte_frag=E2=80=99
quoted
=20
This patch fixes the issue by adding additional guard
conditions, that limit the initialization to just
platforms that define the pte_frag variable in the
mmu context.
=20
Wouldn't it be better to amend mm_context_t with the following, just=20
like other platforms, instead of a #ifdef in setup_arch() ?

#ifdef CONFIG_PPC_64K_PAGES
	/* for 4K PTE fragment support */
	void *pte_frag;
#endif
This would require to add this dead weight to the mm_context_t of
asm/mmu-40x.h, asm/mmu-44x.h and asm/mmu-8xx.h.=20
asm/mmu-book3e.h already has the pte_frag defined.
But it is not used by any mmu-book3e/mmu-32 code as far as I can tell.
Otherwise, since init_mm is defined in BSS, is setting pte_frag to NULL=20
needed at all ?
I think removing this line would be better.
Yes, in fact it's guaranteed to be NULL by C99.
This is because init_mm is of external linkage and this makes it of "static=
=20
storage class" according to 6.2.4.3:
"An object whose identifier is declared with external or internal linkage,
or with the storage-class specifier static has static storage duration."

And C99 defines in 6.7.8.10 Initialization that: "
If an object that has static storage duration is not initialized explicitly,
then:
=E2=80=94 if it has pointer type, it is initialized to a null pointer;
[...]
"

so yes, init_mm.context.pte_frag =3D NULL; can be dropped.=20

The question is what to do with BOOK3E mmu.h? After all the
pte_frag serves no purpose there.

Regards,
Christian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help