opnsense-src/sys/ofed/include/linux
Xin LI 5ed3c8af83 According to the documentation, on Linux, cancel_delayed_work() does not
do drain (flush_workqueue() in Linux terms) but instead returns true if
the work was removed before it is run, or false otherwise.

Simulate this by removing the taskqueue_drain() and return the value
derived from taskqueue_cancel()'s return value.

This would solve a witness warning caused by calling taskqueue_drain()
with a non-sleepable lock held, like:

taskqueue_drain with the following non-sleepable locks held:
exclusive rw lle (lle) r = 0 (0xfffffe001450b410) locked @
/usr/src/sys/netinet/in.c:1484
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xffffff848d4f7690
kdb_backtrace() at kdb_backtrace+0x39/frame 0xffffff848d4f7740
witness_warn() at witness_warn+0x4a8/frame 0xffffff848d4f7800
taskqueue_drain() at taskqueue_drain+0x3a/frame 0xffffff848d4f7840
set_timeout() at set_timeout+0x4a/frame 0xffffff848d4f7860
netevent_callback() at netevent_callback+0x16/frame 0xffffff848d4f7870
arpintr() at arpintr+0x9b5/frame 0xffffff848d4f7930

This do not affect kernel without OFED compiled in.

Reported by:	Garrett Cooper <yaneurabeya gmail com>
		(who also tested an earlier version of this patch,
		but bugs are mine)
MFC after:	2 weeks
2013-05-08 17:45:22 +00:00
..
mlx4 - Implement wake-on-lan support in mlxen. 2011-03-26 00:54:01 +00:00
bitmap.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
bitops.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
cdev.h Use %s when calling make_dev with a string pointer. This makes 2012-11-09 21:41:07 +00:00
compat.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
compiler.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
completion.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
ctype.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
delay.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
device.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
dma-attrs.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
dma-mapping.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
dmapool.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
err.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
errno.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
ethtool.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
file.h Merge Capsicum overhaul: 2013-03-02 00:53:12 +00:00
fs.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
gfp.h After the PHYS_TO_VM_PAGE() function was de-inlined, the main reason 2012-08-05 14:11:42 +00:00
hardirq.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
idr.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
if_arp.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
if_ether.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
if_vlan.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
in.h Add OFED and the associated options and drivers to x86 LINT builds: 2012-04-12 14:01:06 +00:00
in6.h Add OFED and the associated options and drivers to x86 LINT builds: 2012-04-12 14:01:06 +00:00
inet.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
inetdevice.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
init.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
interrupt.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
io-mapping.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
io.h Use VM_MEMATTR_UNCACHEABLE instead of VM_MEMATTR_UNCACHED for UC mappings. 2012-03-27 14:24:29 +00:00
ioctl.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
jhash.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
jiffies.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
kdev_t.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
kernel.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
kobject.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
kref.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
kthread.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
linux_compat.c Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
linux_idr.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
linux_radix.c Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. 2011-11-07 06:44:47 +00:00
list.h Commit the support for removing cpumask_t and replacing it directly with 2011-05-05 14:39:14 +00:00
lockdep.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
log2.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
miscdevice.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
mm.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
module.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
moduleparam.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
mount.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
mutex.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
net.h - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
netdevice.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
notifier.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
page.h Use VM_MEMATTR_UNCACHEABLE instead of VM_MEMATTR_UNCACHED for UC mappings. 2012-03-27 14:24:29 +00:00
pci.h Redo r242842, now actually fixing the warnings, as follows: 2012-11-12 22:01:29 +00:00
poll.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
radix-tree.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
random.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
rbtree.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
rtnetlink.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
rwlock.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
rwsem.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
scatterlist.h Allow the ofed modules to be compiled on i386. 2011-03-21 21:16:40 +00:00
sched.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
semaphore.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
slab.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
socket.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
spinlock.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
stddef.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
string.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
sysfs.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
timer.h Add protective parentheses for macro argument, missed in r247671. 2013-03-02 22:41:06 +00:00
types.h Do not define bool/true/false if the symbols already exist. 2011-12-12 18:43:24 +00:00
uaccess.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
vmalloc.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
wait.h - Merge in OFED 1.5.3 from projects/ofed/head 2011-03-21 09:58:24 +00:00
workqueue.h According to the documentation, on Linux, cancel_delayed_work() does not 2013-05-08 17:45:22 +00:00