summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/alpha/include/uapi/asm/setup.h4
-rw-r--r--arch/arc/include/asm/setup.h2
-rw-r--r--arch/arm/include/uapi/asm/setup.h6
-rw-r--r--arch/arm64/include/uapi/asm/setup.h4
-rw-r--r--arch/loongarch/include/uapi/asm/setup.h4
-rw-r--r--arch/m68k/include/uapi/asm/setup.h6
-rw-r--r--arch/microblaze/include/uapi/asm/setup.h4
-rw-r--r--arch/mips/include/uapi/asm/setup.h4
-rw-r--r--arch/parisc/include/uapi/asm/setup.h4
-rw-r--r--arch/powerpc/include/uapi/asm/setup.h4
-rw-r--r--arch/riscv/include/uapi/asm/setup.h4
-rw-r--r--arch/s390/Kconfig8
-rw-r--r--arch/sparc/include/uapi/asm/setup.h10
-rw-r--r--arch/um/include/asm/setup.h2
-rw-r--r--arch/x86/include/asm/setup.h2
-rw-r--r--arch/xtensa/include/uapi/asm/setup.h4
-rw-r--r--include/uapi/asm-generic/setup.h4
-rw-r--r--init/Kconfig16
18 files changed, 76 insertions, 16 deletions
diff --git a/arch/alpha/include/uapi/asm/setup.h b/arch/alpha/include/uapi/asm/setup.h
index f881ea5947cb..169f743ef765 100644
--- a/arch/alpha/include/uapi/asm/setup.h
+++ b/arch/alpha/include/uapi/asm/setup.h
@@ -2,6 +2,10 @@
#ifndef _UAPI__ALPHA_SETUP_H
#define _UAPI__ALPHA_SETUP_H
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
#define COMMAND_LINE_SIZE 256
+#endif
#endif /* _UAPI__ALPHA_SETUP_H */
diff --git a/arch/arc/include/asm/setup.h b/arch/arc/include/asm/setup.h
index 1c6db599e1fc..60e158d58cec 100644
--- a/arch/arc/include/asm/setup.h
+++ b/arch/arc/include/asm/setup.h
@@ -9,7 +9,7 @@
#include <linux/types.h>
#include <uapi/asm/setup.h>
-#define COMMAND_LINE_SIZE 256
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
/*
* Data structure to map a ID to string
diff --git a/arch/arm/include/uapi/asm/setup.h b/arch/arm/include/uapi/asm/setup.h
index 8e50e034fec7..4aa93558af1e 100644
--- a/arch/arm/include/uapi/asm/setup.h
+++ b/arch/arm/include/uapi/asm/setup.h
@@ -17,7 +17,11 @@
#include <linux/types.h>
-#define COMMAND_LINE_SIZE 1024
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
+#define COMMAND_LINE_SIZE 1024
+#endif
/* The list ends with an ATAG_NONE node. */
#define ATAG_NONE 0x00000000
diff --git a/arch/arm64/include/uapi/asm/setup.h b/arch/arm64/include/uapi/asm/setup.h
index 5d703888f351..2236890175a5 100644
--- a/arch/arm64/include/uapi/asm/setup.h
+++ b/arch/arm64/include/uapi/asm/setup.h
@@ -22,6 +22,10 @@
#include <linux/types.h>
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
#define COMMAND_LINE_SIZE 2048
+#endif
#endif
diff --git a/arch/loongarch/include/uapi/asm/setup.h b/arch/loongarch/include/uapi/asm/setup.h
index d46363ce3e02..03c7bfa1e5d9 100644
--- a/arch/loongarch/include/uapi/asm/setup.h
+++ b/arch/loongarch/include/uapi/asm/setup.h
@@ -3,6 +3,10 @@
#ifndef _UAPI_ASM_LOONGARCH_SETUP_H
#define _UAPI_ASM_LOONGARCH_SETUP_H
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
#define COMMAND_LINE_SIZE 4096
+#endif
#endif /* _UAPI_ASM_LOONGARCH_SETUP_H */
diff --git a/arch/m68k/include/uapi/asm/setup.h b/arch/m68k/include/uapi/asm/setup.h
index 25fe26d5597c..2d5b24a5345f 100644
--- a/arch/m68k/include/uapi/asm/setup.h
+++ b/arch/m68k/include/uapi/asm/setup.h
@@ -12,6 +12,10 @@
#ifndef _UAPI_M68K_SETUP_H
#define _UAPI_M68K_SETUP_H
-#define COMMAND_LINE_SIZE 256
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
+#define COMMAND_LINE_SIZE 256
+#endif
#endif /* _UAPI_M68K_SETUP_H */
diff --git a/arch/microblaze/include/uapi/asm/setup.h b/arch/microblaze/include/uapi/asm/setup.h
index 16c56807f86a..e4b253064c7d 100644
--- a/arch/microblaze/include/uapi/asm/setup.h
+++ b/arch/microblaze/include/uapi/asm/setup.h
@@ -12,6 +12,10 @@
#ifndef _UAPI_ASM_MICROBLAZE_SETUP_H
#define _UAPI_ASM_MICROBLAZE_SETUP_H
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
#define COMMAND_LINE_SIZE 256
+#endif
#endif /* _UAPI_ASM_MICROBLAZE_SETUP_H */
diff --git a/arch/mips/include/uapi/asm/setup.h b/arch/mips/include/uapi/asm/setup.h
index 7d48c433b0c2..8d6c474835ae 100644
--- a/arch/mips/include/uapi/asm/setup.h
+++ b/arch/mips/include/uapi/asm/setup.h
@@ -2,7 +2,11 @@
#ifndef _UAPI_MIPS_SETUP_H
#define _UAPI_MIPS_SETUP_H
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
#define COMMAND_LINE_SIZE 4096
+#endif
#endif /* _UAPI_MIPS_SETUP_H */
diff --git a/arch/parisc/include/uapi/asm/setup.h b/arch/parisc/include/uapi/asm/setup.h
index 78b2f4ec7d65..cfa77e84205d 100644
--- a/arch/parisc/include/uapi/asm/setup.h
+++ b/arch/parisc/include/uapi/asm/setup.h
@@ -2,6 +2,10 @@
#ifndef _PARISC_SETUP_H
#define _PARISC_SETUP_H
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
#define COMMAND_LINE_SIZE 1024
+#endif
#endif /* _PARISC_SETUP_H */
diff --git a/arch/powerpc/include/uapi/asm/setup.h b/arch/powerpc/include/uapi/asm/setup.h
index c54940b09d06..daa15ac4e94c 100644
--- a/arch/powerpc/include/uapi/asm/setup.h
+++ b/arch/powerpc/include/uapi/asm/setup.h
@@ -2,6 +2,10 @@
#ifndef _UAPI_ASM_POWERPC_SETUP_H
#define _UAPI_ASM_POWERPC_SETUP_H
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
#define COMMAND_LINE_SIZE 2048
+#endif
#endif /* _UAPI_ASM_POWERPC_SETUP_H */
diff --git a/arch/riscv/include/uapi/asm/setup.h b/arch/riscv/include/uapi/asm/setup.h
index eb4f0209c696..a6c1f4b0987e 100644
--- a/arch/riscv/include/uapi/asm/setup.h
+++ b/arch/riscv/include/uapi/asm/setup.h
@@ -3,6 +3,10 @@
#ifndef _UAPI_ASM_RISCV_SETUP_H
#define _UAPI_ASM_RISCV_SETUP_H
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
#define COMMAND_LINE_SIZE 2048
+#endif
#endif /* _UAPI_ASM_RISCV_SETUP_H */
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 4b51bc6e8948..026ba041ca95 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -521,14 +521,6 @@ endchoice
config 64BIT
def_bool y
-config COMMAND_LINE_SIZE
- int "Maximum size of kernel command line"
- default 4096
- range 896 1048576
- help
- This allows you to specify the maximum length of the kernel command
- line.
-
config SMP
def_bool y
diff --git a/arch/sparc/include/uapi/asm/setup.h b/arch/sparc/include/uapi/asm/setup.h
index 3c208a4dd464..7054f5249a3a 100644
--- a/arch/sparc/include/uapi/asm/setup.h
+++ b/arch/sparc/include/uapi/asm/setup.h
@@ -6,10 +6,14 @@
#ifndef _UAPI_SPARC_SETUP_H
#define _UAPI_SPARC_SETUP_H
-#if defined(__sparc__) && defined(__arch64__)
-# define COMMAND_LINE_SIZE 2048
+#ifdef __KERNEL__
+# define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
#else
-# define COMMAND_LINE_SIZE 256
+# if defined(__sparc__) && defined(__arch64__)
+# define COMMAND_LINE_SIZE 2048
+# else
+# define COMMAND_LINE_SIZE 256
+# endif
#endif
diff --git a/arch/um/include/asm/setup.h b/arch/um/include/asm/setup.h
index 80ada899f254..bc83dc4d467d 100644
--- a/arch/um/include/asm/setup.h
+++ b/arch/um/include/asm/setup.h
@@ -6,6 +6,6 @@
* command line, so this choice is ok.
*/
-#define COMMAND_LINE_SIZE 4096
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
#endif /* SETUP_H_INCLUDED */
diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
index 895d09faaf83..1b333bb091d7 100644
--- a/arch/x86/include/asm/setup.h
+++ b/arch/x86/include/asm/setup.h
@@ -4,7 +4,7 @@
#include <uapi/asm/setup.h>
-#define COMMAND_LINE_SIZE 2048
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
#include <linux/linkage.h>
#include <asm/page_types.h>
diff --git a/arch/xtensa/include/uapi/asm/setup.h b/arch/xtensa/include/uapi/asm/setup.h
index 5356a5fd4d17..dcf33a403527 100644
--- a/arch/xtensa/include/uapi/asm/setup.h
+++ b/arch/xtensa/include/uapi/asm/setup.h
@@ -12,6 +12,10 @@
#ifndef _XTENSA_SETUP_H
#define _XTENSA_SETUP_H
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
#define COMMAND_LINE_SIZE 256
+#endif
#endif
diff --git a/include/uapi/asm-generic/setup.h b/include/uapi/asm-generic/setup.h
index 88ac5100df35..b8d06e6d56bd 100644
--- a/include/uapi/asm-generic/setup.h
+++ b/include/uapi/asm-generic/setup.h
@@ -2,6 +2,10 @@
#ifndef __ASM_GENERIC_SETUP_H
#define __ASM_GENERIC_SETUP_H
+#ifdef __KERNEL__
+#define COMMAND_LINE_SIZE CONFIG_COMMAND_LINE_SIZE
+#else
#define COMMAND_LINE_SIZE 512
+#endif
#endif /* __ASM_GENERIC_SETUP_H */
diff --git a/init/Kconfig b/init/Kconfig
index 8583d9f06c52..edc79893e1ac 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1614,6 +1614,22 @@ config CMDLINE_FROM_BOOTCONFIG
If unsure, say N.
+config COMMAND_LINE_SIZE
+ int "Maximum size of kernel command line"
+ default 4096 if S390 || LOONGARCH || MIPS || UML
+ default 2048 if X86 || ARM64 || PPC || SPARC64 || RISCV
+ default 1024 if ARM || PARISC
+ default 256 if ALPHA || ARC || M68K || MICROBLAZE || SPARC32 || XTENSA
+ default 512
+ range 896 1048576 if S390
+ range 256 2048 if ARM || M68K || NIOS2 || PPC
+ range 256 3840 if SUPERH
+ range 256 256 if ALPHA
+ range 256 4096
+ help
+ This allows you to specify the maximum length of the kernel command
+ line.
+
config CMDLINE_LOG_WRAP_IDEAL_LEN
int "Length to try to wrap the cmdline when logged at boot"
default 1021