2015-07-16 17:59:14

by Mark Salter

[permalink] [raw]
Subject: [PATCH] arm64: remove dead code

Commit 68234df4ea79 ("arm64: kill flush_cache_all()") removed
soft_reset() from the kernel. This was the only caller of
setup_mm_for_reboot(), so remove that also.

Signed-off-by: Mark Salter <[email protected]>
---
arch/arm64/include/asm/mmu.h | 1 -
arch/arm64/mm/mmu.c | 11 -----------
2 files changed, 12 deletions(-)

diff --git a/arch/arm64/include/asm/mmu.h b/arch/arm64/include/asm/mmu.h
index 79fcfb0..0302087 100644
--- a/arch/arm64/include/asm/mmu.h
+++ b/arch/arm64/include/asm/mmu.h
@@ -28,7 +28,6 @@ typedef struct {
#define ASID(mm) ((mm)->context.id & 0xffff)

extern void paging_init(void);
-extern void setup_mm_for_reboot(void);
extern void __iomem *early_io_map(phys_addr_t phys, unsigned long virt);
extern void init_mem_pgprot(void);
extern void create_pgd_mapping(struct mm_struct *mm, phys_addr_t phys,
diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index a4ede4e..63012fe 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -461,17 +461,6 @@ void __init paging_init(void)
}

/*
- * Enable the identity mapping to allow the MMU disabling.
- */
-void setup_mm_for_reboot(void)
-{
- cpu_set_reserved_ttbr0();
- flush_tlb_all();
- cpu_set_idmap_tcr_t0sz();
- cpu_switch_mm(idmap_pg_dir, &init_mm);
-}
-
-/*
* Check whether a kernel address is valid (derived from arch/x86/).
*/
int kern_addr_valid(unsigned long addr)
--
2.4.3


2015-07-17 06:49:28

by Ard Biesheuvel

[permalink] [raw]
Subject: Re: [PATCH] arm64: remove dead code

(adding Geoff and Takahiro)

On 16 July 2015 at 19:58, Mark Salter <[email protected]> wrote:
> Commit 68234df4ea79 ("arm64: kill flush_cache_all()") removed
> soft_reset() from the kernel. This was the only caller of
> setup_mm_for_reboot(), so remove that also.
>

I am wondering if setup_mm_for_reboot() is being used in the kexec
patches. Perhaps we should check that before removing it.

Geoff?


> Signed-off-by: Mark Salter <[email protected]>
> ---
> arch/arm64/include/asm/mmu.h | 1 -
> arch/arm64/mm/mmu.c | 11 -----------
> 2 files changed, 12 deletions(-)
>
> diff --git a/arch/arm64/include/asm/mmu.h b/arch/arm64/include/asm/mmu.h
> index 79fcfb0..0302087 100644
> --- a/arch/arm64/include/asm/mmu.h
> +++ b/arch/arm64/include/asm/mmu.h
> @@ -28,7 +28,6 @@ typedef struct {
> #define ASID(mm) ((mm)->context.id & 0xffff)
>
> extern void paging_init(void);
> -extern void setup_mm_for_reboot(void);
> extern void __iomem *early_io_map(phys_addr_t phys, unsigned long virt);
> extern void init_mem_pgprot(void);
> extern void create_pgd_mapping(struct mm_struct *mm, phys_addr_t phys,
> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
> index a4ede4e..63012fe 100644
> --- a/arch/arm64/mm/mmu.c
> +++ b/arch/arm64/mm/mmu.c
> @@ -461,17 +461,6 @@ void __init paging_init(void)
> }
>
> /*
> - * Enable the identity mapping to allow the MMU disabling.
> - */
> -void setup_mm_for_reboot(void)
> -{
> - cpu_set_reserved_ttbr0();
> - flush_tlb_all();
> - cpu_set_idmap_tcr_t0sz();
> - cpu_switch_mm(idmap_pg_dir, &init_mm);
> -}
> -
> -/*
> * Check whether a kernel address is valid (derived from arch/x86/).
> */
> int kern_addr_valid(unsigned long addr)
> --
> 2.4.3
>

2015-07-17 06:50:32

by Ard Biesheuvel

[permalink] [raw]
Subject: Re: [PATCH] arm64: remove dead code

(use Geoff's correct email address)

On 17 July 2015 at 08:49, Ard Biesheuvel <[email protected]> wrote:
> (adding Geoff and Takahiro)
>
> On 16 July 2015 at 19:58, Mark Salter <[email protected]> wrote:
>> Commit 68234df4ea79 ("arm64: kill flush_cache_all()") removed
>> soft_reset() from the kernel. This was the only caller of
>> setup_mm_for_reboot(), so remove that also.
>>
>
> I am wondering if setup_mm_for_reboot() is being used in the kexec
> patches. Perhaps we should check that before removing it.
>
> Geoff?
>
>
>> Signed-off-by: Mark Salter <[email protected]>
>> ---
>> arch/arm64/include/asm/mmu.h | 1 -
>> arch/arm64/mm/mmu.c | 11 -----------
>> 2 files changed, 12 deletions(-)
>>
>> diff --git a/arch/arm64/include/asm/mmu.h b/arch/arm64/include/asm/mmu.h
>> index 79fcfb0..0302087 100644
>> --- a/arch/arm64/include/asm/mmu.h
>> +++ b/arch/arm64/include/asm/mmu.h
>> @@ -28,7 +28,6 @@ typedef struct {
>> #define ASID(mm) ((mm)->context.id & 0xffff)
>>
>> extern void paging_init(void);
>> -extern void setup_mm_for_reboot(void);
>> extern void __iomem *early_io_map(phys_addr_t phys, unsigned long virt);
>> extern void init_mem_pgprot(void);
>> extern void create_pgd_mapping(struct mm_struct *mm, phys_addr_t phys,
>> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
>> index a4ede4e..63012fe 100644
>> --- a/arch/arm64/mm/mmu.c
>> +++ b/arch/arm64/mm/mmu.c
>> @@ -461,17 +461,6 @@ void __init paging_init(void)
>> }
>>
>> /*
>> - * Enable the identity mapping to allow the MMU disabling.
>> - */
>> -void setup_mm_for_reboot(void)
>> -{
>> - cpu_set_reserved_ttbr0();
>> - flush_tlb_all();
>> - cpu_set_idmap_tcr_t0sz();
>> - cpu_switch_mm(idmap_pg_dir, &init_mm);
>> -}
>> -
>> -/*
>> * Check whether a kernel address is valid (derived from arch/x86/).
>> */
>> int kern_addr_valid(unsigned long addr)
>> --
>> 2.4.3
>>

2015-07-17 09:45:54

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH] arm64: remove dead code

On Fri, Jul 17, 2015 at 07:50:30AM +0100, Ard Biesheuvel wrote:
> (use Geoff's correct email address)
>
> On 17 July 2015 at 08:49, Ard Biesheuvel <[email protected]> wrote:
> > (adding Geoff and Takahiro)
> >
> > On 16 July 2015 at 19:58, Mark Salter <[email protected]> wrote:
> >> Commit 68234df4ea79 ("arm64: kill flush_cache_all()") removed
> >> soft_reset() from the kernel. This was the only caller of
> >> setup_mm_for_reboot(), so remove that also.
> >>
> >
> > I am wondering if setup_mm_for_reboot() is being used in the kexec
> > patches. Perhaps we should check that before removing it.

Well, given that I can't see any kexec patches on the radar for 4.3, I'm
happy to merge this clean-up and Geoff can reintroduce the function in
his series if he needs it.

Will

2015-07-17 09:46:30

by Ard Biesheuvel

[permalink] [raw]
Subject: Re: [PATCH] arm64: remove dead code

On 17 July 2015 at 11:45, Will Deacon <[email protected]> wrote:
> On Fri, Jul 17, 2015 at 07:50:30AM +0100, Ard Biesheuvel wrote:
>> (use Geoff's correct email address)
>>
>> On 17 July 2015 at 08:49, Ard Biesheuvel <[email protected]> wrote:
>> > (adding Geoff and Takahiro)
>> >
>> > On 16 July 2015 at 19:58, Mark Salter <[email protected]> wrote:
>> >> Commit 68234df4ea79 ("arm64: kill flush_cache_all()") removed
>> >> soft_reset() from the kernel. This was the only caller of
>> >> setup_mm_for_reboot(), so remove that also.
>> >>
>> >
>> > I am wondering if setup_mm_for_reboot() is being used in the kexec
>> > patches. Perhaps we should check that before removing it.
>
> Well, given that I can't see any kexec patches on the radar for 4.3, I'm
> happy to merge this clean-up and Geoff can reintroduce the function in
> his series if he needs it.
>

OK, fair enough

2015-07-17 17:43:13

by Geoff Levand

[permalink] [raw]
Subject: Re: [PATCH] arm64: remove dead code

Hi,

On Fri, 2015-07-17 at 08:50 +0200, Ard Biesheuvel wrote:
> > On 16 July 2015 at 19:58, Mark Salter <[email protected]> wrote:
> >> Commit 68234df4ea79 ("arm64: kill flush_cache_all()") removed
> >> soft_reset() from the kernel. This was the only caller of
> >> setup_mm_for_reboot(), so remove that also.
> >
> > I am wondering if setup_mm_for_reboot() is being used in the kexec
> > patches. Perhaps we should check that before removing it.

The whole CPU reset support that kexec was using was removed.

I started on reimplementing a new cpu_reset() routine (in my
master branch at [1]), but I can only work on it when I have
some extra time, and these days that is not very often.

[1] https://git.kernel.org/cgit/linux/kernel/git/geoff/linux-kexec.git/

-Geoff