Re: IDE + SMP hang

Andre Hedrick (andre@suse.com)
Sun, 3 Oct 1999 19:42:11 -0700 (PDT)


Did you not follow the thread about the ide-spinlock issue?
grab a patch from your local kernel mirror.

../kernel/people/hedrick/

Andre Hedrick
The Linux IDE guy

On Sun, 3 Oct 1999, Delman Lee wrote:

> I have an IDE lockup problem since around 2.2.8.
>
> I compiled 2.2.12 with the ide-disk as a module. The system boots fine
> into single user mode. When I do "insmod ide-disk", the system hangs
> during the partition check.
>
> Symtoms:
> . only happens with SMP
> . does NOT hang if boot with 'noapic'
> . hangs with 2.2.{8,9,10,11,12}, including 2.2.13pre14 and 2.3.18
>
> I tried the 2.2.12-ikd patch with 2.2.12 and it detected a lockup.
> Copied the EIP and Call Trace down by hand and decoded from System.map
> manually.
>
> FYI, I have included 2.2.8's changes to io_apic.c & irq.c below.
>
> System info:
> dual PII Klamath 233MHz, CPU0:stepping 4, CPU1:stepping 3
> Micronics Dual Fortress motherboard with 440FX chipset.
> Diamond Fireport SCSI card
>
> Hope this IDE hang is sorted out soon...
>
> Thanks, Delman
> __________________________________________________________________
>
>
> NMI watchdog detected LOCKUP on CPU0.
> CPU 0
> EIP: 0010:[<disable_irq>]
> EFLAGS: 00000002
> ...
> Process: insmod
> ...
> Call Trace: [<ide_do_request>] [<do_hwgroup_request>] [<do_ide1_request>]
> [<unplug_device>] [<register_blkdev>] [<bread>] [<device_setup>] ....
>
> .
> .
> .
>
> CPU 1
> EIP: 0010:[<stext_lock>]
> EFLAGS: 00000002
> ...
> Process: swapper
> ...
> Call Trace: [<handle_IRQ_event>] [<do_level_ioapic_IRQ>] [<do_IRQ>]
> [<common_interrupt>] [<start_secondary>] ...
>
>
> __________________________________________________________________
>
>
> diff -u --recursive --new-file v2.2.7/linux/arch/i386/kernel/io_apic.c
> linux/arch/i386/kernel/io_apic.c
> --- v2.2.7/linux/arch/i386/kernel/io_apic.c Fri Apr 16 14:47:30 1999
> +++ linux/arch/i386/kernel/io_apic.c Thu May 6 16:07:03 1999
> @@ -1049,7 +1049,7 @@
> * and do not need to be masked.
> */
> ack_APIC_irq();
> - status = desc->status & ~IRQ_REPLAY;
> + status = desc->status & ~(IRQ_REPLAY | IRQ_WAITING);
> status |= IRQ_PENDING;
>
> /*
> @@ -1060,8 +1060,9 @@
> if (!(status & (IRQ_DISABLED | IRQ_INPROGRESS))) {
> action = desc->action;
> status &= ~IRQ_PENDING;
> + status |= IRQ_INPROGRESS;
> }
> - desc->status = status | IRQ_INPROGRESS;
> + desc->status = status;
> spin_unlock(&irq_controller_lock);
>
> /*
> @@ -1103,7 +1104,7 @@
> * So this all has to be within the spinlock.
> */
> mask_IO_APIC_irq(irq);
> - status = desc->status & ~IRQ_REPLAY;
> + status = desc->status & ~(IRQ_REPLAY | IRQ_WAITING);
>
> /*
> * If the IRQ is disabled for whatever reason, we must
> @@ -1112,8 +1113,9 @@
> action = NULL;
> if (!(status & (IRQ_DISABLED | IRQ_INPROGRESS))) {
> action = desc->action;
> + status |= IRQ_INPROGRESS;
> }
> - desc->status = status | IRQ_INPROGRESS;
> + desc->status = status;
>
> ack_APIC_irq();
> spin_unlock(&irq_controller_lock);
> diff -u --recursive --new-file v2.2.7/linux/arch/i386/kernel/irq.c
> linux/arch/i386/kernel/irq.c
> --- v2.2.7/linux/arch/i386/kernel/irq.c Fri Apr 16 14:47:30 1999
> +++ linux/arch/i386/kernel/irq.c Mon May 10 10:32:45 1999
> @@ -203,7 +203,7 @@
>
> void make_8259A_irq(unsigned int irq)
> {
> - disable_irq(irq);
> + disable_irq_nosync(irq);
> io_apic_irqs &= ~(1<<irq);
> irq_desc[irq].handler = &i8259A_irq_type;
> enable_irq(irq);
> @@ -239,11 +239,13 @@
> {
> unsigned int status;
> mask_and_ack_8259A(irq);
> - status = desc->status & ~IRQ_REPLAY;
> + status = desc->status & ~(IRQ_REPLAY | IRQ_WAITING);
> action = NULL;
> - if (!(status & (IRQ_DISABLED | IRQ_INPROGRESS)))
> + if (!(status & (IRQ_DISABLED | IRQ_INPROGRESS))) {
> action = desc->action;
> - desc->status = status | IRQ_INPROGRESS;
> + status |= IRQ_INPROGRESS;
> + }
> + desc->status = status;
> }
> spin_unlock(&irq_controller_lock);
>
> @@ -320,7 +322,7 @@
> BUILD_SMP_INTERRUPT(reschedule_interrupt)
> BUILD_SMP_INTERRUPT(invalidate_interrupt)
> BUILD_SMP_INTERRUPT(stop_cpu_interrupt)
> -BUILD_SMP_INTERRUPT(mtrr_interrupt)
> +BUILD_SMP_INTERRUPT(call_function_interrupt)
> BUILD_SMP_INTERRUPT(spurious_interrupt)
>
> /*
> @@ -747,7 +749,7 @@
> * hardware disable after having gotten the irq
> * controller lock.
> */
> -void disable_irq(unsigned int irq)
> +void disable_irq_nosync(unsigned int irq)
> {
> unsigned long flags;
>
> @@ -757,9 +759,21 @@
> irq_desc[irq].handler->disable(irq);
> }
> spin_unlock_irqrestore(&irq_controller_lock, flags);
> +}
> +
> +/*
> + * Synchronous version of the above, making sure the IRQ is
> + * no longer running on any other IRQ..
> + */
> +void disable_irq(unsigned int irq)
> +{
> + disable_irq_nosync(irq);
>
> - if (irq_desc[irq].status & IRQ_INPROGRESS)
> - synchronize_irq();
> + if (!local_irq_count[smp_processor_id()]) {
> + do {
> + barrier();
> + } while (irq_desc[irq].status & IRQ_INPROGRESS);
> + }
> }
>
> void enable_irq(unsigned int irq)
> @@ -769,7 +783,7 @@
> spin_lock_irqsave(&irq_controller_lock, flags);
> switch (irq_desc[irq].depth) {
> case 1:
> - irq_desc[irq].status &= ~(IRQ_DISABLED | IRQ_INPROGRESS);
> + irq_desc[irq].status &= ~IRQ_DISABLED;
> irq_desc[irq].handler->enable(irq);
> /* fall throught */
> default:
> @@ -864,7 +878,7 @@
>
> if (!shared) {
> irq_desc[irq].depth = 0;
> - irq_desc[irq].status &= ~(IRQ_DISABLED | IRQ_INPROGRESS);
> + irq_desc[irq].status &= ~IRQ_DISABLED;
> irq_desc[irq].handler->startup(irq);
> }
> spin_unlock_irqrestore(&irq_controller_lock,flags);
> @@ -936,7 +950,7 @@
> *
> * This depends on the fact that any interrupt that
> * comes in on to an unassigned handler will get stuck
> - * with "IRQ_INPROGRESS" asserted and the interrupt
> + * with "IRQ_WAITING" cleared and the interrupt
> * disabled.
> */
> unsigned long probe_irq_on(void)
> @@ -950,8 +964,7 @@
> spin_lock_irq(&irq_controller_lock);
> for (i = NR_IRQS-1; i > 0; i--) {
> if (!irq_desc[i].action) {
> - unsigned int status = irq_desc[i].status | IRQ_AUTODETECT;
> - irq_desc[i].status = status & ~IRQ_INPROGRESS;
> + irq_desc[i].status |= IRQ_AUTODETECT | IRQ_WAITING;
> irq_desc[i].handler->startup(i);
> }
> }
> @@ -974,7 +987,7 @@
> continue;
>
> /* It triggered already - consider it spurious. */
> - if (status & IRQ_INPROGRESS) {
> + if (!(status & IRQ_WAITING)) {
> irq_desc[i].status = status & ~IRQ_AUTODETECT;
> irq_desc[i].handler->shutdown(i);
> }
> @@ -1000,7 +1013,7 @@
> if (!(status & IRQ_AUTODETECT))
> continue;
>
> - if (status & IRQ_INPROGRESS) {
> + if (!(status & IRQ_WAITING)) {
> if (!nr_irqs)
> irq_found = i;
> nr_irqs++;
> @@ -1081,8 +1094,8 @@
> /* self generated IPI for local APIC timer */
> set_intr_gate(LOCAL_TIMER_VECTOR, apic_timer_interrupt);
>
> - /* IPI for MTRR control */
> - set_intr_gate(MTRR_CHANGE_VECTOR, mtrr_interrupt);
> + /* IPI for generic function call */
> + set_intr_gate(CALL_FUNCTION_VECTOR, call_function_interrupt);
>
> /* IPI vector for APIC spurious interrupts */
> set_intr_gate(SPURIOUS_APIC_VECTOR, spurious_interrupt);
>
>
> __________________________________________________________________
>
>
> #
> # Automatically generated make config: don't edit
> #
>
> #
> # Code maturity level options
> #
> CONFIG_EXPERIMENTAL=y
>
> #
> # Processor type and features
> #
> # CONFIG_M386 is not set
> # CONFIG_M486 is not set
> # CONFIG_M586 is not set
> # CONFIG_M586TSC is not set
> CONFIG_M686=y
> CONFIG_X86_WP_WORKS_OK=y
> CONFIG_X86_INVLPG=y
> CONFIG_X86_BSWAP=y
> CONFIG_X86_POPAD_OK=y
> CONFIG_X86_TSC=y
> CONFIG_X86_GOOD_APIC=y
> CONFIG_1GB=y
> # CONFIG_2GB is not set
> # CONFIG_MATH_EMULATION is not set
> CONFIG_MTRR=y
> CONFIG_SMP=y
>
> #
> # Loadable module support
> #
> CONFIG_MODULES=y
> CONFIG_MODVERSIONS=y
> CONFIG_KMOD=y
>
> #
> # General setup
> #
> CONFIG_NET=y
> CONFIG_PCI=y
> # CONFIG_PCI_GOBIOS is not set
> # CONFIG_PCI_GODIRECT is not set
> CONFIG_PCI_GOANY=y
> CONFIG_PCI_BIOS=y
> CONFIG_PCI_DIRECT=y
> CONFIG_PCI_QUIRKS=y
> # CONFIG_PCI_OPTIMIZE is not set
> CONFIG_PCI_OLD_PROC=y
> # CONFIG_MCA is not set
> # CONFIG_VISWS is not set
> CONFIG_X86_IO_APIC=y
> CONFIG_X86_LOCAL_APIC=y
> CONFIG_SYSVIPC=y
> CONFIG_BSD_PROCESS_ACCT=y
> CONFIG_SYSCTL=y
> CONFIG_BINFMT_AOUT=y
> CONFIG_BINFMT_ELF=y
> CONFIG_BINFMT_MISC=m
> # CONFIG_BINFMT_JAVA is not set
> CONFIG_PARPORT=m
> CONFIG_PARPORT_PC=m
> # CONFIG_PARPORT_OTHER is not set
> # CONFIG_APM is not set
>
> #
> # Plug and Play support
> #
> CONFIG_PNP=y
> CONFIG_PNP_PARPORT=m
>
> #
> # Block devices
> #
> CONFIG_BLK_DEV_FD=y
> CONFIG_BLK_DEV_IDE=y
>
> #
> # Please see Documentation/ide.txt for help/info on IDE drives
> #
> # CONFIG_BLK_DEV_HD_IDE is not set
> CONFIG_BLK_DEV_IDEDISK=m
> CONFIG_BLK_DEV_IDECD=m
> CONFIG_BLK_DEV_IDETAPE=m
> CONFIG_BLK_DEV_IDEFLOPPY=m
> CONFIG_BLK_DEV_IDESCSI=m
> # CONFIG_BLK_DEV_CMD640 is not set
> # CONFIG_BLK_DEV_RZ1000 is not set
> CONFIG_BLK_DEV_IDEPCI=y
> CONFIG_BLK_DEV_IDEDMA=y
> # CONFIG_BLK_DEV_OFFBOARD is not set
> # CONFIG_IDEDMA_AUTO is not set
> # CONFIG_BLK_DEV_OPTI621 is not set
> # CONFIG_BLK_DEV_TRM290 is not set
> # CONFIG_BLK_DEV_NS87415 is not set
> # CONFIG_BLK_DEV_VIA82C586 is not set
> # CONFIG_BLK_DEV_CMD646 is not set
> # CONFIG_IDE_CHIPSETS is not set
>
> #
> # Additional Block Devices
> #
> CONFIG_BLK_DEV_LOOP=m
> CONFIG_BLK_DEV_NBD=m
> CONFIG_BLK_DEV_MD=y
> CONFIG_MD_LINEAR=m
> CONFIG_MD_STRIPED=m
> CONFIG_MD_MIRRORING=m
> CONFIG_MD_RAID5=m
> CONFIG_BLK_DEV_RAM=y
> CONFIG_BLK_DEV_INITRD=y
> # CONFIG_BLK_DEV_XD is not set
> # CONFIG_BLK_DEV_DAC960 is not set
> CONFIG_PARIDE_PARPORT=m
> # CONFIG_PARIDE is not set
> # CONFIG_BLK_CPQ_DA is not set
> # CONFIG_BLK_DEV_HD is not set
>
> #
> # Networking options
> #
> CONFIG_PACKET=m
> CONFIG_NETLINK=y
> CONFIG_RTNETLINK=y
> CONFIG_NETLINK_DEV=m
> CONFIG_FIREWALL=y
> CONFIG_FILTER=y
> CONFIG_UNIX=y
> CONFIG_INET=y
> # CONFIG_IP_MULTICAST is not set
> # CONFIG_IP_ADVANCED_ROUTER is not set
> # CONFIG_IP_PNP is not set
> CONFIG_IP_FIREWALL=y
> # CONFIG_IP_FIREWALL_NETLINK is not set
> CONFIG_IP_ALWAYS_DEFRAG=y
> # CONFIG_IP_TRANSPARENT_PROXY is not set
> CONFIG_IP_MASQUERADE=y
>
> #
> # Protocol-specific masquerading support will be built as modules.
> #
> CONFIG_IP_MASQUERADE_ICMP=y
>
> #
> # Protocol-specific masquerading support will be built as modules.
> #
> # CONFIG_IP_MASQUERADE_MOD is not set
> # CONFIG_IP_ROUTER is not set
> CONFIG_NET_IPIP=m
> CONFIG_NET_IPGRE=m
> # CONFIG_IP_ALIAS is not set
> # CONFIG_ARPD is not set
> CONFIG_SYN_COOKIES=y
>
> #
> # (it is safe to leave these untouched)
> #
> CONFIG_INET_RARP=m
> CONFIG_SKB_LARGE=y
> CONFIG_IPV6=m
> # CONFIG_IPV6_EUI64 is not set
>
> #
> #
> #
> # CONFIG_IPX is not set
> # CONFIG_ATALK is not set
> # CONFIG_X25 is not set
> # CONFIG_LAPB is not set
> # CONFIG_BRIDGE is not set
> # CONFIG_LLC is not set
> # CONFIG_ECONET is not set
> # CONFIG_WAN_ROUTER is not set
> # CONFIG_NET_FASTROUTE is not set
> # CONFIG_NET_HW_FLOWCONTROL is not set
> # CONFIG_CPU_IS_SLOW is not set
>
> #
> # QoS and/or fair queueing
> #
> # CONFIG_NET_SCHED is not set
>
> #
> # SCSI support
> #
> CONFIG_SCSI=y
>
> #
> # SCSI support type (disk, tape, CD-ROM)
> #
> CONFIG_BLK_DEV_SD=y
> CONFIG_CHR_DEV_ST=m
> CONFIG_BLK_DEV_SR=m
> # CONFIG_BLK_DEV_SR_VENDOR is not set
> CONFIG_CHR_DEV_SG=m
>
> #
> # 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
>
> #
> # SCSI low-level drivers
> #
> # CONFIG_SCSI_7000FASST is not set
> # CONFIG_SCSI_ACARD is not set
> # CONFIG_SCSI_AHA152X is not set
> # CONFIG_SCSI_AHA1542 is not set
> # CONFIG_SCSI_AHA1740 is not set
> # CONFIG_SCSI_AIC7XXX is not set
> # CONFIG_SCSI_ADVANSYS is not set
> # CONFIG_SCSI_IN2000 is not set
> # CONFIG_SCSI_AM53C974 is not set
> # CONFIG_SCSI_MEGARAID is not set
> # CONFIG_SCSI_BUSLOGIC is not set
> # CONFIG_SCSI_DTC3280 is not set
> # CONFIG_SCSI_EATA is not set
> # CONFIG_SCSI_EATA_DMA is not set
> # CONFIG_SCSI_EATA_PIO is not set
> CONFIG_SCSI_FUTURE_DOMAIN=m
> # CONFIG_SCSI_GDTH is not set
> # CONFIG_SCSI_GENERIC_NCR5380 is not set
> # CONFIG_SCSI_INITIO is not set
> # CONFIG_SCSI_INIA100 is not set
> # CONFIG_SCSI_PPA is not set
> # CONFIG_SCSI_IMM is not set
> # CONFIG_SCSI_NCR53C406A is not set
> # CONFIG_SCSI_SYM53C416 is not set
> # CONFIG_SCSI_NCR53C7xx is not set
> CONFIG_SCSI_NCR53C8XX=y
> CONFIG_SCSI_SYM53C8XX=y
> CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=4
> CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
> CONFIG_SCSI_NCR53C8XX_SYNC=40
> # CONFIG_SCSI_NCR53C8XX_PROFILE is not set
> # CONFIG_SCSI_NCR53C8XX_IOMAPPED is not set
> # CONFIG_SCSI_NCR53C8XX_PQS_PDS is not set
> CONFIG_SCSI_NCR53C8XX_SYMBIOS_COMPAT=y
> # CONFIG_SCSI_PAS16 is not set
> # CONFIG_SCSI_PCI2000 is not set
> # CONFIG_SCSI_PCI2220I is not set
> # CONFIG_SCSI_PSI240I is not set
> # CONFIG_SCSI_QLOGIC_FAS is not set
> # CONFIG_SCSI_QLOGIC_ISP is not set
> # CONFIG_SCSI_QLOGIC_FC is not set
> # CONFIG_SCSI_SEAGATE is not set
> # CONFIG_SCSI_DC390T is not set
> # CONFIG_SCSI_T128 is not set
> # CONFIG_SCSI_U14_34F is not set
> # CONFIG_SCSI_ULTRASTOR is not set
> # CONFIG_SCSI_DEBUG is not set
>
> #
> # Network device support
> #
> CONFIG_NETDEVICES=y
>
> #
> # ARCnet devices
> #
> # CONFIG_ARCNET is not set
> CONFIG_DUMMY=m
> CONFIG_EQUALIZER=m
> CONFIG_ETHERTAP=m
> # CONFIG_NET_SB1000 is not set
>
> #
> # Ethernet (10 or 100Mbit)
> #
> # CONFIG_NET_ETHERNET is not set
> # CONFIG_FDDI is not set
> # CONFIG_HIPPI is not set
> # CONFIG_PLIP is not set
> CONFIG_PPP=m
>
> #
> # CCP compressors for PPP are only built as modules.
> #
> CONFIG_SLIP=m
> CONFIG_SLIP_COMPRESSED=y
> # CONFIG_SLIP_SMART is not set
> # CONFIG_SLIP_MODE_SLIP6 is not set
> # CONFIG_NET_RADIO is not set
>
> #
> # Token ring devices
> #
> # CONFIG_TR is not set
> # CONFIG_NET_FC is not set
> # CONFIG_RCPCI is not set
> CONFIG_SHAPER=m
>
> #
> # Wan interfaces
> #
> # CONFIG_HOSTESS_SV11 is not set
> # CONFIG_COSA is not set
> # CONFIG_SEALEVEL_4021 is not set
> # CONFIG_DLCI is not set
>
> #
> # Amateur Radio support
> #
> # CONFIG_HAMRADIO is not set
>
> #
> # IrDA subsystem support
> #
> # CONFIG_IRDA is not set
>
> #
> # ISDN subsystem
> #
> # CONFIG_ISDN is not set
>
> #
> # Old CD-ROM drivers (not SCSI, not IDE)
> #
> # CONFIG_CD_NO_IDESCSI is not set
>
> #
> # Character devices
> #
> CONFIG_VT=y
> CONFIG_VT_CONSOLE=y
> CONFIG_SERIAL=m
> # CONFIG_SERIAL_EXTENDED is not set
> # CONFIG_SERIAL_NONSTANDARD is not set
> CONFIG_UNIX98_PTYS=y
> CONFIG_UNIX98_PTY_COUNT=256
> CONFIG_PRINTER=m
> # CONFIG_PRINTER_READBACK is not set
> # CONFIG_MOUSE is not set
> # CONFIG_QIC02_TAPE is not set
> # CONFIG_WATCHDOG is not set
> CONFIG_NVRAM=m
> CONFIG_RTC=y
>
> #
> # Video For Linux
> #
> # CONFIG_VIDEO_DEV is not set
>
> #
> # Joystick support
> #
> CONFIG_JOYSTICK=m
> CONFIG_JOY_ANALOG=m
> # CONFIG_JOY_ASSASIN is not set
> # CONFIG_JOY_GRAVIS is not set
> # CONFIG_JOY_LOGITECH is not set
> # CONFIG_JOY_SIDEWINDER is not set
> # CONFIG_JOY_THRUSTMASTER is not set
> # CONFIG_JOY_LIGHTNING is not set
> # CONFIG_JOY_CONSOLE is not set
> # CONFIG_JOY_DB9 is not set
> # CONFIG_JOY_TURBOGRAFX is not set
> # CONFIG_DTLK is not set
>
> #
> # Ftape, the floppy tape device driver
> #
> # CONFIG_FTAPE is not set
>
> #
> # Filesystems
> #
> # CONFIG_QUOTA is not set
> CONFIG_AUTOFS_FS=m
> # CONFIG_ADFS_FS is not set
> # CONFIG_AFFS_FS is not set
> # CONFIG_HFS_FS is not set
> CONFIG_FAT_FS=m
> CONFIG_MSDOS_FS=m
> # CONFIG_UMSDOS_FS is not set
> CONFIG_VFAT_FS=m
> CONFIG_ISO9660_FS=y
> CONFIG_JOLIET=y
> CONFIG_MINIX_FS=m
> # CONFIG_NTFS_FS is not set
> # CONFIG_HPFS_FS is not set
> CONFIG_PROC_FS=y
> CONFIG_DEVPTS_FS=y
> # CONFIG_QNX4FS_FS is not set
> # CONFIG_ROMFS_FS is not set
> CONFIG_EXT2_FS=y
> # CONFIG_SYSV_FS is not set
> # CONFIG_UFS_FS is not set
> # CONFIG_EFS_FS is not set
>
> #
> # Network File Systems
> #
> # CONFIG_CODA_FS is not set
> CONFIG_NFS_FS=m
> CONFIG_NFSD=m
> # CONFIG_NFSD_SUN is not set
> CONFIG_SUNRPC=m
> CONFIG_LOCKD=m
> # CONFIG_SMB_FS is not set
> # CONFIG_NCP_FS is not set
>
> #
> # Partition Types
> #
> # CONFIG_BSD_DISKLABEL is not set
> # CONFIG_MAC_PARTITION is not set
> # CONFIG_SMD_DISKLABEL is not set
> # CONFIG_SOLARIS_X86_PARTITION is not set
> # CONFIG_UNIXWARE_DISKLABEL is not set
> CONFIG_NLS=y
>
> #
> # Native Language Support
> #
> CONFIG_NLS_CODEPAGE_437=m
> # CONFIG_NLS_CODEPAGE_737 is not set
> # CONFIG_NLS_CODEPAGE_775 is not set
> CONFIG_NLS_CODEPAGE_850=m
> # CONFIG_NLS_CODEPAGE_852 is not set
> # CONFIG_NLS_CODEPAGE_855 is not set
> # CONFIG_NLS_CODEPAGE_857 is not set
> # CONFIG_NLS_CODEPAGE_860 is not set
> # CONFIG_NLS_CODEPAGE_861 is not set
> # CONFIG_NLS_CODEPAGE_862 is not set
> # CONFIG_NLS_CODEPAGE_863 is not set
> # CONFIG_NLS_CODEPAGE_864 is not set
> # CONFIG_NLS_CODEPAGE_865 is not set
> # CONFIG_NLS_CODEPAGE_866 is not set
> # CONFIG_NLS_CODEPAGE_869 is not set
> # CONFIG_NLS_CODEPAGE_874 is not set
> CONFIG_NLS_ISO8859_1=m
> # CONFIG_NLS_ISO8859_2 is not set
> # CONFIG_NLS_ISO8859_3 is not set
> # CONFIG_NLS_ISO8859_4 is not set
> # CONFIG_NLS_ISO8859_5 is not set
> # CONFIG_NLS_ISO8859_6 is not set
> # CONFIG_NLS_ISO8859_7 is not set
> # CONFIG_NLS_ISO8859_8 is not set
> # CONFIG_NLS_ISO8859_9 is not set
> # CONFIG_NLS_ISO8859_14 is not set
> CONFIG_NLS_ISO8859_15=m
> # CONFIG_NLS_KOI8_R is not set
>
> #
> # Console drivers
> #
> CONFIG_VGA_CONSOLE=y
> CONFIG_VIDEO_SELECT=y
> # CONFIG_MDA_CONSOLE is not set
> CONFIG_FB=y
> CONFIG_DUMMY_CONSOLE=y
> # CONFIG_FB_PM2 is not set
> CONFIG_FB_VESA=y
> # CONFIG_FB_VGA16 is not set
> CONFIG_VIDEO_SELECT=y
> CONFIG_FB_MATROX=m
> CONFIG_FB_MATROX_MILLENIUM=y
> # CONFIG_FB_MATROX_MYSTIQUE is not set
> # CONFIG_FB_MATROX_G100 is not set
> # CONFIG_FB_MATROX_MULTIHEAD is not set
> # CONFIG_FB_ATY is not set
> # CONFIG_FB_VIRTUAL is not set
> # CONFIG_FBCON_ADVANCED is not set
> CONFIG_FBCON_CFB8=y
> CONFIG_FBCON_CFB16=y
> CONFIG_FBCON_CFB24=y
> CONFIG_FBCON_CFB32=y
> # CONFIG_FBCON_FONTWIDTH8_ONLY is not set
> # CONFIG_FBCON_FONTS is not set
> CONFIG_FONT_8x8=y
> CONFIG_FONT_8x16=y
>
> #
> # Sound
> #
> CONFIG_SOUND=m
> # CONFIG_SOUND_ES1370 is not set
> # CONFIG_SOUND_ES1371 is not set
> # CONFIG_SOUND_ESSSOLO1 is not set
> # CONFIG_SOUND_SONICVIBES is not set
> # CONFIG_SOUND_MSNDCLAS is not set
> # CONFIG_SOUND_MSNDPIN is not set
> CONFIG_SOUND_OSS=m
> # CONFIG_SOUND_PAS is not set
> # CONFIG_SOUND_SB is not set
> CONFIG_SOUND_ADLIB=m
> # CONFIG_SOUND_GUS is not set
> # CONFIG_SOUND_MPU401 is not set
> # CONFIG_SOUND_PSS is not set
> # CONFIG_SOUND_MSS is not set
> # CONFIG_SOUND_SSCAPE is not set
> # CONFIG_SOUND_TRIX is not set
> # CONFIG_SOUND_MAD16 is not set
> # CONFIG_SOUND_WAVEFRONT is not set
> # CONFIG_SOUND_CS4232 is not set
> CONFIG_SOUND_OPL3SA2=m
> # CONFIG_SOUND_MAUI is not set
> # CONFIG_SOUND_SGALAXY is not set
> # CONFIG_SOUND_AD1816 is not set
> # CONFIG_SOUND_OPL3SA1 is not set
> # CONFIG_SOUND_SOFTOSS is not set
> # CONFIG_SOUND_YM3812 is not set
> # CONFIG_SOUND_VMIDI is not set
> # CONFIG_SOUND_UART6850 is not set
>
> #
> # Additional low level sound drivers
> #
> # CONFIG_LOWLEVEL_SOUND is not set
>
> #
> # Kernel hacking
> #
> CONFIG_MAGIC_SYSRQ=y
> CONFIG_KERNEL_DEBUGGING=y
> CONFIG_SEMAPHORE_DEADLOCK=y
> # CONFIG_DEBUG_KSTACK is not set
> # CONFIG_KSTACK_METER is not set
> # CONFIG_DEBUG_SOFTLOCKUP is not set
> # CONFIG_PROFILE_GCC is not set
> # CONFIG_TRACE is not set
> # CONFIG_DEBUG_MCOUNT is not set
> # CONFIG_PRINT_EIP is not set
> # CONFIG_MEMLEAK is not set
> CONFIG_NMI_WATCHDOG=y
> CONFIG_NMI_WATCHDOG_IRQ=0
> CONFIG_KDB=y
> CONFIG_KDB_FRAMEPTR=y
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu
> Please read the FAQ at http://www.tux.org/lkml/
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/