* [PATCH] x86: detect stack protector for i386 builds on x86_64 @ 2009-08-29 16:27 Michal Schmidt 2009-08-30 13:39 ` Américo Wang ` (2 more replies) 0 siblings, 3 replies; 30+ messages in thread From: Michal Schmidt @ 2009-08-29 16:27 UTC (permalink / raw) To: Ingo Molnar; +Cc: Tejun Heo, Jeremy Fitzhardinge, Linux Kernel Mailing List Stack protector support was not detected when building with ARCH=i386 on x86_64 systems: arch/x86/Makefile:80: stack protector enabled but no compiler support The "-m32" argument needs to be passed to the detection script. Signed-off-by: Michal Schmidt <mschmidt@redhat.com> -- diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 1b68659..5e7db44 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -72,7 +72,7 @@ endif ifdef CONFIG_CC_STACKPROTECTOR cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh - ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC)),y) + ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC) $(biarch)),y) stackp-y := -fstack-protector stackp-$(CONFIG_CC_STACKPROTECTOR_ALL) += -fstack-protector-all KBUILD_CFLAGS += $(stackp-y) ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH] x86: detect stack protector for i386 builds on x86_64 2009-08-29 16:27 [PATCH] x86: detect stack protector for i386 builds on x86_64 Michal Schmidt @ 2009-08-30 13:39 ` Américo Wang 2009-08-30 18:43 ` [tip:x86/asm] x86: Detect " tip-bot for Michal Schmidt 2009-08-31 6:21 ` [PATCH] x86: detect stack protector for i386 builds on x86_64 Tejun Heo 2 siblings, 0 replies; 30+ messages in thread From: Américo Wang @ 2009-08-30 13:39 UTC (permalink / raw) To: Michal Schmidt Cc: Ingo Molnar, Tejun Heo, Jeremy Fitzhardinge, Linux Kernel Mailing List On Sat, Aug 29, 2009 at 06:27:18PM +0200, Michal Schmidt wrote: >Stack protector support was not detected when building with ARCH=i386 >on x86_64 systems: >arch/x86/Makefile:80: stack protector enabled but no compiler support > >The "-m32" argument needs to be passed to the detection script. > >Signed-off-by: Michal Schmidt <mschmidt@redhat.com> Looks fine. Acked-by: WANG Cong <xiyou.wangcong@gmail.com> > >-- >diff --git a/arch/x86/Makefile b/arch/x86/Makefile >index 1b68659..5e7db44 100644 >--- a/arch/x86/Makefile >+++ b/arch/x86/Makefile >@@ -72,7 +72,7 @@ endif > > ifdef CONFIG_CC_STACKPROTECTOR > cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh >- ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC)),y) >+ ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC) $(biarch)),y) > stackp-y := -fstack-protector > stackp-$(CONFIG_CC_STACKPROTECTOR_ALL) += -fstack-protector-all > KBUILD_CFLAGS += $(stackp-y) >-- >To unsubscribe from this list: send the line "unsubscribe linux-kernel" in >the body of a message to majordomo@vger.kernel.org >More majordomo info at http://vger.kernel.org/majordomo-info.html >Please read the FAQ at http://www.tux.org/lkml/ -- Live like a child, think like the god. ^ permalink raw reply [flat|nested] 30+ messages in thread
* [tip:x86/asm] x86: Detect stack protector for i386 builds on x86_64 2009-08-29 16:27 [PATCH] x86: detect stack protector for i386 builds on x86_64 Michal Schmidt 2009-08-30 13:39 ` Américo Wang @ 2009-08-30 18:43 ` tip-bot for Michal Schmidt 2009-09-01 10:03 ` Ingo Molnar 2009-08-31 6:21 ` [PATCH] x86: detect stack protector for i386 builds on x86_64 Tejun Heo 2 siblings, 1 reply; 30+ messages in thread From: tip-bot for Michal Schmidt @ 2009-08-30 18:43 UTC (permalink / raw) To: linux-tip-commits Cc: linux-kernel, hpa, mingo, mschmidt, jeremy, arjan, tj, tglx, mingo Commit-ID: 23386d63bbb3199cf247313ec088878d72debcfd Gitweb: http://git.kernel.org/tip/23386d63bbb3199cf247313ec088878d72debcfd Author: Michal Schmidt <mschmidt@redhat.com> AuthorDate: Sat, 29 Aug 2009 18:27:18 +0200 Committer: Ingo Molnar <mingo@elte.hu> CommitDate: Sun, 30 Aug 2009 20:39:48 +0200 x86: Detect stack protector for i386 builds on x86_64 Stack protector support was not detected when building with ARCH=i386 on x86_64 systems: arch/x86/Makefile:80: stack protector enabled but no compiler support The "-m32" argument needs to be passed to the detection script. Signed-off-by: Michal Schmidt <mschmidt@redhat.com> Cc: Tejun Heo <tj@kernel.org> Cc: Jeremy Fitzhardinge <jeremy@goop.org> Cc: Arjan van de Ven <arjan@infradead.org> LKML-Reference: <20090829182718.10f566b1@leela> Signed-off-by: Ingo Molnar <mingo@elte.hu> -- --- arch/x86/Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 1b68659..5e7db44 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -72,7 +72,7 @@ endif ifdef CONFIG_CC_STACKPROTECTOR cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh - ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC)),y) + ifeq ($(shell $(CONFIG_SHELL) $(cc_has_sp) $(CC) $(biarch)),y) stackp-y := -fstack-protector stackp-$(CONFIG_CC_STACKPROTECTOR_ALL) += -fstack-protector-all KBUILD_CFLAGS += $(stackp-y) ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [tip:x86/asm] x86: Detect stack protector for i386 builds on x86_64 2009-08-30 18:43 ` [tip:x86/asm] x86: Detect " tip-bot for Michal Schmidt @ 2009-09-01 10:03 ` Ingo Molnar 2009-09-01 11:39 ` [PATCH] kthreads: Fix startup synchronization boot crash Ingo Molnar 0 siblings, 1 reply; 30+ messages in thread From: Ingo Molnar @ 2009-09-01 10:03 UTC (permalink / raw) To: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx Cc: linux-tip-commits [-- Attachment #1: Type: text/plain, Size: 1146 bytes --] * tip-bot for Michal Schmidt <mschmidt@redhat.com> wrote: > Commit-ID: 23386d63bbb3199cf247313ec088878d72debcfd > Gitweb: http://git.kernel.org/tip/23386d63bbb3199cf247313ec088878d72debcfd > Author: Michal Schmidt <mschmidt@redhat.com> > AuthorDate: Sat, 29 Aug 2009 18:27:18 +0200 > Committer: Ingo Molnar <mingo@elte.hu> > CommitDate: Sun, 30 Aug 2009 20:39:48 +0200 > > x86: Detect stack protector for i386 builds on x86_64 FYI, -tip testing found a nasty bootup crash: [ 0.027010] Checking 'hlt' instruction... OK. [ 0.034023] calling spawn_ksoftirqd+0x0/0x48 @ 1 [ 0.035025] BUG: unable to handle kernel NULL pointer dereference at (null) [ 0.035994] IP: [<c102c79a>] try_to_wake_up+0x2f/0x174 [ 0.035994] *pde = 00000000 [ 0.035994] Oops: 0000 [#1] DEBUG_PAGEALLOC [ 0.035994] last sysfs file: and i bisected it down to this commit. The crash was probably pre-existing - stackprotector was not enabled in this type of cross-build i did. crashlog and config attached. Note that 32-bit defconfig + CONFIG_STACKPROTECTOR works just fine - so it's some other detail that triggers this crash. Ingo [-- Attachment #2: config --] [-- Type: text/plain, Size: 69206 bytes --] # # Automatically generated make config: don't edit # Linux kernel version: 2.6.31-rc8 # Tue Sep 1 11:59:53 2009 # # CONFIG_64BIT is not set CONFIG_X86_32=y # CONFIG_X86_64 is not set CONFIG_X86=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_FAST_CMPXCHG_LOCAL=y CONFIG_MMU=y CONFIG_ZONE_DMA=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y # CONFIG_GENERIC_TIME_VSYSCALL is not set CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_HAVE_DYNAMIC_PER_CPU_AREA=y # CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set CONFIG_ARCH_POPULATES_NODE_MAP=y # CONFIG_AUDIT_ARCH is not set CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_KTIME_SCALAR=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_CONSTRUCTORS=y # # General setup # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_TREE=y # # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_TREE_PREEMPT_RCU is not set CONFIG_RCU_TRACE=y CONFIG_RCU_FANOUT=32 CONFIG_RCU_FANOUT_EXACT=y CONFIG_TREE_RCU_TRACE=y # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=20 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_GROUP_SCHED=y # CONFIG_FAIR_GROUP_SCHED is not set CONFIG_RT_GROUP_SCHED=y CONFIG_USER_SCHED=y # CONFIG_CGROUP_SCHED is not set # CONFIG_CGROUPS is not set # CONFIG_SYSFS_DEPRECATED_V2 is not set CONFIG_RELAY=y CONFIG_NAMESPACES=y # CONFIG_UTS_NS is not set # CONFIG_IPC_NS is not set # CONFIG_USER_NS is not set CONFIG_PID_NS=y # CONFIG_NET_NS is not set # CONFIG_BLK_DEV_INITRD is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_ANON_INODES=y CONFIG_EMBEDDED=y # CONFIG_UID16 is not set CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_KALLSYMS_EXTRA_PASS=y CONFIG_HOTPLUG=y CONFIG_PRINTK=y # CONFIG_BUG is not set CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y # CONFIG_EPOLL is not set CONFIG_SIGNALFD=y CONFIG_TIMERFD=y # CONFIG_EVENTFD is not set CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_HAVE_PERF_COUNTERS=y # # Performance Counters # CONFIG_PERF_COUNTERS=y CONFIG_EVENT_PROFILE=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y # CONFIG_SLUB_DEBUG is not set # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y # CONFIG_SLOB is not set CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y CONFIG_MARKERS=y CONFIG_OPROFILE=m CONFIG_OPROFILE_EVENT_MULTIPLEX=y CONFIG_HAVE_OPROFILE=y CONFIG_KPROBES=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_KRETPROBES=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y # # GCOV-based kernel profiling # # CONFIG_SLOW_WORK is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_FORCE_LOAD=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_BLOCK=y CONFIG_LBDAF=y # CONFIG_BLK_DEV_BSG is not set CONFIG_BLK_DEV_INTEGRITY=y # # IO Schedulers # CONFIG_IOSCHED_NOOP=y # CONFIG_IOSCHED_AS is not set CONFIG_IOSCHED_DEADLINE=m # CONFIG_IOSCHED_CFQ is not set # CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set # CONFIG_DEFAULT_CFQ is not set CONFIG_DEFAULT_NOOP=y CONFIG_DEFAULT_IOSCHED="noop" CONFIG_PREEMPT_NOTIFIERS=y CONFIG_FREEZER=y # # Processor type and features # CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y # CONFIG_SMP is not set CONFIG_SPARSE_IRQ=y # CONFIG_X86_MPPARSE is not set # CONFIG_X86_EXTENDED_PLATFORM is not set CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_PARAVIRT_GUEST=y CONFIG_VMI=y CONFIG_KVM_CLOCK=y CONFIG_KVM_GUEST=y # CONFIG_LGUEST_GUEST is not set CONFIG_PARAVIRT=y CONFIG_PARAVIRT_CLOCK=y CONFIG_PARAVIRT_DEBUG=y # CONFIG_MEMTEST is not set # CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set # CONFIG_M586TSC is not set # CONFIG_M586MMX is not set # CONFIG_M686 is not set # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set # CONFIG_MPENTIUMM is not set # CONFIG_MPENTIUM4 is not set CONFIG_MK6=y # CONFIG_MK7 is not set # CONFIG_MK8 is not set # CONFIG_MCRUSOE is not set # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP3D is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set # CONFIG_MVIAC7 is not set # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set # CONFIG_GENERIC_CPU is not set # CONFIG_X86_GENERIC is not set CONFIG_X86_CPU=y CONFIG_X86_L1_CACHE_BYTES=64 CONFIG_X86_INTERNODE_CACHE_BYTES=64 CONFIG_X86_CMPXCHG=y CONFIG_X86_L1_CACHE_SHIFT=5 CONFIG_X86_XADD=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y CONFIG_X86_ALIGNMENT_16=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_MINIMUM_CPU_FAMILY=4 CONFIG_PROCESSOR_SELECT=y CONFIG_CPU_SUP_INTEL=y # CONFIG_CPU_SUP_CYRIX_32 is not set CONFIG_CPU_SUP_AMD=y # CONFIG_CPU_SUP_CENTAUR is not set # CONFIG_CPU_SUP_TRANSMETA_32 is not set CONFIG_CPU_SUP_UMC_32=y # CONFIG_HPET_TIMER is not set # CONFIG_DMI is not set # CONFIG_IOMMU_HELPER is not set CONFIG_IOMMU_API=y CONFIG_NR_CPUS=1 # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_X86_UP_APIC=y # CONFIG_X86_UP_IOAPIC is not set CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_MCE=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y CONFIG_X86_ANCIENT_MCE=y CONFIG_X86_MCE_THRESHOLD=y CONFIG_X86_MCE_INJECT=m CONFIG_X86_THERMAL_VECTOR=y # CONFIG_VM86 is not set # CONFIG_TOSHIBA is not set CONFIG_I8K=y CONFIG_X86_REBOOTFIXUPS=y CONFIG_MICROCODE=y # CONFIG_MICROCODE_INTEL is not set # CONFIG_MICROCODE_AMD is not set CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y # CONFIG_X86_CPU_DEBUG is not set # CONFIG_NOHIGHMEM is not set CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G is not set CONFIG_VMSPLIT_3G=y # CONFIG_VMSPLIT_3G_OPT is not set # CONFIG_VMSPLIT_2G is not set # CONFIG_VMSPLIT_2G_OPT is not set # CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ILLEGAL_POINTER_VALUE=0 CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y # CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y CONFIG_HAVE_MLOCK=y CONFIG_HAVE_MLOCKED_PAGE_BIT=y CONFIG_MMU_NOTIFIER=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 # CONFIG_HIGHPTE is not set CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y # CONFIG_X86_RESERVE_LOW_64K is not set # CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y # CONFIG_EFI is not set CONFIG_SECCOMP=y CONFIG_CC_STACKPROTECTOR_ALL=y CONFIG_CC_STACKPROTECTOR=y # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 CONFIG_SCHED_HRTICK=y # CONFIG_KEXEC is not set # CONFIG_CRASH_DUMP is not set CONFIG_PHYSICAL_START=0x1000000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_COMPAT_VDSO=y # CONFIG_CMDLINE_BOOL is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management and ACPI options # CONFIG_PM=y CONFIG_PM_DEBUG=y CONFIG_PM_VERBOSE=y CONFIG_CAN_PM_TRACE=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_HIBERNATION_NVS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_PROCFS=y CONFIG_ACPI_PROCFS_POWER=y CONFIG_ACPI_SYSFS_POWER=y # CONFIG_ACPI_PROC_EVENT is not set CONFIG_ACPI_AC=m # CONFIG_ACPI_BATTERY is not set CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=m # CONFIG_ACPI_FAN is not set CONFIG_ACPI_DOCK=y # CONFIG_ACPI_PROCESSOR is not set # CONFIG_ACPI_CUSTOM_DSDT is not set CONFIG_ACPI_BLACKLIST_YEAR=0 # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set # CONFIG_X86_PM_TIMER is not set # CONFIG_ACPI_CONTAINER is not set CONFIG_ACPI_SBS=m CONFIG_X86_APM_BOOT=y CONFIG_APM=m # CONFIG_APM_IGNORE_USER_SUSPEND is not set CONFIG_APM_DO_ENABLE=y # CONFIG_APM_CPU_IDLE is not set CONFIG_APM_DISPLAY_BLANK=y CONFIG_APM_ALLOW_INTS=y # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_DEBUG=y CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=y # CONFIG_CPU_FREQ_GOV_ONDEMAND is not set CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # # CPUFreq processor drivers # # CONFIG_X86_POWERNOW_K6 is not set # CONFIG_X86_POWERNOW_K7 is not set # CONFIG_X86_GX_SUSPMOD is not set CONFIG_X86_SPEEDSTEP_CENTRINO=y CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y # CONFIG_X86_SPEEDSTEP_ICH is not set CONFIG_X86_SPEEDSTEP_SMI=m # CONFIG_X86_P4_CLOCKMOD is not set # CONFIG_X86_CPUFREQ_NFORCE2 is not set CONFIG_X86_LONGRUN=m CONFIG_X86_E_POWERSAVER=y # # shared options # CONFIG_X86_SPEEDSTEP_LIB=m CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y # # Bus options (PCI etc.) # CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set # CONFIG_PCI_GOOLPC is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_OLPC=y CONFIG_PCI_DOMAINS=y CONFIG_DMAR=y CONFIG_DMAR_DEFAULT_ON=y CONFIG_DMAR_BROKEN_GFX_WA=y CONFIG_DMAR_FLOPPY_WA=y CONFIG_PCIEPORTBUS=y CONFIG_HOTPLUG_PCI_PCIE=m # CONFIG_PCIEAER is not set # CONFIG_PCIEASPM is not set CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y CONFIG_PCI_LEGACY=y CONFIG_PCI_DEBUG=y CONFIG_PCI_STUB=y CONFIG_HT_IRQ=y CONFIG_PCI_IOV=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y # CONFIG_EISA is not set CONFIG_MCA=y CONFIG_MCA_LEGACY=y CONFIG_MCA_PROC_FS=y CONFIG_SCx200=y CONFIG_SCx200HR_TIMER=m CONFIG_OLPC=y CONFIG_PCCARD=y CONFIG_PCMCIA_DEBUG=y CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y CONFIG_PCMCIA_IOCTL=y CONFIG_CARDBUS=y # # PC-card bridges # CONFIG_YENTA=y CONFIG_YENTA_O2=y CONFIG_YENTA_RICOH=y # CONFIG_YENTA_TI is not set CONFIG_YENTA_TOSHIBA=y # CONFIG_PD6729 is not set # CONFIG_I82092 is not set # CONFIG_I82365 is not set # CONFIG_TCIC is not set CONFIG_PCMCIA_PROBE=y CONFIG_PCCARD_NONSTATIC=y CONFIG_HOTPLUG_PCI=m CONFIG_HOTPLUG_PCI_FAKE=m # CONFIG_HOTPLUG_PCI_COMPAQ is not set # CONFIG_HOTPLUG_PCI_IBM is not set CONFIG_HOTPLUG_PCI_ACPI=m CONFIG_HOTPLUG_PCI_ACPI_IBM=m # CONFIG_HOTPLUG_PCI_CPCI is not set # CONFIG_HOTPLUG_PCI_SHPC is not set # # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_HAVE_AOUT=y # CONFIG_BINFMT_AOUT is not set CONFIG_BINFMT_MISC=y CONFIG_HAVE_ATOMIC_IOMAP=y CONFIG_NET=y # # Networking options # CONFIG_PACKET=y CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=y CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y CONFIG_XFRM_STATISTICS=y CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=m CONFIG_NET_KEY_MIGRATE=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_ASK_IP_FIB_HASH=y # CONFIG_IP_FIB_TRIE is not set CONFIG_IP_FIB_HASH=y # CONFIG_IP_MULTIPLE_TABLES is not set # CONFIG_IP_ROUTE_MULTIPATH is not set # CONFIG_IP_ROUTE_VERBOSE is not set CONFIG_IP_PNP=y # CONFIG_IP_PNP_DHCP is not set CONFIG_IP_PNP_BOOTP=y # CONFIG_IP_PNP_RARP is not set CONFIG_NET_IPIP=y CONFIG_NET_IPGRE=y # CONFIG_NET_IPGRE_BROADCAST is not set # CONFIG_IP_MROUTE is not set CONFIG_ARPD=y # CONFIG_SYN_COOKIES is not set CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=y # CONFIG_INET_XFRM_MODE_TRANSPORT is not set CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y # CONFIG_INET_DIAG is not set CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=y CONFIG_TCP_CONG_CUBIC=y # CONFIG_TCP_CONG_WESTWOOD is not set CONFIG_TCP_CONG_HTCP=y # CONFIG_TCP_CONG_HSTCP is not set CONFIG_TCP_CONG_HYBLA=m CONFIG_TCP_CONG_VEGAS=m CONFIG_TCP_CONG_SCALABLE=y CONFIG_TCP_CONG_LP=m # CONFIG_TCP_CONG_VENO is not set # CONFIG_TCP_CONG_YEAH is not set CONFIG_TCP_CONG_ILLINOIS=m CONFIG_DEFAULT_BIC=y # CONFIG_DEFAULT_CUBIC is not set # CONFIG_DEFAULT_HTCP is not set # CONFIG_DEFAULT_VEGAS is not set # CONFIG_DEFAULT_WESTWOOD is not set # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="bic" CONFIG_TCP_MD5SIG=y CONFIG_IPV6=m CONFIG_IPV6_PRIVACY=y CONFIG_IPV6_ROUTER_PREF=y CONFIG_IPV6_ROUTE_INFO=y # CONFIG_IPV6_OPTIMISTIC_DAD is not set CONFIG_INET6_AH=m # CONFIG_INET6_ESP is not set # CONFIG_INET6_IPCOMP is not set CONFIG_IPV6_MIP6=m # CONFIG_INET6_XFRM_TUNNEL is not set CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m # CONFIG_IPV6_MULTIPLE_TABLES is not set # CONFIG_IPV6_MROUTE is not set # CONFIG_NETLABEL is not set CONFIG_NETWORK_SECMARK=y CONFIG_NETFILTER=y CONFIG_NETFILTER_DEBUG=y # CONFIG_NETFILTER_ADVANCED is not set # # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=y CONFIG_NETFILTER_NETLINK_LOG=y CONFIG_NF_CONNTRACK=y # CONFIG_NF_CONNTRACK_SECMARK is not set # CONFIG_NF_CONNTRACK_FTP is not set # CONFIG_NF_CONNTRACK_IRC is not set CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_XTABLES=y CONFIG_NETFILTER_XT_TARGET_MARK=y CONFIG_NETFILTER_XT_TARGET_NFLOG=y CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m # CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set # CONFIG_NETFILTER_XT_MATCH_MARK is not set CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_STATE=y CONFIG_IP_VS=m CONFIG_IP_VS_IPV6=y CONFIG_IP_VS_DEBUG=y CONFIG_IP_VS_TAB_BITS=12 # # IPVS transport protocol load balancing support # CONFIG_IP_VS_PROTO_TCP=y # CONFIG_IP_VS_PROTO_UDP is not set # CONFIG_IP_VS_PROTO_ESP is not set # CONFIG_IP_VS_PROTO_AH is not set # # IPVS scheduler # CONFIG_IP_VS_RR=m CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m # CONFIG_IP_VS_WLC is not set CONFIG_IP_VS_LBLC=m # CONFIG_IP_VS_LBLCR is not set # CONFIG_IP_VS_DH is not set CONFIG_IP_VS_SH=m # CONFIG_IP_VS_SED is not set CONFIG_IP_VS_NQ=m # # IPVS application helper # # CONFIG_IP_VS_FTP is not set # # IP: Netfilter Configuration # # CONFIG_NF_DEFRAG_IPV4 is not set # CONFIG_NF_CONNTRACK_IPV4 is not set CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_FILTER=y CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_LOG=y CONFIG_IP_NF_TARGET_ULOG=m # CONFIG_IP_NF_MANGLE is not set # # IPv6: Netfilter Configuration # CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m # CONFIG_IP6_NF_TARGET_LOG is not set CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP_DCCP=y # # DCCP CCIDs Configuration (EXPERIMENTAL) # CONFIG_IP_DCCP_CCID2_DEBUG=y # CONFIG_IP_DCCP_CCID3 is not set # # DCCP Kernel Hacking # CONFIG_IP_DCCP_DEBUG=y CONFIG_NET_DCCPPROBE=y CONFIG_IP_SCTP=m CONFIG_SCTP_DBG_MSG=y CONFIG_SCTP_DBG_OBJCNT=y # CONFIG_SCTP_HMAC_NONE is not set CONFIG_SCTP_HMAC_SHA1=y # CONFIG_SCTP_HMAC_MD5 is not set CONFIG_TIPC=m CONFIG_TIPC_ADVANCED=y CONFIG_TIPC_ZONES=3 CONFIG_TIPC_CLUSTERS=1 CONFIG_TIPC_NODES=255 CONFIG_TIPC_SLAVE_NODES=0 CONFIG_TIPC_PORTS=8191 CONFIG_TIPC_LOG=0 # CONFIG_TIPC_DEBUG is not set CONFIG_ATM=m CONFIG_ATM_CLIP=m CONFIG_ATM_CLIP_NO_ICMP=y CONFIG_ATM_LANE=m CONFIG_ATM_MPOA=m # CONFIG_ATM_BR2684 is not set # CONFIG_BRIDGE is not set CONFIG_NET_DSA=y CONFIG_NET_DSA_TAG_DSA=y # CONFIG_NET_DSA_TAG_EDSA is not set # CONFIG_NET_DSA_TAG_TRAILER is not set CONFIG_NET_DSA_MV88E6XXX=y # CONFIG_NET_DSA_MV88E6060 is not set CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y CONFIG_NET_DSA_MV88E6131=y # CONFIG_NET_DSA_MV88E6123_61_65 is not set CONFIG_VLAN_8021Q=m # CONFIG_VLAN_8021Q_GVRP is not set # CONFIG_DECNET is not set CONFIG_LLC=y CONFIG_LLC2=y # CONFIG_IPX is not set CONFIG_ATALK=m # CONFIG_DEV_APPLETALK is not set # CONFIG_X25 is not set CONFIG_LAPB=y # CONFIG_ECONET is not set CONFIG_WAN_ROUTER=y CONFIG_PHONET=y CONFIG_IEEE802154=y CONFIG_NET_SCHED=y # # Queueing/Scheduling # CONFIG_NET_SCH_CBQ=y CONFIG_NET_SCH_HTB=y CONFIG_NET_SCH_HFSC=y # CONFIG_NET_SCH_ATM is not set CONFIG_NET_SCH_PRIO=y CONFIG_NET_SCH_MULTIQ=y CONFIG_NET_SCH_RED=m # CONFIG_NET_SCH_SFQ is not set CONFIG_NET_SCH_TEQL=y CONFIG_NET_SCH_TBF=y CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=y # CONFIG_NET_SCH_NETEM is not set CONFIG_NET_SCH_DRR=m # # Classification # CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m # CONFIG_NET_CLS_ROUTE4 is not set CONFIG_NET_CLS_FW=y CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 # CONFIG_NET_EMATCH_CMP is not set CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=y CONFIG_NET_EMATCH_META=m # CONFIG_NET_EMATCH_TEXT is not set # CONFIG_NET_CLS_ACT is not set CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y CONFIG_DCB=y # # Network testing # # CONFIG_NET_PKTGEN is not set CONFIG_NET_TCPPROBE=m # CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set # CONFIG_BT is not set CONFIG_AF_RXRPC=y CONFIG_AF_RXRPC_DEBUG=y # CONFIG_RXKAD is not set # CONFIG_WIRELESS is not set CONFIG_WIRELESS_EXT=y CONFIG_LIB80211=y CONFIG_LIB80211_CRYPT_WEP=m CONFIG_LIB80211_CRYPT_CCMP=m CONFIG_LIB80211_CRYPT_TKIP=m # CONFIG_WIMAX is not set # CONFIG_RFKILL is not set # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set CONFIG_DEBUG_DEVRES=y # CONFIG_SYS_HYPERVISOR is not set CONFIG_CONNECTOR=m # CONFIG_MTD is not set CONFIG_PARPORT=y CONFIG_PARPORT_PC=y CONFIG_PARPORT_PC_FIFO=y # CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=m # CONFIG_PARPORT_GSC is not set CONFIG_PARPORT_AX88796=m # CONFIG_PARPORT_1284 is not set CONFIG_PARPORT_NOT_PC=y CONFIG_PNP=y # CONFIG_PNP_DEBUG_MESSAGES is not set # # Protocols # CONFIG_ISAPNP=y CONFIG_PNPBIOS=y # CONFIG_PNPBIOS_PROC_FS is not set CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=y CONFIG_BLK_DEV_XD=m # CONFIG_PARIDE is not set CONFIG_BLK_CPQ_DA=y # CONFIG_BLK_CPQ_CISS_DA is not set CONFIG_BLK_DEV_DAC960=m CONFIG_BLK_DEV_UMEM=m # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_CRYPTOLOOP is not set CONFIG_BLK_DEV_NBD=y CONFIG_BLK_DEV_SX8=y CONFIG_BLK_DEV_UB=m CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_BLK_DEV_XIP is not set CONFIG_CDROM_PKTCDVD=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=m # CONFIG_VIRTIO_BLK is not set CONFIG_BLK_DEV_HD=y # CONFIG_MISC_DEVICES is not set CONFIG_TIFM_CORE=m CONFIG_CB710_CORE=y CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # CONFIG_RAID_ATTRS=y CONFIG_SCSI=y CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set CONFIG_SCSI_NETLINK=y CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=y # CONFIG_CHR_DEV_ST is not set CONFIG_CHR_DEV_OSST=y CONFIG_BLK_DEV_SR=y # CONFIG_BLK_DEV_SR_VENDOR is not set # CONFIG_CHR_DEV_SG is not set CONFIG_CHR_DEV_SCH=y CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y CONFIG_SCSI_SCAN_ASYNC=y CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=y CONFIG_SCSI_FC_ATTRS=y CONFIG_SCSI_ISCSI_ATTRS=y CONFIG_SCSI_SAS_ATTRS=y CONFIG_SCSI_SAS_LIBSAS=y CONFIG_SCSI_SAS_ATA=y CONFIG_SCSI_SAS_HOST_SMP=y # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set # CONFIG_SCSI_SRP_ATTRS is not set CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=y CONFIG_SCSI_CXGB3_ISCSI=m CONFIG_BLK_DEV_3W_XXXX_RAID=y # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_7000FASST is not set CONFIG_SCSI_ACARD=y # CONFIG_SCSI_AHA152X is not set # CONFIG_SCSI_AHA1542 is not set CONFIG_SCSI_AACRAID=m CONFIG_SCSI_AIC7XXX=y CONFIG_AIC7XXX_CMDS_PER_DEVICE=32 CONFIG_AIC7XXX_RESET_DELAY_MS=5000 # CONFIG_AIC7XXX_DEBUG_ENABLE is not set CONFIG_AIC7XXX_DEBUG_MASK=0 CONFIG_AIC7XXX_REG_PRETTY_PRINT=y CONFIG_SCSI_AIC7XXX_OLD=y CONFIG_SCSI_AIC79XX=y CONFIG_AIC79XX_CMDS_PER_DEVICE=32 CONFIG_AIC79XX_RESET_DELAY_MS=5000 # CONFIG_AIC79XX_DEBUG_ENABLE is not set CONFIG_AIC79XX_DEBUG_MASK=0 CONFIG_AIC79XX_REG_PRETTY_PRINT=y CONFIG_SCSI_AIC94XX=y CONFIG_AIC94XX_DEBUG=y CONFIG_SCSI_MVSAS=y # CONFIG_SCSI_MVSAS_DEBUG is not set # CONFIG_SCSI_DPT_I2O is not set CONFIG_SCSI_ADVANSYS=m CONFIG_SCSI_IN2000=y CONFIG_SCSI_ARCMSR=y # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set CONFIG_MEGARAID_SAS=y # CONFIG_SCSI_MPT2SAS is not set CONFIG_SCSI_HPTIOP=y CONFIG_SCSI_BUSLOGIC=m CONFIG_SCSI_FLASHPOINT=y CONFIG_LIBFC=y CONFIG_LIBFCOE=y # CONFIG_FCOE is not set CONFIG_FCOE_FNIC=y CONFIG_SCSI_DMX3191D=y # CONFIG_SCSI_DTC3280 is not set CONFIG_SCSI_EATA=m # CONFIG_SCSI_EATA_TAGGED_QUEUE is not set # CONFIG_SCSI_EATA_LINKED_COMMANDS is not set CONFIG_SCSI_EATA_MAX_TAGS=16 CONFIG_SCSI_FUTURE_DOMAIN=y # CONFIG_SCSI_FD_MCS is not set # CONFIG_SCSI_GDTH is not set CONFIG_SCSI_GENERIC_NCR5380=m CONFIG_SCSI_GENERIC_NCR5380_MMIO=m # CONFIG_SCSI_GENERIC_NCR53C400 is not set # CONFIG_SCSI_IBMMCA is not set CONFIG_SCSI_IPS=m # CONFIG_SCSI_INITIO is not set CONFIG_SCSI_INIA100=m CONFIG_SCSI_PPA=m CONFIG_SCSI_IMM=m CONFIG_SCSI_IZIP_EPP16=y CONFIG_SCSI_IZIP_SLOW_CTR=y CONFIG_SCSI_NCR53C406A=m # CONFIG_SCSI_NCR_D700 is not set CONFIG_SCSI_STEX=y CONFIG_SCSI_SYM53C8XX_2=m CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 CONFIG_SCSI_SYM53C8XX_MMIO=y CONFIG_SCSI_IPR=m CONFIG_SCSI_IPR_TRACE=y # CONFIG_SCSI_IPR_DUMP is not set CONFIG_SCSI_NCR_Q720=m CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 CONFIG_SCSI_NCR53C8XX_SYNC=20 CONFIG_SCSI_PAS16=m # CONFIG_SCSI_QLOGIC_FAS is not set # CONFIG_SCSI_QLOGIC_1280 is not set CONFIG_SCSI_QLA_FC=y CONFIG_SCSI_QLA_ISCSI=y CONFIG_SCSI_LPFC=y # CONFIG_SCSI_LPFC_DEBUG_FS is not set CONFIG_SCSI_SIM710=m # CONFIG_SCSI_SYM53C416 is not set CONFIG_SCSI_DC395x=y # CONFIG_SCSI_DC390T is not set CONFIG_SCSI_T128=m CONFIG_SCSI_U14_34F=y CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y CONFIG_SCSI_U14_34F_MAX_TAGS=8 CONFIG_SCSI_ULTRASTOR=y CONFIG_SCSI_NSP32=m # CONFIG_SCSI_SRP is not set CONFIG_SCSI_LOWLEVEL_PCMCIA=y # CONFIG_PCMCIA_AHA152X is not set # CONFIG_PCMCIA_FDOMAIN is not set CONFIG_PCMCIA_NINJA_SCSI=m CONFIG_PCMCIA_QLOGIC=m CONFIG_PCMCIA_SYM53C500=m # CONFIG_SCSI_DH is not set CONFIG_SCSI_OSD_INITIATOR=m # CONFIG_SCSI_OSD_ULD is not set CONFIG_SCSI_OSD_DPRINT_SENSE=1 CONFIG_SCSI_OSD_DEBUG=y CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_ACPI=y CONFIG_SATA_PMP=y CONFIG_SATA_AHCI=y # CONFIG_SATA_SIL24 is not set CONFIG_ATA_SFF=y # CONFIG_SATA_SVW is not set CONFIG_ATA_PIIX=y CONFIG_SATA_MV=m CONFIG_SATA_NV=y CONFIG_PDC_ADMA=y CONFIG_SATA_QSTOR=m CONFIG_SATA_PROMISE=m # CONFIG_SATA_SX4 is not set CONFIG_SATA_SIL=y # CONFIG_SATA_SIS is not set CONFIG_SATA_ULI=y CONFIG_SATA_VIA=y CONFIG_SATA_VITESSE=y CONFIG_SATA_INIC162X=y CONFIG_PATA_ACPI=y CONFIG_PATA_ALI=m CONFIG_PATA_AMD=y # CONFIG_PATA_ARTOP is not set CONFIG_PATA_ATIIXP=y CONFIG_PATA_CMD640_PCI=m # CONFIG_PATA_CMD64X is not set CONFIG_PATA_CS5520=m # CONFIG_PATA_CS5530 is not set CONFIG_PATA_CS5535=m CONFIG_PATA_CS5536=m # CONFIG_PATA_CYPRESS is not set CONFIG_PATA_EFAR=y CONFIG_ATA_GENERIC=m # CONFIG_PATA_HPT366 is not set # CONFIG_PATA_HPT37X is not set CONFIG_PATA_HPT3X2N=y # CONFIG_PATA_HPT3X3 is not set # CONFIG_PATA_ISAPNP is not set CONFIG_PATA_IT821X=m CONFIG_PATA_IT8213=y # CONFIG_PATA_JMICRON is not set CONFIG_PATA_LEGACY=m # CONFIG_PATA_TRIFLEX is not set CONFIG_PATA_MARVELL=y CONFIG_PATA_MPIIX=y CONFIG_PATA_OLDPIIX=y CONFIG_PATA_NETCELL=m CONFIG_PATA_NINJA32=y CONFIG_PATA_NS87410=y # CONFIG_PATA_NS87415 is not set # CONFIG_PATA_OPTI is not set # CONFIG_PATA_OPTIDMA is not set CONFIG_PATA_PCMCIA=m # CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_QDI is not set CONFIG_PATA_RADISYS=y # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set CONFIG_PATA_SERVERWORKS=m CONFIG_PATA_PDC2027X=m CONFIG_PATA_SIL680=y # CONFIG_PATA_SIS is not set CONFIG_PATA_VIA=m # CONFIG_PATA_WINBOND is not set # CONFIG_PATA_WINBOND_VLB is not set CONFIG_PATA_PLATFORM=y CONFIG_PATA_SCH=m CONFIG_MD=y CONFIG_BLK_DEV_MD=m # CONFIG_MD_LINEAR is not set # CONFIG_MD_RAID0 is not set CONFIG_MD_RAID1=m # CONFIG_MD_RAID10 is not set CONFIG_MD_RAID456=m CONFIG_MD_RAID6_PQ=m CONFIG_MD_MULTIPATH=m # CONFIG_MD_FAULTY is not set # CONFIG_BLK_DEV_DM is not set # CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support # # # You can enable one or both FireWire driver stacks. # # # See the help texts for more information. # CONFIG_FIREWIRE=y # CONFIG_FIREWIRE_OHCI is not set # CONFIG_FIREWIRE_SBP2 is not set # CONFIG_FIREWIRE_NET is not set CONFIG_IEEE1394=m CONFIG_IEEE1394_OHCI1394=m CONFIG_IEEE1394_PCILYNX=m CONFIG_IEEE1394_SBP2=m # CONFIG_IEEE1394_SBP2_PHYS_DMA is not set # CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set # CONFIG_IEEE1394_ETH1394 is not set CONFIG_IEEE1394_RAWIO=m # CONFIG_IEEE1394_VIDEO1394 is not set CONFIG_IEEE1394_DV1394=m CONFIG_IEEE1394_VERBOSEDEBUG=y CONFIG_I2O=m CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y CONFIG_I2O_EXT_ADAPTEC=y CONFIG_I2O_CONFIG=m CONFIG_I2O_CONFIG_OLD_IOCTL=y CONFIG_I2O_BUS=m CONFIG_I2O_BLOCK=m CONFIG_I2O_SCSI=m # CONFIG_I2O_PROC is not set CONFIG_MACINTOSH_DRIVERS=y # CONFIG_MAC_EMUMOUSEBTN is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set CONFIG_BONDING=m CONFIG_MACVLAN=y CONFIG_EQUALIZER=y # CONFIG_TUN is not set CONFIG_VETH=y CONFIG_NET_SB1000=m CONFIG_ARCNET=y # CONFIG_ARCNET_1201 is not set CONFIG_ARCNET_1051=m # CONFIG_ARCNET_RAW is not set CONFIG_ARCNET_CAP=y CONFIG_ARCNET_COM90xx=m CONFIG_ARCNET_COM90xxIO=m # CONFIG_ARCNET_RIM_I is not set CONFIG_ARCNET_COM20020=m # CONFIG_ARCNET_COM20020_ISA is not set # CONFIG_ARCNET_COM20020_PCI is not set CONFIG_PHYLIB=y # # MII PHY device drivers # CONFIG_MARVELL_PHY=y # CONFIG_DAVICOM_PHY is not set # CONFIG_QSEMI_PHY is not set CONFIG_LXT_PHY=m CONFIG_CICADA_PHY=y # CONFIG_VITESSE_PHY is not set CONFIG_SMSC_PHY=y # CONFIG_BROADCOM_PHY is not set CONFIG_ICPLUS_PHY=y # CONFIG_REALTEK_PHY is not set # CONFIG_NATIONAL_PHY is not set CONFIG_STE10XP=y CONFIG_LSI_ET1011C_PHY=m CONFIG_FIXED_PHY=y CONFIG_MDIO_BITBANG=m CONFIG_NET_ETHERNET=y CONFIG_MII=y CONFIG_HAPPYMEAL=y CONFIG_SUNGEM=m CONFIG_CASSINI=y # CONFIG_NET_VENDOR_3COM is not set CONFIG_LANCE=y CONFIG_NET_VENDOR_SMC=y CONFIG_ULTRAMCA=m # CONFIG_ULTRA is not set # CONFIG_SMC9194 is not set CONFIG_ETHOC=m CONFIG_NET_VENDOR_RACAL=y # CONFIG_NI5010 is not set CONFIG_NI52=y # CONFIG_NI65 is not set # CONFIG_DNET is not set # CONFIG_NET_TULIP is not set CONFIG_AT1700=m # CONFIG_DEPCA is not set CONFIG_HP100=m # CONFIG_NET_ISA is not set CONFIG_NE2_MCA=y # CONFIG_IBMLANA is not set # CONFIG_IBM_NEW_EMAC_ZMII is not set # CONFIG_IBM_NEW_EMAC_RGMII is not set # CONFIG_IBM_NEW_EMAC_TAH is not set # CONFIG_IBM_NEW_EMAC_EMAC4 is not set # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set CONFIG_NET_PCI=y CONFIG_PCNET32=m CONFIG_AMD8111_ETH=y CONFIG_ADAPTEC_STARFIRE=y CONFIG_AC3200=m CONFIG_APRICOT=m # CONFIG_B44 is not set CONFIG_FORCEDETH=y # CONFIG_FORCEDETH_NAPI is not set CONFIG_CS89x0=y CONFIG_E100=y CONFIG_FEALNX=y # CONFIG_NATSEMI is not set CONFIG_NE2K_PCI=y CONFIG_8139CP=m CONFIG_8139TOO=y # CONFIG_8139TOO_PIO is not set # CONFIG_8139TOO_TUNE_TWISTER is not set CONFIG_8139TOO_8129=y # CONFIG_8139_OLD_RX_RESET is not set # CONFIG_R6040 is not set CONFIG_SIS900=y CONFIG_EPIC100=m CONFIG_SMSC9420=y CONFIG_SUNDANCE=m # CONFIG_SUNDANCE_MMIO is not set CONFIG_TLAN=m # CONFIG_KS8842 is not set CONFIG_VIA_RHINE=m # CONFIG_VIA_RHINE_MMIO is not set CONFIG_SC92031=m CONFIG_NET_POCKET=y CONFIG_ATP=y CONFIG_DE600=y CONFIG_DE620=m # CONFIG_ATL2 is not set CONFIG_NETDEV_1000=y CONFIG_ACENIC=y CONFIG_ACENIC_OMIT_TIGON_I=y CONFIG_DL2K=y CONFIG_E1000=y CONFIG_E1000E=y CONFIG_IP1000=y CONFIG_IGB=m CONFIG_IGBVF=y CONFIG_NS83820=y CONFIG_HAMACHI=m CONFIG_YELLOWFIN=y CONFIG_R8169=y # CONFIG_R8169_VLAN is not set CONFIG_SIS190=m # CONFIG_SKGE is not set CONFIG_SKY2=m CONFIG_SKY2_DEBUG=y # CONFIG_VIA_VELOCITY is not set CONFIG_TIGON3=y CONFIG_BNX2=y CONFIG_QLA3XXX=y # CONFIG_ATL1 is not set CONFIG_ATL1E=y # CONFIG_ATL1C is not set # CONFIG_JME is not set CONFIG_NETDEV_10000=y CONFIG_MDIO=m # CONFIG_CHELSIO_T1 is not set CONFIG_CHELSIO_T3_DEPENDS=y CONFIG_CHELSIO_T3=m # CONFIG_ENIC is not set CONFIG_IXGBE=m CONFIG_IXGBE_DCB=y CONFIG_IXGB=m # CONFIG_S2IO is not set CONFIG_MYRI10GE=y CONFIG_NIU=m # CONFIG_MLX4_EN is not set # CONFIG_MLX4_CORE is not set CONFIG_TEHUTI=m # CONFIG_BNX2X is not set # CONFIG_QLGE is not set CONFIG_SFC=m CONFIG_BE2NET=m # CONFIG_TR is not set # # Wireless LAN # CONFIG_WLAN_PRE80211=y CONFIG_STRIP=m CONFIG_ARLAN=y CONFIG_WAVELAN=y CONFIG_PCMCIA_WAVELAN=m CONFIG_PCMCIA_NETWAVE=m CONFIG_WLAN_80211=y # CONFIG_PCMCIA_RAYCS is not set CONFIG_LIBERTAS=y CONFIG_LIBERTAS_USB=m CONFIG_LIBERTAS_CS=m # CONFIG_LIBERTAS_SDIO is not set CONFIG_LIBERTAS_DEBUG=y CONFIG_AIRO=m # CONFIG_ATMEL is not set CONFIG_AIRO_CS=m CONFIG_PCMCIA_WL3501=m CONFIG_PRISM54=m # CONFIG_USB_ZD1201 is not set CONFIG_IPW2100=m CONFIG_IPW2100_MONITOR=y # CONFIG_IPW2100_DEBUG is not set # CONFIG_IPW2200 is not set CONFIG_LIBIPW=m # CONFIG_LIBIPW_DEBUG is not set CONFIG_HOSTAP=m # CONFIG_HOSTAP_FIRMWARE is not set # CONFIG_HOSTAP_PLX is not set CONFIG_HOSTAP_PCI=m # CONFIG_HOSTAP_CS is not set CONFIG_HERMES=m CONFIG_HERMES_CACHE_FW_ON_INIT=y CONFIG_PLX_HERMES=m # CONFIG_TMD_HERMES is not set # CONFIG_NORTEL_HERMES is not set CONFIG_PCI_HERMES=m # CONFIG_PCMCIA_HERMES is not set # CONFIG_PCMCIA_SPECTRUM is not set # # Enable WiMAX (Networking options) to see the WiMAX drivers # # # USB Network Adapters # CONFIG_USB_CATC=m CONFIG_USB_KAWETH=y # CONFIG_USB_PEGASUS is not set CONFIG_USB_RTL8150=m CONFIG_USB_USBNET=m # CONFIG_USB_NET_AX8817X is not set CONFIG_USB_NET_CDCETHER=m # CONFIG_USB_NET_CDC_EEM is not set CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_SMSC95XX=m # CONFIG_USB_NET_GL620A is not set # CONFIG_USB_NET_NET1080 is not set # CONFIG_USB_NET_PLUSB is not set # CONFIG_USB_NET_MCS7830 is not set # CONFIG_USB_NET_RNDIS_HOST is not set CONFIG_USB_NET_CDC_SUBSET=m CONFIG_USB_ALI_M5632=y CONFIG_USB_AN2720=y CONFIG_USB_BELKIN=y CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m # CONFIG_USB_NET_INT51X1 is not set CONFIG_USB_CDC_PHONET=y CONFIG_NET_PCMCIA=y CONFIG_PCMCIA_3C589=m # CONFIG_PCMCIA_3C574 is not set # CONFIG_PCMCIA_FMVJ18X is not set CONFIG_PCMCIA_PCNET=m CONFIG_PCMCIA_NMCLAN=m CONFIG_PCMCIA_SMC91C92=m CONFIG_PCMCIA_XIRC2PS=m CONFIG_PCMCIA_AXNET=m CONFIG_ARCNET_COM20020_CS=m CONFIG_WAN=y CONFIG_HOSTESS_SV11=m # CONFIG_COSA is not set # CONFIG_LANMEDIA is not set # CONFIG_SEALEVEL_4021 is not set CONFIG_HDLC=m CONFIG_HDLC_RAW=m CONFIG_HDLC_RAW_ETH=m CONFIG_HDLC_CISCO=m # CONFIG_HDLC_FR is not set # CONFIG_HDLC_PPP is not set CONFIG_HDLC_X25=m CONFIG_PCI200SYN=m CONFIG_WANXL=m # CONFIG_PC300TOO is not set # CONFIG_N2 is not set CONFIG_C101=m # CONFIG_FARSYNC is not set CONFIG_DSCC4=m CONFIG_DSCC4_PCISYNC=y CONFIG_DSCC4_PCI_RST=y CONFIG_DLCI=m CONFIG_DLCI_MAX=8 CONFIG_SDLA=m CONFIG_WAN_ROUTER_DRIVERS=y # CONFIG_CYCLADES_SYNC is not set CONFIG_SBNI=y # CONFIG_SBNI_MULTILINE is not set # CONFIG_ATM_DRIVERS is not set # CONFIG_IEEE802154_DRIVERS is not set # CONFIG_FDDI is not set CONFIG_HIPPI=y CONFIG_ROADRUNNER=m CONFIG_ROADRUNNER_LARGE_RINGS=y CONFIG_PLIP=y CONFIG_PPP=y # CONFIG_PPP_MULTILINK is not set CONFIG_PPP_FILTER=y CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=y CONFIG_PPP_DEFLATE=y CONFIG_PPP_BSDCOMP=m CONFIG_PPP_MPPE=m # CONFIG_PPPOE is not set CONFIG_PPPOATM=m CONFIG_PPPOL2TP=m CONFIG_SLIP=y CONFIG_SLIP_COMPRESSED=y CONFIG_SLHC=y # CONFIG_SLIP_SMART is not set # CONFIG_SLIP_MODE_SLIP6 is not set CONFIG_NET_FC=y CONFIG_NETCONSOLE=y CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y CONFIG_NETPOLL_TRAP=y CONFIG_NET_POLL_CONTROLLER=y # CONFIG_VIRTIO_NET is not set # CONFIG_ISDN is not set CONFIG_PHONE=y # # Input device support # CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=y CONFIG_INPUT_POLLDEV=y # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_JOYDEV=y CONFIG_INPUT_EVDEV=m # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y CONFIG_KEYBOARD_LKKBD=y CONFIG_KEYBOARD_LM8323=m CONFIG_KEYBOARD_NEWTON=m CONFIG_KEYBOARD_STOWAWAY=y CONFIG_KEYBOARD_SUNKBD=m CONFIG_KEYBOARD_XTKBD=y # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TABLET=y CONFIG_TABLET_USB_ACECAD=m # CONFIG_TABLET_USB_AIPTEK is not set CONFIG_TABLET_USB_GTCO=m CONFIG_TABLET_USB_KBTAB=y # CONFIG_TABLET_USB_WACOM is not set CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_AD7879_I2C=m CONFIG_TOUCHSCREEN_AD7879=m CONFIG_TOUCHSCREEN_DA9034=y CONFIG_TOUCHSCREEN_EETI=y CONFIG_TOUCHSCREEN_FUJITSU=y CONFIG_TOUCHSCREEN_GUNZE=y CONFIG_TOUCHSCREEN_ELO=y CONFIG_TOUCHSCREEN_WACOM_W8001=y CONFIG_TOUCHSCREEN_MTOUCH=m CONFIG_TOUCHSCREEN_INEXIO=m CONFIG_TOUCHSCREEN_MK712=m CONFIG_TOUCHSCREEN_HTCPEN=y CONFIG_TOUCHSCREEN_PENMOUNT=m # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set CONFIG_TOUCHSCREEN_USB_COMPOSITE=m CONFIG_TOUCHSCREEN_USB_EGALAX=y CONFIG_TOUCHSCREEN_USB_PANJIT=y # CONFIG_TOUCHSCREEN_USB_3M is not set CONFIG_TOUCHSCREEN_USB_ITM=y # CONFIG_TOUCHSCREEN_USB_ETURBO is not set CONFIG_TOUCHSCREEN_USB_GUNZE=y # CONFIG_TOUCHSCREEN_USB_DMC_TSC10 is not set # CONFIG_TOUCHSCREEN_USB_IRTOUCH is not set CONFIG_TOUCHSCREEN_USB_IDEALTEK=y CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y CONFIG_TOUCHSCREEN_USB_GOTOP=y CONFIG_TOUCHSCREEN_TOUCHIT213=y # CONFIG_TOUCHSCREEN_TSC2007 is not set # CONFIG_TOUCHSCREEN_W90X900 is not set # CONFIG_INPUT_MISC is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=m # CONFIG_SERIO_CT82C710 is not set CONFIG_SERIO_PARKBD=m CONFIG_SERIO_PCIPS2=m CONFIG_SERIO_LIBPS2=y CONFIG_SERIO_RAW=m # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y # CONFIG_DEVKMEM is not set # CONFIG_SERIAL_NONSTANDARD is not set CONFIG_NOZOMI=y # # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_FIX_EARLYCON_MEM=y # CONFIG_SERIAL_8250_PCI is not set CONFIG_SERIAL_8250_PNP=m CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_FOURPORT=y CONFIG_SERIAL_8250_ACCENT=y CONFIG_SERIAL_8250_BOCA=m CONFIG_SERIAL_8250_EXAR_ST16C554=m CONFIG_SERIAL_8250_HUB6=m CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y CONFIG_SERIAL_8250_MCA=y # # Non-8250 serial port support # CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_SERIAL_JSM=m CONFIG_UNIX98_PTYS=y # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set # CONFIG_LEGACY_PTYS is not set CONFIG_PRINTER=y CONFIG_LP_CONSOLE=y CONFIG_PPDEV=m CONFIG_HVC_DRIVER=y CONFIG_VIRTIO_CONSOLE=y CONFIG_IPMI_HANDLER=y CONFIG_IPMI_PANIC_EVENT=y CONFIG_IPMI_PANIC_STRING=y CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_WATCHDOG=y # CONFIG_IPMI_POWEROFF is not set CONFIG_HW_RANDOM=m CONFIG_HW_RANDOM_TIMERIOMEM=m # CONFIG_HW_RANDOM_INTEL is not set # CONFIG_HW_RANDOM_AMD is not set CONFIG_HW_RANDOM_GEODE=m CONFIG_HW_RANDOM_VIA=m CONFIG_HW_RANDOM_VIRTIO=m CONFIG_NVRAM=m # CONFIG_RTC is not set CONFIG_GEN_RTC=m CONFIG_GEN_RTC_X=y CONFIG_DTLK=m # CONFIG_R3964 is not set CONFIG_APPLICOM=y CONFIG_SONYPI=y # # PCMCIA character devices # CONFIG_SYNCLINK_CS=m CONFIG_CARDMAN_4000=m CONFIG_CARDMAN_4040=m # CONFIG_IPWIRELESS is not set CONFIG_MWAVE=y CONFIG_SCx200_GPIO=m # CONFIG_PC8736x_GPIO is not set CONFIG_NSC_GPIO=m CONFIG_CS5535_GPIO=m CONFIG_RAW_DRIVER=y CONFIG_MAX_RAW_DEVS=256 CONFIG_HPET=y CONFIG_HPET_MMAP=y # CONFIG_HANGCHECK_TIMER is not set CONFIG_TCG_TPM=y CONFIG_TCG_TIS=y CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=y # CONFIG_TCG_INFINEON is not set CONFIG_TELCLOCK=m CONFIG_DEVPORT=y CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y # CONFIG_I2C_CHARDEV is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=y CONFIG_I2C_ALGOPCF=m CONFIG_I2C_ALGOPCA=m # # I2C Hardware Bus support # # # PC SMBus host controller drivers # # CONFIG_I2C_ALI1535 is not set CONFIG_I2C_ALI1563=y CONFIG_I2C_ALI15X3=y CONFIG_I2C_AMD756=m # CONFIG_I2C_AMD8111 is not set CONFIG_I2C_I801=y CONFIG_I2C_ISCH=m CONFIG_I2C_PIIX4=m CONFIG_I2C_NFORCE2=m # CONFIG_I2C_SIS5595 is not set CONFIG_I2C_SIS630=m # CONFIG_I2C_SIS96X is not set CONFIG_I2C_VIA=m CONFIG_I2C_VIAPRO=m # # I2C system bus drivers (mostly embedded / system-on-chip) # CONFIG_I2C_OCORES=m CONFIG_I2C_SIMTEC=y # # External I2C/SMBus adapter drivers # CONFIG_I2C_PARPORT=y CONFIG_I2C_PARPORT_LIGHT=m CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_TINY_USB=y # # Graphics adapter I2C/DDC channel drivers # CONFIG_I2C_VOODOO3=m # # Other I2C/SMBus bus drivers # CONFIG_I2C_ELEKTOR=m # CONFIG_I2C_PCA_ISA is not set CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_STUB is not set CONFIG_SCx200_I2C=m CONFIG_SCx200_I2C_SCL=12 CONFIG_SCx200_I2C_SDA=13 CONFIG_SCx200_ACB=m # # Miscellaneous I2C Chip support # CONFIG_DS1682=y CONFIG_SENSORS_PCF8574=y CONFIG_PCF8575=m CONFIG_SENSORS_PCA9539=m # CONFIG_SENSORS_TSL2550 is not set CONFIG_I2C_DEBUG_CORE=y CONFIG_I2C_DEBUG_ALGO=y CONFIG_I2C_DEBUG_BUS=y CONFIG_I2C_DEBUG_CHIP=y # CONFIG_SPI is not set # # PPS support # CONFIG_PPS=m CONFIG_PPS_DEBUG=y CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y # CONFIG_GPIOLIB is not set CONFIG_W1=y CONFIG_W1_CON=y # # 1-wire Bus Masters # CONFIG_W1_MASTER_MATROX=y CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=y # # 1-wire Slaves # CONFIG_W1_SLAVE_THERM=m # CONFIG_W1_SLAVE_SMEM is not set # CONFIG_W1_SLAVE_DS2431 is not set CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=y CONFIG_W1_SLAVE_BQ27000=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set CONFIG_BATTERY_DS2760=y CONFIG_BATTERY_DS2782=y CONFIG_BATTERY_OLPC=y # CONFIG_BATTERY_BQ27x00 is not set CONFIG_BATTERY_DA9030=m # CONFIG_BATTERY_MAX17040 is not set # CONFIG_CHARGER_PCF50633 is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_SENSORS_ABITUGURU is not set CONFIG_SENSORS_ABITUGURU3=m CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m # CONFIG_SENSORS_ADM1026 is not set # CONFIG_SENSORS_ADM1029 is not set # CONFIG_SENSORS_ADM1031 is not set CONFIG_SENSORS_ADM9240=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m # CONFIG_SENSORS_ADT7473 is not set # CONFIG_SENSORS_ADT7475 is not set CONFIG_SENSORS_K8TEMP=m CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_ATK0110=m CONFIG_SENSORS_ATXP1=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m CONFIG_SENSORS_F71882FG=m CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_FSCHER=m CONFIG_SENSORS_FSCPOS=m CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m # CONFIG_SENSORS_GL518SM is not set # CONFIG_SENSORS_GL520SM is not set CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IBMAEM=m CONFIG_SENSORS_IBMPEX=m # CONFIG_SENSORS_IT87 is not set CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m # CONFIG_SENSORS_LM80 is not set CONFIG_SENSORS_LM83=m CONFIG_SENSORS_LM85=m CONFIG_SENSORS_LM87=m # CONFIG_SENSORS_LM90 is not set # CONFIG_SENSORS_LM92 is not set # CONFIG_SENSORS_LM93 is not set CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m CONFIG_SENSORS_LM95241=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX6650=m # CONFIG_SENSORS_PC87360 is not set CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m # CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_DME1737 is not set # CONFIG_SENSORS_SMSC47M1 is not set CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m # CONFIG_SENSORS_W83793 is not set # CONFIG_SENSORS_W83L785TS is not set # CONFIG_SENSORS_W83L786NG is not set CONFIG_SENSORS_W83627HF=m # CONFIG_SENSORS_W83627EHF is not set # CONFIG_SENSORS_HDAPS is not set CONFIG_SENSORS_LIS3LV02D=m # CONFIG_SENSORS_APPLESMC is not set # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_THERMAL=m CONFIG_THERMAL_HWMON=y # CONFIG_WATCHDOG is not set CONFIG_SSB_POSSIBLE=y # # Sonics Silicon Backplane # # CONFIG_SSB is not set # # Multifunction device drivers # # CONFIG_MFD_CORE is not set CONFIG_MFD_SM501=m # CONFIG_HTC_PASIC3 is not set # CONFIG_TWL4030_CORE is not set # CONFIG_MFD_TMIO is not set CONFIG_PMIC_DA903X=y # CONFIG_MFD_WM8400 is not set CONFIG_MFD_PCF50633=m CONFIG_PCF50633_ADC=m CONFIG_PCF50633_GPIO=m CONFIG_AB3100_CORE=m CONFIG_REGULATOR=y CONFIG_REGULATOR_DEBUG=y # CONFIG_REGULATOR_FIXED_VOLTAGE is not set CONFIG_REGULATOR_VIRTUAL_CONSUMER=y CONFIG_REGULATOR_USERSPACE_CONSUMER=m CONFIG_REGULATOR_BQ24022=y CONFIG_REGULATOR_MAX1586=y CONFIG_REGULATOR_DA903X=y CONFIG_REGULATOR_PCF50633=m CONFIG_REGULATOR_LP3971=m CONFIG_MEDIA_SUPPORT=m # # Multimedia core support # CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m # CONFIG_VIDEO_ALLOW_V4L1 is not set # CONFIG_VIDEO_V4L1_COMPAT is not set # CONFIG_DVB_CORE is not set CONFIG_VIDEO_MEDIA=m # # Multimedia drivers # CONFIG_VIDEO_SAA7146=m CONFIG_VIDEO_SAA7146_VV=m CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_CUSTOMISE=y # CONFIG_MEDIA_TUNER_SIMPLE is not set CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m # CONFIG_MEDIA_TUNER_TEA5767 is not set # CONFIG_MEDIA_TUNER_MT20XX is not set # CONFIG_MEDIA_TUNER_MT2060 is not set CONFIG_MEDIA_TUNER_MT2266=m CONFIG_MEDIA_TUNER_MT2131=m # CONFIG_MEDIA_TUNER_QT1010 is not set CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m CONFIG_MEDIA_TUNER_MXL5005S=m # CONFIG_MEDIA_TUNER_MXL5007T is not set CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m CONFIG_VIDEO_BTCX=m CONFIG_VIDEO_IR=m CONFIG_VIDEO_TVEEPROM=m CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y CONFIG_VIDEO_IR_I2C=m CONFIG_VIDEO_TVAUDIO=m CONFIG_VIDEO_TDA7432=m CONFIG_VIDEO_MSP3400=m CONFIG_VIDEO_SAA6588=m CONFIG_VIDEO_MT9V011=m CONFIG_VIDEO_SAA711X=m CONFIG_VIDEO_TVP5150=m CONFIG_VIDEO_CX25840=m CONFIG_VIDEO_VIVI=m CONFIG_VIDEO_BT848=m CONFIG_VIDEO_SAA5246A=m # CONFIG_VIDEO_SAA5249 is not set # CONFIG_VIDEO_ZORAN is not set CONFIG_VIDEO_SAA7134=m CONFIG_VIDEO_HEXIUM_ORION=m CONFIG_VIDEO_HEXIUM_GEMINI=m # CONFIG_VIDEO_IVTV is not set # CONFIG_VIDEO_CAFE_CCIC is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y # CONFIG_USB_VIDEO_CLASS is not set # CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV is not set CONFIG_USB_GSPCA=m CONFIG_USB_M5602=m # CONFIG_USB_STV06XX is not set CONFIG_USB_GSPCA_CONEX=m CONFIG_USB_GSPCA_ETOMS=m CONFIG_USB_GSPCA_FINEPIX=m CONFIG_USB_GSPCA_MARS=m CONFIG_USB_GSPCA_MR97310A=m CONFIG_USB_GSPCA_OV519=m CONFIG_USB_GSPCA_OV534=m CONFIG_USB_GSPCA_PAC207=m CONFIG_USB_GSPCA_PAC7311=m CONFIG_USB_GSPCA_SN9C20X=m CONFIG_USB_GSPCA_SN9C20X_EVDEV=y # CONFIG_USB_GSPCA_SONIXB is not set CONFIG_USB_GSPCA_SONIXJ=m CONFIG_USB_GSPCA_SPCA500=m CONFIG_USB_GSPCA_SPCA501=m CONFIG_USB_GSPCA_SPCA505=m CONFIG_USB_GSPCA_SPCA506=m # CONFIG_USB_GSPCA_SPCA508 is not set CONFIG_USB_GSPCA_SPCA561=m CONFIG_USB_GSPCA_SQ905=m CONFIG_USB_GSPCA_SQ905C=m CONFIG_USB_GSPCA_STK014=m CONFIG_USB_GSPCA_SUNPLUS=m CONFIG_USB_GSPCA_T613=m # CONFIG_USB_GSPCA_TV8532 is not set CONFIG_USB_GSPCA_VC032X=m CONFIG_USB_GSPCA_ZC3XX=m # CONFIG_VIDEO_PVRUSB2 is not set CONFIG_VIDEO_HDPVR=m CONFIG_VIDEO_EM28XX=m CONFIG_VIDEO_CX231XX=m # CONFIG_VIDEO_USBVISION is not set CONFIG_USB_ET61X251=m CONFIG_USB_SN9C102=m CONFIG_USB_ZC0301=m CONFIG_USB_PWC_INPUT_EVDEV=y CONFIG_USB_ZR364XX=m # CONFIG_USB_STKWEBCAM is not set CONFIG_USB_S2255=m CONFIG_RADIO_ADAPTERS=y CONFIG_RADIO_CADET=m # CONFIG_RADIO_RTRACK2 is not set # CONFIG_RADIO_AZTECH is not set CONFIG_RADIO_GEMTEK=m CONFIG_RADIO_GEMTEK_PCI=m # CONFIG_RADIO_MAXIRADIO is not set CONFIG_RADIO_MAESTRO=m CONFIG_RADIO_SF16FMI=m CONFIG_RADIO_SF16FMR2=m CONFIG_RADIO_TERRATEC=m CONFIG_RADIO_TRUST=m CONFIG_RADIO_TYPHOON=m CONFIG_RADIO_TYPHOON_PROC_FS=y CONFIG_RADIO_ZOLTRIX=m CONFIG_USB_DSBR=m # CONFIG_USB_SI470X is not set # CONFIG_USB_MR800 is not set CONFIG_RADIO_TEA5764=m # CONFIG_DAB is not set # # Graphics support # CONFIG_AGP=m CONFIG_AGP_ALI=m # CONFIG_AGP_ATI is not set CONFIG_AGP_AMD=m # CONFIG_AGP_AMD64 is not set CONFIG_AGP_INTEL=m # CONFIG_AGP_NVIDIA is not set CONFIG_AGP_SIS=m CONFIG_AGP_SWORKS=m # CONFIG_AGP_VIA is not set CONFIG_AGP_EFFICEON=m CONFIG_DRM=m CONFIG_DRM_TDFX=m CONFIG_DRM_R128=m CONFIG_DRM_RADEON=m # CONFIG_DRM_I810 is not set # CONFIG_DRM_I830 is not set # CONFIG_DRM_I915 is not set CONFIG_DRM_MGA=m CONFIG_DRM_SIS=m CONFIG_DRM_VIA=m CONFIG_DRM_SAVAGE=m CONFIG_VGASTATE=y CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y CONFIG_FIRMWARE_EDID=y CONFIG_FB_DDC=y CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set CONFIG_FB_SYS_FILLRECT=y CONFIG_FB_SYS_COPYAREA=y CONFIG_FB_SYS_IMAGEBLIT=y # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y CONFIG_FB_SVGALIB=y # CONFIG_FB_MACMODES is not set CONFIG_FB_BACKLIGHT=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set CONFIG_FB_CYBER2000=m CONFIG_FB_ARC=m # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set # CONFIG_FB_UVESA is not set # CONFIG_FB_VESA is not set # CONFIG_FB_N411 is not set # CONFIG_FB_HGA is not set CONFIG_FB_S1D13XXX=y CONFIG_FB_NVIDIA=y CONFIG_FB_NVIDIA_I2C=y # CONFIG_FB_NVIDIA_DEBUG is not set CONFIG_FB_NVIDIA_BACKLIGHT=y CONFIG_FB_RIVA=y # CONFIG_FB_RIVA_I2C is not set CONFIG_FB_RIVA_DEBUG=y # CONFIG_FB_RIVA_BACKLIGHT is not set CONFIG_FB_I810=m CONFIG_FB_I810_GTF=y CONFIG_FB_I810_I2C=y CONFIG_FB_LE80578=m CONFIG_FB_CARILLO_RANCH=m CONFIG_FB_INTEL=m # CONFIG_FB_INTEL_DEBUG is not set CONFIG_FB_INTEL_I2C=y CONFIG_FB_MATROX=y # CONFIG_FB_MATROX_MILLENIUM is not set CONFIG_FB_MATROX_MYSTIQUE=y CONFIG_FB_MATROX_G=y CONFIG_FB_MATROX_I2C=y CONFIG_FB_MATROX_MAVEN=m CONFIG_FB_MATROX_MULTIHEAD=y # CONFIG_FB_RADEON is not set CONFIG_FB_ATY128=m CONFIG_FB_ATY128_BACKLIGHT=y CONFIG_FB_ATY=y CONFIG_FB_ATY_CT=y # CONFIG_FB_ATY_GENERIC_LCD is not set CONFIG_FB_ATY_GX=y # CONFIG_FB_ATY_BACKLIGHT is not set # CONFIG_FB_S3 is not set CONFIG_FB_SAVAGE=m # CONFIG_FB_SAVAGE_I2C is not set CONFIG_FB_SAVAGE_ACCEL=y CONFIG_FB_SIS=y # CONFIG_FB_SIS_300 is not set CONFIG_FB_SIS_315=y CONFIG_FB_VIA=y # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set CONFIG_FB_VT8623=y CONFIG_FB_TRIDENT=y # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set # CONFIG_FB_CARMINE is not set CONFIG_FB_GEODE=y CONFIG_FB_GEODE_LX=m CONFIG_FB_GEODE_GX=y CONFIG_FB_GEODE_GX1=y CONFIG_FB_SM501=m # CONFIG_FB_VIRTUAL is not set CONFIG_FB_METRONOME=y CONFIG_FB_MB862XX=m # CONFIG_FB_MB862XX_PCI_GDC is not set CONFIG_FB_BROADSHEET=m CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m # CONFIG_LCD_ILI9320 is not set # CONFIG_LCD_PLATFORM is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=y # CONFIG_BACKLIGHT_PROGEAR is not set # CONFIG_BACKLIGHT_CARILLO_RANCH is not set CONFIG_BACKLIGHT_DA903X=y # CONFIG_BACKLIGHT_MBP_NVIDIA is not set # CONFIG_BACKLIGHT_SAHARA is not set # # Display device support # CONFIG_DISPLAY_SUPPORT=y # # Display hardware drivers # # # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set # CONFIG_MDA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y # CONFIG_FRAMEBUFFER_CONSOLE is not set CONFIG_FONT_8x16=y CONFIG_LOGO=y CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y CONFIG_LOGO_LINUX_CLUT224=y # CONFIG_SOUND is not set # CONFIG_HID_SUPPORT is not set CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=y CONFIG_USB_DEBUG=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_DYNAMIC_MINORS=y # CONFIG_USB_SUSPEND is not set # CONFIG_USB_OTG is not set CONFIG_USB_OTG_WHITELIST=y CONFIG_USB_OTG_BLACKLIST_HUB=y CONFIG_USB_MON=y CONFIG_USB_WUSB=y CONFIG_USB_WUSB_CBAF=m CONFIG_USB_WUSB_CBAF_DEBUG=y # # USB Host Controller Drivers # CONFIG_USB_C67X00_HCD=y # CONFIG_USB_XHCI_HCD is not set CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_ROOT_HUB_TT=y # CONFIG_USB_EHCI_TT_NEWSCHED is not set # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_ISP1760_HCD=m CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y # CONFIG_USB_U132_HCD is not set # CONFIG_USB_SL811_HCD is not set CONFIG_USB_R8A66597_HCD=m CONFIG_USB_HWA_HCD=y # # USB Device Class drivers # # CONFIG_USB_ACM is not set # CONFIG_USB_PRINTER is not set # CONFIG_USB_WDM is not set # CONFIG_USB_TMC is not set # # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may # # # also be needed; see USB_STORAGE Help for more info # # CONFIG_USB_STORAGE is not set CONFIG_USB_LIBUSUAL=y # # USB Imaging devices # CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=y # # USB port drivers # CONFIG_USB_USS720=y CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_CONSOLE=y CONFIG_USB_EZUSB=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m # CONFIG_USB_SERIAL_ARK3116 is not set CONFIG_USB_SERIAL_BELKIN=m CONFIG_USB_SERIAL_CH341=y # CONFIG_USB_SERIAL_WHITEHEAT is not set CONFIG_USB_SERIAL_DIGI_ACCELEPORT=y # CONFIG_USB_SERIAL_CP210X is not set CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=y CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_FUNSOFT=y CONFIG_USB_SERIAL_VISOR=m # CONFIG_USB_SERIAL_IPAQ is not set # CONFIG_USB_SERIAL_IR is not set CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=y # CONFIG_USB_SERIAL_GARMIN is not set CONFIG_USB_SERIAL_IPW=y CONFIG_USB_SERIAL_IUU=m CONFIG_USB_SERIAL_KEYSPAN_PDA=m CONFIG_USB_SERIAL_KEYSPAN=m # CONFIG_USB_SERIAL_KEYSPAN_MPR is not set # CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set CONFIG_USB_SERIAL_KEYSPAN_USA28X=y # CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y CONFIG_USB_SERIAL_KEYSPAN_USA19=y # CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set # CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set # CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y # CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set # CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=y CONFIG_USB_SERIAL_MCT_U232=y # CONFIG_USB_SERIAL_MOS7720 is not set # CONFIG_USB_SERIAL_MOS7840 is not set # CONFIG_USB_SERIAL_MOTOROLA is not set CONFIG_USB_SERIAL_NAVMAN=y CONFIG_USB_SERIAL_PL2303=y CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_QUALCOMM=y CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_HP4X=y CONFIG_USB_SERIAL_SAFE=m CONFIG_USB_SERIAL_SAFE_PADDED=y CONFIG_USB_SERIAL_SIEMENS_MPI=m CONFIG_USB_SERIAL_SIERRAWIRELESS=y CONFIG_USB_SERIAL_SYMBOL=m CONFIG_USB_SERIAL_TI=y # CONFIG_USB_SERIAL_CYBERJACK is not set CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_OPTION=y CONFIG_USB_SERIAL_OMNINET=y CONFIG_USB_SERIAL_OPTICON=y CONFIG_USB_SERIAL_DEBUG=m # # USB Miscellaneous drivers # CONFIG_USB_EMI62=y # CONFIG_USB_EMI26 is not set # CONFIG_USB_ADUTUX is not set CONFIG_USB_SEVSEG=y CONFIG_USB_RIO500=y # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set CONFIG_USB_BERRY_CHARGE=m # CONFIG_USB_LED is not set CONFIG_USB_CYPRESS_CY7C63=m CONFIG_USB_CYTHERM=y # CONFIG_USB_IDMOUSE is not set CONFIG_USB_FTDI_ELAN=y # CONFIG_USB_APPLEDISPLAY is not set CONFIG_USB_SISUSBVGA=y CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_LD=y CONFIG_USB_TRANCEVIBRATOR=m CONFIG_USB_IOWARRIOR=y # CONFIG_USB_TEST is not set # CONFIG_USB_ISIGHTFW is not set # CONFIG_USB_VST is not set CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m # CONFIG_USB_CXACRU is not set CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m # # OTG and related infrastructure # CONFIG_USB_OTG_UTILS=y CONFIG_NOP_USB_XCEIV=y CONFIG_UWB=y CONFIG_UWB_HWA=y CONFIG_UWB_WHCI=y CONFIG_UWB_WLP=m CONFIG_UWB_I1480U=y CONFIG_UWB_I1480U_WLP=m CONFIG_MMC=y CONFIG_MMC_DEBUG=y # CONFIG_MMC_UNSAFE_RESUME is not set # # MMC/SD/SDIO Card Drivers # CONFIG_MMC_BLOCK=y CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m CONFIG_MMC_TEST=y # # MMC/SD/SDIO Host Controller Drivers # CONFIG_MMC_SDHCI=m CONFIG_MMC_SDHCI_PCI=m # CONFIG_MMC_RICOH_MMC is not set # CONFIG_MMC_SDHCI_PLTFM is not set # CONFIG_MMC_WBSD is not set CONFIG_MMC_TIFM_SD=m CONFIG_MMC_SDRICOH_CS=m CONFIG_MMC_CB710=y CONFIG_MMC_VIA_SDMMC=y # CONFIG_MEMSTICK is not set CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y # # LED drivers # # CONFIG_LEDS_NET48XX is not set CONFIG_LEDS_WRAP=m CONFIG_LEDS_ALIX2=m CONFIG_LEDS_PCA9532=y CONFIG_LEDS_LP3944=y # CONFIG_LEDS_PCA955X is not set CONFIG_LEDS_DA903X=y CONFIG_LEDS_BD2802=m # # LED Triggers # # CONFIG_LEDS_TRIGGERS is not set # CONFIG_ACCESSIBILITY is not set CONFIG_INFINIBAND=y CONFIG_INFINIBAND_USER_MAD=y CONFIG_INFINIBAND_USER_ACCESS=m CONFIG_INFINIBAND_USER_MEM=y CONFIG_INFINIBAND_MTHCA=y # CONFIG_INFINIBAND_MTHCA_DEBUG is not set # CONFIG_INFINIBAND_AMSO1100 is not set # CONFIG_INFINIBAND_CXGB3 is not set # CONFIG_MLX4_INFINIBAND is not set CONFIG_INFINIBAND_NES=y CONFIG_INFINIBAND_NES_DEBUG=y CONFIG_INFINIBAND_IPOIB=m # CONFIG_INFINIBAND_IPOIB_CM is not set # CONFIG_INFINIBAND_IPOIB_DEBUG is not set # CONFIG_INFINIBAND_SRP is not set CONFIG_EDAC=y # # Reporting subsystems # CONFIG_EDAC_DEBUG=y # CONFIG_EDAC_DEBUG_VERBOSE is not set # CONFIG_EDAC_MM_EDAC is not set # CONFIG_RTC_CLASS is not set # CONFIG_DMADEVICES is not set CONFIG_AUXDISPLAY=y CONFIG_KS0108=y CONFIG_KS0108_PORT=0x378 CONFIG_KS0108_DELAY=2 CONFIG_CFAG12864B=y CONFIG_CFAG12864B_RATE=20 CONFIG_UIO=m # CONFIG_UIO_CIF is not set # CONFIG_UIO_PDRV is not set CONFIG_UIO_PDRV_GENIRQ=m CONFIG_UIO_SMX=m # CONFIG_UIO_AEC is not set CONFIG_UIO_SERCOS3=m # # TI VLYNQ # # CONFIG_STAGING is not set # CONFIG_X86_PLATFORM_DEVICES is not set # # Firmware Drivers # CONFIG_EDD=m # CONFIG_EDD_OFF is not set # CONFIG_FIRMWARE_MEMMAP is not set # CONFIG_DELL_RBU is not set CONFIG_DCDBAS=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m # # File systems # CONFIG_EXT2_FS=m # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y CONFIG_EXT3_DEFAULTS_TO_ORDERED=y CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y # CONFIG_EXT4_FS is not set CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set CONFIG_JBD2=y CONFIG_JBD2_DEBUG=y CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m CONFIG_REISERFS_CHECK=y CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y # CONFIG_REISERFS_FS_POSIX_ACL is not set # CONFIG_REISERFS_FS_SECURITY is not set # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=y # CONFIG_XFS_QUOTA is not set # CONFIG_XFS_POSIX_ACL is not set CONFIG_XFS_RT=y CONFIG_XFS_DEBUG=y # CONFIG_GFS2_FS is not set CONFIG_OCFS2_FS=y CONFIG_OCFS2_FS_O2CB=y # CONFIG_OCFS2_FS_USERSPACE_CLUSTER is not set CONFIG_OCFS2_FS_STATS=y CONFIG_OCFS2_DEBUG_MASKLOG=y # CONFIG_OCFS2_DEBUG_FS is not set CONFIG_OCFS2_FS_POSIX_ACL=y CONFIG_BTRFS_FS=y # CONFIG_BTRFS_FS_POSIX_ACL is not set CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y CONFIG_QUOTA_TREE=y CONFIG_QFMT_V1=y CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y CONFIG_AUTOFS_FS=y # CONFIG_AUTOFS4_FS is not set CONFIG_FUSE_FS=y # CONFIG_CUSE is not set CONFIG_GENERIC_ACL=y # # Caches # # CONFIG_FSCACHE is not set # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y # CONFIG_UDF_FS is not set # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m # CONFIG_VFAT_FS is not set CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_NTFS_FS=m CONFIG_NTFS_DEBUG=y CONFIG_NTFS_RW=y # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_CONFIGFS_FS=y CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set CONFIG_BEFS_FS=m # CONFIG_BEFS_DEBUG is not set CONFIG_BFS_FS=y CONFIG_EFS_FS=y CONFIG_CRAMFS=y CONFIG_SQUASHFS=m CONFIG_SQUASHFS_EMBEDDED=y CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_VXFS_FS is not set CONFIG_MINIX_FS=y CONFIG_OMFS_FS=m CONFIG_HPFS_FS=y CONFIG_QNX4FS_FS=m # CONFIG_ROMFS_FS is not set CONFIG_SYSV_FS=y # CONFIG_UFS_FS is not set CONFIG_NILFS2_FS=m CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y # CONFIG_NFS_V4 is not set CONFIG_ROOT_NFS=y CONFIG_NFSD=m # CONFIG_NFSD_V3 is not set # CONFIG_NFSD_V4 is not set CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=y CONFIG_NFS_ACL_SUPPORT=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=m CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPCSEC_GSS_SPKM3 is not set # CONFIG_SMB_FS is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y # CONFIG_CIFS_STATS2 is not set CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_UPCALL=y # CONFIG_CIFS_XATTR is not set CONFIG_CIFS_DEBUG2=y CONFIG_CIFS_DFS_UPCALL=y CONFIG_CIFS_EXPERIMENTAL=y # CONFIG_NCP_FS is not set CONFIG_CODA_FS=y CONFIG_AFS_FS=y CONFIG_AFS_DEBUG=y # # Partition Types # CONFIG_PARTITION_ADVANCED=y # CONFIG_ACORN_PARTITION is not set CONFIG_OSF_PARTITION=y CONFIG_AMIGA_PARTITION=y CONFIG_ATARI_PARTITION=y # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y CONFIG_BSD_DISKLABEL=y CONFIG_MINIX_SUBPARTITION=y # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set CONFIG_LDM_PARTITION=y CONFIG_LDM_DEBUG=y CONFIG_SGI_PARTITION=y CONFIG_ULTRIX_PARTITION=y CONFIG_SUN_PARTITION=y CONFIG_KARMA_PARTITION=y # CONFIG_EFI_PARTITION is not set CONFIG_SYSV68_PARTITION=y CONFIG_NLS=y CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_NLS_CODEPAGE_437=y # CONFIG_NLS_CODEPAGE_737 is not set CONFIG_NLS_CODEPAGE_775=y CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_CODEPAGE_852=m # CONFIG_NLS_CODEPAGE_855 is not set CONFIG_NLS_CODEPAGE_857=m CONFIG_NLS_CODEPAGE_860=m # CONFIG_NLS_CODEPAGE_861 is not set CONFIG_NLS_CODEPAGE_862=m CONFIG_NLS_CODEPAGE_863=y CONFIG_NLS_CODEPAGE_864=m # CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set CONFIG_NLS_CODEPAGE_936=m CONFIG_NLS_CODEPAGE_950=y # CONFIG_NLS_CODEPAGE_932 is not set CONFIG_NLS_CODEPAGE_949=m # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set CONFIG_NLS_CODEPAGE_1251=y # CONFIG_NLS_ASCII is not set # CONFIG_NLS_ISO8859_1 is not set CONFIG_NLS_ISO8859_2=m CONFIG_NLS_ISO8859_3=y CONFIG_NLS_ISO8859_4=m CONFIG_NLS_ISO8859_5=y CONFIG_NLS_ISO8859_6=y CONFIG_NLS_ISO8859_7=m # CONFIG_NLS_ISO8859_9 is not set CONFIG_NLS_ISO8859_13=y CONFIG_NLS_ISO8859_14=m CONFIG_NLS_ISO8859_15=y # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y CONFIG_DLM=m CONFIG_DLM_DEBUG=y # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_PRINTK_TIME=y CONFIG_ALLOW_WARNINGS=y CONFIG_ENABLE_WARN_DEPRECATED=y # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_FRAME_WARN=1024 CONFIG_MAGIC_SYSRQ=y CONFIG_UNUSED_SYMBOLS=y CONFIG_DEBUG_FS=y CONFIG_HEADERS_CHECK=y # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_SHIRQ=y CONFIG_DETECT_SOFTLOCKUP=y CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=1 CONFIG_DETECT_HUNG_TASK=y CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1 # CONFIG_SCHED_DEBUG is not set CONFIG_SCHEDSTATS=y # CONFIG_TIMER_STATS is not set CONFIG_DEBUG_OBJECTS=y CONFIG_DEBUG_OBJECTS_SELFTEST=y CONFIG_DEBUG_OBJECTS_FREE=y CONFIG_DEBUG_OBJECTS_TIMERS=y CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 CONFIG_DEBUG_KMEMLEAK=y CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=400 CONFIG_DEBUG_KMEMLEAK_TEST=y CONFIG_DEBUG_RT_MUTEXES=y CONFIG_DEBUG_PI_LIST=y CONFIG_RT_MUTEX_TESTER=y CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_MUTEXES=y CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y CONFIG_LOCKDEP=y CONFIG_LOCK_STAT=y CONFIG_DEBUG_LOCKDEP=y CONFIG_TRACE_IRQFLAGS=y # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_STACKTRACE=y # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set CONFIG_DEBUG_VIRTUAL=y CONFIG_DEBUG_WRITECOUNT=y # CONFIG_DEBUG_MEMORY_INIT is not set # CONFIG_DEBUG_LIST is not set CONFIG_DEBUG_SG=y CONFIG_DEBUG_NOTIFIERS=y CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y CONFIG_BOOT_PRINTK_DELAY=y CONFIG_RCU_TORTURE_TEST=m # CONFIG_RCU_CPU_STALL_DETECTOR is not set # CONFIG_KPROBES_SANITY_TEST is not set CONFIG_BACKTRACE_SELF_TEST=y # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set CONFIG_LKDTM=m CONFIG_FAULT_INJECTION=y CONFIG_FAILSLAB=y CONFIG_FAIL_PAGE_ALLOC=y # CONFIG_FAIL_MAKE_REQUEST is not set # CONFIG_FAIL_IO_TIMEOUT is not set CONFIG_FAULT_INJECTION_DEBUG_FS=y CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y # CONFIG_LATENCYTOP is not set # CONFIG_SYSCTL_SYSCALL_CHECK is not set CONFIG_DEBUG_PAGEALLOC=y CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_RING_BUFFER=y CONFIG_EVENT_TRACING=y CONFIG_CONTEXT_SWITCH_TRACER=y CONFIG_TRACING=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_BUILD_DOCSRC is not set CONFIG_DYNAMIC_DEBUG=y CONFIG_DMA_API_DEBUG=y CONFIG_SAMPLES=y # CONFIG_SAMPLE_MARKERS is not set CONFIG_SAMPLE_TRACEPOINTS=m # CONFIG_SAMPLE_TRACE_EVENTS is not set CONFIG_SAMPLE_KOBJECT=m CONFIG_SAMPLE_KPROBES=m CONFIG_SAMPLE_KRETPROBES=m CONFIG_SAMPLE_HW_BREAKPOINT=m CONFIG_HAVE_ARCH_KGDB=y CONFIG_KGDB=y # CONFIG_KGDB_SERIAL_CONSOLE is not set # CONFIG_KGDB_TESTS is not set CONFIG_HAVE_ARCH_KMEMCHECK=y CONFIG_STRICT_DEVMEM=y # CONFIG_X86_VERBOSE_BOOTUP is not set CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK_DBGP=y # CONFIG_DEBUG_STACKOVERFLOW is not set CONFIG_DEBUG_STACK_USAGE=y CONFIG_X86_PTDUMP=y # CONFIG_DEBUG_RODATA is not set CONFIG_DEBUG_NX_TEST=m # CONFIG_4KSTACKS is not set CONFIG_DOUBLEFAULT=y # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 # CONFIG_IO_DELAY_0X80 is not set CONFIG_IO_DELAY_0XED=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=1 CONFIG_DEBUG_BOOT_PARAMS=y CONFIG_CPA_DEBUG=y CONFIG_OPTIMIZE_INLINING=y # # Security options # CONFIG_KEYS=y # CONFIG_KEYS_DEBUG_PROC_KEYS is not set CONFIG_SECURITY=y CONFIG_SECURITYFS=y CONFIG_SECURITY_NETWORK=y CONFIG_SECURITY_NETWORK_XFRM=y CONFIG_SECURITY_PATH=y CONFIG_SECURITY_FILE_CAPABILITIES=y # CONFIG_SECURITY_ROOTPLUG is not set CONFIG_LSM_MMAP_MIN_ADDR=65536 CONFIG_SECURITY_SELINUX=y # CONFIG_SECURITY_SELINUX_BOOTPARAM is not set # CONFIG_SECURITY_SELINUX_DISABLE is not set CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set CONFIG_SECURITY_TOMOYO=y CONFIG_IMA=y CONFIG_IMA_MEASURE_PCR_IDX=10 CONFIG_IMA_AUDIT=y CONFIG_IMA_LSM_RULES=y CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_CRYPTO=y # # Crypto core or helper # CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_GF128MUL=m CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m # # Authenticated Encryption with Associated Data # # CONFIG_CRYPTO_CCM is not set CONFIG_CRYPTO_GCM=m CONFIG_CRYPTO_SEQIV=y # # Block modes # CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_ECB=m # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_PCBC is not set CONFIG_CRYPTO_XTS=m # # Hash modes # CONFIG_CRYPTO_HMAC=y # CONFIG_CRYPTO_XCBC is not set # # Digest # CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=y # CONFIG_CRYPTO_RMD128 is not set CONFIG_CRYPTO_RMD160=y # CONFIG_CRYPTO_RMD256 is not set CONFIG_CRYPTO_RMD320=y CONFIG_CRYPTO_SHA1=y # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=y # # Ciphers # CONFIG_CRYPTO_AES=y CONFIG_CRYPTO_AES_586=y CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=y # CONFIG_CRYPTO_CAST6 is not set CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_FCRYPT=y # CONFIG_CRYPTO_KHAZAD is not set CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20_586=m CONFIG_CRYPTO_SEED=y CONFIG_CRYPTO_SERPENT=y CONFIG_CRYPTO_TEA=y CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=y CONFIG_CRYPTO_TWOFISH_586=y # # Compression # CONFIG_CRYPTO_DEFLATE=y CONFIG_CRYPTO_ZLIB=y CONFIG_CRYPTO_LZO=m # # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m # CONFIG_CRYPTO_HW is not set CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m CONFIG_KVM_TRACE=y CONFIG_VIRTIO=y CONFIG_VIRTIO_RING=y CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_BALLOON=y CONFIG_BINARY_PRINTF=y # # Library routines # CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_CRC_CCITT=m CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=y CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=y CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=m CONFIG_LZO_DECOMPRESS=m CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_NLATTR=y [-- Attachment #3: crash.log --] [-- Type: text/plain, Size: 16615 bytes --] [ 0.000000] Linux version 2.6.31-rc8-tip-01272-gcfc796e-dirty (mingo@sirius) (gcc version 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC) ) #9056 Tue Sep 1 09:32:44 CEST 2009 [ 0.000000] console [earlyser0] enabled [ 0.000000] debug: ignoring loglevel setting. [ 0.000000] KERNEL supported cpus: [ 0.000000] Intel GenuineIntel [ 0.000000] AMD AuthenticAMD [ 0.000000] UMC UMC UMC UMC [ 0.000000] BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f800 (usable) [ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved) [ 0.000000] BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) [ 0.000000] BIOS-e820: 0000000000100000 - 000000003fff0000 (usable) [ 0.000000] BIOS-e820: 000000003fff0000 - 000000003fff3000 (ACPI NVS) [ 0.000000] BIOS-e820: 000000003fff3000 - 0000000040000000 (ACPI data) [ 0.000000] BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) [ 0.000000] BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved) [ 0.000000] MPS support code is not built-in. [ 0.000000] Using acpi=off or acpi=noirq or pci=noacpi may have problem [ 0.000000] last_pfn = 0x3fff0 max_arch_pfn = 0x100000 [ 0.000000] MTRR default type: uncachable [ 0.000000] MTRR fixed ranges enabled: [ 0.000000] 00000-9FFFF write-back [ 0.000000] A0000-BFFFF uncachable [ 0.000000] C0000-C7FFF write-protect [ 0.000000] C8000-FFFFF uncachable [ 0.000000] MTRR variable ranges enabled: [ 0.000000] 0 base 0000000000 mask FFC0000000 write-back [ 0.000000] 1 disabled [ 0.000000] 2 disabled [ 0.000000] 3 disabled [ 0.000000] 4 disabled [ 0.000000] 5 disabled [ 0.000000] 6 disabled [ 0.000000] 7 disabled [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 [ 0.000000] only 135MB highmem pages available, ignoring highmem size of 512MB! [ 0.000000] e820 update range: 0000000000001000 - 0000000000010000 (usable) ==> (reserved) [ 0.000000] Scanning 1 areas for low memory corruption [ 0.000000] modified physical RAM map: [ 0.000000] modified: 0000000000000000 - 0000000000001000 (usable) [ 0.000000] modified: 0000000000001000 - 0000000000010000 (reserved) [ 0.000000] modified: 0000000000010000 - 000000000009f800 (usable) [ 0.000000] modified: 000000000009f800 - 00000000000a0000 (reserved) [ 0.000000] modified: 00000000000f0000 - 0000000000100000 (reserved) [ 0.000000] modified: 0000000000100000 - 000000003fff0000 (usable) [ 0.000000] modified: 000000003fff0000 - 000000003fff3000 (ACPI NVS) [ 0.000000] modified: 000000003fff3000 - 0000000040000000 (ACPI data) [ 0.000000] modified: 00000000e0000000 - 00000000f0000000 (reserved) [ 0.000000] modified: 00000000fec00000 - 0000000100000000 (reserved) [ 0.000000] initial memory mapped : 0 - 02800000 [ 0.000000] init_memory_mapping: 0000000000000000-00000000377fe000 [ 0.000000] 0000000000 - 00377fe000 page 4k [ 0.000000] kernel direct mapping tables up to 377fe000 @ 100000-1e1000 [ 0.000000] 135MB HIGHMEM available. [ 0.000000] 887MB LOWMEM available. [ 0.000000] mapped low ram: 0 - 377fe000 [ 0.000000] low ram: 0 - 377fe000 [ 0.000000] node 0 low ram: 00000000 - 377fe000 [ 0.000000] node 0 bootmap 00010000 - 00016f00 [ 0.000000] (6 early reservations) ==> bootmem [0000000000 - 00377fe000] [ 0.000000] #0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - 0000001000] [ 0.000000] #1 [0001000000 - 00024fadd8] TEXT DATA BSS ==> [0001000000 - 00024fadd8] [ 0.000000] #2 [000009f800 - 0000100000] BIOS reserved ==> [000009f800 - 0000100000] [ 0.000000] #3 [00024fb000 - 0002505000] BRK ==> [00024fb000 - 0002505000] [ 0.000000] #4 [0000100000 - 00001d4000] PGTABLE ==> [0000100000 - 00001d4000] [ 0.000000] #5 [0000010000 - 0000017000] BOOTMAP ==> [0000010000 - 0000017000] [ 0.000000] Zone PFN ranges: [ 0.000000] DMA 0x00000000 -> 0x00001000 [ 0.000000] Normal 0x00001000 -> 0x000377fe [ 0.000000] HighMem 0x000377fe -> 0x0003fff0 [ 0.000000] Movable zone start PFN for each node [ 0.000000] early_node_map[3] active PFN ranges [ 0.000000] 0: 0x00000000 -> 0x00000001 [ 0.000000] 0: 0x00000010 -> 0x0000009f [ 0.000000] 0: 0x00000100 -> 0x0003fff0 [ 0.000000] On node 0 totalpages: 262016 [ 0.000000] free_area_init_node: node 0, pgdat c1d32484, node_mem_map c2506000 [ 0.000000] DMA zone: 32 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 3952 pages, LIFO batch:0 [ 0.000000] Normal zone: 1744 pages used for memmap [ 0.000000] Normal zone: 221486 pages, LIFO batch:31 [ 0.000000] HighMem zone: 272 pages used for memmap [ 0.000000] HighMem zone: 34530 pages, LIFO batch:7 [ 0.000000] Using APIC driver default [ 0.000000] Nvidia board detected. Ignoring ACPI timer override. [ 0.000000] If you got timer trouble try acpi_use_timer_override [ 0.000000] APIC: disable apic facility [ 0.000000] nr_irqs_gsi: 16 [ 0.000000] PM: Registered nosave memory: 0000000000001000 - 0000000000010000 [ 0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000 [ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000f0000 [ 0.000000] PM: Registered nosave memory: 00000000000f0000 - 0000000000100000 [ 0.000000] Allocating PCI resources starting at 40000000 (gap: 40000000:a0000000) [ 0.000000] Booting paravirtualized kernel on bare hardware [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 259968 [ 0.000000] Kernel command line: root=/dev/sda1 earlyprintk=serial,ttyS0,115200,keep console=tty debug initcall_debug enforcing=0 apic=verbose ignore_loglevel sysrq_always_enabled selinux=0 nmi_watchdog=0 3 panic=1 3 maxcpus=1 no_hz=off nmi_watchdog=0 noapic lapic hpet=disable idle=mwait highmem=512m acpi=off pci=nomsi [ 0.000000] debug: sysrq always enabled. [ 0.000000] PID hash table entries: 4096 (order: 12, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Enabling fast FPU save and restore... done. [ 0.000000] Enabling unmasked SIMD FPU exception support... done. [ 0.000000] Initializing CPU#0 [ 0.000000] Initializing HighMem for node 0 (000377fe:0003fff0) [ 0.000000] Memory: 1016324k/1048512k available (8212k kernel code, 31428k reserved, 5350k data, 448k init, 139208k highmem) [ 0.000000] virtual kernel memory layout: [ 0.000000] fixmap : 0xfffa3000 - 0xfffff000 ( 368 kB) [ 0.000000] pkmap : 0xff800000 - 0xffc00000 (4096 kB) [ 0.000000] vmalloc : 0xf7ffe000 - 0xff7fe000 ( 120 MB) [ 0.000000] lowmem : 0xc0000000 - 0xf77fe000 ( 887 MB) [ 0.000000] .init : 0xc1d3f000 - 0xc1daf000 ( 448 kB) [ 0.000000] .data : 0xc180537e - 0xc1d3ebd4 (5350 kB) [ 0.000000] .text : 0xc1000000 - 0xc180537e (8212 kB) [ 0.000000] Checking if this processor honours the WP bit even in supervisor mode...Ok. [ 0.000000] SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:2304 nr_irqs:256 [ 0.000000] spurious 8259A interrupt: IRQ7. [ 0.000000] Console: colour VGA+ 80x25 [ 0.000000] console [tty0] enabled [ 0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar [ 0.000000] ... MAX_LOCKDEP_SUBCLASSES: 8 [ 0.000000] ... MAX_LOCK_DEPTH: 48 [ 0.000000] ... MAX_LOCKDEP_KEYS: 8191 [ 0.000000] ... CLASSHASH_SIZE: 4096 [ 0.000000] ... MAX_LOCKDEP_ENTRIES: 16384 [ 0.000000] ... MAX_LOCKDEP_CHAINS: 32768 [ 0.000000] ... CHAINHASH_SIZE: 16384 [ 0.000000] memory used by lock dependency info: 3823 kB [ 0.000000] per task-struct memory footprint: 1920 bytes [ 0.000000] ODEBUG: 10 of 10 active objects replaced [ 0.000000] ODEBUG: selftest passed [ 0.000000] Fast TSC calibration using PIT [ 0.000000] Detected 2010.574 MHz processor. [ 0.003038] Calibrating delay loop (skipped), value calculated using timer frequency.. 4021.14 BogoMIPS (lpj=2010574) [ 0.005058] Security Framework initialized [ 0.006016] SELinux: Initializing. [ 0.007085] SELinux: Starting in permissive mode [ 0.008045] Mount-cache hash table entries: 512 [ 0.012632] CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) [ 0.013004] CPU: L2 Cache: 512K (64 bytes/line) [ 0.014004] mce: CPU supports 5 MCE banks [ 0.015033] Performance Counters: AMD PMU driver. [ 0.017028] ... version: 0 [ 0.018002] ... bit width: 48 [ 0.019002] ... generic counters: 4 [ 0.020002] ... value mask: 0000ffffffffffff [ 0.021002] ... max period: 00007fffffffffff [ 0.022002] ... fixed-purpose counters: 0 [ 0.023002] ... counter mask: 000000000000000f [ 0.024001] CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ stepping 02 [ 0.027010] Checking 'hlt' instruction... OK. [ 0.034023] calling spawn_ksoftirqd+0x0/0x48 @ 1 [ 0.035025] BUG: unable to handle kernel NULL pointer dereference at (null) [ 0.035994] IP: [<c102c79a>] try_to_wake_up+0x2f/0x174 [ 0.035994] *pde = 00000000 [ 0.035994] Oops: 0000 [#1] DEBUG_PAGEALLOC [ 0.035994] last sysfs file: [ 0.035994] Modules linked in: [ 0.035994] [ 0.035994] Pid: 1, comm: swapper Not tainted (2.6.31-rc8-tip-01272-gcfc796e-dirty #9056) [ 0.035994] EIP: 0060:[<c102c79a>] EFLAGS: 00010046 CPU: 0 [ 0.035994] EIP is at try_to_wake_up+0x2f/0x174 [ 0.035994] EAX: e7775505 EBX: 0000000f ECX: 00000000 EDX: 00000000 [ 0.035994] ESI: 00000000 EDI: 00000000 EBP: f7051f20 ESP: f7051efc [ 0.035994] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 [ 0.035994] Process swapper (pid: 1, ti=f7050000 task=f7048000 task.ti=f7050000) [ 0.035994] Stack: [ 0.035994] 00000246 c104920f 00000000 c1b95fbc 00000246 e7775505 c1a46b24 00000000 [ 0.035994] <0> c1d50f2a f7051f2c c102c954 e7775505 f7051f84 c1049219 c1035c95 00000000 [ 0.035994] <0> c1a3c54f 00000000 00000001 dead4ead ffffffff ffffffff c1ec1e18 00000000 [ 0.035994] Call Trace: [ 0.035994] [<c104920f>] ? kthread_create+0x63/0xdc [ 0.035994] [<c1d50f2a>] ? spawn_ksoftirqd+0x0/0x48 [ 0.035994] [<c102c954>] ? wake_up_process+0x1b/0x2e [ 0.035994] [<c1049219>] ? kthread_create+0x6d/0xdc [ 0.035994] [<c1035c95>] ? ksoftirqd+0x0/0xb3 [ 0.035994] [<c1d837a8>] ? cpu_callback+0x3e/0x94 [ 0.035994] [<c1035c95>] ? ksoftirqd+0x0/0xb3 [ 0.035994] [<c1d50f4c>] ? spawn_ksoftirqd+0x22/0x48 [ 0.035994] [<c100113e>] ? _stext+0x56/0x15a [ 0.035994] [<c1d3f30c>] ? kernel_init+0x42/0xec [ 0.035994] [<c1d3f2ca>] ? kernel_init+0x0/0xec [ 0.035994] [<c10037c7>] ? kernel_thread_helper+0x7/0x58 [ 0.035994] Code: 56 89 c7 53 89 d3 83 ec 18 89 4d e4 65 a1 14 00 00 00 89 45 f0 31 c0 8d 55 ec 89 f8 e8 34 d3 ff ff 89 45 e8 31 f6 e8 3d f5 ff ff <8b> 07 85 c3 0f 84 15 01 00 00 31 f6 83 7f 48 00 0f 85 c8 00 00 [ 0.035994] EIP: [<c102c79a>] try_to_wake_up+0x2f/0x174 SS:ESP 0068:f7051efc [ 0.035994] CR2: 0000000000000000 [ 0.035994] ---[ end trace a7919e7f17c0a725 ]--- [ 0.035994] Kernel panic - not syncing: Fatal exception [ 0.035994] Rebooting in 1 seconds.. [ 0.035994] BUG: unable to handle kernel NULL pointer dereference at 0000008c [ 0.035994] IP: [<c17c8b24>] klist_next+0x1b/0xaf [ 0.035994] *pde = 00000000 [ 0.035994] Oops: 0000 [#2] DEBUG_PAGEALLOC [ 0.035994] last sysfs file: [ 0.035994] Modules linked in: [ 0.035994] [ 0.035994] Pid: 1, comm: swapper Tainted: G D (2.6.31-rc8-tip-01272-gcfc796e-dirty #9056) [ 0.035994] EIP: 0060:[<c17c8b24>] EFLAGS: 00010046 CPU: 0 [ 0.035994] EIP is at klist_next+0x1b/0xaf [ 0.035994] EAX: 0000005c EBX: f7051cc0 ECX: 00000000 EDX: f7051cc0 [ 0.035994] ESI: f7051cc0 EDI: 00000000 EBP: f7051cb4 ESP: f7051ca0 [ 0.035994] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 [ 0.035994] Process swapper (pid: 1, ti=f7050000 task=f7048000 task.ti=f7050000) [ 0.035994] Stack: [ 0.035994] f7051cb4 e7775505 f7051cc0 f7051cc0 c133e1b4 f7051cd8 c140909d 00000000 [ 0.035994] <0> 0000005c 00000000 e7775505 00000000 00001078 00000100 f7051cec c133f054 [ 0.035994] <0> c133e1b4 e7775505 00000000 f7051d10 c1344864 00000000 ffffffff ffffffff [ 0.035994] Call Trace: [ 0.035994] [<c133e1b4>] ? find_anything+0x0/0x26 [ 0.035994] [<c140909d>] ? bus_find_device+0x5f/0x91 [ 0.035994] [<c133f054>] ? no_pci_devices+0x25/0x4d [ 0.035994] [<c133e1b4>] ? find_anything+0x0/0x26 [ 0.035994] [<c1344864>] ? pci_get_subsys+0x2c/0x85 [ 0.035994] [<c13448db>] ? pci_get_device+0x1e/0x34 [ 0.035994] [<c10198ab>] ? mach_reboot_fixups+0x35/0x5c [ 0.035994] [<c1015455>] ? native_machine_emergency_restart+0x94/0x14f [ 0.035994] [<c10151a4>] ? machine_emergency_restart+0x21/0x34 [ 0.035994] [<c10433b8>] ? emergency_restart+0x16/0x29 [ 0.035994] [<c17fe634>] ? panic+0xb2/0xde [ 0.035994] [<c1801978>] ? oops_end+0x84/0xa3 [ 0.035994] [<c101d399>] ? no_context+0x119/0x134 [ 0.035994] [<c101d510>] ? __bad_area_nosemaphore+0x15c/0x175 [ 0.035994] [<c1029af4>] ? task_rq_lock+0x30/0x48 [ 0.035994] [<c10491eb>] ? kthread_create+0x3f/0xdc [ 0.035994] [<c107b679>] ? rcu_bh_qs+0x4f/0x6c [ 0.035994] [<c101d546>] ? bad_area_nosemaphore+0x1d/0x34 [ 0.035994] [<c1802e1b>] ? do_page_fault+0x18f/0x2db [ 0.035994] [<c1802c8c>] ? do_page_fault+0x0/0x2db [ 0.035994] [<c1800ff0>] ? error_code+0x70/0x80 [ 0.035994] [<c102c79a>] ? try_to_wake_up+0x2f/0x174 [ 0.035994] [<c104920f>] ? kthread_create+0x63/0xdc [ 0.035994] [<c1d50f2a>] ? spawn_ksoftirqd+0x0/0x48 [ 0.035994] [<c102c954>] ? wake_up_process+0x1b/0x2e [ 0.035994] [<c1049219>] ? kthread_create+0x6d/0xdc [ 0.035994] [<c1035c95>] ? ksoftirqd+0x0/0xb3 [ 0.035994] [<c1d837a8>] ? cpu_callback+0x3e/0x94 [ 0.035994] [<c1035c95>] ? ksoftirqd+0x0/0xb3 [ 0.035994] [<c1d50f4c>] ? spawn_ksoftirqd+0x22/0x48 [ 0.035994] [<c100113e>] ? _stext+0x56/0x15a [ 0.035994] [<c1d3f30c>] ? kernel_init+0x42/0xec [ 0.035994] [<c1d3f2ca>] ? kernel_init+0x0/0xec [ 0.035994] [<c10037c7>] ? kernel_thread_helper+0x7/0x58 [ 0.035994] Code: 65 33 05 14 00 00 00 74 05 e8 d4 75 86 ff c9 c3 55 89 e5 57 56 89 c6 53 83 ec 08 65 a1 14 00 00 00 89 45 f0 31 c0 8b 06 8b 7e 04 <8b> 50 30 89 55 ec e8 f0 7d 03 00 85 ff 74 22 8b 47 04 ba 97 8c [ 0.035994] EIP: [<c17c8b24>] klist_next+0x1b/0xaf SS:ESP 0068:f7051ca0 [ 0.035994] CR2: 000000000000008c [ 0.035994] ---[ end trace a7919e7f17c0a726 ]--- [ 0.035994] Kernel panic - not syncing: Fatal exception [ 0.035994] Rebooting in 1 seconds.. [ 0.035994] BUG: unable to handle kernel NULL pointer dereference at 0000008c [ 0.035994] IP: [<c17c8b24>] klist_next+0x1b/0xaf [ 0.035994] *pde = 00000000 [ 0.035994] Oops: 0000 [#3] DEBUG_PAGEALLOC [ 0.035994] last sysfs file: [ 0.035994] Modules linked in: [ 0.035994] [ 0.035994] Pid: 1, comm: swapper Tainted: G D (2.6.31-rc8-tip-01272-gcfc796e-dirty #9056) [ 0.035994] EIP: 0060:[<c17c8b24>] EFLAGS: 00010046 CPU: 0 [ 0.035994] EIP is at klist_next+0x1b/0xaf [ 0.035994] EAX: 0000005c EBX: f7051a64 ECX: 00000000 EDX: f7051a64 [ 0.035994] ESI: f7051a64 EDI: 00000000 EBP: f7051a58 ESP: f7051a44 [ 0.035994] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 [ 0.035994] Process swapper (pid: 1, ti=f7050000 task=f7048000 task.ti=f7050000) [ 0.035994] Stack: [ 0.035994] f7051a58 e7775505 f7051a64 f7051a64 c133e1b4 f7051a7c c140909d 00000000 [ 0.035994] <0> 0000005c 00000000 e7775505 00000000 00001078 00000100 f7051a90 c133f054 [ 0.035994] <0> c133e1b4 e7775505 00000000 f7051ab4 c1344864 00000000 ffffffff ffffffff [ 0.035994] Call Trace: [ 0.035994] [<c133e1b4>] ? find_anything+0x0/0x26 [ 0.035994] [<c140909d>] ? bus_find_device+0x5f/0x91 [ 0.035994] [<c133f054>] ? no_pci_devices+0x25/0x4d [ 0.035994] [<c133e1b4>] ? find_anything+0x0/0x26 [ 0.035994] [<c1344864>] ? pci_get_subsys+0x2c/0x85 [ 0.035994] [<c13448db>] ? pci_get_device+0x1e/0x34 ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH] kthreads: Fix startup synchronization boot crash 2009-09-01 10:03 ` Ingo Molnar @ 2009-09-01 11:39 ` Ingo Molnar 2009-09-01 13:04 ` Oleg Nesterov 0 siblings, 1 reply; 30+ messages in thread From: Ingo Molnar @ 2009-09-01 11:39 UTC (permalink / raw) To: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, Oleg Nesterov Cc: linux-tip-commits * Ingo Molnar <mingo@elte.hu> wrote: > FYI, -tip testing found a nasty bootup crash: > > [ 0.027010] Checking 'hlt' instruction... OK. > [ 0.034023] calling spawn_ksoftirqd+0x0/0x48 @ 1 > [ 0.035025] BUG: unable to handle kernel NULL pointer dereference at (null) > [ 0.035994] IP: [<c102c79a>] try_to_wake_up+0x2f/0x174 > [ 0.035994] *pde = 00000000 > [ 0.035994] Oops: 0000 [#1] DEBUG_PAGEALLOC > [ 0.035994] last sysfs file: > > and i bisected it down to this commit. The crash was probably > pre-existing - stackprotector was not enabled in this type of > cross-build i did. here's another crashlog: [ 0.025010] Checking 'hlt' instruction... OK. [ 0.032017] calling spawn_ksoftirqd+0x0/0x48 @ 1 [ 0.033024] BUG: unable to handle kernel NULL pointer dereference at (null) [ 0.033994] IP: [<c102b00d>] try_to_wake_up+0x2f/0x174 [ 0.033994] *pde = 00000000 [ 0.033994] Oops: 0000 [#1] DEBUG_PAGEALLOC [ 0.033994] last sysfs file: [ 0.033994] Modules linked in: [ 0.033994] [ 0.033994] Pid: 1, comm: swapper Not tainted (2.6.31-rc6-00024-g23386d6-dirty #9074) [ 0.033994] EIP: 0060:[<c102b00d>] EFLAGS: 00010046 CPU: 0 [ 0.033994] EIP is at try_to_wake_up+0x2f/0x174 [ 0.033994] EAX: 0935b29c EBX: 0000000f ECX: 00000000 EDX: 00000000 [ 0.033994] ESI: 00000000 EDI: 00000000 EBP: f7051edc ESP: f7051eb8 [ 0.033994] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 [ 0.033994] Process swapper (pid: 1, ti=f7050000 task=f7048000 task.ti=f7050000) [ 0.033994] Stack: [ 0.033994] 00000246 c1045384 00000000 c1b8800c 00000246 0935b29c c1a3b088 00000000 [ 0.033994] <0> 00000000 f7051ee8 c102b1c7 0935b29c f7051f40 c104538e c1034aed 00000000 [ 0.033994] <0> c1a30e5f 00000000 00000001 dead4ead ffffffff ffffffff c1eb1e04 00000000 [ 0.033994] Call Trace: [ 0.033994] [<c1045384>] ? kthread_create+0x63/0xdb [ 0.033994] [<c102b1c7>] ? wake_up_process+0x1b/0x2e [ 0.033994] [<c104538e>] ? kthread_create+0x6d/0xdb [ 0.033994] [<c1034aed>] ? ksoftirqd+0x0/0xb8 [ 0.033994] [<c1048dc8>] ? ktime_get_ts+0x4e/0x64 [ 0.033994] [<c1d7446b>] ? cpu_callback+0x3e/0x94 [ 0.033994] [<c1034aed>] ? ksoftirqd+0x0/0xb8 [ 0.033994] [<c1d41f3c>] ? spawn_ksoftirqd+0x22/0x48 [ 0.033994] [<c100113c>] ? _stext+0x54/0x135 [ 0.033994] [<c1d41f1a>] ? spawn_ksoftirqd+0x0/0x48 [ 0.033994] [<c1002e75>] ? restore_all_notrace+0x0/0x18 [ 0.033994] [<c1055ce9>] ? trace_hardirqs_on_caller+0xb9/0xf2 [ 0.033994] [<c13294ec>] ? trace_hardirqs_on_thunk+0xc/0x10 [ 0.033994] [<c1002e75>] ? restore_all_notrace+0x0/0x18 [ 0.033994] [<c1d302ab>] ? kernel_init+0x0/0xec [ 0.033994] [<c1d302ed>] ? kernel_init+0x42/0xec [ 0.033994] [<c1d302ab>] ? kernel_init+0x0/0xec [ 0.033994] [<c10037a7>] ? kernel_thread_helper+0x7/0x58 [ 0.033994] Code: 56 89 c7 53 89 d3 83 ec 18 89 4d e4 65 a1 14 00 00 00 89 45 f0 31 c0 8d 55 ec 89 f8 e8 88 d3 ff ff 89 45 e8 31 f6 e8 8e f5 ff ff <8b> 07 85 c3 0f 84 15 01 00 00 31 f6 83 7f 48 00 0f 85 c8 00 00 [ 0.033994] EIP: [<c102b00d>] try_to_wake_up+0x2f/0x174 SS:ESP 0068:f7051eb8 here's the disassembly of try_to_wake_up(): c102afde <try_to_wake_up>: c102afde: 55 push %ebp c102afdf: 89 e5 mov %esp,%ebp c102afe1: 57 push %edi c102afe2: 56 push %esi c102afe3: 89 c7 mov %eax,%edi c102afe5: 53 push %ebx c102afe6: 89 d3 mov %edx,%ebx c102afe8: 83 ec 18 sub $0x18,%esp c102afeb: 89 4d e4 mov %ecx,-0x1c(%ebp) c102afee: 65 a1 14 00 00 00 mov %gs:0x14,%eax c102aff4: 89 45 f0 mov %eax,-0x10(%ebp) c102aff7: 31 c0 xor %eax,%eax c102aff9: 8d 55 ec lea -0x14(%ebp),%edx c102affc: 89 f8 mov %edi,%eax c102affe: e8 88 d3 ff ff call c102838b <task_rq_lock> c102b003: 89 45 e8 mov %eax,-0x18(%ebp) c102b006: 31 f6 xor %esi,%esi c102b008: e8 8e f5 ff ff call c102a59b <update_rq_clock> c102b00d: 8b 07 mov (%edi),%eax c102b00f: 85 c3 test %eax,%ebx c102b011: 0f 84 15 01 00 00 je c102b12c <try_to_wake_up+0x14e> c102b017: 31 f6 xor %esi,%esi c102b019: 83 7f 48 00 cmpl $0x0,0x48(%edi) c102b01d: 0f 85 c8 00 00 00 jne c102b0eb <try_to_wake_up+0x10d> c102b023: 83 87 1c 01 00 00 01 addl $0x1,0x11c(%edi) c102b02a: 83 97 20 01 00 00 00 adcl $0x0,0x120(%edi) c102b031: 83 7d e4 00 cmpl $0x0,-0x1c(%ebp) c102b035: 74 0e je c102b045 <try_to_wake_up+0x67> c102b037: 83 87 24 01 00 00 01 addl $0x1,0x124(%edi) c102b03e: 83 97 28 01 00 00 00 adcl $0x0,0x128(%edi) c102b045: 83 87 34 01 00 00 01 addl $0x1,0x134(%edi) c102b04c: 83 97 38 01 00 00 00 adcl $0x0,0x138(%edi) c102b053: 8b 45 e8 mov -0x18(%ebp),%eax c102b056: 89 fa mov %edi,%edx c102b058: b9 01 00 00 00 mov $0x1,%ecx c102b05d: be 01 00 00 00 mov $0x1,%esi c102b062: e8 04 8e ff ff call c1023e6b <activate_task> c102b067: 89 e0 mov %esp,%eax c102b069: 25 00 e0 ff ff and $0xffffe000,%eax c102b06e: f7 40 14 00 ff ff 07 testl $0x7ffff00,0x14(%eax) c102b075: 75 74 jne c102b0eb <try_to_wake_up+0x10d> c102b077: 8b 35 40 2b b8 c1 mov 0xc1b82b40,%esi c102b07d: 8b 56 54 mov 0x54(%esi),%edx c102b080: 8b 4e 58 mov 0x58(%esi),%ecx c102b083: 89 55 dc mov %edx,-0x24(%ebp) c102b086: 89 4d e0 mov %ecx,-0x20(%ebp) c102b089: 8b 56 70 mov 0x70(%esi),%edx c102b08c: 8b 46 6c mov 0x6c(%esi),%eax c102b08f: 89 d1 mov %edx,%ecx c102b091: 09 c1 or %eax,%ecx c102b093: 74 0c je c102b0a1 <try_to_wake_up+0xc3> c102b095: 8b 4d dc mov -0x24(%ebp),%ecx c102b098: 8b 5d e0 mov -0x20(%ebp),%ebx c102b09b: 29 c1 sub %eax,%ecx c102b09d: 19 d3 sbb %edx,%ebx c102b09f: eb 12 jmp c102b0b3 <try_to_wake_up+0xd5> c102b0a1: 8b 4d dc mov -0x24(%ebp),%ecx c102b0a4: 8b 5d e0 mov -0x20(%ebp),%ebx c102b0a7: 2b 8e 84 00 00 00 sub 0x84(%esi),%ecx c102b0ad: 1b 9e 88 00 00 00 sbb 0x88(%esi),%ebx c102b0b3: 8b 86 8c 00 00 00 mov 0x8c(%esi),%eax c102b0b9: 8b 96 90 00 00 00 mov 0x90(%esi),%edx c102b0bf: 29 c1 sub %eax,%ecx c102b0c1: 19 d3 sbb %edx,%ebx c102b0c3: 0f ac d9 03 shrd $0x3,%ebx,%ecx c102b0c7: c1 fb 03 sar $0x3,%ebx c102b0ca: 01 c1 add %eax,%ecx c102b0cc: 11 d3 adc %edx,%ebx c102b0ce: 8b 46 54 mov 0x54(%esi),%eax c102b0d1: 8b 56 58 mov 0x58(%esi),%edx c102b0d4: 89 8e 8c 00 00 00 mov %ecx,0x8c(%esi) c102b0da: 89 9e 90 00 00 00 mov %ebx,0x90(%esi) c102b0e0: 89 46 6c mov %eax,0x6c(%esi) c102b0e3: 89 56 70 mov %edx,0x70(%esi) c102b0e6: be 01 00 00 00 mov $0x1,%esi c102b0eb: 83 3d 24 79 d2 c1 00 cmpl $0x0,0xc1d27924 c102b0f2: 74 1b je c102b10f <try_to_wake_up+0x131> c102b0f4: 8b 1d 28 79 d2 c1 mov 0xc1d27928,%ebx c102b0fa: 85 db test %ebx,%ebx c102b0fc: 74 11 je c102b10f <try_to_wake_up+0x131> c102b0fe: 89 f1 mov %esi,%ecx c102b100: 89 fa mov %edi,%edx c102b102: 8b 45 e8 mov -0x18(%ebp),%eax c102b105: ff 13 call *(%ebx) c102b107: 83 c3 04 add $0x4,%ebx c102b10a: 83 3b 00 cmpl $0x0,(%ebx) c102b10d: eb ed jmp c102b0fc <try_to_wake_up+0x11e> c102b10f: 8b 55 e8 mov -0x18(%ebp),%edx c102b112: 8b 4d e4 mov -0x1c(%ebp),%ecx c102b115: 8b 82 34 04 00 00 mov 0x434(%edx),%eax c102b11b: 89 fa mov %edi,%edx c102b11d: 8b 58 28 mov 0x28(%eax),%ebx c102b120: 8b 45 e8 mov -0x18(%ebp),%eax c102b123: ff 53 10 call *0x10(%ebx) c102b126: c7 07 00 00 00 00 movl $0x0,(%edi) c102b12c: 8b 45 e8 mov -0x18(%ebp),%eax c102b12f: 8b 55 ec mov -0x14(%ebp),%edx c102b132: e8 61 e7 7c 00 call c17f9898 <_spin_unlock_irqrestore> c102b137: 8b 4d f0 mov -0x10(%ebp),%ecx c102b13a: 65 33 0d 14 00 00 00 xor %gs:0x14,%ecx c102b141: 89 f0 mov %esi,%eax c102b143: 74 05 je c102b14a <try_to_wake_up+0x16c> c102b145: e8 59 3f 00 00 call c102f0a3 <__stack_chk_fail> c102b14a: 83 c4 18 add $0x18,%esp c102b14d: 5b pop %ebx c102b14e: 5e pop %esi c102b14f: 5f pop %edi c102b150: c9 leave c102b151: c3 ret we crash straight after the call to update_rq_clock: c102b008: e8 8e f5 ff ff call c102a59b <update_rq_clock> c102b00d: 8b 07 mov (%edi),%eax EDI got zero: [ 0.035994] EAX: e7775505 EBX: 0000000f ECX: 00000000 EDX: 00000000 [ 0.035994] ESI: 00000000 EDI: 00000000 EBP: f7051f20 ESP: f7051efc update_rq_clock() looks like this: c102a59b <update_rq_clock>: c102a59b: 55 push %ebp c102a59c: 89 e5 mov %esp,%ebp c102a59e: 53 push %ebx c102a59f: 89 c3 mov %eax,%ebx c102a5a1: 83 ec 04 sub $0x4,%esp c102a5a4: 65 a1 14 00 00 00 mov %gs:0x14,%eax c102a5aa: 89 45 f8 mov %eax,-0x8(%ebp) c102a5ad: 31 c0 xor %eax,%eax c102a5af: e8 25 03 02 00 call c104a8d9 <sched_clock_cpu> c102a5b4: 89 83 44 04 00 00 mov %eax,0x444(%ebx) c102a5ba: 8b 45 f8 mov -0x8(%ebp),%eax c102a5bd: 65 33 05 14 00 00 00 xor %gs:0x14,%eax c102a5c4: 89 93 48 04 00 00 mov %edx,0x448(%ebx) c102a5ca: 74 05 je c102a5d1 <update_rq_clock+0x36> c102a5cc: e8 d2 4a 00 00 call c102f0a3 <__stack_chk_fail> c102a5d1: 58 pop %eax c102a5d2: 5b pop %ebx c102a5d3: c9 leave c102a5d4: c3 ret and sched_clock_cpu() looks like this: c104a8d9 <sched_clock_cpu>: c104a8d9: 55 push %ebp c104a8da: 89 e5 mov %esp,%ebp c104a8dc: 57 push %edi c104a8dd: 56 push %esi c104a8de: 89 c6 mov %eax,%esi c104a8e0: 53 push %ebx c104a8e1: 83 ec 24 sub $0x24,%esp c104a8e4: 65 a1 14 00 00 00 mov %gs:0x14,%eax c104a8ea: 89 45 f0 mov %eax,-0x10(%ebp) c104a8ed: 31 c0 xor %eax,%eax c104a8ef: 83 3d f8 da d2 c1 00 cmpl $0x0,0xc1d2daf8 c104a8f6: 74 0e je c104a906 <sched_clock_cpu+0x2d> c104a8f8: e8 5a c4 fb ff call c1006d57 <sched_clock> c104a8fd: 89 c1 mov %eax,%ecx c104a8ff: 89 d3 mov %edx,%ebx c104a901: e9 19 02 00 00 jmp c104ab1f <sched_clock_cpu+0x246> c104a906: 89 e0 mov %esp,%eax c104a908: 25 00 e0 ff ff and $0xffffe000,%eax c104a90d: f6 40 17 04 testb $0x4,0x17(%eax) c104a911: 74 11 je c104a924 <sched_clock_cpu+0x4b> c104a913: 8b 0d c0 a9 b8 c1 mov 0xc1b8a9c0,%ecx c104a919: 8b 1d c4 a9 b8 c1 mov 0xc1b8a9c4,%ebx c104a91f: e9 fb 01 00 00 jmp c104ab1f <sched_clock_cpu+0x246> c104a924: 31 c9 xor %ecx,%ecx c104a926: 31 db xor %ebx,%ebx c104a928: 83 3d f4 da d2 c1 00 cmpl $0x0,0xc1d2daf4 c104a92f: 0f 84 ea 01 00 00 je c104ab1f <sched_clock_cpu+0x246> c104a935: ff 15 10 73 b8 c1 call *0xc1b87310 c104a93b: f6 c4 02 test $0x2,%ah c104a93e: 74 13 je c104a953 <sched_clock_cpu+0x7a> c104a940: 83 3d c0 1e eb c1 00 cmpl $0x0,0xc1eb1ec0 c104a947: 75 0a jne c104a953 <sched_clock_cpu+0x7a> c104a949: c7 05 c0 1e eb c1 01 movl $0x1,0xc1eb1ec0 c104a950: 00 00 00 c104a953: e8 ff c3 fb ff call c1006d57 <sched_clock> c104a958: 85 f6 test %esi,%esi c104a95a: 0f 84 e7 00 00 00 je c104aa47 <sched_clock_cpu+0x16e> c104a960: 2b 05 b0 a9 b8 c1 sub 0xc1b8a9b0,%eax c104a966: c7 05 ac a9 b8 c1 00 movl $0x0,0xc1b8a9ac c104a96d: 00 00 00 c104a970: 1b 15 b4 a9 b8 c1 sbb 0xc1b8a9b4,%edx c104a976: c7 05 ac a9 b8 c1 00 movl $0x0,0xc1b8a9ac c104a97d: 00 00 00 c104a980: 8b 35 b8 a9 b8 c1 mov 0xc1b8a9b8,%esi c104a986: 8b 3d bc a9 b8 c1 mov 0xc1b8a9bc,%edi c104a98c: 85 d2 test %edx,%edx c104a98e: 79 04 jns c104a994 <sched_clock_cpu+0xbb> c104a990: 31 c0 xor %eax,%eax c104a992: 31 d2 xor %edx,%edx c104a994: 89 c1 mov %eax,%ecx c104a996: a1 c0 a9 b8 c1 mov 0xc1b8a9c0,%eax c104a99b: 89 d3 mov %edx,%ebx c104a99d: 8b 15 c4 a9 b8 c1 mov 0xc1b8a9c4,%edx c104a9a3: 01 f1 add %esi,%ecx c104a9a5: 89 45 d0 mov %eax,-0x30(%ebp) c104a9a8: 89 f0 mov %esi,%eax c104a9aa: 89 55 d4 mov %edx,-0x2c(%ebp) c104a9ad: 11 fb adc %edi,%ebx c104a9af: 89 fa mov %edi,%edx c104a9b1: 2b 45 d0 sub -0x30(%ebp),%eax c104a9b4: 1b 55 d4 sbb -0x2c(%ebp),%edx c104a9b7: 83 fa 00 cmp $0x0,%edx c104a9ba: 7f 15 jg c104a9d1 <sched_clock_cpu+0xf8> c104a9bc: 7c 05 jl c104a9c3 <sched_clock_cpu+0xea> c104a9be: 83 f8 00 cmp $0x0,%eax c104a9c1: 77 0e ja c104a9d1 <sched_clock_cpu+0xf8> c104a9c3: 8b 45 d0 mov -0x30(%ebp),%eax c104a9c6: 8b 55 d4 mov -0x2c(%ebp),%edx c104a9c9: 89 45 d8 mov %eax,-0x28(%ebp) c104a9cc: 89 55 dc mov %edx,-0x24(%ebp) c104a9cf: eb 06 jmp c104a9d7 <sched_clock_cpu+0xfe> c104a9d1: 89 75 d8 mov %esi,-0x28(%ebp) c104a9d4: 89 7d dc mov %edi,-0x24(%ebp) c104a9d7: 8b 45 d0 mov -0x30(%ebp),%eax c104a9da: 81 c6 a8 41 0f 00 add $0xf41a8,%esi c104a9e0: 8b 55 d4 mov -0x2c(%ebp),%edx c104a9e3: 83 d7 00 adc $0x0,%edi c104a9e6: 29 f0 sub %esi,%eax c104a9e8: 19 fa sbb %edi,%edx c104a9ea: 83 fa 00 cmp $0x0,%edx c104a9ed: 7f 0d jg c104a9fc <sched_clock_cpu+0x123> c104a9ef: 7c 05 jl c104a9f6 <sched_clock_cpu+0x11d> c104a9f1: 83 f8 00 cmp $0x0,%eax c104a9f4: 77 06 ja c104a9fc <sched_clock_cpu+0x123> c104a9f6: 89 75 d0 mov %esi,-0x30(%ebp) c104a9f9: 89 7d d4 mov %edi,-0x2c(%ebp) c104a9fc: 89 c8 mov %ecx,%eax c104a9fe: 89 da mov %ebx,%edx c104aa00: 2b 45 d8 sub -0x28(%ebp),%eax c104aa03: 1b 55 dc sbb -0x24(%ebp),%edx c104aa06: 83 fa 00 cmp $0x0,%edx c104aa09: 7f 0d jg c104aa18 <sched_clock_cpu+0x13f> c104aa0b: 7c 05 jl c104aa12 <sched_clock_cpu+0x139> c104aa0d: 83 f8 00 cmp $0x0,%eax c104aa10: 77 06 ja c104aa18 <sched_clock_cpu+0x13f> c104aa12: 8b 4d d8 mov -0x28(%ebp),%ecx c104aa15: 8b 5d dc mov -0x24(%ebp),%ebx c104aa18: 89 c8 mov %ecx,%eax c104aa1a: 89 da mov %ebx,%edx c104aa1c: 2b 45 d0 sub -0x30(%ebp),%eax c104aa1f: 1b 55 d4 sbb -0x2c(%ebp),%edx c104aa22: 85 d2 test %edx,%edx c104aa24: 78 06 js c104aa2c <sched_clock_cpu+0x153> c104aa26: 8b 4d d0 mov -0x30(%ebp),%ecx c104aa29: 8b 5d d4 mov -0x2c(%ebp),%ebx c104aa2c: 89 0d c0 a9 b8 c1 mov %ecx,0xc1b8a9c0 c104aa32: 89 1d c4 a9 b8 c1 mov %ebx,0xc1b8a9c4 c104aa38: c7 05 ac a9 b8 c1 01 movl $0x1,0xc1b8a9ac c104aa3f: 00 00 00 c104aa42: e9 ce 00 00 00 jmp c104ab15 <sched_clock_cpu+0x23c> c104aa47: 2b 05 b0 a9 b8 c1 sub 0xc1b8a9b0,%eax c104aa4d: c7 05 ac a9 b8 c1 00 movl $0x0,0xc1b8a9ac c104aa54: 00 00 00 c104aa57: 1b 15 b4 a9 b8 c1 sbb 0xc1b8a9b4,%edx c104aa5d: 8b 35 b8 a9 b8 c1 mov 0xc1b8a9b8,%esi c104aa63: 8b 3d bc a9 b8 c1 mov 0xc1b8a9bc,%edi c104aa69: 85 d2 test %edx,%edx c104aa6b: 79 04 jns c104aa71 <sched_clock_cpu+0x198> c104aa6d: 31 c0 xor %eax,%eax c104aa6f: 31 d2 xor %edx,%edx c104aa71: 89 c1 mov %eax,%ecx c104aa73: a1 c0 a9 b8 c1 mov 0xc1b8a9c0,%eax c104aa78: 89 d3 mov %edx,%ebx c104aa7a: 8b 15 c4 a9 b8 c1 mov 0xc1b8a9c4,%edx c104aa80: 01 f1 add %esi,%ecx c104aa82: 89 45 e0 mov %eax,-0x20(%ebp) c104aa85: 89 f0 mov %esi,%eax c104aa87: 89 55 e4 mov %edx,-0x1c(%ebp) c104aa8a: 11 fb adc %edi,%ebx c104aa8c: 89 fa mov %edi,%edx c104aa8e: 2b 45 e0 sub -0x20(%ebp),%eax c104aa91: 1b 55 e4 sbb -0x1c(%ebp),%edx c104aa94: 83 fa 00 cmp $0x0,%edx c104aa97: 7f 15 jg c104aaae <sched_clock_cpu+0x1d5> c104aa99: 7c 05 jl c104aaa0 <sched_clock_cpu+0x1c7> c104aa9b: 83 f8 00 cmp $0x0,%eax c104aa9e: 77 0e ja c104aaae <sched_clock_cpu+0x1d5> c104aaa0: 8b 45 e0 mov -0x20(%ebp),%eax c104aaa3: 8b 55 e4 mov -0x1c(%ebp),%edx c104aaa6: 89 45 e8 mov %eax,-0x18(%ebp) c104aaa9: 89 55 ec mov %edx,-0x14(%ebp) c104aaac: eb 06 jmp c104aab4 <sched_clock_cpu+0x1db> c104aaae: 89 75 e8 mov %esi,-0x18(%ebp) c104aab1: 89 7d ec mov %edi,-0x14(%ebp) c104aab4: 8b 45 e0 mov -0x20(%ebp),%eax c104aab7: 81 c6 a8 41 0f 00 add $0xf41a8,%esi c104aabd: 8b 55 e4 mov -0x1c(%ebp),%edx c104aac0: 83 d7 00 adc $0x0,%edi c104aac3: 29 f0 sub %esi,%eax c104aac5: 19 fa sbb %edi,%edx c104aac7: 83 fa 00 cmp $0x0,%edx c104aaca: 7f 0d jg c104aad9 <sched_clock_cpu+0x200> c104aacc: 7c 05 jl c104aad3 <sched_clock_cpu+0x1fa> c104aace: 83 f8 00 cmp $0x0,%eax c104aad1: 77 06 ja c104aad9 <sched_clock_cpu+0x200> c104aad3: 89 75 e0 mov %esi,-0x20(%ebp) c104aad6: 89 7d e4 mov %edi,-0x1c(%ebp) c104aad9: 89 c8 mov %ecx,%eax c104aadb: 89 da mov %ebx,%edx c104aadd: 2b 45 e8 sub -0x18(%ebp),%eax c104aae0: 1b 55 ec sbb -0x14(%ebp),%edx c104aae3: 83 fa 00 cmp $0x0,%edx c104aae6: 7f 0d jg c104aaf5 <sched_clock_cpu+0x21c> c104aae8: 7c 05 jl c104aaef <sched_clock_cpu+0x216> c104aaea: 83 f8 00 cmp $0x0,%eax c104aaed: 77 06 ja c104aaf5 <sched_clock_cpu+0x21c> c104aaef: 8b 4d e8 mov -0x18(%ebp),%ecx c104aaf2: 8b 5d ec mov -0x14(%ebp),%ebx c104aaf5: 89 c8 mov %ecx,%eax c104aaf7: 89 da mov %ebx,%edx c104aaf9: 2b 45 e0 sub -0x20(%ebp),%eax c104aafc: 1b 55 e4 sbb -0x1c(%ebp),%edx c104aaff: 85 d2 test %edx,%edx c104ab01: 78 06 js c104ab09 <sched_clock_cpu+0x230> c104ab03: 8b 4d e0 mov -0x20(%ebp),%ecx c104ab06: 8b 5d e4 mov -0x1c(%ebp),%ebx c104ab09: 89 0d c0 a9 b8 c1 mov %ecx,0xc1b8a9c0 c104ab0f: 89 1d c4 a9 b8 c1 mov %ebx,0xc1b8a9c4 c104ab15: c7 05 ac a9 b8 c1 01 movl $0x1,0xc1b8a9ac c104ab1c: 00 00 00 c104ab1f: 89 c8 mov %ecx,%eax c104ab21: 89 da mov %ebx,%edx c104ab23: 8b 4d f0 mov -0x10(%ebp),%ecx c104ab26: 65 33 0d 14 00 00 00 xor %gs:0x14,%ecx c104ab2d: 74 05 je c104ab34 <sched_clock_cpu+0x25b> c104ab2f: e8 6f 45 fe ff call c102f0a3 <__stack_chk_fail> c104ab34: 83 c4 24 add $0x24,%esp c104ab37: 5b pop %ebx c104ab38: 5e pop %esi c104ab39: 5f pop %edi c104ab3a: c9 leave c104ab3b: c3 ret and ... to make things murkier, we also have: CONFIG_PARAVIRT_GUEST=y CONFIG_PARAVIRT=y CONFIG_PARAVIRT_CLOCK=y CONFIG_PARAVIRT_DEBUG=y SMP is disabled though. Based on the disassembly i see no pathway for EDI to become corrupted, so the theory of stack-protector somehow corrupting it can be excluded in the first round of analysis. Looking further up in the call chain and the assembly, in this UP build, try_to_wake() up could be called with NULL (%eax == 0) and survive up to this point of crash. The caller was wake_up_process() c102b1c7, which just passed through %eax from the call-site which is kthread_create(): c1045384: a1 00 1e eb c1 mov 0xc1eb1e00,%eax c1045389: e8 1e 5e fe ff call c102b1ac <wake_up_process> c104538e: 8d 45 bc lea -0x44(%ebp),%eax so the question is, what value is within 0xc1eb1e00 at the point of crash? It's the following variable: c1eb1e00 B kthreadd_task I've hacked the die handler to print out kthreadd_task, and it gives: [ 0.033994] kthreadd_task: (null) so we've got a NULL there. In fact i dont see any proper serialization here: there appears to be a race between the initial task and the init task (which are not one and the same). The race is possibly timing dependent as well, hence the (in hindsight, false) dependency on the stackprotector commit. The fix below solves the problem. I think the bug was introduced via: cdd140b: kthreads: simplify the startup synchronization and i've put a -stable backport tag on it as well, as it could trigger anywhere. Ingo ---------------------> >From 43446f77df71e2a316087252485ad7db604fd4b6 Mon Sep 17 00:00:00 2001 From: Ingo Molnar <mingo@elte.hu> Date: Tue, 1 Sep 2009 13:36:34 +0200 Subject: [PATCH] kthreads: Fix startup synchronization boot crash -tip testing found this bootup crash: [ 0.025010] Checking 'hlt' instruction... OK. [ 0.032017] calling spawn_ksoftirqd+0x0/0x48 @ 1 [ 0.033024] BUG: unable to handle kernel NULL pointer dereference at (null) [ 0.033994] IP: [<c102b00d>] try_to_wake_up+0x2f/0x174 [ 0.033994] *pde = 00000000 [ 0.033994] Oops: 0000 [#1] DEBUG_PAGEALLOC [ 0.033994] last sysfs file: [ 0.033994] Modules linked in: [ 0.033994] [ 0.033994] Pid: 1, comm: swapper Not tainted (2.6.31-rc6-00024-g23386d6-dirty #9074) [ 0.033994] EIP: 0060:[<c102b00d>] EFLAGS: 00010046 CPU: 0 [ 0.033994] EIP is at try_to_wake_up+0x2f/0x174 [ 0.033994] EAX: 0935b29c EBX: 0000000f ECX: 00000000 EDX: 00000000 [ 0.033994] ESI: 00000000 EDI: 00000000 EBP: f7051edc ESP: f7051eb8 [ 0.033994] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068 [ 0.033994] Process swapper (pid: 1, ti=f7050000 task=f7048000 task.ti=f7050000) [ 0.033994] Stack: [ 0.033994] 00000246 c1045384 00000000 c1b8800c 00000246 0935b29c c1a3b088 00000000 [ 0.033994] <0> 00000000 f7051ee8 c102b1c7 0935b29c f7051f40 c104538e c1034aed 00000000 [ 0.033994] <0> c1a30e5f 00000000 00000001 dead4ead ffffffff ffffffff c1eb1e04 00000000 [ 0.033994] Call Trace: [ 0.033994] [<c1045384>] ? kthread_create+0x63/0xdb [ 0.033994] [<c102b1c7>] ? wake_up_process+0x1b/0x2e [ 0.033994] [<c104538e>] ? kthread_create+0x6d/0xdb [ 0.033994] [<c1034aed>] ? ksoftirqd+0x0/0xb8 [ 0.033994] [<c1048dc8>] ? ktime_get_ts+0x4e/0x64 [ 0.033994] [<c1d7446b>] ? cpu_callback+0x3e/0x94 [ 0.033994] [<c1034aed>] ? ksoftirqd+0x0/0xb8 [ 0.033994] [<c1d41f3c>] ? spawn_ksoftirqd+0x22/0x48 [ 0.033994] [<c100113c>] ? _stext+0x54/0x135 [ 0.033994] [<c1d41f1a>] ? spawn_ksoftirqd+0x0/0x48 [ 0.033994] [<c1002e75>] ? restore_all_notrace+0x0/0x18 [ 0.033994] [<c1055ce9>] ? trace_hardirqs_on_caller+0xb9/0xf2 [ 0.033994] [<c13294ec>] ? trace_hardirqs_on_thunk+0xc/0x10 [ 0.033994] [<c1002e75>] ? restore_all_notrace+0x0/0x18 [ 0.033994] [<c1d302ab>] ? kernel_init+0x0/0xec [ 0.033994] [<c1d302ed>] ? kernel_init+0x42/0xec [ 0.033994] [<c1d302ab>] ? kernel_init+0x0/0xec [ 0.033994] [<c10037a7>] ? kernel_thread_helper+0x7/0x58 Which is caused by kthreadd_task being NULL. The modification of that variable is protected by the BKL, but the _ordering_ of the initial task (which becomes the idle thread of CPU0) and the init task (which is spawned by the initial task) is not synchronized. So we can occasionally end up init running sooner than rest_init(), and the ksoftirqd creation failing in kthread_create() due to the NULL kthreadd_task value. Add a completion to serialize this - made dependent on the kthreadd_task pointer value. (which will serialize fine right now as both are accessed via the BKL.) (I think this code could be cleaned up further to have less open-coded serialization, the fix here is the minimal change to fix the regression.) I think a side-effect of this recent commit might have opened that race: cdd140b: kthreads: simplify the startup synchronization But it needs certain timing sequences to trigger. c: Oleg Nesterov <oleg@redhat.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: <stable@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> --- include/linux/kthread.h | 1 + init/main.c | 2 ++ kernel/kthread.c | 5 +++++ 3 files changed, 8 insertions(+), 0 deletions(-) diff --git a/include/linux/kthread.h b/include/linux/kthread.h index aabc8a1..1ca19fa 100644 --- a/include/linux/kthread.h +++ b/include/linux/kthread.h @@ -33,5 +33,6 @@ int kthread_should_stop(void); int kthreadd(void *unused); extern struct task_struct *kthreadd_task; +extern struct completion kthreadd_task_init_done; #endif /* _LINUX_KTHREAD_H */ diff --git a/init/main.c b/init/main.c index 11f4f14..6c1b10b 100644 --- a/init/main.c +++ b/init/main.c @@ -455,6 +455,8 @@ static noinline void __init_refok rest_init(void) numa_default_policy(); pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); + complete(&kthreadd_task_init_done); + unlock_kernel(); /* diff --git a/kernel/kthread.c b/kernel/kthread.c index eb8751a..6ec4643 100644 --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -20,7 +20,9 @@ static DEFINE_SPINLOCK(kthread_create_lock); static LIST_HEAD(kthread_create_list); + struct task_struct *kthreadd_task; +DECLARE_COMPLETION(kthreadd_task_init_done); struct kthread_create_info { @@ -129,6 +131,9 @@ struct task_struct *kthread_create(int (*threadfn)(void *data), list_add_tail(&create.list, &kthread_create_list); spin_unlock(&kthread_create_lock); + if (unlikely(!kthreadd_task)) + wait_for_completion(&kthreadd_task_init_done); + wake_up_process(kthreadd_task); wait_for_completion(&create.done); ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH] kthreads: Fix startup synchronization boot crash 2009-09-01 11:39 ` [PATCH] kthreads: Fix startup synchronization boot crash Ingo Molnar @ 2009-09-01 13:04 ` Oleg Nesterov 2009-09-01 13:14 ` Ingo Molnar 0 siblings, 1 reply; 30+ messages in thread From: Oleg Nesterov @ 2009-09-01 13:04 UTC (permalink / raw) To: Ingo Molnar Cc: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits On 09/01, Ingo Molnar wrote: > > In fact i dont see any proper serialization here: there appears to > be a race between the initial task and the init task (which are not > one and the same). The race is possibly timing dependent as well, > hence the (in hindsight, false) dependency on the stackprotector > commit. Yes, this looks racy, and I think this was always racy. > I think the bug was introduced > via: > > cdd140b: kthreads: simplify the startup synchronization Cough ;) No, I don't think this patch introduced this bug. With or without this patch, kthread_create() assumes kthreadd_task != NULL, otherwise wake_up_process(kthreadd_task) is obviously can crash. > static DEFINE_SPINLOCK(kthread_create_lock); > static LIST_HEAD(kthread_create_list); > + > struct task_struct *kthreadd_task; > +DECLARE_COMPLETION(kthreadd_task_init_done); > > struct kthread_create_info > { > @@ -129,6 +131,9 @@ struct task_struct *kthread_create(int (*threadfn)(void *data), > list_add_tail(&create.list, &kthread_create_list); > spin_unlock(&kthread_create_lock); > > + if (unlikely(!kthreadd_task)) > + wait_for_completion(&kthreadd_task_init_done); > + Yes, this should work. But I _think_ we can make the better fix... I'll try to make the patch soon. Afaics we don't need kthreadd_task_init_done. Oleg. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] kthreads: Fix startup synchronization boot crash 2009-09-01 13:04 ` Oleg Nesterov @ 2009-09-01 13:14 ` Ingo Molnar 2009-09-01 13:37 ` Oleg Nesterov 0 siblings, 1 reply; 30+ messages in thread From: Ingo Molnar @ 2009-09-01 13:14 UTC (permalink / raw) To: Oleg Nesterov Cc: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits * Oleg Nesterov <oleg@redhat.com> wrote: > On 09/01, Ingo Molnar wrote: > > > > In fact i dont see any proper serialization here: there appears to > > be a race between the initial task and the init task (which are not > > one and the same). The race is possibly timing dependent as well, > > hence the (in hindsight, false) dependency on the stackprotector > > commit. > > Yes, this looks racy, and I think this was always racy. > > > I think the bug was introduced > > via: > > > > cdd140b: kthreads: simplify the startup synchronization > > Cough ;) No, I don't think this patch introduced this bug. With or > without this patch, kthread_create() assumes kthreadd_task != > NULL, otherwise wake_up_process(kthreadd_task) is obviously can > crash. yeah - was just a guess. > > static DEFINE_SPINLOCK(kthread_create_lock); > > static LIST_HEAD(kthread_create_list); > > + > > struct task_struct *kthreadd_task; > > +DECLARE_COMPLETION(kthreadd_task_init_done); > > > > struct kthread_create_info > > { > > @@ -129,6 +131,9 @@ struct task_struct *kthread_create(int (*threadfn)(void *data), > > list_add_tail(&create.list, &kthread_create_list); > > spin_unlock(&kthread_create_lock); > > > > + if (unlikely(!kthreadd_task)) > > + wait_for_completion(&kthreadd_task_init_done); > > + > > Yes, this should work. But I _think_ we can make the better fix... > > I'll try to make the patch soon. Afaics we don't need > kthreadd_task_init_done. ok. Ingo ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] kthreads: Fix startup synchronization boot crash 2009-09-01 13:14 ` Ingo Molnar @ 2009-09-01 13:37 ` Oleg Nesterov 2009-09-01 13:59 ` Ingo Molnar 2009-09-01 15:08 ` [PATCH] kthreads: Fix startup synchronization boot crash Américo Wang 0 siblings, 2 replies; 30+ messages in thread From: Oleg Nesterov @ 2009-09-01 13:37 UTC (permalink / raw) To: Ingo Molnar Cc: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits On 09/01, Ingo Molnar wrote: > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > Yes, this should work. But I _think_ we can make the better fix... > > > > I'll try to make the patch soon. Afaics we don't need > > kthreadd_task_init_done. > > ok. Just in case, the patch is ready. I need to re-check my thinking and test it somehow... - remove kthreadd_task initialization from rest_init() - change kthreadd() to initialize kthreadd_task = current - change the main loop in kthreadd() to take kthread_create_lock before the first schedule() (just shift schedule() down) This way, if kthreadd_task needs the wakeup, kthread_create() must see kthreadd_task != NULL after unlock(kthread_create_lock). If kthread_create() sees kthreadd_task == NULL we can just sleep on create.done, kthreadd() must notice the new request before it calls schedule(). Note that with this change it is possible to use kthread_create() at any time, but the caller will sleep until rest_init() creates kthreadd. Oleg. init/main.c | 5 +---- kernel/kthread.c | 30 ++++++++++++++++++------------ 2 files changed, 19 insertions(+), 16 deletions(-) --- a/init/main.c +++ b/init/main.c @@ -449,12 +449,9 @@ static void __init setup_command_line(ch static noinline void __init_refok rest_init(void) __releases(kernel_lock) { - int pid; - kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); numa_default_policy(); - pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); - kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); + kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); unlock_kernel(); /* --- a/kernel/kthread.c +++ b/kernel/kthread.c @@ -128,8 +128,14 @@ struct task_struct *kthread_create(int ( spin_lock(&kthread_create_lock); list_add_tail(&create.list, &kthread_create_list); spin_unlock(&kthread_create_lock); - - wake_up_process(kthreadd_task); + /* + * If kthreadd was not created yet, kthreadd() must see the result + * of list_add_tail() later, it takes kthread_create_lock before the + * first schedule(). If kthreadd() locked kthread_create_lock at + * least once, we must see kthreadd_task != NULL. + */ + if (likely(kthreadd_task)) + wake_up_process(kthreadd_task); wait_for_completion(&create.done); if (!IS_ERR(create.result)) { @@ -216,23 +222,18 @@ EXPORT_SYMBOL(kthread_stop); int kthreadd(void *unused) { - struct task_struct *tsk = current; + kthreadd_task = current; /* Setup a clean context for our children to inherit. */ - set_task_comm(tsk, "kthreadd"); - ignore_signals(tsk); - set_user_nice(tsk, KTHREAD_NICE_LEVEL); - set_cpus_allowed_ptr(tsk, cpu_all_mask); + set_task_comm(kthreadd_task, "kthreadd"); + ignore_signals(kthreadd_task); + set_user_nice(kthreadd_task, KTHREAD_NICE_LEVEL); + set_cpus_allowed_ptr(kthreadd_task, cpu_all_mask); set_mems_allowed(node_possible_map); current->flags |= PF_NOFREEZE | PF_FREEZER_NOSIG; for (;;) { - set_current_state(TASK_INTERRUPTIBLE); - if (list_empty(&kthread_create_list)) - schedule(); - __set_current_state(TASK_RUNNING); - spin_lock(&kthread_create_lock); while (!list_empty(&kthread_create_list)) { struct kthread_create_info *create; @@ -247,6 +248,11 @@ int kthreadd(void *unused) spin_lock(&kthread_create_lock); } spin_unlock(&kthread_create_lock); + + set_current_state(TASK_INTERRUPTIBLE); + if (list_empty(&kthread_create_list)) + schedule(); + __set_current_state(TASK_RUNNING); } return 0; ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] kthreads: Fix startup synchronization boot crash 2009-09-01 13:37 ` Oleg Nesterov @ 2009-09-01 13:59 ` Ingo Molnar 2009-09-01 14:55 ` Oleg Nesterov 2009-09-01 15:08 ` [PATCH] kthreads: Fix startup synchronization boot crash Américo Wang 1 sibling, 1 reply; 30+ messages in thread From: Ingo Molnar @ 2009-09-01 13:59 UTC (permalink / raw) To: Oleg Nesterov Cc: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits * Oleg Nesterov <oleg@redhat.com> wrote: > On 09/01, Ingo Molnar wrote: > > > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > > > Yes, this should work. But I _think_ we can make the better fix... > > > > > > I'll try to make the patch soon. Afaics we don't need > > > kthreadd_task_init_done. > > > > ok. > > Just in case, the patch is ready. [...] yes - that's roughly the cleanup i referred to in the commit log. way too late for -rc8 though - the minimal fix i did _might_ be eligible. agreed? Ingo ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] kthreads: Fix startup synchronization boot crash 2009-09-01 13:59 ` Ingo Molnar @ 2009-09-01 14:55 ` Oleg Nesterov 2009-09-01 15:54 ` Ingo Molnar 2009-09-01 16:52 ` [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done Oleg Nesterov 0 siblings, 2 replies; 30+ messages in thread From: Oleg Nesterov @ 2009-09-01 14:55 UTC (permalink / raw) To: Ingo Molnar Cc: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits On 09/01, Ingo Molnar wrote: > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > On 09/01, Ingo Molnar wrote: > > > > > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > > > > > Yes, this should work. But I _think_ we can make the better fix... > > > > > > > > I'll try to make the patch soon. Afaics we don't need > > > > kthreadd_task_init_done. > > > > > > ok. > > > > Just in case, the patch is ready. [...] > > yes - that's roughly the cleanup i referred to in the commit log. > > way too late for -rc8 though - the minimal fix i did _might_ be > eligible. > > agreed? Agreed. Then I will sent the patch on top of this change. But. May be your minimal patch needs a small tweak ? rest_init()->complete(&kthreadd_task_init_done) assumes that exactly _one_ caller of kthread_create() can race with kernel_thread(kthreadd). Perhap we need complete_all() ? But I must admit, now I don't understand what happens, The modification of that variable is protected by the BKL, but the _ordering_ of the initial task (which becomes the idle thread of CPU0) and the init task (which is spawned by the initial task) is not synchronized. So we can occasionally end up init running sooner than rest_init() How? rest_init() can't be preempted and it holds BKL. And kernel_init() takes BKL before anything else. Confused... Oleg. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] kthreads: Fix startup synchronization boot crash 2009-09-01 14:55 ` Oleg Nesterov @ 2009-09-01 15:54 ` Ingo Molnar 2009-09-01 16:00 ` Oleg Nesterov 2009-09-01 16:52 ` [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done Oleg Nesterov 1 sibling, 1 reply; 30+ messages in thread From: Ingo Molnar @ 2009-09-01 15:54 UTC (permalink / raw) To: Oleg Nesterov Cc: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits * Oleg Nesterov <oleg@redhat.com> wrote: > On 09/01, Ingo Molnar wrote: > > > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > > > On 09/01, Ingo Molnar wrote: > > > > > > > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > > > > > > > Yes, this should work. But I _think_ we can make the better fix... > > > > > > > > > > I'll try to make the patch soon. Afaics we don't need > > > > > kthreadd_task_init_done. > > > > > > > > ok. > > > > > > Just in case, the patch is ready. [...] > > > > yes - that's roughly the cleanup i referred to in the commit log. > > > > way too late for -rc8 though - the minimal fix i did _might_ be > > eligible. > > > > agreed? > > Agreed. Then I will sent the patch on top of this change. > > But. May be your minimal patch needs a small tweak ? > > rest_init()->complete(&kthreadd_task_init_done) assumes that exactly > _one_ caller of kthread_create() can race with kernel_thread(kthreadd). > Perhap we need complete_all() ? > > > But I must admit, now I don't understand what happens, > > The modification of that variable is protected by the BKL, but > the _ordering_ of the initial task (which becomes the idle > thread of CPU0) and the init task (which is spawned by the > initial task) is not synchronized. > > So we can occasionally end up init running sooner than > rest_init() > > How? rest_init() can't be preempted and it holds BKL. And > kernel_init() takes BKL before anything else. Confused... it cannot be preempted but it can schedule anywhere - and the BKL will be dropped silently. This is one of the biggest dangers of the BKL - rescheduling _somewhere_ in a huge codepath might change timings and 'breaks up the critical path' - breaking ancient assumptions. Ingo ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] kthreads: Fix startup synchronization boot crash 2009-09-01 15:54 ` Ingo Molnar @ 2009-09-01 16:00 ` Oleg Nesterov 2009-09-02 13:06 ` Ingo Molnar 0 siblings, 1 reply; 30+ messages in thread From: Oleg Nesterov @ 2009-09-01 16:00 UTC (permalink / raw) To: Ingo Molnar Cc: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits On 09/01, Ingo Molnar wrote: > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > But I must admit, now I don't understand what happens, > > > > The modification of that variable is protected by the BKL, but > > the _ordering_ of the initial task (which becomes the idle > > thread of CPU0) and the init task (which is spawned by the > > initial task) is not synchronized. > > > > So we can occasionally end up init running sooner than > > rest_init() > > > > How? rest_init() can't be preempted and it holds BKL. And > > kernel_init() takes BKL before anything else. Confused... > > it cannot be preempted but it can schedule anywhere - and the BKL > will be dropped silently. > > This is one of the biggest dangers of the BKL Yes I see. But rest_init() runs under preempt_disable(). If it was rescheduled, schedule_debug() should complain. No? Oleg. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] kthreads: Fix startup synchronization boot crash 2009-09-01 16:00 ` Oleg Nesterov @ 2009-09-02 13:06 ` Ingo Molnar 0 siblings, 0 replies; 30+ messages in thread From: Ingo Molnar @ 2009-09-02 13:06 UTC (permalink / raw) To: Oleg Nesterov Cc: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits * Oleg Nesterov <oleg@redhat.com> wrote: > On 09/01, Ingo Molnar wrote: > > > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > > > But I must admit, now I don't understand what happens, > > > > > > The modification of that variable is protected by the BKL, but > > > the _ordering_ of the initial task (which becomes the idle > > > thread of CPU0) and the init task (which is spawned by the > > > initial task) is not synchronized. > > > > > > So we can occasionally end up init running sooner than > > > rest_init() > > > > > > How? rest_init() can't be preempted and it holds BKL. And > > > kernel_init() takes BKL before anything else. Confused... > > > > it cannot be preempted but it can schedule anywhere - and the BKL > > will be dropped silently. > > > > This is one of the biggest dangers of the BKL > > Yes I see. But rest_init() runs under preempt_disable(). If it was > rescheduled, schedule_debug() should complain. No? hm, either something is broken, or some other codepath learned to do preempt_enable() in early init ... [which i'd call broken too] Weird. Ingo ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-01 14:55 ` Oleg Nesterov 2009-09-01 15:54 ` Ingo Molnar @ 2009-09-01 16:52 ` Oleg Nesterov 2009-09-01 16:53 ` [PATCH 1/1] " Oleg Nesterov 2009-09-01 23:22 ` [PATCH 0/1] " Eric W. Biederman 1 sibling, 2 replies; 30+ messages in thread From: Oleg Nesterov @ 2009-09-01 16:52 UTC (permalink / raw) To: Ingo Molnar Cc: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits, Eric W. Biederman, Rusty Russell On 09/01, Oleg Nesterov wrote: > > On 09/01, Ingo Molnar wrote: > > > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > > > On 09/01, Ingo Molnar wrote: > > > > > > > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > > > > > > > Yes, this should work. But I _think_ we can make the better fix... > > > > > > > > > > I'll try to make the patch soon. Afaics we don't need > > > > > kthreadd_task_init_done. > > > > > > > > ok. > > > > > > Just in case, the patch is ready. [...] > > > > yes - that's roughly the cleanup i referred to in the commit log. > > > > way too late for -rc8 though - the minimal fix i did _might_ be > > eligible. > > > > agreed? > > Agreed. Then I will sent the patch on top of this change. OK, I am sending the patch on top of your fix. Not sure how to really test it, but at least the kernel works when I apply the debugging patch below on top. Oleg. --- WAIT/init/main.c~DBG 2009-09-01 15:49:36.000000000 +0200 +++ WAIT/init/main.c 2009-09-01 17:53:28.000000000 +0200 @@ -455,7 +455,6 @@ static noinline void __init_refok rest_i { kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); numa_default_policy(); - kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); unlock_kernel(); /* @@ -466,6 +465,12 @@ static noinline void __init_refok rest_i rcu_scheduler_starting(); preempt_enable_no_resched(); schedule(); + + printk(KERN_INFO "XXX rest_init - sleeeeep\n"); +// schedule_timeout_interruptible(HZ); + kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); + printk(KERN_INFO "XXX rest_init - kthreadd started\n"); + preempt_disable(); /* Call into cpu_idle with preempt disabled */ @@ -877,10 +882,18 @@ static noinline int init_post(void) panic("No init found. Try passing init= option to kernel."); } +int ktfunc(void *arg) +{ + printk(KERN_INFO "XXX ktfunc - alive!\n"); + return 0; +} + static int __init kernel_init(void * unused) { lock_kernel(); + printk(KERN_INFO "XXX kernel_init - call kthread_run, kthreadd=%p\n", kthreadd_task); + kthread_run(ktfunc, NULL, "xxx"); /* * init can allocate pages on any node */ ^ permalink raw reply [flat|nested] 30+ messages in thread
* [PATCH 1/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-01 16:52 ` [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done Oleg Nesterov @ 2009-09-01 16:53 ` Oleg Nesterov 2009-09-01 23:22 ` [PATCH 0/1] " Eric W. Biederman 1 sibling, 0 replies; 30+ messages in thread From: Oleg Nesterov @ 2009-09-01 16:53 UTC (permalink / raw) To: Ingo Molnar Cc: arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits, Eric W. Biederman, Rusty Russell Revert "[PATCH] kthreads: Fix startup synchronization boot crash", it was the minimal fix for stable. Then: - change kthread_create() to check kthreadd_task != NULL before wake_up_process(kthreadd_task) - remove kthreadd_task initialization from rest_init() - change kthreadd() to initialize kthreadd_task = current - change the main loop in kthreadd() to take kthread_create_lock before the first schedule() (just shift schedule() down) This way, if kthreadd_task needs the wakeup, kthread_create() must see kthreadd_task != NULL after unlock(kthread_create_lock). If kthread_create() sees kthreadd_task == NULL we can just sleep on .done, kthreadd() must notice the new request before it calls schedule(). IOW both checks, !kthreadd_task and list_empty(), are done after lock+unlock of the same lock. The 2nd task which takes the lock must see the changes which were done by the 1st task which locked this lock. Signed-off-by: Oleg Nesterov <oleg@redhat.com> --- include/linux/kthread.h | 1 - init/main.c | 7 +------ kernel/kthread.c | 35 ++++++++++++++++++----------------- 3 files changed, 19 insertions(+), 24 deletions(-) --- WAIT/include/linux/kthread.h~KT_KTHREADD_NULL_FIX 2009-09-01 18:25:50.000000000 +0200 +++ WAIT/include/linux/kthread.h 2009-09-01 18:31:39.000000000 +0200 @@ -33,6 +33,5 @@ int kthread_should_stop(void); int kthreadd(void *unused); extern struct task_struct *kthreadd_task; -extern struct completion kthreadd_task_init_done; #endif /* _LINUX_KTHREAD_H */ --- WAIT/init/main.c~KT_KTHREADD_NULL_FIX 2009-09-01 18:25:50.000000000 +0200 +++ WAIT/init/main.c 2009-09-01 18:32:05.000000000 +0200 @@ -453,14 +453,9 @@ static void __init setup_command_line(ch static noinline void __init_refok rest_init(void) __releases(kernel_lock) { - int pid; - kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); numa_default_policy(); - pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); - kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); - complete(&kthreadd_task_init_done); - + kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); unlock_kernel(); /* --- WAIT/kernel/kthread.c~KT_KTHREADD_NULL_FIX 2009-09-01 18:25:50.000000000 +0200 +++ WAIT/kernel/kthread.c 2009-09-01 18:32:05.000000000 +0200 @@ -20,9 +20,7 @@ static DEFINE_SPINLOCK(kthread_create_lock); static LIST_HEAD(kthread_create_list); - struct task_struct *kthreadd_task; -DECLARE_COMPLETION(kthreadd_task_init_done); struct kthread_create_info { @@ -130,11 +128,14 @@ struct task_struct *kthread_create(int ( spin_lock(&kthread_create_lock); list_add_tail(&create.list, &kthread_create_list); spin_unlock(&kthread_create_lock); - - if (unlikely(!kthreadd_task)) - wait_for_completion(&kthreadd_task_init_done); - - wake_up_process(kthreadd_task); + /* + * If kthreadd was not created yet, kthreadd() must see the result + * of list_add_tail() later, it takes kthread_create_lock before the + * first schedule(). If kthreadd() locked kthread_create_lock at + * least once, we must see kthreadd_task != NULL. + */ + if (likely(kthreadd_task)) + wake_up_process(kthreadd_task); wait_for_completion(&create.done); if (!IS_ERR(create.result)) { @@ -219,23 +220,18 @@ EXPORT_SYMBOL(kthread_stop); int kthreadd(void *unused) { - struct task_struct *tsk = current; + kthreadd_task = current; /* Setup a clean context for our children to inherit. */ - set_task_comm(tsk, "kthreadd"); - ignore_signals(tsk); - set_user_nice(tsk, KTHREAD_NICE_LEVEL); - set_cpus_allowed_ptr(tsk, cpu_all_mask); + set_task_comm(kthreadd_task, "kthreadd"); + ignore_signals(kthreadd_task); + set_user_nice(kthreadd_task, KTHREAD_NICE_LEVEL); + set_cpus_allowed_ptr(kthreadd_task, cpu_all_mask); set_mems_allowed(node_possible_map); current->flags |= PF_NOFREEZE | PF_FREEZER_NOSIG; for (;;) { - set_current_state(TASK_INTERRUPTIBLE); - if (list_empty(&kthread_create_list)) - schedule(); - __set_current_state(TASK_RUNNING); - spin_lock(&kthread_create_lock); while (!list_empty(&kthread_create_list)) { struct kthread_create_info *create; @@ -250,6 +246,11 @@ int kthreadd(void *unused) spin_lock(&kthread_create_lock); } spin_unlock(&kthread_create_lock); + + set_current_state(TASK_INTERRUPTIBLE); + if (list_empty(&kthread_create_list)) + schedule(); + __set_current_state(TASK_RUNNING); } return 0; ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-01 16:52 ` [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done Oleg Nesterov 2009-09-01 16:53 ` [PATCH 1/1] " Oleg Nesterov @ 2009-09-01 23:22 ` Eric W. Biederman 2009-09-02 9:13 ` Oleg Nesterov 1 sibling, 1 reply; 30+ messages in thread From: Eric W. Biederman @ 2009-09-01 23:22 UTC (permalink / raw) To: Oleg Nesterov Cc: Ingo Molnar, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits, Rusty Russell Oleg Nesterov <oleg@redhat.com> writes: > On 09/01, Oleg Nesterov wrote: >> >> On 09/01, Ingo Molnar wrote: >> > >> > * Oleg Nesterov <oleg@redhat.com> wrote: >> > >> > > On 09/01, Ingo Molnar wrote: >> > > > >> > > > * Oleg Nesterov <oleg@redhat.com> wrote: >> > > > >> > > > > Yes, this should work. But I _think_ we can make the better fix... >> > > > > >> > > > > I'll try to make the patch soon. Afaics we don't need >> > > > > kthreadd_task_init_done. >> > > > >> > > > ok. >> > > >> > > Just in case, the patch is ready. [...] >> > >> > yes - that's roughly the cleanup i referred to in the commit log. >> > >> > way too late for -rc8 though - the minimal fix i did _might_ be >> > eligible. >> > >> > agreed? >> >> Agreed. Then I will sent the patch on top of this change. > > OK, I am sending the patch on top of your fix. Not sure how to really > test it, but at least the kernel works when I apply the debugging patch > below on top. Stupid question. How is it that we wind up trying to start kernel threads before it is safe to do so? Races should be impossible because the scheduler isn't running until a few lines later. Eric ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-01 23:22 ` [PATCH 0/1] " Eric W. Biederman @ 2009-09-02 9:13 ` Oleg Nesterov 2009-09-04 7:37 ` Ingo Molnar 0 siblings, 1 reply; 30+ messages in thread From: Oleg Nesterov @ 2009-09-02 9:13 UTC (permalink / raw) To: Eric W. Biederman Cc: Ingo Molnar, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits, Rusty Russell On 09/01, Eric W. Biederman wrote: > > Oleg Nesterov <oleg@redhat.com> writes: > > > On 09/01, Oleg Nesterov wrote: > >> > >> On 09/01, Ingo Molnar wrote: > >> > > >> > * Oleg Nesterov <oleg@redhat.com> wrote: > >> > > >> > > On 09/01, Ingo Molnar wrote: > >> > > > > >> > > > * Oleg Nesterov <oleg@redhat.com> wrote: > >> > > > > >> > > > > Yes, this should work. But I _think_ we can make the better fix... > >> > > > > > >> > > > > I'll try to make the patch soon. Afaics we don't need > >> > > > > kthreadd_task_init_done. > >> > > > > >> > > > ok. > >> > > > >> > > Just in case, the patch is ready. [...] > >> > > >> > yes - that's roughly the cleanup i referred to in the commit log. > >> > > >> > way too late for -rc8 though - the minimal fix i did _might_ be > >> > eligible. > >> > > >> > agreed? > >> > >> Agreed. Then I will sent the patch on top of this change. > > > > OK, I am sending the patch on top of your fix. Not sure how to really > > test it, but at least the kernel works when I apply the debugging patch > > below on top. > > Stupid question. How is it that we wind up trying to start kernel threads > before it is safe to do so? > > Races should be impossible because the scheduler isn't running until a few > lines later. Yes, I am confused too. At first I thought I understand the race, now I don't. Please see the whole thread: http://marc.info/?t=125180592500005 Oleg. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-02 9:13 ` Oleg Nesterov @ 2009-09-04 7:37 ` Ingo Molnar 2009-09-18 16:32 ` Wu Fei 0 siblings, 1 reply; 30+ messages in thread From: Ingo Molnar @ 2009-09-04 7:37 UTC (permalink / raw) To: Oleg Nesterov Cc: Eric W. Biederman, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits, Rusty Russell * Oleg Nesterov <oleg@redhat.com> wrote: > On 09/01, Eric W. Biederman wrote: > > > > Oleg Nesterov <oleg@redhat.com> writes: > > > > > On 09/01, Oleg Nesterov wrote: > > >> > > >> On 09/01, Ingo Molnar wrote: > > >> > > > >> > * Oleg Nesterov <oleg@redhat.com> wrote: > > >> > > > >> > > On 09/01, Ingo Molnar wrote: > > >> > > > > > >> > > > * Oleg Nesterov <oleg@redhat.com> wrote: > > >> > > > > > >> > > > > Yes, this should work. But I _think_ we can make the better fix... > > >> > > > > > > >> > > > > I'll try to make the patch soon. Afaics we don't need > > >> > > > > kthreadd_task_init_done. > > >> > > > > > >> > > > ok. > > >> > > > > >> > > Just in case, the patch is ready. [...] > > >> > > > >> > yes - that's roughly the cleanup i referred to in the commit log. > > >> > > > >> > way too late for -rc8 though - the minimal fix i did _might_ be > > >> > eligible. > > >> > > > >> > agreed? > > >> > > >> Agreed. Then I will sent the patch on top of this change. > > > > > > OK, I am sending the patch on top of your fix. Not sure how to really > > > test it, but at least the kernel works when I apply the debugging patch > > > below on top. > > > > Stupid question. How is it that we wind up trying to start kernel threads > > before it is safe to do so? > > > > Races should be impossible because the scheduler isn't running until a few > > lines later. > > Yes, I am confused too. > > At first I thought I understand the race, now I don't. Please see > the whole thread: http://marc.info/?t=125180592500005 I dont understand it either - and the .config being !SMP excludes any sort of SMP race as well. Lets delay this until i can debug it more fully. Ingo ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-04 7:37 ` Ingo Molnar @ 2009-09-18 16:32 ` Wu Fei 2009-09-18 18:54 ` Oleg Nesterov 0 siblings, 1 reply; 30+ messages in thread From: Wu Fei @ 2009-09-18 16:32 UTC (permalink / raw) To: Ingo Molnar Cc: Oleg Nesterov, Eric W. Biederman, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits, Rusty Russell On Fri, Sep 04, 2009 at 09:37:49AM +0200, Ingo Molnar wrote: > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > On 09/01, Eric W. Biederman wrote: > > > > > > Oleg Nesterov <oleg@redhat.com> writes: > > > > > > > On 09/01, Oleg Nesterov wrote: > > > >> > > > >> On 09/01, Ingo Molnar wrote: > > > >> > > > > >> > * Oleg Nesterov <oleg@redhat.com> wrote: > > > >> > > > > >> > > On 09/01, Ingo Molnar wrote: > > > >> > > > > > > >> > > > * Oleg Nesterov <oleg@redhat.com> wrote: > > > >> > > > > > > >> > > > > Yes, this should work. But I _think_ we can make the better fix... > > > >> > > > > > > > >> > > > > I'll try to make the patch soon. Afaics we don't need > > > >> > > > > kthreadd_task_init_done. > > > >> > > > > > > >> > > > ok. > > > >> > > > > > >> > > Just in case, the patch is ready. [...] > > > >> > > > > >> > yes - that's roughly the cleanup i referred to in the commit log. > > > >> > > > > >> > way too late for -rc8 though - the minimal fix i did _might_ be > > > >> > eligible. > > > >> > > > > >> > agreed? > > > >> > > > >> Agreed. Then I will sent the patch on top of this change. > > > > > > > > OK, I am sending the patch on top of your fix. Not sure how to really > > > > test it, but at least the kernel works when I apply the debugging patch > > > > below on top. > > > > > > Stupid question. How is it that we wind up trying to start kernel threads > > > before it is safe to do so? > > > > > > Races should be impossible because the scheduler isn't running until a few > > > lines later. > > > > Yes, I am confused too. > > > > At first I thought I understand the race, now I don't. Please see > > the whole thread: http://marc.info/?t=125180592500005 > > I dont understand it either - and the .config being !SMP excludes > any sort of SMP race as well. > > Lets delay this until i can debug it more fully. > CONFIG_PREEMPT_VOLUNTARY looks like the key of this problem, might_resched becomes _cond_resched, and since d86ee480 changes it not to check SYSTEM_RUNNING, this function may call schedule(). And might_resched may be called even from do_fork(), so this is a scenario: kernel_thread(kernel_init, ...) pid = kernel_thread(kthreadd, ...) -- switch to thread kernel_init, which refers to kthreadd_task and NULL reference happens. Note, because of !CONFIG_LOCK_KERNEL, lock_kernel() is nop. What about just creating kthreadd before kernel_init as the following, it works for me? diff --git a/init/main.c b/init/main.c index b34fd8e..ae86699 100644 --- a/init/main.c +++ b/init/main.c @@ -452,10 +452,10 @@ static noinline void __init_refok rest_init(void) int pid; rcu_scheduler_starting(); - kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); - numa_default_policy(); pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); + kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); + numa_default_policy(); unlock_kernel(); /* ^ permalink raw reply related [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-18 16:32 ` Wu Fei @ 2009-09-18 18:54 ` Oleg Nesterov 2009-09-18 19:17 ` Linus Torvalds 0 siblings, 1 reply; 30+ messages in thread From: Oleg Nesterov @ 2009-09-18 18:54 UTC (permalink / raw) To: Wu Fei Cc: Ingo Molnar, Eric W. Biederman, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits, Rusty Russell On 09/19, Wu Fei wrote: > > On Fri, Sep 04, 2009 at 09:37:49AM +0200, Ingo Molnar wrote: > > > > Lets delay this until i can debug it more fully. > > > CONFIG_PREEMPT_VOLUNTARY looks like the key of this problem, > might_resched becomes _cond_resched, and since d86ee480 changes > it not to check SYSTEM_RUNNING, ... and should_resched() is true under preempt_disable() > --- a/init/main.c > +++ b/init/main.c > @@ -452,10 +452,10 @@ static noinline void __init_refok rest_init(void) > int pid; > > rcu_scheduler_starting(); > - kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); > - numa_default_policy(); > pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); > kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); > + kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); We can't do this. kernel_init() should run with ->pid == 1, we are going to exec /sbin/init. Oleg. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-18 18:54 ` Oleg Nesterov @ 2009-09-18 19:17 ` Linus Torvalds 2009-09-18 21:12 ` Oleg Nesterov 0 siblings, 1 reply; 30+ messages in thread From: Linus Torvalds @ 2009-09-18 19:17 UTC (permalink / raw) To: Oleg Nesterov Cc: Wu Fei, Ingo Molnar, Eric W. Biederman, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Andrew Morton, linux-tip-commits, Rusty Russell On Fri, 18 Sep 2009, Oleg Nesterov wrote: > > rcu_scheduler_starting(); > > - kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); > > - numa_default_policy(); > > pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); > > kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); > > + kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); > > We can't do this. kernel_init() should run with ->pid == 1, we are > going to exec /sbin/init. Umm - why not just add CLONE_PID to the 'kthreadd' creation, then? Linus ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-18 19:17 ` Linus Torvalds @ 2009-09-18 21:12 ` Oleg Nesterov 2009-09-18 21:15 ` Oleg Nesterov 2009-09-18 22:06 ` Linus Torvalds 0 siblings, 2 replies; 30+ messages in thread From: Oleg Nesterov @ 2009-09-18 21:12 UTC (permalink / raw) To: Linus Torvalds Cc: Wu Fei, Ingo Molnar, Eric W. Biederman, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Andrew Morton, linux-tip-commits, Rusty Russell On 09/18, Linus Torvalds wrote: > > On Fri, 18 Sep 2009, Oleg Nesterov wrote: > > > rcu_scheduler_starting(); > > > - kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); > > > - numa_default_policy(); > > > pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); > > > kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); > > > + kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); > > > > We can't do this. kernel_init() should run with ->pid == 1, we are > > going to exec /sbin/init. > > Umm - why not just add CLONE_PID to the 'kthreadd' creation, then? Not sure I understand... We don't have CLONE_PID, and kthreadd() shouldn't have pid == 0 anyway. But this is not needed. We can do alloc_pid() before 'kthreadd' creation, then free_pid() before kernel_thread(kernel_init). However, I am not sure we should do something like this. The patch I sent is very simple, in essence it is one-liner which only does - wake_up_process(kthreadd_task); + if (kthreadd_task) + wake_up_process(kthreadd_task); this way we should not worry about the ordering, kthread_create() can be called at any time, even before kthreadd creation (not that I think this is really useful though). But personally I still can't understand what happens. If we were preempted somewhere before "kthreadd_task = find_task_by_pid_ns()" initialization, then schedule_debug() should complain? rest_init() runs under preempt_disable(). Oleg. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-18 21:12 ` Oleg Nesterov @ 2009-09-18 21:15 ` Oleg Nesterov 2009-09-18 22:06 ` Linus Torvalds 1 sibling, 0 replies; 30+ messages in thread From: Oleg Nesterov @ 2009-09-18 21:15 UTC (permalink / raw) To: Linus Torvalds Cc: Wu Fei, Ingo Molnar, Eric W. Biederman, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Andrew Morton, linux-tip-commits, Rusty Russell On 09/18, Oleg Nesterov wrote: > > But personally I still can't understand what happens. If we were > preempted somewhere before "kthreadd_task = find_task_by_pid_ns()" > initialization, then schedule_debug() should complain? rest_init() > runs under preempt_disable(). Ah. CONFIG_PREEMPT_VOLUNTARY means !CONFIG_PREEMPT, and Ingo mentioned that SMP is disabled, this also means lock_kernel() is noop. Oleg. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-18 21:12 ` Oleg Nesterov 2009-09-18 21:15 ` Oleg Nesterov @ 2009-09-18 22:06 ` Linus Torvalds 2009-09-18 23:11 ` Eric W. Biederman 2009-09-18 23:22 ` Oleg Nesterov 1 sibling, 2 replies; 30+ messages in thread From: Linus Torvalds @ 2009-09-18 22:06 UTC (permalink / raw) To: Oleg Nesterov Cc: Wu Fei, Ingo Molnar, Eric W. Biederman, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Andrew Morton, linux-tip-commits, Rusty Russell On Fri, 18 Sep 2009, Oleg Nesterov wrote: > > Not sure I understand... We don't have CLONE_PID, and kthreadd() > shouldn't have pid == 0 anyway. Ahh, we got rid of CLONE_PID a long time ago, and renamed it to CLONE_IDLETASK (which was what it was used for). As to why pid == 0 wouldn't work, I don't know, but I'll take your word for it. Linus ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-18 22:06 ` Linus Torvalds @ 2009-09-18 23:11 ` Eric W. Biederman 2009-09-18 23:22 ` Oleg Nesterov 1 sibling, 0 replies; 30+ messages in thread From: Eric W. Biederman @ 2009-09-18 23:11 UTC (permalink / raw) To: Linus Torvalds Cc: Oleg Nesterov, Wu Fei, Ingo Molnar, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Andrew Morton, linux-tip-commits, Rusty Russell Linus Torvalds <torvalds@linux-foundation.org> writes: > On Fri, 18 Sep 2009, Oleg Nesterov wrote: >> >> Not sure I understand... We don't have CLONE_PID, and kthreadd() >> shouldn't have pid == 0 anyway. > > Ahh, we got rid of CLONE_PID a long time ago, and renamed it to > CLONE_IDLETASK (which was what it was used for). > > As to why pid == 0 wouldn't work, I don't know, but I'll take your word > for it. It probably would work but it would not be visible in proc Making a kernel thread that actually does work seems undesirable. Eric ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-18 22:06 ` Linus Torvalds 2009-09-18 23:11 ` Eric W. Biederman @ 2009-09-18 23:22 ` Oleg Nesterov 2009-09-18 23:38 ` Linus Torvalds 1 sibling, 1 reply; 30+ messages in thread From: Oleg Nesterov @ 2009-09-18 23:22 UTC (permalink / raw) To: Linus Torvalds Cc: Wu Fei, Ingo Molnar, Eric W. Biederman, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Andrew Morton, linux-tip-commits, Rusty Russell On 09/18, Linus Torvalds wrote: > > As to why pid == 0 wouldn't work, I don't know, but I'll take your word > for it. Say, admin wants to renice kthreadd or change its affinity. And we can't show kthread in /proc if its pid is 0. This can be changed afaics, we can even remove pidmap_init()->set_bit(0) so that the first copy_process()->alloc_pid() will create the pid with nr == 0. We don't care about unhashed init_struct_pid which also has nr == 0. But I don't think this would be good, currently the code can safely assume that the valid pid can't be 0. For example, find_process_by_pid(0) returns current. Oleg. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done 2009-09-18 23:22 ` Oleg Nesterov @ 2009-09-18 23:38 ` Linus Torvalds 0 siblings, 0 replies; 30+ messages in thread From: Linus Torvalds @ 2009-09-18 23:38 UTC (permalink / raw) To: Oleg Nesterov Cc: Wu Fei, Ingo Molnar, Eric W. Biederman, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Andrew Morton, linux-tip-commits, Rusty Russell On Sat, 19 Sep 2009, Oleg Nesterov wrote: > > On 09/18, Linus Torvalds wrote: > > > > As to why pid == 0 wouldn't work, I don't know, but I'll take your word > > for it. > > Say, admin wants to renice kthreadd or change its affinity. And we can't > show kthread in /proc if its pid is 0. Ok, so it's a "that's not good" kind of situation, rather than a "it wouldn't work" one. Fair enough. Of course, another way to do this would be to simply use CLONE_STOPPED to create the 'init' task first, but not wake it up - and then wake it up only after kthreadd exists. I'm sure there are other things we could do ;) Linus ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] kthreads: Fix startup synchronization boot crash 2009-09-01 13:37 ` Oleg Nesterov 2009-09-01 13:59 ` Ingo Molnar @ 2009-09-01 15:08 ` Américo Wang 2009-09-01 15:19 ` Oleg Nesterov 1 sibling, 1 reply; 30+ messages in thread From: Américo Wang @ 2009-09-01 15:08 UTC (permalink / raw) To: Oleg Nesterov Cc: Ingo Molnar, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits On Tue, Sep 01, 2009 at 03:37:09PM +0200, Oleg Nesterov wrote: >On 09/01, Ingo Molnar wrote: >> >> * Oleg Nesterov <oleg@redhat.com> wrote: >> >> > Yes, this should work. But I _think_ we can make the better fix... >> > >> > I'll try to make the patch soon. Afaics we don't need >> > kthreadd_task_init_done. >> >> ok. > >Just in case, the patch is ready. I need to re-check my thinking >and test it somehow... > >- remove kthreadd_task initialization from rest_init() > >- change kthreadd() to initialize kthreadd_task = current > >- change the main loop in kthreadd() to take kthread_create_lock > before the first schedule() (just shift schedule() down) This is the only part that I can't understand, why moving it down? > >This way, if kthreadd_task needs the wakeup, kthread_create() >must see kthreadd_task != NULL after unlock(kthread_create_lock). > >If kthread_create() sees kthreadd_task == NULL we can just sleep >on create.done, kthreadd() must notice the new request before >it calls schedule(). > >Note that with this change it is possible to use kthread_create() >at any time, but the caller will sleep until rest_init() creates >kthreadd. > What a nice patch! Thanks! >Oleg. > > init/main.c | 5 +---- > kernel/kthread.c | 30 ++++++++++++++++++------------ > 2 files changed, 19 insertions(+), 16 deletions(-) > > >--- a/init/main.c >+++ b/init/main.c >@@ -449,12 +449,9 @@ static void __init setup_command_line(ch > static noinline void __init_refok rest_init(void) > __releases(kernel_lock) > { >- int pid; >- > kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND); > numa_default_policy(); >- pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); >- kthreadd_task = find_task_by_pid_ns(pid, &init_pid_ns); >+ kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES); > unlock_kernel(); > > /* >--- a/kernel/kthread.c >+++ b/kernel/kthread.c >@@ -128,8 +128,14 @@ struct task_struct *kthread_create(int ( > spin_lock(&kthread_create_lock); > list_add_tail(&create.list, &kthread_create_list); > spin_unlock(&kthread_create_lock); >- >- wake_up_process(kthreadd_task); >+ /* >+ * If kthreadd was not created yet, kthreadd() must see the result >+ * of list_add_tail() later, it takes kthread_create_lock before the >+ * first schedule(). If kthreadd() locked kthread_create_lock at >+ * least once, we must see kthreadd_task != NULL. >+ */ >+ if (likely(kthreadd_task)) >+ wake_up_process(kthreadd_task); > wait_for_completion(&create.done); > > if (!IS_ERR(create.result)) { >@@ -216,23 +222,18 @@ EXPORT_SYMBOL(kthread_stop); > > int kthreadd(void *unused) > { >- struct task_struct *tsk = current; >+ kthreadd_task = current; > > /* Setup a clean context for our children to inherit. */ >- set_task_comm(tsk, "kthreadd"); >- ignore_signals(tsk); >- set_user_nice(tsk, KTHREAD_NICE_LEVEL); >- set_cpus_allowed_ptr(tsk, cpu_all_mask); >+ set_task_comm(kthreadd_task, "kthreadd"); >+ ignore_signals(kthreadd_task); >+ set_user_nice(kthreadd_task, KTHREAD_NICE_LEVEL); >+ set_cpus_allowed_ptr(kthreadd_task, cpu_all_mask); > set_mems_allowed(node_possible_map); > > current->flags |= PF_NOFREEZE | PF_FREEZER_NOSIG; > > for (;;) { >- set_current_state(TASK_INTERRUPTIBLE); >- if (list_empty(&kthread_create_list)) >- schedule(); >- __set_current_state(TASK_RUNNING); >- > spin_lock(&kthread_create_lock); > while (!list_empty(&kthread_create_list)) { > struct kthread_create_info *create; >@@ -247,6 +248,11 @@ int kthreadd(void *unused) > spin_lock(&kthread_create_lock); > } > spin_unlock(&kthread_create_lock); >+ >+ set_current_state(TASK_INTERRUPTIBLE); >+ if (list_empty(&kthread_create_list)) >+ schedule(); >+ __set_current_state(TASK_RUNNING); > } > > return 0; > >-- >To unsubscribe from this list: send the line "unsubscribe linux-kernel" in >the body of a message to majordomo@vger.kernel.org >More majordomo info at http://vger.kernel.org/majordomo-info.html >Please read the FAQ at http://www.tux.org/lkml/ -- Live like a child, think like the god. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] kthreads: Fix startup synchronization boot crash 2009-09-01 15:08 ` [PATCH] kthreads: Fix startup synchronization boot crash Américo Wang @ 2009-09-01 15:19 ` Oleg Nesterov 0 siblings, 0 replies; 30+ messages in thread From: Oleg Nesterov @ 2009-09-01 15:19 UTC (permalink / raw) To: Américo Wang Cc: Ingo Molnar, arjan, jeremy, mschmidt, mingo, hpa, linux-kernel, tj, tglx, Linus Torvalds, Andrew Morton, linux-tip-commits On 09/01, Américo Wang wrote: > > On Tue, Sep 01, 2009 at 03:37:09PM +0200, Oleg Nesterov wrote: > >On 09/01, Ingo Molnar wrote: > >> > >> * Oleg Nesterov <oleg@redhat.com> wrote: > >> > >> > Yes, this should work. But I _think_ we can make the better fix... > >> > > >> > I'll try to make the patch soon. Afaics we don't need > >> > kthreadd_task_init_done. > >> > >> ok. > > > >Just in case, the patch is ready. I need to re-check my thinking > >and test it somehow... > > > >- remove kthreadd_task initialization from rest_init() > > > >- change kthreadd() to initialize kthreadd_task = current > > > >- change the main loop in kthreadd() to take kthread_create_lock > > before the first schedule() (just shift schedule() down) > > This is the only part that I can't understand, why moving it down? This way kthreadd() always takes kthread_create_lock before it schedules. IOW. Before the patch, kthreadd() does for (;;) { if (list_empty(kthread_create_list)) schedule(); lock(kthread_create_lock); while (!list_empty(&kthread_create_list)) ... create kthreads ... unlock(kthread_create_lock); } This means kthread_create() can't do if (!kthreadd_task) wake_up_process(kthreadd_task); we can read kthreadd_task before kthreadd() sets kthreadd_task = current, and it is possible that kthreadd() has already checked list_empty() == T. But if we shift schedule() down, so that kthreadd() does for (;;) { lock(kthread_create_lock); while (!list_empty(&kthread_create_list)) ... create kthreads ... unlock(kthread_create_lock); if (list_empty(kthread_create_list)) schedule(); } Then we can rely on kthread_create_lock: either kthreadd must see the addition to create_list, or kthreadd() must see kthreadd_task != NULL. Because both checks, !kthreadd_task and list_empty(), are done after lock+unlock of the same lock. The 2nd task which takes the lock must see the changes which were done by the 1st task which locked this lock. Do you see any holes? Oleg. ^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: [PATCH] x86: detect stack protector for i386 builds on x86_64 2009-08-29 16:27 [PATCH] x86: detect stack protector for i386 builds on x86_64 Michal Schmidt 2009-08-30 13:39 ` Américo Wang 2009-08-30 18:43 ` [tip:x86/asm] x86: Detect " tip-bot for Michal Schmidt @ 2009-08-31 6:21 ` Tejun Heo 2 siblings, 0 replies; 30+ messages in thread From: Tejun Heo @ 2009-08-31 6:21 UTC (permalink / raw) To: Michal Schmidt Cc: Ingo Molnar, Jeremy Fitzhardinge, Linux Kernel Mailing List Michal Schmidt wrote: > Stack protector support was not detected when building with ARCH=i386 > on x86_64 systems: > arch/x86/Makefile:80: stack protector enabled but no compiler support > > The "-m32" argument needs to be passed to the detection script. > > Signed-off-by: Michal Schmidt <mschmidt@redhat.com> Acked-by: Tejun Heo <tj@kernel.org> Thanks. -- tejun ^ permalink raw reply [flat|nested] 30+ messages in thread
end of thread, other threads:[~2009-09-18 23:40 UTC | newest] Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-08-29 16:27 [PATCH] x86: detect stack protector for i386 builds on x86_64 Michal Schmidt 2009-08-30 13:39 ` Américo Wang 2009-08-30 18:43 ` [tip:x86/asm] x86: Detect " tip-bot for Michal Schmidt 2009-09-01 10:03 ` Ingo Molnar 2009-09-01 11:39 ` [PATCH] kthreads: Fix startup synchronization boot crash Ingo Molnar 2009-09-01 13:04 ` Oleg Nesterov 2009-09-01 13:14 ` Ingo Molnar 2009-09-01 13:37 ` Oleg Nesterov 2009-09-01 13:59 ` Ingo Molnar 2009-09-01 14:55 ` Oleg Nesterov 2009-09-01 15:54 ` Ingo Molnar 2009-09-01 16:00 ` Oleg Nesterov 2009-09-02 13:06 ` Ingo Molnar 2009-09-01 16:52 ` [PATCH 0/1] kthreads: simplify !kthreadd_task logic, kill kthreadd_task_init_done Oleg Nesterov 2009-09-01 16:53 ` [PATCH 1/1] " Oleg Nesterov 2009-09-01 23:22 ` [PATCH 0/1] " Eric W. Biederman 2009-09-02 9:13 ` Oleg Nesterov 2009-09-04 7:37 ` Ingo Molnar 2009-09-18 16:32 ` Wu Fei 2009-09-18 18:54 ` Oleg Nesterov 2009-09-18 19:17 ` Linus Torvalds 2009-09-18 21:12 ` Oleg Nesterov 2009-09-18 21:15 ` Oleg Nesterov 2009-09-18 22:06 ` Linus Torvalds 2009-09-18 23:11 ` Eric W. Biederman 2009-09-18 23:22 ` Oleg Nesterov 2009-09-18 23:38 ` Linus Torvalds 2009-09-01 15:08 ` [PATCH] kthreads: Fix startup synchronization boot crash Américo Wang 2009-09-01 15:19 ` Oleg Nesterov 2009-08-31 6:21 ` [PATCH] x86: detect stack protector for i386 builds on x86_64 Tejun Heo
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.