* Linux 2.6.24-rc5 x86 architecture no longer Oopses... @ 2007-12-20 22:40 Trond Myklebust 2007-12-20 22:54 ` Andrew Morton 0 siblings, 1 reply; 19+ messages in thread From: Trond Myklebust @ 2007-12-20 22:40 UTC (permalink / raw) To: Andrew Morton, tglx, mingo, hpa; +Cc: linux-kernel [-- Attachment #1: Type: text/plain, Size: 1563 bytes --] I just got the following interesting behaviour. Never mind why the original Oops (I was testing some experimental RPC patches), but there appears to be a BUG_ON() triggered inside the dump() call. Oops occurred with a build based on this afternoon's git tree from Linus (v2.6.24-rc5-317-gfaa4877)... Cheers Trond --------- BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000 printing eip: f8bcc8b3 *pde = 00000000 BUG: using smp_processor_id() in preemptible [00000001] code: mount.nfs4/2970 caller is die+0x59/0x202 Pid: 2970, comm: mount.nfs4 Not tainted 2.6.24-rc5-ga747a088 #1 [<c0405170>] show_trace_log_lvl+0x1a/0x2f [<c0405a76>] show_trace+0x12/0x14 [<c0405dc6>] dump_stack+0x6c/0x72 [<c04e4cd8>] debug_smp_processor_id+0xa0/0xb4 [<c0405462>] die+0x59/0x202 [<c05b3e7d>] do_page_fault+0x557/0x63e [<c05b252a>] error_code+0x72/0x78 [<f8bd821c>] rpcb_create+0x7c/0x84 [sunrpc] [<f8bd8552>] rpcb_register+0x127/0x18c [sunrpc] [<f8bd31d2>] svc_register+0xcf/0x14c [sunrpc] [<f8bd399f>] __svc_create+0x19a/0x1b3 [sunrpc] [<f8bd3b21>] svc_create+0x13/0x15 [sunrpc] [<f8c74beb>] nfs_callback_up+0x71/0x126 [nfs] [<f8c53cfe>] nfs_get_client+0x14e/0x3a2 [nfs] [<f8c53f88>] nfs4_set_client+0x36/0x14f [nfs] [<f8c54739>] nfs4_create_server+0x8e/0x36c [nfs] [<f8c5c6f1>] nfs4_get_sb+0x2ef/0x3f3 [nfs] [<c0477e40>] vfs_kern_mount+0x7d/0xf1 [<c0477f02>] do_kern_mount+0x37/0xbd [<c048a6fb>] do_mount+0x5c3/0x61d [<c048a7c4>] sys_mount+0x6f/0xa9 [<c04040b2>] sysenter_past_esp+0x5f/0xa5 ======================= [-- Attachment #2: config_longyearbyen --] [-- Type: text/plain, Size: 60702 bytes --] # # Automatically generated make config: don't edit # Linux kernel version: 2.6.24-rc5 # Thu Dec 20 16:16:24 2007 # # CONFIG_64BIT is not set CONFIG_X86_32=y # CONFIG_X86_64 is not set CONFIG_X86=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_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_RWSEM_GENERIC_SPINLOCK is not set 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_GENERIC_TIME_VSYSCALL is not set CONFIG_ARCH_SUPPORTS_OPROFILE=y # CONFIG_ZONE_DMA32 is not set CONFIG_ARCH_POPULATES_NODE_MAP=y # CONFIG_AUDIT_ARCH is not set 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 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="" CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y # CONFIG_TASKSTATS is not set # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set CONFIG_AUDIT=y # CONFIG_AUDITSYSCALL is not set CONFIG_IKCONFIG=m CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=16 # CONFIG_CGROUPS is not set CONFIG_FAIR_GROUP_SCHED=y CONFIG_FAIR_USER_SCHED=y # CONFIG_FAIR_CGROUP_SCHED is not set CONFIG_SYSFS_DEPRECATED=y CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y # CONFIG_EMBEDDED is not set 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_EVENTFD=y CONFIG_SHMEM=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set 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=y CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_KMOD=y CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBD=y # CONFIG_BLK_DEV_IO_TRACE is not set 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 is not set # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" # # Processor type and features # CONFIG_TICK_ONESHOT=y # CONFIG_NO_HZ is not set CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 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_X86_VSMP is not set CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y # CONFIG_PARAVIRT_GUEST is not set # CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set # CONFIG_M586TSC is not set # CONFIG_M586MMX is not set # CONFIG_M686 is not set # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set # CONFIG_MPENTIUMM is not set CONFIG_MPENTIUM4=y # 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_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_GENERIC_CPU is not set # CONFIG_X86_GENERIC is not set CONFIG_X86_CMPXCHG=y CONFIG_X86_L1_CACHE_SHIFT=7 CONFIG_X86_XADD=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y CONFIG_X86_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=y CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y # CONFIG_SCHED_MC is not set # 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=m CONFIG_X86_MCE_P4THERMAL=y CONFIG_VM86=y # CONFIG_TOSHIBA is not set # CONFIG_I8K is not set # CONFIG_X86_REBOOTFIXUPS is not set CONFIG_MICROCODE=m CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=m CONFIG_X86_CPUID=m # CONFIG_NOHIGHMEM is not set CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G 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_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=y CONFIG_IRQBALANCE=y CONFIG_BOOT_IOREMAP=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=y CONFIG_PHYSICAL_START=0x400000 CONFIG_RELOCATABLE=y CONFIG_PHYSICAL_ALIGN=0x400000 CONFIG_HOTPLUG_CPU=y CONFIG_COMPAT_VDSO=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management options # 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=y CONFIG_PM_STD_PARTITION="" CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_PROCFS=y CONFIG_ACPI_PROCFS_POWER=y CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m CONFIG_ACPI_BUTTON=m CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=m CONFIG_ACPI_DOCK=m CONFIG_ACPI_BAY=m CONFIG_ACPI_PROCESSOR=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_THERMAL=m # CONFIG_ACPI_ASUS is not set # CONFIG_ACPI_TOSHIBA is not set CONFIG_ACPI_BLACKLIST_YEAR=2000 CONFIG_ACPI_DEBUG=y # CONFIG_ACPI_DEBUG_FUNC_TRACE is not set CONFIG_ACPI_EC=y CONFIG_ACPI_POWER=y CONFIG_ACPI_SYSTEM=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m CONFIG_ACPI_SBS=m CONFIG_APM=m # CONFIG_APM_IGNORE_USER_SUSPEND is not set # CONFIG_APM_DO_ENABLE is not set # CONFIG_APM_CPU_IDLE is not set # CONFIG_APM_DISPLAY_BLANK is not set # CONFIG_APM_ALLOW_INTS is not set # CONFIG_APM_REAL_MODE_POWER_OFF is not set # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_DEBUG=y CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=m CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m # # CPUFreq processor drivers # CONFIG_X86_ACPI_CPUFREQ=m # CONFIG_X86_POWERNOW_K6 is not set # CONFIG_X86_POWERNOW_K7 is not set # CONFIG_X86_POWERNOW_K8 is not set # CONFIG_X86_GX_SUSPMOD is not set CONFIG_X86_SPEEDSTEP_CENTRINO=m CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y CONFIG_X86_SPEEDSTEP_ICH=m CONFIG_X86_SPEEDSTEP_SMI=m CONFIG_X86_P4_CLOCKMOD=m # CONFIG_X86_CPUFREQ_NFORCE2 is not set # CONFIG_X86_LONGRUN is not set # CONFIG_X86_LONGHAUL is not set # CONFIG_X86_E_POWERSAVER is not set # # shared options # # CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set CONFIG_X86_SPEEDSTEP_LIB=m CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y # CONFIG_CPU_IDLE is not set # # Bus options (PCI etc.) # CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y # CONFIG_PCIEPORTBUS is not set CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y CONFIG_PCI_LEGACY=y # 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=m CONFIG_HOTPLUG_PCI_FAKE=m CONFIG_HOTPLUG_PCI_COMPAQ=m CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y CONFIG_HOTPLUG_PCI_IBM=m CONFIG_HOTPLUG_PCI_ACPI=m CONFIG_HOTPLUG_PCI_ACPI_IBM=m CONFIG_HOTPLUG_PCI_CPCI=y CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m CONFIG_HOTPLUG_PCI_SHPC=m # # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y CONFIG_BINFMT_AOUT=m CONFIG_BINFMT_MISC=m # # Networking # CONFIG_NET=y # # Networking options # CONFIG_PACKET=y CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m CONFIG_XFRM_SUB_POLICY=y CONFIG_XFRM_MIGRATE=y CONFIG_NET_KEY=m CONFIG_NET_KEY_MIGRATE=y 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=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y # CONFIG_IP_MROUTE is not set # CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=y CONFIG_TCP_CONG_CUBIC=m CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m CONFIG_TCP_CONG_HYBLA=m CONFIG_TCP_CONG_VEGAS=m CONFIG_TCP_CONG_SCALABLE=m CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m CONFIG_DEFAULT_BIC=y # CONFIG_DEFAULT_CUBIC is not set # CONFIG_DEFAULT_HTCP is not set # CONFIG_DEFAULT_VEGAS is not set # CONFIG_DEFAULT_WESTWOOD is not set # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="bic" # CONFIG_TCP_MD5SIG is not set # CONFIG_IP_VS is not set CONFIG_IPV6=m CONFIG_IPV6_PRIVACY=y # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m CONFIG_IPV6_TUNNEL=m # CONFIG_IPV6_MULTIPLE_TABLES is not set # CONFIG_NETLABEL is not set CONFIG_NETWORK_SECMARK=y CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_BRIDGE_NETFILTER=y # # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK_ENABLED=m CONFIG_NF_CONNTRACK=m CONFIG_NF_CT_ACCT=y CONFIG_NF_CONNTRACK_MARK=y # CONFIG_NF_CONNTRACK_SECMARK is not set # CONFIG_NF_CONNTRACK_EVENTS is not set CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m CONFIG_NF_CT_PROTO_UDPLITE=m CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_XTABLES=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_SCTP=m CONFIG_NETFILTER_XT_MATCH_STATE=m CONFIG_NETFILTER_XT_MATCH_STATISTIC=m CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m # # IP: Netfilter Configuration # CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y # CONFIG_IP_NF_QUEUE is not set CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_IPRANGE=m CONFIG_IP_NF_MATCH_TOS=m CONFIG_IP_NF_MATCH_RECENT=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_MATCH_OWNER=m CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_SAME=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_TOS=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m # CONFIG_IP_NF_TARGET_CLUSTERIP is not set CONFIG_IP_NF_RAW=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m # # IPv6: Netfilter Configuration (EXPERIMENTAL) # CONFIG_NF_CONNTRACK_IPV6=m # CONFIG_IP6_NF_QUEUE is not set CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_FRAG=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_OWNER=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_RAW=m # # Bridge: Netfilter Configuration # CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m CONFIG_BRIDGE_EBT_T_NAT=m CONFIG_BRIDGE_EBT_802_3=m CONFIG_BRIDGE_EBT_AMONG=m CONFIG_BRIDGE_EBT_ARP=m CONFIG_BRIDGE_EBT_IP=m CONFIG_BRIDGE_EBT_LIMIT=m CONFIG_BRIDGE_EBT_MARK=m CONFIG_BRIDGE_EBT_PKTTYPE=m CONFIG_BRIDGE_EBT_STP=m CONFIG_BRIDGE_EBT_VLAN=m CONFIG_BRIDGE_EBT_ARPREPLY=m CONFIG_BRIDGE_EBT_DNAT=m CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m # CONFIG_BRIDGE_EBT_ULOG 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=m CONFIG_VLAN_8021Q=m # CONFIG_DECNET is not set CONFIG_LLC=m CONFIG_LLC2=m # 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 CONFIG_NET_SCHED=y # # Queueing/Scheduling # CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_HTB=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_RR=m CONFIG_NET_SCH_RED=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_INGRESS=m # # Classification # CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m # CONFIG_NET_ACT_SIMP is not set # CONFIG_NET_CLS_POLICE is not set CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_NET_TCPPROBE is not set # CONFIG_HAMRADIO is not set CONFIG_IRDA=m # # IrDA protocols # CONFIG_IRLAN=m CONFIG_IRNET=m CONFIG_IRCOMM=m CONFIG_IRDA_ULTRA=y # # IrDA options # CONFIG_IRDA_CACHE_LAST_LSAP=y CONFIG_IRDA_FAST_RR=y # CONFIG_IRDA_DEBUG is not set # # Infrared-port device drivers # # # SIR device drivers # CONFIG_IRTTY_SIR=m # # Dongle support # CONFIG_DONGLE=y CONFIG_ESI_DONGLE=m CONFIG_ACTISYS_DONGLE=m CONFIG_TEKRAM_DONGLE=m CONFIG_TOIM3232_DONGLE=m CONFIG_LITELINK_DONGLE=m CONFIG_MA600_DONGLE=m CONFIG_GIRBIL_DONGLE=m CONFIG_MCP2120_DONGLE=m CONFIG_OLD_BELKIN_DONGLE=m CONFIG_ACT200L_DONGLE=m CONFIG_KINGSUN_DONGLE=m CONFIG_KSDAZZLE_DONGLE=m CONFIG_KS959_DONGLE=m # # Old SIR device drivers # # # Old Serial dongle support # # # FIR device drivers # CONFIG_USB_IRDA=m CONFIG_SIGMATEL_FIR=m # CONFIG_NSC_FIR is not set # CONFIG_WINBOND_FIR is not set CONFIG_TOSHIBA_FIR=m # CONFIG_SMC_IRCC_FIR is not set # CONFIG_ALI_FIR is not set CONFIG_VLSI_FIR=m # CONFIG_VIA_FIR is not set CONFIG_MCS_FIR=m CONFIG_BT=m CONFIG_BT_L2CAP=m CONFIG_BT_SCO=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_HIDP=m # # Bluetooth device drivers # CONFIG_BT_HCIUSB=m CONFIG_BT_HCIUSB_SCO=y CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m CONFIG_BT_HCIVHCI=m # CONFIG_AF_RXRPC is not set # # Wireless # CONFIG_CFG80211=m CONFIG_NL80211=y CONFIG_WIRELESS_EXT=y CONFIG_MAC80211=m CONFIG_MAC80211_RCSIMPLE=y # CONFIG_MAC80211_DEBUGFS is not set # CONFIG_MAC80211_DEBUG is not set CONFIG_IEEE80211=m # CONFIG_IEEE80211_DEBUG is not set CONFIG_IEEE80211_CRYPT_WEP=m CONFIG_IEEE80211_CRYPT_CCMP=m CONFIG_IEEE80211_CRYPT_TKIP=m CONFIG_IEEE80211_SOFTMAC=m # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set CONFIG_RFKILL=m CONFIG_RFKILL_INPUT=m # CONFIG_NET_9P is not set # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_STANDALONE=y # CONFIG_PREVENT_FIRMWARE_BUILD is not set CONFIG_FW_LOADER=m # CONFIG_DEBUG_DRIVER is not set CONFIG_DEBUG_DEVRES=y # CONFIG_SYS_HYPERVISOR is not set CONFIG_CONNECTOR=m # CONFIG_MTD is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m # 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=y CONFIG_PARPORT_NOT_PC=y 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=m # 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=m CONFIG_BLK_DEV_NBD=m # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 CONFIG_BLK_DEV_RAM_BLOCKSIZE=4096 CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set # CONFIG_ATA_OVER_ETH is not set # CONFIG_MISC_DEVICES is not set CONFIG_EEPROM_93CX6=m CONFIG_IDE=m CONFIG_BLK_DEV_IDE=m # # 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=m # CONFIG_IDEDISK_MULTI_MODE is not set CONFIG_BLK_DEV_IDECD=m # CONFIG_BLK_DEV_IDETAPE is not set CONFIG_BLK_DEV_IDEFLOPPY=m # CONFIG_BLK_DEV_IDESCSI is not set CONFIG_BLK_DEV_IDEACPI=y # CONFIG_IDE_TASK_IOCTL is not set CONFIG_IDE_PROC_FS=y # # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=m CONFIG_BLK_DEV_PLATFORM=m # 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 is not set # CONFIG_BLK_DEV_OFFBOARD is not set CONFIG_BLK_DEV_GENERIC=m # CONFIG_BLK_DEV_OPTI621 is not set # CONFIG_BLK_DEV_RZ1000 is not set 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 is not set # 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=m # 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_IDE_ARCH_OBSOLETE_INIT=y # CONFIG_BLK_DEV_HD is not set # # SCSI device support # CONFIG_RAID_ATTRS=m CONFIG_SCSI=m CONFIG_SCSI_DMA=y CONFIG_SCSI_TGT=m # CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=m # CONFIG_CHR_DEV_ST is not set # CONFIG_CHR_DEV_OSST is not set CONFIG_BLK_DEV_SR=m CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=m CONFIG_CHR_DEV_SCH=m # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y # CONFIG_SCSI_SCAN_ASYNC is not set CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m # CONFIG_SCSI_FC_ATTRS is not set CONFIG_SCSI_ISCSI_ATTRS=m # CONFIG_SCSI_SAS_LIBSAS is not set # CONFIG_SCSI_SRP_ATTRS is not set CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m # 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=m CONFIG_SCSI_AIC7XXX=m CONFIG_AIC7XXX_CMDS_PER_DEVICE=4 CONFIG_AIC7XXX_RESET_DELAY_MS=15000 # CONFIG_AIC7XXX_BUILD_FIRMWARE is not set # CONFIG_AIC7XXX_DEBUG_ENABLE is not set CONFIG_AIC7XXX_DEBUG_MASK=0 # CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set CONFIG_SCSI_AIC7XXX_OLD=m # CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_AIC94XX is not set # CONFIG_SCSI_DPT_I2O is not set # 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_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 is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_RAID5_RESHAPE=y CONFIG_MD_MULTIPATH=m CONFIG_MD_FAULTY=m CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_MIRROR=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_EMC=m CONFIG_DM_MULTIPATH_RDAC=m CONFIG_DM_MULTIPATH_HP=m CONFIG_DM_DELAY=m # CONFIG_DM_UEVENT is not set # CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_SBP2=m CONFIG_IEEE1394=m # # Subsystem Options # # CONFIG_IEEE1394_VERBOSEDEBUG is not set # # Controllers # CONFIG_IEEE1394_PCILYNX=m CONFIG_IEEE1394_OHCI1394=m # # Protocols # CONFIG_IEEE1394_VIDEO1394=m CONFIG_IEEE1394_SBP2=m # CONFIG_IEEE1394_SBP2_PHYS_DMA is not set CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y CONFIG_IEEE1394_ETH1394=m # CONFIG_IEEE1394_DV1394 is not set CONFIG_IEEE1394_RAWIO=m # CONFIG_I2O is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y # CONFIG_NETDEVICES_MULTIQUEUE is not set CONFIG_IFB=m CONFIG_DUMMY=m CONFIG_BONDING=m CONFIG_MACVLAN=m CONFIG_EQUALIZER=m CONFIG_TUN=m CONFIG_VETH=m # CONFIG_NET_SB1000 is not set # CONFIG_IP1000 is not set # CONFIG_ARCNET is not set CONFIG_PHYLIB=m # # MII PHY device drivers # CONFIG_MARVELL_PHY=m # CONFIG_DAVICOM_PHY is not set # CONFIG_QSEMI_PHY is not set # CONFIG_LXT_PHY is not set # CONFIG_CICADA_PHY is not set # CONFIG_VITESSE_PHY is not set # CONFIG_SMSC_PHY is not set # CONFIG_BROADCOM_PHY is not set # CONFIG_ICPLUS_PHY is not set # CONFIG_FIXED_PHY is not set # CONFIG_MDIO_BITBANG is not set CONFIG_NET_ETHERNET=y CONFIG_MII=m # 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_IBM_NEW_EMAC_ZMII is not set # CONFIG_IBM_NEW_EMAC_RGMII is not set # CONFIG_IBM_NEW_EMAC_TAH is not set # CONFIG_IBM_NEW_EMAC_EMAC4 is not set CONFIG_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_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=m # CONFIG_8139TOO_PIO is not set CONFIG_8139TOO_TUNE_TWISTER=y CONFIG_8139TOO_8129=y # 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 is not set CONFIG_SKY2=m # CONFIG_SKY2_DEBUG is not set # CONFIG_SK98LIN is not set # CONFIG_VIA_VELOCITY is not set CONFIG_TIGON3=m # CONFIG_BNX2 is not set # CONFIG_QLA3XXX is not set # CONFIG_ATL1 is not set # CONFIG_NETDEV_10000 is not set # CONFIG_TR is not set # # Wireless LAN # # CONFIG_WLAN_PRE80211 is not set CONFIG_WLAN_80211=y # CONFIG_IPW2100 is not set # CONFIG_IPW2200 is not set # CONFIG_LIBERTAS is not set # CONFIG_AIRO is not set CONFIG_HERMES=m # CONFIG_PLX_HERMES is not set # CONFIG_TMD_HERMES is not set # CONFIG_NORTEL_HERMES is not set # CONFIG_PCI_HERMES is not set # CONFIG_ATMEL is not set # CONFIG_PRISM54 is not set CONFIG_USB_ZD1201=m CONFIG_RTL8187=m CONFIG_ADM8211=m CONFIG_P54_COMMON=m CONFIG_P54_USB=m CONFIG_P54_PCI=m CONFIG_IWLWIFI=y # CONFIG_IWLWIFI_DEBUG is not set CONFIG_IWLWIFI_SENSITIVITY=y CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y CONFIG_IWLWIFI_QOS=y CONFIG_IWL4965=m CONFIG_IWL3945=m CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y # CONFIG_HOSTAP_FIRMWARE_NVRAM is not set # CONFIG_HOSTAP_PLX is not set # CONFIG_HOSTAP_PCI is not set CONFIG_BCM43XX=m CONFIG_BCM43XX_DEBUG=y CONFIG_BCM43XX_DMA=y CONFIG_BCM43XX_PIO=y CONFIG_BCM43XX_DMA_AND_PIO_MODE=y # CONFIG_BCM43XX_DMA_MODE is not set # CONFIG_BCM43XX_PIO_MODE is not set CONFIG_B43=m CONFIG_B43_PCI_AUTOSELECT=y CONFIG_B43_PCICORE_AUTOSELECT=y # CONFIG_B43_DEBUG is not set CONFIG_B43_DMA=y CONFIG_B43_PIO=y CONFIG_B43_DMA_AND_PIO_MODE=y # CONFIG_B43_DMA_MODE is not set # CONFIG_B43_PIO_MODE is not set CONFIG_B43LEGACY=m CONFIG_B43LEGACY_PCI_AUTOSELECT=y CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y CONFIG_B43LEGACY_DEBUG=y CONFIG_B43LEGACY_DMA=y CONFIG_B43LEGACY_PIO=y CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y # CONFIG_B43LEGACY_DMA_MODE is not set # CONFIG_B43LEGACY_PIO_MODE is not set CONFIG_ZD1211RW=m # CONFIG_ZD1211RW_DEBUG is not set CONFIG_RT2X00=m CONFIG_RT2X00_LIB=m CONFIG_RT2X00_LIB_PCI=m CONFIG_RT2X00_LIB_USB=m CONFIG_RT2X00_LIB_FIRMWARE=y CONFIG_RT2400PCI=m # CONFIG_RT2400PCI_RFKILL is not set CONFIG_RT2500PCI=m # CONFIG_RT2500PCI_RFKILL is not set CONFIG_RT61PCI=m # CONFIG_RT61PCI_RFKILL is not set CONFIG_RT2500USB=m # CONFIG_RT73USB is not set # CONFIG_RT2X00_DEBUG is not set # # USB Network Adapters # CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_GL620A=m CONFIG_USB_NET_NET1080=m CONFIG_USB_NET_PLUSB=m CONFIG_USB_NET_MCS7830=m CONFIG_USB_NET_RNDIS_HOST=m CONFIG_USB_NET_CDC_SUBSET=m CONFIG_USB_ALI_M5632=y CONFIG_USB_AN2720=y CONFIG_USB_BELKIN=y CONFIG_USB_ARMLINUX=y # CONFIG_USB_EPSON2888 is not set CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m # CONFIG_WAN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set CONFIG_PLIP=m CONFIG_PPP=m CONFIG_PPP_MULTILINK=y CONFIG_PPP_FILTER=y CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m CONFIG_PPP_MPPE=m CONFIG_PPPOE=m CONFIG_PPPOL2TP=m CONFIG_SLIP=m CONFIG_SLIP_COMPRESSED=y CONFIG_SLHC=m CONFIG_SLIP_SMART=y CONFIG_SLIP_MODE_SLIP6=y # CONFIG_NET_FC is not set # CONFIG_SHAPER is not set CONFIG_NETCONSOLE=m # CONFIG_NETCONSOLE_DYNAMIC is not set CONFIG_NETPOLL=y CONFIG_NETPOLL_TRAP=y CONFIG_NET_POLL_CONTROLLER=y # 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 is not set # # 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_EVDEV=m CONFIG_INPUT_EVBUG=m # # 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=m # 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=y CONFIG_INPUT_PCSPKR=m # CONFIG_INPUT_WISTRON_BTNS is not set # CONFIG_INPUT_ATLAS_BTNS is not set # CONFIG_INPUT_ATI_REMOTE is not set # CONFIG_INPUT_ATI_REMOTE2 is not set # CONFIG_INPUT_KEYSPAN_REMOTE is not set # CONFIG_INPUT_POWERMATE is not set # CONFIG_INPUT_YEALINK is not set CONFIG_INPUT_UINPUT=m # # 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=y # CONFIG_SERIAL_NONSTANDARD 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=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y # CONFIG_SERIAL_8250_FOURPORT is not set # CONFIG_SERIAL_8250_ACCENT is not set # CONFIG_SERIAL_8250_BOCA is not set # CONFIG_SERIAL_8250_EXAR_ST16C554 is not set # CONFIG_SERIAL_8250_HUB6 is not set CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y # # 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=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m CONFIG_IPMI_HANDLER=m # CONFIG_IPMI_PANIC_EVENT is not set CONFIG_IPMI_DEVICE_INTERFACE=m CONFIG_IPMI_SI=m CONFIG_IPMI_WATCHDOG=m CONFIG_IPMI_POWEROFF=m CONFIG_HW_RANDOM=m CONFIG_HW_RANDOM_INTEL=m # CONFIG_HW_RANDOM_AMD is not set # CONFIG_HW_RANDOM_GEODE is not set # CONFIG_HW_RANDOM_VIA is not set CONFIG_NVRAM=m CONFIG_RTC=m CONFIG_GEN_RTC=m CONFIG_GEN_RTC_X=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_SONYPI 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=y CONFIG_HPET_RTC_IRQ=y CONFIG_HPET_MMAP=y CONFIG_HANGCHECK_TIMER=m # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_CHARDEV=m # # I2C Algorithms # CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCF=m CONFIG_I2C_ALGOPCA=m # # I2C Hardware Bus support # # CONFIG_I2C_ALI1535 is not set # CONFIG_I2C_ALI1563 is not set # CONFIG_I2C_ALI15X3 is not set # CONFIG_I2C_AMD756 is not set # CONFIG_I2C_AMD8111 is not set # CONFIG_I2C_I801 is not set # CONFIG_I2C_I810 is not set CONFIG_I2C_PIIX4=m # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set # CONFIG_I2C_SIMTEC is not set # CONFIG_SCx200_ACB is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set # CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_STUB is not set # CONFIG_I2C_TINY_USB is not set # CONFIG_I2C_VIA is not set # CONFIG_I2C_VIAPRO is not set # CONFIG_I2C_VOODOO3 is not set # CONFIG_I2C_PCA_ISA is not set # # Miscellaneous I2C Chip support # # CONFIG_SENSORS_DS1337 is not set # CONFIG_SENSORS_DS1374 is not set # CONFIG_DS1682 is not set # CONFIG_SENSORS_EEPROM is not set # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_MAX6875 is not set # CONFIG_SENSORS_TSL2550 is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CHIP is not set # # SPI support # # CONFIG_SPI is not set # CONFIG_SPI_MASTER is not set CONFIG_W1=m CONFIG_W1_CON=y # # 1-wire Bus Masters # CONFIG_W1_MASTER_MATROX=m CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m # # 1-wire Slaves # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m CONFIG_POWER_SUPPLY=m # CONFIG_POWER_SUPPLY_DEBUG is not set CONFIG_PDA_POWER=m CONFIG_BATTERY_DS2760=m # CONFIG_HWMON is not set CONFIG_WATCHDOG=y # CONFIG_WATCHDOG_NOWAYOUT is not set # # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m # CONFIG_ACQUIRE_WDT is not set # CONFIG_ADVANTECH_WDT is not set # CONFIG_ALIM1535_WDT is not set # CONFIG_ALIM7101_WDT is not set # CONFIG_SC520_WDT is not set # CONFIG_EUROTECH_WDT is not set # CONFIG_IB700_WDT is not set # CONFIG_IBMASR is not set # CONFIG_WAFER_WDT is not set CONFIG_I6300ESB_WDT=m CONFIG_ITCO_WDT=m CONFIG_ITCO_VENDOR_SUPPORT=y CONFIG_IT8712F_WDT=m # CONFIG_SC1200_WDT is not set # CONFIG_PC87413_WDT is not set # CONFIG_60XX_WDT is not set # CONFIG_SBC8360_WDT is not set # CONFIG_SBC7240_WDT is not set # CONFIG_CPU5_WDT is not set # CONFIG_SMSC37B787_WDT is not set # CONFIG_W83627HF_WDT is not set # CONFIG_W83697HF_WDT is not set # CONFIG_W83877F_WDT is not set # CONFIG_W83977F_WDT is not set # CONFIG_MACHZ_WDT is not set # CONFIG_SBC_EPX_C3_WATCHDOG is not set # # ISA-based Watchdog Cards # # CONFIG_PCWATCHDOG is not set # CONFIG_MIXCOMWD is not set # CONFIG_WDT is not set # # PCI-based Watchdog Cards # # CONFIG_PCIPCWATCHDOG is not set # CONFIG_WDTPCI is not set # # USB-based Watchdog Cards # # CONFIG_USBPCWATCHDOG is not set # # Sonics Silicon Backplane # CONFIG_SSB_POSSIBLE=y CONFIG_SSB=m CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y # # Multifunction device drivers # # CONFIG_MFD_SM501 is not set # # Multimedia devices # CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L1=y CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_VIDEO_V4L2=y # CONFIG_VIDEO_CAPTURE_DRIVERS is not set # CONFIG_RADIO_ADAPTERS is not set # CONFIG_DVB_CORE is not set # CONFIG_DAB is not set # # Graphics support # CONFIG_AGP=m # 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=m # 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=m # CONFIG_DRM_TDFX is not set CONFIG_DRM_R128=m CONFIG_DRM_RADEON=m # CONFIG_DRM_I810 is not set # CONFIG_DRM_I830 is not set # CONFIG_DRM_I915 is not set # CONFIG_DRM_MGA is not set # CONFIG_DRM_SIS is not set # CONFIG_DRM_VIA is not set # CONFIG_DRM_SAVAGE is not set CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=m CONFIG_FIRMWARE_EDID=y CONFIG_FB_DDC=m CONFIG_FB_CFB_FILLRECT=m CONFIG_FB_CFB_COPYAREA=m CONFIG_FB_CFB_IMAGEBLIT=m # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set # CONFIG_FB_SYS_FILLRECT is not set # CONFIG_FB_SYS_COPYAREA is not set # CONFIG_FB_SYS_IMAGEBLIT is not set # CONFIG_FB_SYS_FOPS is not set CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set CONFIG_FB_BACKLIGHT=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ARC is not set CONFIG_FB_VGA16=m CONFIG_FB_UVESA=m # CONFIG_FB_HECUBA is not set # CONFIG_FB_HGA is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_I810 is not set # CONFIG_FB_LE80578 is not set # CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set CONFIG_FB_RADEON=m CONFIG_FB_RADEON_I2C=y CONFIG_FB_RADEON_BACKLIGHT=y # CONFIG_FB_RADEON_DEBUG is not set CONFIG_FB_ATY128=m CONFIG_FB_ATY128_BACKLIGHT=y # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_VT8623 is not set # CONFIG_FB_CYBLA is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set # CONFIG_FB_GEODE is not set # CONFIG_FB_VIRTUAL is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_BACKLIGHT_CLASS_DEVICE=m CONFIG_BACKLIGHT_CORGI=m # CONFIG_BACKLIGHT_PROGEAR is not set # # Display device support # CONFIG_DISPLAY_SUPPORT=m # # Display hardware drivers # # # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set CONFIG_VIDEO_SELECT=y # CONFIG_MDA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=m # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set CONFIG_FONTS=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y # CONFIG_FONT_6x11 is not set # CONFIG_FONT_7x14 is not set # CONFIG_FONT_PEARL_8x8 is not set # CONFIG_FONT_ACORN_8x8 is not set # CONFIG_FONT_MINI_4x6 is not set # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set # CONFIG_FONT_10x18 is not set # CONFIG_LOGO is not set # # Sound # CONFIG_SOUND=m # # Advanced Linux Sound Architecture # CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m CONFIG_SND_SEQUENCER=m # CONFIG_SND_SEQ_DUMMY is not set CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y CONFIG_SND_RTCTIMER=m CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y 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_MPU401_UART=m CONFIG_SND_OPL3_LIB=m CONFIG_SND_VX_LIB=m CONFIG_SND_AC97_CODEC=m # CONFIG_SND_DUMMY is not set CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m CONFIG_SND_MTS64=m CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m CONFIG_SND_SB_COMMON=m CONFIG_SND_SB16_DSP=m # # 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_SC6000 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=m CONFIG_SND_ALS300=m CONFIG_SND_ALS4000=m CONFIG_SND_ALI5451=m CONFIG_SND_ATIIXP=m CONFIG_SND_ATIIXP_MODEM=m CONFIG_SND_AU8810=m CONFIG_SND_AU8820=m CONFIG_SND_AU8830=m CONFIG_SND_AZT3328=m CONFIG_SND_BT87X=m # CONFIG_SND_BT87X_OVERCLOCK is not set CONFIG_SND_CA0106=m CONFIG_SND_CMIPCI=m CONFIG_SND_CS4281=m CONFIG_SND_CS46XX=m CONFIG_SND_CS46XX_NEW_DSP=y CONFIG_SND_CS5530=m CONFIG_SND_CS5535AUDIO=m CONFIG_SND_DARLA20=m CONFIG_SND_GINA20=m CONFIG_SND_LAYLA20=m CONFIG_SND_DARLA24=m CONFIG_SND_GINA24=m CONFIG_SND_LAYLA24=m CONFIG_SND_MONA=m CONFIG_SND_MIA=m CONFIG_SND_ECHO3G=m CONFIG_SND_INDIGO=m CONFIG_SND_INDIGOIO=m CONFIG_SND_INDIGODJ=m CONFIG_SND_EMU10K1=m CONFIG_SND_EMU10K1X=m CONFIG_SND_ENS1370=m CONFIG_SND_ENS1371=m CONFIG_SND_ES1938=m CONFIG_SND_ES1968=m CONFIG_SND_FM801=m CONFIG_SND_FM801_TEA575X_BOOL=y CONFIG_SND_FM801_TEA575X=m 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=m CONFIG_SND_HDSPM=m CONFIG_SND_ICE1712=m CONFIG_SND_ICE1724=m CONFIG_SND_INTEL8X0=m CONFIG_SND_INTEL8X0M=m CONFIG_SND_KORG1212=m CONFIG_SND_KORG1212_FIRMWARE_IN_KERNEL=y CONFIG_SND_MAESTRO3=m CONFIG_SND_MAESTRO3_FIRMWARE_IN_KERNEL=y CONFIG_SND_MIXART=m CONFIG_SND_NM256=m CONFIG_SND_PCXHR=m CONFIG_SND_RIPTIDE=m CONFIG_SND_RME32=m CONFIG_SND_RME96=m CONFIG_SND_RME9652=m CONFIG_SND_SONICVIBES=m CONFIG_SND_TRIDENT=m CONFIG_SND_VIA82XX=m CONFIG_SND_VIA82XX_MODEM=m CONFIG_SND_VX222=m CONFIG_SND_YMFPCI=m CONFIG_SND_YMFPCI_FIRMWARE_IN_KERNEL=y CONFIG_SND_AC97_POWER_SAVE=y CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 # # USB devices # CONFIG_SND_USB_AUDIO=m CONFIG_SND_USB_USX2Y=m CONFIG_SND_USB_CAIAQ=m CONFIG_SND_USB_CAIAQ_INPUT=y # # System on Chip audio support # CONFIG_SND_SOC=m # # SoC Audio support for SuperH # # # Open Sound System # # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y CONFIG_HID=m # CONFIG_HID_DEBUG is not set # CONFIG_HIDRAW is not set # # USB Input Devices # CONFIG_USB_HID=m # CONFIG_USB_HIDINPUT_POWERBOOK is not set # CONFIG_HID_FF is not set CONFIG_USB_HIDDEV=y # # USB HID Boot Protocol drivers # # CONFIG_USB_KBD is not set # CONFIG_USB_MOUSE 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=m # 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=y # CONFIG_USB_PERSIST is not set # CONFIG_USB_OTG is not set # # USB Host Controller Drivers # CONFIG_USB_EHCI_HCD=m CONFIG_USB_EHCI_SPLIT_ISO=y CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y CONFIG_USB_ISP116X_HCD=m CONFIG_USB_OHCI_HCD=m CONFIG_USB_OHCI_HCD_SSB=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=m CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m CONFIG_USB_R8A66597_HCD=m # # USB Device Class drivers # CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # # # may also be needed; see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_DATAFAB=y CONFIG_USB_STORAGE_FREECOM=y CONFIG_USB_STORAGE_ISD200=y CONFIG_USB_STORAGE_DPCM=y CONFIG_USB_STORAGE_USBAT=y CONFIG_USB_STORAGE_SDDR09=y CONFIG_USB_STORAGE_SDDR55=y CONFIG_USB_STORAGE_JUMPSHOT=y CONFIG_USB_STORAGE_ALAUDA=y CONFIG_USB_STORAGE_KARMA=y CONFIG_USB_LIBUSUAL=y # # USB Imaging devices # CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m CONFIG_USB_MON=y # # USB port drivers # CONFIG_USB_USS720=m # # USB Serial Converter support # CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_AIRPRIME=m CONFIG_USB_SERIAL_ARK3116=m CONFIG_USB_SERIAL_BELKIN=m CONFIG_USB_SERIAL_CH341=m CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP2101=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_FUNSOFT=m CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_KEYSPAN_PDA=m CONFIG_USB_SERIAL_KEYSPAN=m CONFIG_USB_SERIAL_KEYSPAN_MPR=y CONFIG_USB_SERIAL_KEYSPAN_USA28=y CONFIG_USB_SERIAL_KEYSPAN_USA28X=y CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y CONFIG_USB_SERIAL_KEYSPAN_USA19=y CONFIG_USB_SERIAL_KEYSPAN_USA18X=y CONFIG_USB_SERIAL_KEYSPAN_USA19W=y CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y CONFIG_USB_SERIAL_KEYSPAN_USA49W=y CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_NAVMAN=m CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_HP4X=m CONFIG_USB_SERIAL_SAFE=m CONFIG_USB_SERIAL_SAFE_PADDED=y CONFIG_USB_SERIAL_SIERRAWIRELESS=m CONFIG_USB_SERIAL_TI=m CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_SERIAL_OMNINET=m CONFIG_USB_SERIAL_DEBUG=m CONFIG_USB_EZUSB=y # # USB Miscellaneous drivers # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m CONFIG_USB_ADUTUX=m CONFIG_USB_AUERSWALD=m CONFIG_USB_RIO500=m CONFIG_USB_LEGOTOWER=m CONFIG_USB_LCD=m CONFIG_USB_BERRY_CHARGE=m CONFIG_USB_LED=m CONFIG_USB_CYPRESS_CY7C63=m CONFIG_USB_CYTHERM=m CONFIG_USB_PHIDGET=m CONFIG_USB_PHIDGETKIT=m CONFIG_USB_PHIDGETMOTORCONTROL=m CONFIG_USB_PHIDGETSERVO=m CONFIG_USB_IDMOUSE=m CONFIG_USB_FTDI_ELAN=m CONFIG_USB_APPLEDISPLAY=m CONFIG_USB_SISUSBVGA=m CONFIG_USB_SISUSBVGA_CON=y CONFIG_USB_LD=m CONFIG_USB_TRANCEVIBRATOR=m CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set # # USB DSL modem support # # # USB Gadget Support # CONFIG_USB_GADGET=m # CONFIG_USB_GADGET_DEBUG is not set # CONFIG_USB_GADGET_DEBUG_FILES is not set # CONFIG_USB_GADGET_DEBUG_FS is not set CONFIG_USB_GADGET_SELECTED=y # CONFIG_USB_GADGET_AMD5536UDC is not set # CONFIG_USB_GADGET_ATMEL_USBA is not set # CONFIG_USB_GADGET_FSL_USB2 is not set CONFIG_USB_GADGET_NET2280=y CONFIG_USB_NET2280=m # CONFIG_USB_GADGET_PXA2XX is not set # CONFIG_USB_GADGET_M66592 is not set # CONFIG_USB_GADGET_GOKU is not set # CONFIG_USB_GADGET_LH7A40X is not set # CONFIG_USB_GADGET_OMAP is not set # CONFIG_USB_GADGET_S3C2410 is not set # CONFIG_USB_GADGET_AT91 is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set CONFIG_USB_GADGET_DUALSPEED=y # CONFIG_USB_ZERO is not set CONFIG_USB_ETH=m CONFIG_USB_ETH_RNDIS=y CONFIG_USB_GADGETFS=m CONFIG_USB_FILE_STORAGE=m # CONFIG_USB_FILE_STORAGE_TEST is not set CONFIG_USB_G_SERIAL=m CONFIG_USB_MIDI_GADGET=m # CONFIG_MMC is not set # CONFIG_NEW_LEDS is not set CONFIG_INFINIBAND=m # CONFIG_INFINIBAND_USER_MAD is not set # CONFIG_INFINIBAND_USER_ACCESS is not set CONFIG_INFINIBAND_ADDR_TRANS=y # CONFIG_INFINIBAND_MTHCA is not set # CONFIG_INFINIBAND_AMSO1100 is not set # CONFIG_MLX4_INFINIBAND is not set # CONFIG_INFINIBAND_IPOIB is not set # CONFIG_INFINIBAND_SRP is not set # CONFIG_INFINIBAND_ISER is not set # CONFIG_EDAC is not set CONFIG_RTC_LIB=m CONFIG_RTC_CLASS=m # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y CONFIG_RTC_INTF_DEV_UIE_EMUL=y # CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers # # CONFIG_RTC_DRV_DS1307 is not set # CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1672 is not set # CONFIG_RTC_DRV_MAX6900 is not set # CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_ISL1208 is not set # CONFIG_RTC_DRV_X1205 is not set # CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_M41T80 is not set # # SPI RTC drivers # # # Platform RTC drivers # CONFIG_RTC_DRV_CMOS=m # 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_DMADEVICES is not set # CONFIG_AUXDISPLAY is not set # CONFIG_VIRTUALIZATION is not set # # Userspace I/O # # CONFIG_UIO is not set # # Firmware Drivers # CONFIG_EDD=m CONFIG_EFI_VARS=m CONFIG_DELL_RBU=m CONFIG_DCDBAS=m CONFIG_DMIID=y # # File systems # CONFIG_EXT2_FS=m CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=m CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y # CONFIG_EXT4DEV_FS is not set CONFIG_JBD=m # CONFIG_JBD_DEBUG is not set CONFIG_FS_MBCACHE=m CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m # CONFIG_XFS_QUOTA is not set CONFIG_XFS_SECURITY=y CONFIG_XFS_POSIX_ACL=y # CONFIG_XFS_RT is not set # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set # CONFIG_MINIX_FS is not set CONFIG_ROMFS_FS=m CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y # CONFIG_PRINT_QUOTA_WARNING is not set CONFIG_QFMT_V1=m CONFIG_QFMT_V2=m CONFIG_QUOTACTL=y CONFIG_DNOTIFY=y CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_GENERIC_ACL=y # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_NTFS_FS=m # CONFIG_NTFS_DEBUG is not set # CONFIG_NTFS_RW is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_VMCORE=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_CONFIGFS_FS=m # # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set CONFIG_ECRYPT_FS=m # 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=m # 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 CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_NFS_DIRECTIO=y CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_NFSD_TCP=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC_XPRT_RDMA=m CONFIG_SUNRPC_BIND34=y CONFIG_RPCSEC_GSS_KRB5=m CONFIG_RPCSEC_GSS_SPKM3=m # 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=y # CONFIG_ACORN_PARTITION is not set # CONFIG_OSF_PARTITION is not set # CONFIG_AMIGA_PARTITION is not set # CONFIG_ATARI_PARTITION is not set CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y # CONFIG_BSD_DISKLABEL is not set # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set # CONFIG_LDM_PARTITION is not set # CONFIG_SGI_PARTITION is not set # CONFIG_ULTRIX_PARTITION is not set # CONFIG_SUN_PARTITION is not set # CONFIG_KARMA_PARTITION is not set CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=m CONFIG_NLS_DEFAULT="cp437" CONFIG_NLS_CODEPAGE_437=m CONFIG_NLS_CODEPAGE_737=m CONFIG_NLS_CODEPAGE_775=m CONFIG_NLS_CODEPAGE_850=m CONFIG_NLS_CODEPAGE_852=m CONFIG_NLS_CODEPAGE_855=m CONFIG_NLS_CODEPAGE_857=m CONFIG_NLS_CODEPAGE_860=m CONFIG_NLS_CODEPAGE_861=m CONFIG_NLS_CODEPAGE_862=m CONFIG_NLS_CODEPAGE_863=m CONFIG_NLS_CODEPAGE_864=m CONFIG_NLS_CODEPAGE_865=m CONFIG_NLS_CODEPAGE_866=m CONFIG_NLS_CODEPAGE_869=m CONFIG_NLS_CODEPAGE_936=m CONFIG_NLS_CODEPAGE_950=m CONFIG_NLS_CODEPAGE_932=m CONFIG_NLS_CODEPAGE_949=m CONFIG_NLS_CODEPAGE_874=m CONFIG_NLS_ISO8859_8=m CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_CODEPAGE_1251=m CONFIG_NLS_ASCII=m CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_2=m CONFIG_NLS_ISO8859_3=m CONFIG_NLS_ISO8859_4=m CONFIG_NLS_ISO8859_5=m CONFIG_NLS_ISO8859_6=m CONFIG_NLS_ISO8859_7=m CONFIG_NLS_ISO8859_9=m CONFIG_NLS_ISO8859_13=m CONFIG_NLS_ISO8859_14=m CONFIG_NLS_ISO8859_15=m CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_NLS_UTF8=m # CONFIG_DLM is not set CONFIG_INSTRUMENTATION=y CONFIG_PROFILING=y CONFIG_OPROFILE=m CONFIG_KPROBES=y CONFIG_MARKERS=y # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y # CONFIG_PRINTK_TIME is not set CONFIG_ENABLE_WARN_DEPRECATED=y CONFIG_ENABLE_MUST_CHECK=y CONFIG_MAGIC_SYSRQ=y # CONFIG_UNUSED_SYMBOLS is not set CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHED_DEBUG is not set # CONFIG_SCHEDSTATS is not set # CONFIG_TIMER_STATS is not set CONFIG_DEBUG_SLAB=y CONFIG_DEBUG_SLAB_LEAK=y 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=y # CONFIG_DEBUG_LOCKDEP is not set 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=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set CONFIG_DEBUG_LIST=y CONFIG_DEBUG_SG=y CONFIG_FRAME_POINTER=y # CONFIG_FORCED_INLINING is not set # CONFIG_BOOT_PRINTK_DELAY is not set CONFIG_RCU_TORTURE_TEST=m CONFIG_LKDTM=m CONFIG_FAULT_INJECTION=y CONFIG_FAILSLAB=y CONFIG_FAIL_PAGE_ALLOC=y CONFIG_FAIL_MAKE_REQUEST=y CONFIG_FAULT_INJECTION_DEBUG_FS=y CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y # CONFIG_SAMPLES is not set CONFIG_EARLY_PRINTK=y # CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_DEBUG_STACK_USAGE is not set # # Page alloc debug is incompatible with Software Suspend on i386 # CONFIG_DEBUG_RODATA=y CONFIG_4KSTACKS=y CONFIG_X86_FIND_SMP_CONFIG=y CONFIG_X86_MPPARSE=y CONFIG_DOUBLEFAULT=y # # Security options # CONFIG_KEYS=y CONFIG_KEYS_DEBUG_PROC_KEYS=y CONFIG_SECURITY=y CONFIG_SECURITY_NETWORK=y CONFIG_SECURITY_NETWORK_XFRM=y CONFIG_SECURITY_CAPABILITIES=y # CONFIG_SECURITY_FILE_CAPABILITIES is not set CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 CONFIG_SECURITY_SELINUX_DISABLE=y CONFIG_SECURITY_SELINUX_DEVELOP=y CONFIG_SECURITY_SELINUX_AVC_STATS=y CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 # CONFIG_SECURITY_SELINUX_ENABLE_SECMARK_DEFAULT is not set # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_CRYPTO=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ABLKCIPHER=m CONFIG_CRYPTO_AEAD=m CONFIG_CRYPTO_BLKCIPHER=m CONFIG_CRYPTO_HASH=m CONFIG_CRYPTO_MANAGER=m CONFIG_CRYPTO_HMAC=m CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_SHA1=m CONFIG_CRYPTO_SHA256=m CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_GF128MUL=m CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_CBC=m CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_XTS=m CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_TWOFISH_586=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES_586=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_CAMELLIA=m # CONFIG_CRYPTO_TEST is not set CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=y CONFIG_CRYPTO_DEV_PADLOCK_AES=m CONFIG_CRYPTO_DEV_PADLOCK_SHA=m CONFIG_CRYPTO_DEV_GEODE=m # # Library routines # CONFIG_BITREVERSE=y CONFIG_CRC_CCITT=m CONFIG_CRC16=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=m CONFIG_ZLIB_DEFLATE=m CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-20 22:40 Linux 2.6.24-rc5 x86 architecture no longer Oopses Trond Myklebust @ 2007-12-20 22:54 ` Andrew Morton 2007-12-20 22:56 ` Andrew Morton ` (2 more replies) 0 siblings, 3 replies; 19+ messages in thread From: Andrew Morton @ 2007-12-20 22:54 UTC (permalink / raw) To: Trond Myklebust; +Cc: tglx, mingo, hpa, linux-kernel On Thu, 20 Dec 2007 17:40:47 -0500 Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > I just got the following interesting behaviour. Never mind why the > original Oops (I was testing some experimental RPC patches), but there > appears to be a BUG_ON() triggered inside the dump() call. > > Oops occurred with a build based on this afternoon's git tree from Linus > (v2.6.24-rc5-317-gfaa4877)... > > Cheers > Trond > --------- > > BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000 > printing eip: f8bcc8b3 *pde = 00000000 > BUG: using smp_processor_id() in preemptible [00000001] code: mount.nfs4/2970 > caller is die+0x59/0x202 > Pid: 2970, comm: mount.nfs4 Not tainted 2.6.24-rc5-ga747a088 #1 > [<c0405170>] show_trace_log_lvl+0x1a/0x2f > [<c0405a76>] show_trace+0x12/0x14 > [<c0405dc6>] dump_stack+0x6c/0x72 > [<c04e4cd8>] debug_smp_processor_id+0xa0/0xb4 > [<c0405462>] die+0x59/0x202 > [<c05b3e7d>] do_page_fault+0x557/0x63e > [<c05b252a>] error_code+0x72/0x78 > [<f8bd821c>] rpcb_create+0x7c/0x84 [sunrpc] > [<f8bd8552>] rpcb_register+0x127/0x18c [sunrpc] > [<f8bd31d2>] svc_register+0xcf/0x14c [sunrpc] > [<f8bd399f>] __svc_create+0x19a/0x1b3 [sunrpc] > [<f8bd3b21>] svc_create+0x13/0x15 [sunrpc] > [<f8c74beb>] nfs_callback_up+0x71/0x126 [nfs] > [<f8c53cfe>] nfs_get_client+0x14e/0x3a2 [nfs] > [<f8c53f88>] nfs4_set_client+0x36/0x14f [nfs] > [<f8c54739>] nfs4_create_server+0x8e/0x36c [nfs] > [<f8c5c6f1>] nfs4_get_sb+0x2ef/0x3f3 [nfs] > [<c0477e40>] vfs_kern_mount+0x7d/0xf1 > [<c0477f02>] do_kern_mount+0x37/0xbd > [<c048a6fb>] do_mount+0x5c3/0x61d > [<c048a7c4>] sys_mount+0x6f/0xa9 > [<c04040b2>] sysenter_past_esp+0x5f/0xa5 > ======================= Yes - I don't know why the smp_processor_id() test has suddenly started triggering in there. I have a sledgehammer fix (below) which Ingo went all complicated about and I assumed he had it in hand, but I can't see any patches anywhere? I'd expect the kernel to spit that warning and then proceed with the usual oops report - that's what it did in Miles Lane's case. But it seems in your case that the whole oops report simply vanished? arch/x86/kernel/traps_32.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff -puN arch/x86/kernel/traps_32.c~i386-use-raw_smp_processor_id-in-die arch/x86/kernel/traps_32.c --- a/arch/x86/kernel/traps_32.c~i386-use-raw_smp_processor_id-in-die +++ a/arch/x86/kernel/traps_32.c @@ -376,7 +376,7 @@ void die(const char * str, struct pt_reg console_verbose(); __raw_spin_lock(&die.lock); raw_local_save_flags(flags); - die.lock_owner = smp_processor_id(); + die.lock_owner = raw_smp_processor_id(); die.lock_owner_depth = 0; bust_spinlocks(1); } @@ -636,7 +636,7 @@ static __kprobes void mem_parity_error(unsigned char reason, struct pt_regs * regs) { printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x on " - "CPU %d.\n", reason, smp_processor_id()); + "CPU %d.\n", reason, raw_smp_processor_id()); printk(KERN_EMERG "You have some hardware problem, likely on the PCI bus.\n"); #if defined(CONFIG_EDAC) @@ -684,7 +684,7 @@ unknown_nmi_error(unsigned char reason, } #endif printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x on " - "CPU %d.\n", reason, smp_processor_id()); + "CPU %d.\n", reason, raw_smp_processor_id()); printk(KERN_EMERG "Do you have a strange power saving mode enabled?\n"); if (panic_on_unrecovered_nmi) panic("NMI: Not continuing"); @@ -708,7 +708,7 @@ void __kprobes die_nmi(struct pt_regs *r bust_spinlocks(1); printk(KERN_EMERG "%s", msg); printk(" on CPU%d, ip %08lx, registers:\n", - smp_processor_id(), regs->ip); + raw_smp_processor_id(), regs->ip); show_registers(regs); console_silent(); spin_unlock(&nmi_print_lock); _ ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-20 22:54 ` Andrew Morton @ 2007-12-20 22:56 ` Andrew Morton 2007-12-20 23:06 ` Trond Myklebust 2007-12-21 0:55 ` Rafael J. Wysocki 2007-12-20 23:04 ` Trond Myklebust 2007-12-20 23:47 ` Ingo Molnar 2 siblings, 2 replies; 19+ messages in thread From: Andrew Morton @ 2007-12-20 22:56 UTC (permalink / raw) To: trond.myklebust, tglx, mingo, hpa, linux-kernel; +Cc: Rafael J. Wysocki On Thu, 20 Dec 2007 14:54:15 -0800 Andrew Morton <akpm@linux-foundation.org> wrote: > On Thu, 20 Dec 2007 17:40:47 -0500 > Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > > > I just got the following interesting behaviour. Never mind why the > > original Oops (I was testing some experimental RPC patches), but there > > appears to be a BUG_ON() triggered inside the dump() call. > > > > Oops occurred with a build based on this afternoon's git tree from Linus > > (v2.6.24-rc5-317-gfaa4877)... > > > > Cheers > > Trond > > --------- > > > > BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000 > > printing eip: f8bcc8b3 *pde = 00000000 > > BUG: using smp_processor_id() in preemptible [00000001] code: mount.nfs4/2970 > > caller is die+0x59/0x202 > > Pid: 2970, comm: mount.nfs4 Not tainted 2.6.24-rc5-ga747a088 #1 > > [<c0405170>] show_trace_log_lvl+0x1a/0x2f > > [<c0405a76>] show_trace+0x12/0x14 > > [<c0405dc6>] dump_stack+0x6c/0x72 > > [<c04e4cd8>] debug_smp_processor_id+0xa0/0xb4 > > [<c0405462>] die+0x59/0x202 > > [<c05b3e7d>] do_page_fault+0x557/0x63e > > [<c05b252a>] error_code+0x72/0x78 > > [<f8bd821c>] rpcb_create+0x7c/0x84 [sunrpc] > > [<f8bd8552>] rpcb_register+0x127/0x18c [sunrpc] > > [<f8bd31d2>] svc_register+0xcf/0x14c [sunrpc] > > [<f8bd399f>] __svc_create+0x19a/0x1b3 [sunrpc] > > [<f8bd3b21>] svc_create+0x13/0x15 [sunrpc] > > [<f8c74beb>] nfs_callback_up+0x71/0x126 [nfs] > > [<f8c53cfe>] nfs_get_client+0x14e/0x3a2 [nfs] > > [<f8c53f88>] nfs4_set_client+0x36/0x14f [nfs] > > [<f8c54739>] nfs4_create_server+0x8e/0x36c [nfs] > > [<f8c5c6f1>] nfs4_get_sb+0x2ef/0x3f3 [nfs] > > [<c0477e40>] vfs_kern_mount+0x7d/0xf1 > > [<c0477f02>] do_kern_mount+0x37/0xbd > > [<c048a6fb>] do_mount+0x5c3/0x61d > > [<c048a7c4>] sys_mount+0x6f/0xa9 > > [<c04040b2>] sysenter_past_esp+0x5f/0xa5 > > ======================= > btw, I think we should track this as a regression, please. It may not strictly be a regression: the same problem might happen under 2.6.23, although reports are only agaisnt 2.6.24-rc. But things which impact our ability to get clean oops reports are critical problems. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-20 22:56 ` Andrew Morton @ 2007-12-20 23:06 ` Trond Myklebust 2007-12-21 0:55 ` Rafael J. Wysocki 1 sibling, 0 replies; 19+ messages in thread From: Trond Myklebust @ 2007-12-20 23:06 UTC (permalink / raw) To: Andrew Morton; +Cc: tglx, mingo, hpa, linux-kernel, Rafael J. Wysocki On Thu, 2007-12-20 at 14:56 -0800, Andrew Morton wrote: > btw, I think we should track this as a regression, please. It may not > strictly be a regression: the same problem might happen under 2.6.23, > although reports are only agaisnt 2.6.24-rc. > > But things which impact our ability to get clean oops reports are critical > problems. I second that opinion... Trond ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-20 22:56 ` Andrew Morton 2007-12-20 23:06 ` Trond Myklebust @ 2007-12-21 0:55 ` Rafael J. Wysocki 2007-12-21 10:19 ` Ingo Molnar 1 sibling, 1 reply; 19+ messages in thread From: Rafael J. Wysocki @ 2007-12-21 0:55 UTC (permalink / raw) To: Andrew Morton; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel On Thursday, 20 of December 2007, Andrew Morton wrote: > On Thu, 20 Dec 2007 14:54:15 -0800 > Andrew Morton <akpm@linux-foundation.org> wrote: > > > On Thu, 20 Dec 2007 17:40:47 -0500 > > Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > > > > > I just got the following interesting behaviour. Never mind why the > > > original Oops (I was testing some experimental RPC patches), but there > > > appears to be a BUG_ON() triggered inside the dump() call. > > > > > > Oops occurred with a build based on this afternoon's git tree from Linus > > > (v2.6.24-rc5-317-gfaa4877)... > > > > > > Cheers > > > Trond > > > --------- > > > > > > BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000 > > > printing eip: f8bcc8b3 *pde = 00000000 > > > BUG: using smp_processor_id() in preemptible [00000001] code: mount.nfs4/2970 > > > caller is die+0x59/0x202 > > > Pid: 2970, comm: mount.nfs4 Not tainted 2.6.24-rc5-ga747a088 #1 > > > [<c0405170>] show_trace_log_lvl+0x1a/0x2f > > > [<c0405a76>] show_trace+0x12/0x14 > > > [<c0405dc6>] dump_stack+0x6c/0x72 > > > [<c04e4cd8>] debug_smp_processor_id+0xa0/0xb4 > > > [<c0405462>] die+0x59/0x202 > > > [<c05b3e7d>] do_page_fault+0x557/0x63e > > > [<c05b252a>] error_code+0x72/0x78 > > > [<f8bd821c>] rpcb_create+0x7c/0x84 [sunrpc] > > > [<f8bd8552>] rpcb_register+0x127/0x18c [sunrpc] > > > [<f8bd31d2>] svc_register+0xcf/0x14c [sunrpc] > > > [<f8bd399f>] __svc_create+0x19a/0x1b3 [sunrpc] > > > [<f8bd3b21>] svc_create+0x13/0x15 [sunrpc] > > > [<f8c74beb>] nfs_callback_up+0x71/0x126 [nfs] > > > [<f8c53cfe>] nfs_get_client+0x14e/0x3a2 [nfs] > > > [<f8c53f88>] nfs4_set_client+0x36/0x14f [nfs] > > > [<f8c54739>] nfs4_create_server+0x8e/0x36c [nfs] > > > [<f8c5c6f1>] nfs4_get_sb+0x2ef/0x3f3 [nfs] > > > [<c0477e40>] vfs_kern_mount+0x7d/0xf1 > > > [<c0477f02>] do_kern_mount+0x37/0xbd > > > [<c048a6fb>] do_mount+0x5c3/0x61d > > > [<c048a7c4>] sys_mount+0x6f/0xa9 > > > [<c04040b2>] sysenter_past_esp+0x5f/0xa5 > > > ======================= > > > > btw, I think we should track this as a regression, please. Added, http://bugzilla.kernel.org/show_bug.cgi?id=9610, thanks. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-21 0:55 ` Rafael J. Wysocki @ 2007-12-21 10:19 ` Ingo Molnar 0 siblings, 0 replies; 19+ messages in thread From: Ingo Molnar @ 2007-12-21 10:19 UTC (permalink / raw) To: Rafael J. Wysocki Cc: Andrew Morton, trond.myklebust, tglx, mingo, hpa, linux-kernel * Rafael J. Wysocki <rjw@sisk.pl> wrote: > > btw, I think we should track this as a regression, please. > > Added, http://bugzilla.kernel.org/show_bug.cgi?id=9610, thanks. fixed by: commit c0a698b7443a9fce76b0a849f06c45ac78f3b0a0 Author: Ingo Molnar <mingo@elte.hu> Date: Fri Dec 21 01:27:19 2007 +0100 x86: fix die() to not be preemptible Andrew "Eagle Eye" Morton noticed that we use raw_local_save_flags() instead of raw_local_irq_save(flags) in die(). This allows the preemption of oopsing contexts - which is highly undesirable. It also causes CONFIG_DEBUG_PREEMPT to complain, as reported by Miles Lane. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-20 22:54 ` Andrew Morton 2007-12-20 22:56 ` Andrew Morton @ 2007-12-20 23:04 ` Trond Myklebust 2007-12-20 23:47 ` Ingo Molnar 2 siblings, 0 replies; 19+ messages in thread From: Trond Myklebust @ 2007-12-20 23:04 UTC (permalink / raw) To: Andrew Morton; +Cc: tglx, mingo, hpa, linux-kernel On Thu, 2007-12-20 at 14:54 -0800, Andrew Morton wrote: > On Thu, 20 Dec 2007 17:40:47 -0500 > Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > > > I just got the following interesting behaviour. Never mind why the > > original Oops (I was testing some experimental RPC patches), but there > > appears to be a BUG_ON() triggered inside the dump() call. > > > > Oops occurred with a build based on this afternoon's git tree from Linus > > (v2.6.24-rc5-317-gfaa4877)... > > > > Cheers > > Trond > > --------- > > > > BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000 > > printing eip: f8bcc8b3 *pde = 00000000 > > BUG: using smp_processor_id() in preemptible [00000001] code: mount.nfs4/2970 > > caller is die+0x59/0x202 > > Pid: 2970, comm: mount.nfs4 Not tainted 2.6.24-rc5-ga747a088 #1 > > [<c0405170>] show_trace_log_lvl+0x1a/0x2f > > [<c0405a76>] show_trace+0x12/0x14 > > [<c0405dc6>] dump_stack+0x6c/0x72 > > [<c04e4cd8>] debug_smp_processor_id+0xa0/0xb4 > > [<c0405462>] die+0x59/0x202 > > [<c05b3e7d>] do_page_fault+0x557/0x63e > > [<c05b252a>] error_code+0x72/0x78 > > [<f8bd821c>] rpcb_create+0x7c/0x84 [sunrpc] > > [<f8bd8552>] rpcb_register+0x127/0x18c [sunrpc] > > [<f8bd31d2>] svc_register+0xcf/0x14c [sunrpc] > > [<f8bd399f>] __svc_create+0x19a/0x1b3 [sunrpc] > > [<f8bd3b21>] svc_create+0x13/0x15 [sunrpc] > > [<f8c74beb>] nfs_callback_up+0x71/0x126 [nfs] > > [<f8c53cfe>] nfs_get_client+0x14e/0x3a2 [nfs] > > [<f8c53f88>] nfs4_set_client+0x36/0x14f [nfs] > > [<f8c54739>] nfs4_create_server+0x8e/0x36c [nfs] > > [<f8c5c6f1>] nfs4_get_sb+0x2ef/0x3f3 [nfs] > > [<c0477e40>] vfs_kern_mount+0x7d/0xf1 > > [<c0477f02>] do_kern_mount+0x37/0xbd > > [<c048a6fb>] do_mount+0x5c3/0x61d > > [<c048a7c4>] sys_mount+0x6f/0xa9 > > [<c04040b2>] sysenter_past_esp+0x5f/0xa5 > > ======================= > > Yes - I don't know why the smp_processor_id() test has suddenly started > triggering in there. > > I have a sledgehammer fix (below) which Ingo went all complicated about and > I assumed he had it in hand, but I can't see any patches anywhere? > > I'd expect the kernel to spit that warning and then proceed with the usual > oops report - that's what it did in Miles Lane's case. But it seems in > your case that the whole oops report simply vanished? No. I found what I assume is the remainder of the original a couple of pages further down... Trond ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-20 22:54 ` Andrew Morton 2007-12-20 22:56 ` Andrew Morton 2007-12-20 23:04 ` Trond Myklebust @ 2007-12-20 23:47 ` Ingo Molnar 2007-12-21 0:02 ` Andrew Morton 2007-12-21 0:19 ` Andrew Morton 2 siblings, 2 replies; 19+ messages in thread From: Ingo Molnar @ 2007-12-20 23:47 UTC (permalink / raw) To: Andrew Morton; +Cc: Trond Myklebust, tglx, mingo, hpa, linux-kernel * Andrew Morton <akpm@linux-foundation.org> wrote: > Yes - I don't know why the smp_processor_id() test has suddenly > started triggering in there. it's a "must not happen". here: > __raw_spin_lock(&die.lock); > raw_local_save_flags(flags); > - die.lock_owner = smp_processor_id(); > + die.lock_owner = raw_smp_processor_id(); we just disabled irqs with raw_local_save_flags(). here: > mem_parity_error(unsigned char reason, struct pt_regs * regs) > { > printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x on " > - "CPU %d.\n", reason, smp_processor_id()); > + "CPU %d.\n", reason, raw_smp_processor_id()); > printk(KERN_EMERG "You have some hardware problem, likely on the PCI bus.\n"); we are straight into an NMI which has hardirqs disabled. > printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x on " > - "CPU %d.\n", reason, smp_processor_id()); > + "CPU %d.\n", reason, raw_smp_processor_id()); ditto. > @@ -708,7 +708,7 @@ void __kprobes die_nmi(struct pt_regs *r > bust_spinlocks(1); > printk(KERN_EMERG "%s", msg); > printk(" on CPU%d, ip %08lx, registers:\n", > - smp_processor_id(), regs->ip); > + raw_smp_processor_id(), regs->ip); same. it needs to be found out why the preempt_count suddenly went to zero. Is task struct corruption out of question? Ingo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-20 23:47 ` Ingo Molnar @ 2007-12-21 0:02 ` Andrew Morton 2007-12-21 0:05 ` Ingo Molnar 2007-12-21 0:19 ` Andrew Morton 1 sibling, 1 reply; 19+ messages in thread From: Andrew Morton @ 2007-12-21 0:02 UTC (permalink / raw) To: Ingo Molnar; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel On Fri, 21 Dec 2007 00:47:59 +0100 Ingo Molnar <mingo@elte.hu> wrote: > it needs to be found out why the preempt_count suddenly went to zero. Is > task struct corruption out of question? Strictly we shouldn't care - we _know_ we've already hit a kernel bug and who knows, perhaps that buggy code did an unbalanced preempt_disable(). So make the oops code more robust. otoh, we don't want to be hiding a bug. What piece of code guarantees that we ender the oops code with preemption disabled? ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-21 0:02 ` Andrew Morton @ 2007-12-21 0:05 ` Ingo Molnar 0 siblings, 0 replies; 19+ messages in thread From: Ingo Molnar @ 2007-12-21 0:05 UTC (permalink / raw) To: Andrew Morton; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel * Andrew Morton <akpm@linux-foundation.org> wrote: > On Fri, 21 Dec 2007 00:47:59 +0100 > Ingo Molnar <mingo@elte.hu> wrote: > > > it needs to be found out why the preempt_count suddenly went to zero. Is > > task struct corruption out of question? > > Strictly we shouldn't care - we _know_ we've already hit a kernel bug > and who knows, perhaps that buggy code did an unbalanced > preempt_disable(). So make the oops code more robust. > > otoh, we don't want to be hiding a bug. What piece of code guarantees > that we ender the oops code with preemption disabled? i looked at the patch you sent - and there the proof was in the sections i quoted. Ingo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-20 23:47 ` Ingo Molnar 2007-12-21 0:02 ` Andrew Morton @ 2007-12-21 0:19 ` Andrew Morton 2007-12-21 0:30 ` Ingo Molnar 1 sibling, 1 reply; 19+ messages in thread From: Andrew Morton @ 2007-12-21 0:19 UTC (permalink / raw) To: Ingo Molnar; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel On Fri, 21 Dec 2007 00:47:59 +0100 Ingo Molnar <mingo@elte.hu> wrote: > > __raw_spin_lock(&die.lock); > > raw_local_save_flags(flags); > > - die.lock_owner = smp_processor_id(); > > + die.lock_owner = raw_smp_processor_id(); > > we just disabled irqs with raw_local_save_flags(). <chases x86 spaghetti for a while> raw_local_save_flags() doesn't disable interrupts? ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-21 0:19 ` Andrew Morton @ 2007-12-21 0:30 ` Ingo Molnar 2007-12-21 0:40 ` Andrew Morton 0 siblings, 1 reply; 19+ messages in thread From: Ingo Molnar @ 2007-12-21 0:30 UTC (permalink / raw) To: Andrew Morton; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel * Andrew Morton <akpm@linux-foundation.org> wrote: > On Fri, 21 Dec 2007 00:47:59 +0100 > Ingo Molnar <mingo@elte.hu> wrote: > > > > __raw_spin_lock(&die.lock); > > > raw_local_save_flags(flags); > > > - die.lock_owner = smp_processor_id(); > > > + die.lock_owner = raw_smp_processor_id(); > > > > we just disabled irqs with raw_local_save_flags(). > > <chases x86 spaghetti for a while> > > raw_local_save_flags() doesn't disable interrupts? argh. Indeed! (I wanted us to fix that misleading name eons ago, to *_save_flags_only(), but some stupid bikeshed painting discussion prevented it from ever happening.) that should have been raw_local_irq_save(flags)! but ... why is it done like that? Why do we first take the die.lock and disable interrupts afterwards? It's highly weird. 64-bit does it all correctly in traps_64.c, so unification will help us out - but so far perhaps the patch below we should do in 2.6.24? Ingo ------------> Subject: x86: fix die() to not be preemptible From: Ingo Molnar <mingo@elte.hu> Andrew "Eagle Eye" Morton noticed that we use raw_local_save_flags() instead of raw_local_irq_save(flags) in die(). do it correctly - and first disable interrupts, then take the spinlock. Signed-off-by: Ingo Molnar <mingo@elte.hu> --- arch/x86/kernel/traps_32.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) Index: linux-x86.q/arch/x86/kernel/traps_32.c =================================================================== --- linux-x86.q.orig/arch/x86/kernel/traps_32.c +++ linux-x86.q/arch/x86/kernel/traps_32.c @@ -373,14 +373,13 @@ void die(const char * str, struct pt_reg if (die.lock_owner != raw_smp_processor_id()) { console_verbose(); + raw_local_irq_save(flags); __raw_spin_lock(&die.lock); - raw_local_save_flags(flags); die.lock_owner = smp_processor_id(); die.lock_owner_depth = 0; bust_spinlocks(1); - } - else - raw_local_save_flags(flags); + } else + raw_local_irq_save(flags); if (++die.lock_owner_depth < 3) { unsigned long esp; ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-21 0:30 ` Ingo Molnar @ 2007-12-21 0:40 ` Andrew Morton 2007-12-21 0:44 ` Ingo Molnar 2007-12-21 10:27 ` Ingo Molnar 0 siblings, 2 replies; 19+ messages in thread From: Andrew Morton @ 2007-12-21 0:40 UTC (permalink / raw) To: Ingo Molnar; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel On Fri, 21 Dec 2007 01:30:35 +0100 Ingo Molnar <mingo@elte.hu> wrote: > > * Andrew Morton <akpm@linux-foundation.org> wrote: > > > On Fri, 21 Dec 2007 00:47:59 +0100 > > Ingo Molnar <mingo@elte.hu> wrote: > > > > > > __raw_spin_lock(&die.lock); > > > > raw_local_save_flags(flags); > > > > - die.lock_owner = smp_processor_id(); > > > > + die.lock_owner = raw_smp_processor_id(); > > > > > > we just disabled irqs with raw_local_save_flags(). > > > > <chases x86 spaghetti for a while> > > > > raw_local_save_flags() doesn't disable interrupts? > > argh. Indeed! (I wanted us to fix that misleading name eons ago, to The naming of those functions is truly awful and it goes back to year 0. > *_save_flags_only(), but some stupid bikeshed painting discussion > prevented it from ever happening.) local_read_flags(). > that should have been raw_local_irq_save(flags)! So raw_local_save_flags() and raw_local_irq_save() have different semantics. omigawd, what have we done? > but ... why is it done like that? Why do we first take the die.lock and > disable interrupts afterwards? It's highly weird. 64-bit does it all > correctly in traps_64.c, so unification will help us out - but so far > perhaps the patch below we should do in 2.6.24? > > Ingo > > ------------> > Subject: x86: fix die() to not be preemptible > From: Ingo Molnar <mingo@elte.hu> > > Andrew "Eagle Eye" Morton noticed that we use raw_local_save_flags() > instead of raw_local_irq_save(flags) in die(). > > do it correctly - and first disable interrupts, then take the spinlock. > > Signed-off-by: Ingo Molnar <mingo@elte.hu> > --- > arch/x86/kernel/traps_32.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > Index: linux-x86.q/arch/x86/kernel/traps_32.c > =================================================================== > --- linux-x86.q.orig/arch/x86/kernel/traps_32.c > +++ linux-x86.q/arch/x86/kernel/traps_32.c > @@ -373,14 +373,13 @@ void die(const char * str, struct pt_reg > > if (die.lock_owner != raw_smp_processor_id()) { > console_verbose(); > + raw_local_irq_save(flags); > __raw_spin_lock(&die.lock); > - raw_local_save_flags(flags); > die.lock_owner = smp_processor_id(); > die.lock_owner_depth = 0; > bust_spinlocks(1); > - } > - else > - raw_local_save_flags(flags); > + } else > + raw_local_irq_save(flags); > > if (++die.lock_owner_depth < 3) { > unsigned long esp; Looks sane. I suppose there's some reason why we can't just use spin_lock_irqsave(). But that reason was either so obvious or so unimportant that a comment was not needed. Sigh. ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-21 0:40 ` Andrew Morton @ 2007-12-21 0:44 ` Ingo Molnar 2007-12-21 10:27 ` Ingo Molnar 1 sibling, 0 replies; 19+ messages in thread From: Ingo Molnar @ 2007-12-21 0:44 UTC (permalink / raw) To: Andrew Morton; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel * Andrew Morton <akpm@linux-foundation.org> wrote: > > + raw_local_irq_save(flags); > > __raw_spin_lock(&die.lock); > > - raw_local_save_flags(flags); > > die.lock_owner = smp_processor_id(); > > die.lock_owner_depth = 0; > > bust_spinlocks(1); > > - } > > - else > > - raw_local_save_flags(flags); > > + } else > > + raw_local_irq_save(flags); > > > > if (++die.lock_owner_depth < 3) { > > unsigned long esp; > > Looks sane. > > I suppose there's some reason why we can't just use > spin_lock_irqsave(). But that reason was either so obvious or so > unimportant that a comment was not needed. Sigh. bug was introduced via: commit 39743c9ef717fd4f2b5583f010115c5f2482b8ae Author: Andi Kleen <ak@suse.de> Date: Fri Oct 19 20:35:03 2007 +0200 x86: use raw locks during oopses - spin_lock_irqsave(&die.lock, flags); + __raw_spin_lock(&die.lock); + raw_local_save_flags(flags); that is not a correct open-coding of spin_lock_irqsave(): both the ordering is wrong (irqs should be disabled _first_), and the wrong flags-saving API was used. so this is a post-2.6.23 regression and the fix is (now) obvious. Ingo ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-21 0:40 ` Andrew Morton 2007-12-21 0:44 ` Ingo Molnar @ 2007-12-21 10:27 ` Ingo Molnar 2007-12-21 10:42 ` Andrew Morton 1 sibling, 1 reply; 19+ messages in thread From: Ingo Molnar @ 2007-12-21 10:27 UTC (permalink / raw) To: Andrew Morton; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel * Andrew Morton <akpm@linux-foundation.org> wrote: > > > raw_local_save_flags() doesn't disable interrupts? > > > > argh. Indeed! (I wanted us to fix that misleading name eons ago, to > > The naming of those functions is truly awful and it goes back to year 0. > > > *_save_flags_only(), but some stupid bikeshed painting discussion > > prevented it from ever happening.) > > local_read_flags(). > > > that should have been raw_local_irq_save(flags)! > > So raw_local_save_flags() and raw_local_irq_save() have different semantics. > > omigawd, what have we done? i really tried to get this fixed years ago - but did not think of local_read_flags as a solution. The patch below fixes this. (if it's too burdensome to carry right now then i can regenerate this patch in 30 seconds in the 2.6.25 merge window - but please remind me then. Perhaps put in a patch into your queue that adds a comment to remind me :-) ) Ingo --------------> Subject: rename: local_save_flags => local_read_flags From: Ingo Molnar <mingo@elte.hu> The bug in commit c0a698b744 could have been avoided if local_save_flags and local_irq_save wasnt so similarly named. The syntax is similar as well. rename all local_save_flags variants to local_read_flags, as suggested by Andrew Morton. Signed-off-by: Ingo Molnar <mingo@elte.hu> --- Documentation/cli-sti-removal.txt | 4 ++-- arch/cris/arch-v10/mm/fault.c | 2 +- arch/cris/arch-v10/mm/tlb.c | 2 +- arch/cris/arch-v32/kernel/time.c | 2 +- arch/cris/arch-v32/kernel/traps.c | 2 +- arch/powerpc/kernel/traps.c | 2 +- arch/x86/kernel/apm_32.c | 2 +- arch/x86/kernel/io_apic_32.c | 2 +- arch/x86/kernel/io_apic_64.c | 2 +- arch/x86/kernel/setup64.c | 2 +- arch/xtensa/mm/tlb.c | 6 +++--- drivers/block/ataflop.c | 2 +- drivers/scsi/arm/acornscsi.c | 2 +- drivers/scsi/atari_NCR5380.c | 2 +- drivers/scsi/sun3_NCR5380.c | 2 +- drivers/serial/68328serial.c | 2 +- drivers/serial/crisv10.c | 2 +- drivers/serial/mcfserial.c | 2 +- include/asm-alpha/system.h | 2 +- include/asm-arm/irqflags.h | 4 ++-- include/asm-avr32/irqflags.h | 10 +++++----- include/asm-blackfin/system.h | 4 ++-- include/asm-cris/arch-v10/system.h | 4 ++-- include/asm-cris/arch-v32/system.h | 4 ++-- include/asm-frv/system.h | 8 ++++---- include/asm-h8300/system.h | 2 +- include/asm-ia64/system.h | 6 +++--- include/asm-m32r/system.h | 4 ++-- include/asm-m68k/system.h | 6 +++--- include/asm-m68knommu/system.h | 6 +++--- include/asm-mips/irqflags.h | 6 +++--- include/asm-parisc/system.h | 4 ++-- include/asm-powerpc/hw_irq.h | 4 ++-- include/asm-powerpc/irqflags.h | 2 +- include/asm-powerpc/spinlock.h | 2 +- include/asm-s390/irqflags.h | 2 +- include/asm-sh/irqflags.h | 8 ++++---- include/asm-sh64/system.h | 4 ++-- include/asm-sparc/irqflags.h | 2 +- include/asm-sparc64/irqflags.h | 10 +++++----- include/asm-um/system-generic.h | 8 ++++---- include/asm-v850/system.h | 6 +++--- include/asm-x86/irqflags.h | 12 ++++++------ include/asm-x86/paravirt.h | 4 ++-- include/asm-xtensa/system.h | 4 ++-- include/linux/ide.h | 2 +- include/linux/interrupt.h | 2 +- include/linux/irqflags.h | 4 ++-- 48 files changed, 94 insertions(+), 94 deletions(-) Index: linux-x86.q/Documentation/cli-sti-removal.txt =================================================================== --- linux-x86.q.orig/Documentation/cli-sti-removal.txt +++ linux-x86.q/Documentation/cli-sti-removal.txt @@ -96,7 +96,7 @@ released. drivers that want to disable local interrupts (interrupts on the current CPU), can use the following five macros: - local_irq_disable(), local_irq_enable(), local_save_flags(flags), + local_irq_disable(), local_irq_enable(), local_read_flags(flags), local_irq_save(flags), local_irq_restore(flags) but beware, their meaning and semantics are much simpler, far from @@ -107,7 +107,7 @@ SMP meaning: local_irq_enable() => turn local IRQs on - local_save_flags(flags) => save the current IRQ state into flags. The + local_read_flags(flags) => save the current IRQ state into flags. The state can be on or off. (on some architectures there's even more bits in it.) Index: linux-x86.q/arch/cris/arch-v10/mm/fault.c =================================================================== --- linux-x86.q.orig/arch/cris/arch-v10/mm/fault.c +++ linux-x86.q/arch/cris/arch-v10/mm/fault.c @@ -80,7 +80,7 @@ handle_mmu_bus_fault(struct pt_regs *reg * do_page_fault may have flushed the TLB so we have to restore * the MMU registers. */ - local_save_flags(flags); + local_read_flags(flags); local_irq_disable(); pmd = (pmd_t *)(pgd + pgd_index(address)); if (pmd_none(*pmd)) Index: linux-x86.q/arch/cris/arch-v10/mm/tlb.c =================================================================== --- linux-x86.q.orig/arch/cris/arch-v10/mm/tlb.c +++ linux-x86.q/arch/cris/arch-v10/mm/tlb.c @@ -147,7 +147,7 @@ dump_tlb_all(void) printk("TLB dump. LO is: pfn | reserved | global | valid | kernel | we |\n"); - local_save_flags(flags); + local_read_flags(flags); local_irq_disable(); for(i = 0; i < NUM_TLB_ENTRIES; i++) { *R_TLB_SELECT = ( IO_FIELD(R_TLB_SELECT, index, i) ); Index: linux-x86.q/arch/cris/arch-v32/kernel/time.c =================================================================== --- linux-x86.q.orig/arch/cris/arch-v32/kernel/time.c +++ linux-x86.q/arch/cris/arch-v32/kernel/time.c @@ -336,7 +336,7 @@ time_init(void) driver or infrastructure support yet. */ { unsigned long flags; - local_save_flags(flags); + local_read_flags(flags); flags |= (1<<30); /* NMI M flag is at bit 30 */ local_irq_restore(flags); } Index: linux-x86.q/arch/cris/arch-v32/kernel/traps.c =================================================================== --- linux-x86.q.orig/arch/cris/arch-v32/kernel/traps.c +++ linux-x86.q/arch/cris/arch-v32/kernel/traps.c @@ -153,7 +153,7 @@ die_if_kernel(const char *str, struct pt void arch_enable_nmi(void) { unsigned long flags; - local_save_flags(flags); + local_read_flags(flags); flags |= (1<<30); /* NMI M flag is at bit 30 */ local_irq_restore(flags); } Index: linux-x86.q/arch/powerpc/kernel/traps.c =================================================================== --- linux-x86.q.orig/arch/powerpc/kernel/traps.c +++ linux-x86.q/arch/powerpc/kernel/traps.c @@ -122,7 +122,7 @@ int die(const char *str, struct pt_regs if (machine_is(powermac)) pmac_backlight_unblank(); } else { - local_save_flags(flags); + local_read_flags(flags); } if (++die.lock_owner_depth < 3) { Index: linux-x86.q/arch/x86/kernel/apm_32.c =================================================================== --- linux-x86.q.orig/arch/x86/kernel/apm_32.c +++ linux-x86.q/arch/x86/kernel/apm_32.c @@ -535,7 +535,7 @@ static inline void apm_restore_cpus(cpum static inline unsigned long __apm_irq_save(void) { unsigned long flags; - local_save_flags(flags); + local_read_flags(flags); if (apm_info.allow_ints) { if (irqs_disabled_flags(flags)) local_irq_enable(); Index: linux-x86.q/arch/x86/kernel/io_apic_32.c =================================================================== --- linux-x86.q.orig/arch/x86/kernel/io_apic_32.c +++ linux-x86.q/arch/x86/kernel/io_apic_32.c @@ -1885,7 +1885,7 @@ static int __init timer_irq_works(void) if (no_timer_check) return 1; - local_save_flags(flags); + local_read_flags(flags); local_irq_enable(); /* Let ten ticks pass... */ mdelay((10 * 1000) / HZ); Index: linux-x86.q/arch/x86/kernel/io_apic_64.c =================================================================== --- linux-x86.q.orig/arch/x86/kernel/io_apic_64.c +++ linux-x86.q/arch/x86/kernel/io_apic_64.c @@ -1284,7 +1284,7 @@ static int __init timer_irq_works(void) unsigned long t1 = jiffies; unsigned long flags; - local_save_flags(flags); + local_read_flags(flags); local_irq_enable(); /* Let ten ticks pass... */ mdelay((10 * 1000) / HZ); Index: linux-x86.q/arch/x86/kernel/setup64.c =================================================================== --- linux-x86.q.orig/arch/x86/kernel/setup64.c +++ linux-x86.q/arch/x86/kernel/setup64.c @@ -292,5 +292,5 @@ void __cpuinit cpu_init (void) fpu_init(); - raw_local_save_flags(kernel_eflags); + raw_local_read_flags(kernel_eflags); } Index: linux-x86.q/arch/xtensa/mm/tlb.c =================================================================== --- linux-x86.q.orig/arch/xtensa/mm/tlb.c +++ linux-x86.q/arch/xtensa/mm/tlb.c @@ -65,7 +65,7 @@ void flush_tlb_mm(struct mm_struct *mm) { if (mm == current->active_mm) { int flags; - local_save_flags(flags); + local_read_flags(flags); __get_new_mmu_context(mm); __load_mmu_context(mm); local_irq_restore(flags); @@ -95,7 +95,7 @@ void flush_tlb_range (struct vm_area_str printk("[tlbrange<%02lx,%08lx,%08lx>]\n", (unsigned long)mm->context, start, end); #endif - local_save_flags(flags); + local_read_flags(flags); if (end-start + (PAGE_SIZE-1) <= _TLB_ENTRIES << PAGE_SHIFT) { int oldpid = get_rasid_register(); @@ -129,7 +129,7 @@ void flush_tlb_page (struct vm_area_stru if(mm->context == NO_CONTEXT) return; - local_save_flags(flags); + local_read_flags(flags); oldpid = get_rasid_register(); Index: linux-x86.q/drivers/block/ataflop.c =================================================================== --- linux-x86.q.orig/drivers/block/ataflop.c +++ linux-x86.q/drivers/block/ataflop.c @@ -1476,7 +1476,7 @@ void do_fd_request(struct request_queue stdma_lock(floppy_irq, NULL); atari_disable_irq( IRQ_MFP_FDC ); - local_save_flags(flags); /* The request function is called with ints + local_read_flags(flags); /* The request function is called with ints local_irq_disable(); * disabled... so must save the IPL for later */ redo_fd_request(); local_irq_restore(flags); Index: linux-x86.q/drivers/scsi/arm/acornscsi.c =================================================================== --- linux-x86.q.orig/drivers/scsi/arm/acornscsi.c +++ linux-x86.q/drivers/scsi/arm/acornscsi.c @@ -316,7 +316,7 @@ acornscsi_csdelay(unsigned int cs) target_jiffies = jiffies + 1 + cs * HZ / 100; - local_save_flags(flags); + local_read_flags(flags); local_irq_enable(); while (time_before(jiffies, target_jiffies)) barrier(); Index: linux-x86.q/drivers/scsi/atari_NCR5380.c =================================================================== --- linux-x86.q.orig/drivers/scsi/atari_NCR5380.c +++ linux-x86.q/drivers/scsi/atari_NCR5380.c @@ -1066,7 +1066,7 @@ static void NCR5380_main(struct work_str return; main_running = 1; - local_save_flags(flags); + local_read_flags(flags); do { local_irq_disable(); /* Freeze request queues */ done = 1; Index: linux-x86.q/drivers/scsi/sun3_NCR5380.c =================================================================== --- linux-x86.q.orig/drivers/scsi/sun3_NCR5380.c +++ linux-x86.q/drivers/scsi/sun3_NCR5380.c @@ -1063,7 +1063,7 @@ static void NCR5380_main (struct work_st return; main_running = 1; - local_save_flags(flags); + local_read_flags(flags); do { local_irq_disable(); /* Freeze request queues */ done = 1; Index: linux-x86.q/drivers/serial/68328serial.c =================================================================== --- linux-x86.q.orig/drivers/serial/68328serial.c +++ linux-x86.q/drivers/serial/68328serial.c @@ -746,7 +746,7 @@ static int rs_write(struct tty_struct * if (!tty || !info->xmit_buf) return 0; - local_save_flags(flags); + local_read_flags(flags); while (1) { local_irq_disable(); c = min_t(int, count, min(SERIAL_XMIT_SIZE - info->xmit_cnt - 1, Index: linux-x86.q/drivers/serial/crisv10.c =================================================================== --- linux-x86.q.orig/drivers/serial/crisv10.c +++ linux-x86.q/drivers/serial/crisv10.c @@ -3166,7 +3166,7 @@ static int rs_raw_write(struct tty_struc SIMCOUT(buf, count); return count; #endif - local_save_flags(flags); + local_read_flags(flags); DFLOW(DEBUG_LOG(info->line, "write count %i ", count)); DFLOW(DEBUG_LOG(info->line, "ldisc %i\n", tty->ldisc.chars_in_buffer(tty))); Index: linux-x86.q/drivers/serial/mcfserial.c =================================================================== --- linux-x86.q.orig/drivers/serial/mcfserial.c +++ linux-x86.q/drivers/serial/mcfserial.c @@ -770,7 +770,7 @@ static int mcfrs_write(struct tty_struct if (!tty || !info->xmit_buf) return 0; - local_save_flags(flags); + local_read_flags(flags); while (1) { local_irq_disable(); c = min(count, (int) min(((int)SERIAL_XMIT_SIZE) - info->xmit_cnt - 1, Index: linux-x86.q/include/asm-alpha/system.h =================================================================== --- linux-x86.q.orig/include/asm-alpha/system.h +++ linux-x86.q/include/asm-alpha/system.h @@ -281,7 +281,7 @@ extern int __min_ipl; #define local_irq_disable() do { setipl(IPL_MAX); barrier(); } while(0) #define local_irq_enable() do { barrier(); setipl(IPL_MIN); } while(0) -#define local_save_flags(flags) ((flags) = rdps()) +#define local_read_flags(flags) ((flags) = rdps()) #define local_irq_save(flags) do { (flags) = swpipl(IPL_MAX); barrier(); } while(0) #define local_irq_restore(flags) do { barrier(); setipl(flags); barrier(); } while(0) Index: linux-x86.q/include/asm-arm/irqflags.h =================================================================== --- linux-x86.q.orig/include/asm-arm/irqflags.h +++ linux-x86.q/include/asm-arm/irqflags.h @@ -106,10 +106,10 @@ /* * Save the current interrupt enable state. */ -#define raw_local_save_flags(x) \ +#define raw_local_read_flags(x) \ ({ \ __asm__ __volatile__( \ - "mrs %0, cpsr @ local_save_flags" \ + "mrs %0, cpsr @ local_read_flags" \ : "=r" (x) : : "memory", "cc"); \ }) Index: linux-x86.q/include/asm-avr32/irqflags.h =================================================================== --- linux-x86.q.orig/include/asm-avr32/irqflags.h +++ linux-x86.q/include/asm-avr32/irqflags.h @@ -10,13 +10,13 @@ #include <asm/sysreg.h> -static inline unsigned long __raw_local_save_flags(void) +static inline unsigned long __raw_local_read_flags(void) { return sysreg_read(SR); } -#define raw_local_save_flags(x) \ - do { (x) = __raw_local_save_flags(); } while (0) +#define raw_local_read_flags(x) \ + do { (x) = __raw_local_read_flags(); } while (0) /* * This will restore ALL status register flags, not only the interrupt @@ -48,14 +48,14 @@ static inline int raw_irqs_disabled_flag static inline int raw_irqs_disabled(void) { - unsigned long flags = __raw_local_save_flags(); + unsigned long flags = __raw_local_read_flags(); return raw_irqs_disabled_flags(flags); } static inline unsigned long __raw_local_irq_save(void) { - unsigned long flags = __raw_local_save_flags(); + unsigned long flags = __raw_local_read_flags(); raw_local_irq_disable(); Index: linux-x86.q/include/asm-blackfin/system.h =================================================================== --- linux-x86.q.orig/include/asm-blackfin/system.h +++ linux-x86.q/include/asm-blackfin/system.h @@ -92,7 +92,7 @@ extern unsigned long irq_flags; ) #endif -#define local_save_flags(x) \ +#define local_read_flags(x) \ __asm__ __volatile__( \ "cli %0;" \ "sti %0;" \ @@ -117,7 +117,7 @@ extern unsigned long irq_flags; #define irqs_disabled() \ ({ \ unsigned long flags; \ - local_save_flags(flags); \ + local_read_flags(flags); \ !irqs_enabled_from_flags(flags); \ }) Index: linux-x86.q/include/asm-cris/arch-v10/system.h =================================================================== --- linux-x86.q.orig/include/asm-cris/arch-v10/system.h +++ linux-x86.q/include/asm-cris/arch-v10/system.h @@ -45,7 +45,7 @@ struct __xchg_dummy { unsigned long a[10 #define __xg(x) ((struct __xchg_dummy *)(x)) /* interrupt control.. */ -#define local_save_flags(x) __asm__ __volatile__ ("move $ccr,%0" : "=rm" (x) : : "memory"); +#define local_read_flags(x) __asm__ __volatile__ ("move $ccr,%0" : "=rm" (x) : : "memory"); #define local_irq_restore(x) __asm__ __volatile__ ("move %0,$ccr" : : "rm" (x) : "memory"); #define local_irq_disable() __asm__ __volatile__ ( "di" : : :"memory"); #define local_irq_enable() __asm__ __volatile__ ( "ei" : : :"memory"); @@ -53,7 +53,7 @@ struct __xchg_dummy { unsigned long a[10 #define irqs_disabled() \ ({ \ unsigned long flags; \ - local_save_flags(flags); \ + local_read_flags(flags); \ !(flags & (1<<5)); \ }) Index: linux-x86.q/include/asm-cris/arch-v32/system.h =================================================================== --- linux-x86.q.orig/include/asm-cris/arch-v32/system.h +++ linux-x86.q/include/asm-cris/arch-v32/system.h @@ -45,7 +45,7 @@ struct __xchg_dummy { unsigned long a[10 #define __xg(x) ((struct __xchg_dummy *)(x)) /* Used for interrupt control. */ -#define local_save_flags(x) \ +#define local_read_flags(x) \ __asm__ __volatile__ ("move $ccs, %0" : "=rm" (x) : : "memory"); #define local_irq_restore(x) \ @@ -58,7 +58,7 @@ struct __xchg_dummy { unsigned long a[10 ({ \ unsigned long flags; \ \ - local_save_flags(flags);\ + local_read_flags(flags);\ !(flags & (1 << I_CCS_BITNR)); \ }) Index: linux-x86.q/include/asm-frv/system.h =================================================================== --- linux-x86.q.orig/include/asm-frv/system.h +++ linux-x86.q/include/asm-frv/system.h @@ -70,7 +70,7 @@ do { \ ); \ } while(0) -#define local_save_flags(flags) \ +#define local_read_flags(flags) \ do { \ typecheck(unsigned long, flags); \ asm volatile("movsg ccr,%0" \ @@ -86,12 +86,12 @@ do { \ } while(0) #define irqs_disabled() \ - ({unsigned long flags; local_save_flags(flags); flags; }) + ({unsigned long flags; local_read_flags(flags); flags; }) #define local_irq_save(flags) \ do { \ typecheck(unsigned long, flags); \ - local_save_flags(flags); \ + local_read_flags(flags); \ local_irq_disable(); \ } while(0) @@ -137,7 +137,7 @@ do { \ : "memory"); \ } while(0) -#define __local_save_flags(flags) \ +#define __local_read_flags(flags) \ do { \ typecheck(unsigned long, flags); \ asm("movsg psr,%0" \ Index: linux-x86.q/include/asm-h8300/system.h =================================================================== --- linux-x86.q.orig/include/asm-h8300/system.h +++ linux-x86.q/include/asm-h8300/system.h @@ -72,7 +72,7 @@ asmlinkage void resume(void); #define local_irq_enable() __sti() #define local_irq_save(x) ({ __save_flags(x); local_irq_disable(); }) #define local_irq_restore(x) __restore_flags(x) -#define local_save_flags(x) __save_flags(x) +#define local_read_flags(x) __save_flags(x) /* * Force strict CPU ordering. Index: linux-x86.q/include/asm-ia64/system.h =================================================================== --- linux-x86.q.orig/include/asm-ia64/system.h +++ linux-x86.q/include/asm-ia64/system.h @@ -160,7 +160,7 @@ do { \ do { \ unsigned long old_psr, psr = (x); \ \ - local_save_flags(old_psr); \ + local_read_flags(old_psr); \ __local_irq_restore(psr); \ if ((old_psr & IA64_PSR_I) && !(psr & IA64_PSR_I)) \ __save_ip(); \ @@ -173,12 +173,12 @@ do { \ #endif /* !CONFIG_IA64_DEBUG_IRQ */ #define local_irq_enable() ({ ia64_stop(); ia64_ssm(IA64_PSR_I); ia64_srlz_d(); }) -#define local_save_flags(flags) ({ ia64_stop(); (flags) = ia64_getreg(_IA64_REG_PSR); }) +#define local_read_flags(flags) ({ ia64_stop(); (flags) = ia64_getreg(_IA64_REG_PSR); }) #define irqs_disabled() \ ({ \ unsigned long __ia64_id_flags; \ - local_save_flags(__ia64_id_flags); \ + local_read_flags(__ia64_id_flags); \ (__ia64_id_flags & IA64_PSR_I) == 0; \ }) Index: linux-x86.q/include/asm-m32r/system.h =================================================================== --- linux-x86.q.orig/include/asm-m32r/system.h +++ linux-x86.q/include/asm-m32r/system.h @@ -84,7 +84,7 @@ static inline void local_irq_disable(voi } #endif /* CONFIG_CHIP_M32102 || CONFIG_CHIP_M32104 */ -#define local_save_flags(x) \ +#define local_read_flags(x) \ __asm__ __volatile__("mvfc %0,psw" : "=r"(x) : /* no input */) #define local_irq_restore(x) \ @@ -115,7 +115,7 @@ static inline void local_irq_disable(voi #define irqs_disabled() \ ({ \ unsigned long flags; \ - local_save_flags(flags); \ + local_read_flags(flags); \ !(flags & 0x40); \ }) Index: linux-x86.q/include/asm-m68k/system.h =================================================================== --- linux-x86.q.orig/include/asm-m68k/system.h +++ linux-x86.q/include/asm-m68k/system.h @@ -73,18 +73,18 @@ asmlinkage void resume(void); }) #endif #define local_irq_disable() asm volatile ("oriw #0x0700,%%sr": : : "memory") -#define local_save_flags(x) asm volatile ("movew %%sr,%0":"=d" (x) : : "memory") +#define local_read_flags(x) asm volatile ("movew %%sr,%0":"=d" (x) : : "memory") #define local_irq_restore(x) asm volatile ("movew %0,%%sr": :"d" (x) : "memory") static inline int irqs_disabled(void) { unsigned long flags; - local_save_flags(flags); + local_read_flags(flags); return flags & ~ALLOWINT; } /* For spinlocks etc */ -#define local_irq_save(x) ({ local_save_flags(x); local_irq_disable(); }) +#define local_irq_save(x) ({ local_read_flags(x); local_irq_disable(); }) #define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) Index: linux-x86.q/include/asm-m68knommu/system.h =================================================================== --- linux-x86.q.orig/include/asm-m68knommu/system.h +++ linux-x86.q/include/asm-m68knommu/system.h @@ -79,18 +79,18 @@ asmlinkage void resume(void); #define local_irq_disable() asm volatile ("oriw #0x0700,%%sr": : : "memory") #endif -#define local_save_flags(x) asm volatile ("movew %%sr,%0":"=d" (x) : : "memory") +#define local_read_flags(x) asm volatile ("movew %%sr,%0":"=d" (x) : : "memory") #define local_irq_restore(x) asm volatile ("movew %0,%%sr": :"d" (x) : "memory") /* For spinlocks etc */ #ifndef local_irq_save -#define local_irq_save(x) do { local_save_flags(x); local_irq_disable(); } while (0) +#define local_irq_save(x) do { local_read_flags(x); local_irq_disable(); } while (0) #endif #define irqs_disabled() \ ({ \ unsigned long flags; \ - local_save_flags(flags); \ + local_read_flags(flags); \ ((flags & 0x0700) == 0x0700); \ }) Index: linux-x86.q/include/asm-mips/irqflags.h =================================================================== --- linux-x86.q.orig/include/asm-mips/irqflags.h +++ linux-x86.q/include/asm-mips/irqflags.h @@ -97,7 +97,7 @@ static inline void raw_local_irq_disable } __asm__( - " .macro raw_local_save_flags flags \n" + " .macro raw_local_read_flags flags \n" " .set push \n" " .set reorder \n" #ifdef CONFIG_MIPS_MT_SMTC @@ -108,9 +108,9 @@ __asm__( " .set pop \n" " .endm \n"); -#define raw_local_save_flags(x) \ +#define raw_local_read_flags(x) \ __asm__ __volatile__( \ - "raw_local_save_flags %0" \ + "raw_local_read_flags %0" \ : "=r" (x)) __asm__( Index: linux-x86.q/include/asm-parisc/system.h =================================================================== --- linux-x86.q.orig/include/asm-parisc/system.h +++ linux-x86.q/include/asm-parisc/system.h @@ -49,7 +49,7 @@ extern struct task_struct *_switch_to(st } while(0) /* interrupt control */ -#define local_save_flags(x) __asm__ __volatile__("ssm 0, %0" : "=r" (x) : : "memory") +#define local_read_flags(x) __asm__ __volatile__("ssm 0, %0" : "=r" (x) : : "memory") #define local_irq_disable() __asm__ __volatile__("rsm %0,%%r0\n" : : "i" (PSW_I) : "memory" ) #define local_irq_enable() __asm__ __volatile__("ssm %0,%%r0\n" : : "i" (PSW_I) : "memory" ) @@ -61,7 +61,7 @@ extern struct task_struct *_switch_to(st #define irqs_disabled() \ ({ \ unsigned long flags; \ - local_save_flags(flags); \ + local_read_flags(flags); \ (flags & PSW_I) == 0; \ }) Index: linux-x86.q/include/asm-powerpc/hw_irq.h =================================================================== --- linux-x86.q.orig/include/asm-powerpc/hw_irq.h +++ linux-x86.q/include/asm-powerpc/hw_irq.h @@ -43,7 +43,7 @@ extern void local_irq_restore(unsigned l extern void iseries_handle_interrupts(void); #define local_irq_enable() local_irq_restore(1) -#define local_save_flags(flags) ((flags) = local_get_flags()) +#define local_read_flags(flags) ((flags) = local_get_flags()) #define local_irq_save(flags) ((flags) = local_irq_disable()) #define irqs_disabled() (local_get_flags() == 0) @@ -105,7 +105,7 @@ static inline void local_irq_save_ptr(un __asm__ __volatile__("": : :"memory"); } -#define local_save_flags(flags) ((flags) = mfmsr()) +#define local_read_flags(flags) ((flags) = mfmsr()) #define local_irq_save(flags) local_irq_save_ptr(&flags) #define irqs_disabled() ((mfmsr() & MSR_EE) == 0) Index: linux-x86.q/include/asm-powerpc/irqflags.h =================================================================== --- linux-x86.q.orig/include/asm-powerpc/irqflags.h +++ linux-x86.q/include/asm-powerpc/irqflags.h @@ -11,7 +11,7 @@ #define _ASM_IRQFLAGS_H /* - * Get definitions for raw_local_save_flags(x), etc. + * Get definitions for raw_local_read_flags(x), etc. */ #include <asm-powerpc/hw_irq.h> Index: linux-x86.q/include/asm-powerpc/spinlock.h =================================================================== --- linux-x86.q.orig/include/asm-powerpc/spinlock.h +++ linux-x86.q/include/asm-powerpc/spinlock.h @@ -126,7 +126,7 @@ static void __inline__ __raw_spin_lock_f while (1) { if (likely(__spin_trylock(lock) == 0)) break; - local_save_flags(flags_dis); + local_read_flags(flags_dis); local_irq_restore(flags); do { HMT_low(); Index: linux-x86.q/include/asm-s390/irqflags.h =================================================================== --- linux-x86.q.orig/include/asm-s390/irqflags.h +++ linux-x86.q/include/asm-s390/irqflags.h @@ -83,7 +83,7 @@ static inline unsigned long raw_local_ir return __raw_local_irq_stnsm(0xfc); } -#define raw_local_save_flags(x) \ +#define raw_local_read_flags(x) \ do { \ typecheck(unsigned long, x); \ (x) = __raw_local_irq_stosm(0x00); \ Index: linux-x86.q/include/asm-sh/irqflags.h =================================================================== --- linux-x86.q.orig/include/asm-sh/irqflags.h +++ linux-x86.q/include/asm-sh/irqflags.h @@ -62,7 +62,7 @@ static inline void clear_bl_bit(void) ); } -static inline unsigned long __raw_local_save_flags(void) +static inline unsigned long __raw_local_read_flags(void) { unsigned long flags; @@ -77,8 +77,8 @@ static inline unsigned long __raw_local_ return flags; } -#define raw_local_save_flags(flags) \ - do { (flags) = __raw_local_save_flags(); } while (0) +#define raw_local_read_flags(flags) \ + do { (flags) = __raw_local_read_flags(); } while (0) static inline int raw_irqs_disabled_flags(unsigned long flags) { @@ -87,7 +87,7 @@ static inline int raw_irqs_disabled_flag static inline int raw_irqs_disabled(void) { - unsigned long flags = __raw_local_save_flags(); + unsigned long flags = __raw_local_read_flags(); return raw_irqs_disabled_flags(flags); } Index: linux-x86.q/include/asm-sh64/system.h =================================================================== --- linux-x86.q.orig/include/asm-sh64/system.h +++ linux-x86.q/include/asm-sh64/system.h @@ -96,7 +96,7 @@ static __inline__ void local_irq_disable : "r" (__dummy1)); } -#define local_save_flags(x) \ +#define local_read_flags(x) \ (__extension__ ({ unsigned long long __dummy=SR_MASK_LL; \ __asm__ __volatile__( \ "getcon " __SR ", %0\n\t" \ @@ -123,7 +123,7 @@ static __inline__ void local_irq_disable #define irqs_disabled() \ ({ \ unsigned long flags; \ - local_save_flags(flags); \ + local_read_flags(flags); \ (flags != 0); \ }) Index: linux-x86.q/include/asm-sparc/irqflags.h =================================================================== --- linux-x86.q.orig/include/asm-sparc/irqflags.h +++ linux-x86.q/include/asm-sparc/irqflags.h @@ -24,7 +24,7 @@ static inline unsigned long getipl(void) return retval; } -#define raw_local_save_flags(flags) ((flags) = getipl()) +#define raw_local_read_flags(flags) ((flags) = getipl()) #define raw_local_irq_save(flags) ((flags) = __raw_local_irq_save()) #define raw_local_irq_disable() ((void) __raw_local_irq_save()) #define raw_irqs_disabled() ((getipl() & PSR_PIL) != 0) Index: linux-x86.q/include/asm-sparc64/irqflags.h =================================================================== --- linux-x86.q.orig/include/asm-sparc64/irqflags.h +++ linux-x86.q/include/asm-sparc64/irqflags.h @@ -12,7 +12,7 @@ #ifndef __ASSEMBLY__ -static inline unsigned long __raw_local_save_flags(void) +static inline unsigned long __raw_local_read_flags(void) { unsigned long flags; @@ -24,8 +24,8 @@ static inline unsigned long __raw_local_ return flags; } -#define raw_local_save_flags(flags) \ - do { (flags) = __raw_local_save_flags(); } while (0) +#define raw_local_read_flags(flags) \ + do { (flags) = __raw_local_read_flags(); } while (0) static inline void raw_local_irq_restore(unsigned long flags) { @@ -64,7 +64,7 @@ static inline int raw_irqs_disabled_flag static inline int raw_irqs_disabled(void) { - unsigned long flags = __raw_local_save_flags(); + unsigned long flags = __raw_local_read_flags(); return raw_irqs_disabled_flags(flags); } @@ -74,7 +74,7 @@ static inline int raw_irqs_disabled(void */ static inline unsigned long __raw_local_irq_save(void) { - unsigned long flags = __raw_local_save_flags(); + unsigned long flags = __raw_local_read_flags(); raw_local_irq_disable(); Index: linux-x86.q/include/asm-um/system-generic.h =================================================================== --- linux-x86.q.orig/include/asm-um/system-generic.h +++ linux-x86.q/include/asm-um/system-generic.h @@ -8,7 +8,7 @@ #undef local_irq_restore #undef local_irq_disable #undef local_irq_enable -#undef local_save_flags +#undef local_read_flags #undef local_irq_restore #undef local_irq_enable #undef local_irq_disable @@ -23,12 +23,12 @@ extern int get_signals(void); extern void block_signals(void); extern void unblock_signals(void); -#define local_save_flags(flags) do { typecheck(unsigned long, flags); \ +#define local_read_flags(flags) do { typecheck(unsigned long, flags); \ (flags) = get_signals(); } while(0) #define local_irq_restore(flags) do { typecheck(unsigned long, flags); \ set_signals(flags); } while(0) -#define local_irq_save(flags) do { local_save_flags(flags); \ +#define local_irq_save(flags) do { local_read_flags(flags); \ local_irq_disable(); } while(0) #define local_irq_enable() unblock_signals() @@ -37,7 +37,7 @@ extern void unblock_signals(void); #define irqs_disabled() \ ({ \ unsigned long flags; \ - local_save_flags(flags); \ + local_read_flags(flags); \ (flags == 0); \ }) Index: linux-x86.q/include/asm-v850/system.h =================================================================== --- linux-x86.q.orig/include/asm-v850/system.h +++ linux-x86.q/include/asm-v850/system.h @@ -37,14 +37,14 @@ extern void *switch_thread (struct threa #define local_irq_enable() __asm__ __volatile__ ("ei") #define local_irq_disable() __asm__ __volatile__ ("di") -#define local_save_flags(flags) \ +#define local_read_flags(flags) \ __asm__ __volatile__ ("stsr %1, %0" : "=r" (flags) : "i" (SR_PSW)) #define local_restore_flags(flags) \ __asm__ __volatile__ ("ldsr %0, %1" :: "r" (flags), "i" (SR_PSW)) /* For spinlocks etc */ #define local_irq_save(flags) \ - do { local_save_flags (flags); local_irq_disable (); } while (0) + do { local_read_flags (flags); local_irq_disable (); } while (0) #define local_irq_restore(flags) \ local_restore_flags (flags); @@ -52,7 +52,7 @@ extern void *switch_thread (struct threa static inline int irqs_disabled (void) { unsigned flags; - local_save_flags (flags); + local_read_flags (flags); return !!(flags & 0x20); } Index: linux-x86.q/include/asm-x86/irqflags.h =================================================================== --- linux-x86.q.orig/include/asm-x86/irqflags.h +++ linux-x86.q/include/asm-x86/irqflags.h @@ -60,7 +60,7 @@ static inline void native_halt(void) #else #ifndef __ASSEMBLY__ -static inline unsigned long __raw_local_save_flags(void) +static inline unsigned long __raw_local_read_flags(void) { return native_save_fl(); } @@ -103,7 +103,7 @@ static inline void halt(void) */ static inline unsigned long __raw_local_irq_save(void) { - unsigned long flags = __raw_local_save_flags(); + unsigned long flags = __raw_local_read_flags(); raw_local_irq_disable(); @@ -131,8 +131,8 @@ static inline unsigned long __raw_local_ #endif /* CONFIG_PARAVIRT */ #ifndef __ASSEMBLY__ -#define raw_local_save_flags(flags) \ - do { (flags) = __raw_local_save_flags(); } while (0) +#define raw_local_read_flags(flags) \ + do { (flags) = __raw_local_read_flags(); } while (0) #define raw_local_irq_save(flags) \ do { (flags) = __raw_local_irq_save(); } while (0) @@ -144,7 +144,7 @@ static inline int raw_irqs_disabled_flag static inline int raw_irqs_disabled(void) { - unsigned long flags = __raw_local_save_flags(); + unsigned long flags = __raw_local_read_flags(); return raw_irqs_disabled_flags(flags); } @@ -165,7 +165,7 @@ static inline void trace_hardirqs_fixup_ static inline void trace_hardirqs_fixup(void) { - unsigned long flags = __raw_local_save_flags(); + unsigned long flags = __raw_local_read_flags(); trace_hardirqs_fixup_flags(flags); } Index: linux-x86.q/include/asm-x86/paravirt.h =================================================================== --- linux-x86.q.orig/include/asm-x86/paravirt.h +++ linux-x86.q/include/asm-x86/paravirt.h @@ -1124,7 +1124,7 @@ extern struct paravirt_patch_site __para #define PV_FLAGS_ARG "D" #endif -static inline unsigned long __raw_local_save_flags(void) +static inline unsigned long __raw_local_read_flags(void) { unsigned long f; @@ -1176,7 +1176,7 @@ static inline unsigned long __raw_local_ { unsigned long f; - f = __raw_local_save_flags(); + f = __raw_local_read_flags(); raw_local_irq_disable(); return f; } Index: linux-x86.q/include/asm-xtensa/system.h =================================================================== --- linux-x86.q.orig/include/asm-xtensa/system.h +++ linux-x86.q/include/asm-xtensa/system.h @@ -17,7 +17,7 @@ /* interrupt control */ -#define local_save_flags(x) \ +#define local_read_flags(x) \ __asm__ __volatile__ ("rsr %0,"__stringify(PS) : "=a" (x)); #define local_irq_restore(x) do { \ __asm__ __volatile__ ("wsr %0, "__stringify(PS)" ; rsync" \ @@ -42,7 +42,7 @@ static inline void local_irq_enable(void static inline int irqs_disabled(void) { unsigned long flags; - local_save_flags(flags); + local_read_flags(flags); return flags & 0xf; } Index: linux-x86.q/include/linux/ide.h =================================================================== --- linux-x86.q.orig/include/linux/ide.h +++ linux-x86.q/include/linux/ide.h @@ -1394,7 +1394,7 @@ extern struct mutex ide_cfg_mtx; * ide_drive_t->hwif: constant, no locking */ -#define local_irq_set(flags) do { local_save_flags((flags)); local_irq_enable_in_hardirq(); } while (0) +#define local_irq_set(flags) do { local_read_flags((flags)); local_irq_enable_in_hardirq(); } while (0) extern struct bus_type ide_bus_type; Index: linux-x86.q/include/linux/interrupt.h =================================================================== --- linux-x86.q.orig/include/linux/interrupt.h +++ linux-x86.q/include/linux/interrupt.h @@ -213,7 +213,7 @@ static inline void __deprecated sti(void } static inline void __deprecated save_flags(unsigned long *x) { - local_save_flags(*x); + local_read_flags(*x); } #define save_flags(x) save_flags(&x) static inline void __deprecated restore_flags(unsigned long x) Index: linux-x86.q/include/linux/irqflags.h =================================================================== --- linux-x86.q.orig/include/linux/irqflags.h +++ linux-x86.q/include/linux/irqflags.h @@ -80,13 +80,13 @@ raw_safe_halt(); \ } while (0) -#define local_save_flags(flags) raw_local_save_flags(flags) +#define local_read_flags(flags) raw_local_read_flags(flags) #define irqs_disabled() \ ({ \ unsigned long flags; \ \ - raw_local_save_flags(flags); \ + raw_local_read_flags(flags); \ raw_irqs_disabled_flags(flags); \ }) ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-21 10:27 ` Ingo Molnar @ 2007-12-21 10:42 ` Andrew Morton 2007-12-21 11:12 ` Ingo Molnar 0 siblings, 1 reply; 19+ messages in thread From: Andrew Morton @ 2007-12-21 10:42 UTC (permalink / raw) To: Ingo Molnar; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel On Fri, 21 Dec 2007 11:27:27 +0100 Ingo Molnar <mingo@elte.hu> wrote: > > local_read_flags(). > > > > > that should have been raw_local_irq_save(flags)! > > > > So raw_local_save_flags() and raw_local_irq_save() have different semantics. > > > > omigawd, what have we done? > > i really tried to get this fixed years ago - but did not think of > local_read_flags as a solution. The patch below fixes this. > > (if it's too burdensome to carry right now then i can regenerate this > patch in 30 seconds in the 2.6.25 merge window - but please remind me > then. Perhaps put in a patch into your queue that adds a comment to > remind me :-) ) I'd suggest that we add a local_read_flags() along with local_save_flags(). Then I can merge the parts of the patch which don't get destroyed by ongoing churn and then we can come in and clean up the stragglers later. box:/usr/src/25> grep -l local_save_flags patches/*.patch patches/git-perfmon.patch patches/git-sh.patch patches/git-x86.patch patches/i386-use-raw_smp_processor_id-in-die.patch patches/mn10300-add-the-mn10300-am33-architecture-to-the-kernel.patch patches/origin.patch ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-21 10:42 ` Andrew Morton @ 2007-12-21 11:12 ` Ingo Molnar 2007-12-21 11:34 ` Andrew Morton 0 siblings, 1 reply; 19+ messages in thread From: Ingo Molnar @ 2007-12-21 11:12 UTC (permalink / raw) To: Andrew Morton; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel * Andrew Morton <akpm@linux-foundation.org> wrote: > I'd suggest that we add a local_read_flags() along with > local_save_flags(). Then I can merge the parts of the patch which > don't get destroyed by ongoing churn and then we can come in and clean > up the stragglers later. ah, indeed. like the patch below? (Only local_save_flags() should be used by drivers - but i stuck in the other variants as well for completeness.) Ingo --------------------> Subject: migration helpers for local_save_flags => local_read_flags rename From: Ingo Molnar <mingo@elte.hu> prepare for renaming of all local_save_flags variants to local_read_flags, via migration helpers, as suggested by Andrew Morton. Signed-off-by: Ingo Molnar <mingo@elte.hu> --- include/linux/irqflags.h | 9 +++++++++ 1 file changed, 9 insertions(+) Index: linux-x86.q/include/linux/irqflags.h =================================================================== --- linux-x86.q.orig/include/linux/irqflags.h +++ linux-x86.q/include/linux/irqflags.h @@ -93,4 +93,13 @@ #define irqs_disabled_flags(flags) raw_irqs_disabled_flags(flags) #endif /* CONFIG_X86 */ +/* + * Migration helpers - the proper API is the local_read_flags API. + * Will go away in v2.6.26. + */ +#define local_save_flags local_read_flags +#define __local_save_flags __local_read_flags +#define raw_local_save_flags raw_local_read_flags +#define __raw_local_save_flags __raw_local_read_flags + #endif ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-21 11:12 ` Ingo Molnar @ 2007-12-21 11:34 ` Andrew Morton 2007-12-21 12:31 ` Ingo Molnar 0 siblings, 1 reply; 19+ messages in thread From: Andrew Morton @ 2007-12-21 11:34 UTC (permalink / raw) To: Ingo Molnar; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel On Fri, 21 Dec 2007 12:12:07 +0100 Ingo Molnar <mingo@elte.hu> wrote: > > * Andrew Morton <akpm@linux-foundation.org> wrote: > > > I'd suggest that we add a local_read_flags() along with > > local_save_flags(). Then I can merge the parts of the patch which > > don't get destroyed by ongoing churn and then we can come in and clean > > up the stragglers later. > > ah, indeed. > > like the patch below? (Only local_save_flags() should be used by drivers > - but i stuck in the other variants as well for completeness.) > > Ingo > > --------------------> > Subject: migration helpers for local_save_flags => local_read_flags rename > From: Ingo Molnar <mingo@elte.hu> > > prepare for renaming of all local_save_flags variants to local_read_flags, > via migration helpers, as suggested by Andrew Morton. > > Signed-off-by: Ingo Molnar <mingo@elte.hu> > --- > include/linux/irqflags.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > Index: linux-x86.q/include/linux/irqflags.h > =================================================================== > --- linux-x86.q.orig/include/linux/irqflags.h > +++ linux-x86.q/include/linux/irqflags.h > @@ -93,4 +93,13 @@ > #define irqs_disabled_flags(flags) raw_irqs_disabled_flags(flags) > #endif /* CONFIG_X86 */ > > +/* > + * Migration helpers - the proper API is the local_read_flags API. > + * Will go away in v2.6.26. > + */ > +#define local_save_flags local_read_flags > +#define __local_save_flags __local_read_flags > +#define raw_local_save_flags raw_local_read_flags > +#define __raw_local_save_flags __raw_local_read_flags > + Looks good. We also have local_irq_save(), raw_local_irq_save() and __raw_local_irq_save() which might or might not disable interrupts. (Do we really need three flavours of these?) I guess that people's understanding of spin_lock_irqsave() (note the irqsave versus irq_save inconsistency) is sufficiently good for nobody to get tripped up by local_irq_save(). But it's a poor name nonetheless. It'd be nice to move away from macros too if poss? ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: Linux 2.6.24-rc5 x86 architecture no longer Oopses... 2007-12-21 11:34 ` Andrew Morton @ 2007-12-21 12:31 ` Ingo Molnar 0 siblings, 0 replies; 19+ messages in thread From: Ingo Molnar @ 2007-12-21 12:31 UTC (permalink / raw) To: Andrew Morton; +Cc: trond.myklebust, tglx, mingo, hpa, linux-kernel * Andrew Morton <akpm@linux-foundation.org> wrote: > > +/* > > + * Migration helpers - the proper API is the local_read_flags API. > > + * Will go away in v2.6.26. > > + */ > > +#define local_save_flags local_read_flags > > +#define __local_save_flags __local_read_flags > > +#define raw_local_save_flags raw_local_read_flags > > +#define __raw_local_save_flags __raw_local_read_flags > > + > > Looks good. We also have local_irq_save(), raw_local_irq_save() and > __raw_local_irq_save() which might or might not disable interrupts. > (Do we really need three flavours of these?) all disable interrupts. All the raw_ and __ APIs are for internal use only, they should _not_ be used by anything but directly lockdep related code. > I guess that people's understanding of spin_lock_irqsave() (note the > irqsave versus irq_save inconsistency) is sufficiently good for nobody > to get tripped up by local_irq_save(). But it's a poor name > nonetheless. yeah, but it's the historic name that stems from the old cli() API that had "global scope". I guess these days people know that irq-disabling is a CPU-local business, not a global thing? I cannot think of any good alternative name though. Ingo ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2007-12-21 12:31 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-12-20 22:40 Linux 2.6.24-rc5 x86 architecture no longer Oopses Trond Myklebust 2007-12-20 22:54 ` Andrew Morton 2007-12-20 22:56 ` Andrew Morton 2007-12-20 23:06 ` Trond Myklebust 2007-12-21 0:55 ` Rafael J. Wysocki 2007-12-21 10:19 ` Ingo Molnar 2007-12-20 23:04 ` Trond Myklebust 2007-12-20 23:47 ` Ingo Molnar 2007-12-21 0:02 ` Andrew Morton 2007-12-21 0:05 ` Ingo Molnar 2007-12-21 0:19 ` Andrew Morton 2007-12-21 0:30 ` Ingo Molnar 2007-12-21 0:40 ` Andrew Morton 2007-12-21 0:44 ` Ingo Molnar 2007-12-21 10:27 ` Ingo Molnar 2007-12-21 10:42 ` Andrew Morton 2007-12-21 11:12 ` Ingo Molnar 2007-12-21 11:34 ` Andrew Morton 2007-12-21 12:31 ` Ingo Molnar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox