s390 build failure : kernel/workqueue.o
Subsystems (3)
Today's next fails to build on a s390 box with
CC kernel/workqueue.okernel/workqueue.c: In function 'init_workqueues':kernel/workqueue.c:3525: error: negative width in bit-field '<anonymous>' make[1]: *** [kernel/workqueue.o] Error 1
Yesterday's next was good.
The following patches added/changed the BUILD_BUG_ON() statement.
bdbc5dd7de5d07d6c9d3536e598956165a031d4c
workqueue: prepare for WQ_UNBOUND implementation7a22ad757ec75186ad43a5b4670fa7423ee8f480
workqueue: carry cpu number in work data once execution starts
I have gcc version 4.3.2 installed on the system.
Thanks
-Sachin
Signature · 6 lines
--------------------------------- Sachin Sant IBM Linux Technology Center India Systems and Technology Labs Bangalore, India ---------------------------------
Tejun Heo
maintainerHello,
Quoted 10 lines · Sachin Sant
Today's next fails to build on a s390 box with
CC
kernel/workqueue.okernel/workqueue.c: In function 'init_workqueues':kernel/workqueue.c:3525: error: negative width in bit-field '<anonymous>' make[1]: *** [kernel/workqueue.o] Error 1Yesterday's next was good.
The following patches added/changed theBUILD_BUG_ON()statement.
Quoted 6 lines
bdbc5dd7de5d07d6c9d3536e598956165a031d4c
workqueue: prepare forWQ_UNBOUNDimplementation7a22ad757ec75186ad43a5b4670fa7423ee8f480
workqueue: carry cpu number in work data once execution startsI have gcc version 4.3.2 installed on the system.
Hmmm... that's surprising. Can you please attach the .config?
Thanks.
Signature · 1 line
tejun
Quoted 19 lines · Tejun Heo
Hello,
Quoted 15 lines · Sachin Sant
Today's next fails to build on a s390 box with
CC
kernel/workqueue.okernel/workqueue.c: In function 'init_workqueues':kernel/workqueue.c:3525: error: negative width in bit-field '<anonymous>' make[1]: *** [kernel/workqueue.o] Error 1Yesterday's next was good.
The following patches added/changed theBUILD_BUG_ON()statement.
bdbc5dd7de5d07d6c9d3536e598956165a031d4c
workqueue: prepare forWQ_UNBOUNDimplementation7a22ad757ec75186ad43a5b4670fa7423ee8f480
workqueue: carry cpu number in work data once execution starts
Quoted 5 lines
Quoted 2 lines
I have gcc version 4.3.2 installed on the system.
Hmmm... that's surprising. Can you please attach the .config?
Attached.
Thanks
-Sachin
Signature · 6 lines
--------------------------------- Sachin Sant IBM Linux Technology Center India Systems and Technology Labs Bangalore, India ---------------------------------
#
# Automatically generated make config: don't edit # Linux kernel version: 2.6.35-rc5
# Wed Jul 21 10:09:47 2010
#CONFIG_SCHED_MC=yCONFIG_MMU=yCONFIG_ZONE_DMA=yCONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_GENERIC_HWEIGHT=yCONFIG_GENERIC_TIME=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=yCONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_NO_IOMEM=yCONFIG_NO_DMA=yCONFIG_PGSTE=yCONFIG_VIRT_CPU_ACCOUNTING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_S390=yCONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_CONSTRUCTORS=y
#
# General setup
#CONFIG_EXPERIMENTAL=yCONFIG_LOCK_KERNEL=yCONFIG_INIT_ENV_ARG_LIMIT=32CONFIG_CROSS_COMPILE=""CONFIG_LOCALVERSION="-0.7-default"CONFIG_LOCALVERSION_AUTO=yCONFIG_HAVE_KERNEL_GZIP=yCONFIG_HAVE_KERNEL_BZIP2=yCONFIG_HAVE_KERNEL_LZMA=yCONFIG_HAVE_KERNEL_LZO=yCONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_LZO is not setCONFIG_SWAP=yCONFIG_SYSVIPC=yCONFIG_SYSVIPC_SYSCTL=yCONFIG_POSIX_MQUEUE=yCONFIG_POSIX_MQUEUE_SYSCTL=yCONFIG_BSD_PROCESS_ACCT=yCONFIG_BSD_PROCESS_ACCT_V3=yCONFIG_TASKSTATS=yCONFIG_TASK_DELAY_ACCT=yCONFIG_TASK_XACCT=yCONFIG_TASK_IO_ACCOUNTING=yCONFIG_AUDIT=yCONFIG_AUDITSYSCALL=yCONFIG_AUDIT_WATCH=yCONFIG_AUDIT_TREE=y
#
# RCU Subsystem
#CONFIG_TREE_RCU=y
# CONFIG_RCU_TRACE is not setCONFIG_RCU_FANOUT=32
# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_RCU_FAST_NO_HZ is not set
# CONFIG_TREE_RCU_TRACE is not setCONFIG_IKCONFIG=yCONFIG_IKCONFIG_PROC=yCONFIG_LOG_BUF_SHIFT=17CONFIG_CGROUPS=y
# CONFIG_CGROUP_DEBUG is not setCONFIG_CGROUP_NS=yCONFIG_CGROUP_FREEZER=yCONFIG_CGROUP_DEVICE=yCONFIG_CPUSETS=yCONFIG_PROC_PID_CPUSET=yCONFIG_CGROUP_CPUACCT=yCONFIG_RESOURCE_COUNTERS=yCONFIG_CGROUP_MEM_RES_CTLR=y
# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not setCONFIG_CGROUP_SCHED=yCONFIG_FAIR_GROUP_SCHED=yCONFIG_RT_GROUP_SCHED=y
# CONFIG_BLK_CGROUP is not setCONFIG_MM_OWNER=yCONFIG_RELAY=yCONFIG_NAMESPACES=yCONFIG_UTS_NS=yCONFIG_IPC_NS=yCONFIG_USER_NS=yCONFIG_PID_NS=yCONFIG_NET_NS=yCONFIG_BLK_DEV_INITRD=yCONFIG_INITRAMFS_SOURCE=""CONFIG_RD_GZIP=yCONFIG_RD_BZIP2=yCONFIG_RD_LZMA=yCONFIG_RD_LZO=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not setCONFIG_SYSCTL=yCONFIG_ANON_INODES=y
# CONFIG_EMBEDDED is not setCONFIG_SYSCTL_SYSCALL=yCONFIG_KALLSYMS=yCONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_EXTRA_PASS is not setCONFIG_HOTPLUG=yCONFIG_PRINTK=yCONFIG_BUG=yCONFIG_ELF_CORE=yCONFIG_BASE_FULL=yCONFIG_FUTEX=yCONFIG_EPOLL=yCONFIG_SIGNALFD=yCONFIG_TIMERFD=yCONFIG_EVENTFD=yCONFIG_SHMEM=yCONFIG_AIO=yCONFIG_HAVE_PERF_EVENTS=y
#
# Kernel Performance Events And Counters
#CONFIG_PERF_EVENTS=yCONFIG_PERF_COUNTERS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not setCONFIG_VM_EVENT_COUNTERS=yCONFIG_COMPAT_BRK=yCONFIG_SLAB=y
# CONFIG_SLUB is not setCONFIG_PROFILING=yCONFIG_OPROFILE=mCONFIG_HAVE_OPROFILE=yCONFIG_KPROBES=yCONFIG_HAVE_SYSCALL_WRAPPERS=yCONFIG_KRETPROBES=yCONFIG_HAVE_KPROBES=yCONFIG_HAVE_KRETPROBES=yCONFIG_HAVE_ARCH_TRACEHOOK=yCONFIG_USE_GENERIC_SMP_HELPERS=yCONFIG_HAVE_REGS_AND_STACK_ACCESS_API=yCONFIG_HAVE_DEFAULT_NO_SPIN_MUTEXES=y
#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not setCONFIG_SLOW_WORK=yCONFIG_SLOW_WORK_DEBUG=y
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not setCONFIG_SLABINFO=yCONFIG_RT_MUTEXES=yCONFIG_BASE_SMALL=0CONFIG_MODULES=yCONFIG_MODULE_FORCE_LOAD=yCONFIG_MODULE_UNLOAD=yCONFIG_MODULE_FORCE_UNLOAD=yCONFIG_MODVERSIONS=yCONFIG_MODULE_SRCVERSION_ALL=yCONFIG_INIT_ALL_POSSIBLE=yCONFIG_STOP_MACHINE=yCONFIG_BLOCK=yCONFIG_BLK_DEV_BSG=yCONFIG_BLK_DEV_INTEGRITY=yCONFIG_BLOCK_COMPAT=y
#
# IO Schedulers
#CONFIG_IOSCHED_NOOP=yCONFIG_IOSCHED_DEADLINE=yCONFIG_IOSCHED_CFQ=yCONFIG_DEFAULT_DEADLINE=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not setCONFIG_DEFAULT_IOSCHED="deadline"CONFIG_PREEMPT_NOTIFIERS=yCONFIG_ARCH_INLINE_SPIN_TRYLOCK=yCONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=yCONFIG_ARCH_INLINE_SPIN_LOCK=yCONFIG_ARCH_INLINE_SPIN_LOCK_BH=yCONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=yCONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=yCONFIG_ARCH_INLINE_SPIN_UNLOCK=yCONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=yCONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=yCONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=yCONFIG_ARCH_INLINE_READ_TRYLOCK=yCONFIG_ARCH_INLINE_READ_LOCK=yCONFIG_ARCH_INLINE_READ_LOCK_BH=yCONFIG_ARCH_INLINE_READ_LOCK_IRQ=yCONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=yCONFIG_ARCH_INLINE_READ_UNLOCK=yCONFIG_ARCH_INLINE_READ_UNLOCK_BH=yCONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=yCONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=yCONFIG_ARCH_INLINE_WRITE_TRYLOCK=yCONFIG_ARCH_INLINE_WRITE_LOCK=yCONFIG_ARCH_INLINE_WRITE_LOCK_BH=yCONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=yCONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=yCONFIG_ARCH_INLINE_WRITE_UNLOCK=yCONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=yCONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=yCONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=yCONFIG_INLINE_SPIN_TRYLOCK=yCONFIG_INLINE_SPIN_TRYLOCK_BH=yCONFIG_INLINE_SPIN_LOCK=yCONFIG_INLINE_SPIN_LOCK_BH=yCONFIG_INLINE_SPIN_LOCK_IRQ=yCONFIG_INLINE_SPIN_LOCK_IRQSAVE=yCONFIG_INLINE_SPIN_UNLOCK=yCONFIG_INLINE_SPIN_UNLOCK_BH=yCONFIG_INLINE_SPIN_UNLOCK_IRQ=yCONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE=yCONFIG_INLINE_READ_TRYLOCK=yCONFIG_INLINE_READ_LOCK=yCONFIG_INLINE_READ_LOCK_BH=yCONFIG_INLINE_READ_LOCK_IRQ=yCONFIG_INLINE_READ_LOCK_IRQSAVE=yCONFIG_INLINE_READ_UNLOCK=yCONFIG_INLINE_READ_UNLOCK_BH=yCONFIG_INLINE_READ_UNLOCK_IRQ=yCONFIG_INLINE_READ_UNLOCK_IRQRESTORE=yCONFIG_INLINE_WRITE_TRYLOCK=yCONFIG_INLINE_WRITE_LOCK=yCONFIG_INLINE_WRITE_LOCK_BH=yCONFIG_INLINE_WRITE_LOCK_IRQ=yCONFIG_INLINE_WRITE_LOCK_IRQSAVE=yCONFIG_INLINE_WRITE_UNLOCK=yCONFIG_INLINE_WRITE_UNLOCK_BH=yCONFIG_INLINE_WRITE_UNLOCK_IRQ=yCONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE=y
# CONFIG_MUTEX_SPIN_ON_OWNER is not setCONFIG_FREEZER=y
#
# Base setup
#
#
# Processor type and features
#CONFIG_TICK_ONESHOT=yCONFIG_NO_HZ=yCONFIG_HIGH_RES_TIMERS=yCONFIG_GENERIC_CLOCKEVENTS_BUILD=yCONFIG_64BIT=y
# CONFIG_KTIME_SCALAR is not setCONFIG_SMP=yCONFIG_NR_CPUS=64CONFIG_HOTPLUG_CPU=yCONFIG_COMPAT=yCONFIG_SYSVIPC_COMPAT=yCONFIG_AUDIT_ARCH=yCONFIG_S390_EXEC_PROTECT=y
#
# Code generation options
#CONFIG_MARCH_Z900=y
# CONFIG_MARCH_Z990 is not set
# CONFIG_MARCH_Z9_109 is not set
# CONFIG_MARCH_Z10 is not setCONFIG_PACK_STACK=y
# CONFIG_SMALL_STACK is not setCONFIG_CHECK_STACK=yCONFIG_STACK_GUARD=256CONFIG_WARN_STACK=yCONFIG_WARN_STACK_SIZE=256CONFIG_ARCH_POPULATES_NODE_MAP=y
#
# Kernel preemption
#CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not setCONFIG_ARCH_SPARSEMEM_ENABLE=yCONFIG_ARCH_SPARSEMEM_DEFAULT=yCONFIG_ARCH_SELECT_MEMORY_MODEL=yCONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=yCONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=yCONFIG_ARCH_HIBERNATION_POSSIBLE=yCONFIG_SELECT_MEMORY_MODEL=yCONFIG_SPARSEMEM_MANUAL=yCONFIG_SPARSEMEM=yCONFIG_HAVE_MEMORY_PRESENT=yCONFIG_SPARSEMEM_EXTREME=yCONFIG_SPARSEMEM_VMEMMAP_ENABLE=yCONFIG_SPARSEMEM_VMEMMAP=yCONFIG_MEMORY_HOTPLUG=yCONFIG_MEMORY_HOTPLUG_SPARSE=yCONFIG_MEMORY_HOTREMOVE=yCONFIG_PAGEFLAGS_EXTENDED=yCONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_COMPACTION is not setCONFIG_MIGRATION=yCONFIG_PHYS_ADDR_T_64BIT=yCONFIG_ZONE_DMA_FLAG=1CONFIG_BOUNCE=yCONFIG_VIRT_TO_BUS=y
# CONFIG_KSM is not setCONFIG_DEFAULT_MMAP_MIN_ADDR=65536
#
# I/O subsystem configuration
#CONFIG_QDIO=mCONFIG_CHSC_SCH=m
#
# Misc
#CONFIG_IPL=y
# CONFIG_IPL_TAPE is not setCONFIG_IPL_VM=yCONFIG_BINFMT_ELF=yCONFIG_COMPAT_BINFMT_ELF=yCONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
# CONFIG_HAVE_AOUT is not setCONFIG_BINFMT_MISC=mCONFIG_FORCE_MAX_ZONEORDER=9CONFIG_PFAULT=yCONFIG_SHARED_KERNEL=yCONFIG_CMM=mCONFIG_CMM_IUCV=yCONFIG_APPLDATA_BASE=yCONFIG_APPLDATA_MEM=mCONFIG_APPLDATA_OS=mCONFIG_APPLDATA_NET_SUM=mCONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not setCONFIG_HZ=100CONFIG_SCHED_HRTICK=yCONFIG_S390_HYPFS_FS=yCONFIG_KEXEC=yCONFIG_ZFCPDUMP=yCONFIG_S390_GUEST=yCONFIG_SECCOMP=y
#
# Power Management
#CONFIG_PM=y
# CONFIG_PM_DEBUG is not setCONFIG_PM_SLEEP_SMP=yCONFIG_PM_SLEEP=yCONFIG_HIBERNATION=yCONFIG_PM_STD_PARTITION=""
# CONFIG_PM_RUNTIME is not setCONFIG_PM_OPS=yCONFIG_NET=y
#
# Networking options
#CONFIG_PACKET=mCONFIG_UNIX=yCONFIG_XFRM=yCONFIG_XFRM_USER=mCONFIG_XFRM_SUB_POLICY=yCONFIG_XFRM_MIGRATE=y
# CONFIG_XFRM_STATISTICS is not setCONFIG_XFRM_IPCOMP=mCONFIG_NET_KEY=mCONFIG_NET_KEY_MIGRATE=yCONFIG_IUCV=yCONFIG_AFIUCV=mCONFIG_INET=yCONFIG_IP_MULTICAST=yCONFIG_IP_ADVANCED_ROUTER=yCONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not setCONFIG_IP_FIB_HASH=yCONFIG_IP_MULTIPLE_TABLES=yCONFIG_IP_ROUTE_MULTIPATH=yCONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not setCONFIG_NET_IPIP=mCONFIG_NET_IPGRE=mCONFIG_NET_IPGRE_BROADCAST=yCONFIG_IP_MROUTE=y
# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not setCONFIG_IP_PIMSM_V1=yCONFIG_IP_PIMSM_V2=y
# CONFIG_ARPD is not setCONFIG_SYN_COOKIES=yCONFIG_INET_AH=mCONFIG_INET_ESP=mCONFIG_INET_IPCOMP=mCONFIG_INET_XFRM_TUNNEL=mCONFIG_INET_TUNNEL=mCONFIG_INET_XFRM_MODE_TRANSPORT=mCONFIG_INET_XFRM_MODE_TUNNEL=mCONFIG_INET_XFRM_MODE_BEET=mCONFIG_INET_LRO=yCONFIG_INET_DIAG=mCONFIG_INET_TCP_DIAG=mCONFIG_TCP_CONG_ADVANCED=yCONFIG_TCP_CONG_BIC=mCONFIG_TCP_CONG_CUBIC=yCONFIG_TCP_CONG_WESTWOOD=mCONFIG_TCP_CONG_HTCP=mCONFIG_TCP_CONG_HSTCP=mCONFIG_TCP_CONG_HYBLA=mCONFIG_TCP_CONG_VEGAS=mCONFIG_TCP_CONG_SCALABLE=mCONFIG_TCP_CONG_LP=mCONFIG_TCP_CONG_VENO=mCONFIG_TCP_CONG_YEAH=mCONFIG_TCP_CONG_ILLINOIS=mCONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not setCONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not setCONFIG_IPV6=mCONFIG_IPV6_PRIVACY=yCONFIG_IPV6_ROUTER_PREF=yCONFIG_IPV6_ROUTE_INFO=y
# CONFIG_IPV6_OPTIMISTIC_DAD is not setCONFIG_INET6_AH=mCONFIG_INET6_ESP=mCONFIG_INET6_IPCOMP=mCONFIG_IPV6_MIP6=mCONFIG_INET6_XFRM_TUNNEL=mCONFIG_INET6_TUNNEL=mCONFIG_INET6_XFRM_MODE_TRANSPORT=mCONFIG_INET6_XFRM_MODE_TUNNEL=mCONFIG_INET6_XFRM_MODE_BEET=mCONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=mCONFIG_IPV6_SIT=m
# CONFIG_IPV6_SIT_6RD is not setCONFIG_IPV6_NDISC_NODETYPE=yCONFIG_IPV6_TUNNEL=mCONFIG_IPV6_MULTIPLE_TABLES=yCONFIG_IPV6_SUBTREES=y
# CONFIG_IPV6_MROUTE is not setCONFIG_NETLABEL=yCONFIG_NETWORK_SECMARK=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not setCONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not setCONFIG_NETFILTER_ADVANCED=yCONFIG_BRIDGE_NETFILTER=y
#
# Core Netfilter Configuration
#CONFIG_NETFILTER_NETLINK=mCONFIG_NETFILTER_NETLINK_QUEUE=mCONFIG_NETFILTER_NETLINK_LOG=mCONFIG_NF_CONNTRACK=mCONFIG_NF_CONNTRACK_MARK=yCONFIG_NF_CONNTRACK_SECMARK=yCONFIG_NF_CONNTRACK_EVENTS=yCONFIG_NF_CT_PROTO_DCCP=mCONFIG_NF_CT_PROTO_GRE=mCONFIG_NF_CT_PROTO_SCTP=mCONFIG_NF_CT_PROTO_UDPLITE=mCONFIG_NF_CONNTRACK_AMANDA=mCONFIG_NF_CONNTRACK_FTP=mCONFIG_NF_CONNTRACK_H323=mCONFIG_NF_CONNTRACK_IRC=mCONFIG_NF_CONNTRACK_NETBIOS_NS=mCONFIG_NF_CONNTRACK_PPTP=mCONFIG_NF_CONNTRACK_SANE=mCONFIG_NF_CONNTRACK_SIP=mCONFIG_NF_CONNTRACK_TFTP=mCONFIG_NF_CT_NETLINK=mCONFIG_NETFILTER_TPROXY=mCONFIG_NETFILTER_XTABLES=m
#
# Xtables combined modules
#CONFIG_NETFILTER_XT_MARK=mCONFIG_NETFILTER_XT_CONNMARK=m
#
# Xtables targets
#CONFIG_NETFILTER_XT_TARGET_CLASSIFY=mCONFIG_NETFILTER_XT_TARGET_CONNMARK=mCONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
# CONFIG_NETFILTER_XT_TARGET_CT is not setCONFIG_NETFILTER_XT_TARGET_DSCP=mCONFIG_NETFILTER_XT_TARGET_HL=m
# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not setCONFIG_NETFILTER_XT_TARGET_MARK=mCONFIG_NETFILTER_XT_TARGET_NFLOG=mCONFIG_NETFILTER_XT_TARGET_NFQUEUE=mCONFIG_NETFILTER_XT_TARGET_NOTRACK=mCONFIG_NETFILTER_XT_TARGET_RATEEST=m
# CONFIG_NETFILTER_XT_TARGET_TEE is not setCONFIG_NETFILTER_XT_TARGET_TPROXY=mCONFIG_NETFILTER_XT_TARGET_TRACE=mCONFIG_NETFILTER_XT_TARGET_SECMARK=mCONFIG_NETFILTER_XT_TARGET_TCPMSS=mCONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
#
# Xtables matches
#CONFIG_NETFILTER_XT_MATCH_CLUSTER=mCONFIG_NETFILTER_XT_MATCH_COMMENT=mCONFIG_NETFILTER_XT_MATCH_CONNBYTES=mCONFIG_NETFILTER_XT_MATCH_CONNLIMIT=mCONFIG_NETFILTER_XT_MATCH_CONNMARK=mCONFIG_NETFILTER_XT_MATCH_CONNTRACK=mCONFIG_NETFILTER_XT_MATCH_DCCP=mCONFIG_NETFILTER_XT_MATCH_DSCP=mCONFIG_NETFILTER_XT_MATCH_ESP=mCONFIG_NETFILTER_XT_MATCH_HASHLIMIT=mCONFIG_NETFILTER_XT_MATCH_HELPER=mCONFIG_NETFILTER_XT_MATCH_HL=mCONFIG_NETFILTER_XT_MATCH_IPRANGE=mCONFIG_NETFILTER_XT_MATCH_LENGTH=mCONFIG_NETFILTER_XT_MATCH_LIMIT=mCONFIG_NETFILTER_XT_MATCH_MAC=mCONFIG_NETFILTER_XT_MATCH_MARK=mCONFIG_NETFILTER_XT_MATCH_MULTIPORT=mCONFIG_NETFILTER_XT_MATCH_OSF=mCONFIG_NETFILTER_XT_MATCH_OWNER=mCONFIG_NETFILTER_XT_MATCH_POLICY=mCONFIG_NETFILTER_XT_MATCH_PHYSDEV=mCONFIG_NETFILTER_XT_MATCH_PKTTYPE=mCONFIG_NETFILTER_XT_MATCH_QUOTA=mCONFIG_NETFILTER_XT_MATCH_RATEEST=mCONFIG_NETFILTER_XT_MATCH_REALM=mCONFIG_NETFILTER_XT_MATCH_RECENT=mCONFIG_NETFILTER_XT_MATCH_SCTP=mCONFIG_NETFILTER_XT_MATCH_SOCKET=mCONFIG_NETFILTER_XT_MATCH_STATE=mCONFIG_NETFILTER_XT_MATCH_STATISTIC=mCONFIG_NETFILTER_XT_MATCH_STRING=mCONFIG_NETFILTER_XT_MATCH_TCPMSS=mCONFIG_NETFILTER_XT_MATCH_TIME=mCONFIG_NETFILTER_XT_MATCH_U32=mCONFIG_IP_VS=m
# CONFIG_IP_VS_IPV6 is not set
# CONFIG_IP_VS_DEBUG is not setCONFIG_IP_VS_TAB_BITS=12
#
# IPVS transport protocol load balancing support
#CONFIG_IP_VS_PROTO_TCP=yCONFIG_IP_VS_PROTO_UDP=yCONFIG_IP_VS_PROTO_AH_ESP=yCONFIG_IP_VS_PROTO_ESP=yCONFIG_IP_VS_PROTO_AH=y
# CONFIG_IP_VS_PROTO_SCTP is not set
#
# IPVS scheduler
#CONFIG_IP_VS_RR=mCONFIG_IP_VS_WRR=mCONFIG_IP_VS_LC=mCONFIG_IP_VS_WLC=mCONFIG_IP_VS_LBLC=mCONFIG_IP_VS_LBLCR=mCONFIG_IP_VS_DH=mCONFIG_IP_VS_SH=mCONFIG_IP_VS_SED=mCONFIG_IP_VS_NQ=m
#
# IPVS application helper
#CONFIG_IP_VS_FTP=m
#
# IP: Netfilter Configuration
#CONFIG_NF_DEFRAG_IPV4=mCONFIG_NF_CONNTRACK_IPV4=m
# CONFIG_NF_CONNTRACK_PROC_COMPAT is not setCONFIG_IP_NF_QUEUE=mCONFIG_IP_NF_IPTABLES=mCONFIG_IP_NF_MATCH_ADDRTYPE=mCONFIG_IP_NF_MATCH_AH=mCONFIG_IP_NF_MATCH_ECN=mCONFIG_IP_NF_MATCH_TTL=mCONFIG_IP_NF_FILTER=mCONFIG_IP_NF_TARGET_REJECT=mCONFIG_IP_NF_TARGET_LOG=mCONFIG_IP_NF_TARGET_ULOG=mCONFIG_NF_NAT=mCONFIG_NF_NAT_NEEDED=yCONFIG_IP_NF_TARGET_MASQUERADE=mCONFIG_IP_NF_TARGET_NETMAP=mCONFIG_IP_NF_TARGET_REDIRECT=mCONFIG_NF_NAT_SNMP_BASIC=mCONFIG_NF_NAT_PROTO_DCCP=mCONFIG_NF_NAT_PROTO_GRE=mCONFIG_NF_NAT_PROTO_UDPLITE=mCONFIG_NF_NAT_PROTO_SCTP=mCONFIG_NF_NAT_FTP=mCONFIG_NF_NAT_IRC=mCONFIG_NF_NAT_TFTP=mCONFIG_NF_NAT_AMANDA=mCONFIG_NF_NAT_PPTP=mCONFIG_NF_NAT_H323=mCONFIG_NF_NAT_SIP=mCONFIG_IP_NF_MANGLE=mCONFIG_IP_NF_TARGET_CLUSTERIP=mCONFIG_IP_NF_TARGET_ECN=mCONFIG_IP_NF_TARGET_TTL=mCONFIG_IP_NF_RAW=mCONFIG_IP_NF_SECURITY=mCONFIG_IP_NF_ARPTABLES=mCONFIG_IP_NF_ARPFILTER=mCONFIG_IP_NF_ARP_MANGLE=m
#
# IPv6: Netfilter Configuration
#CONFIG_NF_CONNTRACK_IPV6=mCONFIG_IP6_NF_QUEUE=mCONFIG_IP6_NF_IPTABLES=mCONFIG_IP6_NF_MATCH_AH=mCONFIG_IP6_NF_MATCH_EUI64=mCONFIG_IP6_NF_MATCH_FRAG=mCONFIG_IP6_NF_MATCH_OPTS=mCONFIG_IP6_NF_MATCH_HL=mCONFIG_IP6_NF_MATCH_IPV6HEADER=mCONFIG_IP6_NF_MATCH_MH=mCONFIG_IP6_NF_MATCH_RT=mCONFIG_IP6_NF_TARGET_HL=mCONFIG_IP6_NF_TARGET_LOG=mCONFIG_IP6_NF_FILTER=mCONFIG_IP6_NF_TARGET_REJECT=mCONFIG_IP6_NF_MANGLE=mCONFIG_IP6_NF_RAW=mCONFIG_IP6_NF_SECURITY=m
# CONFIG_BRIDGE_NF_EBTABLES is not setCONFIG_IP_DCCP=mCONFIG_INET_DCCP_DIAG=m
#
# DCCP CCIDs Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP_CCID2_DEBUG is not setCONFIG_IP_DCCP_CCID3=y
# CONFIG_IP_DCCP_CCID3_DEBUG is not setCONFIG_IP_DCCP_CCID3_RTO=100CONFIG_IP_DCCP_TFRC_LIB=y
#
# DCCP Kernel Hacking
#
# CONFIG_IP_DCCP_DEBUG is not setCONFIG_NET_DCCPPROBE=mCONFIG_IP_SCTP=m
# CONFIG_NET_SCTPPROBE is not set
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
# CONFIG_SCTP_HMAC_SHA1 is not setCONFIG_SCTP_HMAC_MD5=yCONFIG_RDS=mCONFIG_RDS_TCP=m
# CONFIG_RDS_DEBUG is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not setCONFIG_STP=mCONFIG_GARP=mCONFIG_BRIDGE=mCONFIG_BRIDGE_IGMP_SNOOPING=yCONFIG_VLAN_8021Q=mCONFIG_VLAN_8021Q_GVRP=y
# CONFIG_DECNET is not setCONFIG_LLC=y
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not setCONFIG_PHONET=mCONFIG_IEEE802154=mCONFIG_NET_SCHED=y
#
# Queueing/Scheduling
#CONFIG_NET_SCH_CBQ=mCONFIG_NET_SCH_HTB=mCONFIG_NET_SCH_HFSC=mCONFIG_NET_SCH_PRIO=mCONFIG_NET_SCH_MULTIQ=mCONFIG_NET_SCH_RED=mCONFIG_NET_SCH_SFQ=mCONFIG_NET_SCH_TEQL=mCONFIG_NET_SCH_TBF=mCONFIG_NET_SCH_GRED=mCONFIG_NET_SCH_DSMARK=mCONFIG_NET_SCH_NETEM=mCONFIG_NET_SCH_DRR=mCONFIG_NET_SCH_INGRESS=m
#
# Classification
#CONFIG_NET_CLS=yCONFIG_NET_CLS_BASIC=mCONFIG_NET_CLS_TCINDEX=mCONFIG_NET_CLS_ROUTE4=mCONFIG_NET_CLS_ROUTE=yCONFIG_NET_CLS_FW=mCONFIG_NET_CLS_U32=mCONFIG_CLS_U32_PERF=yCONFIG_CLS_U32_MARK=yCONFIG_NET_CLS_RSVP=mCONFIG_NET_CLS_RSVP6=mCONFIG_NET_CLS_FLOW=mCONFIG_NET_CLS_CGROUP=y
# CONFIG_NET_EMATCH is not setCONFIG_NET_CLS_ACT=yCONFIG_NET_ACT_POLICE=mCONFIG_NET_ACT_GACT=mCONFIG_GACT_PROB=yCONFIG_NET_ACT_MIRRED=mCONFIG_NET_ACT_IPT=mCONFIG_NET_ACT_NAT=mCONFIG_NET_ACT_PEDIT=mCONFIG_NET_ACT_SIMP=mCONFIG_NET_ACT_SKBEDIT=m
# CONFIG_NET_CLS_IND is not setCONFIG_NET_SCH_FIFO=yCONFIG_DCB=yCONFIG_RPS=y
#
# Network testing
#CONFIG_NET_PKTGEN=mCONFIG_NET_TCPPROBE=mCONFIG_CAN=mCONFIG_CAN_RAW=mCONFIG_CAN_BCM=m
#
# CAN Device Drivers
#CONFIG_CAN_VCAN=mCONFIG_CAN_DEV=mCONFIG_CAN_CALC_BITTIMING=y
# CONFIG_CAN_DEBUG_DEVICES is not setCONFIG_AF_RXRPC=m
# CONFIG_AF_RXRPC_DEBUG is not setCONFIG_RXKAD=mCONFIG_FIB_RULES=yCONFIG_WIMAX=mCONFIG_WIMAX_DEBUG_LEVEL=8CONFIG_RFKILL=mCONFIG_NET_9P=m
# CONFIG_NET_9P_VIRTIO is not set
# CONFIG_NET_9P_DEBUG is not set
# CONFIG_CAIF is not set
# CONFIG_PCMCIA is not setCONFIG_CCW=y
#
# Device Drivers
#
#
# Generic Driver Options
#CONFIG_UEVENT_HELPER_PATH=""CONFIG_DEVTMPFS=yCONFIG_DEVTMPFS_MOUNT=yCONFIG_STANDALONE=yCONFIG_PREVENT_FIRMWARE_BUILD=yCONFIG_FW_LOADER=yCONFIG_FIRMWARE_IN_KERNEL=yCONFIG_EXTRA_FIRMWARE=""
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not setCONFIG_SYS_HYPERVISOR=yCONFIG_CONNECTOR=yCONFIG_PROC_EVENTS=yCONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_COW_COMMON is not setCONFIG_BLK_DEV_LOOP=mCONFIG_BLK_DEV_CRYPTOLOOP=m
# CONFIG_BLK_DEV_DRBD is not setCONFIG_BLK_DEV_NBD=mCONFIG_BLK_DEV_OSD=mCONFIG_BLK_DEV_RAM=mCONFIG_BLK_DEV_RAM_COUNT=16CONFIG_BLK_DEV_RAM_SIZE=32768CONFIG_BLK_DEV_XIP=yCONFIG_CDROM_PKTCDVD=mCONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not setCONFIG_ATA_OVER_ETH=m
#
# S/390 block device drivers
#CONFIG_BLK_DEV_XPRAM=mCONFIG_DCSSBLK=mCONFIG_DASD=mCONFIG_DASD_PROFILE=yCONFIG_DASD_ECKD=mCONFIG_DASD_FBA=mCONFIG_DASD_DIAG=mCONFIG_DASD_EER=yCONFIG_VIRTIO_BLK=mCONFIG_MISC_DEVICES=yCONFIG_ENCLOSURE_SERVICES=mCONFIG_C2PORT=m
#
# EEPROM support
#CONFIG_EEPROM_93CX6=m
#
# SCSI device support
#CONFIG_SCSI_MOD=mCONFIG_RAID_ATTRS=mCONFIG_SCSI=m
# CONFIG_SCSI_DMA is not setCONFIG_SCSI_TGT=mCONFIG_SCSI_NETLINK=yCONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#CONFIG_BLK_DEV_SD=mCONFIG_CHR_DEV_ST=mCONFIG_CHR_DEV_OSST=mCONFIG_BLK_DEV_SR=m
# CONFIG_BLK_DEV_SR_VENDOR is not setCONFIG_CHR_DEV_SG=mCONFIG_CHR_DEV_SCH=mCONFIG_SCSI_ENCLOSURE=mCONFIG_SCSI_MULTI_LUN=yCONFIG_SCSI_CONSTANTS=yCONFIG_SCSI_LOGGING=y
# CONFIG_SCSI_SCAN_ASYNC is not setCONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
#CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m CONFIG_SCSI_FC_TGT_ATTRS=y CONFIG_SCSI_ISCSI_ATTRS=m CONFIG_SCSI_SAS_ATTRS=m CONFIG_SCSI_SAS_LIBSAS=m CONFIG_SCSI_SAS_HOST_SMP=y CONFIG_SCSI_SAS_LIBSAS_DEBUG=y CONFIG_SCSI_SRP_ATTRS=m CONFIG_SCSI_SRP_TGT_ATTRS=y CONFIG_SCSI_LOWLEVEL=yCONFIG_ISCSI_TCP=mCONFIG_LIBFC=mCONFIG_LIBFCOE=mCONFIG_SCSI_DEBUG=mCONFIG_ZFCP=mCONFIG_SCSI_DH=mCONFIG_SCSI_DH_RDAC=m CONFIG_SCSI_DH_HP_SW=m CONFIG_SCSI_DH_EMC=mCONFIG_SCSI_DH_ALUA=m CONFIG_SCSI_OSD_INITIATOR=m CONFIG_SCSI_OSD_ULD=m CONFIG_SCSI_OSD_DPRINT_SENSE=1
# CONFIG_SCSI_OSD_DEBUG is not set CONFIG_MD=yCONFIG_BLK_DEV_MD=yCONFIG_MD_AUTODETECT=yCONFIG_MD_LINEAR=mCONFIG_MD_RAID0=mCONFIG_MD_RAID1=mCONFIG_MD_RAID10=mCONFIG_MD_RAID456=m
# CONFIG_MULTICORE_RAID456 is not set CONFIG_MD_RAID6_PQ=m CONFIG_ASYNC_RAID6_TEST=m CONFIG_MD_MULTIPATH=mCONFIG_MD_FAULTY=mCONFIG_BLK_DEV_DM=m
# CONFIG_DM_DEBUG is not set CONFIG_DM_CRYPT=mCONFIG_DM_SNAPSHOT=mCONFIG_DM_MIRROR=m CONFIG_DM_LOG_USERSPACE=mCONFIG_DM_ZERO=mCONFIG_DM_MULTIPATH=m CONFIG_DM_MULTIPATH_QL=m CONFIG_DM_MULTIPATH_ST=mCONFIG_DM_DELAY=mCONFIG_DM_UEVENT=yCONFIG_NETDEVICES=yCONFIG_IFB=mCONFIG_DUMMY=mCONFIG_BONDING=mCONFIG_MACVLAN=m
# CONFIG_MACVTAP is not set CONFIG_EQUALIZER=mCONFIG_TUN=mCONFIG_VETH=mCONFIG_NET_ETHERNET=yCONFIG_MII=m
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IBM_NEW_EMAC_RGMII is not set
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set # CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set CONFIG_TR=y
#
# WiMAX Wireless Broadband devices
#
#
# Enable USB support to see WiMAX USB drivers
#
#
# Enable MMC support to see WiMAX SDIO drivers
#
# CONFIG_WAN is not setCONFIG_IEEE802154_DRIVERS=mCONFIG_IEEE802154_FAKEHARD=m
#
# S/390 network device drivers
#CONFIG_LCS=mCONFIG_CTCM=mCONFIG_NETIUCV=mCONFIG_SMSGIUCV=m
# CONFIG_SMSGIUCV_EVENT is not setCONFIG_CLAW=mCONFIG_QETH=mCONFIG_QETH_L2=mCONFIG_QETH_L3=mCONFIG_QETH_IPV6=yCONFIG_CCWGROUP=m
#
# CAIF transport drivers
#CONFIG_PPP=m
# CONFIG_PPP_MULTILINK is not set
# CONFIG_PPP_FILTER is not setCONFIG_PPP_ASYNC=mCONFIG_PPP_SYNC_TTY=mCONFIG_PPP_DEFLATE=mCONFIG_PPP_BSDCOMP=mCONFIG_PPP_MPPE=mCONFIG_PPPOE=m
# CONFIG_SLIP is not setCONFIG_SLHC=m
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not setCONFIG_VIRTIO_NET=m
#
# Character devices
#CONFIG_DEVKMEM=y
# CONFIG_N_GSM is not setCONFIG_UNIX98_PTYS=yCONFIG_DEVPTS_MULTIPLE_INSTANCES=yCONFIG_LEGACY_PTYS=yCONFIG_LEGACY_PTY_COUNT=0CONFIG_HVC_DRIVER=yCONFIG_HVC_IUCV=yCONFIG_VIRTIO_CONSOLE=yCONFIG_HW_RANDOM=mCONFIG_HW_RANDOM_VIRTIO=m
# CONFIG_R3964 is not setCONFIG_RAW_DRIVER=mCONFIG_MAX_RAW_DEVS=4096CONFIG_HANGCHECK_TIMER=m
#
# S/390 character device drivers
#CONFIG_TN3270=yCONFIG_TN3270_TTY=yCONFIG_TN3270_FS=yCONFIG_TN3270_CONSOLE=yCONFIG_TN3215=yCONFIG_TN3215_CONSOLE=yCONFIG_CCW_CONSOLE=yCONFIG_SCLP_TTY=yCONFIG_SCLP_CONSOLE=yCONFIG_SCLP_VT220_TTY=yCONFIG_SCLP_VT220_CONSOLE=yCONFIG_SCLP_CPI=mCONFIG_SCLP_ASYNC=mCONFIG_S390_TAPE=m
#
# S/390 tape interface support
#CONFIG_S390_TAPE_BLOCK=y
#
# S/390 tape hardware support
#CONFIG_S390_TAPE_34XX=mCONFIG_S390_TAPE_3590=mCONFIG_VMLOGRDR=m
# CONFIG_VMCP is not setCONFIG_MONREADER=mCONFIG_MONWRITER=mCONFIG_S390_VMUR=m
#
# PPS support
#CONFIG_PPS=m
# CONFIG_PPS_DEBUG is not set
#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set
# CONFIG_PPS_CLIENT_LDISC is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_THERMAL is not setCONFIG_WATCHDOG=yCONFIG_WATCHDOG_NOWAYOUT=y
#
# Watchdog Device Drivers
#CONFIG_SOFT_WATCHDOG=mCONFIG_ZVM_WATCHDOG=y
# CONFIG_REGULATOR is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not setCONFIG_AUXDISPLAY=yCONFIG_STAGING=y
# CONFIG_STAGING_EXCLUDE_BUILD is not setCONFIG_ECHO=m
# CONFIG_COMEDI is not setCONFIG_POHMELFS=m
# CONFIG_POHMELFS_DEBUG is not setCONFIG_POHMELFS_CRYPTO=y
# CONFIG_SPECTRA is not set
# CONFIG_ZRAM is not set
# CONFIG_BATMAN_ADV is not set
#
# Texas Instruments shared transport line discipline #
# CONFIG_TI_ST is not set
#
# File systems
#CONFIG_EXT2_FS=mCONFIG_EXT2_FS_XATTR=yCONFIG_EXT2_FS_POSIX_ACL=yCONFIG_EXT2_FS_SECURITY=yCONFIG_EXT2_FS_XIP=yCONFIG_EXT3_FS=mCONFIG_EXT3_DEFAULTS_TO_ORDERED=yCONFIG_EXT3_FS_XATTR=yCONFIG_EXT3_FS_POSIX_ACL=yCONFIG_EXT3_FS_SECURITY=yCONFIG_EXT4_FS=mCONFIG_EXT4_FS_XATTR=yCONFIG_EXT4_FS_POSIX_ACL=yCONFIG_EXT4_FS_SECURITY=y
# CONFIG_EXT4_DEBUG is not setCONFIG_FS_XIP=yCONFIG_JBD=mCONFIG_JBD_DEBUG=yCONFIG_JBD2=mCONFIG_JBD2_DEBUG=yCONFIG_FS_MBCACHE=mCONFIG_REISERFS_FS=m
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not setCONFIG_REISERFS_FS_XATTR=yCONFIG_REISERFS_FS_POSIX_ACL=yCONFIG_REISERFS_FS_SECURITY=yCONFIG_JFS_FS=mCONFIG_JFS_POSIX_ACL=yCONFIG_JFS_SECURITY=y
# CONFIG_JFS_DEBUG is not setCONFIG_JFS_STATISTICS=yCONFIG_FS_POSIX_ACL=yCONFIG_XFS_FS=mCONFIG_XFS_QUOTA=yCONFIG_XFS_POSIX_ACL=yCONFIG_XFS_RT=y
# CONFIG_XFS_DEBUG is not setCONFIG_GFS2_FS=m
# CONFIG_GFS2_FS_LOCKING_DLM is not setCONFIG_OCFS2_FS=mCONFIG_OCFS2_FS_O2CB=mCONFIG_OCFS2_FS_USERSPACE_CLUSTER=mCONFIG_OCFS2_FS_STATS=yCONFIG_OCFS2_DEBUG_MASKLOG=y
# CONFIG_OCFS2_DEBUG_FS is not setCONFIG_BTRFS_FS=mCONFIG_BTRFS_FS_POSIX_ACL=yCONFIG_NILFS2_FS=mCONFIG_FILE_LOCKING=yCONFIG_FSNOTIFY=yCONFIG_DNOTIFY=yCONFIG_INOTIFY_USER=yCONFIG_FANOTIFY=y
# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not setCONFIG_QUOTA=yCONFIG_QUOTA_NETLINK_INTERFACE=yCONFIG_PRINT_QUOTA_WARNING=y
# CONFIG_QUOTA_DEBUG is not setCONFIG_QUOTA_TREE=mCONFIG_QFMT_V1=mCONFIG_QFMT_V2=mCONFIG_QUOTACTL=yCONFIG_AUTOFS_FS=mCONFIG_AUTOFS4_FS=mCONFIG_FUSE_FS=mCONFIG_CUSE=mCONFIG_GENERIC_ACL=y
#
# Caches
#CONFIG_FSCACHE=mCONFIG_FSCACHE_STATS=y
# CONFIG_FSCACHE_HISTOGRAM is not set
# CONFIG_FSCACHE_DEBUG is not setCONFIG_FSCACHE_OBJECT_LIST=yCONFIG_CACHEFILES=m
# CONFIG_CACHEFILES_DEBUG is not set
# CONFIG_CACHEFILES_HISTOGRAM is not set
#
# CD-ROM/DVD Filesystems
#CONFIG_ISO9660_FS=yCONFIG_JOLIET=yCONFIG_ZISOFS=yCONFIG_UDF_FS=mCONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#CONFIG_FAT_FS=mCONFIG_MSDOS_FS=mCONFIG_VFAT_FS=mCONFIG_FAT_DEFAULT_CODEPAGE=437CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#CONFIG_PROC_FS=yCONFIG_PROC_KCORE=yCONFIG_PROC_SYSCTL=yCONFIG_PROC_PAGE_MONITOR=yCONFIG_SYSFS=yCONFIG_TMPFS=yCONFIG_TMPFS_POSIX_ACL=yCONFIG_HUGETLBFS=yCONFIG_HUGETLB_PAGE=yCONFIG_CONFIGFS_FS=mCONFIG_MISC_FILESYSTEMS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not setCONFIG_ECRYPT_FS=mCONFIG_HFS_FS=mCONFIG_HFSPLUS_FS=m
# CONFIG_BEFS_FS is not setCONFIG_BFS_FS=m
# CONFIG_EFS_FS is not set
# CONFIG_LOGFS is not setCONFIG_CRAMFS=mCONFIG_SQUASHFS=m
# CONFIG_SQUASHFS_XATTRS is not set
# CONFIG_SQUASHFS_EMBEDDED is not setCONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3CONFIG_VXFS_FS=mCONFIG_MINIX_FS=mCONFIG_OMFS_FS=m
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not setCONFIG_ROMFS_FS=mCONFIG_ROMFS_BACKED_BY_BLOCK=yCONFIG_ROMFS_ON_BLOCK=yCONFIG_SYSV_FS=mCONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
# CONFIG_UFS_DEBUG is not setCONFIG_EXOFS_FS=m
# CONFIG_EXOFS_DEBUG is not setCONFIG_NETWORK_FILESYSTEMS=yCONFIG_NFS_FS=mCONFIG_NFS_V3=yCONFIG_NFS_V3_ACL=yCONFIG_NFS_V4=y
# CONFIG_NFS_V4_1 is not setCONFIG_NFS_FSCACHE=yCONFIG_NFSD=mCONFIG_NFSD_V2_ACL=yCONFIG_NFSD_V3=yCONFIG_NFSD_V3_ACL=yCONFIG_NFSD_V4=yCONFIG_LOCKD=mCONFIG_LOCKD_V4=yCONFIG_EXPORTFS=mCONFIG_NFS_ACL_SUPPORT=mCONFIG_NFS_COMMON=yCONFIG_SUNRPC=mCONFIG_SUNRPC_GSS=mCONFIG_RPCSEC_GSS_KRB5=mCONFIG_RPCSEC_GSS_SPKM3=m
# CONFIG_SMB_FS is not set
# CONFIG_CEPH_FS is not setCONFIG_CIFS=mCONFIG_CIFS_STATS=yCONFIG_CIFS_STATS2=yCONFIG_CIFS_WEAK_PW_HASH=yCONFIG_CIFS_UPCALL=yCONFIG_CIFS_XATTR=yCONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not setCONFIG_CIFS_DFS_UPCALL=y
# CONFIG_CIFS_FSCACHE is not setCONFIG_CIFS_EXPERIMENTAL=y
# CONFIG_NCP_FS is not setCONFIG_CODA_FS=mCONFIG_AFS_FS=m
# CONFIG_AFS_DEBUG is not setCONFIG_AFS_FSCACHE=yCONFIG_9P_FS=m
# CONFIG_9P_FSCACHE is not set
#
# Partition Types
#CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not setCONFIG_OSF_PARTITION=y
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not setCONFIG_IBM_PARTITION=yCONFIG_MAC_PARTITION=yCONFIG_MSDOS_PARTITION=yCONFIG_BSD_DISKLABEL=y
# CONFIG_MINIX_SUBPARTITION is not setCONFIG_SOLARIS_X86_PARTITION=yCONFIG_UNIXWARE_DISKLABEL=y
# CONFIG_LDM_PARTITION is not setCONFIG_SGI_PARTITION=yCONFIG_ULTRIX_PARTITION=yCONFIG_SUN_PARTITION=yCONFIG_KARMA_PARTITION=yCONFIG_EFI_PARTITION=yCONFIG_SYSV68_PARTITION=yCONFIG_NLS=yCONFIG_NLS_DEFAULT="utf8"CONFIG_NLS_CODEPAGE_437=mCONFIG_NLS_CODEPAGE_737=mCONFIG_NLS_CODEPAGE_775=mCONFIG_NLS_CODEPAGE_850=mCONFIG_NLS_CODEPAGE_852=mCONFIG_NLS_CODEPAGE_855=mCONFIG_NLS_CODEPAGE_857=mCONFIG_NLS_CODEPAGE_860=mCONFIG_NLS_CODEPAGE_861=mCONFIG_NLS_CODEPAGE_862=mCONFIG_NLS_CODEPAGE_863=mCONFIG_NLS_CODEPAGE_864=mCONFIG_NLS_CODEPAGE_865=mCONFIG_NLS_CODEPAGE_866=mCONFIG_NLS_CODEPAGE_869=mCONFIG_NLS_CODEPAGE_936=mCONFIG_NLS_CODEPAGE_950=mCONFIG_NLS_CODEPAGE_932=mCONFIG_NLS_CODEPAGE_949=mCONFIG_NLS_CODEPAGE_874=mCONFIG_NLS_ISO8859_8=mCONFIG_NLS_CODEPAGE_1250=mCONFIG_NLS_CODEPAGE_1251=mCONFIG_NLS_ASCII=mCONFIG_NLS_ISO8859_1=mCONFIG_NLS_ISO8859_2=mCONFIG_NLS_ISO8859_3=mCONFIG_NLS_ISO8859_4=mCONFIG_NLS_ISO8859_5=mCONFIG_NLS_ISO8859_6=mCONFIG_NLS_ISO8859_7=mCONFIG_NLS_ISO8859_9=mCONFIG_NLS_ISO8859_13=mCONFIG_NLS_ISO8859_14=mCONFIG_NLS_ISO8859_15=mCONFIG_NLS_KOI8_R=mCONFIG_NLS_KOI8_U=mCONFIG_NLS_UTF8=mCONFIG_DLM=mCONFIG_DLM_DEBUG=y
#
# Kernel hacking
#CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not setCONFIG_ENABLE_WARN_DEPRECATED=y
# CONFIG_ENABLE_MUST_CHECK is not setCONFIG_FRAME_WARN=2048CONFIG_MAGIC_SYSRQ=yCONFIG_STRIP_ASM_SYMS=yCONFIG_UNUSED_SYMBOLS=yCONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not setCONFIG_DEBUG_KERNEL=y
# CONFIG_HARDLOCKUP_DETECTOR is not setCONFIG_DETECT_HUNG_TASK=y
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not setCONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0CONFIG_SCHED_DEBUG=yCONFIG_SCHEDSTATS=yCONFIG_TIMER_STATS=y
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_TTY_MUTEX is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not setCONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not setCONFIG_DEBUG_BUGVERBOSE=yCONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_WRITECOUNT is not setCONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not setCONFIG_RCU_TORTURE_TEST=yCONFIG_RCU_TORTURE_TEST_RUNNABLE=yCONFIG_RCU_CPU_STALL_DETECTOR=y
# CONFIG_KPROBES_SANITY_TEST is not set
# CONFIG_BACKTRACE_SELF_TEST is not setCONFIG_DEBUG_BLOCK_EXT_DEVT=yCONFIG_DEBUG_FORCE_WEAK_PER_CPU=yCONFIG_LKDTM=m
# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
# CONFIG_FAULT_INJECTION is not setCONFIG_LATENCYTOP=yCONFIG_SYSCTL_SYSCALL_CHECK=y
# CONFIG_DEBUG_PAGEALLOC is not setCONFIG_HAVE_FUNCTION_TRACER=yCONFIG_HAVE_FUNCTION_GRAPH_TRACER=yCONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=yCONFIG_HAVE_DYNAMIC_FTRACE=yCONFIG_HAVE_FTRACE_MCOUNT_RECORD=yCONFIG_HAVE_SYSCALL_TRACEPOINTS=yCONFIG_RING_BUFFER=yCONFIG_RING_BUFFER_ALLOW_SWAP=yCONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not setCONFIG_DYNAMIC_DEBUG=y
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_SAMPLES is not set
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
#
# Security options
#CONFIG_KEYS=yCONFIG_KEYS_DEBUG_PROC_KEYS=yCONFIG_SECURITY=yCONFIG_SECURITYFS=yCONFIG_SECURITY_NETWORK=y CONFIG_SECURITY_NETWORK_XFRM=y CONFIG_SECURITY_PATH=y CONFIG_LSM_MMAP_MIN_ADDR=0 CONFIG_SECURITY_SELINUX=y CONFIG_SECURITY_SELINUX_BOOTPARAM=y CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 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_POLICYDB_VERSION_MAX is not set # CONFIG_SECURITY_SMACK is not set
# CONFIG_SECURITY_TOMOYO is not set
# CONFIG_SECURITY_YAMA is not set
# CONFIG_IMA is not set CONFIG_DEFAULT_SECURITY_SELINUX=y
# CONFIG_DEFAULT_SECURITY_DAC is not set CONFIG_DEFAULT_SECURITY="selinux" CONFIG_XOR_BLOCKS=mCONFIG_ASYNC_CORE=mCONFIG_ASYNC_MEMCPY=mCONFIG_ASYNC_XOR=mCONFIG_ASYNC_PQ=mCONFIG_ASYNC_RAID6_RECOV=mCONFIG_CRYPTO=y
#
# Crypto core or helper
#CONFIG_CRYPTO_FIPS=yCONFIG_CRYPTO_ALGAPI=yCONFIG_CRYPTO_ALGAPI2=yCONFIG_CRYPTO_AEAD=mCONFIG_CRYPTO_AEAD2=yCONFIG_CRYPTO_BLKCIPHER=mCONFIG_CRYPTO_BLKCIPHER2=yCONFIG_CRYPTO_HASH=yCONFIG_CRYPTO_HASH2=yCONFIG_CRYPTO_RNG=mCONFIG_CRYPTO_RNG2=yCONFIG_CRYPTO_PCOMP=mCONFIG_CRYPTO_PCOMP2=yCONFIG_CRYPTO_MANAGER=yCONFIG_CRYPTO_MANAGER2=yCONFIG_CRYPTO_MANAGER_TESTS=yCONFIG_CRYPTO_GF128MUL=mCONFIG_CRYPTO_NULL=m
# CONFIG_CRYPTO_PCRYPT is not setCONFIG_CRYPTO_WORKQUEUE=yCONFIG_CRYPTO_CRYPTD=mCONFIG_CRYPTO_AUTHENC=mCONFIG_CRYPTO_TEST=m
#
# Authenticated Encryption with Associated Data
#CONFIG_CRYPTO_CCM=mCONFIG_CRYPTO_GCM=mCONFIG_CRYPTO_SEQIV=m
#
# Block modes
#CONFIG_CRYPTO_CBC=mCONFIG_CRYPTO_CTR=mCONFIG_CRYPTO_CTS=mCONFIG_CRYPTO_ECB=mCONFIG_CRYPTO_LRW=mCONFIG_CRYPTO_PCBC=mCONFIG_CRYPTO_XTS=m
#
# Hash modes
#CONFIG_CRYPTO_HMAC=yCONFIG_CRYPTO_XCBC=mCONFIG_CRYPTO_VMAC=m
#
# Digest
#CONFIG_CRYPTO_CRC32C=mCONFIG_CRYPTO_GHASH=mCONFIG_CRYPTO_MD4=mCONFIG_CRYPTO_MD5=mCONFIG_CRYPTO_MICHAEL_MIC=mCONFIG_CRYPTO_RMD128=mCONFIG_CRYPTO_RMD160=mCONFIG_CRYPTO_RMD256=mCONFIG_CRYPTO_RMD320=mCONFIG_CRYPTO_SHA1=mCONFIG_CRYPTO_SHA256=mCONFIG_CRYPTO_SHA512=mCONFIG_CRYPTO_TGR192=mCONFIG_CRYPTO_WP512=m
#
# Ciphers
#CONFIG_CRYPTO_AES=mCONFIG_CRYPTO_ANUBIS=mCONFIG_CRYPTO_ARC4=mCONFIG_CRYPTO_BLOWFISH=mCONFIG_CRYPTO_CAMELLIA=mCONFIG_CRYPTO_CAST5=mCONFIG_CRYPTO_CAST6=mCONFIG_CRYPTO_DES=mCONFIG_CRYPTO_FCRYPT=mCONFIG_CRYPTO_KHAZAD=mCONFIG_CRYPTO_SALSA20=mCONFIG_CRYPTO_SEED=mCONFIG_CRYPTO_SERPENT=mCONFIG_CRYPTO_TEA=mCONFIG_CRYPTO_TWOFISH=mCONFIG_CRYPTO_TWOFISH_COMMON=m
#
# Compression
#CONFIG_CRYPTO_DEFLATE=mCONFIG_CRYPTO_ZLIB=mCONFIG_CRYPTO_LZO=m
#
# Random Number Generation
#CONFIG_CRYPTO_ANSI_CPRNG=mCONFIG_CRYPTO_HW=yCONFIG_ZCRYPT=mCONFIG_ZCRYPT_MONOLITHIC=yCONFIG_CRYPTO_SHA1_S390=mCONFIG_CRYPTO_SHA256_S390=mCONFIG_CRYPTO_SHA512_S390=mCONFIG_CRYPTO_DES_S390=mCONFIG_CRYPTO_AES_S390=mCONFIG_S390_PRNG=m
# CONFIG_BINARY_PRINTF is not set
#
# Library routines
#CONFIG_BITREVERSE=yCONFIG_GENERIC_FIND_LAST_BIT=yCONFIG_CRC_CCITT=mCONFIG_CRC16=mCONFIG_CRC_T10DIF=mCONFIG_CRC_ITU_T=mCONFIG_CRC32=yCONFIG_CRC7=mCONFIG_LIBCRC32C=mCONFIG_ZLIB_INFLATE=yCONFIG_ZLIB_DEFLATE=mCONFIG_LZO_COMPRESS=mCONFIG_LZO_DECOMPRESS=yCONFIG_DECOMPRESS_GZIP=yCONFIG_DECOMPRESS_BZIP2=yCONFIG_DECOMPRESS_LZMA=yCONFIG_DECOMPRESS_LZO=yCONFIG_TEXTSEARCH=yCONFIG_TEXTSEARCH_KMP=mCONFIG_TEXTSEARCH_BM=mCONFIG_TEXTSEARCH_FSM=mCONFIG_NLATTR=y
# CONFIG_SHM_SIGNAL is not set
# CONFIG_IOQ is not setCONFIG_HAVE_KVM=yCONFIG_VIRTUALIZATION=yCONFIG_KVM=m
# CONFIG_VHOST_NET is not setCONFIG_VIRTIO=yCONFIG_VIRTIO_RING=yCONFIG_VIRTIO_BALLOON=m
Quoted 13 lines · On Wed, 21 Jul 2010 17:57:09 +0200 Tejun Heo <[email protected]> wrote:
Hello,
Quoted 10 lines · Sachin Sant
Today's next fails to build on a s390 box with
CC
kernel/workqueue.okernel/workqueue.c: In function 'init_workqueues':kernel/workqueue.c:3525: error: negative width in bit-field '<anonymous>' make[1]: *** [kernel/workqueue.o] Error 1Yesterday's next was good.
The following patches added/changed theBUILD_BUG_ON()statement.
Quoted 8 lines
Quoted 6 lines
bdbc5dd7de5d07d6c9d3536e598956165a031d4c
workqueue: prepare forWQ_UNBOUNDimplementation7a22ad757ec75186ad43a5b4670fa7423ee8f480
workqueue: carry cpu number in work data once execution startsI have gcc version 4.3.2 installed on the system.
Hmmm... that's surprising. Can you please attach the .config?
The BUILD_BUG_ON line gets expanded to:
((void)(sizeof(struct { int:-!!(WORK_CPU_LAST << WORK_STRUCT_FLAG_BITS >= 0x0UL); })));
WORK_CPU_LAST is:
enum {
..
WORK_CPU_NONE = 32 + 1,
WORK_CPU_LAST = WORK_CPU_NONE,
..
};
WORK_STRUCT_FLAG_BITS is:
WORK_STRUCT_COLOR_SHIFT = 2, WORK_STRUCT_COLOR_BITS = 4, WORK_STRUCT_FLAG_BITS = WORK_STRUCT_COLOR_SHIFT +
WORK_STRUCT_COLOR_BITS,
which boils it down to
((void)(sizeof(struct { int:-!!(33 << 6 >= 0x0UL); })));
gcc doesn't like this construct.
Signature · 4 lines
blue skies, Martin. "Reality continues to ruin my life." - Calvin.
Tejun Heo
maintainerPATCH 1/1 workqueue: fix how cpu number is stored in work->data
Once a work starts execution, its data contains the cpu number it was on instead of pointing to cwq. This is added by commit 7a22ad75 (workqueue: carry cpu number in work data once execution starts) to reliably determine the work was last on even if the workqueue itself was destroyed inbetween.
Whether data points to a cwq or contains a cpu number was distinguished by comparing the value against PAGE_OFFSET. The assumption was that a cpu number should be below PAGE_OFFSET while a pointer to cwq should be above it. However, on architectures which use separate address spaces for user and kernel spaces, this doesn't hold as PAGE_OFFSET is zero.
Fix it by using an explicit flag, WORK_STRUCT_CWQ, to mark what the data field contains. If the flag is set, it's pointing to a cwq; otherwise, it contains a cpu number.
Reported on s390 and microblaze during linux-next testing.
---
Yeah, that was a stupid assumption by me. Can you guys please test whether this fixes the problem?
Thanks.
include/linux/workqueue.h | 14 ++++++++------ kernel/workqueue.c | 36 +++++++++++++----------------------- 2 files changed, 21 insertions(+), 29 deletions(-)
include/linux/workqueue.h +8 -6
@@ -25,17 +25,19 @@ typedef void (*work_func_t)(struct work_struct *work);enum {WORK_STRUCT_PENDING_BIT =0 ,/* work item is pending execution */ -WORK_STRUCT_LINKED_BIT =1 ,/* next work is linked to this one */ +WORK_STRUCT_CWQ_BIT =1 ,/* data points to cwq */ +WORK_STRUCT_LINKED_BIT =2 ,/* next work is linked to this one */ #ifdef CONFIG_DEBUG_OBJECTS_WORK -WORK_STRUCT_STATIC_BIT =2 ,/* static initializer (debugobjects) */ -WORK_STRUCT_COLOR_SHIFT =3 ,/* color for workqueue flushing */ +WORK_STRUCT_STATIC_BIT =3 ,/* static initializer (debugobjects) */ +WORK_STRUCT_COLOR_SHIFT =4 ,/* color for workqueue flushing */ #else -WORK_STRUCT_COLOR_SHIFT =2 ,/* color for workqueue flushing */ +WORK_STRUCT_COLOR_SHIFT =3 ,/* color for workqueue flushing */ #endif WORK_STRUCT_COLOR_BITS =4 ,WORK_STRUCT_PENDING =1 <<WORK_STRUCT_PENDING_BIT , +WORK_STRUCT_CWQ =1 <<WORK_STRUCT_CWQ_BIT ,WORK_STRUCT_LINKED =1 <<WORK_STRUCT_LINKED_BIT ,#ifdef CONFIG_DEBUG_OBJECTS_WORK WORK_STRUCT_STATIC =1 <<WORK_STRUCT_STATIC_BIT ,
@@ -56,8 +58,8 @@ enum {WORK_CPU_LAST =WORK_CPU_NONE ,/* -* Reserve 6 bits off of cwq pointer w/ debugobjects turned -* off. This makes cwqs aligned to 64 bytes which isn't too +* Reserve 7 bits off of cwq pointer w/ debugobjects turned +* off. This makes cwqs aligned to 128 bytes which isn't too * excessive while allowing 15 workqueue flush colors. */ WORK_STRUCT_FLAG_BITS = WORK_STRUCT_COLOR_SHIFT +
kernel/workqueue.c +13 -23
@@ -468,10 +468,9 @@ static int work_next_color(int color) }/* -* Work data points to the cwq while a work is on queue. Once -* execution starts, it points to the cpu the work was last on. This -* can be distinguished by comparing the data value against -* PAGE_OFFSET. +* A work's data points to the cwq with WORK_STRUCT_CWQ set while the +* work is on queue. Once execution starts, WORK_STRUCT_CWQ is +* cleared and the work data contains the cpu number it was last on. * * set_work_{cwq|cpu}() and clear_work_data() can be used to set the * cwq, cpu or clear work->data. These functions should only be
@@ -494,7 +493,7 @@ static void set_work_cwq(struct work_struct *work, unsigned long extra_flags) {set_work_data (work, (unsigned long )cwq, -WORK_STRUCT_PENDING | extra_flags); +WORK_STRUCT_PENDING |WORK_STRUCT_CWQ | extra_flags); }static void set_work_cpu (struct work_struct *work,unsigned int cpu)
@@ -507,25 +506,24 @@ static void clear_work_data(struct work_struct *work)set_work_data (work,WORK_STRUCT_NO_CPU ,0 ); } -static inline unsigned long get_work_data (struct work_struct *work) -{ -return atomic_long_read (&work->data) &WORK_STRUCT_WQ_DATA_MASK ; -} -static struct cpu_workqueue_struct *get_work_cwq (struct work_struct *work) { -unsigned long data =get_work_data (work); +unsigned long data =atomic_long_read (&work->data); -return data >=PAGE_OFFSET ? (void *)data :NULL ; +if (data &WORK_STRUCT_CWQ ) +return (void *)(data &WORK_STRUCT_WQ_DATA_MASK ); +else +return NULL ; }static struct global_cwq *get_work_gcwq (struct work_struct *work) { -unsigned long data =get_work_data (work); +unsigned long data =atomic_long_read (&work->data);unsigned int cpu; -if (data >=PAGE_OFFSET ) -return ((struct cpu_workqueue_struct *)data)->gcwq; +if (data &WORK_STRUCT_CWQ ) +return ((struct cpu_workqueue_struct *) + (data &WORK_STRUCT_WQ_DATA_MASK ))->gcwq; cpu = data >>WORK_STRUCT_FLAG_BITS ;if (cpu ==WORK_CPU_NONE )
@@ -3501,14 +3499,6 @@ void __init init_workqueues(void)unsigned int cpu;int i; -/* -* The pointer part of work->data is either pointing to the -* cwq or contains the cpu number the work ran last on. Make -* sure cpu number won't overflow into kernel pointer area so -* that they can be distinguished. -*/ -BUILD_BUG_ON (WORK_CPU_LAST <<WORK_STRUCT_FLAG_BITS >=PAGE_OFFSET ); -hotcpu_notifier (workqueue_cpu_callback,CPU_PRI_WORKQUEUE );/* initialize gcwqs */
Signature · 1 line
1.6.4.2
Re: [PATCH wq#for-next] workqueue: fix how cpu number is stored in work->data
Quoted 19 lines · On Thu, 22 Jul 2010 14:25:28 +0200 Tejun Heo <[email protected]> wrote:
Once a work starts execution, its data contains the cpu number it was on instead of pointing to cwq. This is added by commit
7a22ad75(workqueue: carry cpu number in work data once execution starts) to reliably determine the work was last on even if the workqueue itself was destroyed inbetween.Whether data points to a cwq or contains a cpu number was distinguished by comparing the value against
PAGE_OFFSET. The assumption was that a cpu number should be belowPAGE_OFFSETwhile a pointer to cwq should be above it. However, on architectures which use separate address spaces for user and kernel spaces, this doesn't hold asPAGE_OFFSETis zero.Fix it by using an explicit flag,
WORK_STRUCT_CWQ, to mark what the data field contains. If the flag is set, it's pointing to a cwq; otherwise, it contains a cpu number.Reported on s390 and microblaze during linux-next testing.
Quoted 7 lines
Signed-off-by Tejun Heo <[email protected]>Reported-by Sachin Sant <[email protected]>Reported-by Michal Simek <[email protected]>Reported-by Martin Schwidefsky <[email protected]>---
Yeah, that was a stupid assumption by me. Can you guys please test whether this fixes the problem?
Compiles and boots for s390. Thanks.
Signature · 4 lines
blue skies, Martin. "Reality continues to ruin my life." - Calvin.
Tejun Heo
maintainerRe: [PATCH wq#for-next] workqueue: fix how cpu number is stored in work->data
Quoted 1 line · Martin Schwidefsky
Compiles and boots for s390. Thanks.
Added Tested-by's and applied to wq#for-next.
Thanks.
Signature · 1 line
tejun
Re: [PATCH wq#for-next] workqueue: fix how cpu number is stored in work->data
In reply to Tejun HeoQuoted 23 lines · Tejun Heo
Once a work starts execution, its data contains the cpu number it was on instead of pointing to cwq. This is added by commit
7a22ad75(workqueue: carry cpu number in work data once execution starts) to reliably determine the work was last on even if the workqueue itself was destroyed inbetween.Whether data points to a cwq or contains a cpu number was distinguished by comparing the value against
PAGE_OFFSET. The assumption was that a cpu number should be belowPAGE_OFFSETwhile a pointer to cwq should be above it. However, on architectures which use separate address spaces for user and kernel spaces, this doesn't hold asPAGE_OFFSETis zero.Fix it by using an explicit flag,
WORK_STRUCT_CWQ, to mark what the data field contains. If the flag is set, it's pointing to a cwq; otherwise, it contains a cpu number.Reported on s390 and microblaze during linux-next testing.
Signed-off-by Tejun Heo <[email protected]>Reported-by Sachin Sant <[email protected]>Reported-by Michal Simek <[email protected]>Reported-by Martin Schwidefsky <[email protected]>
Quoted 5 lines
---
Yeah, that was a stupid assumption by me. Can you guys please test whether this fixes the problem?Thanks.
Microblaze is OK.
Thanks,
Michal
Signature · 3 lines
Michal Simek, Ing. (M.Eng) PetaLogix - Linux Solutions for a Reconfigurable World w: www.petalogix.com p: +61-7-30090663,+42-0-721842854 f: +61-7-30090663
Quoted 10 lines · Sachin Sant
Today's next fails to build on a s390 box with
CC
kernel/workqueue.okernel/workqueue.c: In function 'init_workqueues':kernel/workqueue.c:3525: error: negative width in bit-field '<anonymous>' make[1]: *** [kernel/workqueue.o] Error 1Yesterday's next was good.
The following patches added/changed theBUILD_BUG_ON()statement.
Quoted 6 lines
bdbc5dd7de5d07d6c9d3536e598956165a031d4c
workqueue: prepare forWQ_UNBOUNDimplementation7a22ad757ec75186ad43a5b4670fa7423ee8f480
workqueue: carry cpu number in work data once execution startsI have gcc version 4.3.2 installed on the system.
the same problem on microblaze gcc 4.1.2.
Thanks,
Michal
Signature · 3 lines
Michal Simek, Ing. (M.Eng) PetaLogix - Linux Solutions for a Reconfigurable World w: www.petalogix.com p: +61-7-30090663,+42-0-721842854 f: +61-7-30090663