* kernel BUG with 2.6.23-rc3-mm1: skb_over_panic @ 2007-08-24 22:47 Mathieu Desnoyers 2007-08-24 23:10 ` Andrew Morton 0 siblings, 1 reply; 17+ messages in thread From: Mathieu Desnoyers @ 2007-08-24 22:47 UTC (permalink / raw) To: akpm, linux-kernel Hi Andrew, I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if you would have some ideas about what is causing this problem. I'll start bissecting it soon. I seems to be caused by an buggy skb_put call in kobject_uevent_env. Thanks, Mathieu Synthesizing the initial hotplug events...[ 13.738308] skb_over_panic: text:c0252ede len:97 put:11 head:c2237e00 data:c2237e00 tail:0xc2237e61 end:0xc2237e60 dev:<NULL> [ 13.772252] ------------[ cut here ]------------ [ 13.786057] Kernel BUG at c039e27c [verbose debug info unavailable] [ 13.804788] invalid opcode: 0000 [#1] PREEMPT SMP [ 13.819195] Modules linked in: [ 13.828350] [ 13.832805] Pid: 1038, comm: udevtrigger Not tainted (2.6.23-rc3-mm1-testssmp #281) [ 13.855695] EIP: 0060:[<c039e27c>] EFLAGS: 00010286 CPU: 0 [ 13.872090] EIP is at skb_over_panic+0x5c/0x60 [ 13.885368] EAX: 00000084 EBX: c2237e00 ECX: 10000000 EDX: 00000000 [ 13.904093] ESI: 00000000 EDI: c2237e56 EBP: c2243eb4 ESP: c2243e88 [ 13.922820] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 [ 13.938951] Process udevtrigger (pid: 1038, ti=c2242000 task=c22a94f0 task.ti=c2242000) [ 13.962348] Stack: c05010ac c0252ede 00000061 0000000b c2237e00 c2237e00 c2237e61 c2237e60 [ 13.987584] c04d2181 c2bc1e80 00000005 c2243efc c0252ee3 c2237e00 c04d2124 c04ce0b8 [ 14.012823] c2b9ed20 00000000 c04ce0b8 c2b9ed20 c04e2e6b c05401a0 c2ac9000 c2243f04 [ 14.038065] Call Trace: [ 14.045931] [<c010971a>] show_trace_log_lvl+0x1a/0x30 [ 14.061321] [<c01097d8>] show_stack_log_lvl+0xa8/0xe0 [ 14.076707] [<c01098da>] show_registers+0xca/0x250 [ 14.091312] [<c0109b70>] die+0x110/0x280 [ 14.103323] [<c04187c1>] do_trap+0x91/0xc0 [ 14.115857] [<c0109fc9>] do_invalid_op+0x89/0xa0 [ 14.129944] [<c041857a>] error_code+0x72/0x78 [ 14.143252] [<c0252ee3>] kobject_uevent_env+0x353/0x380 [ 14.159155] [<c0252f1a>] kobject_uevent+0xa/0x10 [ 14.173244] [<c02c524b>] store_uevent+0x2b/0x70 [ 14.187076] [<c02c4f6f>] dev_attr_store+0x2f/0x40 [ 14.201425] [<c01cd0e0>] sysfs_write_file+0xa0/0x100 [ 14.216553] [<c018cbf9>] vfs_write+0x99/0x130 [ 14.229862] [<c018d2dd>] sys_write+0x3d/0x70 [ 14.242911] [<c0108596>] syscall_call+0x7/0xb [ 14.256223] ======================= [ 14.266906] INFO: lockdep is turned off. [ 14.278624] Code: 00 00 89 5c 24 14 8b 98 8c 00 00 00 89 54 24 0c 89 5c 24 10 8b 40 50 89 4c 24 04 c7 04 24 ac 10 50 c0 89 44 24 08 e8 64 1f d9 ff <0f> 0b eb fe 55 89 e5 56 89 d6 53 89 c3 83 ec [ 14.336986] EIP: [<c039e27c>] skb_over_panic+0x5c/0x60 SS:ESP 0068:c2243e88 here is my config: # # Automatically generated make config: don't edit # Linux kernel version: 2.6.23-rc3-mm1 # Fri Aug 24 18:30:46 2007 # CONFIG_X86_32=y 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_SEMAPHORE_SLEEPERS=y CONFIG_X86=y CONFIG_MMU=y CONFIG_ZONE_DMA=y CONFIG_QUICKLIST=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_DMI=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # # General setup # CONFIG_EXPERIMENTAL=y CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="-testssmp" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_SWAP=y CONFIG_SWAP_PREFETCH=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set # CONFIG_USER_NS is not set CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=17 # CONFIG_CONTAINERS is not set CONFIG_SYSFS_DEPRECATED=y CONFIG_RELAY=y # CONFIG_BLK_DEV_INITRD is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_EMBEDDED=y CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=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_VM_EVENT_COUNTERS=y CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set CONFIG_PROC_PAGE_MONITOR=y CONFIG_PROC_KPAGEMAP=y CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBD=y CONFIG_BLK_DEV_IO_TRACE=y CONFIG_LSF=y # CONFIG_BLK_DEV_BSG is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_DEFAULT_AS=y # CONFIG_DEFAULT_DEADLINE is not set # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="anticipatory" # # Processor type and features # # CONFIG_TICK_ONESHOT is not set # CONFIG_NO_HZ is not set # CONFIG_HIGH_RES_TIMERS is not set CONFIG_SMP=y CONFIG_X86_PC=y # CONFIG_X86_ELAN is not set # CONFIG_X86_VOYAGER is not set # CONFIG_X86_NUMAQ is not set # CONFIG_X86_SUMMIT is not set # CONFIG_X86_BIGSMP is not set # CONFIG_X86_VISWS is not set # CONFIG_X86_GENERICARCH is not set # CONFIG_X86_ES7000 is not set CONFIG_PARAVIRT=y CONFIG_XEN=y CONFIG_VMI=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=y # CONFIG_MPENTIUMM is not set # CONFIG_MPENTIUM4 is not set # CONFIG_MCORE2 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_MWINCHIP2 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_X86_GENERIC is not set CONFIG_X86_CMPXCHG=y CONFIG_X86_L1_CACHE_SHIFT=5 CONFIG_X86_XADD=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y # CONFIG_ARCH_HAS_ILOG2_U32 is not set # CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y CONFIG_X86_GOOD_APIC=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=4 # CONFIG_HPET_TIMER is not set CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y CONFIG_PREEMPT_BKL=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_MCE=y CONFIG_X86_MCE_NONFATAL=y # CONFIG_X86_MCE_P4THERMAL is not set CONFIG_VM86=y # CONFIG_TOSHIBA is not set # CONFIG_I8K is not set # CONFIG_X86_REBOOTFIXUPS is not set # CONFIG_MICROCODE is not set # CONFIG_X86_MSR is not set # CONFIG_X86_CPUID is not set # # Firmware Drivers # # CONFIG_EDD is not set # CONFIG_DELL_RBU is not set CONFIG_DCDBAS=m CONFIG_DMIID=y # CONFIG_NOHIGHMEM is not set CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G is not set CONFIG_VMSPLIT_3G=y # CONFIG_VMSPLIT_3G_OPT is not set # CONFIG_VMSPLIT_2G is not set # CONFIG_VMSPLIT_2G_OPT is not set # CONFIG_VMSPLIT_1G is not set CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y # CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_RESOURCES_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_NR_QUICK=1 CONFIG_VIRT_TO_BUS=y # CONFIG_HIGHPTE is not set # CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y # CONFIG_EFI is not set CONFIG_IRQBALANCE=y CONFIG_SECCOMP=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_KEXEC=y # CONFIG_CRASH_DUMP is not set CONFIG_PHYSICAL_START=0x100000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x100000 CONFIG_HOTPLUG_CPU=y CONFIG_COMPAT_VDSO=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management options (ACPI, APM) # CONFIG_PM=y # CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND_SMP_POSSIBLE=y CONFIG_SUSPEND=y CONFIG_HIBERNATION_SMP_POSSIBLE=y # CONFIG_HIBERNATION is not set CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_PROCFS=y CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_FAN=y # CONFIG_ACPI_DOCK is not set CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_THERMAL=y # CONFIG_ACPI_ASUS is not set # CONFIG_ACPI_TOSHIBA is not set CONFIG_ACPI_BLACKLIST_YEAR=0 # CONFIG_ACPI_DEBUG is not set CONFIG_ACPI_EC=y CONFIG_ACPI_POWER=y CONFIG_ACPI_SYSTEM=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_SBS is not set # CONFIG_APM is not set # # CPU Frequency scaling # # CONFIG_CPU_FREQ is not set # # CPU idle PM support # # CONFIG_CPU_IDLE is not set # # Bus options (PCI, PCMCIA, EISA, MCA, ISA) # CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y # CONFIG_PCIEPORTBUS is not set CONFIG_ARCH_SUPPORTS_MSI=y # CONFIG_PCI_MSI is not set # CONFIG_PCI_DEBUG is not set CONFIG_HT_IRQ=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y # CONFIG_EISA is not set # CONFIG_MCA is not set # CONFIG_SCx200 is not set # CONFIG_PCCARD is not set # CONFIG_HOTPLUG_PCI is not set # # Executable file formats # CONFIG_BINFMT_ELF=y CONFIG_BINFMT_AOUT=y CONFIG_BINFMT_MISC=y # # Networking # CONFIG_NET=y # # Networking options # 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 is not set # CONFIG_NET_KEY is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_IP_MROUTE is not set # CONFIG_ARPD is not set # CONFIG_SYN_COOKIES is not set # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set CONFIG_INET_XFRM_MODE_TRANSPORT=y CONFIG_INET_XFRM_MODE_TUNNEL=y CONFIG_INET_XFRM_MODE_BEET=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set # CONFIG_INET6_XFRM_TUNNEL is not set # CONFIG_INET6_TUNNEL is not set # CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set # # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=y CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m # CONFIG_NF_CONNTRACK_ENABLED is not set # CONFIG_NF_CONNTRACK is not set # CONFIG_NETFILTER_XTABLES is not set # # IP: Netfilter Configuration # CONFIG_IP_NF_QUEUE=y # CONFIG_IP_NF_IPTABLES is not set # CONFIG_IP_NF_ARPTABLES is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # # QoS and/or fair queueing # # CONFIG_NET_SCHED is not set # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_NET_TCPPROBE is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set # # Wireless # # CONFIG_CFG80211 is not set # CONFIG_WIRELESS_EXT is not set # CONFIG_MAC80211 is not set CONFIG_IEEE80211=m CONFIG_IEEE80211_DEBUG=y CONFIG_IEEE80211_CRYPT_WEP=m CONFIG_IEEE80211_CRYPT_CCMP=m # CONFIG_IEEE80211_CRYPT_TKIP is not set # CONFIG_IEEE80211_SOFTMAC is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set # # Device Drivers # # # Generic Driver Options # CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=m # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y # CONFIG_MTD is not set CONFIG_PARPORT=y CONFIG_PARPORT_PC=y # CONFIG_PARPORT_SERIAL is not set # CONFIG_PARPORT_PC_FIFO is not set # CONFIG_PARPORT_PC_SUPERIO is not set # CONFIG_PARPORT_GSC is not set # CONFIG_PARPORT_AX88796 is not set # CONFIG_PARPORT_1284 is not set CONFIG_PNP=y # CONFIG_PNP_DEBUG is not set # # Protocols # # CONFIG_ISAPNP is not set # CONFIG_PNPBIOS is not set CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=y # CONFIG_BLK_DEV_XD is not set # CONFIG_PARIDE is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_RAM is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # CONFIG_XEN_BLKDEV_FRONTEND is not set CONFIG_MISC_DEVICES=y # CONFIG_IBM_ASM is not set # CONFIG_PHANTOM is not set # CONFIG_EEPROM_93CX6 is not set # CONFIG_SGI_IOC4 is not set # CONFIG_TIFM_CORE is not set # CONFIG_SONY_LAPTOP is not set # CONFIG_THINKPAD_ACPI is not set CONFIG_IDE=y CONFIG_IDE_MAX_HWIFS=4 CONFIG_BLK_DEV_IDE=y # # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_IDE_SATA is not set # CONFIG_BLK_DEV_HD_IDE is not set CONFIG_BLK_DEV_IDEDISK=y CONFIG_IDEDISK_MULTI_MODE=y CONFIG_BLK_DEV_IDECD=y # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set # CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_BLK_DEV_IDEACPI is not set # CONFIG_IDE_TASK_IOCTL is not set CONFIG_IDE_PROC_FS=y # # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y # CONFIG_BLK_DEV_PLATFORM is not set # CONFIG_BLK_DEV_CMD640 is not set # CONFIG_BLK_DEV_IDEPNP is not set # # PCI IDE chipsets support # CONFIG_BLK_DEV_IDEPCI=y CONFIG_IDEPCI_SHARE_IRQ=y CONFIG_IDEPCI_PCIBUS_ORDER=y # CONFIG_BLK_DEV_OFFBOARD is not set CONFIG_BLK_DEV_GENERIC=y # CONFIG_BLK_DEV_OPTI621 is not set CONFIG_BLK_DEV_RZ1000=y CONFIG_BLK_DEV_IDEDMA_PCI=y # CONFIG_BLK_DEV_AEC62XX is not set # CONFIG_BLK_DEV_ALI15X3 is not set # CONFIG_BLK_DEV_AMD74XX is not set # CONFIG_BLK_DEV_ATIIXP is not set # CONFIG_BLK_DEV_CMD64X is not set # CONFIG_BLK_DEV_TRIFLEX is not set # CONFIG_BLK_DEV_CY82C693 is not set # CONFIG_BLK_DEV_CS5520 is not set # CONFIG_BLK_DEV_CS5530 is not set # CONFIG_BLK_DEV_CS5535 is not set # CONFIG_BLK_DEV_HPT34X is not set # CONFIG_BLK_DEV_HPT366 is not set # CONFIG_BLK_DEV_JMICRON is not set # CONFIG_BLK_DEV_SC1200 is not set CONFIG_BLK_DEV_PIIX=y # CONFIG_BLK_DEV_IT8213 is not set # CONFIG_BLK_DEV_IT821X is not set # CONFIG_BLK_DEV_NS87415 is not set # CONFIG_BLK_DEV_PDC202XX_OLD is not set # CONFIG_BLK_DEV_PDC202XX_NEW is not set # CONFIG_BLK_DEV_SVWKS is not set # CONFIG_BLK_DEV_SIIMAGE is not set # CONFIG_BLK_DEV_SIS5513 is not set # CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_VIA82CXXX is not set # CONFIG_BLK_DEV_TC86C001 is not set # CONFIG_IDE_ARM is not set # # Other IDE chipsets support # # # Note: most of these also require special kernel boot parameters # # CONFIG_BLK_DEV_4DRIVES is not set # CONFIG_BLK_DEV_ALI14XX is not set # CONFIG_BLK_DEV_DTC2278 is not set # CONFIG_BLK_DEV_HT6560B is not set # CONFIG_BLK_DEV_QD65XX is not set # CONFIG_BLK_DEV_UMC8672 is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_BLK_DEV_HD is not set # # SCSI device support # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=y CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set # CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=y # CONFIG_CHR_DEV_ST is not set # CONFIG_CHR_DEV_OSST is not set # CONFIG_BLK_DEV_SR is not set CONFIG_CHR_DEV_SG=y # CONFIG_CHR_DEV_SCH is not set # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # # CONFIG_SCSI_MULTI_LUN is not set # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set # CONFIG_SCSI_SCAN_ASYNC is not set CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports # # CONFIG_SCSI_SPI_ATTRS is not set # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set # CONFIG_SCSI_SAS_LIBSAS is not set # CONFIG_SCSI_SRP_ATTRS is not set CONFIG_SCSI_LOWLEVEL=y # CONFIG_ISCSI_TCP is not set # CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_SCSI_3W_9XXX is not set # 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_AACRAID is not set # CONFIG_SCSI_AIC7XXX is not set # CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_AIC94XX is not set CONFIG_SCSI_DPT_I2O=m # CONFIG_SCSI_ADVANSYS is not set # CONFIG_SCSI_IN2000 is not set # CONFIG_SCSI_ARCMSR is not set # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set # CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_DTC3280 is not set # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_GENERIC_NCR5380 is not set # CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set # CONFIG_SCSI_IPS 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_STEX is not set # CONFIG_SCSI_SYM53C8XX_2 is not set # CONFIG_SCSI_IPR is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PSI240I is not set # CONFIG_SCSI_QLOGIC_FAS is not set # CONFIG_SCSI_QLOGIC_1280 is not set # CONFIG_SCSI_QLA_FC is not set # CONFIG_SCSI_QLA_ISCSI is not set # CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_SEAGATE is not set # CONFIG_SCSI_SYM53C416 is not set # CONFIG_SCSI_DC395x 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_NSP32 is not set # CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_SRP is not set CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_ACPI=y # CONFIG_SATA_AHCI is not set # CONFIG_SATA_SVW is not set CONFIG_ATA_PIIX=y # CONFIG_SATA_MV is not set # CONFIG_SATA_NV is not set # CONFIG_PDC_ADMA is not set # CONFIG_SATA_QSTOR is not set # CONFIG_SATA_PROMISE is not set # CONFIG_SATA_SX4 is not set # CONFIG_SATA_SIL is not set # CONFIG_SATA_SIL24 is not set # CONFIG_SATA_SIS is not set # CONFIG_SATA_ULI is not set # CONFIG_SATA_VIA is not set # CONFIG_SATA_VITESSE is not set # CONFIG_SATA_INIC162X is not set # CONFIG_PATA_ALI is not set # CONFIG_PATA_AMD is not set # CONFIG_PATA_ARTOP is not set # CONFIG_PATA_ATIIXP is not set # CONFIG_PATA_CMD640_PCI is not set # CONFIG_PATA_CMD64X is not set # CONFIG_PATA_CS5520 is not set # CONFIG_PATA_CS5530 is not set # CONFIG_PATA_CS5535 is not set # CONFIG_PATA_CYPRESS is not set # CONFIG_PATA_EFAR is not set # CONFIG_ATA_GENERIC is not set # CONFIG_PATA_HPT366 is not set # CONFIG_PATA_HPT37X is not set # CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3 is not set # CONFIG_PATA_IT821X is not set # CONFIG_PATA_IT8213 is not set # CONFIG_PATA_JMICRON is not set # CONFIG_PATA_LEGACY is not set # CONFIG_PATA_TRIFLEX is not set # CONFIG_PATA_MARVELL is not set # CONFIG_PATA_MPIIX is not set # CONFIG_PATA_OLDPIIX is not set # CONFIG_PATA_NETCELL is not set # CONFIG_PATA_NS87410 is not set # CONFIG_PATA_OPTI is not set # CONFIG_PATA_OPTIDMA is not set # CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_QDI is not set # CONFIG_PATA_RADISYS is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set # CONFIG_PATA_SERVERWORKS is not set # CONFIG_PATA_PDC2027X is not set # CONFIG_PATA_SIL680 is not set # CONFIG_PATA_SIS is not set # CONFIG_PATA_VIA is not set # CONFIG_PATA_WINBOND is not set # CONFIG_PATA_WINBOND_VLB is not set # CONFIG_PATA_PLATFORM is not set # CONFIG_MD is not set # CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support # # CONFIG_FIREWIRE is not set CONFIG_IEEE1394=y # # Subsystem Options # # CONFIG_IEEE1394_VERBOSEDEBUG is not set # # Controllers # # # Texas Instruments PCILynx requires I2C # CONFIG_IEEE1394_OHCI1394=y # # Protocols # # CONFIG_IEEE1394_VIDEO1394 is not set # CONFIG_IEEE1394_SBP2 is not set # CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set # CONFIG_IEEE1394_ETH1394 is not set # CONFIG_IEEE1394_DV1394 is not set CONFIG_IEEE1394_RAWIO=y # CONFIG_I2O is not set CONFIG_MACINTOSH_DRIVERS=y # CONFIG_MAC_EMUMOUSEBTN is not set CONFIG_NETDEVICES=y # CONFIG_NETDEVICES_MULTIQUEUE is not set CONFIG_DUMMY=m # CONFIG_BONDING is not set # CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=m # CONFIG_NET_SB1000 is not set # CONFIG_ARCNET is not set # CONFIG_PHYLIB is not set CONFIG_NET_ETHERNET=y CONFIG_MII=y # CONFIG_HAPPYMEAL is not set # CONFIG_SUNGEM is not set # CONFIG_CASSINI is not set # CONFIG_NET_VENDOR_3COM is not set # CONFIG_LANCE is not set # CONFIG_NET_VENDOR_SMC is not set # CONFIG_NET_VENDOR_RACAL is not set # CONFIG_NET_TULIP is not set # CONFIG_AT1700 is not set # CONFIG_DEPCA is not set # CONFIG_HP100 is not set # CONFIG_NET_ISA is not set CONFIG_NET_PCI=y # CONFIG_PCNET32 is not set # CONFIG_AMD8111_ETH is not set # CONFIG_ADAPTEC_STARFIRE is not set # CONFIG_AC3200 is not set # CONFIG_APRICOT is not set # CONFIG_B44 is not set # CONFIG_FORCEDETH is not set # CONFIG_CS89x0 is not set # CONFIG_DGRS is not set # CONFIG_EEPRO100 is not set # CONFIG_E100 is not set # CONFIG_FEALNX is not set # CONFIG_NATSEMI is not set # CONFIG_NE2K_PCI is not set # CONFIG_8139CP is not set CONFIG_8139TOO=y CONFIG_8139TOO_PIO=y # CONFIG_8139TOO_TUNE_TWISTER is not set # CONFIG_8139TOO_8129 is not set # CONFIG_8139_OLD_RX_RESET is not set # CONFIG_SIS900 is not set # CONFIG_EPIC100 is not set # CONFIG_SUNDANCE is not set # CONFIG_TLAN is not set # CONFIG_VIA_RHINE is not set # CONFIG_SC92031 is not set # CONFIG_NET_POCKET is not set CONFIG_NETDEV_1000=y # CONFIG_ACENIC is not set # CONFIG_DL2K is not set # CONFIG_E1000 is not set # CONFIG_E1000E is not set # CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set # CONFIG_SIS190 is not set CONFIG_SKGE=m CONFIG_SKY2=m # CONFIG_SKY2_DEBUG is not set # CONFIG_VIA_VELOCITY is not set # CONFIG_TIGON3 is not set # CONFIG_BNX2 is not set # CONFIG_QLA3XXX is not set # CONFIG_ATL1 is not set CONFIG_NETDEV_10000=y # CONFIG_CHELSIO_T1 is not set # CONFIG_CHELSIO_T3 is not set # CONFIG_IXGB is not set CONFIG_S2IO=m # CONFIG_S2IO_NAPI is not set # CONFIG_MYRI10GE is not set # CONFIG_NETXEN_NIC is not set # CONFIG_MLX4_CORE is not set # CONFIG_TR is not set # # Wireless LAN # # CONFIG_WLAN_PRE80211 is not set # CONFIG_WLAN_80211 is not set # # USB Network Adapters # # CONFIG_USB_CATC is not set # CONFIG_USB_KAWETH is not set # CONFIG_USB_PEGASUS is not set # CONFIG_USB_RTL8150 is not set # CONFIG_USB_USBNET_MII is not set # CONFIG_USB_USBNET is not set # CONFIG_WAN is not set CONFIG_XEN_NETDEV_FRONTEND=y # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_PLIP is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set # CONFIG_NET_FC is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set # CONFIG_ISDN is not set # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y # CONFIG_INPUT_FF_MEMLESS is not set CONFIG_INPUT_POLLDEV=m # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_TSDEV is not set # CONFIG_INPUT_EVDEV is not set # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_STOWAWAY is not set 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_TOUCHKIT is not set # CONFIG_MOUSE_SERIAL is not set # CONFIG_MOUSE_APPLETOUCH is not set # CONFIG_MOUSE_INPORT is not set # CONFIG_MOUSE_LOGIBM is not set # CONFIG_MOUSE_PC110PAD is not set # CONFIG_MOUSE_VSXXXAA is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_SERIO_I8042=y # CONFIG_SERIO_SERPORT is not set # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PARKBD is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_NOZOMI is not set # # 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_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 # CONFIG_SERIAL_8250_EXTENDED is not set # # Non-8250 serial port support # CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 CONFIG_PRINTER=y # CONFIG_LP_CONSOLE is not set # CONFIG_PPDEV is not set # CONFIG_TIPAR is not set CONFIG_HVC_DRIVER=y CONFIG_HVC_XEN=y # CONFIG_IPMI_HANDLER is not set # CONFIG_HW_RANDOM is not set # CONFIG_NVRAM is not set CONFIG_RTC=m # CONFIG_GEN_RTC is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_SONYPI is not set CONFIG_AGP=y # CONFIG_AGP_ALI is not set # CONFIG_AGP_ATI is not set # CONFIG_AGP_AMD is not set # CONFIG_AGP_AMD64 is not set CONFIG_AGP_INTEL=y # CONFIG_AGP_NVIDIA is not set # CONFIG_AGP_SIS is not set # CONFIG_AGP_SWORKS is not set # CONFIG_AGP_VIA is not set # CONFIG_AGP_EFFICEON is not set CONFIG_DRM=y # CONFIG_DRM_TDFX is not set # CONFIG_DRM_R128 is not set # CONFIG_DRM_RADEON is not set # 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 is not set # CONFIG_DRM_VIA is not set # CONFIG_DRM_SAVAGE is not set # CONFIG_MWAVE is not set # CONFIG_PC8736x_GPIO is not set # CONFIG_NSC_GPIO is not set # CONFIG_CS5535_GPIO is not set # CONFIG_RAW_DRIVER is not set # CONFIG_HPET is not set # CONFIG_HANGCHECK_TIMER is not set # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y # CONFIG_I2C is not set # # SPI support # # CONFIG_SPI is not set # CONFIG_SPI_MASTER is not set # CONFIG_W1 is not set # CONFIG_POWER_SUPPLY is not set CONFIG_HWMON=y CONFIG_HWMON_VID=m # CONFIG_SENSORS_ABITUGURU is not set # CONFIG_SENSORS_ABITUGURU3 is not set # CONFIG_SENSORS_K8TEMP is not set # CONFIG_SENSORS_F71805F is not set # CONFIG_SENSORS_CORETEMP is not set CONFIG_SENSORS_IT87=m # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_PC87427 is not set # CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT1211 is not set # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_SENSORS_APPLESMC is not set # CONFIG_HWMON_DEBUG_CHIP is not set # CONFIG_WATCHDOG is not set # # Sonics Silicon Backplane # CONFIG_SSB_POSSIBLE=y # CONFIG_SSB is not set # # Multifunction device drivers # # CONFIG_MFD_SM501 is not set # # Multimedia devices # # CONFIG_VIDEO_DEV is not set # CONFIG_DVB_CORE is not set CONFIG_DAB=y # CONFIG_USB_DABUSB is not set # # Graphics support # # CONFIG_BACKLIGHT_LCD_SUPPORT is not set # # Display device support # # CONFIG_DISPLAY_SUPPORT is not set # CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=m # CONFIG_FB is not set # # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set # CONFIG_VIDEO_SELECT is not set # CONFIG_MDA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y # # Sound # CONFIG_SOUND=y # # Advanced Linux Sound Architecture # CONFIG_SND=y CONFIG_SND_TIMER=y CONFIG_SND_PCM=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=y CONFIG_SND_SEQUENCER_OSS=y # CONFIG_SND_RTCTIMER is not set # CONFIG_SND_DYNAMIC_MINORS is not set CONFIG_SND_SUPPORT_OLD_API=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set # # Generic devices # CONFIG_SND_AC97_CODEC=y # CONFIG_SND_DUMMY is not set # CONFIG_SND_VIRMIDI is not set # CONFIG_SND_MTPAV is not set # CONFIG_SND_MTS64 is not set # CONFIG_SND_SERIAL_U16550 is not set # CONFIG_SND_MPU401 is not set # CONFIG_SND_PORTMAN2X4 is not set # # ISA devices # # CONFIG_SND_ADLIB is not set # CONFIG_SND_AD1816A is not set # CONFIG_SND_AD1848 is not set # CONFIG_SND_ALS100 is not set # CONFIG_SND_AZT2320 is not set # CONFIG_SND_CMI8330 is not set # CONFIG_SND_CS4231 is not set # CONFIG_SND_CS4232 is not set # CONFIG_SND_CS4236 is not set # CONFIG_SND_DT019X is not set # CONFIG_SND_ES968 is not set # CONFIG_SND_ES1688 is not set # CONFIG_SND_ES18XX is not set # CONFIG_SND_GUSCLASSIC is not set # CONFIG_SND_GUSEXTREME is not set # CONFIG_SND_GUSMAX is not set # CONFIG_SND_INTERWAVE is not set # CONFIG_SND_INTERWAVE_STB is not set # CONFIG_SND_OPL3SA2 is not set # CONFIG_SND_OPTI92X_AD1848 is not set # CONFIG_SND_OPTI92X_CS4231 is not set # CONFIG_SND_OPTI93X is not set # CONFIG_SND_MIRO is not set # CONFIG_SND_SB8 is not set # CONFIG_SND_SB16 is not set # CONFIG_SND_SBAWE is not set # CONFIG_SND_SGALAXY is not set # CONFIG_SND_SSCAPE is not set # CONFIG_SND_WAVEFRONT is not set # # PCI devices # # CONFIG_SND_AD1889 is not set # CONFIG_SND_ALS300 is not set # CONFIG_SND_ALS4000 is not set # CONFIG_SND_ALI5451 is not set # CONFIG_SND_ATIIXP is not set # CONFIG_SND_ATIIXP_MODEM is not set # CONFIG_SND_AU8810 is not set # CONFIG_SND_AU8820 is not set # CONFIG_SND_AU8830 is not set # CONFIG_SND_AZT3328 is not set # CONFIG_SND_BT87X is not set # CONFIG_SND_CA0106 is not set # CONFIG_SND_CMIPCI is not set # CONFIG_SND_CS4281 is not set # CONFIG_SND_CS46XX is not set # CONFIG_SND_CS5530 is not set # CONFIG_SND_CS5535AUDIO is not set # CONFIG_SND_DARLA20 is not set # CONFIG_SND_GINA20 is not set # CONFIG_SND_LAYLA20 is not set # CONFIG_SND_DARLA24 is not set # CONFIG_SND_GINA24 is not set # CONFIG_SND_LAYLA24 is not set # CONFIG_SND_MONA is not set # CONFIG_SND_MIA is not set # CONFIG_SND_ECHO3G is not set # CONFIG_SND_INDIGO is not set # CONFIG_SND_INDIGOIO is not set # CONFIG_SND_INDIGODJ is not set # CONFIG_SND_EMU10K1 is not set # CONFIG_SND_EMU10K1X is not set # CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1371 is not set # CONFIG_SND_ES1938 is not set # CONFIG_SND_ES1968 is not set # CONFIG_SND_FM801 is not set CONFIG_SND_HDA_INTEL=m # CONFIG_SND_HDA_HWDEP is not set CONFIG_SND_HDA_CODEC_REALTEK=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y CONFIG_SND_HDA_CODEC_ATIHDMI=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y # CONFIG_SND_HDA_POWER_SAVE is not set # CONFIG_SND_HDSP is not set # CONFIG_SND_HDSPM is not set # CONFIG_SND_ICE1712 is not set # CONFIG_SND_ICE1724 is not set CONFIG_SND_INTEL8X0=y # CONFIG_SND_INTEL8X0M is not set # CONFIG_SND_KORG1212 is not set # CONFIG_SND_MAESTRO3 is not set # CONFIG_SND_MIXART is not set # CONFIG_SND_NM256 is not set # CONFIG_SND_PCXHR is not set # CONFIG_SND_RIPTIDE is not set # CONFIG_SND_RME32 is not set # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set # CONFIG_SND_SONICVIBES is not set # CONFIG_SND_TRIDENT is not set # CONFIG_SND_VIA82XX is not set # CONFIG_SND_VIA82XX_MODEM is not set # CONFIG_SND_VX222 is not set # CONFIG_SND_YMFPCI is not set # CONFIG_SND_AC97_POWER_SAVE is not set # # USB devices # # CONFIG_SND_USB_AUDIO is not set # CONFIG_SND_USB_USX2Y is not set # CONFIG_SND_USB_CAIAQ is not set # # System on Chip audio support # # CONFIG_SND_SOC is not set # # SoC Audio support for SuperH # # # Open Sound System # # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=y CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HID_DEBUG is not set # CONFIG_HIDRAW is not set # # USB Input Devices # CONFIG_USB_HID=y # CONFIG_USB_HIDINPUT_POWERBOOK is not set # CONFIG_HID_FF is not set # CONFIG_USB_HIDDEV 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 # # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y # CONFIG_USB_DEVICE_CLASS is not set # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_SUSPEND is not set # CONFIG_USB_PERSIST is not set # CONFIG_USB_OTG is not set # # USB Host Controller Drivers # CONFIG_USB_EHCI_HCD=y # CONFIG_USB_EHCI_SPLIT_ISO is not set # CONFIG_USB_EHCI_ROOT_HUB_TT is not set # CONFIG_USB_EHCI_TT_NEWSCHED is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_OHCI_HCD is not set CONFIG_USB_UHCI_HCD=y # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set # # USB Device Class drivers # # CONFIG_USB_ACM is not set CONFIG_USB_PRINTER=y # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # # # 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 is not set # CONFIG_USB_STORAGE_FREECOM is not set # CONFIG_USB_STORAGE_ISD200 is not set # CONFIG_USB_STORAGE_DPCM is not set # CONFIG_USB_STORAGE_USBAT is not set # CONFIG_USB_STORAGE_SDDR09 is not set # CONFIG_USB_STORAGE_SDDR55 is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_ALAUDA is not set # CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_LIBUSUAL is not set # # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set CONFIG_USB_MON=y # # USB port drivers # # CONFIG_USB_USS720 is not set # # USB Serial Converter support # # CONFIG_USB_SERIAL is not set # # USB Miscellaneous drivers # # CONFIG_USB_EMI62 is not set # CONFIG_USB_EMI26 is not set # CONFIG_USB_ADUTUX is not set # CONFIG_USB_AUERSWALD is not set # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set # CONFIG_USB_BERRY_CHARGE is not set # CONFIG_USB_LED is not set # CONFIG_USB_CYPRESS_CY7C63 is not set CONFIG_USB_CYTHERM=m # CONFIG_USB_PHIDGET is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_FTDI_ELAN is not set # CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set # CONFIG_USB_IOWARRIOR is not set # CONFIG_USB_TEST is not set # CONFIG_USB_GOTEMP is not set # # USB DSL modem support # # # USB Gadget Support # # CONFIG_USB_GADGET is not set # CONFIG_MMC is not set # CONFIG_NEW_LEDS is not set # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set # CONFIG_RTC_DRV_TEST is not set # # SPI RTC drivers # # # Platform RTC drivers # # CONFIG_RTC_DRV_CMOS is not set # CONFIG_RTC_DRV_DS1553 is not set # CONFIG_RTC_DRV_STK17TA8 is not set # CONFIG_RTC_DRV_DS1742 is not set # CONFIG_RTC_DRV_M48T86 is not set # CONFIG_RTC_DRV_M48T59 is not set # CONFIG_RTC_DRV_V3020 is not set # # on-CPU RTC drivers # CONFIG_AUXDISPLAY=y # CONFIG_KS0108 is not set CONFIG_VIRTUALIZATION=y # CONFIG_KVM is not set # # Userspace I/O # # CONFIG_UIO is not set # CONFIG_LGUEST is not set # # File systems # CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y CONFIG_EXT3_FS_XATTR=y # CONFIG_EXT3_FS_POSIX_ACL is not set # CONFIG_EXT3_FS_SECURITY is not set # CONFIG_EXT4DEV_FS is not set CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set CONFIG_FS_MBCACHE=y # CONFIG_REISER4_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set # CONFIG_FS_POSIX_ACL is not set # CONFIG_XFS_FS is not set # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set CONFIG_AUTOFS4_FS=y 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 is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_HUGETLBFS is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y # CONFIG_CONFIGFS_FS is not set # # Layered filesystems # # CONFIG_UNION_FS is not set # # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_CRAMFS is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set # # Network File Systems # CONFIG_NFS_FS=y # CONFIG_NFS_V3 is not set # CONFIG_NFS_V4 is not set # CONFIG_NFS_DIRECTIO is not set CONFIG_NFSD=y # CONFIG_NFSD_V3 is not set CONFIG_NFSD_TCP=y CONFIG_LOCKD=y CONFIG_EXPORTFS=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y # CONFIG_SUNRPC_BIND34 is not set # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set # CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # # Partition Types # # CONFIG_PARTITION_ADVANCED is not set CONFIG_MSDOS_PARTITION=y # # Native Language Support # CONFIG_NLS=y CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_NLS_CODEPAGE_437=y # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set # CONFIG_NLS_CODEPAGE_850 is not set # 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_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set # CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set # CONFIG_NLS_ASCII is not set CONFIG_NLS_ISO8859_1=y # 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_9 is not set # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set # CONFIG_NLS_UTF8 is not set # # Distributed Lock Manager # # CONFIG_DLM is not set CONFIG_INSTRUMENTATION=y CONFIG_PROFILING=y CONFIG_OPROFILE=m CONFIG_KPROBES=y # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_PRINTK_TIME=y CONFIG_ENABLE_MUST_CHECK=y CONFIG_MAGIC_SYSRQ=y CONFIG_UNUSED_SYMBOLS=y # CONFIG_PAGE_OWNER is not set CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set CONFIG_DETECT_SOFTLOCKUP=y CONFIG_SCHED_DEBUG=y # CONFIG_SCHEDSTATS is not set # CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_SLAB is not set CONFIG_DEBUG_PREEMPT=y CONFIG_DEBUG_RT_MUTEXES=y CONFIG_DEBUG_PI_LIST=y # CONFIG_RT_MUTEX_TESTER is not set CONFIG_DEBUG_SPINLOCK=y CONFIG_DEBUG_MUTEXES=y CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y CONFIG_LOCKDEP=y # CONFIG_LOCK_STAT is not set CONFIG_DEBUG_LOCKDEP=y CONFIG_TRACE_IRQFLAGS=y CONFIG_DEBUG_SPINLOCK_SLEEP=y # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_STACKTRACE=y # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_HIGHMEM=y # CONFIG_DEBUG_BUGVERBOSE is not set CONFIG_DEBUG_INFO=y CONFIG_DEBUG_VM=y CONFIG_DEBUG_LIST=y CONFIG_FRAME_POINTER=y # CONFIG_UNWIND_INFO is not set # CONFIG_PROFILE_LIKELY is not set CONFIG_FORCED_INLINING=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_DEBUG_SYNCHRO_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_LKDTM is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_WANT_EXTRA_DEBUG_INFORMATION is not set # CONFIG_KGDB is not set CONFIG_EARLY_PRINTK=y # CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_DEBUG_RODATA=y # CONFIG_4KSTACKS is not set CONFIG_X86_FIND_SMP_CONFIG=y CONFIG_X86_MPPARSE=y CONFIG_DOUBLEFAULT=y # # Security options # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set # CONFIG_SECURITY_FILE_CAPABILITIES is not set CONFIG_CRYPTO=y CONFIG_CRYPTO_ALGAPI=m CONFIG_CRYPTO_BLKCIPHER=m CONFIG_CRYPTO_MANAGER=m # CONFIG_CRYPTO_HMAC is not set # CONFIG_CRYPTO_XCBC is not set # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_MD4 is not set # CONFIG_CRYPTO_MD5 is not set # CONFIG_CRYPTO_SHA1 is not set # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_GF128MUL is not set CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_CBC=m CONFIG_CRYPTO_PCBC=m # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_CRYPTD is not set # CONFIG_CRYPTO_DES is not set # CONFIG_CRYPTO_FCRYPT is not set # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_TWOFISH_586 is not set # CONFIG_CRYPTO_SERPENT is not set CONFIG_CRYPTO_AES=m # CONFIG_CRYPTO_AES_586 is not set # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set CONFIG_CRYPTO_ARC4=m # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_ANUBIS is not set # CONFIG_CRYPTO_SEED is not set # CONFIG_CRYPTO_DEFLATE is not set CONFIG_CRYPTO_MICHAEL_MIC=m # CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_CAMELLIA is not set # CONFIG_CRYPTO_TEST is not set CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_PADLOCK is not set CONFIG_CRYPTO_DEV_GEODE=m # # Library routines # CONFIG_BITREVERSE=y # CONFIG_CRC_CCITT is not set # CONFIG_CRC16 is not set # CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y # CONFIG_CRC7 is not set CONFIG_LIBCRC32C=m CONFIG_AUDIT_GENERIC=y CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_X86_SMP=y CONFIG_X86_HT=y CONFIG_X86_BIOS_REBOOT=y CONFIG_X86_TRAMPOLINE=y CONFIG_KTIME_SCALAR=y -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-24 22:47 kernel BUG with 2.6.23-rc3-mm1: skb_over_panic Mathieu Desnoyers @ 2007-08-24 23:10 ` Andrew Morton 2007-08-24 23:46 ` Greg KH 2007-08-25 0:16 ` Mathieu Desnoyers 0 siblings, 2 replies; 17+ messages in thread From: Andrew Morton @ 2007-08-24 23:10 UTC (permalink / raw) To: Mathieu Desnoyers; +Cc: linux-kernel, Kay Sievers, Greg KH On Fri, 24 Aug 2007 18:47:07 -0400 Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > Hi Andrew, > > I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if > you would have some ideas about what is causing this problem. I'll start > bissecting it soon. I seems to be caused by an buggy skb_put call in > kobject_uevent_env. > > Thanks, > > Mathieu > > > Synthesizing the initial hotplug events...[ 13.738308] skb_over_panic: text:c0252ede len:97 put:11 head:c2237e00 data:c2237e00 tail:0xc2237e61 end:0xc2237e60 dev:<NULL> > [ 13.772252] ------------[ cut here ]------------ > [ 13.786057] Kernel BUG at c039e27c [verbose debug info unavailable] > [ 13.804788] invalid opcode: 0000 [#1] PREEMPT SMP > [ 13.819195] Modules linked in: > [ 13.828350] > [ 13.832805] Pid: 1038, comm: udevtrigger Not tainted (2.6.23-rc3-mm1-testssmp #281) > [ 13.855695] EIP: 0060:[<c039e27c>] EFLAGS: 00010286 CPU: 0 > [ 13.872090] EIP is at skb_over_panic+0x5c/0x60 > [ 13.885368] EAX: 00000084 EBX: c2237e00 ECX: 10000000 EDX: 00000000 > [ 13.904093] ESI: 00000000 EDI: c2237e56 EBP: c2243eb4 ESP: c2243e88 > [ 13.922820] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > [ 13.938951] Process udevtrigger (pid: 1038, ti=c2242000 task=c22a94f0 task.ti=c2242000) > [ 13.962348] Stack: c05010ac c0252ede 00000061 0000000b c2237e00 c2237e00 c2237e61 c2237e60 > [ 13.987584] c04d2181 c2bc1e80 00000005 c2243efc c0252ee3 c2237e00 c04d2124 c04ce0b8 > [ 14.012823] c2b9ed20 00000000 c04ce0b8 c2b9ed20 c04e2e6b c05401a0 c2ac9000 c2243f04 > [ 14.038065] Call Trace: > [ 14.045931] [<c010971a>] show_trace_log_lvl+0x1a/0x30 > [ 14.061321] [<c01097d8>] show_stack_log_lvl+0xa8/0xe0 > [ 14.076707] [<c01098da>] show_registers+0xca/0x250 > [ 14.091312] [<c0109b70>] die+0x110/0x280 > [ 14.103323] [<c04187c1>] do_trap+0x91/0xc0 > [ 14.115857] [<c0109fc9>] do_invalid_op+0x89/0xa0 > [ 14.129944] [<c041857a>] error_code+0x72/0x78 > [ 14.143252] [<c0252ee3>] kobject_uevent_env+0x353/0x380 > [ 14.159155] [<c0252f1a>] kobject_uevent+0xa/0x10 > [ 14.173244] [<c02c524b>] store_uevent+0x2b/0x70 > [ 14.187076] [<c02c4f6f>] dev_attr_store+0x2f/0x40 > [ 14.201425] [<c01cd0e0>] sysfs_write_file+0xa0/0x100 > [ 14.216553] [<c018cbf9>] vfs_write+0x99/0x130 > [ 14.229862] [<c018d2dd>] sys_write+0x3d/0x70 > [ 14.242911] [<c0108596>] syscall_call+0x7/0xb > [ 14.256223] ======================= > [ 14.266906] INFO: lockdep is turned off. > [ 14.278624] Code: 00 00 89 5c 24 14 8b 98 8c 00 00 00 89 54 24 0c 89 5c 24 10 8b 40 50 89 4c 24 04 c7 04 24 ac 10 50 c0 89 44 24 08 e8 64 1f d9 ff <0f> 0b eb fe 55 89 e5 56 89 d6 53 89 c3 83 ec > [ 14.336986] EIP: [<c039e27c>] skb_over_panic+0x5c/0x60 SS:ESP 0068:c2243e88 > hm, don't know, sorry. Kay fixed a few things in there, but iirc pretty much all of the fixes were in rc3-mm1 anyway. I doubt if bisection will tell us a lot: it'll probably point at gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch. What we _would_ like to know is which sysfs file is being written to. We used to have a debug patch to exactly address this problem but it got transferred into Greg's tree from whence it mysteriously disappeared. Here it is again: Print the name of the last-accessed sysfs file when we oops, to help track down oopses which occur in sysfs store/read handlers. Because these oopses tend to not leave any trace of the offending code in the stack traces. Cc: Greg KH <greg@kroah.com> Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> --- arch/i386/kernel/traps.c | 1 + arch/x86_64/kernel/traps.c | 1 + fs/sysfs/file.c | 14 ++++++++++++++ include/linux/sysfs.h | 5 +++++ 4 files changed, 21 insertions(+) diff -puN arch/i386/kernel/traps.c~sysfs-crash-debugging arch/i386/kernel/traps.c --- a/arch/i386/kernel/traps.c~sysfs-crash-debugging +++ a/arch/i386/kernel/traps.c @@ -452,6 +452,7 @@ void die(const char * str, struct pt_reg #endif printk("\n"); + sysfs_printk_last_file(); if (notify_die(DIE_OOPS, str, regs, err, current->thread.trap_no, SIGSEGV) != NOTIFY_STOP) { diff -puN arch/x86_64/kernel/traps.c~sysfs-crash-debugging arch/x86_64/kernel/traps.c --- a/arch/x86_64/kernel/traps.c~sysfs-crash-debugging +++ a/arch/x86_64/kernel/traps.c @@ -588,6 +588,7 @@ void __kprobes __die(const char * str, s printk("DEBUG_PAGEALLOC"); #endif printk("\n"); + sysfs_printk_last_file(); notify_die(DIE_OOPS, str, regs, err, current->thread.trap_no, SIGSEGV); show_registers(regs); add_taint(TAINT_DIE); diff -puN fs/sysfs/file.c~sysfs-crash-debugging fs/sysfs/file.c --- a/fs/sysfs/file.c~sysfs-crash-debugging +++ a/fs/sysfs/file.c @@ -9,12 +9,20 @@ #include <linux/poll.h> #include <linux/list.h> #include <linux/mutex.h> +#include <linux/limits.h> #include <asm/uaccess.h> #include "sysfs.h" #define to_sattr(a) container_of(a,struct subsys_attribute, attr) +/* used in crash dumps to help with debugging */ +static char last_sysfs_file[PATH_MAX]; +void sysfs_printk_last_file(void) +{ + printk(KERN_EMERG "last sysfs file: %s\n", last_sysfs_file); +} + /* * Subsystem file operations. * These operations allow subsystems to have files that can be @@ -245,6 +253,12 @@ static int sysfs_open_file(struct inode struct sysfs_buffer * buffer; struct sysfs_ops * ops = NULL; int error; + char *p; + + p = d_path(file->f_dentry, sysfs_mount, last_sysfs_file, + sizeof(last_sysfs_file)); + if (p) + memmove(last_sysfs_file, p, strlen(p) + 1); /* need attr_sd for attr and ops, its parent for kobj */ if (!sysfs_get_active_two(attr_sd)) diff -puN include/linux/sysfs.h~sysfs-crash-debugging include/linux/sysfs.h --- a/include/linux/sysfs.h~sysfs-crash-debugging +++ a/include/linux/sysfs.h @@ -133,6 +133,7 @@ void sysfs_remove_file_from_group(struct const struct attribute *attr, const char *group); void sysfs_notify(struct kobject * k, char *dir, char *attr); +void sysfs_printk_last_file(void); extern int __must_check sysfs_init(void); @@ -234,6 +235,10 @@ static inline int __must_check sysfs_ini return 0; } +static inline void sysfs_printk_last_file(void) +{ +} + #endif /* CONFIG_SYSFS */ #endif /* _SYSFS_H_ */ _ ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-24 23:10 ` Andrew Morton @ 2007-08-24 23:46 ` Greg KH 2007-08-25 0:16 ` Mathieu Desnoyers 1 sibling, 0 replies; 17+ messages in thread From: Greg KH @ 2007-08-24 23:46 UTC (permalink / raw) To: Andrew Morton; +Cc: Mathieu Desnoyers, linux-kernel, Kay Sievers On Fri, Aug 24, 2007 at 04:10:29PM -0700, Andrew Morton wrote: > On Fri, 24 Aug 2007 18:47:07 -0400 > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > Hi Andrew, > > > > I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if > > you would have some ideas about what is causing this problem. I'll start > > bissecting it soon. I seems to be caused by an buggy skb_put call in > > kobject_uevent_env. > > > > Thanks, > > > > Mathieu > > > > > > Synthesizing the initial hotplug events...[ 13.738308] skb_over_panic: text:c0252ede len:97 put:11 head:c2237e00 data:c2237e00 tail:0xc2237e61 end:0xc2237e60 dev:<NULL> > > [ 13.772252] ------------[ cut here ]------------ > > [ 13.786057] Kernel BUG at c039e27c [verbose debug info unavailable] > > [ 13.804788] invalid opcode: 0000 [#1] PREEMPT SMP > > [ 13.819195] Modules linked in: > > [ 13.828350] > > [ 13.832805] Pid: 1038, comm: udevtrigger Not tainted (2.6.23-rc3-mm1-testssmp #281) > > [ 13.855695] EIP: 0060:[<c039e27c>] EFLAGS: 00010286 CPU: 0 > > [ 13.872090] EIP is at skb_over_panic+0x5c/0x60 > > [ 13.885368] EAX: 00000084 EBX: c2237e00 ECX: 10000000 EDX: 00000000 > > [ 13.904093] ESI: 00000000 EDI: c2237e56 EBP: c2243eb4 ESP: c2243e88 > > [ 13.922820] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > > [ 13.938951] Process udevtrigger (pid: 1038, ti=c2242000 task=c22a94f0 task.ti=c2242000) > > [ 13.962348] Stack: c05010ac c0252ede 00000061 0000000b c2237e00 c2237e00 c2237e61 c2237e60 > > [ 13.987584] c04d2181 c2bc1e80 00000005 c2243efc c0252ee3 c2237e00 c04d2124 c04ce0b8 > > [ 14.012823] c2b9ed20 00000000 c04ce0b8 c2b9ed20 c04e2e6b c05401a0 c2ac9000 c2243f04 > > [ 14.038065] Call Trace: > > [ 14.045931] [<c010971a>] show_trace_log_lvl+0x1a/0x30 > > [ 14.061321] [<c01097d8>] show_stack_log_lvl+0xa8/0xe0 > > [ 14.076707] [<c01098da>] show_registers+0xca/0x250 > > [ 14.091312] [<c0109b70>] die+0x110/0x280 > > [ 14.103323] [<c04187c1>] do_trap+0x91/0xc0 > > [ 14.115857] [<c0109fc9>] do_invalid_op+0x89/0xa0 > > [ 14.129944] [<c041857a>] error_code+0x72/0x78 > > [ 14.143252] [<c0252ee3>] kobject_uevent_env+0x353/0x380 > > [ 14.159155] [<c0252f1a>] kobject_uevent+0xa/0x10 > > [ 14.173244] [<c02c524b>] store_uevent+0x2b/0x70 > > [ 14.187076] [<c02c4f6f>] dev_attr_store+0x2f/0x40 > > [ 14.201425] [<c01cd0e0>] sysfs_write_file+0xa0/0x100 > > [ 14.216553] [<c018cbf9>] vfs_write+0x99/0x130 > > [ 14.229862] [<c018d2dd>] sys_write+0x3d/0x70 > > [ 14.242911] [<c0108596>] syscall_call+0x7/0xb > > [ 14.256223] ======================= > > [ 14.266906] INFO: lockdep is turned off. > > [ 14.278624] Code: 00 00 89 5c 24 14 8b 98 8c 00 00 00 89 54 24 0c 89 5c 24 10 8b 40 50 89 4c 24 04 c7 04 24 ac 10 50 c0 89 44 24 08 e8 64 1f d9 ff <0f> 0b eb fe 55 89 e5 56 89 d6 53 89 c3 83 ec > > [ 14.336986] EIP: [<c039e27c>] skb_over_panic+0x5c/0x60 SS:ESP 0068:c2243e88 > > > > hm, don't know, sorry. Kay fixed a few things in there, but iirc pretty > much all of the fixes were in rc3-mm1 anyway. > > I doubt if bisection will tell us a lot: it'll probably point at > gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch. I've now updated my copy of this with the "correct" one from Kay :) > What we _would_ like to know is which sysfs file is being written to. We > used to have a debug patch to exactly address this problem but it got > transferred into Greg's tree from whence it mysteriously disappeared. I think this patch got dropped a while ago when things were just reworked too much in this area. If this patch now works properly, I have no objection to taking it in my tree again. thanks, greg k-h ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-24 23:10 ` Andrew Morton 2007-08-24 23:46 ` Greg KH @ 2007-08-25 0:16 ` Mathieu Desnoyers 2007-08-25 0:44 ` Andrew Morton 1 sibling, 1 reply; 17+ messages in thread From: Mathieu Desnoyers @ 2007-08-25 0:16 UTC (permalink / raw) To: Andrew Morton; +Cc: linux-kernel, Kay Sievers, Greg KH * Andrew Morton (akpm@linux-foundation.org) wrote: > On Fri, 24 Aug 2007 18:47:07 -0400 > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > Hi Andrew, > > > > I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if > > you would have some ideas about what is causing this problem. I'll start > > bissecting it soon. I seems to be caused by an buggy skb_put call in > > kobject_uevent_env. > > > > Thanks, > > > > Mathieu > > > > > > hm, don't know, sorry. Kay fixed a few things in there, but iirc pretty > much all of the fixes were in rc3-mm1 anyway. > > I doubt if bisection will tell us a lot: it'll probably point at > gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch. > > What we _would_ like to know is which sysfs file is being written to. We > used to have a debug patch to exactly address this problem but it got > transferred into Greg's tree from whence it mysteriously disappeared. > Ok, here it is: filename : /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev [ 13.737735] ------------[ cut here ]------------ [ 13.751544] Kernel BUG at c039e11c [verbose debug info unavailable] [ 13.770287] invalid opcode: 0000 [#1] PREEMPT SMP [ 13.784736] last sysfs file: /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev [ 13.809714] Modules linked in: [ 13.818873] [ 13.823330] Pid: 1038, comm: udevtrigger Not tainted (2.6.23-rc3-mm1-testssmp #283) [ 13.846218] EIP: 0060:[<c039e11c>] EFLAGS: 00010286 CPU: 1 [ 13.862616] EIP is at skb_over_panic+0x5c/0x60 [ 13.875894] EAX: 00000084 EBX: c2227e00 ECX: 10000000 EDX: 00000000 [ 13.894632] ESI: 00000000 EDI: c2227e56 EBP: c2ea9eb4 ESP: c2ea9e88 [ 13.913372] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 [ 13.929516] Process udevtrigger (pid: 1038, ti=c2ea8000 task=c2baa070 task.ti=c2ea8000) [ 13.952918] Stack: c05010f0 c0252e3e 00000061 0000000b c2227e00 c2227e00 c2227e61 c2227e60 [ 13.978200] c04d21c5 c2287c80 00000005 c2ea9efc c0252e43 c2227e00 c04d2168 c04ce0e4 [ 14.003471] c20fc2a0 00000000 c04ce0e4 c20fc2a0 c04e2eaf c05401e0 c225a000 c2ea9f04 [ 14.028749] Call Trace: [ 14.036622] [<c010971a>] show_trace_log_lvl+0x1a/0x30 [ 14.052019] [<c01097d8>] show_stack_log_lvl+0xa8/0xe0 [ 14.067412] [<c01098da>] show_registers+0xca/0x250 [ 14.082028] [<c0109b75>] die+0x115/0x280 [ 14.094047] [<c04187c1>] do_trap+0x91/0xc0 [ 14.106586] [<c0109fc9>] do_invalid_op+0x89/0xa0 [ 14.120680] [<c041857a>] error_code+0x72/0x78 [ 14.134002] [<c0252e43>] kobject_uevent_env+0x353/0x380 [ 14.149915] [<c0252e7a>] kobject_uevent+0xa/0x10 [ 14.164012] [<c02c523b>] store_uevent+0x2b/0x70 [ 14.177851] [<c02c4f5f>] dev_attr_store+0x2f/0x40 [ 14.192207] [<c01cd080>] sysfs_write_file+0xa0/0x100 [ 14.207344] [<c018cb89>] vfs_write+0x99/0x130 [ 14.220661] [<c018d26d>] sys_write+0x3d/0x70 [ 14.233720] [<c0108596>] syscall_call+0x7/0xb [ 14.247036] ======================= [ 14.257723] INFO: lockdep is turned off. [ 14.269448] Code: 00 00 89 5c 24 14 8b 98 8c 00 00 00 89 54 24 0c 89 5c 24 10 8b 40 50 89 4c 24 04 c7 04 24 f0 10 50 c0 89 44 24 08 e8 94 20 d9 ff <0f> 0b eb fe 55 89 e5 56 89 d6 53 89 c3 83 ec 0c 8b 40 50 39 [ 14.328022] EIP: [<c039e11c>] skb_over_panic+0x5c/0x60 SS:ESP 0068:c2ea9e88 /etc/rcS.d/S03udev: line 253: 1038 Segmentation fault udevtrigger > > Here it is again: > > > Print the name of the last-accessed sysfs file when we oops, to help track > down oopses which occur in sysfs store/read handlers. Because these oopses > tend to not leave any trace of the offending code in the stack traces. > > Cc: Greg KH <greg@kroah.com> > Cc: Kay Sievers <kay.sievers@vrfy.org> > Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> > Signed-off-by: Andrew Morton <akpm@linux-foundation.org> > --- > > arch/i386/kernel/traps.c | 1 + > arch/x86_64/kernel/traps.c | 1 + > fs/sysfs/file.c | 14 ++++++++++++++ > include/linux/sysfs.h | 5 +++++ > 4 files changed, 21 insertions(+) > > diff -puN arch/i386/kernel/traps.c~sysfs-crash-debugging arch/i386/kernel/traps.c > --- a/arch/i386/kernel/traps.c~sysfs-crash-debugging > +++ a/arch/i386/kernel/traps.c > @@ -452,6 +452,7 @@ void die(const char * str, struct pt_reg > #endif > printk("\n"); > > + sysfs_printk_last_file(); > if (notify_die(DIE_OOPS, str, regs, err, > current->thread.trap_no, SIGSEGV) != > NOTIFY_STOP) { > diff -puN arch/x86_64/kernel/traps.c~sysfs-crash-debugging arch/x86_64/kernel/traps.c > --- a/arch/x86_64/kernel/traps.c~sysfs-crash-debugging > +++ a/arch/x86_64/kernel/traps.c > @@ -588,6 +588,7 @@ void __kprobes __die(const char * str, s > printk("DEBUG_PAGEALLOC"); > #endif > printk("\n"); > + sysfs_printk_last_file(); > notify_die(DIE_OOPS, str, regs, err, current->thread.trap_no, SIGSEGV); > show_registers(regs); > add_taint(TAINT_DIE); > diff -puN fs/sysfs/file.c~sysfs-crash-debugging fs/sysfs/file.c > --- a/fs/sysfs/file.c~sysfs-crash-debugging > +++ a/fs/sysfs/file.c > @@ -9,12 +9,20 @@ > #include <linux/poll.h> > #include <linux/list.h> > #include <linux/mutex.h> > +#include <linux/limits.h> > #include <asm/uaccess.h> > > #include "sysfs.h" > > #define to_sattr(a) container_of(a,struct subsys_attribute, attr) > > +/* used in crash dumps to help with debugging */ > +static char last_sysfs_file[PATH_MAX]; > +void sysfs_printk_last_file(void) > +{ > + printk(KERN_EMERG "last sysfs file: %s\n", last_sysfs_file); > +} > + > /* > * Subsystem file operations. > * These operations allow subsystems to have files that can be > @@ -245,6 +253,12 @@ static int sysfs_open_file(struct inode > struct sysfs_buffer * buffer; > struct sysfs_ops * ops = NULL; > int error; > + char *p; > + > + p = d_path(file->f_dentry, sysfs_mount, last_sysfs_file, > + sizeof(last_sysfs_file)); > + if (p) > + memmove(last_sysfs_file, p, strlen(p) + 1); > > /* need attr_sd for attr and ops, its parent for kobj */ > if (!sysfs_get_active_two(attr_sd)) > diff -puN include/linux/sysfs.h~sysfs-crash-debugging include/linux/sysfs.h > --- a/include/linux/sysfs.h~sysfs-crash-debugging > +++ a/include/linux/sysfs.h > @@ -133,6 +133,7 @@ void sysfs_remove_file_from_group(struct > const struct attribute *attr, const char *group); > > void sysfs_notify(struct kobject * k, char *dir, char *attr); > +void sysfs_printk_last_file(void); > > extern int __must_check sysfs_init(void); > > @@ -234,6 +235,10 @@ static inline int __must_check sysfs_ini > return 0; > } > > +static inline void sysfs_printk_last_file(void) > +{ > +} > + > #endif /* CONFIG_SYSFS */ > > #endif /* _SYSFS_H_ */ > _ > -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-25 0:16 ` Mathieu Desnoyers @ 2007-08-25 0:44 ` Andrew Morton 2007-08-25 0:46 ` Greg KH 2007-08-25 1:59 ` kernel BUG with 2.6.23-rc3-mm1: skb_over_panic Randy Dunlap 0 siblings, 2 replies; 17+ messages in thread From: Andrew Morton @ 2007-08-25 0:44 UTC (permalink / raw) To: Mathieu Desnoyers; +Cc: linux-kernel, Kay Sievers, Greg KH On Fri, 24 Aug 2007 20:16:38 -0400 Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > * Andrew Morton (akpm@linux-foundation.org) wrote: > > On Fri, 24 Aug 2007 18:47:07 -0400 > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > Hi Andrew, > > > > > > I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if > > > you would have some ideas about what is causing this problem. I'll start > > > bissecting it soon. I seems to be caused by an buggy skb_put call in > > > kobject_uevent_env. > > > > > > Thanks, > > > > > > Mathieu > > > > > > > > > > hm, don't know, sorry. Kay fixed a few things in there, but iirc pretty > > much all of the fixes were in rc3-mm1 anyway. > > > > I doubt if bisection will tell us a lot: it'll probably point at > > gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch. > > > > What we _would_ like to know is which sysfs file is being written to. We > > used to have a debug patch to exactly address this problem but it got > > transferred into Greg's tree from whence it mysteriously disappeared. > > > > Ok, here it is: > > filename : > > /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev Bah. I've never found a sane way of going from a sysfs pathname back to the code which implements that pathname :( <greps the tree for '"rev"'> <comes up with zilch> > [ 13.737735] ------------[ cut here ]------------ > [ 13.751544] Kernel BUG at c039e11c [verbose debug info unavailable] > [ 13.770287] invalid opcode: 0000 [#1] PREEMPT SMP > [ 13.784736] last sysfs file: /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev > [ 13.809714] Modules linked in: > [ 13.818873] > [ 13.823330] Pid: 1038, comm: udevtrigger Not tainted (2.6.23-rc3-mm1-testssmp #283) > [ 13.846218] EIP: 0060:[<c039e11c>] EFLAGS: 00010286 CPU: 1 > [ 13.862616] EIP is at skb_over_panic+0x5c/0x60 > [ 13.875894] EAX: 00000084 EBX: c2227e00 ECX: 10000000 EDX: 00000000 > [ 13.894632] ESI: 00000000 EDI: c2227e56 EBP: c2ea9eb4 ESP: c2ea9e88 > [ 13.913372] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > [ 13.929516] Process udevtrigger (pid: 1038, ti=c2ea8000 task=c2baa070 task.ti=c2ea8000) > [ 13.952918] Stack: c05010f0 c0252e3e 00000061 0000000b c2227e00 c2227e00 c2227e61 c2227e60 > [ 13.978200] c04d21c5 c2287c80 00000005 c2ea9efc c0252e43 c2227e00 c04d2168 c04ce0e4 > [ 14.003471] c20fc2a0 00000000 c04ce0e4 c20fc2a0 c04e2eaf c05401e0 c225a000 c2ea9f04 > [ 14.028749] Call Trace: > [ 14.036622] [<c010971a>] show_trace_log_lvl+0x1a/0x30 > [ 14.052019] [<c01097d8>] show_stack_log_lvl+0xa8/0xe0 > [ 14.067412] [<c01098da>] show_registers+0xca/0x250 > [ 14.082028] [<c0109b75>] die+0x115/0x280 > [ 14.094047] [<c04187c1>] do_trap+0x91/0xc0 > [ 14.106586] [<c0109fc9>] do_invalid_op+0x89/0xa0 > [ 14.120680] [<c041857a>] error_code+0x72/0x78 > [ 14.134002] [<c0252e43>] kobject_uevent_env+0x353/0x380 > [ 14.149915] [<c0252e7a>] kobject_uevent+0xa/0x10 > [ 14.164012] [<c02c523b>] store_uevent+0x2b/0x70 > [ 14.177851] [<c02c4f5f>] dev_attr_store+0x2f/0x40 > [ 14.192207] [<c01cd080>] sysfs_write_file+0xa0/0x100 > [ 14.207344] [<c018cb89>] vfs_write+0x99/0x130 > [ 14.220661] [<c018d26d>] sys_write+0x3d/0x70 > [ 14.233720] [<c0108596>] syscall_call+0x7/0xb > [ 14.247036] ======================= > [ 14.257723] INFO: lockdep is turned off. > [ 14.269448] Code: 00 00 89 5c 24 14 8b 98 8c 00 00 00 89 54 24 0c 89 5c 24 10 8b 40 50 89 4c 24 04 c7 04 24 f0 10 50 c0 89 44 24 08 e8 94 20 d9 ff <0f> 0b eb fe 55 89 e5 56 89 d6 53 89 c3 83 ec 0c 8b 40 50 39 > [ 14.328022] EIP: [<c039e11c>] skb_over_panic+0x5c/0x60 SS:ESP 0068:c2ea9e88 > /etc/rcS.d/S03udev: line 253: 1038 Segmentation fault udevtrigger I think I'll sit back and watch Greg and Kay solve this one ;) Thanks. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-25 0:44 ` Andrew Morton @ 2007-08-25 0:46 ` Greg KH 2007-08-25 1:26 ` Kay Sievers ` (2 more replies) 2007-08-25 1:59 ` kernel BUG with 2.6.23-rc3-mm1: skb_over_panic Randy Dunlap 1 sibling, 3 replies; 17+ messages in thread From: Greg KH @ 2007-08-25 0:46 UTC (permalink / raw) To: Andrew Morton; +Cc: Mathieu Desnoyers, linux-kernel, Kay Sievers On Fri, Aug 24, 2007 at 05:44:50PM -0700, Andrew Morton wrote: > On Fri, 24 Aug 2007 20:16:38 -0400 > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > * Andrew Morton (akpm@linux-foundation.org) wrote: > > > On Fri, 24 Aug 2007 18:47:07 -0400 > > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > > > Hi Andrew, > > > > > > > > I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if > > > > you would have some ideas about what is causing this problem. I'll start > > > > bissecting it soon. I seems to be caused by an buggy skb_put call in > > > > kobject_uevent_env. > > > > > > > > Thanks, > > > > > > > > Mathieu > > > > > > > > > > > > > > hm, don't know, sorry. Kay fixed a few things in there, but iirc pretty > > > much all of the fixes were in rc3-mm1 anyway. > > > > > > I doubt if bisection will tell us a lot: it'll probably point at > > > gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch. > > > > > > What we _would_ like to know is which sysfs file is being written to. We > > > used to have a debug patch to exactly address this problem but it got > > > transferred into Greg's tree from whence it mysteriously disappeared. > > > > > > > Ok, here it is: > > > > filename : > > > > /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev > > Bah. I've never found a sane way of going from a sysfs pathname back to the > code which implements that pathname :( > > <greps the tree for '"rev"'> > > <comes up with zilch> It's a scsi file, as the above is a scsi device. It's created in the drivers/scsi/scsi_sysfs.c file. Kay, did you miss this set of attributes somehow? thanks, greg k-h ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-25 0:46 ` Greg KH @ 2007-08-25 1:26 ` Kay Sievers 2007-08-25 3:02 ` Mathieu Desnoyers 2007-08-25 4:17 ` [PATCH] Fix kobject uevent string handling errors Mathieu Desnoyers 2 siblings, 0 replies; 17+ messages in thread From: Kay Sievers @ 2007-08-25 1:26 UTC (permalink / raw) To: Greg KH; +Cc: Andrew Morton, Mathieu Desnoyers, linux-kernel On Fri, 2007-08-24 at 17:46 -0700, Greg KH wrote: > On Fri, Aug 24, 2007 at 05:44:50PM -0700, Andrew Morton wrote: > > On Fri, 24 Aug 2007 20:16:38 -0400 > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > * Andrew Morton (akpm@linux-foundation.org) wrote: > > > > On Fri, 24 Aug 2007 18:47:07 -0400 > > > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if > > > > > you would have some ideas about what is causing this problem. I'll start > > > > > bissecting it soon. I seems to be caused by an buggy skb_put call in > > > > > kobject_uevent_env. > > > > > > > > hm, don't know, sorry. Kay fixed a few things in there, but iirc pretty > > > > much all of the fixes were in rc3-mm1 anyway. > > > > > > > > I doubt if bisection will tell us a lot: it'll probably point at > > > > gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch. > > > > > > > > What we _would_ like to know is which sysfs file is being written to. We > > > > used to have a debug patch to exactly address this problem but it got > > > > transferred into Greg's tree from whence it mysteriously disappeared. > > > > > > > > > > Ok, here it is: > > > > > > filename : > > > > > > /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev > > > > Bah. I've never found a sane way of going from a sysfs pathname back to the > > code which implements that pathname :( > > > > <greps the tree for '"rev"'> > > > > <comes up with zilch> > > It's a scsi file, as the above is a scsi device. It's created in the > drivers/scsi/scsi_sysfs.c file. > > Kay, did you miss this set of attributes somehow? We didn't really touch anything in scsi. I expect it's something messing around with the buffer values. Mathieu, does this fix it? If it does, we need to find what's going wrong, as it probably just hides a bug somewhere. Thanks, Kay --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c @@ -176,7 +176,7 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, /* allocate message with the maximum possible size */ len = strlen(action_string) + strlen(devpath) + 2; - skb = alloc_skb(len + env->buflen, GFP_KERNEL); + skb = alloc_skb(len + UEVENT_BUFFER_SIZE, GFP_KERNEL); if (skb) { char *scratch; ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-25 0:46 ` Greg KH 2007-08-25 1:26 ` Kay Sievers @ 2007-08-25 3:02 ` Mathieu Desnoyers 2007-08-25 3:44 ` Kay Sievers 2007-08-25 4:17 ` [PATCH] Fix kobject uevent string handling errors Mathieu Desnoyers 2 siblings, 1 reply; 17+ messages in thread From: Mathieu Desnoyers @ 2007-08-25 3:02 UTC (permalink / raw) To: Greg KH; +Cc: Andrew Morton, linux-kernel, Kay Sievers * Greg KH (greg@kroah.com) wrote: > On Fri, Aug 24, 2007 at 05:44:50PM -0700, Andrew Morton wrote: > > On Fri, 24 Aug 2007 20:16:38 -0400 > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > * Andrew Morton (akpm@linux-foundation.org) wrote: > > > > On Fri, 24 Aug 2007 18:47:07 -0400 > > > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > > > > > Hi Andrew, > > > > > > > > > > I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if > > > > > you would have some ideas about what is causing this problem. I'll start > > > > > bissecting it soon. I seems to be caused by an buggy skb_put call in > > > > > kobject_uevent_env. > > > > > > > > > > Thanks, > > > > > > > > > > Mathieu > > > > > > > > > > > > > > > > > > hm, don't know, sorry. Kay fixed a few things in there, but iirc pretty > > > > much all of the fixes were in rc3-mm1 anyway. > > > > > > > > I doubt if bisection will tell us a lot: it'll probably point at > > > > gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch. > > > > > > > > What we _would_ like to know is which sysfs file is being written to. We > > > > used to have a debug patch to exactly address this problem but it got > > > > transferred into Greg's tree from whence it mysteriously disappeared. > > > > > > > > > > Ok, here it is: > > > > > > filename : > > > > > > /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev > > > > Bah. I've never found a sane way of going from a sysfs pathname back to the > > code which implements that pathname :( > > > > <greps the tree for '"rev"'> > > > > <comes up with zilch> > > It's a scsi file, as the above is a scsi device. It's created in the > drivers/scsi/scsi_sysfs.c file. > > Kay, did you miss this set of attributes somehow? > > thanks, > > greg k-h Hi Greg, I think I am slowly getting there.. it looks like an off-by-one in lib/kobject_uevent.c: add_uevent_var when testing the return value of vsnprintf if (len + 1 >= (sizeof(env->buf) - env->buflen)) should be if (len >= (sizeof(env->buf) - env->buflen)) And then the problem underneath is that the array is too short for some values. Since the return value of add_uevent_var is always ignored (why?) from its callers, fixing the off-by-one will just fail silently, which is almost worse. I think we should find some better way of handling full static arrays. And the bug is still there even if I fix these. So I'll continue my investigation. Mathieu -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-25 3:02 ` Mathieu Desnoyers @ 2007-08-25 3:44 ` Kay Sievers 2007-08-25 3:52 ` Mathieu Desnoyers ` (2 more replies) 0 siblings, 3 replies; 17+ messages in thread From: Kay Sievers @ 2007-08-25 3:44 UTC (permalink / raw) To: Mathieu Desnoyers; +Cc: Greg KH, Andrew Morton, linux-kernel On Fri, 2007-08-24 at 23:02 -0400, Mathieu Desnoyers wrote: > * Greg KH (greg@kroah.com) wrote: > > On Fri, Aug 24, 2007 at 05:44:50PM -0700, Andrew Morton wrote: > > > On Fri, 24 Aug 2007 20:16:38 -0400 > > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > > > * Andrew Morton (akpm@linux-foundation.org) wrote: > > > > > On Fri, 24 Aug 2007 18:47:07 -0400 > > > > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > > > > > > > Hi Andrew, > > > > > > > > > > > > I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if > > > > > > you would have some ideas about what is causing this problem. I'll start > > > > > > bissecting it soon. I seems to be caused by an buggy skb_put call in > > > > > > kobject_uevent_env. > > > > > hm, don't know, sorry. Kay fixed a few things in there, but iirc pretty > > > > > much all of the fixes were in rc3-mm1 anyway. > > > > > > > > > > I doubt if bisection will tell us a lot: it'll probably point at > > > > > gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch. > > > > > > > > > > What we _would_ like to know is which sysfs file is being written to. We > > > > > used to have a debug patch to exactly address this problem but it got > > > > > transferred into Greg's tree from whence it mysteriously disappeared. > > > > > > > > > > > > > Ok, here it is: > > > > > > > > filename : > > > > > > > > /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev > > > > > > Bah. I've never found a sane way of going from a sysfs pathname back to the > > > code which implements that pathname :( > > > > > > <greps the tree for '"rev"'> > > > > > > <comes up with zilch> > > > > It's a scsi file, as the above is a scsi device. It's created in the > > drivers/scsi/scsi_sysfs.c file. > I think I am slowly getting there.. it looks like an off-by-one in > lib/kobject_uevent.c: add_uevent_var > > when testing the return value of vsnprintf > > if (len + 1 >= (sizeof(env->buf) - env->buflen)) > > should be > > if (len >= (sizeof(env->buf) - env->buflen)) > > And then the problem underneath is that the array is too short for some > values. That should be changed, yes. But we should not reach the end of the buffer. > Since the return value of add_uevent_var is always ignored (why?) Because nobody added these checks, most of the callers check, some don't. We should fix that step by step, sure. > from its callers, fixing the off-by-one will just fail silently, which is > almost worse. > > I think we should find some better way of handling full static arrays. > > And the bug is still there even if I fix these. So I'll continue my > investigation. Yeah, before these changes it was the environment buffer which got corrupted, but seems nobody noticed it. Now it triggers BUG() if we run into problems. This needs a fix. It may be the reason for the too small buffer, you are seeing. Thanks, Kay --- a/drivers/firmware/dmi-id.c +++ b/drivers/firmware/dmi-id.c @@ -155,6 +155,7 @@ static int dmi_dev_uevent(struct device *dev, struct kobj_uevent_env *env) sizeof(env->buf) - env->buflen); if (len >= (sizeof(env->buf) - env->buflen)) return -ENOMEM; + env->buflen += len; return 0; } ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-25 3:44 ` Kay Sievers @ 2007-08-25 3:52 ` Mathieu Desnoyers 2007-08-25 3:56 ` Mathieu Desnoyers 2007-08-25 3:58 ` Daniel Walker 2 siblings, 0 replies; 17+ messages in thread From: Mathieu Desnoyers @ 2007-08-25 3:52 UTC (permalink / raw) To: Kay Sievers; +Cc: Greg KH, Andrew Morton, linux-kernel * Kay Sievers (kay.sievers@vrfy.org) wrote: > On Fri, 2007-08-24 at 23:02 -0400, Mathieu Desnoyers wrote: > > * Greg KH (greg@kroah.com) wrote: > > > On Fri, Aug 24, 2007 at 05:44:50PM -0700, Andrew Morton wrote: > > > > On Fri, 24 Aug 2007 20:16:38 -0400 > > > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > > > > > * Andrew Morton (akpm@linux-foundation.org) wrote: > > > > > > On Fri, 24 Aug 2007 18:47:07 -0400 > > > > > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > > > > > > > > > Hi Andrew, > > > > > > > > > > > > > > I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if > > > > > > > you would have some ideas about what is causing this problem. I'll start > > > > > > > bissecting it soon. I seems to be caused by an buggy skb_put call in > > > > > > > kobject_uevent_env. > > > > > > > hm, don't know, sorry. Kay fixed a few things in there, but iirc pretty > > > > > > much all of the fixes were in rc3-mm1 anyway. > > > > > > > > > > > > I doubt if bisection will tell us a lot: it'll probably point at > > > > > > gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch. > > > > > > > > > > > > What we _would_ like to know is which sysfs file is being written to. We > > > > > > used to have a debug patch to exactly address this problem but it got > > > > > > transferred into Greg's tree from whence it mysteriously disappeared. > > > > > > > > > > > > > > > > Ok, here it is: > > > > > > > > > > filename : > > > > > > > > > > /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev > > > > > > > > Bah. I've never found a sane way of going from a sysfs pathname back to the > > > > code which implements that pathname :( > > > > > > > > <greps the tree for '"rev"'> > > > > > > > > <comes up with zilch> > > > > > > It's a scsi file, as the above is a scsi device. It's created in the > > > drivers/scsi/scsi_sysfs.c file. > > > I think I am slowly getting there.. it looks like an off-by-one in > > lib/kobject_uevent.c: add_uevent_var > > > > when testing the return value of vsnprintf > > > > if (len + 1 >= (sizeof(env->buf) - env->buflen)) > > > > should be > > > > if (len >= (sizeof(env->buf) - env->buflen)) > > > > And then the problem underneath is that the array is too short for some > > values. > > That should be changed, yes. But we should not reach the end of the > buffer. > > > Since the return value of add_uevent_var is always ignored (why?) > > Because nobody added these checks, most of the callers check, some > don't. We should fix that step by step, sure. > > > from its callers, fixing the off-by-one will just fail silently, which is > > almost worse. > > > > I think we should find some better way of handling full static arrays. > > > > And the bug is still there even if I fix these. So I'll continue my > > investigation. > > Yeah, before these changes it was the environment buffer which got > corrupted, but seems nobody noticed it. Now it triggers BUG() if we run > into problems. > > This needs a fix. It may be the reason for the too small buffer, you are > seeing. > > Thanks, > Kay > > --- a/drivers/firmware/dmi-id.c > +++ b/drivers/firmware/dmi-id.c > @@ -155,6 +155,7 @@ static int dmi_dev_uevent(struct device *dev, struct kobj_uevent_env *env) > sizeof(env->buf) - env->buflen); > if (len >= (sizeof(env->buf) - env->buflen)) > return -ENOMEM; > + env->buflen += len; > return 0; > } > > Yep, adding some printks, it points in that direction: [ 179.898618] DBG string ACTION=add [ 179.908565] put DBG 1 len 22 envlen 68 [ 179.919807] DBG string DEVPATH=/class/dmi/id [ 179.921584] DBG req size 836 [ 179.921588] DBG ali size 864 [ 179.921632] DBG req size 836 [ 179.921634] DBG ali size 864 [ 179.966998] put DBG 2 len 14 envlen 68 [ 179.978208] DBG string SUBSYSTEM=dmi [ 179.988901] put DBG 3 len 21 envlen 68 [ 180.000109] DBG string MODALIAS=dSEQNUM=971 as we can see, MODALIAS=d is clearly wrong there and should have a \0. This is why the skb_put goes over the end of the allocated skb. [ 180.012618] put DBG 4 len 11 envlen 68 [ 180.023829] DBG string SEQNUM=971 [ 180.033742] skb_over_panic: text:c0252ee8 len:97 put:11 head:c2afa200 data:c2afa200 tail:0xc2afa261 end:0xc2afa260 dev:<NULL> [ 180.067545] ------------[ cut here ]------------ [ 180.081341] Kernel BUG at c039e1bc [verbose debug info unavailable] [ 180.100069] invalid opcode: 0000 [#1] PREEMPT SMP -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-25 3:44 ` Kay Sievers 2007-08-25 3:52 ` Mathieu Desnoyers @ 2007-08-25 3:56 ` Mathieu Desnoyers 2007-08-25 3:58 ` Daniel Walker 2 siblings, 0 replies; 17+ messages in thread From: Mathieu Desnoyers @ 2007-08-25 3:56 UTC (permalink / raw) To: Kay Sievers; +Cc: Greg KH, Andrew Morton, linux-kernel * Kay Sievers (kay.sievers@vrfy.org) wrote: > On Fri, 2007-08-24 at 23:02 -0400, Mathieu Desnoyers wrote: > > * Greg KH (greg@kroah.com) wrote: > > > On Fri, Aug 24, 2007 at 05:44:50PM -0700, Andrew Morton wrote: > > > > On Fri, 24 Aug 2007 20:16:38 -0400 > > > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > > > > > * Andrew Morton (akpm@linux-foundation.org) wrote: > > > > > > On Fri, 24 Aug 2007 18:47:07 -0400 > > > > > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > > > > > > > > > Hi Andrew, > > > > > > > > > > > > > > I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if > > > > > > > you would have some ideas about what is causing this problem. I'll start > > > > > > > bissecting it soon. I seems to be caused by an buggy skb_put call in > > > > > > > kobject_uevent_env. > > > > > > > hm, don't know, sorry. Kay fixed a few things in there, but iirc pretty > > > > > > much all of the fixes were in rc3-mm1 anyway. > > > > > > > > > > > > I doubt if bisection will tell us a lot: it'll probably point at > > > > > > gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch. > > > > > > > > > > > > What we _would_ like to know is which sysfs file is being written to. We > > > > > > used to have a debug patch to exactly address this problem but it got > > > > > > transferred into Greg's tree from whence it mysteriously disappeared. > > > > > > > > > > > > > > > > Ok, here it is: > > > > > > > > > > filename : > > > > > > > > > > /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev > > > > > > > > Bah. I've never found a sane way of going from a sysfs pathname back to the > > > > code which implements that pathname :( > > > > > > > > <greps the tree for '"rev"'> > > > > > > > > <comes up with zilch> > > > > > > It's a scsi file, as the above is a scsi device. It's created in the > > > drivers/scsi/scsi_sysfs.c file. > > > I think I am slowly getting there.. it looks like an off-by-one in > > lib/kobject_uevent.c: add_uevent_var > > > > when testing the return value of vsnprintf > > > > if (len + 1 >= (sizeof(env->buf) - env->buflen)) > > > > should be > > > > if (len >= (sizeof(env->buf) - env->buflen)) > > > > And then the problem underneath is that the array is too short for some > > values. > > That should be changed, yes. But we should not reach the end of the > buffer. > > > Since the return value of add_uevent_var is always ignored (why?) > > Because nobody added these checks, most of the callers check, some > don't. We should fix that step by step, sure. > > > from its callers, fixing the off-by-one will just fail silently, which is > > almost worse. > > > > I think we should find some better way of handling full static arrays. > > > > And the bug is still there even if I fix these. So I'll continue my > > investigation. > > Yeah, before these changes it was the environment buffer which got > corrupted, but seems nobody noticed it. Now it triggers BUG() if we run > into problems. > > This needs a fix. It may be the reason for the too small buffer, you are > seeing. > > Thanks, > Kay > > --- a/drivers/firmware/dmi-id.c > +++ b/drivers/firmware/dmi-id.c > @@ -155,6 +155,7 @@ static int dmi_dev_uevent(struct device *dev, struct kobj_uevent_env *env) > sizeof(env->buf) - env->buflen); > if (len >= (sizeof(env->buf) - env->buflen)) > return -ENOMEM; > + env->buflen += len; > return 0; > } > > Here is a corrected version of the fix: =================================================================== --- linux-2.6-lttng.orig/drivers/firmware/dmi-id.c 2007-08-24 23:51:25.000000000 -0400 +++ linux-2.6-lttng/drivers/firmware/dmi-id.c 2007-08-24 23:55:22.000000000 -0400 @@ -152,9 +152,10 @@ static int dmi_dev_uevent(struct device if (add_uevent_var(env, "MODALIAS=")) return -ENOMEM; len = get_modalias(&env->buf[env->buflen - 1], - sizeof(env->buf) - env->buflen); - if (len >= (sizeof(env->buf) - env->buflen)) + sizeof(env->buf) - (env->buflen - 1)); + if (len >= (sizeof(env->buf) - (env->buflen - 1))) return -ENOMEM; + env->buflen += len + 1; return 0; } Mathieu -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-25 3:44 ` Kay Sievers 2007-08-25 3:52 ` Mathieu Desnoyers 2007-08-25 3:56 ` Mathieu Desnoyers @ 2007-08-25 3:58 ` Daniel Walker 2 siblings, 0 replies; 17+ messages in thread From: Daniel Walker @ 2007-08-25 3:58 UTC (permalink / raw) To: Kay Sievers; +Cc: Mathieu Desnoyers, Greg KH, Andrew Morton, linux-kernel On Sat, 2007-08-25 at 05:44 +0200, Kay Sievers wrote: > --- a/drivers/firmware/dmi-id.c > +++ b/drivers/firmware/dmi-id.c > @@ -155,6 +155,7 @@ static int dmi_dev_uevent(struct device *dev, struct kobj_uevent_env *env) > sizeof(env->buf) - env->buflen); > if (len >= (sizeof(env->buf) - env->buflen)) > return -ENOMEM; > + env->buflen += len; > return 0; > } > Works for me too .. Daniel ^ permalink raw reply [flat|nested] 17+ messages in thread
* [PATCH] Fix kobject uevent string handling errors 2007-08-25 0:46 ` Greg KH 2007-08-25 1:26 ` Kay Sievers 2007-08-25 3:02 ` Mathieu Desnoyers @ 2007-08-25 4:17 ` Mathieu Desnoyers 2007-08-25 4:49 ` Greg KH 2007-08-25 14:25 ` Kay Sievers 2 siblings, 2 replies; 17+ messages in thread From: Mathieu Desnoyers @ 2007-08-25 4:17 UTC (permalink / raw) To: Greg KH; +Cc: Andrew Morton, linux-kernel, Kay Sievers Fix kobject uevent string handling errors - increment env->buflen in dmi-id.c - fix off-by-one in add_uevent_var in error checking of vsnprintf - add warnings when add_uevent_var. Proper handling of its return values should really be done by the callers, but they aren't, so things currently fail silently. This is why I add warnings. Fixes the following BUG in 2.6.23-rc3-mm1: [ 23.876358] skb_over_panic: text:c0252e5b len:97 put:11 head:c2b54400 data:c2b54400 tail:0xc2b54461 end:0xc2b54460 dev:<NULL> [ 23.910278] ------------[ cut here ]------------ [ 23.924080] Kernel BUG at c039e12c [verbose debug info unavailable] [ 23.942809] invalid opcode: 0000 [#1] PREEMPT SMP [ 23.957213] last sysfs file: /devices/pci0000:00/0000:00:1f.1/ide0/0.0/media [ 23.978275] Modules linked in: [ 23.987429] [ 23.991884] Pid: 1038, comm: udevtrigger Not tainted (2.6.23-rc3-mm1-testssmp #286) [ 24.014773] EIP: 0060:[<c039e12c>] EFLAGS: 00010286 CPU: 0 [ 24.031168] EIP is at skb_over_panic+0x5c/0x60 [ 24.044444] EAX: 00000084 EBX: c2b54400 ECX: 00000001 EDX: 00000000 [ 24.063171] ESI: 00000000 EDI: c2b54456 EBP: c2b67eb4 ESP: c2b67e88 [ 24.081895] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 [ 24.098027] Process udevtrigger (pid: 1038, ti=c2b66000 task=c2b08030 task.ti=c2b66000) [ 24.121423] Stack: c050110c c0252e5b 00000061 0000000b c2b54400 c2b54400 c2b54461 c2b54460 [ 24.146658] c04d21e0 c2ad8e80 00000005 c2b67efc c0252e60 c2b54400 c04d2183 c04ce0e4 [ 24.171897] c2f60c40 00000000 c04ce0e4 c2f60c40 c04e2ecb c05401e0 c2f58000 c2b67f04 [ 24.197135] Call Trace: [ 24.205001] [<c010971a>] show_trace_log_lvl+0x1a/0x30 [ 24.220388] [<c01097d8>] show_stack_log_lvl+0xa8/0xe0 [ 24.235772] [<c01098da>] show_registers+0xca/0x250 [ 24.250378] [<c0109b75>] die+0x115/0x280 [ 24.262389] [<c04187d1>] do_trap+0x91/0xc0 [ 24.274919] [<c0109fc9>] do_invalid_op+0x89/0xa0 [ 24.289004] [<c041858a>] error_code+0x72/0x78 [ 24.302313] [<c0252e60>] kobject_uevent_env+0x370/0x390 [ 24.318217] [<c0252e8a>] kobject_uevent+0xa/0x10 [ 24.332303] [<c02c524b>] store_uevent+0x2b/0x70 [ 24.346130] [<c02c4f6f>] dev_attr_store+0x2f/0x40 [ 24.360476] [<c01cd080>] sysfs_write_file+0xa0/0x100 [ 24.375602] [<c018cb89>] vfs_write+0x99/0x130 [ 24.388910] [<c018d26d>] sys_write+0x3d/0x70 [ 24.401958] [<c0108596>] syscall_call+0x7/0xb [ 24.415265] ======================= [ 24.425947] INFO: lockdep is turned off. [ 24.437665] Code: 00 00 89 5c 24 14 8b 98 8c 00 00 00 89 54 24 0c 89 5c 24 10 8b 40 50 89 4c 24 04 c7 04 24 0c 11 50 c0 89 44 24 08 e8 84 20 d9 ff <0f> 0b eb fe 55 89 e5 56 89 d6 53 89 c3 83 ec 0c 8b 40 50 39 [ 24.496006] EIP: [<c039e12c>] skb_over_panic+0x5c/0x60 SS:ESP 0068:c2b67e88 Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> --- drivers/firmware/dmi-id.c | 5 +++-- lib/kobject_uevent.c | 12 ++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) Index: linux-2.6-lttng/lib/kobject_uevent.c =================================================================== --- linux-2.6-lttng.orig/lib/kobject_uevent.c 2007-08-25 00:07:41.000000000 -0400 +++ linux-2.6-lttng/lib/kobject_uevent.c 2007-08-25 00:12:23.000000000 -0400 @@ -247,8 +247,12 @@ int add_uevent_var(struct kobj_uevent_en va_list args; int len; - if (env->envp_idx >= ARRAY_SIZE(env->envp)) + if (env->envp_idx >= ARRAY_SIZE(env->envp)) { + printk("add_uevent_var: too small array size %u %u\n", + env->envp_idx, ARRAY_SIZE(env->envp)); + WARN_ON(1); return -ENOMEM; + } va_start(args, format); len = vsnprintf(&env->buf[env->buflen], @@ -256,8 +260,12 @@ int add_uevent_var(struct kobj_uevent_en format, args); va_end(args); - if (len + 1 >= (sizeof(env->buf) - env->buflen)) + if (len >= (sizeof(env->buf) - env->buflen)) { + printk("add_uevent_var: failed vsnprintf %d %u\n", + len, (sizeof(env->buf) - env->buflen)); + WARN_ON(1); return -ENOMEM; + } env->envp[env->envp_idx++] = &env->buf[env->buflen]; env->buflen += len + 1; Index: linux-2.6-lttng/drivers/firmware/dmi-id.c =================================================================== --- linux-2.6-lttng.orig/drivers/firmware/dmi-id.c 2007-08-25 00:07:24.000000000 -0400 +++ linux-2.6-lttng/drivers/firmware/dmi-id.c 2007-08-25 00:07:58.000000000 -0400 @@ -152,9 +152,10 @@ static int dmi_dev_uevent(struct device if (add_uevent_var(env, "MODALIAS=")) return -ENOMEM; len = get_modalias(&env->buf[env->buflen - 1], - sizeof(env->buf) - env->buflen); - if (len >= (sizeof(env->buf) - env->buflen)) + sizeof(env->buf) - (env->buflen - 1)); + if (len >= (sizeof(env->buf) - (env->buflen - 1))) return -ENOMEM; + env->buflen += len + 1; return 0; } -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] Fix kobject uevent string handling errors 2007-08-25 4:17 ` [PATCH] Fix kobject uevent string handling errors Mathieu Desnoyers @ 2007-08-25 4:49 ` Greg KH 2007-08-25 14:25 ` Kay Sievers 1 sibling, 0 replies; 17+ messages in thread From: Greg KH @ 2007-08-25 4:49 UTC (permalink / raw) To: Mathieu Desnoyers; +Cc: Andrew Morton, linux-kernel, Kay Sievers On Sat, Aug 25, 2007 at 12:17:54AM -0400, Mathieu Desnoyers wrote: > Fix kobject uevent string handling errors > > - increment env->buflen in dmi-id.c > - fix off-by-one in add_uevent_var in error checking of vsnprintf > - add warnings when add_uevent_var. Proper handling of its return values should > really be done by the callers, but they aren't, so things currently > fail silently. This is why I add warnings. Ah, thanks, but Kay just sent me an updated version with portions of this fix in it already. Thanks a lot for helping us track this all down, hopefully the scsi layer isn't still overflowing the buffer :( > - if (env->envp_idx >= ARRAY_SIZE(env->envp)) > + if (env->envp_idx >= ARRAY_SIZE(env->envp)) { > + printk("add_uevent_var: too small array size %u %u\n", > + env->envp_idx, ARRAY_SIZE(env->envp)); > + WARN_ON(1); printk's always need a KERN_level. thanks, greg k-h ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] Fix kobject uevent string handling errors 2007-08-25 4:17 ` [PATCH] Fix kobject uevent string handling errors Mathieu Desnoyers 2007-08-25 4:49 ` Greg KH @ 2007-08-25 14:25 ` Kay Sievers 2007-08-25 18:38 ` Mathieu Desnoyers 1 sibling, 1 reply; 17+ messages in thread From: Kay Sievers @ 2007-08-25 14:25 UTC (permalink / raw) To: Mathieu Desnoyers; +Cc: Greg KH, Andrew Morton, linux-kernel [-- Attachment #1: Type: text/plain, Size: 2757 bytes --] On Sat, 2007-08-25 at 00:17 -0400, Mathieu Desnoyers wrote: > Fix kobject uevent string handling errors > - add warnings when add_uevent_var. Proper handling of its return values should > really be done by the callers, but they aren't, so things currently > fail silently. Right, I added the checks to kobject_uevent.c now. There are still checks missing in: arch/powerpc/kernel/vio.c block/genhd.c drivers/base/class.c drivers/base/core.c drivers/base/platform.c drivers/eisa/eisa-bus.c drivers/ide/ide.c drivers/scsi/scsi_sysfs.c drivers/spi/spi.c We should fix them with a separate patch, and mark add_uevent_var() as __must_check. > --- linux-2.6-lttng.orig/lib/kobject_uevent.c 2007-08-25 00:07:41.000000000 -0400 > +++ linux-2.6-lttng/lib/kobject_uevent.c 2007-08-25 00:12:23.000000000 -0400 > @@ -247,8 +247,12 @@ int add_uevent_var(struct kobj_uevent_en > va_list args; > int len; > > - if (env->envp_idx >= ARRAY_SIZE(env->envp)) > + if (env->envp_idx >= ARRAY_SIZE(env->envp)) { > + printk("add_uevent_var: too small array size %u %u\n", > + env->envp_idx, ARRAY_SIZE(env->envp)); > + WARN_ON(1); > return -ENOMEM; > + } I added a warning to the patch. > va_start(args, format); > len = vsnprintf(&env->buf[env->buflen], > @@ -256,8 +260,12 @@ int add_uevent_var(struct kobj_uevent_en > format, args); > va_end(args); > > - if (len + 1 >= (sizeof(env->buf) - env->buflen)) > + if (len >= (sizeof(env->buf) - env->buflen)) { This is already in Greg's tree. > + printk("add_uevent_var: failed vsnprintf %d %u\n", > + len, (sizeof(env->buf) - env->buflen)); > + WARN_ON(1); > return -ENOMEM; > + } I added a warning to the patch. > env->envp[env->envp_idx++] = &env->buf[env->buflen]; > env->buflen += len + 1; > Index: linux-2.6-lttng/drivers/firmware/dmi-id.c > =================================================================== > --- linux-2.6-lttng.orig/drivers/firmware/dmi-id.c 2007-08-25 00:07:24.000000000 -0400 > +++ linux-2.6-lttng/drivers/firmware/dmi-id.c 2007-08-25 00:07:58.000000000 -0400 > @@ -152,9 +152,10 @@ static int dmi_dev_uevent(struct device > if (add_uevent_var(env, "MODALIAS=")) > return -ENOMEM; > len = get_modalias(&env->buf[env->buflen - 1], > - sizeof(env->buf) - env->buflen); > - if (len >= (sizeof(env->buf) - env->buflen)) > + sizeof(env->buf) - (env->buflen - 1)); > + if (len >= (sizeof(env->buf) - (env->buflen - 1))) > return -ENOMEM; > + env->buflen += len + 1; The increment for the trailing '\0' is already done in add_uevent_var(), so this change is not needed, I think. Greg, the attached file replaces the one in your patch tree. It contains the printk warning and a few checks for return values. Thanks, Kay [-- Attachment #2: driver-core-change-add_uevent_var-to-use-a-struct.patch --] [-- Type: application/mbox, Size: 68677 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [PATCH] Fix kobject uevent string handling errors 2007-08-25 14:25 ` Kay Sievers @ 2007-08-25 18:38 ` Mathieu Desnoyers 0 siblings, 0 replies; 17+ messages in thread From: Mathieu Desnoyers @ 2007-08-25 18:38 UTC (permalink / raw) To: Kay Sievers; +Cc: Greg KH, Andrew Morton, linux-kernel * Kay Sievers (kay.sievers@vrfy.org) wrote: > env->envp[env->envp_idx++] = &env->buf[env->buflen]; > > env->buflen += len + 1; > > Index: linux-2.6-lttng/drivers/firmware/dmi-id.c > > =================================================================== > > --- linux-2.6-lttng.orig/drivers/firmware/dmi-id.c 2007-08-25 00:07:24.000000000 -0400 > > +++ linux-2.6-lttng/drivers/firmware/dmi-id.c 2007-08-25 00:07:58.000000000 -0400 > > @@ -152,9 +152,10 @@ static int dmi_dev_uevent(struct device > > if (add_uevent_var(env, "MODALIAS=")) > > return -ENOMEM; > > len = get_modalias(&env->buf[env->buflen - 1], > > - sizeof(env->buf) - env->buflen); > > - if (len >= (sizeof(env->buf) - env->buflen)) > > + sizeof(env->buf) - (env->buflen - 1)); > > + if (len >= (sizeof(env->buf) - (env->buflen - 1))) > > return -ENOMEM; > > + env->buflen += len + 1; > > The increment for the trailing '\0' is already done in add_uevent_var(), > so this change is not needed, I think. Oh, you are right, since we replace the existing \0 which is already accounted for, we don't have to do len +1 here. Thanks, Mathieu -- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: kernel BUG with 2.6.23-rc3-mm1: skb_over_panic 2007-08-25 0:44 ` Andrew Morton 2007-08-25 0:46 ` Greg KH @ 2007-08-25 1:59 ` Randy Dunlap 1 sibling, 0 replies; 17+ messages in thread From: Randy Dunlap @ 2007-08-25 1:59 UTC (permalink / raw) To: Andrew Morton; +Cc: Mathieu Desnoyers, linux-kernel, Kay Sievers, Greg KH On Fri, 24 Aug 2007 17:44:50 -0700 Andrew Morton wrote: > On Fri, 24 Aug 2007 20:16:38 -0400 > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > * Andrew Morton (akpm@linux-foundation.org) wrote: > > > On Fri, 24 Aug 2007 18:47:07 -0400 > > > Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote: > > > > > > > Hi Andrew, > > > > > > > > I get the following BUG when booting 2.6.23-rc3-mm1 on i386. I wonder if > > > > you would have some ideas about what is causing this problem. I'll start > > > > bissecting it soon. I seems to be caused by an buggy skb_put call in > > > > kobject_uevent_env. > > > > > > > > Thanks, > > > > > > > > Mathieu > > > > > > > > > > > > > > hm, don't know, sorry. Kay fixed a few things in there, but iirc pretty > > > much all of the fixes were in rc3-mm1 anyway. > > > > > > I doubt if bisection will tell us a lot: it'll probably point at > > > gregkh-driver-driver-core-change-add_uevent_var-to-use-a-struct.patch. > > > > > > What we _would_ like to know is which sysfs file is being written to. We > > > used to have a debug patch to exactly address this problem but it got > > > transferred into Greg's tree from whence it mysteriously disappeared. > > > > > > > Ok, here it is: > > > > filename : > > > > /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev > > Bah. I've never found a sane way of going from a sysfs pathname back to the > code which implements that pathname :( > > <greps the tree for '"rev"'> Yeah, those sysfs attrib macros are not helpful when grepping. drivers/scsi/scsi_sysfs.c, #444: sdev_rd_attr (rev, "%.4s\n"); > <comes up with zilch> > > > [ 13.737735] ------------[ cut here ]------------ > > [ 13.751544] Kernel BUG at c039e11c [verbose debug info unavailable] > > [ 13.770287] invalid opcode: 0000 [#1] PREEMPT SMP > > [ 13.784736] last sysfs file: /devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/rev > > [ 13.809714] Modules linked in: > > [ 13.818873] > > [ 13.823330] Pid: 1038, comm: udevtrigger Not tainted (2.6.23-rc3-mm1-testssmp #283) > > [ 13.846218] EIP: 0060:[<c039e11c>] EFLAGS: 00010286 CPU: 1 > > [ 13.862616] EIP is at skb_over_panic+0x5c/0x60 > > [ 13.875894] EAX: 00000084 EBX: c2227e00 ECX: 10000000 EDX: 00000000 > > [ 13.894632] ESI: 00000000 EDI: c2227e56 EBP: c2ea9eb4 ESP: c2ea9e88 > > [ 13.913372] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > > [ 13.929516] Process udevtrigger (pid: 1038, ti=c2ea8000 task=c2baa070 task.ti=c2ea8000) > > [ 13.952918] Stack: c05010f0 c0252e3e 00000061 0000000b c2227e00 c2227e00 c2227e61 c2227e60 > > [ 13.978200] c04d21c5 c2287c80 00000005 c2ea9efc c0252e43 c2227e00 c04d2168 c04ce0e4 > > [ 14.003471] c20fc2a0 00000000 c04ce0e4 c20fc2a0 c04e2eaf c05401e0 c225a000 c2ea9f04 > > [ 14.028749] Call Trace: > > [ 14.036622] [<c010971a>] show_trace_log_lvl+0x1a/0x30 > > [ 14.052019] [<c01097d8>] show_stack_log_lvl+0xa8/0xe0 > > [ 14.067412] [<c01098da>] show_registers+0xca/0x250 > > [ 14.082028] [<c0109b75>] die+0x115/0x280 > > [ 14.094047] [<c04187c1>] do_trap+0x91/0xc0 > > [ 14.106586] [<c0109fc9>] do_invalid_op+0x89/0xa0 > > [ 14.120680] [<c041857a>] error_code+0x72/0x78 > > [ 14.134002] [<c0252e43>] kobject_uevent_env+0x353/0x380 > > [ 14.149915] [<c0252e7a>] kobject_uevent+0xa/0x10 > > [ 14.164012] [<c02c523b>] store_uevent+0x2b/0x70 > > [ 14.177851] [<c02c4f5f>] dev_attr_store+0x2f/0x40 > > [ 14.192207] [<c01cd080>] sysfs_write_file+0xa0/0x100 > > [ 14.207344] [<c018cb89>] vfs_write+0x99/0x130 > > [ 14.220661] [<c018d26d>] sys_write+0x3d/0x70 > > [ 14.233720] [<c0108596>] syscall_call+0x7/0xb > > [ 14.247036] ======================= > > [ 14.257723] INFO: lockdep is turned off. > > [ 14.269448] Code: 00 00 89 5c 24 14 8b 98 8c 00 00 00 89 54 24 0c 89 5c 24 10 8b 40 50 89 4c 24 04 c7 04 24 f0 10 50 c0 89 44 24 08 e8 94 20 d9 ff <0f> 0b eb fe 55 89 e5 56 89 d6 53 89 c3 83 ec 0c 8b 40 50 39 > > [ 14.328022] EIP: [<c039e11c>] skb_over_panic+0x5c/0x60 SS:ESP 0068:c2ea9e88 > > /etc/rcS.d/S03udev: line 253: 1038 Segmentation fault udevtrigger > > I think I'll sit back and watch Greg and Kay solve this one ;) --- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2007-08-25 18:38 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-08-24 22:47 kernel BUG with 2.6.23-rc3-mm1: skb_over_panic Mathieu Desnoyers 2007-08-24 23:10 ` Andrew Morton 2007-08-24 23:46 ` Greg KH 2007-08-25 0:16 ` Mathieu Desnoyers 2007-08-25 0:44 ` Andrew Morton 2007-08-25 0:46 ` Greg KH 2007-08-25 1:26 ` Kay Sievers 2007-08-25 3:02 ` Mathieu Desnoyers 2007-08-25 3:44 ` Kay Sievers 2007-08-25 3:52 ` Mathieu Desnoyers 2007-08-25 3:56 ` Mathieu Desnoyers 2007-08-25 3:58 ` Daniel Walker 2007-08-25 4:17 ` [PATCH] Fix kobject uevent string handling errors Mathieu Desnoyers 2007-08-25 4:49 ` Greg KH 2007-08-25 14:25 ` Kay Sievers 2007-08-25 18:38 ` Mathieu Desnoyers 2007-08-25 1:59 ` kernel BUG with 2.6.23-rc3-mm1: skb_over_panic Randy Dunlap
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox