]> Git Repo - linux.git/commitdiff
Merge tag 'sh-for-v6.4-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubit...
authorLinus Torvalds <[email protected]>
Fri, 28 Apr 2023 00:41:23 +0000 (17:41 -0700)
committerLinus Torvalds <[email protected]>
Fri, 28 Apr 2023 00:41:23 +0000 (17:41 -0700)
Pull sh updates from John Paul Adrian Glaubitz:
 "This is a bit larger than my previous one and mainly consists of
  clean-up work in the arch/sh directory by Geert Uytterhoeven and Randy
  Dunlap.

  Additionally, this fixes a bug in the Storage Queue code that was
  discovered while I was reviewing a patch to switch the code to the
  bitmap API by Christophe Jaillet.

  So this contains both a fix for the original bug in the Storage Queue
  code that can be backported later as well as the Christophe's patch to
  swich the code to the bitmap API.

  Summary:

   - Use generic GCC library routines

   - sq: Use the bitmap API when applicable

   - sq: Fix incorrect element size for allocating bitmap buffer

   - pci: Remove unused variable in SH-7786 PCI Express code

   - mcount.S: fix build error when PRINTK is not enabled

   - remove sh5/sh64 last fragments

   - math-emu: fix macro redefined warning

   - init: use OF_EARLY_FLATTREE for early init

   - nmi_debug: fix return value of __setup handler

   - SH2007: drop the bad URL info"

* tag 'sh-for-v6.4-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux:
  sh: Replace <uapi/asm/types.h> by <asm-generic/int-ll64.h>
  sh: Use generic GCC library routines
  sh: sq: Use the bitmap API when applicable
  sh: sq: Fix incorrect element size for allocating bitmap buffer
  sh: pci: Remove unused variable in SH-7786 PCI Express code
  sh: mcount.S: fix build error when PRINTK is not enabled
  sh: remove sh5/sh64 last fragments
  sh: math-emu: fix macro redefined warning
  sh: init: use OF_EARLY_FLATTREE for early init
  sh: nmi_debug: fix return value of __setup handler
  sh: SH2007: drop the bad URL info

23 files changed:
Documentation/kbuild/kbuild.rst
Documentation/scheduler/sched-arch.rst
Documentation/translations/zh_CN/scheduler/sched-arch.rst
arch/sh/Kconfig
arch/sh/Kconfig.debug
arch/sh/boards/Kconfig
arch/sh/boot/compressed/ashldi3.c
arch/sh/drivers/pci/pcie-sh7786.c
arch/sh/include/asm/types.h
arch/sh/kernel/cpu/sh4/sq.c
arch/sh/kernel/head_32.S
arch/sh/kernel/nmi_debug.c
arch/sh/kernel/setup.c
arch/sh/lib/Makefile
arch/sh/lib/ashldi3.c [deleted file]
arch/sh/lib/ashrdi3.c [deleted file]
arch/sh/lib/lshrdi3.c [deleted file]
arch/sh/math-emu/sfp-util.h
scripts/checkstack.pl
tools/perf/arch/common.c
tools/scripts/Makefile.arch
tools/testing/selftests/mm/Makefile
tools/testing/selftests/mm/run_vmtests.sh

index 5202186728b4315b5e6e65a8ce21cd78f8087b69..e22621f4af0b95b227a03f370eb0789cdab68b73 100644 (file)
@@ -160,7 +160,6 @@ directory name found in the arch/ directory.
 But some architectures such as x86 and sparc have aliases.
 
 - x86: i386 for 32 bit, x86_64 for 64 bit
-- sh: sh for 32 bit, sh64 for 64 bit
 - sparc: sparc32 for 32 bit, sparc64 for 64 bit
 
 CROSS_COMPILE
index 0eaec669790a006c2961d57143c09ea9f50db5e7..505cd27f9a92da9db5948d67c9daef974a5c5338 100644 (file)
@@ -70,7 +70,5 @@ Possible arch problems I found (and either tried to fix or didn't):
 
 ia64 - is safe_halt call racy vs interrupts? (does it sleep?) (See #4a)
 
-sh64 - Is sleeping racy vs interrupts? (See #4a)
-
 sparc - IRQs on at this point(?), change local_irq_save to _disable.
       - TODO: needs secondary CPUs to disable preempt (See #1)
index 754a15c6b60f3a1e6b6c9c4f0f69f14e1e1a7455..ce3f39d9b3cbea1bfad495bda5df2d7ce963bf94 100644 (file)
@@ -70,7 +70,5 @@ arch/x86/kernel/process.c有轮询和睡眠空闲函数的例子。
 
 ia64 - safe_halt的调用与中断相比,是否很荒谬? (它睡眠了吗) (参考 #4a)
 
-sh64 - 睡眠与中断相比,是否很荒谬? (参考 #4a)
-
 sparc - 在这一点上,IRQ是开着的(?),把local_irq_save改为_disable。
       - 待办事项: 需要第二个CPU来禁用抢占 (参考 #1)
index d49a5a7aa10d8ba90075536cefd4e7125bc3b119..9652d367fc37771863e57369c94ab9489f080f87 100644 (file)
@@ -20,6 +20,9 @@ config SUPERH
        select GENERIC_CMOS_UPDATE if SH_SH03 || SH_DREAMCAST
        select GENERIC_IDLE_POLL_SETUP
        select GENERIC_IRQ_SHOW
+       select GENERIC_LIB_ASHLDI3
+       select GENERIC_LIB_ASHRDI3
+       select GENERIC_LIB_LSHRDI3
        select GENERIC_PCI_IOMAP if PCI
        select GENERIC_SCHED_CLOCK
        select GENERIC_SMP_IDLE_THREAD
index 10290e5c1f4387d8745c59b5dfe0632c4bc9fc55..c449e7c1b20ff5b5e338df5baed2d0299feeef94 100644 (file)
@@ -15,7 +15,7 @@ config SH_STANDARD_BIOS
 
 config STACK_DEBUG
        bool "Check for stack overflows"
-       depends on DEBUG_KERNEL
+       depends on DEBUG_KERNEL && PRINTK
        help
          This option will cause messages to be printed if free stack space
          drops below a certain limit. Saying Y here will add overhead to
index 83bcb6d2dacadd4a42695bf8ca5e6363ed558636..fafe15d3ba1dc855f6caf3672f2e056592d3b5c8 100644 (file)
@@ -358,7 +358,6 @@ config SH_SH2007
          intended for embedded applications.
          It has an Ethernet interface (SMC9118), direct connected
          Compact Flash socket, two serial ports and PC-104 bus.
-         More information at <http://sh2000.sh-linux.org>.
 
 config SH_APSH4A3A
        bool "AP-SH4A-3A"
index 7cebd646df839b48d40ca2f0c03237a2bef8ecb7..7c12121702309e8c20377e8a352b7067d60dccb6 100644 (file)
@@ -1,2 +1,2 @@
-// SPDX-License-Identifier: GPL-2.0-only
-#include "../../lib/ashldi3.c"
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "../../../../lib/ashldi3.c"
index 4f5e49f10805e819b90153dda29f90fb9a4c66d4..a78b9a9355855fdc0e33203f3e09c675f99f4d43 100644 (file)
@@ -31,7 +31,6 @@ struct sh7786_pcie_port {
 
 static struct sh7786_pcie_port *sh7786_pcie_ports;
 static unsigned int nr_ports;
-static unsigned long dma_pfn_offset;
 size_t memsize;
 u64 memstart;
 
index 68eb24ad201383ef30a43032326ead5be03fee81..9b3fc923ee28701ce2176f1071e9d94a469b7eaf 100644 (file)
@@ -2,7 +2,7 @@
 #ifndef __ASM_SH_TYPES_H
 #define __ASM_SH_TYPES_H
 
-#include <uapi/asm/types.h>
+#include <asm-generic/int-ll64.h>
 
 /*
  * These aren't exported outside the kernel to avoid name space clashes
index 27f2e3da5aa22c1537014d69b2cd77a0d27c4ef6..d289e99dc1184823e5378ed7816d6a7afbdee6be 100644 (file)
@@ -372,7 +372,6 @@ static struct subsys_interface sq_interface = {
 static int __init sq_api_init(void)
 {
        unsigned int nr_pages = 0x04000000 >> PAGE_SHIFT;
-       unsigned int size = (nr_pages + (BITS_PER_LONG - 1)) / BITS_PER_LONG;
        int ret = -ENOMEM;
 
        printk(KERN_NOTICE "sq: Registering store queue API.\n");
@@ -382,7 +381,7 @@ static int __init sq_api_init(void)
        if (unlikely(!sq_cache))
                return ret;
 
-       sq_bitmap = kzalloc(size, GFP_KERNEL);
+       sq_bitmap = bitmap_zalloc(nr_pages, GFP_KERNEL);
        if (unlikely(!sq_bitmap))
                goto out;
 
@@ -393,7 +392,7 @@ static int __init sq_api_init(void)
        return 0;
 
 out:
-       kfree(sq_bitmap);
+       bitmap_free(sq_bitmap);
        kmem_cache_destroy(sq_cache);
 
        return ret;
@@ -402,7 +401,7 @@ out:
 static void __exit sq_api_exit(void)
 {
        subsys_interface_unregister(&sq_interface);
-       kfree(sq_bitmap);
+       bitmap_free(sq_bitmap);
        kmem_cache_destroy(sq_cache);
 }
 
index 4adbd4ade319460674ca1d7a56053c825b883ea3..b603b7968b388f334ca8fdc692fb668c5a60deff 100644 (file)
@@ -64,7 +64,7 @@ ENTRY(_stext)
        ldc     r0, r6_bank
 #endif
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
        mov     r4, r12         ! Store device tree blob pointer in r12
 #endif
        
@@ -315,7 +315,7 @@ ENTRY(_stext)
 10:            
 #endif
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
        mov.l   8f, r0          ! Make flat device tree available early.
        jsr     @r0
         mov    r12, r4
@@ -346,7 +346,7 @@ ENTRY(stack_start)
 5:     .long   start_kernel
 6:     .long   cpu_init
 7:     .long   init_thread_union
-#if defined(CONFIG_OF_FLATTREE)
+#if defined(CONFIG_OF_EARLY_FLATTREE)
 8:     .long   sh_fdt_init
 #endif
 
index 11777867c6f5fc69d19120784eacf40d352476d7..a212b645b4cf81171df7518d7d95042665cfc5ac 100644 (file)
@@ -49,7 +49,7 @@ static int __init nmi_debug_setup(char *str)
        register_die_notifier(&nmi_debug_nb);
 
        if (*str != '=')
-               return 0;
+               return 1;
 
        for (p = str + 1; *p; p = sep + 1) {
                sep = strchr(p, ',');
@@ -70,6 +70,6 @@ static int __init nmi_debug_setup(char *str)
                        break;
        }
 
-       return 0;
+       return 1;
 }
 __setup("nmi_debug", nmi_debug_setup);
index 1fcb6659822a3072b5951d07c5e0c5376513450a..af977ec4ca5e5b51ae7be1870b5a0f5fdce2a628 100644 (file)
@@ -244,7 +244,7 @@ void __init __weak plat_early_device_setup(void)
 {
 }
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
 void __ref sh_fdt_init(phys_addr_t dt_phys)
 {
        static int done = 0;
@@ -326,7 +326,7 @@ void __init setup_arch(char **cmdline_p)
        /* Let earlyprintk output early console messages */
        sh_early_platform_driver_probe("earlyprintk", 1, 1);
 
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
 #ifdef CONFIG_USE_BUILTIN_DTB
        unflatten_and_copy_device_tree();
 #else
index eb473d373ca43a4b6436041b5f456afa33412314..d20a0768b31fa2b65c2522e5bdd9c633a624dbee 100644 (file)
@@ -7,9 +7,7 @@ lib-y  = delay.o memmove.o memchr.o \
         checksum.o strlen.o div64.o div64-generic.o
 
 # Extracted from libgcc
-obj-y += movmem.o ashldi3.o ashrdi3.o lshrdi3.o \
-        ashlsi3.o ashrsi3.o ashiftrt.o lshrsi3.o \
-        udiv_qrnnd.o
+obj-y += movmem.o ashlsi3.o ashrsi3.o ashiftrt.o lshrsi3.o udiv_qrnnd.o
 
 udivsi3-y                      := udivsi3_i4i-Os.o
 
diff --git a/arch/sh/lib/ashldi3.c b/arch/sh/lib/ashldi3.c
deleted file mode 100644 (file)
index e5afe09..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/module.h>
-
-#include "libgcc.h"
-
-long long __ashldi3(long long u, word_type b)
-{
-       DWunion uu, w;
-       word_type bm;
-
-       if (b == 0)
-               return u;
-
-       uu.ll = u;
-       bm = 32 - b;
-
-       if (bm <= 0) {
-               w.s.low = 0;
-               w.s.high = (unsigned int) uu.s.low << -bm;
-       } else {
-               const unsigned int carries = (unsigned int) uu.s.low >> bm;
-
-               w.s.low = (unsigned int) uu.s.low << b;
-               w.s.high = ((unsigned int) uu.s.high << b) | carries;
-       }
-
-       return w.ll;
-}
-
-EXPORT_SYMBOL(__ashldi3);
diff --git a/arch/sh/lib/ashrdi3.c b/arch/sh/lib/ashrdi3.c
deleted file mode 100644 (file)
index ae263fb..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/module.h>
-
-#include "libgcc.h"
-
-long long __ashrdi3(long long u, word_type b)
-{
-       DWunion uu, w;
-       word_type bm;
-
-       if (b == 0)
-               return u;
-
-       uu.ll = u;
-       bm = 32 - b;
-
-       if (bm <= 0) {
-               /* w.s.high = 1..1 or 0..0 */
-               w.s.high =
-                   uu.s.high >> 31;
-               w.s.low = uu.s.high >> -bm;
-       } else {
-               const unsigned int carries = (unsigned int) uu.s.high << bm;
-
-               w.s.high = uu.s.high >> b;
-               w.s.low = ((unsigned int) uu.s.low >> b) | carries;
-       }
-
-       return w.ll;
-}
-
-EXPORT_SYMBOL(__ashrdi3);
diff --git a/arch/sh/lib/lshrdi3.c b/arch/sh/lib/lshrdi3.c
deleted file mode 100644 (file)
index 33eaa1e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/module.h>
-
-#include "libgcc.h"
-
-long long __lshrdi3(long long u, word_type b)
-{
-       DWunion uu, w;
-       word_type bm;
-
-       if (b == 0)
-               return u;
-
-       uu.ll = u;
-       bm = 32 - b;
-
-       if (bm <= 0) {
-               w.s.high = 0;
-               w.s.low = (unsigned int) uu.s.high >> -bm;
-       } else {
-               const unsigned int carries = (unsigned int) uu.s.high << bm;
-
-               w.s.high = (unsigned int) uu.s.high >> b;
-               w.s.low = ((unsigned int) uu.s.low >> b) | carries;
-       }
-
-       return w.ll;
-}
-
-EXPORT_SYMBOL(__lshrdi3);
index 784f541344f36d0bba7749dd413160e8317f7c11..bda50762b3d3358ce64946ff2da67467ac5b6468 100644 (file)
@@ -67,7 +67,3 @@
   } while (0)
 
 #define abort()        return 0
-
-#define __BYTE_ORDER __LITTLE_ENDIAN
-
-
index d48dfed6d3dba7ffee3e67668ab9bc3944876c67..84f5fb7f1cecc2e5b99902b5734e4d30a1afeebe 100755 (executable)
@@ -10,7 +10,6 @@
 #      Mips port by Juan Quintela <[email protected]>
 #      IA64 port via Andreas Dilger
 #      Arm port by Holger Schurig
-#      sh64 port by Paul Mundt
 #      Random bits by Matt Mackall <[email protected]>
 #      M68k port by Geert Uytterhoeven and Andreas Schwab
 #      AArch64, PARISC ports by Kyle McMartin
@@ -100,12 +99,6 @@ my (@stack, $re, $dre, $sub, $x, $xs, $funcre, $min_stack);
                #  100092:       e3 f0 ff c8 ff 71       lay     %r15,-56(%r15)
                $re = qr/.*(?:lay|ag?hi).*\%r15,-(([0-9]{2}|[3-9])[0-9]{2})
                      (?:\(\%r15\))?$/ox;
-       } elsif ($arch =~ /^sh64$/) {
-               #XXX: we only check for the immediate case presently,
-               #     though we will want to check for the movi/sub
-               #     pair for larger users. -- PFM.
-               #a00048e0:       d4fc40f0        addi.l  r15,-240,r15
-               $re = qr/.*addi\.l.*r15,-(([0-9]{2}|[3-9])[0-9]{2}),r15/o;
        } elsif ($arch eq 'sparc' || $arch eq 'sparc64') {
                # f0019d10:       9d e3 bf 90     save  %sp, -112, %sp
                $re = qr/.*save.*%sp, -(([0-9]{2}|[3-9])[0-9]{2}), %sp/o;
index 59dd875fd5e4e9711554ebcce9b04d21b000a09e..cfe63dfab03a1d4558cd9af59eb26bdda2174699 100644 (file)
@@ -51,9 +51,7 @@ const char *const s390_triplets[] = {
 
 const char *const sh_triplets[] = {
        "sh-unknown-linux-gnu-",
-       "sh64-unknown-linux-gnu-",
        "sh-linux-gnu-",
-       "sh64-linux-gnu-",
        NULL
 };
 
index 1c72d07cb9fed7237bb91568826e77f49be9bc06..f6a50f06dfc4538181b80b90f47c9a8a54c4b790 100644 (file)
@@ -29,11 +29,6 @@ ifeq ($(ARCH),sparc64)
        SRCARCH := sparc
 endif
 
-# Additional ARCH settings for sh
-ifeq ($(ARCH),sh64)
-       SRCARCH := sh
-endif
-
 # Additional ARCH settings for loongarch
 ifeq ($(ARCH),loongarch32)
        SRCARCH := loongarch
index c31d952cff68fd3681951a9544eeb6c55eca7116..fc35050b5542fce9394e7abf0cbf3e2342a13ee7 100644 (file)
@@ -90,7 +90,7 @@ endif
 
 endif
 
-ifneq (,$(filter $(MACHINE),arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sh64 sparc64 x86_64))
+ifneq (,$(filter $(MACHINE),arm64 ia64 mips64 parisc64 ppc64 riscv64 s390x sparc64 x86_64))
 TEST_GEN_FILES += va_128TBswitch
 TEST_GEN_FILES += virtual_address_range
 TEST_GEN_FILES += write_to_hugetlbfs
index 8984e0bb58c7a0a9e0aba3c5cb1e47e9164d00af..a9d6d52596f236551f47d753e885df6810076bba 100644 (file)
@@ -132,7 +132,7 @@ else
 fi
 
 # filter 64bit architectures
-ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 ppc64le riscv64 s390x sh64 sparc64 x86_64"
+ARCH64STR="arm64 ia64 mips64 parisc64 ppc64 ppc64le riscv64 s390x sparc64 x86_64"
 if [ -z "$ARCH" ]; then
        ARCH=$(uname -m 2>/dev/null | sed -e 's/aarch64.*/arm64/')
 fi
This page took 0.090103 seconds and 4 git commands to generate.