config ARCH_NO_COHERENT_DMA_MMAP
        bool
 
+config ARCH_NO_PREEMPT
+       bool
+
 config CPU_NO_EFFICIENT_FFS
        def_bool n
 
 
        default y
        select ARCH_MIGHT_HAVE_PC_PARPORT
        select ARCH_MIGHT_HAVE_PC_SERIO
+       select ARCH_NO_PREEMPT
        select ARCH_USE_CMPXCHG_LOCKREF
        select HAVE_AOUT
        select HAVE_IDE
 
          Set the name of the DTB to embed in the vmlinux binary
          Leaving it blank selects the minimal "skeleton" dtb
 
-source "kernel/Kconfig.preempt"
-
 endmenu         # "ARC Architecture Configuration"
 
 config FORCE_MAX_ZONEORDER
 
 
          If unsure, leave the default value.
 
-source kernel/Kconfig.preempt
-
 config HZ_FIXED
        int
        default 200 if ARCH_EBSA110
 
        def_bool y
        depends on NUMA
 
-source kernel/Kconfig.preempt
 source kernel/Kconfig.hz
 
 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
 
        default 0xe0000000 if SOC_TMS320C6472
        default 0x80000000
 
-source "kernel/Kconfig.preempt"
-
 source "kernel/Kconfig.hz"
 
 endmenu
 
        default 1
 
 source "arch/h8300/Kconfig.cpu"
-
-menu "Kernel Features"
-
-source "kernel/Kconfig.preempt"
-
-endmenu
 
 
 config HEXAGON
        def_bool y
+       select ARCH_NO_PREEMPT
        select HAVE_OPROFILE
        # Other pending projects/to-do items.
        # select HAVE_REGS_AND_STACK_ACCESS_API
 
        This option it useful to enable this feature on older BIOS's as well.
        You can also enable this by using boot command line option force_cpei=1.
 
-source "kernel/Kconfig.preempt"
-
 config ARCH_SELECT_MEMORY_MODEL
        def_bool y
 
 
        default y
        select ARCH_MIGHT_HAVE_PC_PARPORT if ISA
        select ARCH_NO_COHERENT_DMA_MMAP if !MMU
+       select ARCH_NO_PREEMPT if !COLDFIRE
        select HAVE_IDE
        select HAVE_AOUT if MMU
        select HAVE_DEBUG_BUGVERBOSE
 
 menu "Kernel Features"
 
-if COLDFIRE
-source "kernel/Kconfig.preempt"
-endif
-
 endmenu
 
 if !MMU
 
 
 menu "Processor type and features"
 
-source "kernel/Kconfig.preempt"
-
 source "kernel/Kconfig.hz"
 
 config MMU
 
 config SCHED_HRTICK
        def_bool HIGH_RES_TIMERS
 
-source "kernel/Kconfig.preempt"
-
 config KEXEC
        bool "Kexec system call"
        select KEXEC_CORE
 
 endmenu
 
 menu "Kernel Features"
-source "kernel/Kconfig.preempt"
 source "kernel/Kconfig.hz"
 endmenu
 
 
 menu "Kernel features"
 
-source "kernel/Kconfig.preempt"
-
 source "kernel/Kconfig.hz"
 
 config FORCE_MAX_ZONEORDER
 
          If you don't know what to do here, say N.
 
 source kernel/Kconfig.hz
-source kernel/Kconfig.preempt
 
 config OPENRISC_NO_SPR_SR_DSX
        bool "use SPR_SR_DSX software emulation" if OR1K_1200
 
        default "3"
        depends on NEED_MULTIPLE_NODES
 
-source "kernel/Kconfig.preempt"
 source "kernel/Kconfig.hz"
 
 config COMPAT
 
        depends on PPC32
 
 source kernel/Kconfig.hz
-source kernel/Kconfig.preempt
 
 config HUGETLB_PAGE_SIZE_VARIABLE
        bool
 
 
 menu "Kernel type"
 
-source "kernel/Kconfig.preempt"
-
 source "kernel/Kconfig.hz"
 
 endmenu
 
          making when dealing with machines that have multi-threading,
          multiple cores or multiple books.
 
-source kernel/Kconfig.preempt
-
 source kernel/Kconfig.hz
 
 config KEXEC
 
          Say Y here to experiment with turning CPUs off and on.  CPUs
          can be controlled through /sys/devices/system/cpu.
 
-source "kernel/Kconfig.preempt"
-
 config GUSA
        def_bool y
        depends on !SMP && SUPERH32
 
          making when dealing with multi-core CPU chips at a cost of slightly
          increased overhead in some places. If unsure say N here.
 
-source "kernel/Kconfig.preempt"
-
 config CMDLINE_BOOL
        bool "Default bootloader kernel arguments"
        depends on SPARC64
 
        bool
        default y
        select ARCH_HAS_KCOV
+       select ARCH_NO_PREEMPT
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_SECCOMP_FILTER
        select HAVE_UID16
 
 
 menu "Kernel Features"
 
-source "kernel/Kconfig.preempt"
-
 source "kernel/Kconfig.hz"
 
 config LEDS
 
 
          If unsure say Y here.
 
-source "kernel/Kconfig.preempt"
-
 config UP_LATE_INIT
        def_bool y
        depends on !SMP && X86_LOCAL_APIC
 
 
          Say Y here to enable unaligned memory access in user space.
 
-source "kernel/Kconfig.preempt"
-
 config HAVE_SMP
        bool "System Supports SMP (MX)"
        depends on XTENSA_VARIANT_CUSTOM
 
 
 source "kernel/irq/Kconfig"
 source "kernel/time/Kconfig"
+source "kernel/Kconfig.preempt"
 
 menu "CPU/Task time and stats accounting"
 
 
 
 config PREEMPT_VOLUNTARY
        bool "Voluntary Kernel Preemption (Desktop)"
+       depends on !ARCH_NO_PREEMPT
        help
          This option reduces the latency of the kernel by adding more
          "explicit preemption points" to the kernel code. These new
 
 config PREEMPT
        bool "Preemptible Kernel (Low-Latency Desktop)"
+       depends on !ARCH_NO_PREEMPT
        select PREEMPT_COUNT
        select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK
        help
 
        bool "Sleep inside atomic section checking"
        select PREEMPT_COUNT
        depends on DEBUG_KERNEL
+       depends on !ARCH_NO_PREEMPT
        help
          If you say Y here, various routines which may sleep will become very
          noisy if they are called inside atomic sections: when a spinlock is