Re: [PATCH] arm64: allow late use of early_ioremap
On Wed, 2015-01-14 at 16:22 +0800, Hanjun Guo wrote: > Hi Mark, > > On 2015年01月13日 03:09, Mark Salter wrote: > > On Mon, 2015-01-12 at 17:25 +, Will Deacon wrote: > >> On Mon, Jan 12, 2015 at 04:55:11PM +, Mark Salter wrote: > >>> Commit 0e63ea48b4d8 (arm64/efi: add missing call to early_ioremap_reset()) > >>> added a missing call to early_ioremap_reset(). This triggers a BUG if code > >>> tries using early_ioremap() after the early_ioremap_reset(). This is a > >>> problem for some ACPI code which needs short-lived temporary mappings > >>> after paging_init() but before mm_init(). This patch adds definitions for > > Minor update: > ... after paging_init() but before acpi_early_init() in start_kernel(). > > In ACPI, permanent mapping will be used after acpi_gbl_permanent_mmap > set to 1 in acpi_early_init(), since GIC init and Arch timer init will > be called before acpi_early_init(), early_ioremap() is still needed > after mm_init(). > > >>> the __late_set_fixmap() and __late_clear_fixmap() which avoids the BUG > >>> by allowing later use of early_ioremap(). > >>> > >>> Signed-off-by: Mark Salter > >>> CC: Leif Lindholm > >>> CC: Ard Biesheuvel > >>> --- > >>> arch/arm64/include/asm/fixmap.h | 3 +++ > >>> 1 file changed, 3 insertions(+) > >> > >> Given that we don't support ACPI on arm64 in mainline, I assume this can > >> wait until at least 3.20? > > > > Sure. Just needs it to go in before ACPI code. And tbh, the ACPI code > > could change and make this unneeded. > > This is the best solution for now, so I need to add this patch as the > first one for ACPI core patch set, is it ok for you? Yes. Thanks. > > Thanks > Hanjun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] arm64: allow late use of early_ioremap
Hi Mark, On 2015年01月13日 03:09, Mark Salter wrote: On Mon, 2015-01-12 at 17:25 +, Will Deacon wrote: On Mon, Jan 12, 2015 at 04:55:11PM +, Mark Salter wrote: Commit 0e63ea48b4d8 (arm64/efi: add missing call to early_ioremap_reset()) added a missing call to early_ioremap_reset(). This triggers a BUG if code tries using early_ioremap() after the early_ioremap_reset(). This is a problem for some ACPI code which needs short-lived temporary mappings after paging_init() but before mm_init(). This patch adds definitions for Minor update: ... after paging_init() but before acpi_early_init() in start_kernel(). In ACPI, permanent mapping will be used after acpi_gbl_permanent_mmap set to 1 in acpi_early_init(), since GIC init and Arch timer init will be called before acpi_early_init(), early_ioremap() is still needed after mm_init(). the __late_set_fixmap() and __late_clear_fixmap() which avoids the BUG by allowing later use of early_ioremap(). Signed-off-by: Mark Salter CC: Leif Lindholm CC: Ard Biesheuvel --- arch/arm64/include/asm/fixmap.h | 3 +++ 1 file changed, 3 insertions(+) Given that we don't support ACPI on arm64 in mainline, I assume this can wait until at least 3.20? Sure. Just needs it to go in before ACPI code. And tbh, the ACPI code could change and make this unneeded. This is the best solution for now, so I need to add this patch as the first one for ACPI core patch set, is it ok for you? Thanks Hanjun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] arm64: allow late use of early_ioremap
On Mon, 2015-01-12 at 17:25 +, Will Deacon wrote: > On Mon, Jan 12, 2015 at 04:55:11PM +, Mark Salter wrote: > > Commit 0e63ea48b4d8 (arm64/efi: add missing call to early_ioremap_reset()) > > added a missing call to early_ioremap_reset(). This triggers a BUG if code > > tries using early_ioremap() after the early_ioremap_reset(). This is a > > problem for some ACPI code which needs short-lived temporary mappings > > after paging_init() but before mm_init(). This patch adds definitions for > > the __late_set_fixmap() and __late_clear_fixmap() which avoids the BUG > > by allowing later use of early_ioremap(). > > > > Signed-off-by: Mark Salter > > CC: Leif Lindholm > > CC: Ard Biesheuvel > > --- > > arch/arm64/include/asm/fixmap.h | 3 +++ > > 1 file changed, 3 insertions(+) > > Given that we don't support ACPI on arm64 in mainline, I assume this can > wait until at least 3.20? Sure. Just needs it to go in before ACPI code. And tbh, the ACPI code could change and make this unneeded. > > Will > > > diff --git a/arch/arm64/include/asm/fixmap.h > > b/arch/arm64/include/asm/fixmap.h > > index 9ef6eca..e629c70 100644 > > --- a/arch/arm64/include/asm/fixmap.h > > +++ b/arch/arm64/include/asm/fixmap.h > > @@ -61,6 +61,9 @@ void __init early_fixmap_init(void); > > > > #define __early_set_fixmap __set_fixmap > > > > +#define __late_set_fixmap __set_fixmap > > +#define __late_clear_fixmap(idx) __set_fixmap((idx), 0, FIXMAP_PAGE_CLEAR) > > + > > extern void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, > > pgprot_t prot); > > > > #include > > -- > > 1.8.3.1 > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] arm64: allow late use of early_ioremap
On Mon, Jan 12, 2015 at 04:55:11PM +, Mark Salter wrote: > Commit 0e63ea48b4d8 (arm64/efi: add missing call to early_ioremap_reset()) > added a missing call to early_ioremap_reset(). This triggers a BUG if code > tries using early_ioremap() after the early_ioremap_reset(). This is a > problem for some ACPI code which needs short-lived temporary mappings > after paging_init() but before mm_init(). This patch adds definitions for > the __late_set_fixmap() and __late_clear_fixmap() which avoids the BUG > by allowing later use of early_ioremap(). > > Signed-off-by: Mark Salter > CC: Leif Lindholm > CC: Ard Biesheuvel > --- > arch/arm64/include/asm/fixmap.h | 3 +++ > 1 file changed, 3 insertions(+) Given that we don't support ACPI on arm64 in mainline, I assume this can wait until at least 3.20? Will > diff --git a/arch/arm64/include/asm/fixmap.h b/arch/arm64/include/asm/fixmap.h > index 9ef6eca..e629c70 100644 > --- a/arch/arm64/include/asm/fixmap.h > +++ b/arch/arm64/include/asm/fixmap.h > @@ -61,6 +61,9 @@ void __init early_fixmap_init(void); > > #define __early_set_fixmap __set_fixmap > > +#define __late_set_fixmap __set_fixmap > +#define __late_clear_fixmap(idx) __set_fixmap((idx), 0, FIXMAP_PAGE_CLEAR) > + > extern void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, > pgprot_t prot); > > #include > -- > 1.8.3.1 > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH] arm64: allow late use of early_ioremap
Commit 0e63ea48b4d8 (arm64/efi: add missing call to early_ioremap_reset()) added a missing call to early_ioremap_reset(). This triggers a BUG if code tries using early_ioremap() after the early_ioremap_reset(). This is a problem for some ACPI code which needs short-lived temporary mappings after paging_init() but before mm_init(). This patch adds definitions for the __late_set_fixmap() and __late_clear_fixmap() which avoids the BUG by allowing later use of early_ioremap(). Signed-off-by: Mark Salter CC: Leif Lindholm CC: Ard Biesheuvel --- arch/arm64/include/asm/fixmap.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm64/include/asm/fixmap.h b/arch/arm64/include/asm/fixmap.h index 9ef6eca..e629c70 100644 --- a/arch/arm64/include/asm/fixmap.h +++ b/arch/arm64/include/asm/fixmap.h @@ -61,6 +61,9 @@ void __init early_fixmap_init(void); #define __early_set_fixmap __set_fixmap +#define __late_set_fixmap __set_fixmap +#define __late_clear_fixmap(idx) __set_fixmap((idx), 0, FIXMAP_PAGE_CLEAR) + extern void __set_fixmap(enum fixed_addresses idx, phys_addr_t phys, pgprot_t prot); #include -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/