Merge tag 'asm-generic-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 25 Apr 2023 19:22:11 +0000 (12:22 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 25 Apr 2023 19:22:11 +0000 (12:22 -0700)
Pull asm-generic updates from Arnd Bergmann:
 "These are various cleanups, fixing a number of uapi header files to no
  longer reference CONFIG_* symbols, and one patch that introduces the
  new CONFIG_HAS_IOPORT symbol for architectures that provide working
  inb()/outb() macros, as a preparation for adding driver dependencies
  on those in the following release"

* tag 'asm-generic-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
  Kconfig: introduce HAS_IOPORT option and select it as necessary
  scripts: Update the CONFIG_* ignore list in headers_install.sh
  pktcdvd: Remove CONFIG_CDROM_PKTCDVD_WCACHE from uapi header
  Move bp_type_idx to include/linux/hw_breakpoint.h
  Move ep_take_care_of_epollwakeup() to fs/eventpoll.c
  Move COMPAT_ATM_ADDPARTY to net/atm/svc.c

27 files changed:
arch/alpha/Kconfig
arch/arm/Kconfig
arch/arm64/Kconfig
arch/ia64/Kconfig
arch/loongarch/Kconfig
arch/m68k/Kconfig
arch/microblaze/Kconfig
arch/mips/Kconfig
arch/parisc/Kconfig
arch/powerpc/Kconfig
arch/riscv/Kconfig
arch/sh/Kconfig
arch/sparc/Kconfig
arch/x86/Kconfig
drivers/block/pktcdvd.c
drivers/bus/Kconfig
drivers/parisc/Kconfig
fs/eventpoll.c
include/linux/hw_breakpoint.h
include/uapi/linux/atmdev.h
include/uapi/linux/eventpoll.h
include/uapi/linux/hw_breakpoint.h
include/uapi/linux/pktcdvd.h
lib/Kconfig
net/atm/svc.c
scripts/headers_install.sh
tools/include/uapi/linux/hw_breakpoint.h

index 780d4673c3ca78feed39590e11096090f4ef8262..a5c2b1aa46b02edbea92c2fea1d76d0d7e4e887c 100644 (file)
@@ -27,6 +27,7 @@ config ALPHA
        select AUDIT_ARCH
        select GENERIC_CPU_VULNERABILITIES
        select GENERIC_SMP_IDLE_THREAD
+       select HAS_IOPORT
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_MOD_ARCH_SPECIFIC
        select MODULES_USE_ELF_RELA
index f52afb74e6d9c27b7de8ecf8e5233577c2cafeb4..872d5216af54f939bea8c03237cde91ffda3f617 100644 (file)
@@ -70,6 +70,7 @@ config ARM
        select GENERIC_SCHED_CLOCK
        select GENERIC_SMP_IDLE_THREAD
        select HARDIRQS_SW_RESEND
+       select HAS_IOPORT
        select HAVE_ARCH_AUDITSYSCALL if AEABI && !OABI_COMPAT
        select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
        select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
index 02789215d2510b5f253126693c312a001e73709b..5b71e0bc2ffab5f14f98fa313dfdccc4d3e6e679 100644 (file)
@@ -145,6 +145,7 @@ config ARM64
        select GENERIC_GETTIMEOFDAY
        select GENERIC_VDSO_TIME_NS
        select HARDIRQS_SW_RESEND
+       select HAS_IOPORT
        select HAVE_MOVE_PMD
        select HAVE_MOVE_PUD
        select HAVE_PCI
index d7e4a24e8644cdecb03d96228871e8e294a2004e..2e13ec8263b97da193bfb69df6388fdd719033cc 100644 (file)
@@ -25,6 +25,7 @@ config IA64
        select PCI_DOMAINS if PCI
        select PCI_MSI
        select PCI_SYSCALL if PCI
+       select HAS_IOPORT
        select HAVE_ASM_MODVERSIONS
        select HAVE_UNSTABLE_SCHED_CLOCK
        select HAVE_EXIT_THREAD
index 3ddde336e6a56f8c014fa0d0413379116e0f96f2..3a19045a76f79cd1ab9f917939fbd8001ac35429 100644 (file)
@@ -80,6 +80,7 @@ config LOONGARCH
        select GENERIC_SMP_IDLE_THREAD
        select GENERIC_TIME_VSYSCALL
        select GPIOLIB
+       select HAS_IOPORT
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_MMAP_RND_BITS if MMU
        select HAVE_ARCH_SECCOMP_FILTER
index 82154952e574e47861972d87a9cae62d47d68583..40198a1ebe274f62024b7c3943eb273ba3f34d43 100644 (file)
@@ -18,6 +18,7 @@ config M68K
        select GENERIC_CPU_DEVICES
        select GENERIC_IOMAP
        select GENERIC_IRQ_SHOW
+       select HAS_IOPORT if PCI || ISA || ATARI_ROM_ISA
        select HAVE_ARCH_SECCOMP
        select HAVE_ARCH_SECCOMP_FILTER
        select HAVE_ASM_MODVERSIONS
index cc88af6fa7a4420d7d92e5dc403eab09afbbd19e..211f338d6235d00dfa3592fec1ff21acd8b510c1 100644 (file)
@@ -21,6 +21,7 @@ config MICROBLAZE
        select GENERIC_IRQ_SHOW
        select GENERIC_PCI_IOMAP
        select GENERIC_SCHED_CLOCK
+       select HAS_IOPORT if PCI
        select HAVE_ARCH_HASH
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_SECCOMP
index e2f3ca73f40d6542fc711cba3d502a06f284ad23..2ea3539a07ade143f3fc1c3e36df0d1ed4ebce3b 100644 (file)
@@ -47,6 +47,7 @@ config MIPS
        select GENERIC_SMP_IDLE_THREAD
        select GENERIC_TIME_VSYSCALL
        select GUP_GET_PXX_LOW_HIGH if CPU_MIPS32 && PHYS_ADDR_T_64BIT
+       select HAS_IOPORT if !NO_IOPORT_MAP || ISA
        select HAVE_ARCH_COMPILER_H
        select HAVE_ARCH_JUMP_LABEL
        select HAVE_ARCH_KGDB if MIPS_FP_SUPPORT
index a98940e6424327fe5a5232dc0613404c5c559ae4..466a25525364d2d45e7ed5bf286856242fdc90d2 100644 (file)
@@ -47,6 +47,7 @@ config PARISC
        select MODULES_USE_ELF_RELA
        select CLONE_BACKWARDS
        select TTY # Needed for pdc_cons.c
+       select HAS_IOPORT if PCI || EISA
        select HAVE_DEBUG_STACKOVERFLOW
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_HASH
index a6c4407d3ec835a972b78f15fb3033f7492b2d60..02fd9bcd9215b81f3894fb55ea1f7c17dc1e5912 100644 (file)
@@ -188,6 +188,7 @@ config PPC
        select GENERIC_SMP_IDLE_THREAD
        select GENERIC_TIME_VSYSCALL
        select GENERIC_VDSO_TIME_NS
+       select HAS_IOPORT                       if PCI
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_HUGE_VMALLOC           if HAVE_ARCH_HUGE_VMAP
        select HAVE_ARCH_HUGE_VMAP              if PPC_RADIX_MMU || PPC_8xx
index 139055bcfcae567ebdd8b6de15e7aa460b13bda9..6adea68a2c053218eec1db1b447381f893f65e13 100644 (file)
@@ -76,6 +76,7 @@ config RISCV
        select GENERIC_TIME_VSYSCALL if MMU && 64BIT
        select GENERIC_VDSO_TIME_NS if HAVE_GENERIC_VDSO
        select HARDIRQS_SW_RESEND
+       select HAS_IOPORT if MMU
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_HUGE_VMALLOC if HAVE_ARCH_HUGE_VMAP
        select HAVE_ARCH_HUGE_VMAP if MMU && 64BIT && !XIP_KERNEL
index 0665ac0add0b4991fd6ed82d4928dfa86063ffe7..cfb797bc4200a41daadeb2aa8b5df4a83b4bb6c4 100644 (file)
@@ -25,6 +25,7 @@ config SUPERH
        select GENERIC_SCHED_CLOCK
        select GENERIC_SMP_IDLE_THREAD
        select GUP_GET_PXX_LOW_HIGH if X2TLB
+       select HAS_IOPORT if HAS_IOPORT_MAP
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_KGDB
        select HAVE_ARCH_SECCOMP_FILTER
index 84437a4c65454ca0677c6d4271b55fa4a7ffbc3f..d4c1d96f85cd8fc21f9b2c1b73a1c9d089540940 100644 (file)
@@ -32,6 +32,7 @@ config SPARC
        select GENERIC_IRQ_SHOW
        select ARCH_WANT_IPC_PARSE_VERSION
        select GENERIC_PCI_IOMAP
+       select HAS_IOPORT
        select HAVE_NMI_WATCHDOG if SPARC64
        select HAVE_CBPF_JIT if SPARC32
        select HAVE_EBPF_JIT if SPARC64
index 57a14206ad8f52de38ed2d0bbbac1ed7a86160ac..442eccc00960f490d51850776c97303eddd1a87b 100644 (file)
@@ -162,6 +162,7 @@ config X86
        select GUP_GET_PXX_LOW_HIGH             if X86_PAE
        select HARDIRQS_SW_RESEND
        select HARDLOCKUP_CHECK_TIMESTAMP       if X86_64
+       select HAS_IOPORT
        select HAVE_ACPI_APEI                   if ACPI
        select HAVE_ACPI_APEI_NMI               if ACPI
        select HAVE_ALIGNED_STRUCT_PAGE         if SLUB
index 2f1a92509271c406f59fd2bb4325737574285be6..5ae2a80db2c3417b88237f59b0773a6132a1b1f7 100644 (file)
@@ -1869,12 +1869,12 @@ static noinline_for_stack int pkt_probe_settings(struct pktcdvd_device *pd)
 /*
  * enable/disable write caching on drive
  */
-static noinline_for_stack int pkt_write_caching(struct pktcdvd_device *pd,
-                                               int set)
+static noinline_for_stack int pkt_write_caching(struct pktcdvd_device *pd)
 {
        struct packet_command cgc;
        struct scsi_sense_hdr sshdr;
        unsigned char buf[64];
+       bool set = IS_ENABLED(CONFIG_CDROM_PKTCDVD_WCACHE);
        int ret;
 
        init_cdrom_command(&cgc, buf, sizeof(buf), CGC_DATA_READ);
@@ -1890,7 +1890,12 @@ static noinline_for_stack int pkt_write_caching(struct pktcdvd_device *pd,
        if (ret)
                return ret;
 
-       buf[pd->mode_offset + 10] |= (!!set << 2);
+       /*
+        * use drive write caching -- we need deferred error handling to be
+        * able to successfully recover with this option (drive will return good
+        * status as soon as the cdb is validated).
+        */
+       buf[pd->mode_offset + 10] |= (set << 2);
 
        cgc.buflen = cgc.cmd[8] = 2 + ((buf[0] << 8) | (buf[1] & 0xff));
        ret = pkt_mode_select(pd, &cgc);
@@ -2085,7 +2090,7 @@ static int pkt_open_write(struct pktcdvd_device *pd)
                return -EIO;
        }
 
-       pkt_write_caching(pd, USE_WCACHING);
+       pkt_write_caching(pd);
 
        ret = pkt_get_max_speed(pd, &write_speed);
        if (ret)
index 7bfe998f3514ac6d8f3a5f2f0e8283c264bc7a5d..fcfa280df98aeb2cfe12c5731d405a052212ee80 100644 (file)
@@ -81,7 +81,7 @@ config MOXTET
 config HISILICON_LPC
        bool "Support for ISA I/O space on HiSilicon Hip06/7"
        depends on (ARM64 && ARCH_HISI) || (COMPILE_TEST && !ALPHA && !HEXAGON && !PARISC)
-       depends on HAS_IOMEM
+       depends on HAS_IOPORT
        select INDIRECT_PIO if ARM64
        help
          Driver to enable I/O access to devices attached to the Low Pin
index 9eb2c1b5de7de18fbf0cae924dbc633e27499114..2fc3222d26346c24394992ec4faf75efe2ac6b2c 100644 (file)
@@ -4,6 +4,7 @@ menu "Bus options (PCI, PCMCIA, EISA, GSC, ISA)"
 config GSC
        bool "VSC/GSC/HSC bus support"
        select HAVE_EISA
+       select HAS_IOPORT
        default y
        help
          The VSC, GSC and HSC busses were used from the earliest 700-series
index f6d25050dd7aac42ab1dd59799a05827f2fd7e37..4f757a71f99bc64681f21086cbd0bfab174d4f27 100644 (file)
@@ -2042,6 +2042,19 @@ SYSCALL_DEFINE1(epoll_create, int, size)
        return do_epoll_create(0);
 }
 
+#ifdef CONFIG_PM_SLEEP
+static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev)
+{
+       if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND))
+               epev->events &= ~EPOLLWAKEUP;
+}
+#else
+static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev)
+{
+       epev->events &= ~EPOLLWAKEUP;
+}
+#endif
+
 static inline int epoll_mutex_lock(struct mutex *mutex, int depth,
                                   bool nonblock)
 {
index f319bd26b0307e1cf9b6c434edf419ef7d33431c..7fbb4591127341aa42915a2b4bc36b8989ca596e 100644 (file)
@@ -7,6 +7,16 @@
 
 #ifdef CONFIG_HAVE_HW_BREAKPOINT
 
+enum bp_type_idx {
+       TYPE_INST       = 0,
+#if defined(CONFIG_HAVE_MIXED_BREAKPOINTS_REGS)
+       TYPE_DATA       = 0,
+#else
+       TYPE_DATA       = 1,
+#endif
+       TYPE_MAX
+};
+
 extern int __init init_hw_breakpoint(void);
 
 static inline void hw_breakpoint_init(struct perf_event_attr *attr)
index a5c15cf23bd78b7bca429783292cd293a9381078..20b0215084fc890a7b13e3fcd1dc35a903b773b7 100644 (file)
@@ -101,10 +101,6 @@ struct atm_dev_stats {
                                        /* use backend to make new if */
 #define ATM_ADDPARTY   _IOW('a', ATMIOC_SPECIAL+4,struct atm_iobuf)
                                        /* add party to p2mp call */
-#ifdef CONFIG_COMPAT
-/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */
-#define COMPAT_ATM_ADDPARTY    _IOW('a', ATMIOC_SPECIAL+4,struct compat_atm_iobuf)
-#endif
 #define ATM_DROPPARTY  _IOW('a', ATMIOC_SPECIAL+5,int)
                                        /* drop party from p2mp call */
 
index e687658843b1c7eb840da95bd6fe1d64783af3a6..cfbcc4cc49acb9a74ddf654b0881be384fb6dcfd 100644 (file)
@@ -85,16 +85,4 @@ struct epoll_event {
        __u64 data;
 } EPOLL_PACKED;
 
-#ifdef CONFIG_PM_SLEEP
-static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev)
-{
-       if ((epev->events & EPOLLWAKEUP) && !capable(CAP_BLOCK_SUSPEND))
-               epev->events &= ~EPOLLWAKEUP;
-}
-#else
-static inline void ep_take_care_of_epollwakeup(struct epoll_event *epev)
-{
-       epev->events &= ~EPOLLWAKEUP;
-}
-#endif
 #endif /* _UAPI_LINUX_EVENTPOLL_H */
index 965e4d8606d81aea7792252d93b72dceb0dd7f86..1575d3ca6f0d5c9175d4f507c39454919f6041e6 100644 (file)
@@ -22,14 +22,4 @@ enum {
        HW_BREAKPOINT_INVALID   = HW_BREAKPOINT_RW | HW_BREAKPOINT_X,
 };
 
-enum bp_type_idx {
-       TYPE_INST       = 0,
-#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS
-       TYPE_DATA       = 0,
-#else
-       TYPE_DATA       = 1,
-#endif
-       TYPE_MAX
-};
-
 #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */
index 9cbb55d21c94af1f3fb91d8ad346608a7f34d9a6..6a5552dfd6af4e0dc7d0bee8a5c310e1e6a77e28 100644 (file)
  */
 #define PACKET_WAIT_TIME       (HZ * 5 / 1000)
 
-/*
- * use drive write caching -- we need deferred error handling to be
- * able to successfully recover with this option (drive will return good
- * status as soon as the cdb is validated).
- */
-#if defined(CONFIG_CDROM_PKTCDVD_WCACHE)
-#define USE_WCACHING           1
-#else
-#define USE_WCACHING           0
-#endif
-
 /*
  * No user-servicable parts beyond this point ->
  */
index ce2abffb9ed8909591f633dc39c9bc068f943e34..5c2da561c516d00a8f90e7a4554aee4416afbe74 100644 (file)
@@ -92,6 +92,7 @@ config ARCH_USE_SYM_ANNOTATIONS
 config INDIRECT_PIO
        bool "Access I/O in non-MMIO mode"
        depends on ARM64
+       depends on HAS_IOPORT
        help
          On some platforms where no separate I/O space exists, there are I/O
          hosts which can not be accessed in MMIO mode. Using the logical PIO
@@ -509,6 +510,9 @@ config HAS_IOMEM
        depends on !NO_IOMEM
        default y
 
+config HAS_IOPORT
+       bool
+
 config HAS_IOPORT_MAP
        bool
        depends on HAS_IOMEM && !NO_IOPORT_MAP
index 4a02bcaad279f88908b3ede31c59da821fbdf371..d83556d8beb9b3b2c2f101ac493c5cfc1a224b86 100644 (file)
 #include "signaling.h"
 #include "addr.h"
 
+#ifdef CONFIG_COMPAT
+/* It actually takes struct sockaddr_atmsvc, not struct atm_iobuf */
+#define COMPAT_ATM_ADDPARTY _IOW('a', ATMIOC_SPECIAL + 4, struct compat_atm_iobuf)
+#endif
+
 static int svc_create(struct net *net, struct socket *sock, int protocol,
                      int kern);
 
index 4041881746adef21b68df08346db511b0ba6fde9..36b56b746fce37f39ade4d90a37da38f60f9d01b 100755 (executable)
@@ -83,10 +83,6 @@ arch/nios2/include/uapi/asm/swab.h:CONFIG_NIOS2_CI_SWAB_SUPPORT
 arch/x86/include/uapi/asm/auxvec.h:CONFIG_IA32_EMULATION
 arch/x86/include/uapi/asm/auxvec.h:CONFIG_X86_64
 arch/x86/include/uapi/asm/mman.h:CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
-include/uapi/linux/atmdev.h:CONFIG_COMPAT
-include/uapi/linux/eventpoll.h:CONFIG_PM_SLEEP
-include/uapi/linux/hw_breakpoint.h:CONFIG_HAVE_MIXED_BREAKPOINTS_REGS
-include/uapi/linux/pktcdvd.h:CONFIG_CDROM_PKTCDVD_WCACHE
 "
 
 for c in $configs
index 965e4d8606d81aea7792252d93b72dceb0dd7f86..1575d3ca6f0d5c9175d4f507c39454919f6041e6 100644 (file)
@@ -22,14 +22,4 @@ enum {
        HW_BREAKPOINT_INVALID   = HW_BREAKPOINT_RW | HW_BREAKPOINT_X,
 };
 
-enum bp_type_idx {
-       TYPE_INST       = 0,
-#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS
-       TYPE_DATA       = 0,
-#else
-       TYPE_DATA       = 1,
-#endif
-       TYPE_MAX
-};
-
 #endif /* _UAPI_LINUX_HW_BREAKPOINT_H */