Skip to contentSkip to conversation

2.5.69+bk: oops in apmd after waking up from suspend mode

DISCUSSION Alex Riesen 2 participants 7 messages May 14, 2003

lore
Share & tools
lore
#0 lore raw

Hi,

I have an old Compaq Armada 1592DT. The thing goes automagically into suspend mode after being forgotten for a while. And there is this button to wake it up (the blue one, above the keyboard).

Last time i tried to wake it up it produced the attached oops. "Unknown key"s are probable the blue button.
After printing out the oops, the system went back into suspend.

-alex

Suspending devices
Suspending device c03219ac

Unable to handle kernel NULL pointer dereference at virtual address 00000090
 printing eip:
c011459f
*pde = 00000000
Oops: 0000 [#1]
CPU:    0
EIP:    0060:[<c011459f>]    Not tainted
EFLAGS: 00010202

EIP is at fix_processor_context+0x5f/0x100
eax: 0000007c ebx: c5f0e000 ecx: 00000002 edx: 00000000
esi: 00000060 edi: 00000000 ebp: c5f0ff5c esp: c5f0ff54
ds: 007b es: 007b ss: 0068
Process kapmd (pid: 4, threadinfo=c5f0e000 task=c5fbc640)

Stack: c5f0e000 00000060 c5f0ff64 c0114529 c5f0ff78 c01135c8 00000002 00000000 
       00000002 c5f0ff8c c0113845 00000001 c5f0e000 c5f0ffb4 c5f0ffdc c0113aa4 
       00000000 c5fbc640 c0117950 00000000 00000000 c0290000 c030f6b4 00000000 
Call Trace:
 [<c0114529>] restore_processor_state+0x69/0x80
 [<c01135c8>] suspend+0x138/0x200
 [<c0113845>] check_events+0xf5/0x230
 [<c0113aa4>] apm_mainloop+0x94/0xb0
 [<c0117950>] default_wake_function+0x0/0x20
 [<c0117950>] default_wake_function+0x0/0x20
 [<c01141a0>] apm+0x0/0x280
 [<c0114262>] apm+0xc2/0x280
 [<c0107255>] kernel_thread_helper+0x5/0x10

Code: 8b 48 14 8b 42 7c 85 c0 75 0a b9 00 10 29 c0 b8 05 00 00 00 
 <6>note: kapmd[4] exited with preempt_count 2

hda: dma_timer_expiry: dma status == 0x61
atkbd.c: Unknown key (set 2, scancode 0xb6, on isa0060/serio0) pressed. atkbd.c: Unknown key (set 2, scancode 0x9d, on isa0060/serio0) pressed. atkbd.c: Unknown key (set 2, scancode 0x19d, on isa0060/serio0) pressed. atkbd.c: Unknown key (set 2, scancode 0xb8, on isa0060/serio0) pressed.
hda: timeout waiting for DMA
hda: timeout waiting for DMA
hda: (__ide_dma_test_irq) called while not waiting
atkbd.c: Unknown key (set 2, scancode 0x1b8, on isa0060/serio0) pressed.

#1 lore raw
Quoted 27 lines · Alex Riesen

Hi,

I have an old Compaq Armada 1592DT. The thing goes automagically into suspend mode after being forgotten for a while. And there is this button to wake it up (the blue one, above the keyboard).

Last time i tried to wake it up it produced the attached oops. "Unknown key"s are probable the blue button.
After printing out the oops, the system went back into suspend.

-alex

Suspending devices
Suspending device c03219ac

Unable to handle kernel NULL pointer dereference at virtual address 00000090
 printing eip:
c011459f
*pde = 00000000
Oops: 0000 [#1]
CPU:    0
EIP:    0060:[<c011459f>]    Not tainted
EFLAGS: 00010202

EIP is at fix_processor_context+0x5f/0x100
eax: 0000007c ebx: c5f0e000 ecx: 00000002 edx: 00000000
esi: 00000060 edi: 00000000 ebp: c5f0ff5c esp: c5f0ff54
ds: 007b es: 007b ss: 0068
Process kapmd (pid: 4, threadinfo=c5f0e000 task=c5fbc640)

Quoted 15 lines
Stack: c5f0e000 00000060 c5f0ff64 c0114529 c5f0ff78 c01135c8 00000002 00000000 
       00000002 c5f0ff8c c0113845 00000001 c5f0e000 c5f0ffb4 c5f0ffdc c0113aa4 
       00000000 c5fbc640 c0117950 00000000 00000000 c0290000 c030f6b4 00000000 
Call Trace:
 [<c0114529>] restore_processor_state+0x69/0x80
 [<c01135c8>] suspend+0x138/0x200
 [<c0113845>] check_events+0xf5/0x230
 [<c0113aa4>] apm_mainloop+0x94/0xb0
 [<c0117950>] default_wake_function+0x0/0x20
 [<c0117950>] default_wake_function+0x0/0x20
 [<c01141a0>] apm+0x0/0x280
 [<c0114262>] apm+0xc2/0x280
 [<c0107255>] kernel_thread_helper+0x5/0x10

Code: 8b 48 14 8b 42 7c 85 c0 75 0a b9 00 10 29 c0 b8 05 00 00 00 

Since 2.5.69-bk8 or so, apm.c will invoke restore_processor_state() at resume-time. This is needed to reinitialise the SYSENTER MSRs used by 2.5's new system call mechanism.

Quoted 1 line

<6>note: kapmd[4] exited with preempt_count 2

This I don't like. I'm not convinced the resume path is preempt-safe. Please try again, either with CONFIG_PREEMPT disabled, or with a preempt_disable() / preempt_enable() pair around apm.c's suspend code, like in the patch below. (Untested, you may need to stick an #include <preempt.h> somewhere in apm.c to make it compile.)

/Mikael

arch/i386/kernel/apm.c renamed from arch/i386/kernel/apm.c.~1~ +2 -0
@@ -1213,9 +1213,11 @@
 	spin_unlock(&i8253_lock);
 	write_sequnlock_irq(&xtime_lock);
 
+	preempt_disable();
 	save_processor_state();
 	err = set_system_power_state(APM_STATE_SUSPEND);
 	restore_processor_state();
+	preempt_enable();
 
 	write_seqlock_irq(&xtime_lock);
 	spin_lock(&i8253_lock);
#2 lore raw

[email protected], Wed, May 14, 2003 15:04:38 +0200:

Quoted 11 lines
Quoted 11 lines

I have an old Compaq Armada 1592DT. The thing goes automagically into suspend mode after being forgotten for a while. And there is this button to wake it up (the blue one, above the keyboard).

Last time i tried to wake it up it produced the attached oops. "Unknown key"s are probable the blue button.
After printing out the oops, the system went back into suspend.

Suspending devices
Suspending device c03219ac

Unable to handle kernel NULL pointer dereference at virtual address 00000090

...

Quoted 1 line
Quoted 1 line

EIP is at fix_processor_context+0x5f/0x100

...

Quoted 11 lines
Quoted 10 lines
Call Trace:
 [<c0114529>] restore_processor_state+0x69/0x80
 [<c01135c8>] suspend+0x138/0x200
 [<c0113845>] check_events+0xf5/0x230
 [<c0113aa4>] apm_mainloop+0x94/0xb0
 [<c0117950>] default_wake_function+0x0/0x20
 [<c0117950>] default_wake_function+0x0/0x20
 [<c01141a0>] apm+0x0/0x280
 [<c0114262>] apm+0xc2/0x280
 [<c0107255>] kernel_thread_helper+0x5/0x10
Quoted 3 lines

Since 2.5.69-bk8 or so, apm.c will invoke restore_processor_state() at resume-time. This is needed to reinitialise the SYSENTER MSRs used by 2.5's new system call mechanism.

and it supposed to go oops?

Quoted 6 lines
Quoted 1 line

<6>note: kapmd[4] exited with preempt_count 2

This I don't like. I'm not convinced the resume path is preempt-safe. Please try again, either with CONFIG_PREEMPT disabled, or with a preempt_disable() / preempt_enable() pair around apm.c's suspend code, like in the patch below. (Untested, you may need to stick an #include <preempt.h> somewhere in apm.c to make it compile.)

It changed things a bit. preempt_count is 3 now.
Oops didn't change.

The system still works, afaict. Didn't notice any ill effects.

-alex

#3 lore raw
Quoted 6 lines · Alex Riesen

[email protected], Wed, May 14, 2003 15:04:38 +0200:

Quoted 3 lines

Since 2.5.69-bk8 or so, apm.c will invoke restore_processor_state() at resume-time. This is needed to reinitialise the SYSENTER MSRs used by 2.5's new system call mechanism.

and it supposed to go oops?

Of course not. It doesn't oops my Dell Latitude: on that laptop it prevents oopses since otherwise user-space processes will oops the kernel as soon as they make a system call or return from a system call. But this only happens if both the CPU and glibc are capable of using SYSENTER.

Quoted 9 lines
Quoted 6 lines
Quoted 1 line

<6>note: kapmd[4] exited with preempt_count 2

This I don't like. I'm not convinced the resume path is preempt-safe. Please try again, either with CONFIG_PREEMPT disabled, or with a preempt_disable() / preempt_enable() pair around apm.c's suspend code, like in the patch below. (Untested, you may need to stick an #include <preempt.h> somewhere in apm.c to make it compile.)

It changed things a bit. preempt_count is 3 now.
Oops didn't change.

Ok so it wasn't preempt.
Can you identify in which statement the oops occurs?
And can you confirm that commenting out the calls in apm.c to save_processor_state() and restore_processor_state() eliminates the oops?

/Mikael

#4 lore raw

[email protected], Wed, May 14, 2003 16:03:55 +0200:

Quoted 11 lines
Quoted 5 lines
Quoted 3 lines

Since 2.5.69-bk8 or so, apm.c will invoke restore_processor_state() at resume-time. This is needed to reinitialise the SYSENTER MSRs used by 2.5's new system call mechanism.

and it supposed to go oops?

Of course not. It doesn't oops my Dell Latitude: on that laptop it prevents oopses since otherwise user-space processes will oops the kernel as soon as they make a system call or return from a system call. But this only happens if both the CPU and glibc are capable of using SYSENTER.

I'm not sure if my glibc uses sysenter. But I'd like to have the system prepared if I eventually get one which does.

Quoted 7 lines
Quoted 7 lines
Quoted 6 lines
Quoted 1 line

<6>note: kapmd[4] exited with preempt_count 2

This I don't like. I'm not convinced the resume path is preempt-safe. Please try again, either with CONFIG_PREEMPT disabled, or with a preempt_disable() / preempt_enable() pair around apm.c's suspend code, like in the patch below. (Untested, you may need to stick an #include <preempt.h> somewhere in apm.c to make it compile.)

Quoted 5 lines
Quoted 2 lines

It changed things a bit. preempt_count is 3 now.
Oops didn't change.

Ok so it wasn't preempt.
Can you identify in which statement the oops occurs?

not really. Somewhere fix_processor_context+0x5f/0x100, that's where EIP points. But latest bk doesn't have this anymore, so I think I'll try it first.

Quoted 2 lines

And can you confirm that commenting out the calls in apm.c to save_processor_state() and restore_processor_state() eliminates the oops?

after I have tried it.

#5 lore raw
Quoted 2 lines · Alex Riesen

I'm not sure if my glibc uses sysenter. But I'd like to have the system prepared if I eventually get one which does.

RH9 on a P6/K7 or higher will use sysenter. Old P5s don't have it.

Quoted 2 lines

not really. Somewhere fix_processor_context+0x5f/0x100, that's where EIP points.

I need to know your .config and gcc version if I'm to investigate this. Otherwise I can't build a kernel similar to yours, and without that, the EIP address you quoted is meaningless to me.

/Mikael

#6 lore raw

[email protected], Wed, May 14, 2003 16:37:58 +0200:

Quoted 6 lines
Quoted 2 lines · Alex Riesen

I'm not sure if my glibc uses sysenter. But I'd like to have the system prepared if I eventually get one which does.

RH9 on a P6/K7 or higher will use sysenter. Old P5s don't have it.

P5-233. Dunno how old it really is (model 8, Mobile Pentium MMX, stepping 1).

Quoted 7 lines
Quoted 2 lines

not really. Somewhere fix_processor_context+0x5f/0x100, that's where EIP points.

I need to know your .config and gcc version if I'm to investigate this. Otherwise I can't build a kernel similar to yours, and without that, the EIP address you quoted is meaningless to me.

Sorry. Here it goes (comments stripped):

CONFIG_X86=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_EXPERIMENTAL=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_SYSCTL=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
CONFIG_KMOD=y
CONFIG_X86_PC=y
CONFIG_M586MMX=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_PPRO_FENCE=y
CONFIG_X86_F00F_BUG=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_ALIGNMENT_16=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_PREEMPT=y
CONFIG_X86_TSC=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_EDD=y
CONFIG_NOHIGHMEM=y
CONFIG_MTRR=y
CONFIG_HAVE_DEC_LOCK=y
CONFIG_PM=y
CONFIG_APM=y
CONFIG_APM_CPU_IDLE=y
CONFIG_APM_DISPLAY_BLANK=y
CONFIG_PCI=y
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_NAMES=y
CONFIG_ISA=y
CONFIG_HOTPLUG=y
CONFIG_PCMCIA=m
CONFIG_CARDBUS=y
CONFIG_I82092=m
CONFIG_I82365=m
CONFIG_PCMCIA_PROBE=y
CONFIG_KCORE_ELF=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_PC_CML1=m
CONFIG_PARPORT_SERIAL=m
CONFIG_PARPORT_PC_FIFO=y
CONFIG_PARPORT_PC_SUPERIO=y
CONFIG_PARPORT_1284=y
CONFIG_PNP=y
CONFIG_PNP_NAMES=y
CONFIG_PNP_DEBUG=y
CONFIG_ISAPNP=y
CONFIG_PNPBIOS=y
CONFIG_BLK_DEV_FD=m
CONFIG_BLK_DEV_LOOP=m
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECS=m
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDESCSI=m
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_GENERIC=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_BLK_DEV_ADMA=y
CONFIG_BLK_DEV_OPTI621=y
CONFIG_IDEDMA_AUTO=y
CONFIG_BLK_DEV_IDE_MODES=y
CONFIG_SCSI=m
CONFIG_BLK_DEV_SD=m
CONFIG_BLK_DEV_SR=m
CONFIG_CHR_DEV_SG=m
CONFIG_SCSI_MULTI_LUN=y
CONFIG_SCSI_REPORT_LUNS=y
CONFIG_SCSI_CONSTANTS=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_NETFILTER=y
CONFIG_UNIX=y
CONFIG_NET_KEY=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_INET_ECN=y
CONFIG_SYN_COOKIES=y
CONFIG_IP_NF_CONNTRACK=m
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_LIMIT=m
CONFIG_IP_NF_MATCH_MAC=m
CONFIG_IP_NF_MATCH_PKTTYPE=m
CONFIG_IP_NF_MATCH_MARK=m
CONFIG_IP_NF_MATCH_MULTIPORT=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_DSCP=m
CONFIG_IP_NF_MATCH_AH_ESP=m
CONFIG_IP_NF_MATCH_LENGTH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_TCPMSS=m
CONFIG_IP_NF_MATCH_HELPER=m
CONFIG_IP_NF_MATCH_STATE=m
CONFIG_IP_NF_MATCH_CONNTRACK=m
CONFIG_IP_NF_MATCH_UNCLEAN=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_MIRROR=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_NAT_IRC=m
CONFIG_IP_NF_NAT_FTP=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_IP_NF_TARGET_TCPMSS=m
CONFIG_IPV6=m
CONFIG_IPV6_SCTP__=m
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
CONFIG_NET_PCMCIA=y
CONFIG_PCMCIA_3C589=m
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_FMVJ18X=m
CONFIG_PCMCIA_PCNET=m
CONFIG_PCMCIA_NMCLAN=m
CONFIG_PCMCIA_SMC91C92=m
CONFIG_PCMCIA_XIRC2PS=m
CONFIG_IRDA=m
CONFIG_IRLAN=m
CONFIG_IRCOMM=m
CONFIG_IRDA_ULTRA=y
CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y
CONFIG_IRDA_DEBUG=y
CONFIG_IRTTY_SIR=m
CONFIG_NSC_FIR=m
CONFIG_WINBOND_FIR=m
CONFIG_TOSHIBA_OLD=m
CONFIG_TOSHIBA_FIR=m
CONFIG_SMC_IRCC_FIR=m
CONFIG_ALI_FIR=m
CONFIG_VLSI_FIR=m
CONFIG_INPUT=y
CONFIG_INPUT_MOUSEDEV=m
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PCSPKR=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
CONFIG_RTC=y
CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
CONFIG_JBD=y
CONFIG_FS_MBCACHE=y
CONFIG_FS_POSIX_ACL=y
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_ZISOFS_FS=m
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_PROC_FS=y
CONFIG_DEVPTS_FS=y
CONFIG_TMPFS=y
CONFIG_RAMFS=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_SUNRPC=m
CONFIG_SMB_FS=m
CONFIG_CIFS=m
CONFIG_MSDOS_PARTITION=y
CONFIG_SMB_NLS=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_CODEPAGE_855=m
CONFIG_NLS_CODEPAGE_866=m
CONFIG_NLS_CODEPAGE_1250=m
CONFIG_NLS_CODEPAGE_1251=m
CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_ISO8859_5=m
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_KOI8_R=m
CONFIG_NLS_KOI8_U=m
CONFIG_NLS_UTF8=m
CONFIG_FB=y
CONFIG_FB_VESA=y
CONFIG_VIDEO_SELECT=y
CONFIG_VGA_CONSOLE=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_PCI_CONSOLE=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_CLUT224=y
CONFIG_SOUND=m
CONFIG_SND=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_DEBUG=y
CONFIG_SND_DEBUG_DETECT=y
CONFIG_SND_DUMMY=m
CONFIG_SND_SB8=m
CONFIG_SND_SB16=m
CONFIG_SOUND_PRIME=m
CONFIG_SOUND_OSS=m
CONFIG_SOUND_TRACEINIT=y
CONFIG_SOUND_VMIDI=m
CONFIG_SOUND_SB=m
CONFIG_USB=m
CONFIG_USB_DEVICEFS=y
CONFIG_USB_BANDWIDTH=y
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_PRINTER=m
CONFIG_USB_STORAGE=m
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_HP8200e=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y
CONFIG_USB_SCANNER=m
CONFIG_DEBUG_KERNEL=y
CONFIG_DEBUG_SLAB=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_KALLSYMS=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
CONFIG_FRAME_POINTER=y
CONFIG_CRC32=m
CONFIG_ZLIB_INFLATE=m
CONFIG_X86_BIOS_REBOOT=y