linux/include
Tejun Heo b549007727 workqueue: introduce WORK_OFFQ_FLAG_*
Low WORK_STRUCT_FLAG_BITS bits of work_struct->data contain
WORK_STRUCT_FLAG_* and flush color.  If the work item is queued, the
rest point to the cpu_workqueue with WORK_STRUCT_CWQ set; otherwise,
WORK_STRUCT_CWQ is clear and the bits contain the last CPU number -
either a real CPU number or one of WORK_CPU_*.

Scheduled addition of mod_delayed_work[_on]() requires an additional
flag, which is used only while a work item is off queue.  There are
more than enough bits to represent off-queue CPU number on both 32 and
64bits.  This patch introduces WORK_OFFQ_FLAG_* which occupy the lower
part of the @work->data high bits while off queue.  This patch doesn't
define any actual OFFQ flag yet.

Off-queue CPU number is now shifted by WORK_OFFQ_CPU_SHIFT, which adds
the number of bits used by OFFQ flags to WORK_STRUCT_FLAG_SHIFT, to
make room for OFFQ flags.

To avoid shift width warning with large WORK_OFFQ_FLAG_BITS, ulong
cast is added to WORK_STRUCT_NO_CPU and, just in case, BUILD_BUG_ON()
to check that there are enough bits to accomodate off-queue CPU number
is added.

This patch doesn't make any functional difference.

Signed-off-by: Tejun Heo <tj@kernel.org>
2012-08-03 10:30:46 -07:00
..
acpi Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-07-26 14:28:55 -07:00
asm-generic Merge branch 'akpm' (Andrew's patch-bomb) 2012-07-30 17:25:34 -07:00
crypto
drm drm/exynos: add property for plane zpos 2012-07-27 11:13:54 +09:00
keys
linux workqueue: introduce WORK_OFFQ_FLAG_* 2012-08-03 10:30:46 -07:00
math-emu
media [media] v4l2: add core support for the new VIDIOC_ENUM_FREQ_BANDS ioctl 2012-07-30 20:23:05 -03:00
memory
misc
mtd
net Merge branch 'akpm' (Andrew's patch-bomb) 2012-07-31 19:25:39 -07:00
pcmcia
ras
rdma Merge branches 'cma', 'cxgb4', 'misc', 'mlx4-sriov', 'mlx-cleanups', 'ocrdma' and 'qib' into for-linus 2012-07-22 23:26:17 -07:00
rxrpc
scsi Merge branch 'master' [vanilla Linus master] into libata-dev.git/upstream 2012-07-25 15:58:48 -04:00
sound Sound fixes for 3.6-rc1 2012-08-01 10:42:26 -07:00
target target: Allow for target_submit_cmd() returning errors 2012-07-17 17:05:05 -07:00
trace Merge branch 'akpm' (Andrew's patch-bomb) 2012-07-31 19:25:39 -07:00
video video: da8xx-fb: configure FIFO threshold to reduce underflow errors 2012-07-29 01:11:09 +00:00
xen xen PVonHVM: move shared_info to MMIO before kexec 2012-07-19 15:52:05 -04:00
Kbuild