Re: [PATCH 027/193] arch/sh: remove CONFIG_EXPERIMENTAL

2012-10-25 Thread Kees Cook
On Thu, Oct 25, 2012 at 9:28 PM, Paul Mundt  wrote:
> On Tue, Oct 23, 2012 at 01:01:40PM -0700, Kees Cook wrote:
>> This config item has not carried much meaning for a while now and is
>> almost always enabled by default. As agreed during the Linux kernel
>> summit, remove it.
>>
>> CC: Paul Mundt 
>> CC: Tejun Heo 
>> Signed-off-by: Kees Cook 
>
> While there are cases where it is largely superfluous, we also have
> plenty of cases in here that are genuinely experimental features and
> generally shouldn't be enabled unless someone is prepared for some
> hacking. We can of course replace this with an arch-specific option if
> needed, but I disagree with suddenly making experimental features
> suddenly appear to be anything other than what they are.

Yeah, things that really are experimental need something, but it
hasn't been meaningful to put them behind CONFIG_EXPERIMENTAL. Here's
the text from the first patch, which details possible approaches:

https://lkml.org/lkml/2012/10/23/878
This config item has not carried much meaning for a while now and is
almost always enabled by default (especially in distro builds). As agreed
during the Linux kernel summit, it should be removed. As a first step,
remove it from being listed, and default it to on. Once it has been
removed from all subsystem Kconfigs, it will be dropped entirely.

For items that really are experimental, maintainers should use "default
n", optionally include "(EXPERIMENTAL)" in the title, and add language to
the help text indicating why the item should be considered experimental.

For items that are dangerously experimental, the maintainer is encouraged
to follow the above title recommendation, add stronger language to the
help text, and optionally use (depending on the extent of the danger,
from least to most dangerous): printk(), add_taint(TAINT_WARN),
add_taint(TAINT_CRAP), WARN_ON(1), and CONFIG_BROKEN.


-Kees

-- 
Kees Cook
Chrome OS Security
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 027/193] arch/sh: remove CONFIG_EXPERIMENTAL

2012-10-25 Thread Paul Mundt
On Tue, Oct 23, 2012 at 01:01:40PM -0700, Kees Cook wrote:
> This config item has not carried much meaning for a while now and is
> almost always enabled by default. As agreed during the Linux kernel
> summit, remove it.
> 
> CC: Paul Mundt 
> CC: Tejun Heo 
> Signed-off-by: Kees Cook 

While there are cases where it is largely superfluous, we also have
plenty of cases in here that are genuinely experimental features and
generally shouldn't be enabled unless someone is prepared for some
hacking. We can of course replace this with an arch-specific option if
needed, but I disagree with suddenly making experimental features
suddenly appear to be anything other than what they are.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 027/193] arch/sh: remove CONFIG_EXPERIMENTAL

2012-10-25 Thread Paul Mundt
On Tue, Oct 23, 2012 at 01:01:40PM -0700, Kees Cook wrote:
 This config item has not carried much meaning for a while now and is
 almost always enabled by default. As agreed during the Linux kernel
 summit, remove it.
 
 CC: Paul Mundt let...@linux-sh.org
 CC: Tejun Heo t...@kernel.org
 Signed-off-by: Kees Cook keesc...@chromium.org

While there are cases where it is largely superfluous, we also have
plenty of cases in here that are genuinely experimental features and
generally shouldn't be enabled unless someone is prepared for some
hacking. We can of course replace this with an arch-specific option if
needed, but I disagree with suddenly making experimental features
suddenly appear to be anything other than what they are.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 027/193] arch/sh: remove CONFIG_EXPERIMENTAL

2012-10-25 Thread Kees Cook
On Thu, Oct 25, 2012 at 9:28 PM, Paul Mundt let...@linux-sh.org wrote:
 On Tue, Oct 23, 2012 at 01:01:40PM -0700, Kees Cook wrote:
 This config item has not carried much meaning for a while now and is
 almost always enabled by default. As agreed during the Linux kernel
 summit, remove it.

 CC: Paul Mundt let...@linux-sh.org
 CC: Tejun Heo t...@kernel.org
 Signed-off-by: Kees Cook keesc...@chromium.org

 While there are cases where it is largely superfluous, we also have
 plenty of cases in here that are genuinely experimental features and
 generally shouldn't be enabled unless someone is prepared for some
 hacking. We can of course replace this with an arch-specific option if
 needed, but I disagree with suddenly making experimental features
 suddenly appear to be anything other than what they are.

Yeah, things that really are experimental need something, but it
hasn't been meaningful to put them behind CONFIG_EXPERIMENTAL. Here's
the text from the first patch, which details possible approaches:

https://lkml.org/lkml/2012/10/23/878
This config item has not carried much meaning for a while now and is
almost always enabled by default (especially in distro builds). As agreed
during the Linux kernel summit, it should be removed. As a first step,
remove it from being listed, and default it to on. Once it has been
removed from all subsystem Kconfigs, it will be dropped entirely.

For items that really are experimental, maintainers should use default
n, optionally include (EXPERIMENTAL) in the title, and add language to
the help text indicating why the item should be considered experimental.

For items that are dangerously experimental, the maintainer is encouraged
to follow the above title recommendation, add stronger language to the
help text, and optionally use (depending on the extent of the danger,
from least to most dangerous): printk(), add_taint(TAINT_WARN),
add_taint(TAINT_CRAP), WARN_ON(1), and CONFIG_BROKEN.


-Kees

-- 
Kees Cook
Chrome OS Security
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 027/193] arch/sh: remove CONFIG_EXPERIMENTAL

2012-10-23 Thread Kees Cook
This config item has not carried much meaning for a while now and is
almost always enabled by default. As agreed during the Linux kernel
summit, remove it.

CC: Paul Mundt 
CC: Tejun Heo 
Signed-off-by: Kees Cook 
---
 arch/sh/Kconfig |   29 ++---
 arch/sh/Kconfig.cpu |3 +--
 arch/sh/mm/Kconfig  |4 ++--
 3 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index babc2b8..a3427a5 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -647,8 +647,8 @@ menu "Kernel features"
 source kernel/Kconfig.hz
 
 config KEXEC
-   bool "kexec system call (EXPERIMENTAL)"
-   depends on SUPERH32 && EXPERIMENTAL && MMU
+   bool "kexec system call"
+   depends on SUPERH32 && MMU
help
  kexec is a system call that implements the ability to shutdown your
  current kernel, and to start another kernel.  It is like a reboot
@@ -664,8 +664,8 @@ config KEXEC
  strongly in flux, so no good recommendation can be made.
 
 config CRASH_DUMP
-   bool "kernel crash dumps (EXPERIMENTAL)"
-   depends on SUPERH32 && EXPERIMENTAL && BROKEN_ON_SMP
+   bool "kernel crash dumps"
+   depends on SUPERH32 && BROKEN_ON_SMP
help
  Generate crash dump after being started by kexec.
  This should be normally only set in special crash dump kernels
@@ -678,8 +678,8 @@ config CRASH_DUMP
  For more details see Documentation/kdump/kdump.txt
 
 config KEXEC_JUMP
-   bool "kexec jump (EXPERIMENTAL)"
-   depends on SUPERH32 && KEXEC && HIBERNATION && EXPERIMENTAL
+   bool "kexec jump"
+   depends on SUPERH32 && KEXEC && HIBERNATION
help
  Jump between original kernel and kexeced kernel and invoke
  code via KEXEC
@@ -712,8 +712,8 @@ config SECCOMP
  If unsure, say N.
 
 config CC_STACKPROTECTOR
-   bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
-   depends on SUPERH32 && EXPERIMENTAL
+   bool "Enable -fstack-protector buffer overflow detection"
+   depends on SUPERH32
help
  This option turns on the -fstack-protector GCC feature. This
  feature puts, at the beginning of functions, a canary value on
@@ -763,8 +763,8 @@ config NR_CPUS
  approximately eight kilobytes to the kernel image.
 
 config HOTPLUG_CPU
-   bool "Support for hot-pluggable CPUs (EXPERIMENTAL)"
-   depends on SMP && HOTPLUG && EXPERIMENTAL
+   bool "Support for hot-pluggable CPUs"
+   depends on SMP && HOTPLUG
help
  Say Y here to experiment with turning CPUs off and on.  CPUs
  can be controlled through /sys/devices/system/cpu.
@@ -786,7 +786,7 @@ config GUSA
  atomicity implementations exist.
 
 config GUSA_RB
-   bool "Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)"
+   bool "Implement atomic operations by roll-back (gRB)"
depends on GUSA && CPU_SH3 || (CPU_SH4 && !CPU_SH4A)
help
  Enabling this option will allow the kernel to implement some
@@ -842,8 +842,8 @@ config ENTRY_OFFSET
default "0x"
 
 config ROMIMAGE_MMCIF
-   bool "Include MMCIF loader in romImage (EXPERIMENTAL)"
-   depends on CPU_SUBTYPE_SH7724 && EXPERIMENTAL
+   bool "Include MMCIF loader in romImage"
+   depends on CPU_SUBTYPE_SH7724
help
  Say Y here to include experimental MMCIF loading code in
  romImage. With this enabled it is possible to write the romImage
@@ -928,8 +928,7 @@ source "fs/Kconfig.binfmt"
 
 endmenu
 
-menu "Power management options (EXPERIMENTAL)"
-depends on EXPERIMENTAL
+menu "Power management options"
 
 source "kernel/power/Kconfig"
 
diff --git a/arch/sh/Kconfig.cpu b/arch/sh/Kconfig.cpu
index 770ff2d..05b518e 100644
--- a/arch/sh/Kconfig.cpu
+++ b/arch/sh/Kconfig.cpu
@@ -33,7 +33,7 @@ config SH64_FPU_DENORM_FLUSH
 config SH_FPU_EMU
def_bool n
prompt "FPU emulation support"
-   depends on !SH_FPU && EXPERIMENTAL
+   depends on !SH_FPU
help
  Selecting this option will enable support for software FPU emulation.
  Most SH-3 users will want to say Y here, whereas most SH-4 users will
@@ -68,7 +68,6 @@ config SH_STORE_QUEUES
 
 config SPECULATIVE_EXECUTION
bool "Speculative subroutine return"
-   depends on EXPERIMENTAL
depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || 
CPU_SUBTYPE_SH7786
help
  This enables support for a speculative instruction fetch for
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig
index cb8f992..533ccbb 100644
--- a/arch/sh/mm/Kconfig
+++ b/arch/sh/mm/Kconfig
@@ -83,7 +83,7 @@ config 32BIT
 
 config PMB
bool "Support 32-bit physical addressing through PMB"
-   depends on MMU && EXPERIMENTAL && CPU_SH4A && !CPU_SH4AL_DSP
+   depends on MMU && CPU_SH4A && !CPU_SH4AL_DSP
select 32BIT
select UNCACHED_MAPPING

[PATCH 027/193] arch/sh: remove CONFIG_EXPERIMENTAL

2012-10-23 Thread Kees Cook
This config item has not carried much meaning for a while now and is
almost always enabled by default. As agreed during the Linux kernel
summit, remove it.

CC: Paul Mundt let...@linux-sh.org
CC: Tejun Heo t...@kernel.org
Signed-off-by: Kees Cook keesc...@chromium.org
---
 arch/sh/Kconfig |   29 ++---
 arch/sh/Kconfig.cpu |3 +--
 arch/sh/mm/Kconfig  |4 ++--
 3 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index babc2b8..a3427a5 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -647,8 +647,8 @@ menu Kernel features
 source kernel/Kconfig.hz
 
 config KEXEC
-   bool kexec system call (EXPERIMENTAL)
-   depends on SUPERH32  EXPERIMENTAL  MMU
+   bool kexec system call
+   depends on SUPERH32  MMU
help
  kexec is a system call that implements the ability to shutdown your
  current kernel, and to start another kernel.  It is like a reboot
@@ -664,8 +664,8 @@ config KEXEC
  strongly in flux, so no good recommendation can be made.
 
 config CRASH_DUMP
-   bool kernel crash dumps (EXPERIMENTAL)
-   depends on SUPERH32  EXPERIMENTAL  BROKEN_ON_SMP
+   bool kernel crash dumps
+   depends on SUPERH32  BROKEN_ON_SMP
help
  Generate crash dump after being started by kexec.
  This should be normally only set in special crash dump kernels
@@ -678,8 +678,8 @@ config CRASH_DUMP
  For more details see Documentation/kdump/kdump.txt
 
 config KEXEC_JUMP
-   bool kexec jump (EXPERIMENTAL)
-   depends on SUPERH32  KEXEC  HIBERNATION  EXPERIMENTAL
+   bool kexec jump
+   depends on SUPERH32  KEXEC  HIBERNATION
help
  Jump between original kernel and kexeced kernel and invoke
  code via KEXEC
@@ -712,8 +712,8 @@ config SECCOMP
  If unsure, say N.
 
 config CC_STACKPROTECTOR
-   bool Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)
-   depends on SUPERH32  EXPERIMENTAL
+   bool Enable -fstack-protector buffer overflow detection
+   depends on SUPERH32
help
  This option turns on the -fstack-protector GCC feature. This
  feature puts, at the beginning of functions, a canary value on
@@ -763,8 +763,8 @@ config NR_CPUS
  approximately eight kilobytes to the kernel image.
 
 config HOTPLUG_CPU
-   bool Support for hot-pluggable CPUs (EXPERIMENTAL)
-   depends on SMP  HOTPLUG  EXPERIMENTAL
+   bool Support for hot-pluggable CPUs
+   depends on SMP  HOTPLUG
help
  Say Y here to experiment with turning CPUs off and on.  CPUs
  can be controlled through /sys/devices/system/cpu.
@@ -786,7 +786,7 @@ config GUSA
  atomicity implementations exist.
 
 config GUSA_RB
-   bool Implement atomic operations by roll-back (gRB) (EXPERIMENTAL)
+   bool Implement atomic operations by roll-back (gRB)
depends on GUSA  CPU_SH3 || (CPU_SH4  !CPU_SH4A)
help
  Enabling this option will allow the kernel to implement some
@@ -842,8 +842,8 @@ config ENTRY_OFFSET
default 0x
 
 config ROMIMAGE_MMCIF
-   bool Include MMCIF loader in romImage (EXPERIMENTAL)
-   depends on CPU_SUBTYPE_SH7724  EXPERIMENTAL
+   bool Include MMCIF loader in romImage
+   depends on CPU_SUBTYPE_SH7724
help
  Say Y here to include experimental MMCIF loading code in
  romImage. With this enabled it is possible to write the romImage
@@ -928,8 +928,7 @@ source fs/Kconfig.binfmt
 
 endmenu
 
-menu Power management options (EXPERIMENTAL)
-depends on EXPERIMENTAL
+menu Power management options
 
 source kernel/power/Kconfig
 
diff --git a/arch/sh/Kconfig.cpu b/arch/sh/Kconfig.cpu
index 770ff2d..05b518e 100644
--- a/arch/sh/Kconfig.cpu
+++ b/arch/sh/Kconfig.cpu
@@ -33,7 +33,7 @@ config SH64_FPU_DENORM_FLUSH
 config SH_FPU_EMU
def_bool n
prompt FPU emulation support
-   depends on !SH_FPU  EXPERIMENTAL
+   depends on !SH_FPU
help
  Selecting this option will enable support for software FPU emulation.
  Most SH-3 users will want to say Y here, whereas most SH-4 users will
@@ -68,7 +68,6 @@ config SH_STORE_QUEUES
 
 config SPECULATIVE_EXECUTION
bool Speculative subroutine return
-   depends on EXPERIMENTAL
depends on CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7785 || 
CPU_SUBTYPE_SH7786
help
  This enables support for a speculative instruction fetch for
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig
index cb8f992..533ccbb 100644
--- a/arch/sh/mm/Kconfig
+++ b/arch/sh/mm/Kconfig
@@ -83,7 +83,7 @@ config 32BIT
 
 config PMB
bool Support 32-bit physical addressing through PMB
-   depends on MMU  EXPERIMENTAL  CPU_SH4A  !CPU_SH4AL_DSP
+   depends on MMU  CPU_SH4A  !CPU_SH4AL_DSP
select 32BIT
select UNCACHED_MAPPING
help
@@ -110,7 +110,7 @@ config