mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
arch: switch the default on ARCH_HAS_SG_CHAIN
These days architectures are mostly out of the business of dealing with struct scatterlist at all, unless they have architecture specific iommu drivers. Replace the ARCH_HAS_SG_CHAIN symbol with a ARCH_NO_SG_CHAIN one only enabled for architectures with horrible legacy iommu drivers like alpha and parisc, and conditionally for arm which wants to keep it disable for legacy platforms. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Palmer Dabbelt <palmer@sifive.com>
This commit is contained in:
parent
b14b9d25a3
commit
7c703e54cc
15 changed files with 8 additions and 47 deletions
|
@ -1,33 +0,0 @@
|
||||||
#
|
|
||||||
# Feature name: sg-chain
|
|
||||||
# Kconfig: ARCH_HAS_SG_CHAIN
|
|
||||||
# description: arch supports chained scatter-gather lists
|
|
||||||
#
|
|
||||||
-----------------------
|
|
||||||
| arch |status|
|
|
||||||
-----------------------
|
|
||||||
| alpha: | TODO |
|
|
||||||
| arc: | ok |
|
|
||||||
| arm: | ok |
|
|
||||||
| arm64: | ok |
|
|
||||||
| c6x: | TODO |
|
|
||||||
| h8300: | TODO |
|
|
||||||
| hexagon: | TODO |
|
|
||||||
| ia64: | ok |
|
|
||||||
| m68k: | TODO |
|
|
||||||
| microblaze: | TODO |
|
|
||||||
| mips: | TODO |
|
|
||||||
| nds32: | TODO |
|
|
||||||
| nios2: | TODO |
|
|
||||||
| openrisc: | TODO |
|
|
||||||
| parisc: | TODO |
|
|
||||||
| powerpc: | ok |
|
|
||||||
| riscv: | TODO |
|
|
||||||
| s390: | ok |
|
|
||||||
| sh: | TODO |
|
|
||||||
| sparc: | ok |
|
|
||||||
| um: | TODO |
|
|
||||||
| unicore32: | TODO |
|
|
||||||
| x86: | ok |
|
|
||||||
| xtensa: | TODO |
|
|
||||||
-----------------------
|
|
|
@ -5,6 +5,7 @@ config ALPHA
|
||||||
select ARCH_MIGHT_HAVE_PC_PARPORT
|
select ARCH_MIGHT_HAVE_PC_PARPORT
|
||||||
select ARCH_MIGHT_HAVE_PC_SERIO
|
select ARCH_MIGHT_HAVE_PC_SERIO
|
||||||
select ARCH_NO_PREEMPT
|
select ARCH_NO_PREEMPT
|
||||||
|
select ARCH_NO_SG_CHAIN
|
||||||
select ARCH_USE_CMPXCHG_LOCKREF
|
select ARCH_USE_CMPXCHG_LOCKREF
|
||||||
select HAVE_AOUT
|
select HAVE_AOUT
|
||||||
select HAVE_IDE
|
select HAVE_IDE
|
||||||
|
|
|
@ -13,7 +13,6 @@ config ARC
|
||||||
select ARCH_HAS_PTE_SPECIAL
|
select ARCH_HAS_PTE_SPECIAL
|
||||||
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
||||||
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
||||||
select ARCH_HAS_SG_CHAIN
|
|
||||||
select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC
|
select ARCH_SUPPORTS_ATOMIC_RMW if ARC_HAS_LLSC
|
||||||
select BUILDTIME_EXTABLE_SORT
|
select BUILDTIME_EXTABLE_SORT
|
||||||
select CLONE_BACKWARDS
|
select CLONE_BACKWARDS
|
||||||
|
|
|
@ -19,6 +19,7 @@ config ARM
|
||||||
select ARCH_HAVE_CUSTOM_GPIO_H
|
select ARCH_HAVE_CUSTOM_GPIO_H
|
||||||
select ARCH_HAS_GCOV_PROFILE_ALL
|
select ARCH_HAS_GCOV_PROFILE_ALL
|
||||||
select ARCH_MIGHT_HAVE_PC_PARPORT
|
select ARCH_MIGHT_HAVE_PC_PARPORT
|
||||||
|
select ARCH_NO_SG_CHAIN if !ARM_HAS_SG_CHAIN
|
||||||
select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
|
select ARCH_OPTIONAL_KERNEL_RWX if ARCH_HAS_STRICT_KERNEL_RWX
|
||||||
select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7
|
select ARCH_OPTIONAL_KERNEL_RWX_DEFAULT if CPU_V7
|
||||||
select ARCH_SUPPORTS_ATOMIC_RMW
|
select ARCH_SUPPORTS_ATOMIC_RMW
|
||||||
|
@ -119,7 +120,6 @@ config ARM
|
||||||
<http://www.arm.linux.org.uk/>.
|
<http://www.arm.linux.org.uk/>.
|
||||||
|
|
||||||
config ARM_HAS_SG_CHAIN
|
config ARM_HAS_SG_CHAIN
|
||||||
select ARCH_HAS_SG_CHAIN
|
|
||||||
bool
|
bool
|
||||||
|
|
||||||
config ARM_DMA_USE_IOMMU
|
config ARM_DMA_USE_IOMMU
|
||||||
|
|
|
@ -23,7 +23,6 @@ config ARM64
|
||||||
select ARCH_HAS_MEMBARRIER_SYNC_CORE
|
select ARCH_HAS_MEMBARRIER_SYNC_CORE
|
||||||
select ARCH_HAS_PTE_SPECIAL
|
select ARCH_HAS_PTE_SPECIAL
|
||||||
select ARCH_HAS_SET_MEMORY
|
select ARCH_HAS_SET_MEMORY
|
||||||
select ARCH_HAS_SG_CHAIN
|
|
||||||
select ARCH_HAS_STRICT_KERNEL_RWX
|
select ARCH_HAS_STRICT_KERNEL_RWX
|
||||||
select ARCH_HAS_STRICT_MODULE_RWX
|
select ARCH_HAS_STRICT_MODULE_RWX
|
||||||
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
||||||
|
|
|
@ -29,7 +29,6 @@ config IA64
|
||||||
select HAVE_MEMBLOCK_NODE_MAP
|
select HAVE_MEMBLOCK_NODE_MAP
|
||||||
select HAVE_VIRT_CPU_ACCOUNTING
|
select HAVE_VIRT_CPU_ACCOUNTING
|
||||||
select ARCH_HAS_DMA_MARK_CLEAN
|
select ARCH_HAS_DMA_MARK_CLEAN
|
||||||
select ARCH_HAS_SG_CHAIN
|
|
||||||
select VIRT_TO_BUS
|
select VIRT_TO_BUS
|
||||||
select ARCH_DISCARD_MEMBLOCK
|
select ARCH_DISCARD_MEMBLOCK
|
||||||
select GENERIC_IRQ_PROBE
|
select GENERIC_IRQ_PROBE
|
||||||
|
|
|
@ -11,6 +11,7 @@ config PARISC
|
||||||
select ARCH_HAS_ELF_RANDOMIZE
|
select ARCH_HAS_ELF_RANDOMIZE
|
||||||
select ARCH_HAS_STRICT_KERNEL_RWX
|
select ARCH_HAS_STRICT_KERNEL_RWX
|
||||||
select ARCH_HAS_UBSAN_SANITIZE_ALL
|
select ARCH_HAS_UBSAN_SANITIZE_ALL
|
||||||
|
select ARCH_NO_SG_CHAIN
|
||||||
select ARCH_SUPPORTS_MEMORY_FAILURE
|
select ARCH_SUPPORTS_MEMORY_FAILURE
|
||||||
select RTC_CLASS
|
select RTC_CLASS
|
||||||
select RTC_DRV_GENERIC
|
select RTC_DRV_GENERIC
|
||||||
|
|
|
@ -138,7 +138,6 @@ config PPC
|
||||||
select ARCH_HAS_PTE_SPECIAL
|
select ARCH_HAS_PTE_SPECIAL
|
||||||
select ARCH_HAS_MEMBARRIER_CALLBACKS
|
select ARCH_HAS_MEMBARRIER_CALLBACKS
|
||||||
select ARCH_HAS_SCALED_CPUTIME if VIRT_CPU_ACCOUNTING_NATIVE && PPC64
|
select ARCH_HAS_SCALED_CPUTIME if VIRT_CPU_ACCOUNTING_NATIVE && PPC64
|
||||||
select ARCH_HAS_SG_CHAIN
|
|
||||||
select ARCH_HAS_STRICT_KERNEL_RWX if ((PPC_BOOK3S_64 || PPC32) && !RELOCATABLE && !HIBERNATION)
|
select ARCH_HAS_STRICT_KERNEL_RWX if ((PPC_BOOK3S_64 || PPC32) && !RELOCATABLE && !HIBERNATION)
|
||||||
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
|
select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
|
||||||
select ARCH_HAS_UACCESS_FLUSHCACHE if PPC64
|
select ARCH_HAS_UACCESS_FLUSHCACHE if PPC64
|
||||||
|
|
|
@ -73,7 +73,6 @@ config S390
|
||||||
select ARCH_HAS_KCOV
|
select ARCH_HAS_KCOV
|
||||||
select ARCH_HAS_PTE_SPECIAL
|
select ARCH_HAS_PTE_SPECIAL
|
||||||
select ARCH_HAS_SET_MEMORY
|
select ARCH_HAS_SET_MEMORY
|
||||||
select ARCH_HAS_SG_CHAIN
|
|
||||||
select ARCH_HAS_STRICT_KERNEL_RWX
|
select ARCH_HAS_STRICT_KERNEL_RWX
|
||||||
select ARCH_HAS_STRICT_MODULE_RWX
|
select ARCH_HAS_STRICT_MODULE_RWX
|
||||||
select ARCH_HAS_UBSAN_SANITIZE_ALL
|
select ARCH_HAS_UBSAN_SANITIZE_ALL
|
||||||
|
|
|
@ -40,7 +40,6 @@ config SPARC
|
||||||
select MODULES_USE_ELF_RELA
|
select MODULES_USE_ELF_RELA
|
||||||
select ODD_RT_SIGACTION
|
select ODD_RT_SIGACTION
|
||||||
select OLD_SIGSUSPEND
|
select OLD_SIGSUSPEND
|
||||||
select ARCH_HAS_SG_CHAIN
|
|
||||||
select CPU_NO_EFFICIENT_FFS
|
select CPU_NO_EFFICIENT_FFS
|
||||||
select LOCKDEP_SMALL if LOCKDEP
|
select LOCKDEP_SMALL if LOCKDEP
|
||||||
select NEED_DMA_MAP_STATE
|
select NEED_DMA_MAP_STATE
|
||||||
|
|
|
@ -66,7 +66,6 @@ config X86
|
||||||
select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64
|
select ARCH_HAS_UACCESS_FLUSHCACHE if X86_64
|
||||||
select ARCH_HAS_UACCESS_MCSAFE if X86_64 && X86_MCE
|
select ARCH_HAS_UACCESS_MCSAFE if X86_64 && X86_MCE
|
||||||
select ARCH_HAS_SET_MEMORY
|
select ARCH_HAS_SET_MEMORY
|
||||||
select ARCH_HAS_SG_CHAIN
|
|
||||||
select ARCH_HAS_STRICT_KERNEL_RWX
|
select ARCH_HAS_STRICT_KERNEL_RWX
|
||||||
select ARCH_HAS_STRICT_MODULE_RWX
|
select ARCH_HAS_STRICT_MODULE_RWX
|
||||||
select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
|
select ARCH_HAS_SYNC_CORE_BEFORE_USERMODE
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
# SPDX-License-Identifier: GPL-2.0
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
config XTENSA
|
config XTENSA
|
||||||
def_bool y
|
def_bool y
|
||||||
select ARCH_HAS_SG_CHAIN
|
|
||||||
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
select ARCH_HAS_SYNC_DMA_FOR_CPU
|
||||||
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
select ARCH_HAS_SYNC_DMA_FOR_DEVICE
|
||||||
select ARCH_NO_COHERENT_DMA_MMAP if !MMU
|
select ARCH_NO_COHERENT_DMA_MMAP if !MMU
|
||||||
|
|
|
@ -324,10 +324,10 @@ size_t sg_zero_buffer(struct scatterlist *sgl, unsigned int nents,
|
||||||
* Like SG_CHUNK_SIZE, but for archs that have sg chaining. This limit
|
* Like SG_CHUNK_SIZE, but for archs that have sg chaining. This limit
|
||||||
* is totally arbitrary, a setting of 2048 will get you at least 8mb ios.
|
* is totally arbitrary, a setting of 2048 will get you at least 8mb ios.
|
||||||
*/
|
*/
|
||||||
#ifdef CONFIG_ARCH_HAS_SG_CHAIN
|
#ifdef CONFIG_ARCH_NO_SG_CHAIN
|
||||||
#define SG_MAX_SEGMENTS 2048
|
|
||||||
#else
|
|
||||||
#define SG_MAX_SEGMENTS SG_CHUNK_SIZE
|
#define SG_MAX_SEGMENTS SG_CHUNK_SIZE
|
||||||
|
#else
|
||||||
|
#define SG_MAX_SEGMENTS 2048
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SG_POOL
|
#ifdef CONFIG_SG_POOL
|
||||||
|
|
|
@ -577,7 +577,7 @@ config SG_POOL
|
||||||
# sg chaining option
|
# sg chaining option
|
||||||
#
|
#
|
||||||
|
|
||||||
config ARCH_HAS_SG_CHAIN
|
config ARCH_NO_SG_CHAIN
|
||||||
def_bool n
|
def_bool n
|
||||||
|
|
||||||
config ARCH_HAS_PMEM_API
|
config ARCH_HAS_PMEM_API
|
||||||
|
|
|
@ -271,7 +271,7 @@ int __sg_alloc_table(struct sg_table *table, unsigned int nents,
|
||||||
|
|
||||||
if (nents == 0)
|
if (nents == 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
#ifndef CONFIG_ARCH_HAS_SG_CHAIN
|
#ifdef CONFIG_ARCH_NO_SG_CHAIN
|
||||||
if (WARN_ON_ONCE(nents > max_ents))
|
if (WARN_ON_ONCE(nents > max_ents))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue