blob: c80fde816a7ee6b6eb907a1f2e7b542eba7009dc [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#
3# Library configuration
4#
5
Lai Jiangshan4370aa42009-03-06 17:21:46 +01006config BINARY_PRINTF
7 def_bool n
8
Linus Torvalds1da177e2005-04-16 15:20:36 -07009menu "Library routines"
10
David Woodhousef5e70d02009-07-13 11:35:12 +010011config RAID6_PQ
12 tristate
13
Daniel Verkampbe85f932018-11-12 15:26:52 -080014config RAID6_PQ_BENCHMARK
15 bool "Automatically choose fastest RAID6 PQ functions"
16 depends on RAID6_PQ
17 default y
18 help
19 Benchmark all available RAID6 PQ functions on init and choose the
20 fastest one.
21
Matti Vaittinend2218d42020-05-08 18:39:35 +030022config LINEAR_RANGES
23 tristate
24
Vladimir Oltean554aae32019-05-02 23:23:29 +030025config PACKING
26 bool "Generic bitfield packing and unpacking"
27 default n
28 help
29 This option provides the packing() helper function, which permits
30 converting bitfields between a CPU-usable representation and a
31 memory representation that can have any combination of these quirks:
32 - Is little endian (bytes are reversed within a 32-bit group)
33 - The least-significant 32-bit word comes first (within a 64-bit
34 group)
35 - The most significant bit of a byte is at its right (bit 0 of a
36 register description is numerically 2^7).
37 Drivers may use these helpers to match the bit indices as described
38 in the data sheets of the peripherals they are in control of.
39
40 When in doubt, say N.
41
Akinobu Mitaa5cfc1ec582006-12-08 02:36:25 -080042config BITREVERSE
43 tristate
44
Yalin Wang556d2f02014-11-03 03:01:03 +010045config HAVE_ARCH_BITREVERSE
Christoph Jaeger841c0092015-02-16 16:00:20 -080046 bool
Yalin Wang556d2f02014-11-03 03:01:03 +010047 default n
48 depends on BITREVERSE
49 help
Andrew Morton9e522c02015-04-16 12:49:07 -070050 This option enables the use of hardware bit-reversal instructions on
51 architectures which support such operations.
Yalin Wang556d2f02014-11-03 03:01:03 +010052
Arnd Bergmanne6226992021-05-17 09:22:34 +020053config ARCH_HAS_STRNCPY_FROM_USER
David S. Miller29225852012-05-24 13:12:28 -070054 bool
55
Arnd Bergmanne6226992021-05-17 09:22:34 +020056config ARCH_HAS_STRNLEN_USER
Linus Torvaldsa08c5352012-05-26 11:06:38 -070057 bool
58
Arnd Bergmanne6226992021-05-17 09:22:34 +020059config GENERIC_STRNCPY_FROM_USER
60 def_bool !ARCH_HAS_STRNCPY_FROM_USER
61
62config GENERIC_STRNLEN_USER
63 def_bool !ARCH_HAS_STRNLEN_USER
64
Andy Shevchenko4cd57732013-06-04 19:46:26 +030065config GENERIC_NET_UTILS
66 bool
67
Andy Shevchenko2c64e9c2019-05-14 15:43:05 -070068source "lib/math/Kconfig"
69
Michael S. Tsirkinb9236502012-01-30 00:20:48 +020070config NO_GENERIC_PCI_IOPORT_MAP
71 bool
72
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020073config GENERIC_PCI_IOMAP
74 bool
75
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020076config GENERIC_IOMAP
77 bool
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020078 select GENERIC_PCI_IOMAP
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020079
Wolfram Sang4ccf4be2011-08-31 20:35:40 +020080config STMP_DEVICE
81 bool
82
Linus Torvaldsbc08b442013-09-02 12:12:15 -070083config ARCH_USE_CMPXCHG_LOCKREF
84 bool
85
Linus Torvalds72d93102014-09-13 11:14:53 -070086config ARCH_HAS_FAST_MULTIPLIER
87 bool
88
Mark Brown2ce0d7f2020-04-16 19:24:02 +010089config ARCH_USE_SYM_ANNOTATIONS
90 bool
91
Zhichang Yuan031e3602018-03-15 02:15:50 +080092config INDIRECT_PIO
93 bool "Access I/O in non-MMIO mode"
94 depends on ARM64
95 help
96 On some platforms where no separate I/O space exists, there are I/O
97 hosts which can not be accessed in MMIO mode. Using the logical PIO
98 mechanism, the host-local I/O resource can be mapped into system
99 logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
100 system can access the I/O devices with the mapped-logic PIO through
101 I/O accessors.
102
103 This way has relatively little I/O performance cost. Please make
104 sure your devices really need this configure item enabled.
105
106 When in doubt, say N.
107
Johannes Bergca2e3342021-03-05 13:19:52 +0100108config INDIRECT_IOMEM
109 bool
110 help
111 This is selected by other options/architectures to provide the
112 emulated iomem accessors.
113
114config INDIRECT_IOMEM_FALLBACK
115 bool
116 depends on INDIRECT_IOMEM
117 help
118 If INDIRECT_IOMEM is selected, this enables falling back to plain
119 mmio accesses when the IO memory address is not a registered
120 emulated region.
121
Justin M. Forbese56e1892022-01-12 08:01:38 -0600122source "lib/crypto/Kconfig"
123
Linus Torvalds1da177e2005-04-16 15:20:36 -0700124config CRC_CCITT
125 tristate "CRC-CCITT functions"
126 help
127 This option is provided for the case where no in-kernel-tree
128 modules require CRC-CCITT functions, but a module built outside
129 the kernel tree does. Such modules that use library CRC-CCITT
130 functions require M here.
131
Evgeniy Polyakov7657ec12005-08-17 15:17:26 +0400132config CRC16
133 tristate "CRC16 functions"
134 help
135 This option is provided for the case where no in-kernel-tree
136 modules require CRC16 functions, but a module built outside
137 the kernel tree does. Such modules that use library CRC16
138 functions require M here.
139
Martin K. Petersenf11f5942008-06-25 11:22:42 -0400140config CRC_T10DIF
141 tristate "CRC calculation for the T10 Data Integrity Field"
Herbert Xu684115212013-09-07 12:56:26 +1000142 select CRYPTO
143 select CRYPTO_CRCT10DIF
Martin K. Petersenf11f5942008-06-25 11:22:42 -0400144 help
145 This option is only needed if a module that's not in the
146 kernel tree needs to calculate CRC checks for use with the
147 SCSI data integrity subsystem.
148
Ivo van Doorn3e7cbae2006-06-12 16:17:04 +0200149config CRC_ITU_T
150 tristate "CRC ITU-T V.41 functions"
151 help
152 This option is provided for the case where no in-kernel-tree
153 modules require CRC ITU-T V.41 functions, but a module built outside
154 the kernel tree does. Such modules that use library CRC ITU-T V.41
155 functions require M here.
156
Linus Torvalds1da177e2005-04-16 15:20:36 -0700157config CRC32
Darrick J. Wong46c58012012-03-23 15:02:25 -0700158 tristate "CRC32/CRC32c functions"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700159 default y
Akinobu Mita906d66d2006-12-08 02:36:25 -0800160 select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700161 help
162 This option is provided for the case where no in-kernel-tree
Darrick J. Wong46c58012012-03-23 15:02:25 -0700163 modules require CRC32/CRC32c functions, but a module built outside
164 the kernel tree does. Such modules that use library CRC32/CRC32c
165 functions require M here.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700166
Bob Pearson3863ef32012-03-23 15:02:22 -0700167config CRC32_SELFTEST
Geert Uytterhoeven5fb7f872017-02-24 15:00:49 -0800168 tristate "CRC32 perform self test on init"
Bob Pearson3863ef32012-03-23 15:02:22 -0700169 depends on CRC32
170 help
171 This option enables the CRC32 library functions to perform a
172 self test on initialization. The self test computes crc32_le
173 and crc32_be over byte strings with random alignment and length
174 and computes the total elapsed time and number of bytes processed.
175
Darrick J. Wong5cde7652012-03-23 15:02:26 -0700176choice
177 prompt "CRC32 implementation"
178 depends on CRC32
179 default CRC32_SLICEBY8
Darrick J. Wong82edb4b2012-03-28 14:42:56 -0700180 help
181 This option allows a kernel builder to override the default choice
182 of CRC32 algorithm. Choose the default ("slice by 8") unless you
183 know that you need one of the others.
Darrick J. Wong5cde7652012-03-23 15:02:26 -0700184
185config CRC32_SLICEBY8
186 bool "Slice by 8 bytes"
187 help
188 Calculate checksum 8 bytes at a time with a clever slicing algorithm.
189 This is the fastest algorithm, but comes with a 8KiB lookup table.
190 Most modern processors have enough cache to hold this table without
191 thrashing the cache.
192
193 This is the default implementation choice. Choose this one unless
194 you have a good reason not to.
195
196config CRC32_SLICEBY4
197 bool "Slice by 4 bytes"
198 help
199 Calculate checksum 4 bytes at a time with a clever slicing algorithm.
200 This is a bit slower than slice by 8, but has a smaller 4KiB lookup
201 table.
202
203 Only choose this option if you know what you are doing.
204
205config CRC32_SARWATE
206 bool "Sarwate's Algorithm (one byte at a time)"
207 help
208 Calculate checksum a byte at a time using Sarwate's algorithm. This
209 is not particularly fast, but has a small 256 byte lookup table.
210
211 Only choose this option if you know what you are doing.
212
213config CRC32_BIT
214 bool "Classic Algorithm (one bit at a time)"
215 help
216 Calculate checksum one bit at a time. This is VERY slow, but has
217 no lookup table. This is provided as a debugging option.
218
219 Only choose this option if you are debugging crc32.
220
221endchoice
222
Coly Lifeba04f2018-08-21 21:57:11 -0700223config CRC64
224 tristate "CRC64 functions"
225 help
226 This option is provided for the case where no in-kernel-tree
227 modules require CRC64 functions, but a module built outside
228 the kernel tree does. Such modules that use library CRC64
229 functions require M here.
230
Jeremy Kerr0cbaa442017-06-06 16:08:39 -0500231config CRC4
232 tristate "CRC4 functions"
233 help
234 This option is provided for the case where no in-kernel-tree
235 modules require CRC4 functions, but a module built outside
236 the kernel tree does. Such modules that use library CRC4
237 functions require M here.
238
Jan Nikitenkoad241522007-07-17 04:04:03 -0700239config CRC7
240 tristate "CRC7 functions"
241 help
242 This option is provided for the case where no in-kernel-tree
243 modules require CRC7 functions, but a module built outside
244 the kernel tree does. Such modules that use library CRC7
245 functions require M here.
246
Linus Torvalds1da177e2005-04-16 15:20:36 -0700247config LIBCRC32C
248 tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
Herbert Xu93027352008-11-13 22:05:13 +0800249 select CRYPTO
Herbert Xu69c35ef2008-11-07 15:11:47 +0800250 select CRYPTO_CRC32C
Linus Torvalds1da177e2005-04-16 15:20:36 -0700251 help
252 This option is provided for the case where no in-kernel-tree
253 modules require CRC32c functions, but a module built outside the
254 kernel tree does. Such modules that use library CRC32c functions
255 require M here. See Castagnoli93.
256 Module will be libcrc32c.
257
Arend van Spriel71509622011-05-31 11:22:15 +0200258config CRC8
259 tristate "CRC8 function"
260 help
261 This option provides CRC8 function. Drivers may select this
262 when they need to do cyclic redundancy check according CRC8
263 algorithm. Module will be called crc8.
264
Nick Terrell5d240522017-08-04 13:19:17 -0700265config XXHASH
266 tristate
267
Al Viroe65e1fc2006-09-12 03:04:40 -0400268config AUDIT_GENERIC
269 bool
270 depends on AUDIT && !AUDIT_ARCH
271 default y
272
AKASHI Takahiro4b588412014-03-15 14:48:00 +0900273config AUDIT_ARCH_COMPAT_GENERIC
274 bool
275 default n
276
277config AUDIT_COMPAT_GENERIC
278 bool
279 depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
280 default y
281
Daniel Borkmanna6a9c0f2013-11-11 12:20:37 +0100282config RANDOM32_SELFTEST
283 bool "PRNG perform self test on init"
Daniel Borkmanna6a9c0f2013-11-11 12:20:37 +0100284 help
285 This option enables the 32 bit PRNG library functions to perform a
286 self test on initialization.
287
Linus Torvalds1da177e2005-04-16 15:20:36 -0700288#
289# compression support is select'ed if needed
290#
Dan Streetman2da572c2015-05-07 13:49:14 -0400291config 842_COMPRESS
Arnd Bergmann5b571672016-01-13 23:24:02 +0100292 select CRC32
Dan Streetman2da572c2015-05-07 13:49:14 -0400293 tristate
294
295config 842_DECOMPRESS
Arnd Bergmann5b571672016-01-13 23:24:02 +0100296 select CRC32
Dan Streetman2da572c2015-05-07 13:49:14 -0400297 tristate
298
Linus Torvalds1da177e2005-04-16 15:20:36 -0700299config ZLIB_INFLATE
300 tristate
301
302config ZLIB_DEFLATE
303 tristate
Andrew Morton1fd4e5c2015-10-15 15:28:35 -0700304 select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700305
Mikhail Zaslonkoaa5b3952020-01-30 22:16:17 -0800306config ZLIB_DFLTCC
307 def_bool y
308 depends on S390
309 prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
310 help
311 Enable s390x hardware support for zlib in the kernel.
312
Richard Purdie64c70b12007-07-10 17:22:24 -0700313config LZO_COMPRESS
314 tristate
315
316config LZO_DECOMPRESS
317 tristate
318
Chanho Minc72ac7a2013-07-08 16:01:49 -0700319config LZ4_COMPRESS
320 tristate
321
322config LZ4HC_COMPRESS
323 tristate
324
Kyungsik Leee76e1fd2013-07-08 16:01:46 -0700325config LZ4_DECOMPRESS
326 tristate
327
Nick Terrell73f3d1b2017-08-09 19:35:53 -0700328config ZSTD_COMPRESS
329 select XXHASH
330 tristate
331
332config ZSTD_DECOMPRESS
333 select XXHASH
334 tristate
335
Lasse Collin24fa0402011-01-12 17:01:22 -0800336source "lib/xz/Kconfig"
337
Linus Torvalds1da177e2005-04-16 15:20:36 -0700338#
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800339# These all provide a common interface (hence the apparent duplication with
340# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
341#
342config DECOMPRESS_GZIP
H. Peter Anvin7856a16e2009-01-07 00:01:43 -0800343 select ZLIB_INFLATE
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800344 tristate
345
346config DECOMPRESS_BZIP2
347 tristate
348
349config DECOMPRESS_LZMA
350 tristate
351
Lasse Collin3ebe1242011-01-12 17:01:23 -0800352config DECOMPRESS_XZ
353 select XZ_DEC
354 tristate
355
Albin Tonnerrecacb2462010-01-08 14:42:46 -0800356config DECOMPRESS_LZO
357 select LZO_DECOMPRESS
358 tristate
359
Kyungsik Leee76e1fd2013-07-08 16:01:46 -0700360config DECOMPRESS_LZ4
361 select LZ4_DECOMPRESS
362 tristate
363
Nick Terrell4963bb22020-07-30 12:08:35 -0700364config DECOMPRESS_ZSTD
365 select ZSTD_DECOMPRESS
366 tristate
367
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800368#
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700369# Generic allocator support is selected if needed
370#
371config GENERIC_ALLOCATOR
Christoph Jaeger6341e622014-12-20 15:41:11 -0500372 bool
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700373
374#
Linus Torvalds1da177e2005-04-16 15:20:36 -0700375# reed solomon support is select'ed if needed
376#
377config REED_SOLOMON
378 tristate
379
380config REED_SOLOMON_ENC8
Christoph Jaeger6341e622014-12-20 15:41:11 -0500381 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700382
383config REED_SOLOMON_DEC8
Christoph Jaeger6341e622014-12-20 15:41:11 -0500384 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700385
386config REED_SOLOMON_ENC16
Christoph Jaeger6341e622014-12-20 15:41:11 -0500387 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700388
389config REED_SOLOMON_DEC16
Christoph Jaeger6341e622014-12-20 15:41:11 -0500390 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700391
David S. Millerf7704342005-06-24 17:39:03 -0700392#
Ivan Djelic437aa562011-03-11 11:05:32 +0100393# BCH support is selected if needed
394#
395config BCH
396 tristate
397
398config BCH_CONST_PARAMS
Christoph Jaeger6341e622014-12-20 15:41:11 -0500399 bool
Ivan Djelic437aa562011-03-11 11:05:32 +0100400 help
401 Drivers may select this option to force specific constant
402 values for parameters 'm' (Galois field order) and 't'
403 (error correction capability). Those specific values must
404 be set by declaring default values for symbols BCH_CONST_M
405 and BCH_CONST_T.
406 Doing so will enable extra compiler optimizations,
407 improving encoding and decoding performance up to 2x for
408 usual (m,t) values (typically such that m*t < 200).
409 When this option is selected, the BCH library supports
410 only a single (m,t) configuration. This is mainly useful
411 for NAND flash board drivers requiring known, fixed BCH
412 parameters.
413
414config BCH_CONST_M
415 int
416 range 5 15
417 help
418 Constant value for Galois field order 'm'. If 'k' is the
419 number of data bits to protect, 'm' should be chosen such
420 that (k + m*t) <= 2**m - 1.
421 Drivers should declare a default value for this symbol if
422 they select option BCH_CONST_PARAMS.
423
424config BCH_CONST_T
425 int
426 help
427 Constant value for error correction capability in bits 't'.
428 Drivers should declare a default value for this symbol if
429 they select option BCH_CONST_PARAMS.
430
431#
David S. Millerf7704342005-06-24 17:39:03 -0700432# Textsearch support is select'ed if needed
433#
Thomas Graf2de4ff72005-06-23 20:49:30 -0700434config TEXTSEARCH
Christoph Jaeger6341e622014-12-20 15:41:11 -0500435 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700436
Thomas Grafdf3fb932005-06-23 20:58:37 -0700437config TEXTSEARCH_KMP
David S. Millerf7704342005-06-24 17:39:03 -0700438 tristate
Thomas Grafdf3fb932005-06-23 20:58:37 -0700439
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700440config TEXTSEARCH_BM
David S. Miller29cb9f92005-08-25 16:23:11 -0700441 tristate
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700442
Thomas Graf6408f792005-06-23 20:59:16 -0700443config TEXTSEARCH_FSM
David S. Millerf7704342005-06-24 17:39:03 -0700444 tristate
Thomas Graf6408f792005-06-23 20:59:16 -0700445
Joern Engel5db53f32009-11-20 20:13:39 +0100446config BTREE
Christoph Jaeger6341e622014-12-20 15:41:11 -0500447 bool
Joern Engel5db53f32009-11-20 20:13:39 +0100448
Chris Wilsona88cc102014-03-17 12:21:54 +0000449config INTERVAL_TREE
Christoph Jaeger6341e622014-12-20 15:41:11 -0500450 bool
Chris Wilsona88cc102014-03-17 12:21:54 +0000451 help
452 Simple, embeddable, interval-tree. Can find the start of an
453 overlapping range in log(n) time and then iterate over all
454 overlapping nodes. The algorithm is implemented as an
455 augmented rbtree.
456
457 See:
458
Matthew Wilcox (Oracle)14bbe3e2020-04-01 10:33:43 -0700459 Documentation/core-api/rbtree.rst
Chris Wilsona88cc102014-03-17 12:21:54 +0000460
461 for more information.
462
Matthew Wilcox02c02bf2017-11-03 23:09:45 -0400463config XARRAY_MULTI
Matthew Wilcox57578c22016-05-20 17:01:54 -0700464 bool
Matthew Wilcox02c02bf2017-11-03 23:09:45 -0400465 help
466 Support entries which occupy multiple consecutive indices in the
467 XArray.
Matthew Wilcox57578c22016-05-20 17:01:54 -0700468
David Howells3cb98952013-09-24 10:35:17 +0100469config ASSOCIATIVE_ARRAY
470 bool
471 help
472 Generic associative array. Can be searched and iterated over whilst
473 it is being modified. It is also reasonably quick to search and
474 modify. The algorithms are non-recursive, and the trees are highly
475 capacious.
476
477 See:
478
Mauro Carvalho Chehab5fb94e92018-05-08 15:14:57 -0300479 Documentation/core-api/assoc_array.rst
David Howells3cb98952013-09-24 10:35:17 +0100480
481 for more information.
482
Al Viro5ea81762007-02-11 15:41:31 +0000483config HAS_IOMEM
Christoph Jaeger6341e622014-12-20 15:41:11 -0500484 bool
Al Viro5ea81762007-02-11 15:41:31 +0000485 depends on !NO_IOMEM
486 default y
487
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700488config HAS_IOPORT_MAP
Christoph Jaeger6341e622014-12-20 15:41:11 -0500489 bool
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700490 depends on HAS_IOMEM && !NO_IOPORT_MAP
Al Viroee36c2b2006-12-13 00:35:00 -0800491 default y
492
Christoph Hellwigcf65a0f2018-06-12 19:01:45 +0200493source "kernel/dma/Kconfig"
Heiko Carstens411f0f32007-05-06 14:49:09 -0700494
Bart Van Asschee80a0af2018-01-05 08:26:46 -0800495config SGL_ALLOC
496 bool
497 default n
498
Christoph Hellwiga4ce5a42018-04-03 15:47:59 +0200499config IOMMU_HELPER
500 bool
501
Geert Uytterhoeven928923c2007-08-22 14:01:36 -0700502config CHECK_SIGNATURE
503 bool
504
Rusty Russellaab46da2008-12-13 21:20:27 +1030505config CPUMASK_OFFSTACK
506 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
507 help
508 Use dynamic allocation for cpumask_var_t, instead of putting
509 them on the stack. This is a bit more expensive, but avoids
510 stack overflow.
511
Ben Hutchingsc39649c2011-01-19 11:03:25 +0000512config CPU_RMAP
513 bool
514 depends on SMP
515
Tom Herbert75957ba2011-11-28 16:32:35 +0000516config DQL
517 bool
518
George Spelvinb0125082014-08-06 16:09:23 -0700519config GLOB
520 bool
521# This actually supports modular compilation, but the module overhead
522# is ridiculous for the amount of code involved. Until an out-of-tree
523# driver asks for it, we'll just link it directly it into the kernel
524# when required. Since we're ignoring out-of-tree users, there's also
525# no need bother prompting for a manual decision:
526# prompt "glob_match() function"
527 help
528 This option provides a glob_match function for performing
529 simple text pattern matching. It originated in the ATA code
530 to blacklist particular drive models, but other device drivers
531 may need similar functionality.
532
533 All drivers in the Linux kernel tree that require this function
534 should automatically select this option. Say N unless you
535 are compiling an out-of tree driver which tells you that it
536 depends on this.
537
George Spelvin5f9be822014-08-06 16:09:25 -0700538config GLOB_SELFTEST
Geert Uytterhoevenba95b042017-02-24 15:00:52 -0800539 tristate "glob self-test on init"
George Spelvin5f9be822014-08-06 16:09:25 -0700540 depends on GLOB
541 help
542 This option enables a simple self-test of the glob_match
543 function on startup. It is primarily useful for people
544 working on the code to ensure they haven't introduced any
545 regressions.
546
547 It only adds a little bit of code and slows kernel boot (or
548 module load) by a small amount, so you're welcome to play with
549 it, but you probably don't need it.
550
Geert Uytterhoevene9cc8bd2009-03-04 14:53:30 +0800551#
552# Netlink attribute parsing support is select'ed if needed
553#
554config NLATTR
555 bool
556
Paul Mackerras09d4e0e2009-06-12 21:10:05 +0000557#
558# Generic 64-bit atomic support is selected if needed
559#
560config GENERIC_ATOMIC64
561 bool
562
Philipp Reisnerb411b362009-09-25 16:07:19 -0700563config LRU_CACHE
564 tristate
565
David Millerc6df4b12012-02-02 00:17:54 +0200566config CLZ_TAB
567 bool
568
Christoph Hellwig511cbce2015-11-10 14:56:14 +0100569config IRQ_POLL
570 bool "IRQ polling library"
571 help
572 Helper library to poll interrupt mitigation using polling.
573
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300574config MPILIB
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200575 tristate
David Millerc6df4b12012-02-02 00:17:54 +0200576 select CLZ_TAB
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300577 help
578 Multiprecision maths library from GnuPG.
579 It is used to implement RSA digital signature verification,
580 which is used by IMA/EVM digital signature extension.
581
Dmitry Kasatkin5e8898e2012-01-17 17:12:03 +0200582config SIGNATURE
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200583 tristate
Dmitry Kasatkin0d1f64f2014-07-11 18:59:45 +0300584 depends on KEYS
585 select CRYPTO
Dmitry Kasatkinbe440ec2012-01-17 17:12:04 +0200586 select CRYPTO_SHA1
Dmitry Kasatkin051dbb92011-10-14 15:25:16 +0300587 select MPILIB
588 help
589 Digital signature verification. Currently only RSA is supported.
590 Implementation is done using GnuPG MPI library
591
Tal Gilboa4f75da32019-01-10 17:33:17 +0200592config DIMLIB
Uwe Kleine-König424adc32019-09-24 18:02:59 +0200593 bool
Tal Gilboa4f75da32019-01-10 17:33:17 +0200594 help
595 Dynamic Interrupt Moderation library.
Randy Dunlap991ad2b2019-09-25 17:20:42 -0700596 Implements an algorithm for dynamically changing CQ moderation values
Tal Gilboa4f75da32019-01-10 17:33:17 +0200597 according to run time performance.
598
David Daneyab253832012-07-05 18:12:38 +0200599#
600# libfdt files, only selected if needed.
601#
602config LIBFDT
603 bool
604
David Howellsa77ad6e2012-09-21 23:30:46 +0100605config OID_REGISTRY
606 tristate
607 help
608 Enable fast lookup object identifier registry.
609
Matthew Garrett0635eb82013-04-15 13:09:45 -0700610config UCS2_STRING
Krzysztof Kozlowski68d4b3d2019-12-06 17:04:08 -0800611 tristate
Matthew Garrett0635eb82013-04-15 13:09:45 -0700612
Vincenzo Frascino00b26472019-06-21 10:52:29 +0100613#
614# generic vdso
615#
616source "lib/vdso/Kconfig"
617
Geert Uytterhoevenee89bd62013-06-09 11:46:43 +0200618source "lib/fonts/Kconfig"
619
Robert Jarzmikf8bcbe62015-08-08 10:44:10 +0200620config SG_SPLIT
621 def_bool n
622 help
Geert Uytterhoeven7f7e92f2015-09-04 12:45:05 +0200623 Provides a helper to split scatterlists into chunks, each chunk being
624 a scatterlist. This should be selected by a driver or an API which
625 whishes to split a scatterlist amongst multiple DMA channels.
Robert Jarzmikf8bcbe62015-08-08 10:44:10 +0200626
Ming Lin9b1d6c82016-04-04 14:48:11 -0700627config SG_POOL
628 def_bool n
629 help
630 Provides a helper to allocate chained scatterlists. This should be
631 selected by a driver or an API which whishes to allocate chained
632 scatterlist.
633
Laura Abbott308c09f2014-08-08 14:23:25 -0700634#
635# sg chaining option
636#
637
Christoph Hellwig7c703e52018-11-09 09:51:00 +0100638config ARCH_NO_SG_CHAIN
Laura Abbott308c09f2014-08-08 14:23:25 -0700639 def_bool n
640
Ross Zwisler61031952015-06-25 03:08:39 -0400641config ARCH_HAS_PMEM_API
642 bool
643
Dan Williams33dd7072019-11-06 17:43:31 -0800644config MEMREGION
645 bool
646
Dan Williams9ffc1d12020-01-30 12:06:07 -0800647config ARCH_HAS_MEMREMAP_COMPAT_ALIGN
648 bool
649
Christoph Hellwigbd79f942019-04-23 18:38:08 +0200650# use memcpy to implement user copies for nommu architectures
651config UACCESS_MEMCPY
652 bool
653
Dan Williams0aed55a2017-05-29 12:22:50 -0700654config ARCH_HAS_UACCESS_FLUSHCACHE
655 bool
656
Dan Williamsec6347b2020-10-05 20:40:16 -0700657# arch has a concept of a recoverable synchronous exception due to a
658# memory-read error like x86 machine-check or ARM data-abort, and
659# implements copy_mc_to_{user,kernel} to abort and report
660# 'bytes-transferred' if that exception fires when accessing the source
661# buffer.
662config ARCH_HAS_COPY_MC
Dan Williams522239b2018-05-22 23:17:03 -0700663 bool
664
Thomas Gleixner214d8ca2019-04-25 11:45:21 +0200665# Temporary. Goes away when all archs are cleaned up
666config ARCH_STACKWALK
667 bool
668
Alexander Potapenkocd110162016-03-25 14:22:08 -0700669config STACKDEPOT
670 bool
671 select STACKTRACE
672
Vlastimil Babka2dba5eb2022-01-21 22:14:27 -0800673config STACKDEPOT_ALWAYS_INIT
674 bool
675 select STACKDEPOT
676
Yogesh Lald2620932021-02-25 17:21:24 -0800677config STACK_HASH_ORDER
678 int "stack depot hash size (12 => 4KB, 20 => 1024KB)"
679 range 12 20
680 default 20
681 depends on STACKDEPOT
682 help
683 Select the hash size as a power of 2 for the stackdepot hash table.
684 Choose a lower value to reduce the memory impact.
685
Eric Dumazet4e669342021-12-04 20:21:55 -0800686config REF_TRACKER
687 bool
688 depends on STACKTRACE_SUPPORT
689 select STACKDEPOT
690
Omar Sandoval88459642016-09-17 08:38:44 -0600691config SBITMAP
692 bool
693
Jiri Pirko44091d22017-02-03 10:29:06 +0100694config PARMAN
Geert Uytterhoeven9d25af62017-02-24 11:25:55 +0100695 tristate "parman" if COMPILE_TEST
Jiri Pirko44091d22017-02-03 10:29:06 +0100696
Randy Dunlap3dfdecc2019-09-09 14:54:21 -0700697config OBJAGG
698 tristate "objagg" if COMPILE_TEST
699
Thomas Graf2de4ff72005-06-23 20:49:30 -0700700endmenu
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700701
Christoph Hellwig80b0ca92019-08-13 11:24:04 +0200702config GENERIC_IOREMAP
703 bool
704
Matt Redfearne3d59802018-04-11 08:50:17 +0100705config GENERIC_LIB_ASHLDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700706 bool
707
Matt Redfearne3d59802018-04-11 08:50:17 +0100708config GENERIC_LIB_ASHRDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700709 bool
710
Matt Redfearne3d59802018-04-11 08:50:17 +0100711config GENERIC_LIB_LSHRDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700712 bool
713
Matt Redfearne3d59802018-04-11 08:50:17 +0100714config GENERIC_LIB_MULDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700715 bool
716
Matt Redfearne3d59802018-04-11 08:50:17 +0100717config GENERIC_LIB_CMPDI2
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700718 bool
719
Matt Redfearne3d59802018-04-11 08:50:17 +0100720config GENERIC_LIB_UCMPDI2
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700721 bool
Jacob Kellerb8265622020-07-23 17:21:59 -0700722
Palmer Dabbelt527701e2020-07-09 11:43:21 -0700723config GENERIC_LIB_DEVMEM_IS_ALLOWED
724 bool
725
Jacob Kellerb8265622020-07-23 17:21:59 -0700726config PLDMFW
727 bool
728 default n
James Bottomleyb0706762021-01-27 11:06:13 -0800729
730config ASN1_ENCODER
731 tristate