Re: [PATCH 1/2] sh: remove sh5 support

From: Geert Uytterhoeven
Date: Mon Apr 20 2020 - 10:40:16 EST


Hi Arnd,

On Mon, Apr 20, 2020 at 2:40 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> sh5 never became a product and has probably never really worked.
>
> Remove it by recursively deleting all associated Kconfig options
> and all corresponding files.

Thanks a lot!

> For review purposes, this leaves out the files that can now be
> removed, in particular
>
> arch/sh/drivers/pci/*-sh5.c
> arch/sh/include/asm/*_64.h
> arch/sh/include/uapi/asm/*_64.h
> arch/sh/include/cpu-sh5/*
> arch/sh/kernel/cpu/sh5/*
> arch/sh/lib64/*
> arch/sh/mm/*-sh5.c
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>

A few nits below...

> --- a/arch/sh/Kconfig
> +++ b/arch/sh/Kconfig
> @@ -62,7 +62,7 @@ config SUPERH
> <http://www.linux-sh.org/>.
>
> config SUPERH32

Why keep the SUPERH32 symbol?
Because you forgot to clean a few files?

arch/sh/include/asm/bl_bit.h:#ifdef CONFIG_SUPERH32
arch/sh/include/asm/cache_insns.h:#ifdef CONFIG_SUPERH32
arch/sh/include/asm/checksum.h:#ifdef CONFIG_SUPERH32

> - def_bool "$(ARCH)" = "sh"
> + def_bool y
> select ARCH_32BIT_OFF_T
> select GUP_GET_PTE_LOW_HIGH if X2TLB
> select HAVE_KPROBES

> --- a/arch/sh/include/asm/syscalls.h
> +++ b/arch/sh/include/asm/syscalls.h
> @@ -2,8 +2,6 @@
> #ifndef __ASM_SH_SYSCALLS_H
> #define __ASM_SH_SYSCALLS_H
>
> -#ifdef __KERNEL__

Unrelated change, but I guess it doesn't hurt ;-)

> -
> asmlinkage int old_mmap(unsigned long addr, unsigned long len,
> unsigned long prot, unsigned long flags,
> int fd, unsigned long off);
> @@ -11,11 +9,6 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
> unsigned long prot, unsigned long flags,
> unsigned long fd, unsigned long pgoff);
>
> -#ifdef CONFIG_SUPERH32
> -# include <asm/syscalls_32.h>
> -#else
> -# include <asm/syscalls_64.h>
> -#endif
> +#include <asm/syscalls_32.h>
>
> -#endif /* __KERNEL__ */
> #endif /* __ASM_SH_SYSCALLS_H */

> --- a/arch/sh/include/asm/vmlinux.lds.h
> +++ b/arch/sh/include/asm/vmlinux.lds.h
> @@ -15,12 +15,6 @@
> #define DWARF_EH_FRAME
> #endif
>
> -#ifdef CONFIG_SUPERH64
> -#define EXTRA_TEXT \
> - *(.text64) \
> - *(.text..SHmedia32)
> -#else
> #define EXTRA_TEXT
> -#endif

You might remove the empty definition, too, as you removed the sole user...

> --- a/arch/sh/kernel/vmlinux.lds.S
> +++ b/arch/sh/kernel/vmlinux.lds.S

> @@ -28,14 +21,13 @@ SECTIONS
>
> _text = .; /* Text and read-only data */
>
> - .empty_zero_page : AT(ADDR(.empty_zero_page) - LOAD_OFFSET) {
> + .empty_zero_page : AT(ADDR(.empty_zero_page)) {
> *(.empty_zero_page)
> } = 0
>
> - .text : AT(ADDR(.text) - LOAD_OFFSET) {
> + .text : AT(ADDR(.text)) {
> HEAD_TEXT
> TEXT_TEXT
> - EXTRA_TEXT

... here.

> SCHED_TEXT
> CPUIDLE_TEXT
> LOCK_TEXT

I think at least some of the following should be cleant, too:

arch/sh/include/asm/elf.h:#ifdef __SH5__
arch/sh/include/uapi/asm/posix_types.h:# ifdef __SH5__
arch/sh/include/uapi/asm/swab.h:#ifdef __SH5__
arch/sh/include/uapi/asm/swab.h:#ifdef __SH5__
arch/sh/include/uapi/asm/unistd.h:# ifdef __SH5__
tools/arch/sh/include/asm/barrier.h:#if defined(__SH4A__) || defined(__SH5__)

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds