opnsense-src/sys/compat/linuxkpi/common/include/linux
Hans Petter Selasky 8600ba1aa9 Make sure the selrecord() function is only called from within system
polling contexts in the LinuxKPI.

After the kqueue() support was added to the LinuxKPI in r319409 the
Linux poll file operation will be used outside the system file polling
callback function, which can cause a NULL-pointer panic inside
selrecord() because curthread->td_sel is set to NULL. This patch moves
the selrecord() call away from poll_wait() and to the system file poll
callback function in the LinuxKPI, which essentially wraps the Linux
one. This is similar to what the cuse(3) module is currently doing.
Refer to sys/fs/cuse/*.[ch] for more details.

MFC after:		1 week
Sponsored by:		Mellanox Technologies
2017-06-01 16:49:48 +00:00
..
bitmap.h Cleanup the bitmap_xxx() functions in the LinuxKPI: 2017-04-06 13:30:31 +00:00
bitops.h Cleanup the bitmap_xxx() functions in the LinuxKPI: 2017-04-06 13:30:31 +00:00
bottom_half.h Add support for LinuxKPI tasklets. 2017-02-21 13:23:53 +00:00
cache.h
cdev.h Implement register and unregister chrdev in the LinuxKPI. 2016-12-26 01:18:07 +00:00
clocksource.h Update and add various macros to the LinuxKPI and resolve a macro 2016-01-26 15:26:35 +00:00
compat.h Make the LinuxKPI task struct persistent accross system calls. 2017-02-21 12:43:02 +00:00
compiler.h Add some miscellaneous definitions to support DRM drivers. 2017-05-30 17:16:08 +00:00
completion.h Make header file standalone by including definitions for needed 2016-05-23 11:57:23 +00:00
delay.h
device.h Add some miscellaneous definitions to support DRM drivers. 2017-05-30 17:16:08 +00:00
dma-attrs.h
dma-mapping.h Implement GFP_DMA32 flag in the LinuxKPI. 2017-02-17 13:31:11 +00:00
dmapool.h sys/compat/linux*: spelling fixes. 2016-04-30 00:53:10 +00:00
err.h Add unlikely() statement to optimise the IS_ERR_VALUE() macro. 2016-05-13 11:30:56 +00:00
errno.h The Linux error defines should all be positive, else frequently used 2016-05-13 09:21:22 +00:00
etherdevice.h Implement eth_zero_addr() in the LinuxKPI. 2017-03-08 09:53:20 +00:00
file.h Add generic kqueue() and kevent() support to the LinuxKPI character 2017-06-01 09:34:51 +00:00
fs.h Add generic kqueue() and kevent() support to the LinuxKPI character 2017-06-01 09:34:51 +00:00
gfp.h Cleanup the LinuxKPI slab implementation. 2017-03-08 11:09:27 +00:00
hardirq.h
idr.h Properly implement idr_preload() and idr_preload_end() in the 2017-05-31 16:08:30 +00:00
if_arp.h
if_ether.h
if_vlan.h Implement is_vlan_dev() and vlan_dev_vlan_id() for the LinuxKPI. 2016-01-26 14:33:20 +00:00
in.h Add support for more IPv4 and IPv6 related macros in the LinuxKPI. 2017-03-22 15:44:00 +00:00
in6.h
inetdevice.h Add helper function similar to ip_dev_find() to the LinuxKPI to lookup 2017-03-16 10:02:45 +00:00
interrupt.h Add support for LinuxKPI tasklets. 2017-02-21 13:23:53 +00:00
io-mapping.h
io.h Add some miscellaneous definitions to support DRM drivers. 2017-05-30 17:16:08 +00:00
ioctl.h Define _IOC_SIZE() in the LinuxKPI. 2016-05-13 11:42:36 +00:00
jhash.h
jiffies.h Implement time_is_after_eq_jiffies() function in the LinuxKPI. 2017-03-07 15:37:51 +00:00
kdev_t.h Make the LinuxKPI task struct persistent accross system calls. 2017-02-21 12:43:02 +00:00
kernel.h Add some miscellaneous definitions to support DRM drivers. 2017-05-30 17:16:08 +00:00
kmod.h
kobject.h Minor LinuxKPI code cleanup: 2015-12-31 12:30:19 +00:00
kref.h Implement "kref_put_mutex()" for the LinuxKPI. 2016-05-23 12:06:34 +00:00
kthread.h Implement in_atomic() function in the LinuxKPI. 2017-05-31 15:05:44 +00:00
ktime.h Add more ktime related functions to the LinuxKPI. 2016-05-23 12:10:28 +00:00
list.h Implement more list header file functions. 2016-12-26 10:41:51 +00:00
lockdep.h
log2.h
math64.h
miscdevice.h Minor LinuxKPI code cleanup: 2015-12-31 12:30:19 +00:00
mm.h Fix compilation of LinuxKPI for PowerPC. 2017-04-09 14:31:41 +00:00
mm_types.h Don't acquire a reference on the VM-space when allocating the LinuxKPI 2017-05-31 13:01:27 +00:00
module.h Add some miscellaneous definitions to support DRM drivers. 2017-05-30 17:16:08 +00:00
moduleparam.h Add support for runtime modifiable module parameters in the LinuxKPI. 2016-05-26 09:04:14 +00:00
mutex.h Cleanup the LinuxKPI mutex wrappers. 2017-03-09 17:01:00 +00:00
net.h
netdevice.h Add basic support for VIMAGE to the LinuxKPI and ibcore. 2017-03-16 09:59:35 +00:00
notifier.h Add definition for the NETDEV_CHANGE event and tidy up the LinuxKPI 2016-01-26 14:27:00 +00:00
page.h All these files need sys/vmmeter.h, but now they got it implicitly 2017-04-17 17:07:00 +00:00
pci.h Add some miscellaneous definitions to support DRM drivers. 2017-05-30 17:16:08 +00:00
pfn.h Implement a series of physical page management related functions in 2017-03-27 17:04:11 +00:00
pfn_t.h Implement a series of physical page management related functions in 2017-03-27 17:04:11 +00:00
pid.h Implement get_pid_task(), pid_task() and some other PID helper 2017-03-17 15:40:24 +00:00
poll.h Make sure the selrecord() function is only called from within system 2017-06-01 16:49:48 +00:00
preempt.h Add some miscellaneous definitions to support DRM drivers. 2017-05-30 17:16:08 +00:00
printk.h Implement print_hex_dump(), print_hex_dump_bytes() and 2017-05-31 16:24:02 +00:00
radix-tree.h
random.h Fallback to arc4rand() in the LinuxKPI when read_random() returns 2016-06-07 13:10:13 +00:00
rbtree.h
rculist.h Replace dummy implementation of RCU in the LinuxKPI with one based on 2017-02-21 18:04:21 +00:00
rcupdate.h Use __typeof() instead of typeof() in some RCU related macros in the LinuxKPI. 2017-04-19 13:04:34 +00:00
rwlock.h Make the LinuxKPI task struct persistent accross system calls. 2017-02-21 12:43:02 +00:00
rwsem.h Implement down_write_killable() in the LinuxKPI. 2017-04-05 12:10:02 +00:00
scatterlist.h Convert magic values into macros in the LinuxKPI scatterlist 2017-02-22 20:24:09 +00:00
sched.h Fix problem regarding priority inversion when using the concurrency 2017-04-19 13:03:29 +00:00
semaphore.h Make the LinuxKPI task struct persistent accross system calls. 2017-02-21 12:43:02 +00:00
slab.h Implement vmalloc_32() in the LinuxKPI. 2017-03-27 17:18:04 +00:00
smp.h Add on_each_cpu() and wbinvd_on_all_cpus(). 2017-05-01 16:32:28 +00:00
socket.h
spinlock.h Streamline the LinuxKPI spinlock wrappers. 2017-02-21 14:22:14 +00:00
srcu.h Fix problem regarding priority inversion when using the concurrency 2017-04-19 13:03:29 +00:00
string.h Implement more string functions in the LinuxKPI. 2017-02-24 17:36:55 +00:00
sysfs.h Remove the only user of sysctl_add_oid(). 2016-12-13 07:58:30 +00:00
time.h A missing definition needed by ktime_to_ms(). 2016-05-23 13:19:20 +00:00
timer.h Implement add_timer_on() function in the LinuxKPI. 2017-03-06 14:56:57 +00:00
types.h Add some miscellaneous definitions to support DRM drivers. 2017-05-30 17:16:08 +00:00
uaccess.h Add comment describing the use of pagefault_disable() and 2017-03-17 08:02:46 +00:00
usb.h
vmalloc.h
wait.h Make the LinuxKPI task struct persistent accross system calls. 2017-02-21 12:43:02 +00:00
workqueue.h Fix implementation of the DECLARE_WORK() macro in the LinuxKPI to fully 2017-03-09 18:37:17 +00:00
ww_mutex.h Implement support for mutexes with deadlock avoidance in the LinuxKPI. 2017-03-09 18:33:40 +00:00