opnsense-src/sys/compat/linuxkpi/common/include/linux
Bjoern A. Zeeb 46ae23a402 LinuxKPI: avoid userret: Returning with with pinned thread
Some code manually calls local_bh_disable() and spin_lock() but
then calls spin_unlock_bh() (or vice versa).
Our code then calls local_bh_disable() again from spin_lock()
which means we have the thread pin count increased twice and that
means we get out of synch and are still pinned when returning to
user space.

Avoid this by adding the explicit local_bh_{enable,disable}() to
the spin_[un]lock_bh() versions.

Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
Reviewed by:	hselasky
Differential Revision: https://reviews.freebsd.org/D30711
2021-06-18 21:20:10 +00:00
..
acpi.h LinuxKPI: add guid_t for ACPI consumers. 2021-05-25 18:01:46 +00:00
atomic.h LinuxKPI: Include asm/atomic-long.h from atomic.h. 2019-05-15 17:44:25 +00:00
average.h LinuxKPI: add Exponentially Weighted Moving Average implementation 2021-05-25 18:01:48 +00:00
backlight.h linuxkpi: Add backlight support 2020-10-02 18:26:41 +00:00
bitfield.h LinuxKPI: add a bitfield.h implementation. 2020-10-07 22:07:26 +00:00
bitmap.h Implement the bitmap_subset() function in the LinuxKPI. This function 2020-07-10 12:06:18 +00:00
bitops.h LinuxKPI: add HWEIGHT32() 2021-05-27 13:38:30 +00:00
bottom_half.h Add support for LinuxKPI tasklets. 2017-02-21 13:23:53 +00:00
bsearch.h LinuxKPI: add linux/bsearch.h for sort(9) 2021-05-25 18:01:48 +00:00
cache.h LinuxKPI: cache.h add SMP_CACHE_BYTES 2021-05-25 18:01:48 +00:00
cdev.h Implement cdev_device_add() and cdev_device_del() in the LinuxKPI. 2021-05-11 21:00:23 +02:00
clocksource.h Remove cycle_t type from the LinuxKPI similar to Linux upstream. 2017-07-31 09:17:54 +00:00
compat.h Implement basic support for allocating memory from a specific numa node 2021-03-09 21:01:47 +01:00
compiler.h LinuxKPI: compiler.h add three more defines 2021-05-25 18:01:48 +00:00
completion.h Correct macroname in the LinuxKPI. 2018-05-31 12:55:38 +00:00
cpu.h LinuxKPI: add cpu.h for cpumask_*() 2021-05-25 18:01:48 +00:00
crc32.h LinuxKPI: add support for crc32_le() 2021-03-18 10:56:22 +00:00
dcache.h Refactor dentry structure into its own header file in the LinuxKPI similary 2018-02-18 08:29:25 +00:00
debugfs.h import linux debugfs support 2019-02-23 20:56:41 +00:00
delay.h Use mstosbt() instead of SBT_1MS in the LinuxKPI to get the last few bits 2018-03-03 19:26:40 +00:00
devcoredump.h LinuxKPI: add devcoredump.h 2021-05-25 18:01:48 +00:00
device.h LinuxKPI: add device_reprobe() and device_release_driver() 2021-06-18 21:20:09 +00:00
dma-attrs.h compat: clean up empty lines in .c and .h files 2020-09-01 21:24:33 +00:00
dma-mapping.h compat: clean up empty lines in .c and .h files 2020-09-01 21:24:33 +00:00
dmapool.h LinuxKPI: add dmam_pool_create() support 2021-06-18 21:20:09 +00:00
dmi.h linuxkpi: Add dmi_* function 2020-10-02 18:28:00 +00:00
err.h Cleanups to *ERR* compat shims. 2020-12-17 20:28:53 +00:00
errno.h LinuxKPI: add more linux-specific errno 2021-03-24 22:31:37 +00:00
etherdevice.h LinuxKPI: add ether_addr_equal_unaligned() 2021-05-25 18:01:47 +00:00
export.h Move the EXPORT_SYMBOL_XXX() function macros into own header file. 2018-06-07 11:34:59 +00:00
file.h fd: remove the seq argument from fget_unlocked 2020-02-03 22:27:55 +00:00
firmware.h LinuxKPI: add firmware loading support 2021-01-28 16:05:32 +00:00
fs.h linuxkpi: Add dmi_* function 2020-10-02 18:28:00 +00:00
gcd.h linuxkpi: Add gcd function 2020-10-06 10:35:03 +00:00
gfp.h Add necessary bits for Linux KPI to work correctly on powerpc 2019-08-04 19:28:10 +00:00
hardirq.h linuxkpi: Include hardirq.h in preempt.h and lockdep.h in hardirq.h 2020-07-26 16:30:59 +00:00
hrtimer.h Improve high resolution timer support in the LinuxKPI. 2018-06-01 11:33:14 +00:00
idr.h Resolve duplicate symbol name conflict after r345095, when building LINT. 2019-03-13 19:53:20 +00:00
if_arp.h
if_ether.h LinuxKPI: if_ether additions 2021-03-24 22:33:03 +00:00
if_vlan.h linuxkpi whitespace cleanup 2018-03-23 15:50:01 +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 Unconditionally include "opt_inet6.h" in the LinuxKPI. 2017-11-01 12:21:28 +00:00
inetdevice.h LinuxKPI/OFED: (re)move inetdevice.h implementation 2021-03-30 14:40:46 +00:00
interrupt.h LinuxKPI: enhance the irq KPI for managed and threaded operations. 2021-06-18 21:20:09 +00:00
io-mapping.h Let io_mapping_init_wc() fall back to an uncacheable mapping. 2017-07-03 02:01:16 +00:00
io.h compat: clean up empty lines in .c and .h files 2020-09-01 21:24:33 +00:00
ioctl.h Define _IOC_SIZE() in the LinuxKPI. 2016-05-13 11:42:36 +00:00
ip.h LinuxKPI: add linux/{ip,tcp,udp}.h 2021-05-25 18:01:47 +00:00
irq_work.h LinuxKPI: Reimplement irq_work queue on top of fast taskqueue 2021-01-17 12:47:28 +01:00
irqreturn.h Move the IRQ_RETVAL() and irqreturn definitions to irqreturn.h in the 2018-02-17 20:37:21 +00:00
jhash.h compat: clean up empty lines in .c and .h files 2020-09-01 21:24:33 +00:00
jiffies.h LinuxKPI: add time_is_after_jiffies() definition 2021-05-25 18:01:47 +00:00
kdev_t.h Fix LinuxKPI regression after r321920. The mda_unit and si_drv0 fields are not 2017-08-02 14:27:27 +00:00
kernel.h linuxkpi: Add _RET_IP_ macro in kernel.h 2021-06-09 14:41:44 -07:00
kmod.h compat: clean up empty lines in .c and .h files 2020-09-01 21:24:33 +00:00
kobject.h LinuxKPI: upstream a collection of drm-kmod conflicting changes 2021-01-28 16:15:12 +00:00
kref.h compat: clean up empty lines in .c and .h files 2020-09-01 21:24:33 +00:00
kthread.h Add kthread parking support to the LinuxKPI. 2017-06-18 19:22:05 +00:00
ktime.h LinuxKPI: add ktime_get_boottime_ns() implementation to ktime.h 2021-05-25 18:01:47 +00:00
list.h linuxkpi: Add list_for_each_entry_lockless() macro 2021-06-10 08:15:29 -07:00
llist.h LinuxKPI: Reimplement irq_work queue on top of fast taskqueue 2021-01-17 12:47:28 +01:00
lockdep.h linuxkpi: Add macros for might_lock_nested() and lockdep_(re/un/)pin_lock() 2021-06-09 14:41:44 -07:00
log2.h linuxkpi whitespace cleanup 2018-03-23 15:50:01 +00:00
math64.h Implement DIV64_U64_ROUND_UP() in the LinuxKPI. 2020-05-01 10:25:07 +00:00
miscdevice.h linuxkpi whitespace cleanup 2018-03-23 15:50:01 +00:00
mm.h LinuxKPI: add fault_flag_allow_retry_first 2021-06-09 19:11:41 -04:00
mm_types.h Implement mmget_not_zero() in the LinuxKPI. 2020-01-24 13:05:53 +00:00
mod_devicetable.h linuxkpi: Add dmi_* function 2020-10-02 18:28:00 +00:00
module.h LinuxKPI: extract stringify() in their own header file 2021-05-25 18:01:46 +00:00
moduleparam.h LinuxKPI: add LINUXKPI_PARAM_charp() 2021-05-25 18:01:46 +00:00
mutex.h linuxkpi: Add nested variant of mutex_lock_interruptible 2020-08-04 14:45:22 +00:00
net.h LinuxKPI: add net_ratelimit() 2021-03-26 12:05:48 +00:00
net_dim.h Add support for Dynamic Interrupt Moderation, DIM, in mlx5en(4). 2019-05-08 10:23:33 +00:00
netdevice.h LinuxKPI: add KPI for netdev_notifier_info returning ifp 2021-06-18 17:55:30 +00:00
notifier.h Add definition for the NETDEV_CHANGE event and tidy up the LinuxKPI 2016-01-26 14:27:00 +00:00
numa.h linuxkpi: Add numa.h 2020-10-06 10:36:16 +00:00
overflow.h Implement the array_size() function in the LinuxKPI. This function 2020-07-10 11:27:54 +00:00
page.h Make sure the "vm_flags" and "vm_page_prot" fields get set correctly 2017-08-11 10:44:40 +00:00
pagemap.h linuxkpi: Add pagemap.h 2020-10-06 10:41:00 +00:00
pci.h LinuxKPI: pci: cleanup some code and add support for "pcim" (managed) 2021-06-18 21:20:09 +00:00
pci_ids.h LinuxKPI: add pci_ids.h 2021-03-24 22:35:18 +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_task_pid() function macro in the LinuxKPI. 2018-02-17 22:33:26 +00:00
pm.h LinuxKPI: upstream a collection of drm-kmod conflicting changes 2021-01-28 16:15:12 +00:00
poll.h Properly implement poll_wait() in the LinuxKPI. This prevents direct 2017-09-09 06:29:29 +00:00
power_supply.h linuxkpi: Add power_supply.h 2020-10-06 10:39:40 +00:00
preempt.h linuxkpi: Include hardirq.h in preempt.h and lockdep.h in hardirq.h 2020-07-26 16:30:59 +00:00
prefetch.h linuxkpi: Add prefetch.h 2020-10-06 10:37:21 +00:00
printk.h linuxkpi: Fix build from redefined pr_err_once() 2021-06-07 16:37:21 -07:00
radix-tree.h Implement radix_tree_store() in the LinuxKPI for use with the coming 2020-08-07 16:15:44 +00:00
random.h LinuxKPI: add prandom_u32() as used by wireless drivers. 2021-05-25 18:01:46 +00:00
rbtree.h Allow the rbtree header file in the LinuxKPI to be used in standalone code. 2020-12-04 15:50:44 +00:00
rculist.h Implement more RCU list functions in the LinuxKPI. 2020-10-13 16:19:21 +00:00
rcupdate.h LinuxKPI: add rcu_dereference_check() 2021-05-25 18:01:46 +00:00
refcount.h linuxkpi: Add refcount.h 2020-05-25 12:44:07 +00:00
rwlock.h linuxkpi whitespace cleanup 2018-03-23 15:50:01 +00:00
rwsem.h linuxkpi whitespace cleanup 2018-03-23 15:50:01 +00:00
scatterlist.h LinuxKPI: fix sg_pcopy_from_buffer() 2021-06-18 21:20:10 +00:00
sched.h Reduce chance of RCU deadlock in the LinuxKPI by implementing the section 2021-03-29 10:55:14 +02:00
semaphore.h Use function macro for sema_init() in the LinuxKPI to limit macro expansion scope. 2020-11-30 09:47:53 +00:00
seq_file.h LinuxKPI: Finalize import of seq_file. 2019-05-16 21:17:18 +00:00
shmem_fs.h linuxkpi: Move shmem related functions in it's own file 2020-02-21 09:28:45 +00:00
shrinker.h linuxkpi: Add shrinker support 2021-01-12 12:31:00 +01:00
sizes.h linuxkpi: Add linux/sizes.h 2020-08-04 14:42:38 +00:00
slab.h LinuxKPI: add kfree_sensitive() using zfree(). 2021-05-25 18:01:46 +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 LinuxKPI: avoid userret: Returning with with pinned thread 2021-06-18 21:20:10 +00:00
srcu.h Implement synchronize_srcu_expedited() in the LinuxKPI. 2020-05-16 14:27:50 +00:00
string.h linuxkpi: Ignore NULL pointers passed to string parameter of kstr(n)dup 2020-07-14 21:56:59 +00:00
stringify.h LinuxKPI: extract stringify() in their own header file 2021-05-25 18:01:46 +00:00
swap.h linuxkpi: Use pageproc instead of vmproc 2018-11-21 04:34:18 +00:00
sysfs.h LinuxKPI: extract stringify() in their own header file 2021-05-25 18:01:46 +00:00
tcp.h LinuxKPI: add linux/{ip,tcp,udp}.h 2021-05-25 18:01:47 +00:00
time.h Make timespecadd(3) and friends public 2018-07-30 15:46:40 +00:00
timer.h linuxkpi: Fix mod_timer and del_timer_sync 2020-05-25 12:46:05 +00:00
types.h LinuxKPI: add kernel_ulong_t typedef in linux/kernel.h. 2021-05-25 18:01:46 +00:00
uaccess.h LinuxKPI: remove < 5.0 version support 2021-03-24 23:00:03 +00:00
udp.h LinuxKPI: add linux/{ip,tcp,udp}.h 2021-05-25 18:01:47 +00:00
usb.h linuxkpi whitespace cleanup 2018-03-23 15:50:01 +00:00
uuid.h LinuxKPI: add guid_t for ACPI consumers. 2021-05-25 18:01:46 +00:00
vmalloc.h
wait.h linuxkpi: Add a few wait_bit functions 2020-08-14 08:48:17 +00:00
wait_bit.h linuxkpi: Implement the wait_event_interruptible macro 2021-04-26 08:12:18 -07:00
workqueue.h linuxkpi: Add rcu_work functions 2020-05-21 20:18:38 +00:00
ww_mutex.h Populate the acquire context field of a ww_mutex in the LinuxKPI. 2020-10-04 17:23:39 +00:00
xarray.h Implement xa_init() in the LinuxKPI as a wrapper for xa_init_flags(). 2020-10-24 13:16:10 +00:00