Re: [PATCH] arm64: allow late use of early_ioremap

2015-01-14 Thread Mark Salter
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

2015-01-14 Thread Hanjun Guo

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

2015-01-12 Thread Mark Salter
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

2015-01-12 Thread Will Deacon
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

2015-01-12 Thread Mark Salter
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/