FYI, -tip testing found this new lockdep workqueue locking assert
triggered by the Intel HDA sound driver:
[ 30.637612] alloc kstat_irqs on cpu 0 node 0
[ 30.647029] IOAPIC[0]: Set routing entry (2-22 -> 0x71 -> IRQ 22 Mode:1 Active:1)
[ 30.654533] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
[ 30.661782] HDA Intel 0000:00:1b.0: setting latency timer to 64
[ 30.667801] chipset global capabilities = 0x4401
[ 30.701090] codec_mask = 0x4
[ 30.701090] hda_intel: codec #2 probed OK
[ 30.709090] hda-codec: No codec parser is available
[ 30.714396] hda-intel: no codecs initialized
[ 30.718689]
[ 30.718689] =============================================
[ 30.718689] [ INFO: possible recursive locking detected ]
[ 30.718689] 2.6.28-tip #2
[ 30.718689] ---------------------------------------------
[ 30.718689] events/0/7 is trying to acquire lock:
[ 30.718689] (events){--..}, at: [<ffffffff80281050>] flush_workqueue+0x0/0x90
[ 30.718689]
[ 30.718689] but task is already holding lock:
[ 30.718689] (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
[ 30.718689]
[ 30.718689] other info that might help us debug this:
[ 30.718689] 2 locks held by events/0/7:
[ 30.718689] #0: (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
[ 30.718689] #1: (&wfc.work){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
[ 30.718689]
[ 30.718689] stack backtrace:
[ 30.718689] Pid: 7, comm: events/0 Not tainted 2.6.28-tip #2
[ 30.718689] Call Trace:
[ 30.718689] [<ffffffff80295836>] validate_chain+0xc56/0x1340
[ 30.718689] [<ffffffff802974e6>] __lock_acquire+0x376/0x610
[ 30.718689] [<ffffffff80297819>] lock_acquire+0x99/0xd0
[ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
[ 30.718689] [<ffffffff80281091>] flush_workqueue+0x41/0x90
[ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
[ 30.718689] [<ffffffff802810f5>] flush_scheduled_work+0x15/0x20
[ 30.718689] [<ffffffff80c59794>] azx_clear_irq_pending+0x54/0x60
[ 30.718689] [<ffffffff80c599ec>] azx_free+0x10c/0x160
[ 30.718689] [<ffffffff80bae9ad>] ? snd_device_free+0x8d/0x100
[ 30.718689] [<ffffffff80c59a52>] azx_dev_free+0x12/0x20
[ 30.718689] [<ffffffff80bae9a1>] snd_device_free+0x81/0x100
[ 30.718689] [<ffffffff80baea89>] snd_device_free_all+0x69/0xa0
[ 30.718689] [<ffffffff80ba8a70>] snd_card_do_free+0x50/0xd0
[ 30.718689] [<ffffffff80ba9602>] snd_card_free+0xa2/0xc0
[ 30.718689] [<ffffffff8061115f>] ? __delay+0xf/0x20
[ 30.718689] [<ffffffff80edbb6a>] azx_probe+0x38a/0x9f0
[ 30.718689] [<ffffffff80c5a240>] ? azx_send_cmd+0x0/0x130
[ 30.718689] [<ffffffff80c5a370>] ? azx_get_response+0x0/0x210
[ 30.718689] [<ffffffff80c59b70>] ? azx_attach_pcm_stream+0x0/0x1b0
[ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
[ 30.718689] [<ffffffff80634807>] local_pci_probe+0x17/0x20
[ 30.718689] [<ffffffff802804e8>] do_work_for_cpu+0x18/0x30
[ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
[ 30.718689] [<ffffffff802807bb>] run_workqueue+0x19b/0x240
[ 30.718689] [<ffffffff8028076a>] ? run_workqueue+0x14a/0x240
[ 30.718689] [<ffffffff802809cf>] worker_thread+0xaf/0x110
[ 30.718689] [<ffffffff80284e20>] ? autoremove_wake_function+0x0/0x40
[ 30.718689] [<ffffffff80280920>] ? worker_thread+0x0/0x110
[ 30.718689] [<ffffffff802848e3>] kthread+0x53/0x80
[ 30.718689] [<ffffffff8022c3aa>] child_rip+0xa/0x20
[ 30.718689] [<ffffffff8022bcbe>] ? restore_args+0x0/0x30
[ 30.718689] [<ffffffff80284890>] ? kthread+0x0/0x80
[ 30.718689] [<ffffffff8022c3a0>] ? child_rip+0x0/0x20
[ 30.993230] HDA Intel 0000:00:1b.0: PCI INT A disabled
[ 30.998430] initcall alsa_card_azx_init+0x0/0x20 returned 0 after 372964 usecs
[ 31.005810] calling alsa_card_korg1212_init+0x0/0x20 @ 1
[ 31.011225] bus: 'pci': add driver korg1212
config attached.
Today is the first time i saw this bug, so i guess the guilty commit is
one of:
8326e32: Merge branch 'topic/hda-resume-fix' into topic/hda
d4d9cd03: ALSA: hda - Add probe_only option
0ff5551: Merge branch 'fix/hda' into topic/hda
5c0b9be: ALSA: hda - Fix a compile warning when CONFIG_PM=n
32e176c: Sound: hda - Restore PCI configuration space with interrupts off
11cd41b: ALSA: hda - Fix build error with CONFIG_SND_HDA_POWER_SAVE
fee2fba: ALSA: hda - Move power_save option to hda_intel.c
986862b: ALSA: hda - make some functions static
ef1681d: ALSA: hda - Add probe_mask quirk for Medion MD96630
41dda0f: ALSA: azx_probe() cleanup
c4da29c: ALSA: hda - support detecting HD Audio devices with PCI class code
0edb945: ALSA: hda - Fix probe errors on Dell Studio Desktop
6ce4a3b: ALSA: hda - Make codec-probing more robust
33fa35e: ALSA: hda - simplify hda_bus ops callbacks
afecd78c: Merge branch 'topic/fix/hda' into topic/hda
34c2535: ALSA: hda - Remove old codec-probe limitation
176d533: ALSA: hda - Add infrastructure for dynamic stream allocation
Ingo
At Thu, 8 Jan 2009 16:20:37 +0100,
Ingo Molnar wrote:
>
> FYI, -tip testing found this new lockdep workqueue locking assert
> triggered by the Intel HDA sound driver:
> [ 30.637612] alloc kstat_irqs on cpu 0 node 0
> [ 30.647029] IOAPIC[0]: Set routing entry (2-22 -> 0x71 -> IRQ 22 Mode:1 Active:1)
> [ 30.654533] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
> [ 30.661782] HDA Intel 0000:00:1b.0: setting latency timer to 64
> [ 30.667801] chipset global capabilities = 0x4401
> [ 30.701090] codec_mask = 0x4
> [ 30.701090] hda_intel: codec #2 probed OK
> [ 30.709090] hda-codec: No codec parser is available
> [ 30.714396] hda-intel: no codecs initialized
Ah, this situation hasn't been checked well. The codec exists but no
corresponding code. Usually either codec isn't detected or probe
errors. I'll check this.
Thanks!
Takashi
> [ 30.718689]
> [ 30.718689] =============================================
> [ 30.718689] [ INFO: possible recursive locking detected ]
> [ 30.718689] 2.6.28-tip #2
> [ 30.718689] ---------------------------------------------
> [ 30.718689] events/0/7 is trying to acquire lock:
> [ 30.718689] (events){--..}, at: [<ffffffff80281050>] flush_workqueue+0x0/0x90
> [ 30.718689]
> [ 30.718689] but task is already holding lock:
> [ 30.718689] (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> [ 30.718689]
> [ 30.718689] other info that might help us debug this:
> [ 30.718689] 2 locks held by events/0/7:
> [ 30.718689] #0: (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> [ 30.718689] #1: (&wfc.work){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> [ 30.718689]
> [ 30.718689] stack backtrace:
> [ 30.718689] Pid: 7, comm: events/0 Not tainted 2.6.28-tip #2
> [ 30.718689] Call Trace:
> [ 30.718689] [<ffffffff80295836>] validate_chain+0xc56/0x1340
> [ 30.718689] [<ffffffff802974e6>] __lock_acquire+0x376/0x610
> [ 30.718689] [<ffffffff80297819>] lock_acquire+0x99/0xd0
> [ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
> [ 30.718689] [<ffffffff80281091>] flush_workqueue+0x41/0x90
> [ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
> [ 30.718689] [<ffffffff802810f5>] flush_scheduled_work+0x15/0x20
> [ 30.718689] [<ffffffff80c59794>] azx_clear_irq_pending+0x54/0x60
> [ 30.718689] [<ffffffff80c599ec>] azx_free+0x10c/0x160
> [ 30.718689] [<ffffffff80bae9ad>] ? snd_device_free+0x8d/0x100
> [ 30.718689] [<ffffffff80c59a52>] azx_dev_free+0x12/0x20
> [ 30.718689] [<ffffffff80bae9a1>] snd_device_free+0x81/0x100
> [ 30.718689] [<ffffffff80baea89>] snd_device_free_all+0x69/0xa0
> [ 30.718689] [<ffffffff80ba8a70>] snd_card_do_free+0x50/0xd0
> [ 30.718689] [<ffffffff80ba9602>] snd_card_free+0xa2/0xc0
> [ 30.718689] [<ffffffff8061115f>] ? __delay+0xf/0x20
> [ 30.718689] [<ffffffff80edbb6a>] azx_probe+0x38a/0x9f0
> [ 30.718689] [<ffffffff80c5a240>] ? azx_send_cmd+0x0/0x130
> [ 30.718689] [<ffffffff80c5a370>] ? azx_get_response+0x0/0x210
> [ 30.718689] [<ffffffff80c59b70>] ? azx_attach_pcm_stream+0x0/0x1b0
> [ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
> [ 30.718689] [<ffffffff80634807>] local_pci_probe+0x17/0x20
> [ 30.718689] [<ffffffff802804e8>] do_work_for_cpu+0x18/0x30
> [ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
> [ 30.718689] [<ffffffff802807bb>] run_workqueue+0x19b/0x240
> [ 30.718689] [<ffffffff8028076a>] ? run_workqueue+0x14a/0x240
> [ 30.718689] [<ffffffff802809cf>] worker_thread+0xaf/0x110
> [ 30.718689] [<ffffffff80284e20>] ? autoremove_wake_function+0x0/0x40
> [ 30.718689] [<ffffffff80280920>] ? worker_thread+0x0/0x110
> [ 30.718689] [<ffffffff802848e3>] kthread+0x53/0x80
> [ 30.718689] [<ffffffff8022c3aa>] child_rip+0xa/0x20
> [ 30.718689] [<ffffffff8022bcbe>] ? restore_args+0x0/0x30
> [ 30.718689] [<ffffffff80284890>] ? kthread+0x0/0x80
> [ 30.718689] [<ffffffff8022c3a0>] ? child_rip+0x0/0x20
> [ 30.993230] HDA Intel 0000:00:1b.0: PCI INT A disabled
> [ 30.998430] initcall alsa_card_azx_init+0x0/0x20 returned 0 after 372964 usecs
> [ 31.005810] calling alsa_card_korg1212_init+0x0/0x20 @ 1
> [ 31.011225] bus: 'pci': add driver korg1212
>
> config attached.
>
> Today is the first time i saw this bug, so i guess the guilty commit is
> one of:
>
> 8326e32: Merge branch 'topic/hda-resume-fix' into topic/hda
> d4d9cd03: ALSA: hda - Add probe_only option
> 0ff5551: Merge branch 'fix/hda' into topic/hda
> 5c0b9be: ALSA: hda - Fix a compile warning when CONFIG_PM=n
> 32e176c: Sound: hda - Restore PCI configuration space with interrupts off
> 11cd41b: ALSA: hda - Fix build error with CONFIG_SND_HDA_POWER_SAVE
> fee2fba: ALSA: hda - Move power_save option to hda_intel.c
> 986862b: ALSA: hda - make some functions static
> ef1681d: ALSA: hda - Add probe_mask quirk for Medion MD96630
> 41dda0f: ALSA: azx_probe() cleanup
> c4da29c: ALSA: hda - support detecting HD Audio devices with PCI class code
> 0edb945: ALSA: hda - Fix probe errors on Dell Studio Desktop
> 6ce4a3b: ALSA: hda - Make codec-probing more robust
> 33fa35e: ALSA: hda - simplify hda_bus ops callbacks
> afecd78c: Merge branch 'topic/fix/hda' into topic/hda
> 34c2535: ALSA: hda - Remove old codec-probe limitation
> 176d533: ALSA: hda - Add infrastructure for dynamic stream allocation
>
> Ingo
> [2 config <text/plain; us-ascii (7bit)>]
> #
> # Automatically generated make config: don't edit
> # Linux kernel version: 2.6.28
> # Thu Jan 8 15:07:44 2009
> #
> CONFIG_64BIT=y
> # CONFIG_X86_32 is not set
> CONFIG_X86_64=y
> CONFIG_X86=y
> CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_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_BUG=y
> CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
> CONFIG_GENERIC_HWEIGHT=y
> CONFIG_ARCH_MAY_HAVE_PC_FDC=y
> CONFIG_RWSEM_GENERIC_SPINLOCK=y
> # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
> CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
> CONFIG_GENERIC_CALIBRATE_DELAY=y
> CONFIG_GENERIC_TIME_VSYSCALL=y
> 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_CPUMASK_OF_CPU_MAP=y
> CONFIG_ARCH_HIBERNATION_POSSIBLE=y
> CONFIG_ARCH_SUSPEND_POSSIBLE=y
> CONFIG_ZONE_DMA32=y
> CONFIG_ARCH_POPULATES_NODE_MAP=y
> CONFIG_AUDIT_ARCH=y
> CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
> CONFIG_GENERIC_HARDIRQS=y
> CONFIG_GENERIC_IRQ_PROBE=y
> CONFIG_GENERIC_PENDING_IRQ=y
> CONFIG_X86_SMP=y
> CONFIG_USE_GENERIC_SMP_HELPERS=y
> CONFIG_X86_64_SMP=y
> CONFIG_X86_HT=y
> CONFIG_X86_BIOS_REBOOT=y
> CONFIG_X86_TRAMPOLINE=y
> # CONFIG_KTIME_SCALAR is not set
> CONFIG_BOOTPARAM_SUPPORT=y
> CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
>
> #
> # General setup
> #
> CONFIG_EXPERIMENTAL=y
> # CONFIG_BROKEN_BOOT_ALLOWED4 is not set
> # CONFIG_BROKEN_BOOT_EUROPE is not set
> # CONFIG_BROKEN_BOOT_TITAN is not set
> CONFIG_LOCK_KERNEL=y
> CONFIG_INIT_ENV_ARG_LIMIT=32
> CONFIG_LOCALVERSION=""
> # CONFIG_LOCALVERSION_AUTO is not set
> CONFIG_HAVE_KERNEL_GZIP=y
> CONFIG_HAVE_KERNEL_BZIP2=y
> CONFIG_HAVE_KERNEL_LZMA=y
> CONFIG_KERNEL_GZIP=y
> # CONFIG_KERNEL_BZIP2 is not set
> # CONFIG_KERNEL_LZMA is not set
> 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=y
> # CONFIG_TASK_DELAY_ACCT is not set
> CONFIG_TASK_XACCT=y
> # CONFIG_TASK_IO_ACCOUNTING is not set
> # CONFIG_AUDIT is not set
> CONFIG_IKCONFIG=y
> CONFIG_IKCONFIG_PROC=y
> CONFIG_LOG_BUF_SHIFT=20
> CONFIG_CGROUPS=y
> # CONFIG_CGROUP_DEBUG is not set
> # CONFIG_CGROUP_NS is not set
> # CONFIG_CGROUP_FREEZER is not set
> CONFIG_CGROUP_DEVICE=y
> CONFIG_CPUSETS=y
> CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
> # CONFIG_GROUP_SCHED is not set
> CONFIG_CGROUP_CPUACCT=y
> # CONFIG_RESOURCE_COUNTERS is not set
> CONFIG_SYSFS_DEPRECATED=y
> # CONFIG_SYSFS_DEPRECATED_V2 is not set
> CONFIG_PROC_PID_CPUSET=y
> CONFIG_RELAY=y
> CONFIG_NAMESPACES=y
> CONFIG_UTS_NS=y
> CONFIG_IPC_NS=y
> CONFIG_USER_NS=y
> CONFIG_PID_NS=y
> # CONFIG_BLK_DEV_INITRD is not set
> # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
> CONFIG_SYSCTL=y
> # CONFIG_EMBEDDED is not set
> CONFIG_UID16=y
> CONFIG_SYSCTL_SYSCALL=y
> CONFIG_KALLSYMS=y
> CONFIG_KALLSYMS_ALL=y
> CONFIG_KALLSYMS_STRIP_GENERATED=y
> CONFIG_KALLSYMS_EXTRA_PASS=y
> CONFIG_HOTPLUG=y
> CONFIG_PRINTK=y
> CONFIG_BUG=y
> CONFIG_ELF_CORE=y
> CONFIG_PCSPKR_PLATFORM=y
> CONFIG_COMPAT_BRK=y
> CONFIG_BASE_FULL=y
> CONFIG_FUTEX=y
> CONFIG_ANON_INODES=y
> CONFIG_EPOLL=y
> CONFIG_SIGNALFD=y
> CONFIG_TIMERFD=y
> CONFIG_EVENTFD=y
> CONFIG_SHMEM=y
> CONFIG_AIO=y
> CONFIG_HAVE_PERF_COUNTERS=y
>
> #
> # Performance Counters
> #
> # CONFIG_PERF_COUNTERS is not set
> CONFIG_VM_EVENT_COUNTERS=y
> CONFIG_PCI_QUIRKS=y
> CONFIG_SLUB_DEBUG=y
> # CONFIG_SLAB is not set
> CONFIG_SLUB=y
> # CONFIG_SLOB is not set
> CONFIG_PROFILING=y
> CONFIG_TRACEPOINTS=y
> CONFIG_MARKERS=y
> CONFIG_OPROFILE=y
> # CONFIG_OPROFILE_IBS is not set
> CONFIG_HAVE_OPROFILE=y
> CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
> CONFIG_HAVE_IOREMAP_PROT=y
> CONFIG_HAVE_KPROBES=y
> CONFIG_HAVE_KRETPROBES=y
> CONFIG_HAVE_ARCH_TRACEHOOK=y
> # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
> CONFIG_SLABINFO=y
> CONFIG_RT_MUTEXES=y
> CONFIG_BASE_SMALL=0
> # CONFIG_MODULES is not set
> CONFIG_STOP_MACHINE=y
> CONFIG_BLOCK=y
> CONFIG_BLK_DEV_IO_TRACE=y
> CONFIG_BLK_DEV_BSG=y
> CONFIG_BLK_DEV_INTEGRITY=y
> CONFIG_BLOCK_COMPAT=y
>
> #
> # IO Schedulers
> #
> CONFIG_IOSCHED_NOOP=y
> CONFIG_IOSCHED_AS=y
> CONFIG_IOSCHED_DEADLINE=y
> CONFIG_IOSCHED_CFQ=y
> # CONFIG_DEFAULT_AS is not set
> # CONFIG_DEFAULT_DEADLINE is not set
> CONFIG_DEFAULT_CFQ=y
> # CONFIG_DEFAULT_NOOP is not set
> CONFIG_DEFAULT_IOSCHED="cfq"
> CONFIG_PREEMPT_NOTIFIERS=y
> CONFIG_CLASSIC_RCU=y
> # CONFIG_TREE_RCU is not set
> # CONFIG_PREEMPT_RCU is not set
> # CONFIG_TREE_RCU_TRACE is not set
> # CONFIG_PREEMPT_RCU_TRACE is not set
> CONFIG_FREEZER=y
>
> #
> # Processor type and features
> #
> # CONFIG_NO_HZ is not set
> # CONFIG_BOOTPARAM_NO_HZ_OFF is not set
> # CONFIG_HIGH_RES_TIMERS is not set
> CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
> CONFIG_BOOTPARAM_HIGHRES_OFF=y
> # CONFIG_SMP_SUPPORT is not set
> CONFIG_SPARSE_IRQ=y
> # CONFIG_NUMA_MIGRATE_IRQ_DESC is not set
> CONFIG_X86_FIND_SMP_CONFIG=y
> CONFIG_X86_MPPARSE=y
> CONFIG_UP_WANTED_1=y
> # CONFIG_UP_WANTED_2 is not set
> CONFIG_SMP=y
> CONFIG_X86_PC=y
> # CONFIG_X86_ELAN is not set
> # CONFIG_X86_VOYAGER is not set
> # CONFIG_X86_GENERICARCH is not set
> # CONFIG_X86_VSMP is not set
> # CONFIG_SCHED_OMIT_FRAME_POINTER is not set
> CONFIG_PARAVIRT_GUEST=y
> # CONFIG_XEN is not set
> CONFIG_KVM_CLOCK=y
> CONFIG_KVM_GUEST=y
> CONFIG_PARAVIRT=y
> CONFIG_PARAVIRT_CLOCK=y
> # CONFIG_PARAVIRT_DEBUG is not set
> CONFIG_MEMTEST=y
> # 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 is not set
> # 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_GENERIC_CPU=y
> CONFIG_X86_CPU=y
> CONFIG_X86_L1_CACHE_BYTES=128
> CONFIG_X86_INTERNODE_CACHE_BYTES=128
> CONFIG_X86_CMPXCHG=y
> CONFIG_X86_L1_CACHE_SHIFT=7
> CONFIG_X86_WP_WORKS_OK=y
> CONFIG_X86_TSC=y
> CONFIG_X86_CMPXCHG64=y
> CONFIG_X86_CMOV=y
> CONFIG_X86_MINIMUM_CPU_FAMILY=64
> CONFIG_X86_DEBUGCTLMSR=y
> CONFIG_CPU_SUP_INTEL=y
> CONFIG_CPU_SUP_AMD=y
> CONFIG_CPU_SUP_CENTAUR_64=y
> # CONFIG_X86_DS is not set
> # CONFIG_X86_PTRACE_BTS is not set
> CONFIG_HPET_TIMER=y
> CONFIG_HPET_EMULATE_RTC=y
> CONFIG_DMI=y
> CONFIG_GART_IOMMU=y
> CONFIG_CALGARY_IOMMU=y
> CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
> CONFIG_AMD_IOMMU=y
> # CONFIG_AMD_IOMMU_STATS is not set
> CONFIG_SWIOTLB=y
> CONFIG_IOMMU_HELPER=y
> CONFIG_IOMMU_API=y
> # CONFIG_MAXSMP is not set
> CONFIG_NR_CPUS=8
> CONFIG_SCHED_SMT=y
> CONFIG_SCHED_MC=y
> CONFIG_PREEMPT_NONE=y
> # CONFIG_PREEMPT_VOLUNTARY is not set
> # CONFIG_PREEMPT is not set
> CONFIG_X86_LOCAL_APIC=y
> CONFIG_X86_IO_APIC=y
> # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
> # CONFIG_X86_MCE is not set
> CONFIG_I8K=y
> CONFIG_MICROCODE=y
> CONFIG_MICROCODE_INTEL=y
> # CONFIG_MICROCODE_AMD is not set
> CONFIG_MICROCODE_OLD_INTERFACE=y
> # CONFIG_X86_MSR is not set
> CONFIG_X86_CPUID=y
> CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
> CONFIG_DIRECT_GBPAGES=y
> CONFIG_NUMA=y
> # CONFIG_K8_NUMA is not set
> CONFIG_X86_64_ACPI_NUMA=y
> CONFIG_NODES_SPAN_OTHER_NODES=y
> CONFIG_NUMA_EMU=y
> CONFIG_NODES_SHIFT=6
> CONFIG_ARCH_SPARSEMEM_DEFAULT=y
> CONFIG_ARCH_SPARSEMEM_ENABLE=y
> CONFIG_ARCH_SELECT_MEMORY_MODEL=y
> CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
> CONFIG_SELECT_MEMORY_MODEL=y
> # CONFIG_FLATMEM_MANUAL is not set
> # CONFIG_DISCONTIGMEM_MANUAL is not set
> CONFIG_SPARSEMEM_MANUAL=y
> CONFIG_SPARSEMEM=y
> CONFIG_NEED_MULTIPLE_NODES=y
> CONFIG_HAVE_MEMORY_PRESENT=y
> CONFIG_SPARSEMEM_EXTREME=y
> CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
> CONFIG_SPARSEMEM_VMEMMAP=y
>
> #
> # Memory hotplug is currently incompatible with Software Suspend
> #
> CONFIG_PAGEFLAGS_EXTENDED=y
> CONFIG_SPLIT_PTLOCK_CPUS=4
> CONFIG_MIGRATION=y
> CONFIG_PHYS_ADDR_T_64BIT=y
> CONFIG_ZONE_DMA_FLAG=1
> CONFIG_BOUNCE=y
> CONFIG_VIRT_TO_BUS=y
> # CONFIG_UNEVICTABLE_LRU is not set
> CONFIG_MMU_NOTIFIER=y
> # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
> CONFIG_X86_RESERVE_LOW_64K=y
> 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_EFI=y
> # CONFIG_SECCOMP is not set
> CONFIG_CC_STACKPROTECTOR_ALL=y
> CONFIG_CC_STACKPROTECTOR=y
> # CONFIG_HZ_100 is not set
> CONFIG_HZ_250=y
> # CONFIG_HZ_300 is not set
> # CONFIG_HZ_1000 is not set
> CONFIG_HZ=250
> # CONFIG_SCHED_HRTICK is not set
> # CONFIG_KEXEC is not set
> # CONFIG_CRASH_DUMP is not set
> CONFIG_PHYSICAL_START=0x200000
> # CONFIG_RELOCATABLE is not set
> CONFIG_PHYSICAL_ALIGN=0x200000
> CONFIG_HOTPLUG_CPU=y
> CONFIG_COMPAT_VDSO=y
> # CONFIG_CMDLINE_BOOL is not set
> CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
> CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
>
> #
> # Power management and ACPI options
> #
> CONFIG_ARCH_HIBERNATION_HEADER=y
> CONFIG_PM=y
> # CONFIG_PM_DEBUG is not set
> CONFIG_PM_SLEEP_SMP=y
> CONFIG_PM_SLEEP=y
> # CONFIG_SUSPEND is not set
> CONFIG_HIBERNATION=y
> CONFIG_PM_STD_PARTITION=""
> CONFIG_ACPI=y
> CONFIG_ACPI_SLEEP=y
> # CONFIG_ACPI_PROCFS is not set
> CONFIG_ACPI_PROCFS_POWER=y
> CONFIG_ACPI_SYSFS_POWER=y
> CONFIG_ACPI_PROC_EVENT=y
> CONFIG_ACPI_AC=y
> # CONFIG_ACPI_BATTERY is not set
> CONFIG_ACPI_BUTTON=y
> # CONFIG_ACPI_VIDEO is not set
> CONFIG_ACPI_FAN=y
> CONFIG_ACPI_DOCK=y
> CONFIG_ACPI_PROCESSOR=y
> CONFIG_ACPI_HOTPLUG_CPU=y
> CONFIG_ACPI_THERMAL=y
> CONFIG_ACPI_NUMA=y
> CONFIG_ACPI_WMI=y
> CONFIG_ACPI_ASUS=y
> # CONFIG_ACPI_TOSHIBA is not set
> # CONFIG_ACPI_CUSTOM_DSDT is not set
> CONFIG_ACPI_BLACKLIST_YEAR=0
> CONFIG_ACPI_DEBUG=y
> CONFIG_ACPI_DEBUG_FUNC_TRACE=y
> CONFIG_ACPI_PCI_SLOT=y
> CONFIG_ACPI_SYSTEM=y
> CONFIG_X86_PM_TIMER=y
> CONFIG_ACPI_CONTAINER=y
> CONFIG_ACPI_SBS=y
>
> #
> # CPU Frequency scaling
> #
> # CONFIG_CPU_FREQ is not set
> CONFIG_CPU_IDLE=y
> CONFIG_CPU_IDLE_GOV_LADDER=y
>
> #
> # Memory power savings
> #
> # CONFIG_I7300_IDLE is not set
> # CONFIG_BOOTPARAM_NMI_WATCHDOG_BIT_0 is not set
> CONFIG_BOOTPARAM_NOLAPIC_TIMER=y
> # CONFIG_BOOTPARAM_LAPIC is not set
> CONFIG_BOOTPARAM_HPET_DISABLE=y
> CONFIG_BOOTPARAM_IDLE_MWAIT=y
> CONFIG_BOOTPARAM_IDLE_POLL=y
> CONFIG_BOOTPARAM_HIGHMEM_512M=y
> CONFIG_BOOTPARAM_NOPAT=y
> CONFIG_BOOTPARAM_NOTSC=y
> CONFIG_BOOTPARAM_PCI_NOMSI=y
>
> #
> # Bus options (PCI etc.)
> #
> CONFIG_PCI=y
> CONFIG_PCI_DIRECT=y
> CONFIG_PCI_MMCONFIG=y
> CONFIG_PCI_DOMAINS=y
> # CONFIG_DMAR is not set
> # CONFIG_INTR_REMAP is not set
> CONFIG_PCIEPORTBUS=y
> # CONFIG_PCIEAER is not set
> CONFIG_PCIEASPM=y
> CONFIG_PCIEASPM_DEBUG=y
> CONFIG_ARCH_SUPPORTS_MSI=y
> CONFIG_PCI_MSI=y
> CONFIG_PCI_LEGACY=y
> CONFIG_PCI_DEBUG=y
> CONFIG_PCI_STUB=y
> # CONFIG_HT_IRQ is not set
> CONFIG_ISA_DMA_API=y
> CONFIG_K8_NB=y
> CONFIG_PCCARD=y
> CONFIG_PCMCIA_DEBUG=y
> CONFIG_PCMCIA=y
> 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=y
> CONFIG_YENTA_ENE_TUNE=y
> CONFIG_YENTA_TOSHIBA=y
> # CONFIG_PD6729 is not set
> CONFIG_I82092=y
> CONFIG_PCCARD_NONSTATIC=y
> # CONFIG_HOTPLUG_PCI is not set
>
> #
> # Executable file formats / Emulations
> #
> CONFIG_BINFMT_ELF=y
> CONFIG_COMPAT_BINFMT_ELF=y
> CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
> # CONFIG_HAVE_AOUT is not set
> # CONFIG_BINFMT_MISC is not set
> CONFIG_IA32_EMULATION=y
> CONFIG_IA32_AOUT=y
> CONFIG_COMPAT=y
> CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
> CONFIG_SYSVIPC_COMPAT=y
> CONFIG_NET=y
>
> #
> # Networking options
> #
> CONFIG_NET_NS=y
> CONFIG_COMPAT_NET_DEV_OPS=y
> CONFIG_PACKET=y
> # CONFIG_PACKET_MMAP is not set
> CONFIG_UNIX=y
> CONFIG_XFRM=y
> # CONFIG_XFRM_USER is not set
> # CONFIG_XFRM_SUB_POLICY is not set
> CONFIG_XFRM_MIGRATE=y
> CONFIG_XFRM_STATISTICS=y
> CONFIG_NET_KEY=y
> 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=y
> # CONFIG_IP_ROUTE_VERBOSE is not set
> # CONFIG_IP_PNP is not set
> CONFIG_NET_IPIP=y
> CONFIG_NET_IPGRE=y
> CONFIG_NET_IPGRE_BROADCAST=y
> # CONFIG_IP_MROUTE is not set
> CONFIG_ARPD=y
> CONFIG_SYN_COOKIES=y
> CONFIG_INET_AH=y
> CONFIG_INET_ESP=y
> # CONFIG_INET_IPCOMP is not set
> # CONFIG_INET_XFRM_TUNNEL is not set
> CONFIG_INET_TUNNEL=y
> CONFIG_INET_XFRM_MODE_TRANSPORT=y
> # CONFIG_INET_XFRM_MODE_TUNNEL is not set
> CONFIG_INET_XFRM_MODE_BEET=y
> CONFIG_INET_LRO=y
> CONFIG_INET_DIAG=y
> CONFIG_INET_TCP_DIAG=y
> CONFIG_TCP_CONG_ADVANCED=y
> # CONFIG_TCP_CONG_BIC is not set
> CONFIG_TCP_CONG_CUBIC=y
> CONFIG_TCP_CONG_WESTWOOD=y
> CONFIG_TCP_CONG_HTCP=y
> CONFIG_TCP_CONG_HSTCP=y
> # CONFIG_TCP_CONG_HYBLA is not set
> CONFIG_TCP_CONG_VEGAS=y
> CONFIG_TCP_CONG_SCALABLE=y
> # CONFIG_TCP_CONG_LP is not set
> CONFIG_TCP_CONG_VENO=y
> CONFIG_TCP_CONG_YEAH=y
> # CONFIG_TCP_CONG_ILLINOIS is not set
> # CONFIG_DEFAULT_BIC is not set
> CONFIG_DEFAULT_CUBIC=y
> # 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="cubic"
> # CONFIG_TCP_MD5SIG is not set
> CONFIG_IPV6=y
> CONFIG_IPV6_PRIVACY=y
> # CONFIG_IPV6_ROUTER_PREF is not set
> CONFIG_IPV6_OPTIMISTIC_DAD=y
> CONFIG_INET6_AH=y
> CONFIG_INET6_ESP=y
> # CONFIG_INET6_IPCOMP is not set
> # CONFIG_IPV6_MIP6 is not set
> # CONFIG_INET6_XFRM_TUNNEL is not set
> CONFIG_INET6_TUNNEL=y
> # CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
> CONFIG_INET6_XFRM_MODE_TUNNEL=y
> CONFIG_INET6_XFRM_MODE_BEET=y
> # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
> CONFIG_IPV6_SIT=y
> CONFIG_IPV6_NDISC_NODETYPE=y
> CONFIG_IPV6_TUNNEL=y
> CONFIG_IPV6_MULTIPLE_TABLES=y
> CONFIG_IPV6_SUBTREES=y
> CONFIG_IPV6_MROUTE=y
> CONFIG_IPV6_PIMSM_V2=y
> # CONFIG_NETLABEL is not set
> # CONFIG_NETWORK_SECMARK is not set
> CONFIG_NETFILTER=y
> CONFIG_NETFILTER_DEBUG=y
> CONFIG_NETFILTER_ADVANCED=y
>
> #
> # Core Netfilter Configuration
> #
> CONFIG_NETFILTER_NETLINK=y
> CONFIG_NETFILTER_NETLINK_QUEUE=y
> CONFIG_NETFILTER_NETLINK_LOG=y
> CONFIG_NF_CONNTRACK=y
> CONFIG_NF_CT_ACCT=y
> CONFIG_NF_CONNTRACK_MARK=y
> # CONFIG_NF_CONNTRACK_EVENTS is not set
> CONFIG_NF_CT_PROTO_DCCP=y
> CONFIG_NF_CT_PROTO_GRE=y
> # CONFIG_NF_CT_PROTO_SCTP is not set
> CONFIG_NF_CT_PROTO_UDPLITE=y
> CONFIG_NF_CONNTRACK_AMANDA=y
> CONFIG_NF_CONNTRACK_FTP=y
> CONFIG_NF_CONNTRACK_H323=y
> CONFIG_NF_CONNTRACK_IRC=y
> # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
> CONFIG_NF_CONNTRACK_PPTP=y
> # CONFIG_NF_CONNTRACK_SANE is not set
> CONFIG_NF_CONNTRACK_SIP=y
> # CONFIG_NF_CONNTRACK_TFTP is not set
> # CONFIG_NF_CT_NETLINK is not set
> CONFIG_NETFILTER_XTABLES=y
> CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
> CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
> CONFIG_NETFILTER_XT_TARGET_MARK=y
> # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
> # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
> CONFIG_NETFILTER_XT_TARGET_RATEEST=y
> CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
> CONFIG_NETFILTER_XT_MATCH_COMMENT=y
> # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
> # CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
> CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
> CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
> CONFIG_NETFILTER_XT_MATCH_DCCP=y
> # CONFIG_NETFILTER_XT_MATCH_DSCP is not set
> CONFIG_NETFILTER_XT_MATCH_ESP=y
> # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
> # CONFIG_NETFILTER_XT_MATCH_HELPER is not set
> CONFIG_NETFILTER_XT_MATCH_IPRANGE=y
> CONFIG_NETFILTER_XT_MATCH_LENGTH=y
> # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
> # CONFIG_NETFILTER_XT_MATCH_MAC is not set
> CONFIG_NETFILTER_XT_MATCH_MARK=y
> # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
> # CONFIG_NETFILTER_XT_MATCH_OWNER is not set
> CONFIG_NETFILTER_XT_MATCH_POLICY=y
> # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
> CONFIG_NETFILTER_XT_MATCH_QUOTA=y
> CONFIG_NETFILTER_XT_MATCH_RATEEST=y
> CONFIG_NETFILTER_XT_MATCH_REALM=y
> # CONFIG_NETFILTER_XT_MATCH_RECENT is not set
> # CONFIG_NETFILTER_XT_MATCH_SCTP is not set
> # CONFIG_NETFILTER_XT_MATCH_STATE is not set
> CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
> CONFIG_NETFILTER_XT_MATCH_STRING=y
> # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
> CONFIG_NETFILTER_XT_MATCH_TIME=y
> CONFIG_NETFILTER_XT_MATCH_U32=y
> CONFIG_IP_VS=y
> 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_AH_ESP=y
> CONFIG_IP_VS_PROTO_ESP=y
> CONFIG_IP_VS_PROTO_AH=y
>
> #
> # IPVS scheduler
> #
> # CONFIG_IP_VS_RR is not set
> CONFIG_IP_VS_WRR=y
> CONFIG_IP_VS_LC=y
> CONFIG_IP_VS_WLC=y
> CONFIG_IP_VS_LBLC=y
> CONFIG_IP_VS_LBLCR=y
> CONFIG_IP_VS_DH=y
> # CONFIG_IP_VS_SH is not set
> CONFIG_IP_VS_SED=y
> CONFIG_IP_VS_NQ=y
>
> #
> # IPVS application helper
> #
> CONFIG_IP_VS_FTP=y
>
> #
> # IP: Netfilter Configuration
> #
> CONFIG_NF_DEFRAG_IPV4=y
> CONFIG_NF_CONNTRACK_IPV4=y
> # CONFIG_NF_CONNTRACK_PROC_COMPAT is not set
> CONFIG_IP_NF_QUEUE=y
> # CONFIG_IP_NF_IPTABLES is not set
> CONFIG_IP_NF_ARPTABLES=y
> CONFIG_IP_NF_ARPFILTER=y
> # CONFIG_IP_NF_ARP_MANGLE is not set
>
> #
> # IPv6: Netfilter Configuration
> #
> CONFIG_NF_CONNTRACK_IPV6=y
> CONFIG_IP6_NF_QUEUE=y
> # CONFIG_IP6_NF_IPTABLES is not set
> CONFIG_IP_DCCP=y
> CONFIG_INET_DCCP_DIAG=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_IP_SCTP=y
> # CONFIG_SCTP_DBG_MSG is not set
> CONFIG_SCTP_DBG_OBJCNT=y
> # CONFIG_SCTP_HMAC_NONE is not set
> # CONFIG_SCTP_HMAC_SHA1 is not set
> CONFIG_SCTP_HMAC_MD5=y
> CONFIG_TIPC=y
> # CONFIG_TIPC_ADVANCED is not set
> CONFIG_TIPC_DEBUG=y
> # CONFIG_ATM is not set
> # CONFIG_BRIDGE is not set
> CONFIG_NET_DSA=y
> CONFIG_NET_DSA_TAG_DSA=y
> CONFIG_NET_DSA_TAG_EDSA=y
> CONFIG_NET_DSA_TAG_TRAILER=y
> CONFIG_NET_DSA_MV88E6XXX=y
> CONFIG_NET_DSA_MV88E6060=y
> CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
> CONFIG_NET_DSA_MV88E6131=y
> CONFIG_NET_DSA_MV88E6123_61_65=y
> CONFIG_VLAN_8021Q=y
> # CONFIG_VLAN_8021Q_GVRP is not set
> # CONFIG_DECNET is not set
> CONFIG_LLC=y
> CONFIG_LLC2=y
> CONFIG_IPX=y
> CONFIG_IPX_INTERN=y
> CONFIG_ATALK=y
> CONFIG_DEV_APPLETALK=y
> CONFIG_IPDDP=y
> # CONFIG_IPDDP_ENCAP is not set
> CONFIG_IPDDP_DECAP=y
> CONFIG_X25=y
> CONFIG_LAPB=y
> CONFIG_ECONET=y
> # CONFIG_ECONET_AUNUDP is not set
> CONFIG_ECONET_NATIVE=y
> CONFIG_WAN_ROUTER=y
> # CONFIG_NET_SCHED is not set
> CONFIG_NET_CLS_ROUTE=y
> CONFIG_DCB=y
>
> #
> # Network testing
> #
> CONFIG_NET_PKTGEN=y
> # CONFIG_HAMRADIO is not set
> CONFIG_CAN=y
> # CONFIG_CAN_RAW is not set
> CONFIG_CAN_BCM=y
>
> #
> # CAN Device Drivers
> #
> # CONFIG_CAN_VCAN is not set
> CONFIG_CAN_DEBUG_DEVICES=y
> CONFIG_IRDA=y
>
> #
> # IrDA protocols
> #
> CONFIG_IRLAN=y
> CONFIG_IRNET=y
> # CONFIG_IRCOMM is not set
> # CONFIG_IRDA_ULTRA is not set
>
> #
> # IrDA options
> #
> # CONFIG_IRDA_CACHE_LAST_LSAP is not set
> # CONFIG_IRDA_FAST_RR is not set
> CONFIG_IRDA_DEBUG=y
>
> #
> # Infrared-port device drivers
> #
>
> #
> # SIR device drivers
> #
> CONFIG_IRTTY_SIR=y
>
> #
> # Dongle support
> #
> CONFIG_DONGLE=y
> CONFIG_ESI_DONGLE=y
> # CONFIG_ACTISYS_DONGLE is not set
> CONFIG_TEKRAM_DONGLE=y
> CONFIG_TOIM3232_DONGLE=y
> # CONFIG_LITELINK_DONGLE is not set
> # CONFIG_MA600_DONGLE is not set
> CONFIG_GIRBIL_DONGLE=y
> CONFIG_MCP2120_DONGLE=y
> # CONFIG_OLD_BELKIN_DONGLE is not set
> CONFIG_ACT200L_DONGLE=y
> # CONFIG_KINGSUN_DONGLE is not set
> # CONFIG_KSDAZZLE_DONGLE is not set
> CONFIG_KS959_DONGLE=y
>
> #
> # FIR device drivers
> #
> CONFIG_USB_IRDA=y
> CONFIG_SIGMATEL_FIR=y
> # CONFIG_NSC_FIR is not set
> # CONFIG_WINBOND_FIR is not set
> CONFIG_SMC_IRCC_FIR=y
> CONFIG_ALI_FIR=y
> CONFIG_VLSI_FIR=y
> CONFIG_VIA_FIR=y
> CONFIG_MCS_FIR=y
> # CONFIG_BT is not set
> CONFIG_AF_RXRPC=y
> CONFIG_AF_RXRPC_DEBUG=y
> # CONFIG_RXKAD is not set
> CONFIG_PHONET=y
> CONFIG_FIB_RULES=y
> CONFIG_WIRELESS=y
> CONFIG_CFG80211=y
> CONFIG_CFG80211_REG_DEBUG=y
> CONFIG_NL80211=y
> CONFIG_WIRELESS_OLD_REGULATORY=y
> CONFIG_WIRELESS_EXT=y
> # CONFIG_WIRELESS_EXT_SYSFS is not set
> CONFIG_LIB80211=y
> CONFIG_LIB80211_CRYPT_WEP=y
> CONFIG_LIB80211_CRYPT_CCMP=y
> CONFIG_LIB80211_CRYPT_TKIP=y
> CONFIG_MAC80211=y
>
> #
> # Rate control algorithm selection
> #
> CONFIG_MAC80211_RC_MINSTREL=y
> # CONFIG_MAC80211_RC_DEFAULT_PID is not set
> CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
> CONFIG_MAC80211_RC_DEFAULT="minstrel"
> # CONFIG_MAC80211_MESH is not set
> CONFIG_MAC80211_LEDS=y
> CONFIG_MAC80211_DEBUGFS=y
> CONFIG_MAC80211_DEBUG_MENU=y
> CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT=y
> CONFIG_MAC80211_NOINLINE=y
> CONFIG_MAC80211_VERBOSE_DEBUG=y
> CONFIG_MAC80211_HT_DEBUG=y
> # CONFIG_MAC80211_TKIP_DEBUG is not set
> # CONFIG_MAC80211_IBSS_DEBUG is not set
> # CONFIG_MAC80211_VERBOSE_PS_DEBUG is not set
> # CONFIG_MAC80211_DEBUG_COUNTERS is not set
> CONFIG_MAC80211_VERBOSE_SPECT_MGMT_DEBUG=y
> CONFIG_WIMAX=y
> CONFIG_WIMAX_DEBUG_LEVEL=8
> CONFIG_RFKILL=y
> CONFIG_RFKILL_INPUT=y
> CONFIG_RFKILL_LEDS=y
>
> #
> # 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=y
> CONFIG_DEBUG_DEVRES=y
> # CONFIG_SYS_HYPERVISOR is not set
> CONFIG_CONNECTOR=y
> # CONFIG_PROC_EVENTS is not set
> CONFIG_PARPORT=y
> # CONFIG_PARPORT_PC is not set
> # CONFIG_PARPORT_GSC is not set
> # CONFIG_PARPORT_AX88796 is not set
> CONFIG_PARPORT_1284=y
> CONFIG_PARPORT_NOT_PC=y
> CONFIG_PNP=y
> # CONFIG_PNP_DEBUG_MESSAGES is not set
>
> #
> # Protocols
> #
> CONFIG_PNPACPI=y
> CONFIG_BLK_DEV=y
> CONFIG_BLK_DEV_FD=y
> CONFIG_BLK_CPQ_DA=y
> # CONFIG_BLK_CPQ_CISS_DA is not set
> CONFIG_BLK_DEV_DAC960=y
> CONFIG_BLK_DEV_UMEM=y
> # CONFIG_BLK_DEV_COW_COMMON is not set
> CONFIG_BLK_DEV_LOOP=y
> CONFIG_BLK_DEV_CRYPTOLOOP=y
> # CONFIG_BLK_DEV_NBD is not set
> CONFIG_BLK_DEV_SX8=y
> CONFIG_BLK_DEV_UB=y
> # CONFIG_BLK_DEV_RAM is not set
> # CONFIG_CDROM_PKTCDVD is not set
> CONFIG_ATA_OVER_ETH=y
> CONFIG_VIRTIO_BLK=y
> CONFIG_BLK_DEV_HD=y
> CONFIG_MISC_DEVICES=y
> CONFIG_IBM_ASM=y
> CONFIG_PHANTOM=y
> CONFIG_EEPROM_93CX6=y
> CONFIG_SGI_IOC4=y
> CONFIG_TIFM_CORE=y
> CONFIG_TIFM_7XX1=y
> # CONFIG_ACER_WMI is not set
> CONFIG_FUJITSU_LAPTOP=y
> CONFIG_FUJITSU_LAPTOP_DEBUG=y
> # CONFIG_HP_WMI is not set
> CONFIG_ICS932S401=y
> # CONFIG_MSI_LAPTOP is not set
> CONFIG_PANASONIC_LAPTOP=y
> CONFIG_COMPAL_LAPTOP=y
> CONFIG_SONY_LAPTOP=y
> # CONFIG_SONYPI_COMPAT is not set
> # CONFIG_THINKPAD_ACPI is not set
> CONFIG_INTEL_MENLOW=y
> # CONFIG_EEEPC_LAPTOP is not set
> CONFIG_ENCLOSURE_SERVICES=y
> CONFIG_SGI_XP=y
> CONFIG_HP_ILO=y
> CONFIG_SGI_GRU=y
> CONFIG_SGI_GRU_DEBUG=y
> CONFIG_C2PORT=y
> CONFIG_C2PORT_DURAMAR_2150=y
> CONFIG_HAVE_IDE=y
>
> #
> # SCSI device support
> #
> CONFIG_RAID_ATTRS=y
> CONFIG_SCSI=y
> CONFIG_SCSI_DMA=y
> CONFIG_SCSI_TGT=y
> # CONFIG_SCSI_NETLINK is not set
> # CONFIG_SCSI_PROC_FS is not set
>
> #
> # SCSI support type (disk, tape, CD-ROM)
> #
> CONFIG_BLK_DEV_SD=y
> CONFIG_CHR_DEV_ST=y
> 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 is not set
> CONFIG_SCSI_ENCLOSURE=y
>
> #
> # Some SCSI devices (e.g. CD jukebox) support multiple LUNs
> #
> # CONFIG_SCSI_MULTI_LUN is not set
> CONFIG_SCSI_CONSTANTS=y
> # CONFIG_SCSI_LOGGING is not set
> CONFIG_SCSI_SCAN_ASYNC=y
>
> #
> # SCSI Transports
> #
> CONFIG_SCSI_SPI_ATTRS=y
> # CONFIG_SCSI_FC_ATTRS is not set
> # CONFIG_SCSI_ISCSI_ATTRS is not set
> CONFIG_SCSI_SAS_ATTRS=y
> CONFIG_SCSI_SRP_ATTRS=y
> # CONFIG_SCSI_SRP_TGT_ATTRS is not set
> # CONFIG_SCSI_LOWLEVEL is not set
> CONFIG_SCSI_AIC7XXX=y
> CONFIG_SCSI_LOWLEVEL_PCMCIA=y
> # CONFIG_SCSI_DH is not set
> 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=y
> CONFIG_SATA_NV=y
> CONFIG_PDC_ADMA=y
> CONFIG_SATA_QSTOR=y
> CONFIG_SATA_PROMISE=y
> # CONFIG_SATA_SX4 is not set
> # CONFIG_SATA_SIL is not set
> CONFIG_SATA_SIS=y
> CONFIG_SATA_ULI=y
> CONFIG_SATA_VIA=y
> # CONFIG_SATA_VITESSE is not set
> CONFIG_SATA_INIC162X=y
> CONFIG_PATA_ACPI=y
> CONFIG_PATA_ALI=y
> CONFIG_PATA_AMD=y
> CONFIG_PATA_ARTOP=y
> CONFIG_PATA_ATIIXP=y
> CONFIG_PATA_CMD640_PCI=y
> # CONFIG_PATA_CMD64X is not set
> CONFIG_PATA_CS5520=y
> # CONFIG_PATA_CS5530 is not set
> CONFIG_PATA_CYPRESS=y
> CONFIG_PATA_EFAR=y
> CONFIG_ATA_GENERIC=y
> CONFIG_PATA_HPT366=y
> CONFIG_PATA_HPT37X=y
> # CONFIG_PATA_HPT3X2N is not set
> CONFIG_PATA_HPT3X3=y
> # CONFIG_PATA_HPT3X3_DMA is not set
> # CONFIG_PATA_IT821X is not set
> CONFIG_PATA_IT8213=y
> CONFIG_PATA_JMICRON=y
> CONFIG_PATA_TRIFLEX=y
> CONFIG_PATA_MARVELL=y
> CONFIG_PATA_MPIIX=y
> CONFIG_PATA_OLDPIIX=y
> CONFIG_PATA_NETCELL=y
> CONFIG_PATA_NINJA32=y
> CONFIG_PATA_NS87410=y
> # CONFIG_PATA_NS87415 is not set
> CONFIG_PATA_OPTI=y
> # CONFIG_PATA_OPTIDMA is not set
> # CONFIG_PATA_PCMCIA is not set
> CONFIG_PATA_PDC_OLD=y
> CONFIG_PATA_RADISYS=y
> CONFIG_PATA_RZ1000=y
> CONFIG_PATA_SC1200=y
> # CONFIG_PATA_SERVERWORKS is not set
> CONFIG_PATA_PDC2027X=y
> CONFIG_PATA_SIL680=y
> CONFIG_PATA_SIS=y
> # CONFIG_PATA_VIA is not set
> CONFIG_PATA_WINBOND=y
> CONFIG_PATA_SCH=y
> CONFIG_MD=y
> # CONFIG_BLK_DEV_MD is not set
> CONFIG_BLK_DEV_DM=y
> CONFIG_DM_DEBUG=y
> CONFIG_DM_CRYPT=y
> CONFIG_DM_SNAPSHOT=y
> CONFIG_DM_MIRROR=y
> CONFIG_DM_ZERO=y
> CONFIG_DM_MULTIPATH=y
> # CONFIG_DM_DELAY is not set
> # CONFIG_DM_UEVENT is not set
> # CONFIG_FUSION is not set
>
> #
> # IEEE 1394 (FireWire) support
> #
>
> #
> # Enable only one of the two stacks, unless you know what you are doing
> #
> CONFIG_FIREWIRE=y
> CONFIG_FIREWIRE_OHCI=y
> CONFIG_FIREWIRE_OHCI_DEBUG=y
> # CONFIG_FIREWIRE_SBP2 is not set
> # CONFIG_IEEE1394 is not set
> CONFIG_I2O=y
> CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
> # CONFIG_I2O_EXT_ADAPTEC is not set
> CONFIG_I2O_BUS=y
> CONFIG_I2O_BLOCK=y
> # CONFIG_I2O_SCSI is not set
> CONFIG_I2O_PROC=y
> CONFIG_MACINTOSH_DRIVERS=y
> CONFIG_MAC_EMUMOUSEBTN=y
> CONFIG_NETDEVICES=y
> # CONFIG_DUMMY is not set
> CONFIG_BONDING=y
> CONFIG_MACVLAN=y
> CONFIG_EQUALIZER=y
> CONFIG_TUN=y
> CONFIG_VETH=y
> # CONFIG_NET_SB1000 is not set
> CONFIG_ARCNET=y
> CONFIG_ARCNET_1201=y
> CONFIG_ARCNET_1051=y
> CONFIG_ARCNET_RAW=y
> # CONFIG_ARCNET_CAP is not set
> # CONFIG_ARCNET_COM90xx is not set
> # CONFIG_ARCNET_COM90xxIO is not set
> CONFIG_ARCNET_RIM_I=y
> # CONFIG_ARCNET_COM20020 is not set
> CONFIG_PHYLIB=y
>
> #
> # MII PHY device drivers
> #
> # CONFIG_MARVELL_PHY is not set
> # CONFIG_DAVICOM_PHY is not set
> CONFIG_QSEMI_PHY=y
> CONFIG_LXT_PHY=y
> CONFIG_CICADA_PHY=y
> CONFIG_VITESSE_PHY=y
> CONFIG_SMSC_PHY=y
> # CONFIG_BROADCOM_PHY is not set
> # CONFIG_ICPLUS_PHY is not set
> CONFIG_REALTEK_PHY=y
> CONFIG_NATIONAL_PHY=y
> CONFIG_STE10XP=y
> CONFIG_LSI_ET1011C_PHY=y
> # CONFIG_FIXED_PHY is not set
> CONFIG_MDIO_BITBANG=y
> CONFIG_NET_ETHERNET=y
> CONFIG_MII=y
> # CONFIG_HAPPYMEAL is not set
> CONFIG_SUNGEM=y
> # CONFIG_CASSINI is not set
> CONFIG_NET_VENDOR_3COM=y
> CONFIG_VORTEX=y
> CONFIG_TYPHOON=y
> CONFIG_ENC28J60=y
> CONFIG_ENC28J60_WRITEVERIFY=y
> CONFIG_NET_TULIP=y
> # CONFIG_DE2104X is not set
> CONFIG_TULIP=y
> CONFIG_TULIP_MWI=y
> CONFIG_TULIP_MMIO=y
> # CONFIG_TULIP_NAPI is not set
> CONFIG_DE4X5=y
> CONFIG_WINBOND_840=y
> CONFIG_DM9102=y
> # CONFIG_ULI526X is not set
> # CONFIG_PCMCIA_XIRCOM is not set
> CONFIG_HP100=y
> # 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=y
> # CONFIG_AMD8111_ETH is not set
> CONFIG_ADAPTEC_STARFIRE=y
> CONFIG_B44=y
> CONFIG_B44_PCI_AUTOSELECT=y
> CONFIG_B44_PCICORE_AUTOSELECT=y
> CONFIG_B44_PCI=y
> CONFIG_FORCEDETH=y
> # CONFIG_FORCEDETH_NAPI is not set
> CONFIG_E100=y
> CONFIG_FEALNX=y
> CONFIG_NATSEMI=y
> CONFIG_NE2K_PCI=y
> CONFIG_8139CP=y
> 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 is not set
> # CONFIG_EPIC100 is not set
> # CONFIG_SMSC9420 is not set
> CONFIG_SUNDANCE=y
> CONFIG_SUNDANCE_MMIO=y
> CONFIG_TLAN=y
> CONFIG_VIA_RHINE=y
> CONFIG_VIA_RHINE_MMIO=y
> CONFIG_SC92031=y
> # CONFIG_NET_POCKET is not set
> CONFIG_ATL2=y
> CONFIG_NETDEV_1000=y
> CONFIG_ACENIC=y
> CONFIG_ACENIC_OMIT_TIGON_I=y
> # CONFIG_DL2K is not set
> # CONFIG_E1000 is not set
> CONFIG_E1000E=y
> CONFIG_IP1000=y
> # CONFIG_IGB is not set
> CONFIG_NS83820=y
> CONFIG_HAMACHI=y
> # CONFIG_YELLOWFIN is not set
> # CONFIG_R8169 is not set
> # CONFIG_SIS190 is not set
> # CONFIG_SKGE is not set
> # CONFIG_SKY2 is not set
> CONFIG_VIA_VELOCITY=y
> CONFIG_TIGON3=y
> CONFIG_BNX2=y
> CONFIG_QLA3XXX=y
> CONFIG_ATL1=y
> # CONFIG_ATL1E is not set
> # CONFIG_JME is not set
> # CONFIG_NETDEV_10000 is not set
> # CONFIG_TR is not set
>
> #
> # Wireless LAN
> #
> CONFIG_WLAN_PRE80211=y
> CONFIG_STRIP=y
> # CONFIG_PCMCIA_WAVELAN is not set
> CONFIG_PCMCIA_NETWAVE=y
> CONFIG_WLAN_80211=y
> CONFIG_PCMCIA_RAYCS=y
> # CONFIG_LIBERTAS is not set
> # CONFIG_LIBERTAS_THINFIRM is not set
> CONFIG_AIRO=y
> CONFIG_HERMES=y
> CONFIG_HERMES_CACHE_FW_ON_INIT=y
> CONFIG_PLX_HERMES=y
> CONFIG_TMD_HERMES=y
> CONFIG_NORTEL_HERMES=y
> CONFIG_PCI_HERMES=y
> CONFIG_PCMCIA_HERMES=y
> CONFIG_PCMCIA_SPECTRUM=y
> CONFIG_ATMEL=y
> CONFIG_PCI_ATMEL=y
> CONFIG_PCMCIA_ATMEL=y
> # CONFIG_AIRO_CS is not set
> CONFIG_PCMCIA_WL3501=y
> CONFIG_PRISM54=y
> CONFIG_USB_ZD1201=y
> CONFIG_USB_NET_RNDIS_WLAN=y
> # CONFIG_RTL8180 is not set
> CONFIG_RTL8187=y
> # CONFIG_ADM8211 is not set
> # CONFIG_MAC80211_HWSIM is not set
> CONFIG_P54_COMMON=y
> CONFIG_P54_USB=y
> # CONFIG_P54_PCI is not set
> CONFIG_ATH5K=y
> # CONFIG_ATH5K_DEBUG is not set
> CONFIG_ATH9K=y
> CONFIG_ATH9K_DEBUG=y
> # CONFIG_IPW2100 is not set
> CONFIG_IPW2200=y
> CONFIG_IPW2200_MONITOR=y
> CONFIG_IPW2200_RADIOTAP=y
> CONFIG_IPW2200_PROMISCUOUS=y
> CONFIG_IPW2200_QOS=y
> CONFIG_IPW2200_DEBUG=y
> CONFIG_LIBIPW=y
> CONFIG_LIBIPW_DEBUG=y
> CONFIG_IWLWIFI=y
> CONFIG_IWLCORE=y
> # CONFIG_IWLWIFI_LEDS is not set
> # CONFIG_IWLWIFI_RFKILL is not set
> CONFIG_IWLWIFI_DEBUG=y
> CONFIG_IWLWIFI_DEBUGFS=y
> CONFIG_IWLAGN=y
> CONFIG_IWLAGN_SPECTRUM_MEASUREMENT=y
> # CONFIG_IWLAGN_LEDS is not set
> # CONFIG_IWL4965 is not set
> # CONFIG_IWL5000 is not set
> # CONFIG_IWL3945 is not set
> CONFIG_HOSTAP=y
> CONFIG_HOSTAP_FIRMWARE=y
> CONFIG_HOSTAP_FIRMWARE_NVRAM=y
> # CONFIG_HOSTAP_PLX is not set
> CONFIG_HOSTAP_PCI=y
> CONFIG_HOSTAP_CS=y
> CONFIG_B43=y
> CONFIG_B43_PCI_AUTOSELECT=y
> CONFIG_B43_PCICORE_AUTOSELECT=y
> CONFIG_B43_PCMCIA=y
> CONFIG_B43_PIO=y
> CONFIG_B43_LEDS=y
> CONFIG_B43_RFKILL=y
> CONFIG_B43_DEBUG=y
> CONFIG_B43_FORCE_PIO=y
> # CONFIG_B43LEGACY is not set
> # CONFIG_ZD1211RW is not set
>
> #
> # WiMAX Wireless Broadband devices
> #
>
> #
> # Enable MMC support to see WiMAX SDIO drivers
> #
>
> #
> # USB Network Adapters
> #
> # CONFIG_USB_CATC is not set
> CONFIG_USB_KAWETH=y
> CONFIG_USB_PEGASUS=y
> # CONFIG_USB_RTL8150 is not set
> CONFIG_USB_USBNET=y
> CONFIG_USB_NET_AX8817X=y
> CONFIG_USB_NET_CDCETHER=y
> # CONFIG_USB_NET_DM9601 is not set
> CONFIG_USB_NET_SMSC95XX=y
> CONFIG_USB_NET_GL620A=y
> # CONFIG_USB_NET_NET1080 is not set
> CONFIG_USB_NET_PLUSB=y
> CONFIG_USB_NET_MCS7830=y
> CONFIG_USB_NET_RNDIS_HOST=y
> # CONFIG_USB_NET_CDC_SUBSET is not set
> CONFIG_USB_NET_ZAURUS=y
> # CONFIG_USB_HSO is not set
> CONFIG_NET_PCMCIA=y
> CONFIG_PCMCIA_3C589=y
> CONFIG_PCMCIA_3C574=y
> CONFIG_PCMCIA_FMVJ18X=y
> CONFIG_PCMCIA_PCNET=y
> CONFIG_PCMCIA_NMCLAN=y
> CONFIG_PCMCIA_SMC91C92=y
> # CONFIG_PCMCIA_XIRC2PS is not set
> CONFIG_PCMCIA_AXNET=y
> CONFIG_WAN=y
> CONFIG_LANMEDIA=y
> CONFIG_HDLC=y
> CONFIG_HDLC_RAW=y
> # CONFIG_HDLC_RAW_ETH is not set
> # CONFIG_HDLC_CISCO is not set
> CONFIG_HDLC_FR=y
> CONFIG_HDLC_PPP=y
> # CONFIG_HDLC_X25 is not set
> CONFIG_PCI200SYN=y
> # CONFIG_WANXL is not set
> CONFIG_PC300TOO=y
> # CONFIG_FARSYNC is not set
> CONFIG_DLCI=y
> CONFIG_DLCI_MAX=8
> CONFIG_WAN_ROUTER_DRIVERS=y
> CONFIG_CYCLADES_SYNC=y
> # CONFIG_CYCLOMX_X25 is not set
> CONFIG_LAPBETHER=y
> CONFIG_X25_ASY=y
> # CONFIG_SBNI is not set
> # CONFIG_FDDI is not set
> CONFIG_HIPPI=y
> # CONFIG_ROADRUNNER is not set
> CONFIG_PLIP=y
> CONFIG_PPP=y
> CONFIG_PPP_MULTILINK=y
> CONFIG_PPP_FILTER=y
> CONFIG_PPP_ASYNC=y
> CONFIG_PPP_SYNC_TTY=y
> CONFIG_PPP_DEFLATE=y
> CONFIG_PPP_BSDCOMP=y
> CONFIG_PPP_MPPE=y
> CONFIG_PPPOE=y
> # CONFIG_PPPOL2TP is not set
> CONFIG_SLIP=y
> CONFIG_SLIP_COMPRESSED=y
> CONFIG_SLHC=y
> CONFIG_SLIP_SMART=y
> CONFIG_SLIP_MODE_SLIP6=y
> # CONFIG_NET_FC is not set
> CONFIG_NETCONSOLE=y
> # CONFIG_NETCONSOLE_DYNAMIC is not set
> CONFIG_NETPOLL=y
> CONFIG_NETPOLL_TRAP=y
> CONFIG_NET_POLL_CONTROLLER=y
> CONFIG_VIRTIO_NET=y
> CONFIG_ISDN=y
> # CONFIG_ISDN_I4L is not set
> CONFIG_ISDN_CAPI=y
> CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
> CONFIG_CAPI_TRACE=y
> CONFIG_ISDN_CAPI_MIDDLEWARE=y
> CONFIG_ISDN_CAPI_CAPI20=y
> # CONFIG_ISDN_CAPI_CAPIFS_BOOL is not set
>
> #
> # CAPI hardware drivers
> #
> # CONFIG_CAPI_AVM is not set
> # CONFIG_CAPI_EICON 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 is not set
> CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
> CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
> # CONFIG_INPUT_JOYDEV is not set
> CONFIG_INPUT_EVDEV=y
> CONFIG_INPUT_EVBUG=y
>
> #
> # Input Device Drivers
> #
> CONFIG_INPUT_KEYBOARD=y
> CONFIG_KEYBOARD_ATKBD=y
> # CONFIG_KEYBOARD_SUNKBD is not set
> CONFIG_KEYBOARD_LKKBD=y
> CONFIG_KEYBOARD_XTKBD=y
> CONFIG_KEYBOARD_NEWTON=y
> CONFIG_KEYBOARD_STOWAWAY=y
> CONFIG_INPUT_MOUSE=y
> CONFIG_MOUSE_PS2=y
> CONFIG_MOUSE_PS2_ALPS=y
> CONFIG_MOUSE_PS2_LOGIPS2PP=y
> CONFIG_MOUSE_PS2_SYNAPTICS=y
> CONFIG_MOUSE_PS2_LIFEBOOK=y
> CONFIG_MOUSE_PS2_TRACKPOINT=y
> # CONFIG_MOUSE_PS2_ELANTECH is not set
> # CONFIG_MOUSE_PS2_TOUCHKIT is not set
> CONFIG_MOUSE_SERIAL=y
> CONFIG_MOUSE_APPLETOUCH=y
> # CONFIG_MOUSE_BCM5974 is not set
> # CONFIG_MOUSE_VSXXXAA is not set
> # CONFIG_INPUT_JOYSTICK is not set
> CONFIG_INPUT_TABLET=y
> CONFIG_TABLET_USB_ACECAD=y
> CONFIG_TABLET_USB_AIPTEK=y
> CONFIG_TABLET_USB_GTCO=y
> # CONFIG_TABLET_USB_KBTAB is not set
> CONFIG_TABLET_USB_WACOM=y
> CONFIG_INPUT_TOUCHSCREEN=y
> CONFIG_TOUCHSCREEN_ADS7846=y
> CONFIG_TOUCHSCREEN_DA9034=y
> CONFIG_TOUCHSCREEN_FUJITSU=y
> CONFIG_TOUCHSCREEN_GUNZE=y
> CONFIG_TOUCHSCREEN_ELO=y
> CONFIG_TOUCHSCREEN_WACOM_W8001=y
> # CONFIG_TOUCHSCREEN_MTOUCH is not set
> CONFIG_TOUCHSCREEN_INEXIO=y
> CONFIG_TOUCHSCREEN_MK712=y
> CONFIG_TOUCHSCREEN_PENMOUNT=y
> # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
> # CONFIG_TOUCHSCREEN_TOUCHWIN is not set
> # CONFIG_TOUCHSCREEN_WM97XX is not set
> # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
> CONFIG_TOUCHSCREEN_TOUCHIT213=y
> # CONFIG_TOUCHSCREEN_TSC2007 is not set
> CONFIG_INPUT_MISC=y
> CONFIG_INPUT_PCSPKR=y
> CONFIG_INPUT_APANEL=y
> CONFIG_INPUT_ATLAS_BTNS=y
> # CONFIG_INPUT_ATI_REMOTE is not set
> CONFIG_INPUT_ATI_REMOTE2=y
> CONFIG_INPUT_KEYSPAN_REMOTE=y
> CONFIG_INPUT_POWERMATE=y
> CONFIG_INPUT_YEALINK=y
> # CONFIG_INPUT_CM109 is not set
> # CONFIG_INPUT_UINPUT is not set
>
> #
> # Hardware I/O ports
> #
> CONFIG_SERIO=y
> CONFIG_SERIO_I8042=y
> CONFIG_SERIO_SERPORT=y
> CONFIG_SERIO_CT82C710=y
> # CONFIG_SERIO_PARKBD is not set
> CONFIG_SERIO_PCIPS2=y
> CONFIG_SERIO_LIBPS2=y
> # CONFIG_SERIO_RAW is not set
> CONFIG_GAMEPORT=y
> CONFIG_GAMEPORT_NS558=y
> # CONFIG_GAMEPORT_L4 is not set
> # CONFIG_GAMEPORT_EMU10K1 is not set
> CONFIG_GAMEPORT_FM801=y
>
> #
> # 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=y
> CONFIG_SERIAL_8250_PNP=y
> CONFIG_SERIAL_8250_CS=y
> 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_SHARE_IRQ=y
> # CONFIG_SERIAL_8250_DETECT_IRQ is not set
> CONFIG_SERIAL_8250_RSA=y
>
> #
> # Non-8250 serial port support
> #
> CONFIG_SERIAL_CORE=y
> CONFIG_SERIAL_CORE_CONSOLE=y
> CONFIG_CONSOLE_POLL=y
> # CONFIG_SERIAL_JSM is not set
> 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 is not set
> CONFIG_HVC_DRIVER=y
> CONFIG_VIRTIO_CONSOLE=y
> CONFIG_IPMI_HANDLER=y
> CONFIG_IPMI_PANIC_EVENT=y
> # CONFIG_IPMI_PANIC_STRING is not set
> CONFIG_IPMI_DEVICE_INTERFACE=y
> CONFIG_IPMI_SI=y
> CONFIG_IPMI_WATCHDOG=y
> # CONFIG_IPMI_POWEROFF is not set
> CONFIG_HW_RANDOM=y
> # CONFIG_HW_RANDOM_INTEL is not set
> CONFIG_HW_RANDOM_AMD=y
> CONFIG_HW_RANDOM_VIRTIO=y
> CONFIG_NVRAM=y
> CONFIG_RTC=y
> CONFIG_R3964=y
> CONFIG_APPLICOM=y
>
> #
> # PCMCIA character devices
> #
> CONFIG_SYNCLINK_CS=y
> # CONFIG_CARDMAN_4000 is not set
> CONFIG_CARDMAN_4040=y
> CONFIG_IPWIRELESS=y
> # CONFIG_MWAVE is not set
> # CONFIG_PC8736x_GPIO is not set
> # CONFIG_RAW_DRIVER is not set
> CONFIG_HPET=y
> CONFIG_HPET_MMAP=y
> # CONFIG_HANGCHECK_TIMER is not set
> CONFIG_TCG_TPM=y
> CONFIG_TCG_TIS=y
> CONFIG_TCG_NSC=y
> CONFIG_TCG_ATMEL=y
> CONFIG_TCG_INFINEON=y
> CONFIG_TELCLOCK=y
> CONFIG_DEVPORT=y
> CONFIG_I2C=y
> CONFIG_I2C_BOARDINFO=y
> CONFIG_I2C_CHARDEV=y
> CONFIG_I2C_HELPER_AUTO=y
> CONFIG_I2C_ALGOBIT=y
> CONFIG_I2C_ALGOPCA=y
>
> #
> # I2C Hardware Bus support
> #
>
> #
> # PC SMBus host controller drivers
> #
> # CONFIG_I2C_ALI1535 is not set
> CONFIG_I2C_ALI1563=y
> # CONFIG_I2C_ALI15X3 is not set
> CONFIG_I2C_AMD756=y
> # CONFIG_I2C_AMD8111 is not set
> CONFIG_I2C_I801=y
> CONFIG_I2C_ISCH=y
> # CONFIG_I2C_PIIX4 is not set
> # CONFIG_I2C_NFORCE2 is not set
> CONFIG_I2C_SIS5595=y
> CONFIG_I2C_SIS630=y
> CONFIG_I2C_SIS96X=y
> CONFIG_I2C_VIA=y
> # CONFIG_I2C_VIAPRO is not set
>
> #
> # I2C system bus drivers (mostly embedded / system-on-chip)
> #
> # CONFIG_I2C_OCORES is not set
> # CONFIG_I2C_SIMTEC is not set
>
> #
> # External I2C/SMBus adapter drivers
> #
> CONFIG_I2C_PARPORT=y
> CONFIG_I2C_PARPORT_LIGHT=y
> CONFIG_I2C_TAOS_EVM=y
> CONFIG_I2C_TINY_USB=y
>
> #
> # Graphics adapter I2C/DDC channel drivers
> #
> # CONFIG_I2C_VOODOO3 is not set
>
> #
> # Other I2C/SMBus bus drivers
> #
> CONFIG_I2C_PCA_PLATFORM=y
>
> #
> # Miscellaneous I2C Chip support
> #
> # CONFIG_DS1682 is not set
> # CONFIG_AT24 is not set
> CONFIG_SENSORS_EEPROM=y
> CONFIG_SENSORS_PCF8574=y
> # CONFIG_PCF8575 is not set
> # CONFIG_SENSORS_PCA9539 is not set
> CONFIG_SENSORS_PCF8591=y
> CONFIG_SENSORS_MAX6875=y
> CONFIG_SENSORS_TSL2550=y
> # CONFIG_I2C_DEBUG_CORE is not set
> CONFIG_I2C_DEBUG_ALGO=y
> # CONFIG_I2C_DEBUG_BUS is not set
> CONFIG_I2C_DEBUG_CHIP=y
> CONFIG_SPI=y
> CONFIG_SPI_DEBUG=y
> CONFIG_SPI_MASTER=y
>
> #
> # SPI Master Controller Drivers
> #
> CONFIG_SPI_BITBANG=y
> CONFIG_SPI_BUTTERFLY=y
> # CONFIG_SPI_LM70_LLP is not set
>
> #
> # SPI Protocol Masters
> #
> CONFIG_SPI_AT25=y
> # CONFIG_SPI_SPIDEV is not set
> # CONFIG_SPI_TLE62X0 is not set
> 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=y
> CONFIG_W1_MASTER_DS2482=y
>
> #
> # 1-wire Slaves
> #
> # CONFIG_W1_SLAVE_THERM is not set
> CONFIG_W1_SLAVE_SMEM=y
> CONFIG_W1_SLAVE_DS2433=y
> # CONFIG_W1_SLAVE_DS2433_CRC is not set
> CONFIG_W1_SLAVE_DS2760=y
> CONFIG_W1_SLAVE_BQ27000=y
> CONFIG_POWER_SUPPLY=y
> CONFIG_POWER_SUPPLY_DEBUG=y
> CONFIG_PDA_POWER=y
> # CONFIG_BATTERY_DS2760 is not set
> # CONFIG_BATTERY_BQ27x00 is not set
> CONFIG_BATTERY_DA9030=y
> CONFIG_HWMON=y
> CONFIG_HWMON_VID=y
> # CONFIG_SENSORS_ABITUGURU is not set
> # CONFIG_SENSORS_ABITUGURU3 is not set
> CONFIG_SENSORS_AD7414=y
> CONFIG_SENSORS_AD7418=y
> CONFIG_SENSORS_ADCXX=y
> CONFIG_SENSORS_ADM1021=y
> # CONFIG_SENSORS_ADM1025 is not set
> CONFIG_SENSORS_ADM1026=y
> CONFIG_SENSORS_ADM1029=y
> CONFIG_SENSORS_ADM1031=y
> CONFIG_SENSORS_ADM9240=y
> CONFIG_SENSORS_ADT7462=y
> CONFIG_SENSORS_ADT7470=y
> # CONFIG_SENSORS_ADT7473 is not set
> # CONFIG_SENSORS_K8TEMP is not set
> CONFIG_SENSORS_ASB100=y
> CONFIG_SENSORS_ATXP1=y
> CONFIG_SENSORS_DS1621=y
> CONFIG_SENSORS_I5K_AMB=y
> CONFIG_SENSORS_F71805F=y
> CONFIG_SENSORS_F71882FG=y
> CONFIG_SENSORS_F75375S=y
> CONFIG_SENSORS_FSCHER=y
> CONFIG_SENSORS_FSCPOS=y
> CONFIG_SENSORS_FSCHMD=y
> CONFIG_SENSORS_GL518SM=y
> CONFIG_SENSORS_GL520SM=y
> CONFIG_SENSORS_CORETEMP=y
> # CONFIG_SENSORS_IBMAEM is not set
> CONFIG_SENSORS_IBMPEX=y
> CONFIG_SENSORS_IT87=y
> CONFIG_SENSORS_LM63=y
> # CONFIG_SENSORS_LM70 is not set
> CONFIG_SENSORS_LM75=y
> CONFIG_SENSORS_LM77=y
> CONFIG_SENSORS_LM78=y
> # CONFIG_SENSORS_LM80 is not set
> # CONFIG_SENSORS_LM83 is not set
> CONFIG_SENSORS_LM85=y
> # CONFIG_SENSORS_LM87 is not set
> CONFIG_SENSORS_LM90=y
> # CONFIG_SENSORS_LM92 is not set
> # CONFIG_SENSORS_LM93 is not set
> # CONFIG_SENSORS_LTC4245 is not set
> CONFIG_SENSORS_MAX1111=y
> CONFIG_SENSORS_MAX1619=y
> CONFIG_SENSORS_MAX6650=y
> CONFIG_SENSORS_PC87360=y
> CONFIG_SENSORS_PC87427=y
> CONFIG_SENSORS_SIS5595=y
> # CONFIG_SENSORS_DME1737 is not set
> CONFIG_SENSORS_SMSC47M1=y
> # CONFIG_SENSORS_SMSC47M192 is not set
> CONFIG_SENSORS_SMSC47B397=y
> CONFIG_SENSORS_ADS7828=y
> CONFIG_SENSORS_THMC50=y
> CONFIG_SENSORS_VIA686A=y
> # CONFIG_SENSORS_VT1211 is not set
> CONFIG_SENSORS_VT8231=y
> CONFIG_SENSORS_W83781D=y
> CONFIG_SENSORS_W83791D=y
> CONFIG_SENSORS_W83792D=y
> # CONFIG_SENSORS_W83793 is not set
> CONFIG_SENSORS_W83L785TS=y
> CONFIG_SENSORS_W83L786NG=y
> CONFIG_SENSORS_W83627HF=y
> CONFIG_SENSORS_W83627EHF=y
> CONFIG_SENSORS_HDAPS=y
> CONFIG_SENSORS_LIS3LV02D=y
> # CONFIG_SENSORS_APPLESMC is not set
> CONFIG_HWMON_DEBUG_CHIP=y
> CONFIG_THERMAL=y
> CONFIG_THERMAL_HWMON=y
> CONFIG_WATCHDOG=y
> # CONFIG_WATCHDOG_NOWAYOUT is not set
>
> #
> # Watchdog Device Drivers
> #
> CONFIG_SOFT_WATCHDOG=y
> CONFIG_ACQUIRE_WDT=y
> CONFIG_ADVANTECH_WDT=y
> CONFIG_ALIM1535_WDT=y
> CONFIG_ALIM7101_WDT=y
> # CONFIG_SC520_WDT is not set
> # CONFIG_IB700_WDT is not set
> CONFIG_IBMASR=y
> # CONFIG_WAFER_WDT is not set
> # CONFIG_I6300ESB_WDT is not set
> CONFIG_ITCO_WDT=y
> CONFIG_ITCO_VENDOR_SUPPORT=y
> CONFIG_IT8712F_WDT=y
> CONFIG_IT87_WDT=y
> CONFIG_HP_WATCHDOG=y
> CONFIG_SC1200_WDT=y
> # CONFIG_PC87413_WDT is not set
> # CONFIG_60XX_WDT is not set
> CONFIG_SBC8360_WDT=y
> # CONFIG_CPU5_WDT is not set
> # CONFIG_SMSC_SCH311X_WDT is not set
> # CONFIG_SMSC37B787_WDT is not set
> CONFIG_W83627HF_WDT=y
> CONFIG_W83697HF_WDT=y
> # CONFIG_W83697UG_WDT is not set
> # CONFIG_W83877F_WDT is not set
> CONFIG_W83977F_WDT=y
> # CONFIG_MACHZ_WDT is not set
> CONFIG_SBC_EPX_C3_WATCHDOG=y
>
> #
> # PCI-based Watchdog Cards
> #
> CONFIG_PCIPCWATCHDOG=y
> CONFIG_WDTPCI=y
> CONFIG_WDT_501_PCI=y
>
> #
> # USB-based Watchdog Cards
> #
> CONFIG_USBPCWATCHDOG=y
> CONFIG_SSB_POSSIBLE=y
>
> #
> # Sonics Silicon Backplane
> #
> CONFIG_SSB=y
> CONFIG_SSB_SPROM=y
> CONFIG_SSB_BLOCKIO=y
> CONFIG_SSB_PCIHOST_POSSIBLE=y
> CONFIG_SSB_PCIHOST=y
> CONFIG_SSB_B43_PCI_BRIDGE=y
> CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
> CONFIG_SSB_PCMCIAHOST=y
> # CONFIG_SSB_DEBUG is not set
> CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
> CONFIG_SSB_DRIVER_PCICORE=y
>
> #
> # Multifunction device drivers
> #
> CONFIG_MFD_CORE=y
> CONFIG_MFD_SM501=y
> CONFIG_HTC_PASIC3=y
> CONFIG_TWL4030_CORE=y
> # CONFIG_MFD_TMIO is not set
> CONFIG_PMIC_DA903X=y
> CONFIG_MFD_WM8400=y
> # CONFIG_REGULATOR is not set
>
> #
> # Multimedia devices
> #
>
> #
> # Multimedia core support
> #
> # CONFIG_VIDEO_DEV is not set
> CONFIG_DVB_CORE=y
> CONFIG_VIDEO_MEDIA=y
>
> #
> # Multimedia drivers
> #
> CONFIG_VIDEO_SAA7146=y
> CONFIG_MEDIA_TUNER=y
> # CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
> CONFIG_MEDIA_TUNER_SIMPLE=y
> CONFIG_MEDIA_TUNER_TDA8290=y
> CONFIG_MEDIA_TUNER_TDA827X=y
> CONFIG_MEDIA_TUNER_TDA18271=y
> CONFIG_MEDIA_TUNER_TDA9887=y
> CONFIG_MEDIA_TUNER_TEA5761=y
> CONFIG_MEDIA_TUNER_TEA5767=y
> CONFIG_MEDIA_TUNER_MT20XX=y
> CONFIG_MEDIA_TUNER_MT2060=y
> CONFIG_MEDIA_TUNER_QT1010=y
> CONFIG_MEDIA_TUNER_XC2028=y
> CONFIG_MEDIA_TUNER_XC5000=y
> CONFIG_MEDIA_TUNER_MXL5005S=y
> CONFIG_VIDEO_IR=y
> CONFIG_DVB_DYNAMIC_MINORS=y
> CONFIG_DVB_CAPTURE_DRIVERS=y
>
> #
> # Supported SAA7146 based PCI Adapters
> #
> CONFIG_TTPCI_EEPROM=y
> CONFIG_DVB_BUDGET_CORE=y
> CONFIG_DVB_BUDGET=y
> CONFIG_DVB_BUDGET_CI=y
>
> #
> # Supported USB Adapters
> #
> CONFIG_DVB_USB=y
> CONFIG_DVB_USB_DEBUG=y
> CONFIG_DVB_USB_A800=y
> # CONFIG_DVB_USB_DIBUSB_MB is not set
> CONFIG_DVB_USB_DIBUSB_MC=y
> # CONFIG_DVB_USB_DIB0700 is not set
> CONFIG_DVB_USB_UMT_010=y
> # CONFIG_DVB_USB_CXUSB is not set
> CONFIG_DVB_USB_M920X=y
> CONFIG_DVB_USB_GL861=y
> CONFIG_DVB_USB_AU6610=y
> CONFIG_DVB_USB_DIGITV=y
> CONFIG_DVB_USB_VP7045=y
> CONFIG_DVB_USB_VP702X=y
> CONFIG_DVB_USB_GP8PSK=y
> CONFIG_DVB_USB_NOVA_T_USB2=y
> CONFIG_DVB_USB_TTUSB2=y
> CONFIG_DVB_USB_DTT200U=y
> # CONFIG_DVB_USB_OPERA1 is not set
> CONFIG_DVB_USB_AF9005=y
> # CONFIG_DVB_USB_AF9005_REMOTE is not set
> # CONFIG_DVB_USB_DW2102 is not set
> CONFIG_DVB_USB_CINERGY_T2=y
> # CONFIG_DVB_USB_ANYSEE is not set
> CONFIG_DVB_USB_DTV5100=y
> CONFIG_DVB_USB_AF9015=y
> CONFIG_DVB_TTUSB_BUDGET=y
> CONFIG_DVB_TTUSB_DEC=y
> # CONFIG_DVB_SIANO_SMS1XXX is not set
>
> #
> # Supported FlexCopII (B2C2) Adapters
> #
> CONFIG_DVB_B2C2_FLEXCOP=y
> CONFIG_DVB_B2C2_FLEXCOP_PCI=y
> # CONFIG_DVB_B2C2_FLEXCOP_USB is not set
> CONFIG_DVB_B2C2_FLEXCOP_DEBUG=y
>
> #
> # Supported BT878 Adapters
> #
>
> #
> # Supported Pluto2 Adapters
> #
> CONFIG_DVB_PLUTO2=y
>
> #
> # Supported SDMC DM1105 Adapters
> #
> # CONFIG_DVB_DM1105 is not set
>
> #
> # Supported DVB Frontends
> #
>
> #
> # Customise DVB Frontends
> #
> # CONFIG_DVB_FE_CUSTOMISE is not set
>
> #
> # Multistandard (satellite) frontends
> #
> CONFIG_DVB_STB0899=y
> CONFIG_DVB_STB6100=y
>
> #
> # DVB-S (satellite) frontends
> #
> CONFIG_DVB_CX24110=y
> CONFIG_DVB_CX24123=y
> CONFIG_DVB_MT312=y
> CONFIG_DVB_S5H1420=y
> CONFIG_DVB_STV0288=y
> CONFIG_DVB_STB6000=y
> CONFIG_DVB_STV0299=y
> CONFIG_DVB_TDA8083=y
> CONFIG_DVB_TDA10086=y
> CONFIG_DVB_TDA8261=y
> CONFIG_DVB_VES1X93=y
> CONFIG_DVB_TUNER_ITD1000=y
> CONFIG_DVB_TUNER_CX24113=y
> CONFIG_DVB_TDA826X=y
> CONFIG_DVB_TUA6100=y
> # CONFIG_DVB_CX24116 is not set
> CONFIG_DVB_SI21XX=y
>
> #
> # DVB-T (terrestrial) frontends
> #
> CONFIG_DVB_SP8870=y
> CONFIG_DVB_SP887X=y
> CONFIG_DVB_CX22700=y
> CONFIG_DVB_CX22702=y
> CONFIG_DVB_DRX397XD=y
> CONFIG_DVB_L64781=y
> CONFIG_DVB_TDA1004X=y
> CONFIG_DVB_NXT6000=y
> CONFIG_DVB_MT352=y
> CONFIG_DVB_ZL10353=y
> # CONFIG_DVB_DIB3000MB is not set
> CONFIG_DVB_DIB3000MC=y
> CONFIG_DVB_DIB7000M=y
> CONFIG_DVB_DIB7000P=y
> CONFIG_DVB_TDA10048=y
>
> #
> # DVB-C (cable) frontends
> #
> CONFIG_DVB_VES1820=y
> CONFIG_DVB_TDA10021=y
> CONFIG_DVB_TDA10023=y
> CONFIG_DVB_STV0297=y
>
> #
> # ATSC (North American/Korean Terrestrial/Cable DTV) frontends
> #
> CONFIG_DVB_NXT200X=y
> CONFIG_DVB_OR51211=y
> CONFIG_DVB_OR51132=y
> CONFIG_DVB_BCM3510=y
> CONFIG_DVB_LGDT330X=y
> CONFIG_DVB_LGDT3304=y
> CONFIG_DVB_S5H1409=y
> CONFIG_DVB_AU8522=y
> CONFIG_DVB_S5H1411=y
>
> #
> # ISDB-T (terrestrial) frontends
> #
> CONFIG_DVB_S921=y
>
> #
> # Digital terrestrial only tuners/PLL
> #
> CONFIG_DVB_PLL=y
> CONFIG_DVB_TUNER_DIB0070=y
>
> #
> # SEC control devices for DVB-S
> #
> CONFIG_DVB_LNBP21=y
> # CONFIG_DVB_ISL6405 is not set
> CONFIG_DVB_ISL6421=y
> # CONFIG_DVB_LGS8GL5 is not set
>
> #
> # Tools to develop new frontends
> #
> # CONFIG_DVB_DUMMY_FE is not set
> CONFIG_DVB_AF9013=y
> CONFIG_DAB=y
> CONFIG_USB_DABUSB=y
>
> #
> # Graphics support
> #
> CONFIG_AGP=y
> CONFIG_AGP_AMD64=y
> CONFIG_AGP_INTEL=y
> CONFIG_AGP_SIS=y
> CONFIG_AGP_VIA=y
> CONFIG_DRM=y
> CONFIG_DRM_TDFX=y
> CONFIG_DRM_R128=y
> CONFIG_DRM_RADEON=y
> # CONFIG_DRM_I810 is not set
> # CONFIG_DRM_I830 is not set
> # CONFIG_DRM_I915 is not set
> # CONFIG_DRM_MGA is not set
> CONFIG_DRM_SIS=y
> # CONFIG_DRM_VIA is not set
> # CONFIG_DRM_SAVAGE is not set
> # CONFIG_VGASTATE is not set
> CONFIG_VIDEO_OUTPUT_CONTROL=y
> # CONFIG_FB is not set
> CONFIG_BACKLIGHT_LCD_SUPPORT=y
> # CONFIG_LCD_CLASS_DEVICE is not set
> CONFIG_BACKLIGHT_CLASS_DEVICE=y
> CONFIG_BACKLIGHT_CORGI=y
> # CONFIG_BACKLIGHT_PROGEAR is not set
> # CONFIG_BACKLIGHT_DA903X is not set
> CONFIG_BACKLIGHT_MBP_NVIDIA=y
> CONFIG_BACKLIGHT_SAHARA=y
>
> #
> # 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_DUMMY_CONSOLE=y
> CONFIG_SOUND=y
> CONFIG_SOUND_OSS_CORE=y
> CONFIG_SND=y
> CONFIG_SND_TIMER=y
> CONFIG_SND_PCM=y
> CONFIG_SND_HWDEP=y
> CONFIG_SND_RAWMIDI=y
> CONFIG_SND_JACK=y
> CONFIG_SND_SEQUENCER=y
> # CONFIG_SND_SEQ_DUMMY is not set
> CONFIG_SND_OSSEMUL=y
> CONFIG_SND_MIXER_OSS=y
> CONFIG_SND_PCM_OSS=y
> # CONFIG_SND_PCM_OSS_PLUGINS is not set
> # CONFIG_SND_SEQUENCER_OSS is not set
> CONFIG_SND_RTCTIMER=y
> CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
> # CONFIG_SND_DYNAMIC_MINORS is not set
> CONFIG_SND_SUPPORT_OLD_API=y
> # CONFIG_SND_VERBOSE_PROCFS is not set
> # CONFIG_SND_VERBOSE_PRINTK is not set
> CONFIG_SND_DEBUG=y
> CONFIG_SND_DEBUG_VERBOSE=y
> CONFIG_SND_VMASTER=y
> CONFIG_SND_MPU401_UART=y
> CONFIG_SND_OPL3_LIB=y
> CONFIG_SND_VX_LIB=y
> CONFIG_SND_AC97_CODEC=y
> CONFIG_SND_DRIVERS=y
> CONFIG_SND_DUMMY=y
> CONFIG_SND_VIRMIDI=y
> CONFIG_SND_MTPAV=y
> # CONFIG_SND_MTS64 is not set
> CONFIG_SND_SERIAL_U16550=y
> CONFIG_SND_MPU401=y
> # CONFIG_SND_PORTMAN2X4 is not set
> # CONFIG_SND_AC97_POWER_SAVE is not set
> CONFIG_SND_SB_COMMON=y
> CONFIG_SND_SB16_DSP=y
> CONFIG_SND_PCI=y
> CONFIG_SND_AD1889=y
> # CONFIG_SND_ALS300 is not set
> # CONFIG_SND_ALS4000 is not set
> CONFIG_SND_ALI5451=y
> CONFIG_SND_ATIIXP=y
> # CONFIG_SND_ATIIXP_MODEM is not set
> CONFIG_SND_AU8810=y
> # CONFIG_SND_AU8820 is not set
> # CONFIG_SND_AU8830 is not set
> CONFIG_SND_AW2=y
> # CONFIG_SND_AZT3328 is not set
> CONFIG_SND_BT87X=y
> CONFIG_SND_BT87X_OVERCLOCK=y
> CONFIG_SND_CA0106=y
> CONFIG_SND_CMIPCI=y
> CONFIG_SND_OXYGEN_LIB=y
> # CONFIG_SND_OXYGEN is not set
> CONFIG_SND_CS4281=y
> CONFIG_SND_CS46XX=y
> # CONFIG_SND_CS46XX_NEW_DSP is not set
> CONFIG_SND_CS5530=y
> CONFIG_SND_DARLA20=y
> CONFIG_SND_GINA20=y
> CONFIG_SND_LAYLA20=y
> # CONFIG_SND_DARLA24 is not set
> CONFIG_SND_GINA24=y
> # CONFIG_SND_LAYLA24 is not set
> CONFIG_SND_MONA=y
> CONFIG_SND_MIA=y
> CONFIG_SND_ECHO3G=y
> CONFIG_SND_INDIGO=y
> # CONFIG_SND_INDIGOIO is not set
> CONFIG_SND_INDIGODJ=y
> CONFIG_SND_EMU10K1=y
> CONFIG_SND_EMU10K1X=y
> CONFIG_SND_ENS1370=y
> CONFIG_SND_ENS1371=y
> # CONFIG_SND_ES1938 is not set
> # CONFIG_SND_ES1968 is not set
> CONFIG_SND_FM801=y
> CONFIG_SND_HDA_INTEL=y
> CONFIG_SND_HDA_HWDEP=y
> CONFIG_SND_HDA_RECONFIG=y
> # CONFIG_SND_HDA_INPUT_BEEP is not set
> CONFIG_SND_HDA_CODEC_REALTEK=y
> CONFIG_SND_HDA_CODEC_ANALOG=y
> # CONFIG_SND_HDA_CODEC_SIGMATEL is not set
> # CONFIG_SND_HDA_CODEC_VIA is not set
> CONFIG_SND_HDA_CODEC_ATIHDMI=y
> CONFIG_SND_HDA_CODEC_NVHDMI=y
> CONFIG_SND_HDA_CODEC_INTELHDMI=y
> CONFIG_SND_HDA_ELD=y
> CONFIG_SND_HDA_CODEC_CONEXANT=y
> # CONFIG_SND_HDA_CODEC_CMEDIA is not set
> CONFIG_SND_HDA_CODEC_SI3054=y
> # CONFIG_SND_HDA_GENERIC is not set
> # CONFIG_SND_HDA_POWER_SAVE is not set
> CONFIG_SND_HDSP=y
> CONFIG_SND_HDSPM=y
> CONFIG_SND_HIFIER=y
> # CONFIG_SND_ICE1712 is not set
> # CONFIG_SND_ICE1724 is not set
> # CONFIG_SND_INTEL8X0 is not set
> # CONFIG_SND_INTEL8X0M is not set
> CONFIG_SND_KORG1212=y
> CONFIG_SND_MAESTRO3=y
> CONFIG_SND_MIXART=y
> CONFIG_SND_NM256=y
> # CONFIG_SND_PCXHR is not set
> CONFIG_SND_RIPTIDE=y
> CONFIG_SND_RME32=y
> CONFIG_SND_RME96=y
> CONFIG_SND_RME9652=y
> CONFIG_SND_SONICVIBES=y
> CONFIG_SND_TRIDENT=y
> # CONFIG_SND_VIA82XX is not set
> # CONFIG_SND_VIA82XX_MODEM is not set
> # CONFIG_SND_VIRTUOSO is not set
> CONFIG_SND_VX222=y
> CONFIG_SND_YMFPCI=y
> # CONFIG_SND_SPI is not set
> CONFIG_SND_USB=y
> CONFIG_SND_USB_AUDIO=y
> CONFIG_SND_USB_USX2Y=y
> CONFIG_SND_USB_CAIAQ=y
> CONFIG_SND_USB_CAIAQ_INPUT=y
> CONFIG_SND_USB_US122L=y
> # CONFIG_SND_PCMCIA is not set
> # CONFIG_SND_SOC is not set
> CONFIG_SOUND_PRIME=y
> # CONFIG_SOUND_OSS is not set
> CONFIG_AC97_BUS=y
> CONFIG_HID_SUPPORT=y
> CONFIG_HID=y
> CONFIG_HID_DEBUG=y
> CONFIG_HIDRAW=y
>
> #
> # USB Input Devices
> #
> CONFIG_USB_HID=y
> # CONFIG_HID_PID is not set
> # CONFIG_USB_HIDDEV is not set
> CONFIG_USB_MOUSE=y
>
> #
> # Special HID drivers
> #
> # CONFIG_HID_COMPAT is not set
> CONFIG_HID_A4TECH=y
> CONFIG_HID_APPLE=y
> CONFIG_HID_BELKIN=y
> CONFIG_HID_CHERRY=y
> CONFIG_HID_CHICONY=y
> CONFIG_HID_CYPRESS=y
> CONFIG_HID_EZKEY=y
> CONFIG_HID_GYRATION=y
> CONFIG_HID_LOGITECH=y
> CONFIG_LOGITECH_FF=y
> CONFIG_LOGIRUMBLEPAD2_FF=y
> CONFIG_HID_MICROSOFT=y
> CONFIG_HID_MONTEREY=y
> CONFIG_HID_NTRIG=y
> CONFIG_HID_PANTHERLORD=y
> CONFIG_PANTHERLORD_FF=y
> CONFIG_HID_PETALYNX=y
> CONFIG_HID_SAMSUNG=y
> CONFIG_HID_SONY=y
> CONFIG_HID_SUNPLUS=y
> # CONFIG_GREENASIA_FF is not set
> CONFIG_HID_TOPSEED=y
> # CONFIG_THRUSTMASTER_FF is not set
> # CONFIG_ZEROPLUS_FF 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 is not set
> 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=y
> # CONFIG_USB_OTG is not set
> CONFIG_USB_MON=y
> CONFIG_USB_WUSB=y
> CONFIG_USB_WUSB_CBAF=y
> # CONFIG_USB_WUSB_CBAF_DEBUG is not set
>
> #
> # USB Host Controller Drivers
> #
> # CONFIG_USB_C67X00_HCD is not set
> CONFIG_USB_EHCI_HCD=y
> CONFIG_USB_EHCI_ROOT_HUB_TT=y
> CONFIG_USB_EHCI_TT_NEWSCHED=y
> CONFIG_USB_OXU210HP_HCD=y
> CONFIG_USB_ISP116X_HCD=y
> # CONFIG_USB_ISP1760_HCD is not set
> CONFIG_USB_OHCI_HCD=y
> CONFIG_USB_OHCI_HCD_SSB=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_SL811_HCD is not set
> CONFIG_USB_R8A66597_HCD=y
> # CONFIG_USB_HWA_HCD is not set
>
> #
> # USB Device Class drivers
> #
> CONFIG_USB_ACM=y
> CONFIG_USB_PRINTER=y
> CONFIG_USB_WDM=y
> CONFIG_USB_TMC=y
>
> #
> # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
> #
>
> #
> # see USB_STORAGE Help for more information
> #
> CONFIG_USB_STORAGE=y
> # CONFIG_USB_STORAGE_DEBUG is not set
> CONFIG_USB_STORAGE_DATAFAB=y
> CONFIG_USB_STORAGE_FREECOM=y
> CONFIG_USB_STORAGE_ISD200=y
> # CONFIG_USB_STORAGE_USBAT is not set
> CONFIG_USB_STORAGE_SDDR09=y
> # CONFIG_USB_STORAGE_SDDR55 is not set
> # CONFIG_USB_STORAGE_JUMPSHOT is not set
> CONFIG_USB_STORAGE_ALAUDA=y
> CONFIG_USB_STORAGE_ONETOUCH=y
> CONFIG_USB_STORAGE_KARMA=y
> CONFIG_USB_STORAGE_CYPRESS_ATACB=y
> CONFIG_USB_LIBUSUAL=y
>
> #
> # USB Imaging devices
> #
> # CONFIG_USB_MDC800 is not set
> CONFIG_USB_MICROTEK=y
>
> #
> # USB port drivers
> #
> CONFIG_USB_USS720=y
> # CONFIG_USB_SERIAL is not set
>
> #
> # USB Miscellaneous drivers
> #
> # CONFIG_USB_EMI62 is not set
> CONFIG_USB_EMI26=y
> # CONFIG_USB_ADUTUX is not set
> CONFIG_USB_SEVSEG=y
> CONFIG_USB_RIO500=y
> CONFIG_USB_LEGOTOWER=y
> CONFIG_USB_LCD=y
> # CONFIG_USB_BERRY_CHARGE is not set
> # CONFIG_USB_LED is not set
> CONFIG_USB_CYPRESS_CY7C63=y
> CONFIG_USB_CYTHERM=y
> CONFIG_USB_PHIDGET=y
> CONFIG_USB_PHIDGETKIT=y
> CONFIG_USB_PHIDGETMOTORCONTROL=y
> # CONFIG_USB_PHIDGETSERVO is not set
> # CONFIG_USB_IDMOUSE is not set
> # CONFIG_USB_FTDI_ELAN is not set
> CONFIG_USB_APPLEDISPLAY=y
> # CONFIG_USB_SISUSBVGA is not set
> # CONFIG_USB_LD is not set
> CONFIG_USB_TRANCEVIBRATOR=y
> CONFIG_USB_IOWARRIOR=y
> # CONFIG_USB_TEST is not set
> # CONFIG_USB_ISIGHTFW is not set
> CONFIG_USB_VST=y
>
> #
> # OTG and related infrastructure
> #
> CONFIG_USB_OTG_UTILS=y
> CONFIG_TWL4030_USB=y
> CONFIG_UWB=y
> CONFIG_UWB_HWA=y
> # CONFIG_UWB_WHCI is not set
> # CONFIG_UWB_WLP is not set
> # CONFIG_UWB_I1480U is not set
> # CONFIG_MMC is not set
> CONFIG_MEMSTICK=y
> CONFIG_MEMSTICK_DEBUG=y
>
> #
> # MemoryStick drivers
> #
> # CONFIG_MEMSTICK_UNSAFE_RESUME is not set
> # CONFIG_MSPRO_BLOCK is not set
>
> #
> # MemoryStick Host Controller Drivers
> #
> CONFIG_MEMSTICK_TIFM_MS=y
> CONFIG_MEMSTICK_JMICRON_38X=y
> CONFIG_NEW_LEDS=y
> CONFIG_LEDS_CLASS=y
>
> #
> # LED drivers
> #
> # CONFIG_LEDS_PCA9532 is not set
> CONFIG_LEDS_HP_DISK=y
> CONFIG_LEDS_CLEVO_MAIL=y
> CONFIG_LEDS_PCA955X=y
> # CONFIG_LEDS_DA903X is not set
>
> #
> # LED Triggers
> #
> CONFIG_LEDS_TRIGGERS=y
> CONFIG_LEDS_TRIGGER_TIMER=y
> CONFIG_LEDS_TRIGGER_HEARTBEAT=y
> CONFIG_LEDS_TRIGGER_BACKLIGHT=y
> CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
> CONFIG_ACCESSIBILITY=y
> # CONFIG_A11Y_BRAILLE_CONSOLE is not set
> CONFIG_EDAC=y
>
> #
> # Reporting subsystems
> #
> CONFIG_EDAC_DEBUG=y
> CONFIG_EDAC_MM_EDAC=y
> CONFIG_EDAC_E752X=y
> CONFIG_EDAC_I82975X=y
> CONFIG_EDAC_I3000=y
> CONFIG_EDAC_X38=y
> # CONFIG_EDAC_I5400 is not set
> CONFIG_EDAC_I5000=y
> CONFIG_EDAC_I5100=y
> # CONFIG_RTC_CLASS is not set
> CONFIG_DMADEVICES=y
>
> #
> # DMA Devices
> #
> CONFIG_INTEL_IOATDMA=y
> CONFIG_DMA_ENGINE=y
>
> #
> # DMA Clients
> #
> CONFIG_NET_DMA=y
> # CONFIG_DMATEST is not set
> CONFIG_DCA=y
> # CONFIG_AUXDISPLAY is not set
> # CONFIG_UIO is not set
>
> #
> # Firmware Drivers
> #
> CONFIG_EDD=y
> CONFIG_EDD_OFF=y
> CONFIG_FIRMWARE_MEMMAP=y
> # CONFIG_EFI_VARS is not set
> # CONFIG_DELL_RBU is not set
> CONFIG_DCDBAS=y
> CONFIG_DMIID=y
> # CONFIG_ISCSI_IBFT_FIND is not set
>
> #
> # File systems
> #
> # CONFIG_EXT2_FS is not set
> CONFIG_EXT3_FS=y
> CONFIG_EXT3_FS_XATTR=y
> CONFIG_EXT3_FS_POSIX_ACL=y
> CONFIG_EXT3_FS_SECURITY=y
> CONFIG_EXT4_FS=y
> CONFIG_EXT4DEV_COMPAT=y
> CONFIG_EXT4_FS_XATTR=y
> # CONFIG_EXT4_FS_POSIX_ACL is not set
> CONFIG_EXT4_FS_SECURITY=y
> CONFIG_JBD=y
> CONFIG_JBD_DEBUG=y
> CONFIG_JBD2=y
> # CONFIG_JBD2_DEBUG is not set
> CONFIG_FS_MBCACHE=y
> CONFIG_REISERFS_FS=y
> CONFIG_REISERFS_CHECK=y
> # CONFIG_REISERFS_PROC_INFO is not set
> # CONFIG_REISERFS_FS_XATTR is not set
> # CONFIG_JFS_FS is not set
> CONFIG_FS_POSIX_ACL=y
> CONFIG_FILE_LOCKING=y
> CONFIG_XFS_FS=y
> # CONFIG_XFS_QUOTA is not set
> # CONFIG_XFS_POSIX_ACL is not set
> # CONFIG_XFS_RT is not set
> CONFIG_XFS_DEBUG=y
> CONFIG_GFS2_FS=y
> CONFIG_GFS2_FS_LOCKING_DLM=y
> 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=y
> CONFIG_OCFS2_FS_POSIX_ACL=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 is not set
> # CONFIG_QFMT_V2 is not set
> CONFIG_QUOTACTL=y
> CONFIG_AUTOFS_FS=y
> # CONFIG_AUTOFS4_FS is not set
> CONFIG_FUSE_FS=y
>
> #
> # CD-ROM/DVD Filesystems
> #
> CONFIG_ISO9660_FS=y
> CONFIG_JOLIET=y
> # CONFIG_ZISOFS is not set
> CONFIG_UDF_FS=y
> CONFIG_UDF_NLS=y
>
> #
> # DOS/FAT/NT Filesystems
> #
> CONFIG_FAT_FS=y
> CONFIG_MSDOS_FS=y
> CONFIG_VFAT_FS=y
> CONFIG_FAT_DEFAULT_CODEPAGE=437
> CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
> CONFIG_NTFS_FS=y
> 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 is not set
> CONFIG_HUGETLBFS=y
> CONFIG_HUGETLB_PAGE=y
> CONFIG_CONFIGFS_FS=y
> CONFIG_MISC_FILESYSTEMS=y
> CONFIG_ADFS_FS=y
> CONFIG_ADFS_FS_RW=y
> CONFIG_AFFS_FS=y
> CONFIG_HFS_FS=y
> CONFIG_HFSPLUS_FS=y
> CONFIG_BEFS_FS=y
> CONFIG_BEFS_DEBUG=y
> # CONFIG_BFS_FS is not set
> CONFIG_EFS_FS=y
> CONFIG_CRAMFS=y
> CONFIG_VXFS_FS=y
> # CONFIG_MINIX_FS is not set
> CONFIG_OMFS_FS=y
> CONFIG_HPFS_FS=y
> CONFIG_QNX4FS_FS=y
> CONFIG_ROMFS_FS=y
> # CONFIG_SYSV_FS is not set
> CONFIG_UFS_FS=y
> CONFIG_UFS_FS_WRITE=y
> # CONFIG_UFS_DEBUG is not set
> # CONFIG_NETWORK_FILESYSTEMS is not set
>
> #
> # Partition Types
> #
> CONFIG_PARTITION_ADVANCED=y
> # CONFIG_ACORN_PARTITION is not set
> CONFIG_OSF_PARTITION=y
> # CONFIG_AMIGA_PARTITION is not set
> 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=y
> CONFIG_UNIXWARE_DISKLABEL=y
> CONFIG_LDM_PARTITION=y
> CONFIG_LDM_DEBUG=y
> # CONFIG_SGI_PARTITION is not set
> CONFIG_ULTRIX_PARTITION=y
> CONFIG_SUN_PARTITION=y
> CONFIG_KARMA_PARTITION=y
> CONFIG_EFI_PARTITION=y
> CONFIG_SYSV68_PARTITION=y
> CONFIG_NLS=y
> CONFIG_NLS_DEFAULT="iso8859-1"
> CONFIG_NLS_CODEPAGE_437=y
> CONFIG_NLS_CODEPAGE_737=y
> CONFIG_NLS_CODEPAGE_775=y
> # CONFIG_NLS_CODEPAGE_850 is not set
> CONFIG_NLS_CODEPAGE_852=y
> # CONFIG_NLS_CODEPAGE_855 is not set
> CONFIG_NLS_CODEPAGE_857=y
> CONFIG_NLS_CODEPAGE_860=y
> CONFIG_NLS_CODEPAGE_861=y
> CONFIG_NLS_CODEPAGE_862=y
> # CONFIG_NLS_CODEPAGE_863 is not set
> CONFIG_NLS_CODEPAGE_864=y
> CONFIG_NLS_CODEPAGE_865=y
> # CONFIG_NLS_CODEPAGE_866 is not set
> CONFIG_NLS_CODEPAGE_869=y
> # CONFIG_NLS_CODEPAGE_936 is not set
> CONFIG_NLS_CODEPAGE_950=y
> CONFIG_NLS_CODEPAGE_932=y
> CONFIG_NLS_CODEPAGE_949=y
> # CONFIG_NLS_CODEPAGE_874 is not set
> CONFIG_NLS_ISO8859_8=y
> # CONFIG_NLS_CODEPAGE_1250 is not set
> # CONFIG_NLS_CODEPAGE_1251 is not set
> # CONFIG_NLS_ASCII is not set
> CONFIG_NLS_ISO8859_1=y
> CONFIG_NLS_ISO8859_2=y
> # CONFIG_NLS_ISO8859_3 is not set
> CONFIG_NLS_ISO8859_4=y
> CONFIG_NLS_ISO8859_5=y
> CONFIG_NLS_ISO8859_6=y
> CONFIG_NLS_ISO8859_7=y
> CONFIG_NLS_ISO8859_9=y
> CONFIG_NLS_ISO8859_13=y
> CONFIG_NLS_ISO8859_14=y
> CONFIG_NLS_ISO8859_15=y
> CONFIG_NLS_KOI8_R=y
> # CONFIG_NLS_KOI8_U is not set
> CONFIG_NLS_UTF8=y
> CONFIG_DLM=y
> 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=y
> CONFIG_FRAME_WARN=2048
> CONFIG_MAGIC_SYSRQ=y
> # CONFIG_UNUSED_SYMBOLS is not set
> CONFIG_DEBUG_FS=y
> # CONFIG_HEADERS_CHECK is not set
> CONFIG_DEBUG_KERNEL=y
> CONFIG_DEBUG_SHIRQ=y
> # CONFIG_DETECT_SOFTLOCKUP is not set
> CONFIG_SCHED_DEBUG=y
> 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_SLUB_DEBUG_ON=y
> CONFIG_SLUB_STATS=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 is not set
> CONFIG_TRACE_IRQFLAGS=y
> # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
> CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
> CONFIG_STACKTRACE=y
> CONFIG_DEBUG_BUGVERBOSE=y
> CONFIG_DEBUG_VM=y
> # CONFIG_DEBUG_VIRTUAL is not set
> # CONFIG_DEBUG_WRITECOUNT is not set
> CONFIG_DEBUG_MEMORY_INIT=y
> CONFIG_DEBUG_LIST=y
> CONFIG_DEBUG_SG=y
> CONFIG_DEBUG_NOTIFIERS=y
> CONFIG_FRAME_POINTER=y
> CONFIG_BOOT_PRINTK_DELAY=y
> # CONFIG_RCU_TORTURE_TEST is not set
> CONFIG_RCU_CPU_STALL_DETECTOR=y
> CONFIG_BACKTRACE_SELF_TEST=y
> CONFIG_FAULT_INJECTION=y
> CONFIG_FAILSLAB=y
> # CONFIG_FAIL_PAGE_ALLOC is not set
> CONFIG_FAIL_MAKE_REQUEST=y
> # CONFIG_FAIL_IO_TIMEOUT is not set
> CONFIG_FAULT_INJECTION_DEBUG_FS=y
> CONFIG_LATENCYTOP=y
> CONFIG_SYSCTL_SYSCALL_CHECK=y
> CONFIG_USER_STACKTRACE_SUPPORT=y
> CONFIG_NOP_TRACER=y
> CONFIG_HAVE_FUNCTION_TRACER=y
> CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
> CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
> CONFIG_HAVE_DYNAMIC_FTRACE=y
> CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
> CONFIG_TRACER_MAX_TRACE=y
> CONFIG_RING_BUFFER=y
> CONFIG_TRACING=y
>
> #
> # Tracers
> #
> CONFIG_FUNCTION_TRACER=y
> CONFIG_FUNCTION_GRAPH_TRACER=y
> # CONFIG_IRQSOFF_TRACER is not set
> CONFIG_SYSPROF_TRACER=y
> CONFIG_SCHED_TRACER=y
> CONFIG_CONTEXT_SWITCH_TRACER=y
> CONFIG_BOOT_TRACER=y
> CONFIG_POWER_TRACER=y
> CONFIG_STACK_TRACER=y
> # CONFIG_KMEMTRACE is not set
> # CONFIG_DYNAMIC_FTRACE is not set
> CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
> CONFIG_FIREWIRE_OHCI_REMOTE_DMA=y
> CONFIG_DYNAMIC_PRINTK_DEBUG=y
> CONFIG_SAMPLES=y
> # CONFIG_SAMPLE_KOBJECT is not set
> CONFIG_HAVE_ARCH_KGDB=y
> CONFIG_KGDB=y
> CONFIG_KGDB_SERIAL_CONSOLE=y
> CONFIG_KGDB_TESTS=y
> CONFIG_STRICT_DEVMEM=y
> # CONFIG_X86_VERBOSE_BOOTUP is not set
> CONFIG_EARLY_PRINTK=y
> CONFIG_EARLY_PRINTK_DBGP=y
> CONFIG_DEBUG_STACKOVERFLOW=y
> CONFIG_DEBUG_STACK_USAGE=y
> CONFIG_DEBUG_PAGEALLOC=y
> CONFIG_DEBUG_PER_CPU_MAPS=y
> CONFIG_X86_PTDUMP=y
> CONFIG_DEBUG_RODATA=y
> CONFIG_DEBUG_RODATA_TEST=y
> # CONFIG_IOMMU_DEBUG is not set
> # CONFIG_MMIOTRACE is not set
> 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=y
> # CONFIG_IO_DELAY_0XED is not set
> # CONFIG_IO_DELAY_UDELAY is not set
> # CONFIG_IO_DELAY_NONE is not set
> CONFIG_DEFAULT_IO_DELAY_TYPE=0
> CONFIG_DEBUG_BOOT_PARAMS=y
> # CONFIG_CPA_DEBUG is not set
> CONFIG_OPTIMIZE_INLINING=y
>
> #
> # Security options
> #
> CONFIG_KEYS=y
> CONFIG_KEYS_DEBUG_PROC_KEYS=y
> CONFIG_SECURITY=y
> CONFIG_SECURITYFS=y
> # CONFIG_SECURITY_NETWORK is not set
> CONFIG_SECURITY_PATH=y
> CONFIG_SECURITY_FILE_CAPABILITIES=y
> CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
> 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_MANAGER=y
> CONFIG_CRYPTO_MANAGER2=y
> CONFIG_CRYPTO_GF128MUL=y
> # CONFIG_CRYPTO_NULL is not set
> CONFIG_CRYPTO_CRYPTD=y
> CONFIG_CRYPTO_AUTHENC=y
>
> #
> # Authenticated Encryption with Associated Data
> #
> # CONFIG_CRYPTO_CCM is not set
> # CONFIG_CRYPTO_GCM is not set
> CONFIG_CRYPTO_SEQIV=y
>
> #
> # Block modes
> #
> CONFIG_CRYPTO_CBC=y
> CONFIG_CRYPTO_CTR=y
> # CONFIG_CRYPTO_CTS is not set
> CONFIG_CRYPTO_ECB=y
> CONFIG_CRYPTO_LRW=y
> CONFIG_CRYPTO_PCBC=y
> CONFIG_CRYPTO_XTS=y
>
> #
> # Hash modes
> #
> CONFIG_CRYPTO_HMAC=y
> CONFIG_CRYPTO_XCBC=y
>
> #
> # Digest
> #
> CONFIG_CRYPTO_CRC32C=y
> # CONFIG_CRYPTO_CRC32C_INTEL is not set
> # CONFIG_CRYPTO_MD4 is not set
> 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 is not set
> CONFIG_CRYPTO_SHA1=y
> CONFIG_CRYPTO_SHA256=y
> # CONFIG_CRYPTO_SHA512 is not set
> CONFIG_CRYPTO_TGR192=y
> CONFIG_CRYPTO_WP512=y
>
> #
> # Ciphers
> #
> CONFIG_CRYPTO_AES=y
> CONFIG_CRYPTO_AES_X86_64=y
> CONFIG_CRYPTO_ANUBIS=y
> CONFIG_CRYPTO_ARC4=y
> CONFIG_CRYPTO_BLOWFISH=y
> # CONFIG_CRYPTO_CAMELLIA is not set
> # CONFIG_CRYPTO_CAST5 is not set
> CONFIG_CRYPTO_CAST6=y
> CONFIG_CRYPTO_DES=y
> CONFIG_CRYPTO_FCRYPT=y
> CONFIG_CRYPTO_KHAZAD=y
> CONFIG_CRYPTO_SALSA20=y
> CONFIG_CRYPTO_SALSA20_X86_64=y
> # CONFIG_CRYPTO_SEED is not set
> # CONFIG_CRYPTO_SERPENT is not set
> CONFIG_CRYPTO_TEA=y
> CONFIG_CRYPTO_TWOFISH=y
> CONFIG_CRYPTO_TWOFISH_COMMON=y
> CONFIG_CRYPTO_TWOFISH_X86_64=y
>
> #
> # Compression
> #
> CONFIG_CRYPTO_DEFLATE=y
> CONFIG_CRYPTO_LZO=y
>
> #
> # Random Number Generation
> #
> # CONFIG_CRYPTO_ANSI_CPRNG is not set
> CONFIG_CRYPTO_HW=y
> # CONFIG_CRYPTO_DEV_HIFN_795X is not set
> CONFIG_HAVE_KVM=y
> CONFIG_VIRTUALIZATION=y
> CONFIG_KVM=y
> # CONFIG_KVM_INTEL is not set
> CONFIG_KVM_AMD=y
> CONFIG_KVM_TRACE=y
> CONFIG_VIRTIO=y
> CONFIG_VIRTIO_RING=y
> CONFIG_VIRTIO_PCI=y
> # CONFIG_VIRTIO_BALLOON is not set
>
> #
> # 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=y
> CONFIG_CRC16=y
> CONFIG_CRC_T10DIF=y
> CONFIG_CRC_ITU_T=y
> CONFIG_CRC32=y
> CONFIG_CRC7=y
> CONFIG_LIBCRC32C=y
> CONFIG_ZLIB_INFLATE=y
> CONFIG_ZLIB_DEFLATE=y
> CONFIG_LZO_COMPRESS=y
> CONFIG_LZO_DECOMPRESS=y
> CONFIG_TEXTSEARCH=y
> CONFIG_TEXTSEARCH_KMP=y
> CONFIG_TEXTSEARCH_BM=y
> CONFIG_TEXTSEARCH_FSM=y
> CONFIG_PLIST=y
> CONFIG_HAS_IOMEM=y
> CONFIG_HAS_IOPORT=y
> CONFIG_HAS_DMA=y
> CONFIG_CHECK_SIGNATURE=y
> CONFIG_CPUMASK_OFFSTACK=y
> CONFIG_FORCE_SUCCESSFUL_BUILD=y
> CONFIG_FORCE_MINIMAL_CONFIG=y
> CONFIG_FORCE_MINIMAL_CONFIG_64=y
> CONFIG_FORCE_MINIMAL_CONFIG_PHYS=y
At Thu, 08 Jan 2009 16:39:31 +0100,
I wrote:
>
> At Thu, 8 Jan 2009 16:20:37 +0100,
> Ingo Molnar wrote:
> >
> > FYI, -tip testing found this new lockdep workqueue locking assert
> > triggered by the Intel HDA sound driver:
(snip)
> > [ 30.718689] =============================================
> > [ 30.718689] [ INFO: possible recursive locking detected ]
> > [ 30.718689] 2.6.28-tip #2
> > [ 30.718689] ---------------------------------------------
> > [ 30.718689] events/0/7 is trying to acquire lock:
> > [ 30.718689] (events){--..}, at: [<ffffffff80281050>] flush_workqueue+0x0/0x90
> > [ 30.718689]
> > [ 30.718689] but task is already holding lock:
> > [ 30.718689] (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > [ 30.718689]
> > [ 30.718689] other info that might help us debug this:
> > [ 30.718689] 2 locks held by events/0/7:
> > [ 30.718689] #0: (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > [ 30.718689] #1: (&wfc.work){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > [ 30.718689]
> > [ 30.718689] stack backtrace:
> > [ 30.718689] Pid: 7, comm: events/0 Not tainted 2.6.28-tip #2
> > [ 30.718689] Call Trace:
> > [ 30.718689] [<ffffffff80295836>] validate_chain+0xc56/0x1340
> > [ 30.718689] [<ffffffff802974e6>] __lock_acquire+0x376/0x610
> > [ 30.718689] [<ffffffff80297819>] lock_acquire+0x99/0xd0
> > [ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
> > [ 30.718689] [<ffffffff80281091>] flush_workqueue+0x41/0x90
> > [ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
> > [ 30.718689] [<ffffffff802810f5>] flush_scheduled_work+0x15/0x20
> > [ 30.718689] [<ffffffff80c59794>] azx_clear_irq_pending+0x54/0x60
> > [ 30.718689] [<ffffffff80c599ec>] azx_free+0x10c/0x160
> > [ 30.718689] [<ffffffff80bae9ad>] ? snd_device_free+0x8d/0x100
> > [ 30.718689] [<ffffffff80c59a52>] azx_dev_free+0x12/0x20
> > [ 30.718689] [<ffffffff80bae9a1>] snd_device_free+0x81/0x100
> > [ 30.718689] [<ffffffff80baea89>] snd_device_free_all+0x69/0xa0
> > [ 30.718689] [<ffffffff80ba8a70>] snd_card_do_free+0x50/0xd0
> > [ 30.718689] [<ffffffff80ba9602>] snd_card_free+0xa2/0xc0
> > [ 30.718689] [<ffffffff8061115f>] ? __delay+0xf/0x20
> > [ 30.718689] [<ffffffff80edbb6a>] azx_probe+0x38a/0x9f0
> > [ 30.718689] [<ffffffff80c5a240>] ? azx_send_cmd+0x0/0x130
> > [ 30.718689] [<ffffffff80c5a370>] ? azx_get_response+0x0/0x210
> > [ 30.718689] [<ffffffff80c59b70>] ? azx_attach_pcm_stream+0x0/0x1b0
> > [ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
> > [ 30.718689] [<ffffffff80634807>] local_pci_probe+0x17/0x20
> > [ 30.718689] [<ffffffff802804e8>] do_work_for_cpu+0x18/0x30
> > [ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
> > [ 30.718689] [<ffffffff802807bb>] run_workqueue+0x19b/0x240
> > [ 30.718689] [<ffffffff8028076a>] ? run_workqueue+0x14a/0x240
> > [ 30.718689] [<ffffffff802809cf>] worker_thread+0xaf/0x110
> > [ 30.718689] [<ffffffff80284e20>] ? autoremove_wake_function+0x0/0x40
> > [ 30.718689] [<ffffffff80280920>] ? worker_thread+0x0/0x110
> > [ 30.718689] [<ffffffff802848e3>] kthread+0x53/0x80
> > [ 30.718689] [<ffffffff8022c3aa>] child_rip+0xa/0x20
> > [ 30.718689] [<ffffffff8022bcbe>] ? restore_args+0x0/0x30
> > [ 30.718689] [<ffffffff80284890>] ? kthread+0x0/0x80
> > [ 30.718689] [<ffffffff8022c3a0>] ? child_rip+0x0/0x20
The backtrace implies that the probe callback is called in a
workqueue. Is it right?
Takashi
On Thu, 2009-01-08 at 17:10 +0100, Takashi Iwai wrote:
> At Thu, 08 Jan 2009 16:39:31 +0100,
> I wrote:
> >
> > At Thu, 8 Jan 2009 16:20:37 +0100,
> > Ingo Molnar wrote:
> > >
> > > FYI, -tip testing found this new lockdep workqueue locking assert
> > > triggered by the Intel HDA sound driver:
> (snip)
> > > [ 30.718689] =============================================
> > > [ 30.718689] [ INFO: possible recursive locking detected ]
> > > [ 30.718689] 2.6.28-tip #2
> > > [ 30.718689] ---------------------------------------------
> > > [ 30.718689] events/0/7 is trying to acquire lock:
> > > [ 30.718689] (events){--..}, at: [<ffffffff80281050>] flush_workqueue+0x0/0x90
> > > [ 30.718689]
> > > [ 30.718689] but task is already holding lock:
> > > [ 30.718689] (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > [ 30.718689]
> > > [ 30.718689] other info that might help us debug this:
> > > [ 30.718689] 2 locks held by events/0/7:
> > > [ 30.718689] #0: (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > [ 30.718689] #1: (&wfc.work){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > [ 30.718689]
> > > [ 30.718689] stack backtrace:
> > > [ 30.718689] Pid: 7, comm: events/0 Not tainted 2.6.28-tip #2
> > > [ 30.718689] Call Trace:
> > > [ 30.718689] [<ffffffff80295836>] validate_chain+0xc56/0x1340
> > > [ 30.718689] [<ffffffff802974e6>] __lock_acquire+0x376/0x610
> > > [ 30.718689] [<ffffffff80297819>] lock_acquire+0x99/0xd0
> > > [ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
> > > [ 30.718689] [<ffffffff80281091>] flush_workqueue+0x41/0x90
> > > [ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
> > > [ 30.718689] [<ffffffff802810f5>] flush_scheduled_work+0x15/0x20
> > > [ 30.718689] [<ffffffff80c59794>] azx_clear_irq_pending+0x54/0x60
> > > [ 30.718689] [<ffffffff80c599ec>] azx_free+0x10c/0x160
> > > [ 30.718689] [<ffffffff80bae9ad>] ? snd_device_free+0x8d/0x100
> > > [ 30.718689] [<ffffffff80c59a52>] azx_dev_free+0x12/0x20
> > > [ 30.718689] [<ffffffff80bae9a1>] snd_device_free+0x81/0x100
> > > [ 30.718689] [<ffffffff80baea89>] snd_device_free_all+0x69/0xa0
> > > [ 30.718689] [<ffffffff80ba8a70>] snd_card_do_free+0x50/0xd0
> > > [ 30.718689] [<ffffffff80ba9602>] snd_card_free+0xa2/0xc0
> > > [ 30.718689] [<ffffffff8061115f>] ? __delay+0xf/0x20
> > > [ 30.718689] [<ffffffff80edbb6a>] azx_probe+0x38a/0x9f0
> > > [ 30.718689] [<ffffffff80c5a240>] ? azx_send_cmd+0x0/0x130
> > > [ 30.718689] [<ffffffff80c5a370>] ? azx_get_response+0x0/0x210
> > > [ 30.718689] [<ffffffff80c59b70>] ? azx_attach_pcm_stream+0x0/0x1b0
> > > [ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
> > > [ 30.718689] [<ffffffff80634807>] local_pci_probe+0x17/0x20
> > > [ 30.718689] [<ffffffff802804e8>] do_work_for_cpu+0x18/0x30
> > > [ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
> > > [ 30.718689] [<ffffffff802807bb>] run_workqueue+0x19b/0x240
> > > [ 30.718689] [<ffffffff8028076a>] ? run_workqueue+0x14a/0x240
> > > [ 30.718689] [<ffffffff802809cf>] worker_thread+0xaf/0x110
> > > [ 30.718689] [<ffffffff80284e20>] ? autoremove_wake_function+0x0/0x40
> > > [ 30.718689] [<ffffffff80280920>] ? worker_thread+0x0/0x110
> > > [ 30.718689] [<ffffffff802848e3>] kthread+0x53/0x80
> > > [ 30.718689] [<ffffffff8022c3aa>] child_rip+0xa/0x20
> > > [ 30.718689] [<ffffffff8022bcbe>] ? restore_args+0x0/0x30
> > > [ 30.718689] [<ffffffff80284890>] ? kthread+0x0/0x80
> > > [ 30.718689] [<ffffffff8022c3a0>] ? child_rip+0x0/0x20
>
> The backtrace implies that the probe callback is called in a
> workqueue. Is it right?
Yes, it appears a worklet tries to flush the queue he's on.
At Thu, 08 Jan 2009 17:12:54 +0100,
Peter Zijlstra wrote:
>
> On Thu, 2009-01-08 at 17:10 +0100, Takashi Iwai wrote:
> > At Thu, 08 Jan 2009 16:39:31 +0100,
> > I wrote:
> > >
> > > At Thu, 8 Jan 2009 16:20:37 +0100,
> > > Ingo Molnar wrote:
> > > >
> > > > FYI, -tip testing found this new lockdep workqueue locking assert
> > > > triggered by the Intel HDA sound driver:
> > (snip)
> > > > [ 30.718689] =============================================
> > > > [ 30.718689] [ INFO: possible recursive locking detected ]
> > > > [ 30.718689] 2.6.28-tip #2
> > > > [ 30.718689] ---------------------------------------------
> > > > [ 30.718689] events/0/7 is trying to acquire lock:
> > > > [ 30.718689] (events){--..}, at: [<ffffffff80281050>] flush_workqueue+0x0/0x90
> > > > [ 30.718689]
> > > > [ 30.718689] but task is already holding lock:
> > > > [ 30.718689] (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > > [ 30.718689]
> > > > [ 30.718689] other info that might help us debug this:
> > > > [ 30.718689] 2 locks held by events/0/7:
> > > > [ 30.718689] #0: (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > > [ 30.718689] #1: (&wfc.work){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > > [ 30.718689]
> > > > [ 30.718689] stack backtrace:
> > > > [ 30.718689] Pid: 7, comm: events/0 Not tainted 2.6.28-tip #2
> > > > [ 30.718689] Call Trace:
> > > > [ 30.718689] [<ffffffff80295836>] validate_chain+0xc56/0x1340
> > > > [ 30.718689] [<ffffffff802974e6>] __lock_acquire+0x376/0x610
> > > > [ 30.718689] [<ffffffff80297819>] lock_acquire+0x99/0xd0
> > > > [ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
> > > > [ 30.718689] [<ffffffff80281091>] flush_workqueue+0x41/0x90
> > > > [ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
> > > > [ 30.718689] [<ffffffff802810f5>] flush_scheduled_work+0x15/0x20
> > > > [ 30.718689] [<ffffffff80c59794>] azx_clear_irq_pending+0x54/0x60
> > > > [ 30.718689] [<ffffffff80c599ec>] azx_free+0x10c/0x160
> > > > [ 30.718689] [<ffffffff80bae9ad>] ? snd_device_free+0x8d/0x100
> > > > [ 30.718689] [<ffffffff80c59a52>] azx_dev_free+0x12/0x20
> > > > [ 30.718689] [<ffffffff80bae9a1>] snd_device_free+0x81/0x100
> > > > [ 30.718689] [<ffffffff80baea89>] snd_device_free_all+0x69/0xa0
> > > > [ 30.718689] [<ffffffff80ba8a70>] snd_card_do_free+0x50/0xd0
> > > > [ 30.718689] [<ffffffff80ba9602>] snd_card_free+0xa2/0xc0
> > > > [ 30.718689] [<ffffffff8061115f>] ? __delay+0xf/0x20
> > > > [ 30.718689] [<ffffffff80edbb6a>] azx_probe+0x38a/0x9f0
> > > > [ 30.718689] [<ffffffff80c5a240>] ? azx_send_cmd+0x0/0x130
> > > > [ 30.718689] [<ffffffff80c5a370>] ? azx_get_response+0x0/0x210
> > > > [ 30.718689] [<ffffffff80c59b70>] ? azx_attach_pcm_stream+0x0/0x1b0
> > > > [ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
> > > > [ 30.718689] [<ffffffff80634807>] local_pci_probe+0x17/0x20
> > > > [ 30.718689] [<ffffffff802804e8>] do_work_for_cpu+0x18/0x30
> > > > [ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
> > > > [ 30.718689] [<ffffffff802807bb>] run_workqueue+0x19b/0x240
> > > > [ 30.718689] [<ffffffff8028076a>] ? run_workqueue+0x14a/0x240
> > > > [ 30.718689] [<ffffffff802809cf>] worker_thread+0xaf/0x110
> > > > [ 30.718689] [<ffffffff80284e20>] ? autoremove_wake_function+0x0/0x40
> > > > [ 30.718689] [<ffffffff80280920>] ? worker_thread+0x0/0x110
> > > > [ 30.718689] [<ffffffff802848e3>] kthread+0x53/0x80
> > > > [ 30.718689] [<ffffffff8022c3aa>] child_rip+0xa/0x20
> > > > [ 30.718689] [<ffffffff8022bcbe>] ? restore_args+0x0/0x30
> > > > [ 30.718689] [<ffffffff80284890>] ? kthread+0x0/0x80
> > > > [ 30.718689] [<ffffffff8022c3a0>] ? child_rip+0x0/0x20
> >
> > The backtrace implies that the probe callback is called in a
> > workqueue. Is it right?
>
> Yes, it appears a worklet tries to flush the queue he's on.
It calls flush_schedule_work().
So, now this should be avoided during the probe callback?
If so, a simple workaround would be to create its own workqueue, or
add a flag to avoid this call at destructor...
thanks,
Takashi
At Thu, 08 Jan 2009 17:17:06 +0100,
I wrote:
>
> At Thu, 08 Jan 2009 17:12:54 +0100,
> Peter Zijlstra wrote:
> >
> > On Thu, 2009-01-08 at 17:10 +0100, Takashi Iwai wrote:
> > > At Thu, 08 Jan 2009 16:39:31 +0100,
> > > I wrote:
> > > >
> > > > At Thu, 8 Jan 2009 16:20:37 +0100,
> > > > Ingo Molnar wrote:
> > > > >
> > > > > FYI, -tip testing found this new lockdep workqueue locking assert
> > > > > triggered by the Intel HDA sound driver:
> > > (snip)
> > > > > [ 30.718689] =============================================
> > > > > [ 30.718689] [ INFO: possible recursive locking detected ]
> > > > > [ 30.718689] 2.6.28-tip #2
> > > > > [ 30.718689] ---------------------------------------------
> > > > > [ 30.718689] events/0/7 is trying to acquire lock:
> > > > > [ 30.718689] (events){--..}, at: [<ffffffff80281050>] flush_workqueue+0x0/0x90
> > > > > [ 30.718689]
> > > > > [ 30.718689] but task is already holding lock:
> > > > > [ 30.718689] (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > > > [ 30.718689]
> > > > > [ 30.718689] other info that might help us debug this:
> > > > > [ 30.718689] 2 locks held by events/0/7:
> > > > > [ 30.718689] #0: (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > > > [ 30.718689] #1: (&wfc.work){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > > > [ 30.718689]
> > > > > [ 30.718689] stack backtrace:
> > > > > [ 30.718689] Pid: 7, comm: events/0 Not tainted 2.6.28-tip #2
> > > > > [ 30.718689] Call Trace:
> > > > > [ 30.718689] [<ffffffff80295836>] validate_chain+0xc56/0x1340
> > > > > [ 30.718689] [<ffffffff802974e6>] __lock_acquire+0x376/0x610
> > > > > [ 30.718689] [<ffffffff80297819>] lock_acquire+0x99/0xd0
> > > > > [ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
> > > > > [ 30.718689] [<ffffffff80281091>] flush_workqueue+0x41/0x90
> > > > > [ 30.718689] [<ffffffff80281050>] ? flush_workqueue+0x0/0x90
> > > > > [ 30.718689] [<ffffffff802810f5>] flush_scheduled_work+0x15/0x20
> > > > > [ 30.718689] [<ffffffff80c59794>] azx_clear_irq_pending+0x54/0x60
> > > > > [ 30.718689] [<ffffffff80c599ec>] azx_free+0x10c/0x160
> > > > > [ 30.718689] [<ffffffff80bae9ad>] ? snd_device_free+0x8d/0x100
> > > > > [ 30.718689] [<ffffffff80c59a52>] azx_dev_free+0x12/0x20
> > > > > [ 30.718689] [<ffffffff80bae9a1>] snd_device_free+0x81/0x100
> > > > > [ 30.718689] [<ffffffff80baea89>] snd_device_free_all+0x69/0xa0
> > > > > [ 30.718689] [<ffffffff80ba8a70>] snd_card_do_free+0x50/0xd0
> > > > > [ 30.718689] [<ffffffff80ba9602>] snd_card_free+0xa2/0xc0
> > > > > [ 30.718689] [<ffffffff8061115f>] ? __delay+0xf/0x20
> > > > > [ 30.718689] [<ffffffff80edbb6a>] azx_probe+0x38a/0x9f0
> > > > > [ 30.718689] [<ffffffff80c5a240>] ? azx_send_cmd+0x0/0x130
> > > > > [ 30.718689] [<ffffffff80c5a370>] ? azx_get_response+0x0/0x210
> > > > > [ 30.718689] [<ffffffff80c59b70>] ? azx_attach_pcm_stream+0x0/0x1b0
> > > > > [ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
> > > > > [ 30.718689] [<ffffffff80634807>] local_pci_probe+0x17/0x20
> > > > > [ 30.718689] [<ffffffff802804e8>] do_work_for_cpu+0x18/0x30
> > > > > [ 30.718689] [<ffffffff802804d0>] ? do_work_for_cpu+0x0/0x30
> > > > > [ 30.718689] [<ffffffff802807bb>] run_workqueue+0x19b/0x240
> > > > > [ 30.718689] [<ffffffff8028076a>] ? run_workqueue+0x14a/0x240
> > > > > [ 30.718689] [<ffffffff802809cf>] worker_thread+0xaf/0x110
> > > > > [ 30.718689] [<ffffffff80284e20>] ? autoremove_wake_function+0x0/0x40
> > > > > [ 30.718689] [<ffffffff80280920>] ? worker_thread+0x0/0x110
> > > > > [ 30.718689] [<ffffffff802848e3>] kthread+0x53/0x80
> > > > > [ 30.718689] [<ffffffff8022c3aa>] child_rip+0xa/0x20
> > > > > [ 30.718689] [<ffffffff8022bcbe>] ? restore_args+0x0/0x30
> > > > > [ 30.718689] [<ffffffff80284890>] ? kthread+0x0/0x80
> > > > > [ 30.718689] [<ffffffff8022c3a0>] ? child_rip+0x0/0x20
> > >
> > > The backtrace implies that the probe callback is called in a
> > > workqueue. Is it right?
> >
> > Yes, it appears a worklet tries to flush the queue he's on.
>
> It calls flush_schedule_work().
> So, now this should be avoided during the probe callback?
>
> If so, a simple workaround would be to create its own workqueue, or
> add a flag to avoid this call at destructor...
The below is a quick fix to convert to use the own workq in
hda_intel.c. This should fix this particular lockdep problem, at
least. (And it's better, anyway.)
Please give it a try.
thanks,
Takashi
---
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index f04de11..7e09f98 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -406,6 +406,7 @@ struct azx {
unsigned int last_cmd; /* last issued command (to sync) */
/* for pending irqs */
+ struct workqueue_struct *workq;
struct work_struct irq_pending_work;
/* reboot notifier (for mysterious hangup problem at power-down) */
@@ -999,7 +1000,8 @@ static irqreturn_t azx_interrupt(int irq, void *dev_id)
} else {
/* bogus IRQ, process it later */
azx_dev->irq_pending = 1;
- schedule_work(&chip->irq_pending_work);
+ queue_work(chip->workq,
+ &chip->irq_pending_work);
}
}
}
@@ -1741,7 +1743,7 @@ static void azx_clear_irq_pending(struct azx *chip)
for (i = 0; i < chip->num_streams; i++)
chip->azx_dev[i].irq_pending = 0;
spin_unlock_irq(&chip->reg_lock);
- flush_scheduled_work();
+ flush_workqueue(chip->workq);
}
static struct snd_pcm_ops azx_pcm_ops = {
@@ -2019,6 +2021,8 @@ static int azx_free(struct azx *chip)
azx_stop_chip(chip);
}
+ if (chip->workq)
+ destroy_workqueue(chip->workq);
if (chip->irq >= 0)
free_irq(chip->irq, (void*)chip);
if (chip->msi)
@@ -2131,6 +2135,7 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
static struct snd_device_ops ops = {
.dev_free = azx_dev_free,
};
+ char qname[8];
*rchip = NULL;
@@ -2153,7 +2158,6 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
chip->driver_type = driver_type;
chip->msi = enable_msi;
chip->dev_index = dev;
- INIT_WORK(&chip->irq_pending_work, azx_irq_pending_work);
chip->position_fix = check_position_fix(chip, position_fix[dev]);
check_probe_mask(chip, dev);
@@ -2200,6 +2204,15 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
if (pci_enable_msi(pci) < 0)
chip->msi = 0;
+ snprintf(qname, sizeof(qname), "hda%d", chip->card->number);
+ chip->workq = create_workqueue(qname);
+ if (!chip->workq) {
+ snd_printk(KERN_ERR SFX "cannot create workqueue %s\n", qname);
+ err = -ENOMEM;
+ goto errout;
+ }
+ INIT_WORK(&chip->irq_pending_work, azx_irq_pending_work);
+
if (azx_acquire_irq(chip, 0) < 0) {
err = -EBUSY;
goto errout;
On Thu, Jan 08, 2009 at 04:20:37PM +0100, Ingo Molnar wrote:
>
> FYI, -tip testing found this new lockdep workqueue locking assert
> triggered by the Intel HDA sound driver:
>
> [ 30.637612] alloc kstat_irqs on cpu 0 node 0
> [ 30.647029] IOAPIC[0]: Set routing entry (2-22 -> 0x71 -> IRQ 22 Mode:1 Active:1)
> [ 30.654533] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
> [ 30.661782] HDA Intel 0000:00:1b.0: setting latency timer to 64
> [ 30.667801] chipset global capabilities = 0x4401
> [ 30.701090] codec_mask = 0x4
> [ 30.701090] hda_intel: codec #2 probed OK
> [ 30.709090] hda-codec: No codec parser is available
> [ 30.714396] hda-intel: no codecs initialized
> [ 30.718689]
> [ 30.718689] =============================================
> [ 30.718689] [ INFO: possible recursive locking detected ]
> [ 30.718689] 2.6.28-tip #2
> [ 30.718689] ---------------------------------------------
> [ 30.718689] events/0/7 is trying to acquire lock:
> [ 30.718689] (events){--..}, at: [<ffffffff80281050>] flush_workqueue+0x0/0x90
> [ 30.718689]
> [ 30.718689] but task is already holding lock:
> [ 30.718689] (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> [ 30.718689]
> [ 30.718689] other info that might help us debug this:
> [ 30.718689] 2 locks held by events/0/7:
> [ 30.718689] #0: (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> [ 30.718689] #1: (&wfc.work){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
I didn't see this bug, but ran into another one with linux-next 20090102:
[ 844.111765] ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
[ 844.111915]
[ 844.111916] =======================================================
[ 844.112018] [ INFO: possible circular locking dependency detected ]
[ 844.112076] 2.6.28-next-20090102 #33
[ 844.112124] -------------------------------------------------------
[ 844.112181] mplayer/3151 is trying to acquire lock:
[ 844.112235] (&pcm->open_mutex){--..}, at: [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
[ 844.112361]
[ 844.112362] but task is already holding lock:
[ 844.112458] (&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
[ 844.112576]
[ 844.112577] which lock already depends on the new lock.
[ 844.112578]
[ 844.112712]
[ 844.112713] the existing dependency chain (in reverse order) is:
[ 844.112781]
[ 844.112781] -> #3 (&mm->mmap_sem){----}:
[ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
[ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
[ 844.112781] [<ffffffff810b7a43>] might_fault+0x73/0xa0
[ 844.112781] [<ffffffffa006f44d>] snd_hda_mixer_amp_tlv+0x6d/0xf0 [snd_hda_codec]
[ 844.112781] [<ffffffffa0093f80>] alc_cap_vol_tlv+0x70/0xa0 [snd_hda_codec_realtek]
[ 844.112781] [<ffffffffa0012300>] snd_ctl_tlv_ioctl+0x180/0x1b0 [snd]
[ 844.112781] [<ffffffffa0013a27>] snd_ctl_ioctl+0x927/0xf80 [snd]
[ 844.112781] [<ffffffff810ea801>] vfs_ioctl+0x31/0xa0
[ 844.112781] [<ffffffff810ea8e6>] do_vfs_ioctl+0x76/0x4a0
[ 844.112781] [<ffffffff810ead5a>] sys_ioctl+0x4a/0x80
[ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
[ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
[ 844.112781]
[ 844.112781] -> #2 (&codec->spdif_mutex){--..}:
[ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
[ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
[ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
[ 844.112781] [<ffffffffa006e54b>] snd_hda_multi_out_dig_open+0x2b/0x60 [snd_hda_codec]
[ 844.112781] [<ffffffffa00d2649>] intel_hdmi_playback_pcm_open+0x49/0x60 [snd_hda_codec_intelhdmi]
[ 844.112781] [<ffffffffa007fff9>] azx_pcm_open+0x209/0x280 [snd_hda_intel]
[ 844.112781] [<ffffffffa004d838>] snd_pcm_open_substream+0x58/0xd0 [snd_pcm]
[ 844.112781] [<ffffffffa004d9e7>] snd_pcm_open+0x137/0x260 [snd_pcm]
[ 844.112781] [<ffffffffa004db7c>] snd_pcm_playback_open+0x2c/0x40 [snd_pcm]
[ 844.112781] [<ffffffffa000e86e>] snd_open+0x9e/0x180 [snd]
[ 844.112781] [<ffffffff810df407>] chrdev_open+0xe7/0x1d0
[ 844.112781] [<ffffffff810da06e>] __dentry_open+0xce/0x360
[ 844.112781] [<ffffffff810da407>] nameidata_to_filp+0x57/0x70
[ 844.112781] [<ffffffff810e909e>] do_filp_open+0x20e/0x970
[ 844.112781] [<ffffffff810d9ec8>] do_sys_open+0x78/0x100
[ 844.112781] [<ffffffff810d9f7b>] sys_open+0x1b/0x20
[ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
[ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
[ 844.112781]
[ 844.112781] -> #1 (&chip->open_mutex){--..}:
[ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
[ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
[ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
[ 844.112781] [<ffffffffa007fe38>] azx_pcm_open+0x48/0x280 [snd_hda_intel]
[ 844.112781] [<ffffffffa004d838>] snd_pcm_open_substream+0x58/0xd0 [snd_pcm]
[ 844.112781] [<ffffffffa004d9e7>] snd_pcm_open+0x137/0x260 [snd_pcm]
[ 844.112781] [<ffffffffa004db7c>] snd_pcm_playback_open+0x2c/0x40 [snd_pcm]
[ 844.112781] [<ffffffffa000e86e>] snd_open+0x9e/0x180 [snd]
[ 844.112781] [<ffffffff810df407>] chrdev_open+0xe7/0x1d0
[ 844.112781] [<ffffffff810da06e>] __dentry_open+0xce/0x360
[ 844.112781] [<ffffffff810da407>] nameidata_to_filp+0x57/0x70
[ 844.112781] [<ffffffff810e909e>] do_filp_open+0x20e/0x970
[ 844.112781] [<ffffffff810d9ec8>] do_sys_open+0x78/0x100
[ 844.112781] [<ffffffff810d9f7b>] sys_open+0x1b/0x20
[ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
[ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
[ 844.112781]
[ 844.112781] -> #0 (&pcm->open_mutex){--..}:
[ 844.112781] [<ffffffff81070b1e>] __lock_acquire+0x13ce/0x1ae0
[ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
[ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
[ 844.112781] [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
[ 844.112781] [<ffffffff810dd505>] __fput+0xd5/0x230
[ 844.112781] [<ffffffff810dd67d>] fput+0x1d/0x30
[ 844.112781] [<ffffffff810bed4f>] remove_vma+0x4f/0x90
[ 844.112781] [<ffffffff810c01c2>] do_munmap+0x342/0x390
[ 844.112781] [<ffffffff810c0260>] sys_munmap+0x50/0x80
[ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
[ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
[ 844.112781]
[ 844.112781] other info that might help us debug this:
[ 844.112781]
[ 844.112781] 1 lock held by mplayer/3151:
[ 844.112781] #0: (&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
[ 844.112781]
[ 844.112781] stack backtrace:
[ 844.112781] Pid: 3151, comm: mplayer Not tainted 2.6.28-next-20090102 #33
[ 844.112781] Call Trace:
[ 844.112781] [<ffffffff8106f2a0>] print_circular_bug_tail+0xe0/0xf0
[ 844.112781] [<ffffffff81070b1e>] __lock_acquire+0x13ce/0x1ae0
[ 844.112781] [<ffffffff8106e916>] ? mark_held_locks+0x56/0xa0
[ 844.112781] [<ffffffff810abcf9>] ? free_hot_cold_page+0x1b9/0x2e0
[ 844.112781] [<ffffffff8106ec1d>] ? trace_hardirqs_on+0xd/0x10
[ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
[ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
[ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
[ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
[ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
[ 844.112781] [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
[ 844.112781] [<ffffffff810dd505>] __fput+0xd5/0x230
[ 844.112781] [<ffffffff810dd67d>] fput+0x1d/0x30
[ 844.112781] [<ffffffff810bed4f>] remove_vma+0x4f/0x90
[ 844.112781] [<ffffffff810c01c2>] do_munmap+0x342/0x390
[ 844.112781] [<ffffffff810c0260>] sys_munmap+0x50/0x80
[ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
[ 844.119376] ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
Which can be fixed by the following patch.
Thanks,
Fengguang
---
hda - fix lockdep warning
ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.28-next-20090102 #33
-------------------------------------------------------
mplayer/3151 is trying to acquire lock:
(&pcm->open_mutex){--..}, at: [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
but task is already holding lock:
(&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
which lock already depends on the new lock.
Signed-off-by: Wu Fengguang <[email protected]>
---
sound/pci/hda/hda_codec.c | 1 +
sound/pci/hda/hda_codec.h | 1 +
sound/pci/hda/patch_realtek.c | 12 ++++++------
3 files changed, 8 insertions(+), 6 deletions(-)
--- mm.orig/sound/pci/hda/hda_codec.c
+++ mm/sound/pci/hda/hda_codec.c
@@ -735,6 +735,7 @@ int /*__devinit*/ snd_hda_codec_new(stru
codec->bus = bus;
codec->addr = codec_addr;
mutex_init(&codec->spdif_mutex);
+ mutex_init(&codec->control_mutex);
init_hda_cache(&codec->amp_cache, sizeof(struct hda_amp_info));
init_hda_cache(&codec->cmd_cache, sizeof(struct hda_cache_head));
snd_array_init(&codec->mixers, sizeof(struct snd_kcontrol *), 32);
--- mm.orig/sound/pci/hda/hda_codec.h
+++ mm/sound/pci/hda/hda_codec.h
@@ -771,6 +771,7 @@ struct hda_codec {
struct hda_cache_rec cmd_cache; /* cache for other commands */
struct mutex spdif_mutex;
+ struct mutex control_mutex;
unsigned int spdif_status; /* IEC958 status bits */
unsigned short spdif_ctls; /* SPDIF control bits */
unsigned int spdif_in_enable; /* SPDIF input enable? */
--- mm.orig/sound/pci/hda/patch_realtek.c
+++ mm/sound/pci/hda/patch_realtek.c
@@ -1502,11 +1502,11 @@ static int alc_cap_vol_info(struct snd_k
struct alc_spec *spec = codec->spec;
int err;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
kcontrol->private_value = HDA_COMPOSE_AMP_VAL(spec->adc_nids[0], 3, 0,
HDA_INPUT);
err = snd_hda_mixer_amp_volume_info(kcontrol, uinfo);
- mutex_unlock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_unlock(&codec->control_mutex);
return err;
}
@@ -1517,11 +1517,11 @@ static int alc_cap_vol_tlv(struct snd_kc
struct alc_spec *spec = codec->spec;
int err;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
kcontrol->private_value = HDA_COMPOSE_AMP_VAL(spec->adc_nids[0], 3, 0,
HDA_INPUT);
err = snd_hda_mixer_amp_tlv(kcontrol, op_flag, size, tlv);
- mutex_unlock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_unlock(&codec->control_mutex);
return err;
}
@@ -1537,11 +1537,11 @@ static int alc_cap_getput_caller(struct
unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
int err;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
kcontrol->private_value = HDA_COMPOSE_AMP_VAL(spec->adc_nids[adc_idx],
3, 0, HDA_INPUT);
err = func(kcontrol, ucontrol);
- mutex_unlock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_unlock(&codec->control_mutex);
return err;
}
At Fri, 9 Jan 2009 13:06:21 +0800,
Wu Fengguang wrote:
>
> On Thu, Jan 08, 2009 at 04:20:37PM +0100, Ingo Molnar wrote:
> >
> > FYI, -tip testing found this new lockdep workqueue locking assert
> > triggered by the Intel HDA sound driver:
> >
> > [ 30.637612] alloc kstat_irqs on cpu 0 node 0
> > [ 30.647029] IOAPIC[0]: Set routing entry (2-22 -> 0x71 -> IRQ 22 Mode:1 Active:1)
> > [ 30.654533] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
> > [ 30.661782] HDA Intel 0000:00:1b.0: setting latency timer to 64
> > [ 30.667801] chipset global capabilities = 0x4401
> > [ 30.701090] codec_mask = 0x4
> > [ 30.701090] hda_intel: codec #2 probed OK
> > [ 30.709090] hda-codec: No codec parser is available
> > [ 30.714396] hda-intel: no codecs initialized
> > [ 30.718689]
> > [ 30.718689] =============================================
> > [ 30.718689] [ INFO: possible recursive locking detected ]
> > [ 30.718689] 2.6.28-tip #2
> > [ 30.718689] ---------------------------------------------
> > [ 30.718689] events/0/7 is trying to acquire lock:
> > [ 30.718689] (events){--..}, at: [<ffffffff80281050>] flush_workqueue+0x0/0x90
> > [ 30.718689]
> > [ 30.718689] but task is already holding lock:
> > [ 30.718689] (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > [ 30.718689]
> > [ 30.718689] other info that might help us debug this:
> > [ 30.718689] 2 locks held by events/0/7:
> > [ 30.718689] #0: (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > [ 30.718689] #1: (&wfc.work){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
>
> I didn't see this bug, but ran into another one with linux-next 20090102:
>
> [ 844.111765] ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
> [ 844.111915]
> [ 844.111916] =======================================================
> [ 844.112018] [ INFO: possible circular locking dependency detected ]
> [ 844.112076] 2.6.28-next-20090102 #33
> [ 844.112124] -------------------------------------------------------
> [ 844.112181] mplayer/3151 is trying to acquire lock:
> [ 844.112235] (&pcm->open_mutex){--..}, at: [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
> [ 844.112361]
> [ 844.112362] but task is already holding lock:
> [ 844.112458] (&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
> [ 844.112576]
> [ 844.112577] which lock already depends on the new lock.
> [ 844.112578]
> [ 844.112712]
> [ 844.112713] the existing dependency chain (in reverse order) is:
> [ 844.112781]
> [ 844.112781] -> #3 (&mm->mmap_sem){----}:
> [ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
> [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> [ 844.112781] [<ffffffff810b7a43>] might_fault+0x73/0xa0
> [ 844.112781] [<ffffffffa006f44d>] snd_hda_mixer_amp_tlv+0x6d/0xf0 [snd_hda_codec]
> [ 844.112781] [<ffffffffa0093f80>] alc_cap_vol_tlv+0x70/0xa0 [snd_hda_codec_realtek]
> [ 844.112781] [<ffffffffa0012300>] snd_ctl_tlv_ioctl+0x180/0x1b0 [snd]
> [ 844.112781] [<ffffffffa0013a27>] snd_ctl_ioctl+0x927/0xf80 [snd]
> [ 844.112781] [<ffffffff810ea801>] vfs_ioctl+0x31/0xa0
> [ 844.112781] [<ffffffff810ea8e6>] do_vfs_ioctl+0x76/0x4a0
> [ 844.112781] [<ffffffff810ead5a>] sys_ioctl+0x4a/0x80
> [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> [ 844.112781]
> [ 844.112781] -> #2 (&codec->spdif_mutex){--..}:
> [ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
> [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> [ 844.112781] [<ffffffffa006e54b>] snd_hda_multi_out_dig_open+0x2b/0x60 [snd_hda_codec]
> [ 844.112781] [<ffffffffa00d2649>] intel_hdmi_playback_pcm_open+0x49/0x60 [snd_hda_codec_intelhdmi]
> [ 844.112781] [<ffffffffa007fff9>] azx_pcm_open+0x209/0x280 [snd_hda_intel]
> [ 844.112781] [<ffffffffa004d838>] snd_pcm_open_substream+0x58/0xd0 [snd_pcm]
> [ 844.112781] [<ffffffffa004d9e7>] snd_pcm_open+0x137/0x260 [snd_pcm]
> [ 844.112781] [<ffffffffa004db7c>] snd_pcm_playback_open+0x2c/0x40 [snd_pcm]
> [ 844.112781] [<ffffffffa000e86e>] snd_open+0x9e/0x180 [snd]
> [ 844.112781] [<ffffffff810df407>] chrdev_open+0xe7/0x1d0
> [ 844.112781] [<ffffffff810da06e>] __dentry_open+0xce/0x360
> [ 844.112781] [<ffffffff810da407>] nameidata_to_filp+0x57/0x70
> [ 844.112781] [<ffffffff810e909e>] do_filp_open+0x20e/0x970
> [ 844.112781] [<ffffffff810d9ec8>] do_sys_open+0x78/0x100
> [ 844.112781] [<ffffffff810d9f7b>] sys_open+0x1b/0x20
> [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> [ 844.112781]
> [ 844.112781] -> #1 (&chip->open_mutex){--..}:
> [ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
> [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> [ 844.112781] [<ffffffffa007fe38>] azx_pcm_open+0x48/0x280 [snd_hda_intel]
> [ 844.112781] [<ffffffffa004d838>] snd_pcm_open_substream+0x58/0xd0 [snd_pcm]
> [ 844.112781] [<ffffffffa004d9e7>] snd_pcm_open+0x137/0x260 [snd_pcm]
> [ 844.112781] [<ffffffffa004db7c>] snd_pcm_playback_open+0x2c/0x40 [snd_pcm]
> [ 844.112781] [<ffffffffa000e86e>] snd_open+0x9e/0x180 [snd]
> [ 844.112781] [<ffffffff810df407>] chrdev_open+0xe7/0x1d0
> [ 844.112781] [<ffffffff810da06e>] __dentry_open+0xce/0x360
> [ 844.112781] [<ffffffff810da407>] nameidata_to_filp+0x57/0x70
> [ 844.112781] [<ffffffff810e909e>] do_filp_open+0x20e/0x970
> [ 844.112781] [<ffffffff810d9ec8>] do_sys_open+0x78/0x100
> [ 844.112781] [<ffffffff810d9f7b>] sys_open+0x1b/0x20
> [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> [ 844.112781]
> [ 844.112781] -> #0 (&pcm->open_mutex){--..}:
> [ 844.112781] [<ffffffff81070b1e>] __lock_acquire+0x13ce/0x1ae0
> [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> [ 844.112781] [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
> [ 844.112781] [<ffffffff810dd505>] __fput+0xd5/0x230
> [ 844.112781] [<ffffffff810dd67d>] fput+0x1d/0x30
> [ 844.112781] [<ffffffff810bed4f>] remove_vma+0x4f/0x90
> [ 844.112781] [<ffffffff810c01c2>] do_munmap+0x342/0x390
> [ 844.112781] [<ffffffff810c0260>] sys_munmap+0x50/0x80
> [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> [ 844.112781]
> [ 844.112781] other info that might help us debug this:
> [ 844.112781]
> [ 844.112781] 1 lock held by mplayer/3151:
> [ 844.112781] #0: (&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
> [ 844.112781]
> [ 844.112781] stack backtrace:
> [ 844.112781] Pid: 3151, comm: mplayer Not tainted 2.6.28-next-20090102 #33
> [ 844.112781] Call Trace:
> [ 844.112781] [<ffffffff8106f2a0>] print_circular_bug_tail+0xe0/0xf0
> [ 844.112781] [<ffffffff81070b1e>] __lock_acquire+0x13ce/0x1ae0
> [ 844.112781] [<ffffffff8106e916>] ? mark_held_locks+0x56/0xa0
> [ 844.112781] [<ffffffff810abcf9>] ? free_hot_cold_page+0x1b9/0x2e0
> [ 844.112781] [<ffffffff8106ec1d>] ? trace_hardirqs_on+0xd/0x10
> [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> [ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
> [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> [ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
> [ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
> [ 844.112781] [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
> [ 844.112781] [<ffffffff810dd505>] __fput+0xd5/0x230
> [ 844.112781] [<ffffffff810dd67d>] fput+0x1d/0x30
> [ 844.112781] [<ffffffff810bed4f>] remove_vma+0x4f/0x90
> [ 844.112781] [<ffffffff810c01c2>] do_munmap+0x342/0x390
> [ 844.112781] [<ffffffff810c0260>] sys_munmap+0x50/0x80
> [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> [ 844.119376] ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
>
> Which can be fixed by the following patch.
This alone isn't enough. You need to replace all codec->spdif_mutex
in the control get/put/info/tlv callbacks in hda_codec.c. Otherwise
there is no meaning of the mutex. The mutex is to protect the rewrite
of kcontrol->private_value dynamically.
Could you fix and repost?
thanks,
Takashi
>
> Thanks,
> Fengguang
> ---
> hda - fix lockdep warning
>
> ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
>
> =======================================================
> [ INFO: possible circular locking dependency detected ]
> 2.6.28-next-20090102 #33
> -------------------------------------------------------
> mplayer/3151 is trying to acquire lock:
> (&pcm->open_mutex){--..}, at: [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
>
> but task is already holding lock:
> (&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
>
> which lock already depends on the new lock.
>
> Signed-off-by: Wu Fengguang <[email protected]>
> ---
> sound/pci/hda/hda_codec.c | 1 +
> sound/pci/hda/hda_codec.h | 1 +
> sound/pci/hda/patch_realtek.c | 12 ++++++------
> 3 files changed, 8 insertions(+), 6 deletions(-)
>
> --- mm.orig/sound/pci/hda/hda_codec.c
> +++ mm/sound/pci/hda/hda_codec.c
> @@ -735,6 +735,7 @@ int /*__devinit*/ snd_hda_codec_new(stru
> codec->bus = bus;
> codec->addr = codec_addr;
> mutex_init(&codec->spdif_mutex);
> + mutex_init(&codec->control_mutex);
> init_hda_cache(&codec->amp_cache, sizeof(struct hda_amp_info));
> init_hda_cache(&codec->cmd_cache, sizeof(struct hda_cache_head));
> snd_array_init(&codec->mixers, sizeof(struct snd_kcontrol *), 32);
> --- mm.orig/sound/pci/hda/hda_codec.h
> +++ mm/sound/pci/hda/hda_codec.h
> @@ -771,6 +771,7 @@ struct hda_codec {
> struct hda_cache_rec cmd_cache; /* cache for other commands */
>
> struct mutex spdif_mutex;
> + struct mutex control_mutex;
> unsigned int spdif_status; /* IEC958 status bits */
> unsigned short spdif_ctls; /* SPDIF control bits */
> unsigned int spdif_in_enable; /* SPDIF input enable? */
> --- mm.orig/sound/pci/hda/patch_realtek.c
> +++ mm/sound/pci/hda/patch_realtek.c
> @@ -1502,11 +1502,11 @@ static int alc_cap_vol_info(struct snd_k
> struct alc_spec *spec = codec->spec;
> int err;
>
> - mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
> + mutex_lock(&codec->control_mutex);
> kcontrol->private_value = HDA_COMPOSE_AMP_VAL(spec->adc_nids[0], 3, 0,
> HDA_INPUT);
> err = snd_hda_mixer_amp_volume_info(kcontrol, uinfo);
> - mutex_unlock(&codec->spdif_mutex); /* reuse spdif_mutex */
> + mutex_unlock(&codec->control_mutex);
> return err;
> }
>
> @@ -1517,11 +1517,11 @@ static int alc_cap_vol_tlv(struct snd_kc
> struct alc_spec *spec = codec->spec;
> int err;
>
> - mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
> + mutex_lock(&codec->control_mutex);
> kcontrol->private_value = HDA_COMPOSE_AMP_VAL(spec->adc_nids[0], 3, 0,
> HDA_INPUT);
> err = snd_hda_mixer_amp_tlv(kcontrol, op_flag, size, tlv);
> - mutex_unlock(&codec->spdif_mutex); /* reuse spdif_mutex */
> + mutex_unlock(&codec->control_mutex);
> return err;
> }
>
> @@ -1537,11 +1537,11 @@ static int alc_cap_getput_caller(struct
> unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
> int err;
>
> - mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
> + mutex_lock(&codec->control_mutex);
> kcontrol->private_value = HDA_COMPOSE_AMP_VAL(spec->adc_nids[adc_idx],
> 3, 0, HDA_INPUT);
> err = func(kcontrol, ucontrol);
> - mutex_unlock(&codec->spdif_mutex); /* reuse spdif_mutex */
> + mutex_unlock(&codec->control_mutex);
> return err;
> }
>
>
On Fri, Jan 09, 2009 at 08:18:47AM +0100, Takashi Iwai wrote:
> At Fri, 9 Jan 2009 13:06:21 +0800,
> Wu Fengguang wrote:
> >
> > On Thu, Jan 08, 2009 at 04:20:37PM +0100, Ingo Molnar wrote:
> > >
> > > FYI, -tip testing found this new lockdep workqueue locking assert
> > > triggered by the Intel HDA sound driver:
> > >
> > > [ 30.637612] alloc kstat_irqs on cpu 0 node 0
> > > [ 30.647029] IOAPIC[0]: Set routing entry (2-22 -> 0x71 -> IRQ 22 Mode:1 Active:1)
> > > [ 30.654533] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
> > > [ 30.661782] HDA Intel 0000:00:1b.0: setting latency timer to 64
> > > [ 30.667801] chipset global capabilities = 0x4401
> > > [ 30.701090] codec_mask = 0x4
> > > [ 30.701090] hda_intel: codec #2 probed OK
> > > [ 30.709090] hda-codec: No codec parser is available
> > > [ 30.714396] hda-intel: no codecs initialized
> > > [ 30.718689]
> > > [ 30.718689] =============================================
> > > [ 30.718689] [ INFO: possible recursive locking detected ]
> > > [ 30.718689] 2.6.28-tip #2
> > > [ 30.718689] ---------------------------------------------
> > > [ 30.718689] events/0/7 is trying to acquire lock:
> > > [ 30.718689] (events){--..}, at: [<ffffffff80281050>] flush_workqueue+0x0/0x90
> > > [ 30.718689]
> > > [ 30.718689] but task is already holding lock:
> > > [ 30.718689] (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > [ 30.718689]
> > > [ 30.718689] other info that might help us debug this:
> > > [ 30.718689] 2 locks held by events/0/7:
> > > [ 30.718689] #0: (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > [ 30.718689] #1: (&wfc.work){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> >
> > I didn't see this bug, but ran into another one with linux-next 20090102:
> >
> > [ 844.111765] ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
> > [ 844.111915]
> > [ 844.111916] =======================================================
> > [ 844.112018] [ INFO: possible circular locking dependency detected ]
> > [ 844.112076] 2.6.28-next-20090102 #33
> > [ 844.112124] -------------------------------------------------------
> > [ 844.112181] mplayer/3151 is trying to acquire lock:
> > [ 844.112235] (&pcm->open_mutex){--..}, at: [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
> > [ 844.112361]
> > [ 844.112362] but task is already holding lock:
> > [ 844.112458] (&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
> > [ 844.112576]
> > [ 844.112577] which lock already depends on the new lock.
> > [ 844.112578]
> > [ 844.112712]
> > [ 844.112713] the existing dependency chain (in reverse order) is:
> > [ 844.112781]
> > [ 844.112781] -> #3 (&mm->mmap_sem){----}:
> > [ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
> > [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> > [ 844.112781] [<ffffffff810b7a43>] might_fault+0x73/0xa0
> > [ 844.112781] [<ffffffffa006f44d>] snd_hda_mixer_amp_tlv+0x6d/0xf0 [snd_hda_codec]
> > [ 844.112781] [<ffffffffa0093f80>] alc_cap_vol_tlv+0x70/0xa0 [snd_hda_codec_realtek]
> > [ 844.112781] [<ffffffffa0012300>] snd_ctl_tlv_ioctl+0x180/0x1b0 [snd]
> > [ 844.112781] [<ffffffffa0013a27>] snd_ctl_ioctl+0x927/0xf80 [snd]
> > [ 844.112781] [<ffffffff810ea801>] vfs_ioctl+0x31/0xa0
> > [ 844.112781] [<ffffffff810ea8e6>] do_vfs_ioctl+0x76/0x4a0
> > [ 844.112781] [<ffffffff810ead5a>] sys_ioctl+0x4a/0x80
> > [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> > [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> > [ 844.112781]
> > [ 844.112781] -> #2 (&codec->spdif_mutex){--..}:
> > [ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
> > [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> > [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> > [ 844.112781] [<ffffffffa006e54b>] snd_hda_multi_out_dig_open+0x2b/0x60 [snd_hda_codec]
> > [ 844.112781] [<ffffffffa00d2649>] intel_hdmi_playback_pcm_open+0x49/0x60 [snd_hda_codec_intelhdmi]
> > [ 844.112781] [<ffffffffa007fff9>] azx_pcm_open+0x209/0x280 [snd_hda_intel]
> > [ 844.112781] [<ffffffffa004d838>] snd_pcm_open_substream+0x58/0xd0 [snd_pcm]
> > [ 844.112781] [<ffffffffa004d9e7>] snd_pcm_open+0x137/0x260 [snd_pcm]
> > [ 844.112781] [<ffffffffa004db7c>] snd_pcm_playback_open+0x2c/0x40 [snd_pcm]
> > [ 844.112781] [<ffffffffa000e86e>] snd_open+0x9e/0x180 [snd]
> > [ 844.112781] [<ffffffff810df407>] chrdev_open+0xe7/0x1d0
> > [ 844.112781] [<ffffffff810da06e>] __dentry_open+0xce/0x360
> > [ 844.112781] [<ffffffff810da407>] nameidata_to_filp+0x57/0x70
> > [ 844.112781] [<ffffffff810e909e>] do_filp_open+0x20e/0x970
> > [ 844.112781] [<ffffffff810d9ec8>] do_sys_open+0x78/0x100
> > [ 844.112781] [<ffffffff810d9f7b>] sys_open+0x1b/0x20
> > [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> > [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> > [ 844.112781]
> > [ 844.112781] -> #1 (&chip->open_mutex){--..}:
> > [ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
> > [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> > [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> > [ 844.112781] [<ffffffffa007fe38>] azx_pcm_open+0x48/0x280 [snd_hda_intel]
> > [ 844.112781] [<ffffffffa004d838>] snd_pcm_open_substream+0x58/0xd0 [snd_pcm]
> > [ 844.112781] [<ffffffffa004d9e7>] snd_pcm_open+0x137/0x260 [snd_pcm]
> > [ 844.112781] [<ffffffffa004db7c>] snd_pcm_playback_open+0x2c/0x40 [snd_pcm]
> > [ 844.112781] [<ffffffffa000e86e>] snd_open+0x9e/0x180 [snd]
> > [ 844.112781] [<ffffffff810df407>] chrdev_open+0xe7/0x1d0
> > [ 844.112781] [<ffffffff810da06e>] __dentry_open+0xce/0x360
> > [ 844.112781] [<ffffffff810da407>] nameidata_to_filp+0x57/0x70
> > [ 844.112781] [<ffffffff810e909e>] do_filp_open+0x20e/0x970
> > [ 844.112781] [<ffffffff810d9ec8>] do_sys_open+0x78/0x100
> > [ 844.112781] [<ffffffff810d9f7b>] sys_open+0x1b/0x20
> > [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> > [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> > [ 844.112781]
> > [ 844.112781] -> #0 (&pcm->open_mutex){--..}:
> > [ 844.112781] [<ffffffff81070b1e>] __lock_acquire+0x13ce/0x1ae0
> > [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> > [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> > [ 844.112781] [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
> > [ 844.112781] [<ffffffff810dd505>] __fput+0xd5/0x230
> > [ 844.112781] [<ffffffff810dd67d>] fput+0x1d/0x30
> > [ 844.112781] [<ffffffff810bed4f>] remove_vma+0x4f/0x90
> > [ 844.112781] [<ffffffff810c01c2>] do_munmap+0x342/0x390
> > [ 844.112781] [<ffffffff810c0260>] sys_munmap+0x50/0x80
> > [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> > [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> > [ 844.112781]
> > [ 844.112781] other info that might help us debug this:
> > [ 844.112781]
> > [ 844.112781] 1 lock held by mplayer/3151:
> > [ 844.112781] #0: (&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
> > [ 844.112781]
> > [ 844.112781] stack backtrace:
> > [ 844.112781] Pid: 3151, comm: mplayer Not tainted 2.6.28-next-20090102 #33
> > [ 844.112781] Call Trace:
> > [ 844.112781] [<ffffffff8106f2a0>] print_circular_bug_tail+0xe0/0xf0
> > [ 844.112781] [<ffffffff81070b1e>] __lock_acquire+0x13ce/0x1ae0
> > [ 844.112781] [<ffffffff8106e916>] ? mark_held_locks+0x56/0xa0
> > [ 844.112781] [<ffffffff810abcf9>] ? free_hot_cold_page+0x1b9/0x2e0
> > [ 844.112781] [<ffffffff8106ec1d>] ? trace_hardirqs_on+0xd/0x10
> > [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> > [ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
> > [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> > [ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
> > [ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
> > [ 844.112781] [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
> > [ 844.112781] [<ffffffff810dd505>] __fput+0xd5/0x230
> > [ 844.112781] [<ffffffff810dd67d>] fput+0x1d/0x30
> > [ 844.112781] [<ffffffff810bed4f>] remove_vma+0x4f/0x90
> > [ 844.112781] [<ffffffff810c01c2>] do_munmap+0x342/0x390
> > [ 844.112781] [<ffffffff810c0260>] sys_munmap+0x50/0x80
> > [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> > [ 844.119376] ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
> >
> > Which can be fixed by the following patch.
>
> This alone isn't enough. You need to replace all codec->spdif_mutex
> in the control get/put/info/tlv callbacks in hda_codec.c. Otherwise
> there is no meaning of the mutex. The mutex is to protect the rewrite
> of kcontrol->private_value dynamically.
>
> Could you fix and repost?
Ah sure. Here is the updated patch.
Thanks,
Fengguang
---
ALSA: hda - create hda_codec.control_mutex for kcontrol->private_value
Fix the following lockdep warning by not reusing the hda_codec.spdif_mutex.
ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.28-next-20090102 #33
-------------------------------------------------------
mplayer/3151 is trying to acquire lock:
(&pcm->open_mutex){--..}, at: [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
but task is already holding lock:
(&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
which lock already depends on the new lock.
Signed-off-by: Wu Fengguang <[email protected]>
---
sound/pci/hda/hda_codec.c | 25 +++++++++++++------------
sound/pci/hda/hda_codec.h | 1 +
sound/pci/hda/patch_realtek.c | 12 ++++++------
3 files changed, 20 insertions(+), 18 deletions(-)
--- mm.orig/sound/pci/hda/hda_codec.h
+++ mm/sound/pci/hda/hda_codec.h
@@ -771,6 +771,7 @@ struct hda_codec {
struct hda_cache_rec cmd_cache; /* cache for other commands */
struct mutex spdif_mutex;
+ struct mutex control_mutex;
unsigned int spdif_status; /* IEC958 status bits */
unsigned short spdif_ctls; /* SPDIF control bits */
unsigned int spdif_in_enable; /* SPDIF input enable? */
--- mm.orig/sound/pci/hda/hda_codec.c
+++ mm/sound/pci/hda/hda_codec.c
@@ -735,6 +735,7 @@ int /*__devinit*/ snd_hda_codec_new(stru
codec->bus = bus;
codec->addr = codec_addr;
mutex_init(&codec->spdif_mutex);
+ mutex_init(&codec->control_mutex);
init_hda_cache(&codec->amp_cache, sizeof(struct hda_amp_info));
init_hda_cache(&codec->cmd_cache, sizeof(struct hda_cache_head));
snd_array_init(&codec->mixers, sizeof(struct snd_kcontrol *), 32);
@@ -1418,12 +1419,12 @@ int snd_hda_mixer_bind_switch_get(struct
unsigned long pval;
int err;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
pval = kcontrol->private_value;
kcontrol->private_value = pval & ~AMP_VAL_IDX_MASK; /* index 0 */
err = snd_hda_mixer_amp_switch_get(kcontrol, ucontrol);
kcontrol->private_value = pval;
- mutex_unlock(&codec->spdif_mutex);
+ mutex_unlock(&codec->control_mutex);
return err;
}
EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_switch_get);
@@ -1435,7 +1436,7 @@ int snd_hda_mixer_bind_switch_put(struct
unsigned long pval;
int i, indices, err = 0, change = 0;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
pval = kcontrol->private_value;
indices = (pval & AMP_VAL_IDX_MASK) >> AMP_VAL_IDX_SHIFT;
for (i = 0; i < indices; i++) {
@@ -1447,7 +1448,7 @@ int snd_hda_mixer_bind_switch_put(struct
change |= err;
}
kcontrol->private_value = pval;
- mutex_unlock(&codec->spdif_mutex);
+ mutex_unlock(&codec->control_mutex);
return err < 0 ? err : change;
}
EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_switch_put);
@@ -1462,12 +1463,12 @@ int snd_hda_mixer_bind_ctls_info(struct
struct hda_bind_ctls *c;
int err;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
c = (struct hda_bind_ctls *)kcontrol->private_value;
kcontrol->private_value = *c->values;
err = c->ops->info(kcontrol, uinfo);
kcontrol->private_value = (long)c;
- mutex_unlock(&codec->spdif_mutex);
+ mutex_unlock(&codec->control_mutex);
return err;
}
EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_ctls_info);
@@ -1479,12 +1480,12 @@ int snd_hda_mixer_bind_ctls_get(struct s
struct hda_bind_ctls *c;
int err;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
c = (struct hda_bind_ctls *)kcontrol->private_value;
kcontrol->private_value = *c->values;
err = c->ops->get(kcontrol, ucontrol);
kcontrol->private_value = (long)c;
- mutex_unlock(&codec->spdif_mutex);
+ mutex_unlock(&codec->control_mutex);
return err;
}
EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_ctls_get);
@@ -1497,7 +1498,7 @@ int snd_hda_mixer_bind_ctls_put(struct s
unsigned long *vals;
int err = 0, change = 0;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
c = (struct hda_bind_ctls *)kcontrol->private_value;
for (vals = c->values; *vals; vals++) {
kcontrol->private_value = *vals;
@@ -1507,7 +1508,7 @@ int snd_hda_mixer_bind_ctls_put(struct s
change |= err;
}
kcontrol->private_value = (long)c;
- mutex_unlock(&codec->spdif_mutex);
+ mutex_unlock(&codec->control_mutex);
return err < 0 ? err : change;
}
EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_ctls_put);
@@ -1519,12 +1520,12 @@ int snd_hda_mixer_bind_tlv(struct snd_kc
struct hda_bind_ctls *c;
int err;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
c = (struct hda_bind_ctls *)kcontrol->private_value;
kcontrol->private_value = *c->values;
err = c->ops->tlv(kcontrol, op_flag, size, tlv);
kcontrol->private_value = (long)c;
- mutex_unlock(&codec->spdif_mutex);
+ mutex_unlock(&codec->control_mutex);
return err;
}
EXPORT_SYMBOL_HDA(snd_hda_mixer_bind_tlv);
--- mm.orig/sound/pci/hda/patch_realtek.c
+++ mm/sound/pci/hda/patch_realtek.c
@@ -1502,11 +1502,11 @@ static int alc_cap_vol_info(struct snd_k
struct alc_spec *spec = codec->spec;
int err;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
kcontrol->private_value = HDA_COMPOSE_AMP_VAL(spec->adc_nids[0], 3, 0,
HDA_INPUT);
err = snd_hda_mixer_amp_volume_info(kcontrol, uinfo);
- mutex_unlock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_unlock(&codec->control_mutex);
return err;
}
@@ -1517,11 +1517,11 @@ static int alc_cap_vol_tlv(struct snd_kc
struct alc_spec *spec = codec->spec;
int err;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
kcontrol->private_value = HDA_COMPOSE_AMP_VAL(spec->adc_nids[0], 3, 0,
HDA_INPUT);
err = snd_hda_mixer_amp_tlv(kcontrol, op_flag, size, tlv);
- mutex_unlock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_unlock(&codec->control_mutex);
return err;
}
@@ -1537,11 +1537,11 @@ static int alc_cap_getput_caller(struct
unsigned int adc_idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
int err;
- mutex_lock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_lock(&codec->control_mutex);
kcontrol->private_value = HDA_COMPOSE_AMP_VAL(spec->adc_nids[adc_idx],
3, 0, HDA_INPUT);
err = func(kcontrol, ucontrol);
- mutex_unlock(&codec->spdif_mutex); /* reuse spdif_mutex */
+ mutex_unlock(&codec->control_mutex);
return err;
}
At Fri, 9 Jan 2009 16:45:24 +0800,
Wu Fengguang wrote:
>
> On Fri, Jan 09, 2009 at 08:18:47AM +0100, Takashi Iwai wrote:
> > At Fri, 9 Jan 2009 13:06:21 +0800,
> > Wu Fengguang wrote:
> > >
> > > On Thu, Jan 08, 2009 at 04:20:37PM +0100, Ingo Molnar wrote:
> > > >
> > > > FYI, -tip testing found this new lockdep workqueue locking assert
> > > > triggered by the Intel HDA sound driver:
> > > >
> > > > [ 30.637612] alloc kstat_irqs on cpu 0 node 0
> > > > [ 30.647029] IOAPIC[0]: Set routing entry (2-22 -> 0x71 -> IRQ 22 Mode:1 Active:1)
> > > > [ 30.654533] HDA Intel 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
> > > > [ 30.661782] HDA Intel 0000:00:1b.0: setting latency timer to 64
> > > > [ 30.667801] chipset global capabilities = 0x4401
> > > > [ 30.701090] codec_mask = 0x4
> > > > [ 30.701090] hda_intel: codec #2 probed OK
> > > > [ 30.709090] hda-codec: No codec parser is available
> > > > [ 30.714396] hda-intel: no codecs initialized
> > > > [ 30.718689]
> > > > [ 30.718689] =============================================
> > > > [ 30.718689] [ INFO: possible recursive locking detected ]
> > > > [ 30.718689] 2.6.28-tip #2
> > > > [ 30.718689] ---------------------------------------------
> > > > [ 30.718689] events/0/7 is trying to acquire lock:
> > > > [ 30.718689] (events){--..}, at: [<ffffffff80281050>] flush_workqueue+0x0/0x90
> > > > [ 30.718689]
> > > > [ 30.718689] but task is already holding lock:
> > > > [ 30.718689] (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > > [ 30.718689]
> > > > [ 30.718689] other info that might help us debug this:
> > > > [ 30.718689] 2 locks held by events/0/7:
> > > > [ 30.718689] #0: (events){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > > > [ 30.718689] #1: (&wfc.work){--..}, at: [<ffffffff8028076a>] run_workqueue+0x14a/0x240
> > >
> > > I didn't see this bug, but ran into another one with linux-next 20090102:
> > >
> > > [ 844.111765] ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
> > > [ 844.111915]
> > > [ 844.111916] =======================================================
> > > [ 844.112018] [ INFO: possible circular locking dependency detected ]
> > > [ 844.112076] 2.6.28-next-20090102 #33
> > > [ 844.112124] -------------------------------------------------------
> > > [ 844.112181] mplayer/3151 is trying to acquire lock:
> > > [ 844.112235] (&pcm->open_mutex){--..}, at: [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
> > > [ 844.112361]
> > > [ 844.112362] but task is already holding lock:
> > > [ 844.112458] (&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
> > > [ 844.112576]
> > > [ 844.112577] which lock already depends on the new lock.
> > > [ 844.112578]
> > > [ 844.112712]
> > > [ 844.112713] the existing dependency chain (in reverse order) is:
> > > [ 844.112781]
> > > [ 844.112781] -> #3 (&mm->mmap_sem){----}:
> > > [ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
> > > [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> > > [ 844.112781] [<ffffffff810b7a43>] might_fault+0x73/0xa0
> > > [ 844.112781] [<ffffffffa006f44d>] snd_hda_mixer_amp_tlv+0x6d/0xf0 [snd_hda_codec]
> > > [ 844.112781] [<ffffffffa0093f80>] alc_cap_vol_tlv+0x70/0xa0 [snd_hda_codec_realtek]
> > > [ 844.112781] [<ffffffffa0012300>] snd_ctl_tlv_ioctl+0x180/0x1b0 [snd]
> > > [ 844.112781] [<ffffffffa0013a27>] snd_ctl_ioctl+0x927/0xf80 [snd]
> > > [ 844.112781] [<ffffffff810ea801>] vfs_ioctl+0x31/0xa0
> > > [ 844.112781] [<ffffffff810ea8e6>] do_vfs_ioctl+0x76/0x4a0
> > > [ 844.112781] [<ffffffff810ead5a>] sys_ioctl+0x4a/0x80
> > > [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> > > [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> > > [ 844.112781]
> > > [ 844.112781] -> #2 (&codec->spdif_mutex){--..}:
> > > [ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
> > > [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> > > [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> > > [ 844.112781] [<ffffffffa006e54b>] snd_hda_multi_out_dig_open+0x2b/0x60 [snd_hda_codec]
> > > [ 844.112781] [<ffffffffa00d2649>] intel_hdmi_playback_pcm_open+0x49/0x60 [snd_hda_codec_intelhdmi]
> > > [ 844.112781] [<ffffffffa007fff9>] azx_pcm_open+0x209/0x280 [snd_hda_intel]
> > > [ 844.112781] [<ffffffffa004d838>] snd_pcm_open_substream+0x58/0xd0 [snd_pcm]
> > > [ 844.112781] [<ffffffffa004d9e7>] snd_pcm_open+0x137/0x260 [snd_pcm]
> > > [ 844.112781] [<ffffffffa004db7c>] snd_pcm_playback_open+0x2c/0x40 [snd_pcm]
> > > [ 844.112781] [<ffffffffa000e86e>] snd_open+0x9e/0x180 [snd]
> > > [ 844.112781] [<ffffffff810df407>] chrdev_open+0xe7/0x1d0
> > > [ 844.112781] [<ffffffff810da06e>] __dentry_open+0xce/0x360
> > > [ 844.112781] [<ffffffff810da407>] nameidata_to_filp+0x57/0x70
> > > [ 844.112781] [<ffffffff810e909e>] do_filp_open+0x20e/0x970
> > > [ 844.112781] [<ffffffff810d9ec8>] do_sys_open+0x78/0x100
> > > [ 844.112781] [<ffffffff810d9f7b>] sys_open+0x1b/0x20
> > > [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> > > [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> > > [ 844.112781]
> > > [ 844.112781] -> #1 (&chip->open_mutex){--..}:
> > > [ 844.112781] [<ffffffff8107097b>] __lock_acquire+0x122b/0x1ae0
> > > [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> > > [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> > > [ 844.112781] [<ffffffffa007fe38>] azx_pcm_open+0x48/0x280 [snd_hda_intel]
> > > [ 844.112781] [<ffffffffa004d838>] snd_pcm_open_substream+0x58/0xd0 [snd_pcm]
> > > [ 844.112781] [<ffffffffa004d9e7>] snd_pcm_open+0x137/0x260 [snd_pcm]
> > > [ 844.112781] [<ffffffffa004db7c>] snd_pcm_playback_open+0x2c/0x40 [snd_pcm]
> > > [ 844.112781] [<ffffffffa000e86e>] snd_open+0x9e/0x180 [snd]
> > > [ 844.112781] [<ffffffff810df407>] chrdev_open+0xe7/0x1d0
> > > [ 844.112781] [<ffffffff810da06e>] __dentry_open+0xce/0x360
> > > [ 844.112781] [<ffffffff810da407>] nameidata_to_filp+0x57/0x70
> > > [ 844.112781] [<ffffffff810e909e>] do_filp_open+0x20e/0x970
> > > [ 844.112781] [<ffffffff810d9ec8>] do_sys_open+0x78/0x100
> > > [ 844.112781] [<ffffffff810d9f7b>] sys_open+0x1b/0x20
> > > [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> > > [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> > > [ 844.112781]
> > > [ 844.112781] -> #0 (&pcm->open_mutex){--..}:
> > > [ 844.112781] [<ffffffff81070b1e>] __lock_acquire+0x13ce/0x1ae0
> > > [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> > > [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> > > [ 844.112781] [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
> > > [ 844.112781] [<ffffffff810dd505>] __fput+0xd5/0x230
> > > [ 844.112781] [<ffffffff810dd67d>] fput+0x1d/0x30
> > > [ 844.112781] [<ffffffff810bed4f>] remove_vma+0x4f/0x90
> > > [ 844.112781] [<ffffffff810c01c2>] do_munmap+0x342/0x390
> > > [ 844.112781] [<ffffffff810c0260>] sys_munmap+0x50/0x80
> > > [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> > > [ 844.112781] [<ffffffffffffffff>] 0xffffffffffffffff
> > > [ 844.112781]
> > > [ 844.112781] other info that might help us debug this:
> > > [ 844.112781]
> > > [ 844.112781] 1 lock held by mplayer/3151:
> > > [ 844.112781] #0: (&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
> > > [ 844.112781]
> > > [ 844.112781] stack backtrace:
> > > [ 844.112781] Pid: 3151, comm: mplayer Not tainted 2.6.28-next-20090102 #33
> > > [ 844.112781] Call Trace:
> > > [ 844.112781] [<ffffffff8106f2a0>] print_circular_bug_tail+0xe0/0xf0
> > > [ 844.112781] [<ffffffff81070b1e>] __lock_acquire+0x13ce/0x1ae0
> > > [ 844.112781] [<ffffffff8106e916>] ? mark_held_locks+0x56/0xa0
> > > [ 844.112781] [<ffffffff810abcf9>] ? free_hot_cold_page+0x1b9/0x2e0
> > > [ 844.112781] [<ffffffff8106ec1d>] ? trace_hardirqs_on+0xd/0x10
> > > [ 844.112781] [<ffffffff810712c9>] lock_acquire+0x99/0xd0
> > > [ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
> > > [ 844.112781] [<ffffffff814344e8>] mutex_lock_nested+0xe8/0x370
> > > [ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
> > > [ 844.112781] [<ffffffffa004ced3>] ? snd_pcm_release+0x43/0xd0 [snd_pcm]
> > > [ 844.112781] [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
> > > [ 844.112781] [<ffffffff810dd505>] __fput+0xd5/0x230
> > > [ 844.112781] [<ffffffff810dd67d>] fput+0x1d/0x30
> > > [ 844.112781] [<ffffffff810bed4f>] remove_vma+0x4f/0x90
> > > [ 844.112781] [<ffffffff810c01c2>] do_munmap+0x342/0x390
> > > [ 844.112781] [<ffffffff810c0260>] sys_munmap+0x50/0x80
> > > [ 844.112781] [<ffffffff8100c67a>] system_call_fastpath+0x16/0x1b
> > > [ 844.119376] ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
> > >
> > > Which can be fixed by the following patch.
> >
> > This alone isn't enough. You need to replace all codec->spdif_mutex
> > in the control get/put/info/tlv callbacks in hda_codec.c. Otherwise
> > there is no meaning of the mutex. The mutex is to protect the rewrite
> > of kcontrol->private_value dynamically.
> >
> > Could you fix and repost?
>
> Ah sure. Here is the updated patch.
>
> Thanks,
> Fengguang
> ---
> ALSA: hda - create hda_codec.control_mutex for kcontrol->private_value
>
> Fix the following lockdep warning by not reusing the hda_codec.spdif_mutex.
>
> ALSA sound/pci/hda/hda_codec.c:882: hda_codec_cleanup_stream: NID=0x2
>
> =======================================================
> [ INFO: possible circular locking dependency detected ]
> 2.6.28-next-20090102 #33
> -------------------------------------------------------
> mplayer/3151 is trying to acquire lock:
> (&pcm->open_mutex){--..}, at: [<ffffffffa004ced3>] snd_pcm_release+0x43/0xd0 [snd_pcm]
>
> but task is already holding lock:
> (&mm->mmap_sem){----}, at: [<ffffffff810c0252>] sys_munmap+0x42/0x80
>
> which lock already depends on the new lock.
>
> Signed-off-by: Wu Fengguang <[email protected]>
Applied now. Thanks.
Takashi