mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 14:21:47 +00:00
27ebbf9d5b
Christoph Hellwig writes: This is a series doing two somewhat interwinded things. It improves the asm-generic nommu uaccess helper to optionally be entirely generic and not require any arch helpers for the actual uaccess. For the generic uaccess.h to actually be generically useful I also had to kill off the mess we made of <asm/segment.h>, which really shouldn't exist on most architectures. Signed-off-by: Arnd Bergmann <arnd@arndb.de> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCAAGBQJcv22JAAoJEGCrR//JCVInH3YP/i7hVIEo4azoRB3/PwFTPel8 Buq9BUrGy1kptLWyi1yuOZf874gF6351hkVUo4EYq/uZ3x41ciojxFgbsIriAU0p 2xzJAWY0YaVuWM+PIVj6KjyDA0N7/U5PcAG+03pl1Lhf0GHldmMbQIWt8D8HXbB8 gyaOeBGM9BneKd8Xu0COUaId9/3GXUwsy2zYc77+PxaHHYJzGDPB5lqNdU0gbB54 P9uXI2mpoAepFMsFgP6/FBvT/jCiMifRIdTXPD94NtjfG+Q4lo+LBQ6bpcLfw4ZD VNh0982Cyl5n7FNetlTK4CPBn0RZsmBRriMotYfXeghFg0mmNTLwNEMg1u6RQ+uq VYoBrVGhnx4SFB8xdkqO4md6UwprR2SERIIKwuCTbhwSgs+NkB7t4ftOwTzyQ1/6 7WQjclAIxQK9J7uwAeRGCvyrNJplqSfOA/hRjuq/Z0BCE/+m26Gxfv4aDztU5wFO FWj2uFGTMuufp+DKoh5Vj5aJiFwfqK5/w1VYWSQdaoiWsHlmmu5IkTrrZyz+S3Tj cifO9Ghe75Pt+rDllc8yqzKYXa5mL89sWyKiy+2ItOvGVh5EqXBbPXtCrFFIHRFL WojVPu0yO+OoP0sEdamT/4FxbWO9VrV5YXdaRg/GjVA9ARlKNpFrZbuHtvEitwpi 7AbhxMZwBSSb9R3cz67J =X2CH -----END PGP SIGNATURE----- Merge tag 'asm-generic-nommu' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic Pull nommu generic uaccess updates from Arnd Bergmann: "asm-generic: kill <asm/segment.h> and improve nommu generic uaccess helpers Christoph Hellwig writes: This is a series doing two somewhat interwinded things. It improves the asm-generic nommu uaccess helper to optionally be entirely generic and not require any arch helpers for the actual uaccess. For the generic uaccess.h to actually be generically useful I also had to kill off the mess we made of <asm/segment.h>, which really shouldn't exist on most architectures" * tag 'asm-generic-nommu' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: asm-generic: optimize generic uaccess for 8-byte loads and stores asm-generic: provide entirely generic nommu uaccess arch: mostly remove <asm/segment.h> asm-generic: don't include <asm/segment.h> from <asm/uaccess.h>
653 lines
15 KiB
Plaintext
653 lines
15 KiB
Plaintext
#
|
|
# Library configuration
|
|
#
|
|
|
|
config BINARY_PRINTF
|
|
def_bool n
|
|
|
|
menu "Library routines"
|
|
|
|
config RAID6_PQ
|
|
tristate
|
|
|
|
config RAID6_PQ_BENCHMARK
|
|
bool "Automatically choose fastest RAID6 PQ functions"
|
|
depends on RAID6_PQ
|
|
default y
|
|
help
|
|
Benchmark all available RAID6 PQ functions on init and choose the
|
|
fastest one.
|
|
|
|
config PACKING
|
|
bool "Generic bitfield packing and unpacking"
|
|
default n
|
|
help
|
|
This option provides the packing() helper function, which permits
|
|
converting bitfields between a CPU-usable representation and a
|
|
memory representation that can have any combination of these quirks:
|
|
- Is little endian (bytes are reversed within a 32-bit group)
|
|
- The least-significant 32-bit word comes first (within a 64-bit
|
|
group)
|
|
- The most significant bit of a byte is at its right (bit 0 of a
|
|
register description is numerically 2^7).
|
|
Drivers may use these helpers to match the bit indices as described
|
|
in the data sheets of the peripherals they are in control of.
|
|
|
|
When in doubt, say N.
|
|
|
|
config BITREVERSE
|
|
tristate
|
|
|
|
config HAVE_ARCH_BITREVERSE
|
|
bool
|
|
default n
|
|
depends on BITREVERSE
|
|
help
|
|
This option enables the use of hardware bit-reversal instructions on
|
|
architectures which support such operations.
|
|
|
|
config GENERIC_STRNCPY_FROM_USER
|
|
bool
|
|
|
|
config GENERIC_STRNLEN_USER
|
|
bool
|
|
|
|
config GENERIC_NET_UTILS
|
|
bool
|
|
|
|
config GENERIC_FIND_FIRST_BIT
|
|
bool
|
|
|
|
source "lib/math/Kconfig"
|
|
|
|
config NO_GENERIC_PCI_IOPORT_MAP
|
|
bool
|
|
|
|
config GENERIC_PCI_IOMAP
|
|
bool
|
|
|
|
config GENERIC_IOMAP
|
|
bool
|
|
select GENERIC_PCI_IOMAP
|
|
|
|
config STMP_DEVICE
|
|
bool
|
|
|
|
config ARCH_USE_CMPXCHG_LOCKREF
|
|
bool
|
|
|
|
config ARCH_HAS_FAST_MULTIPLIER
|
|
bool
|
|
|
|
config INDIRECT_PIO
|
|
bool "Access I/O in non-MMIO mode"
|
|
depends on ARM64
|
|
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
|
|
mechanism, the host-local I/O resource can be mapped into system
|
|
logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
|
|
system can access the I/O devices with the mapped-logic PIO through
|
|
I/O accessors.
|
|
|
|
This way has relatively little I/O performance cost. Please make
|
|
sure your devices really need this configure item enabled.
|
|
|
|
When in doubt, say N.
|
|
|
|
config CRC_CCITT
|
|
tristate "CRC-CCITT functions"
|
|
help
|
|
This option is provided for the case where no in-kernel-tree
|
|
modules require CRC-CCITT functions, but a module built outside
|
|
the kernel tree does. Such modules that use library CRC-CCITT
|
|
functions require M here.
|
|
|
|
config CRC16
|
|
tristate "CRC16 functions"
|
|
help
|
|
This option is provided for the case where no in-kernel-tree
|
|
modules require CRC16 functions, but a module built outside
|
|
the kernel tree does. Such modules that use library CRC16
|
|
functions require M here.
|
|
|
|
config CRC_T10DIF
|
|
tristate "CRC calculation for the T10 Data Integrity Field"
|
|
select CRYPTO
|
|
select CRYPTO_CRCT10DIF
|
|
help
|
|
This option is only needed if a module that's not in the
|
|
kernel tree needs to calculate CRC checks for use with the
|
|
SCSI data integrity subsystem.
|
|
|
|
config CRC_ITU_T
|
|
tristate "CRC ITU-T V.41 functions"
|
|
help
|
|
This option is provided for the case where no in-kernel-tree
|
|
modules require CRC ITU-T V.41 functions, but a module built outside
|
|
the kernel tree does. Such modules that use library CRC ITU-T V.41
|
|
functions require M here.
|
|
|
|
config CRC32
|
|
tristate "CRC32/CRC32c functions"
|
|
default y
|
|
select BITREVERSE
|
|
help
|
|
This option is provided for the case where no in-kernel-tree
|
|
modules require CRC32/CRC32c functions, but a module built outside
|
|
the kernel tree does. Such modules that use library CRC32/CRC32c
|
|
functions require M here.
|
|
|
|
config CRC32_SELFTEST
|
|
tristate "CRC32 perform self test on init"
|
|
depends on CRC32
|
|
help
|
|
This option enables the CRC32 library functions to perform a
|
|
self test on initialization. The self test computes crc32_le
|
|
and crc32_be over byte strings with random alignment and length
|
|
and computes the total elapsed time and number of bytes processed.
|
|
|
|
choice
|
|
prompt "CRC32 implementation"
|
|
depends on CRC32
|
|
default CRC32_SLICEBY8
|
|
help
|
|
This option allows a kernel builder to override the default choice
|
|
of CRC32 algorithm. Choose the default ("slice by 8") unless you
|
|
know that you need one of the others.
|
|
|
|
config CRC32_SLICEBY8
|
|
bool "Slice by 8 bytes"
|
|
help
|
|
Calculate checksum 8 bytes at a time with a clever slicing algorithm.
|
|
This is the fastest algorithm, but comes with a 8KiB lookup table.
|
|
Most modern processors have enough cache to hold this table without
|
|
thrashing the cache.
|
|
|
|
This is the default implementation choice. Choose this one unless
|
|
you have a good reason not to.
|
|
|
|
config CRC32_SLICEBY4
|
|
bool "Slice by 4 bytes"
|
|
help
|
|
Calculate checksum 4 bytes at a time with a clever slicing algorithm.
|
|
This is a bit slower than slice by 8, but has a smaller 4KiB lookup
|
|
table.
|
|
|
|
Only choose this option if you know what you are doing.
|
|
|
|
config CRC32_SARWATE
|
|
bool "Sarwate's Algorithm (one byte at a time)"
|
|
help
|
|
Calculate checksum a byte at a time using Sarwate's algorithm. This
|
|
is not particularly fast, but has a small 256 byte lookup table.
|
|
|
|
Only choose this option if you know what you are doing.
|
|
|
|
config CRC32_BIT
|
|
bool "Classic Algorithm (one bit at a time)"
|
|
help
|
|
Calculate checksum one bit at a time. This is VERY slow, but has
|
|
no lookup table. This is provided as a debugging option.
|
|
|
|
Only choose this option if you are debugging crc32.
|
|
|
|
endchoice
|
|
|
|
config CRC64
|
|
tristate "CRC64 functions"
|
|
help
|
|
This option is provided for the case where no in-kernel-tree
|
|
modules require CRC64 functions, but a module built outside
|
|
the kernel tree does. Such modules that use library CRC64
|
|
functions require M here.
|
|
|
|
config CRC4
|
|
tristate "CRC4 functions"
|
|
help
|
|
This option is provided for the case where no in-kernel-tree
|
|
modules require CRC4 functions, but a module built outside
|
|
the kernel tree does. Such modules that use library CRC4
|
|
functions require M here.
|
|
|
|
config CRC7
|
|
tristate "CRC7 functions"
|
|
help
|
|
This option is provided for the case where no in-kernel-tree
|
|
modules require CRC7 functions, but a module built outside
|
|
the kernel tree does. Such modules that use library CRC7
|
|
functions require M here.
|
|
|
|
config LIBCRC32C
|
|
tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
|
|
select CRYPTO
|
|
select CRYPTO_CRC32C
|
|
help
|
|
This option is provided for the case where no in-kernel-tree
|
|
modules require CRC32c functions, but a module built outside the
|
|
kernel tree does. Such modules that use library CRC32c functions
|
|
require M here. See Castagnoli93.
|
|
Module will be libcrc32c.
|
|
|
|
config CRC8
|
|
tristate "CRC8 function"
|
|
help
|
|
This option provides CRC8 function. Drivers may select this
|
|
when they need to do cyclic redundancy check according CRC8
|
|
algorithm. Module will be called crc8.
|
|
|
|
config XXHASH
|
|
tristate
|
|
|
|
config AUDIT_GENERIC
|
|
bool
|
|
depends on AUDIT && !AUDIT_ARCH
|
|
default y
|
|
|
|
config AUDIT_ARCH_COMPAT_GENERIC
|
|
bool
|
|
default n
|
|
|
|
config AUDIT_COMPAT_GENERIC
|
|
bool
|
|
depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
|
|
default y
|
|
|
|
config RANDOM32_SELFTEST
|
|
bool "PRNG perform self test on init"
|
|
help
|
|
This option enables the 32 bit PRNG library functions to perform a
|
|
self test on initialization.
|
|
|
|
#
|
|
# compression support is select'ed if needed
|
|
#
|
|
config 842_COMPRESS
|
|
select CRC32
|
|
tristate
|
|
|
|
config 842_DECOMPRESS
|
|
select CRC32
|
|
tristate
|
|
|
|
config ZLIB_INFLATE
|
|
tristate
|
|
|
|
config ZLIB_DEFLATE
|
|
tristate
|
|
select BITREVERSE
|
|
|
|
config LZO_COMPRESS
|
|
tristate
|
|
|
|
config LZO_DECOMPRESS
|
|
tristate
|
|
|
|
config LZ4_COMPRESS
|
|
tristate
|
|
|
|
config LZ4HC_COMPRESS
|
|
tristate
|
|
|
|
config LZ4_DECOMPRESS
|
|
tristate
|
|
|
|
config ZSTD_COMPRESS
|
|
select XXHASH
|
|
tristate
|
|
|
|
config ZSTD_DECOMPRESS
|
|
select XXHASH
|
|
tristate
|
|
|
|
source "lib/xz/Kconfig"
|
|
|
|
#
|
|
# These all provide a common interface (hence the apparent duplication with
|
|
# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
|
|
#
|
|
config DECOMPRESS_GZIP
|
|
select ZLIB_INFLATE
|
|
tristate
|
|
|
|
config DECOMPRESS_BZIP2
|
|
tristate
|
|
|
|
config DECOMPRESS_LZMA
|
|
tristate
|
|
|
|
config DECOMPRESS_XZ
|
|
select XZ_DEC
|
|
tristate
|
|
|
|
config DECOMPRESS_LZO
|
|
select LZO_DECOMPRESS
|
|
tristate
|
|
|
|
config DECOMPRESS_LZ4
|
|
select LZ4_DECOMPRESS
|
|
tristate
|
|
|
|
#
|
|
# Generic allocator support is selected if needed
|
|
#
|
|
config GENERIC_ALLOCATOR
|
|
bool
|
|
|
|
#
|
|
# reed solomon support is select'ed if needed
|
|
#
|
|
config REED_SOLOMON
|
|
tristate
|
|
|
|
config REED_SOLOMON_ENC8
|
|
bool
|
|
|
|
config REED_SOLOMON_DEC8
|
|
bool
|
|
|
|
config REED_SOLOMON_ENC16
|
|
bool
|
|
|
|
config REED_SOLOMON_DEC16
|
|
bool
|
|
|
|
#
|
|
# BCH support is selected if needed
|
|
#
|
|
config BCH
|
|
tristate
|
|
|
|
config BCH_CONST_PARAMS
|
|
bool
|
|
help
|
|
Drivers may select this option to force specific constant
|
|
values for parameters 'm' (Galois field order) and 't'
|
|
(error correction capability). Those specific values must
|
|
be set by declaring default values for symbols BCH_CONST_M
|
|
and BCH_CONST_T.
|
|
Doing so will enable extra compiler optimizations,
|
|
improving encoding and decoding performance up to 2x for
|
|
usual (m,t) values (typically such that m*t < 200).
|
|
When this option is selected, the BCH library supports
|
|
only a single (m,t) configuration. This is mainly useful
|
|
for NAND flash board drivers requiring known, fixed BCH
|
|
parameters.
|
|
|
|
config BCH_CONST_M
|
|
int
|
|
range 5 15
|
|
help
|
|
Constant value for Galois field order 'm'. If 'k' is the
|
|
number of data bits to protect, 'm' should be chosen such
|
|
that (k + m*t) <= 2**m - 1.
|
|
Drivers should declare a default value for this symbol if
|
|
they select option BCH_CONST_PARAMS.
|
|
|
|
config BCH_CONST_T
|
|
int
|
|
help
|
|
Constant value for error correction capability in bits 't'.
|
|
Drivers should declare a default value for this symbol if
|
|
they select option BCH_CONST_PARAMS.
|
|
|
|
#
|
|
# Textsearch support is select'ed if needed
|
|
#
|
|
config TEXTSEARCH
|
|
bool
|
|
|
|
config TEXTSEARCH_KMP
|
|
tristate
|
|
|
|
config TEXTSEARCH_BM
|
|
tristate
|
|
|
|
config TEXTSEARCH_FSM
|
|
tristate
|
|
|
|
config BTREE
|
|
bool
|
|
|
|
config INTERVAL_TREE
|
|
bool
|
|
help
|
|
Simple, embeddable, interval-tree. Can find the start of an
|
|
overlapping range in log(n) time and then iterate over all
|
|
overlapping nodes. The algorithm is implemented as an
|
|
augmented rbtree.
|
|
|
|
See:
|
|
|
|
Documentation/rbtree.txt
|
|
|
|
for more information.
|
|
|
|
config XARRAY_MULTI
|
|
bool
|
|
help
|
|
Support entries which occupy multiple consecutive indices in the
|
|
XArray.
|
|
|
|
config ASSOCIATIVE_ARRAY
|
|
bool
|
|
help
|
|
Generic associative array. Can be searched and iterated over whilst
|
|
it is being modified. It is also reasonably quick to search and
|
|
modify. The algorithms are non-recursive, and the trees are highly
|
|
capacious.
|
|
|
|
See:
|
|
|
|
Documentation/core-api/assoc_array.rst
|
|
|
|
for more information.
|
|
|
|
config HAS_IOMEM
|
|
bool
|
|
depends on !NO_IOMEM
|
|
select GENERIC_IO
|
|
default y
|
|
|
|
config HAS_IOPORT_MAP
|
|
bool
|
|
depends on HAS_IOMEM && !NO_IOPORT_MAP
|
|
default y
|
|
|
|
source "kernel/dma/Kconfig"
|
|
|
|
config SGL_ALLOC
|
|
bool
|
|
default n
|
|
|
|
config IOMMU_HELPER
|
|
bool
|
|
|
|
config CHECK_SIGNATURE
|
|
bool
|
|
|
|
config CPUMASK_OFFSTACK
|
|
bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
|
|
help
|
|
Use dynamic allocation for cpumask_var_t, instead of putting
|
|
them on the stack. This is a bit more expensive, but avoids
|
|
stack overflow.
|
|
|
|
config CPU_RMAP
|
|
bool
|
|
depends on SMP
|
|
|
|
config DQL
|
|
bool
|
|
|
|
config GLOB
|
|
bool
|
|
# This actually supports modular compilation, but the module overhead
|
|
# is ridiculous for the amount of code involved. Until an out-of-tree
|
|
# driver asks for it, we'll just link it directly it into the kernel
|
|
# when required. Since we're ignoring out-of-tree users, there's also
|
|
# no need bother prompting for a manual decision:
|
|
# prompt "glob_match() function"
|
|
help
|
|
This option provides a glob_match function for performing
|
|
simple text pattern matching. It originated in the ATA code
|
|
to blacklist particular drive models, but other device drivers
|
|
may need similar functionality.
|
|
|
|
All drivers in the Linux kernel tree that require this function
|
|
should automatically select this option. Say N unless you
|
|
are compiling an out-of tree driver which tells you that it
|
|
depends on this.
|
|
|
|
config GLOB_SELFTEST
|
|
tristate "glob self-test on init"
|
|
depends on GLOB
|
|
help
|
|
This option enables a simple self-test of the glob_match
|
|
function on startup. It is primarily useful for people
|
|
working on the code to ensure they haven't introduced any
|
|
regressions.
|
|
|
|
It only adds a little bit of code and slows kernel boot (or
|
|
module load) by a small amount, so you're welcome to play with
|
|
it, but you probably don't need it.
|
|
|
|
#
|
|
# Netlink attribute parsing support is select'ed if needed
|
|
#
|
|
config NLATTR
|
|
bool
|
|
|
|
#
|
|
# Generic 64-bit atomic support is selected if needed
|
|
#
|
|
config GENERIC_ATOMIC64
|
|
bool
|
|
|
|
config LRU_CACHE
|
|
tristate
|
|
|
|
config CLZ_TAB
|
|
bool
|
|
|
|
config DDR
|
|
bool "JEDEC DDR data"
|
|
help
|
|
Data from JEDEC specs for DDR SDRAM memories,
|
|
particularly the AC timing parameters and addressing
|
|
information. This data is useful for drivers handling
|
|
DDR SDRAM controllers.
|
|
|
|
config IRQ_POLL
|
|
bool "IRQ polling library"
|
|
help
|
|
Helper library to poll interrupt mitigation using polling.
|
|
|
|
config MPILIB
|
|
tristate
|
|
select CLZ_TAB
|
|
help
|
|
Multiprecision maths library from GnuPG.
|
|
It is used to implement RSA digital signature verification,
|
|
which is used by IMA/EVM digital signature extension.
|
|
|
|
config SIGNATURE
|
|
tristate
|
|
depends on KEYS
|
|
select CRYPTO
|
|
select CRYPTO_SHA1
|
|
select MPILIB
|
|
help
|
|
Digital signature verification. Currently only RSA is supported.
|
|
Implementation is done using GnuPG MPI library
|
|
|
|
#
|
|
# libfdt files, only selected if needed.
|
|
#
|
|
config LIBFDT
|
|
bool
|
|
|
|
config OID_REGISTRY
|
|
tristate
|
|
help
|
|
Enable fast lookup object identifier registry.
|
|
|
|
config UCS2_STRING
|
|
tristate
|
|
|
|
source "lib/fonts/Kconfig"
|
|
|
|
config SG_SPLIT
|
|
def_bool n
|
|
help
|
|
Provides a helper to split scatterlists into chunks, each chunk being
|
|
a scatterlist. This should be selected by a driver or an API which
|
|
whishes to split a scatterlist amongst multiple DMA channels.
|
|
|
|
config SG_POOL
|
|
def_bool n
|
|
help
|
|
Provides a helper to allocate chained scatterlists. This should be
|
|
selected by a driver or an API which whishes to allocate chained
|
|
scatterlist.
|
|
|
|
#
|
|
# sg chaining option
|
|
#
|
|
|
|
config ARCH_NO_SG_CHAIN
|
|
def_bool n
|
|
|
|
config ARCH_HAS_PMEM_API
|
|
bool
|
|
|
|
# use memcpy to implement user copies for nommu architectures
|
|
config UACCESS_MEMCPY
|
|
bool
|
|
|
|
config ARCH_HAS_UACCESS_FLUSHCACHE
|
|
bool
|
|
|
|
config ARCH_HAS_UACCESS_MCSAFE
|
|
bool
|
|
|
|
# Temporary. Goes away when all archs are cleaned up
|
|
config ARCH_STACKWALK
|
|
bool
|
|
|
|
config STACKDEPOT
|
|
bool
|
|
select STACKTRACE
|
|
|
|
config SBITMAP
|
|
bool
|
|
|
|
config PARMAN
|
|
tristate "parman" if COMPILE_TEST
|
|
|
|
config STRING_SELFTEST
|
|
tristate "Test string functions"
|
|
|
|
endmenu
|
|
|
|
config GENERIC_LIB_ASHLDI3
|
|
bool
|
|
|
|
config GENERIC_LIB_ASHRDI3
|
|
bool
|
|
|
|
config GENERIC_LIB_LSHRDI3
|
|
bool
|
|
|
|
config GENERIC_LIB_MULDI3
|
|
bool
|
|
|
|
config GENERIC_LIB_CMPDI2
|
|
bool
|
|
|
|
config GENERIC_LIB_UCMPDI2
|
|
bool
|
|
|
|
config OBJAGG
|
|
tristate "objagg" if COMPILE_TEST
|