opnsense-src/sys/compat/linuxkpi/common/include/linux
Konstantin Belousov 67dcd64ab8 linuxkpi: Do not leak pages on put.
When the owner of the wire reference releases the last reference, it
might be that the page was already attempted to be freed (but free
cannot be performed at that time due to wire).  Check that the page
was removed from the object as the indicator of the free attempt and
finish the free operation if so.

Reported and tested by:	Slava Shwartsman
Reviewed by:	hselasky
Sponsored by:	Mellanox Technologies
MFC after:	1 week
2018-02-13 15:44:35 +00:00
..
atomic.h Add a couple of trivial headers to the LinuxKPI. 2017-08-20 01:40:24 +00:00
bitmap.h Cleanup the bitmap_xxx() functions in the LinuxKPI: 2017-04-06 13:30:31 +00:00
bitops.h The LinuxKPI atomics do not have acquire nor release semantics unless 2017-09-18 13:37:14 +00:00
bottom_half.h Add support for LinuxKPI tasklets. 2017-02-21 13:23:53 +00:00
cache.h
cdev.h Fix LinuxKPI regression after r321920. The mda_unit and si_drv0 fields are not 2017-08-02 14:27:27 +00:00
clocksource.h Remove cycle_t type from the LinuxKPI similar to Linux upstream. 2017-07-31 09:17:54 +00:00
compat.h Make the LinuxKPI task struct persistent accross system calls. 2017-02-21 12:43:02 +00:00
compiler.h linuxkpi compiler.h: avoid gcc -Wunused-value in dummy expressions 2017-07-22 21:29:44 +00:00
completion.h Use integer type to pass around jiffies and/or ticks values in the 2017-08-10 13:05:40 +00:00
delay.h
device.h Add some miscellaneous definitions to support the DRM drivers. 2017-08-22 17:13:28 +00:00
dma-attrs.h
dma-mapping.h Make the dma_alloc_coherent() function in the LinuxKPI NULL safe with regard 2017-11-08 08:37:05 +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 more sanity checks to linux_fget() in the LinuxKPI. This prevents 2017-09-09 06:04:05 +00:00
fs.h Add support for 32-bit compatibility IOCTLs in the LinuxKPI. 2017-09-22 08:12:08 +00:00
gfp.h Cleanup the LinuxKPI slab implementation. 2017-03-08 11:09:27 +00:00
hardirq.h
hrtimer.h Fix hrtimer_active() in case of cancellation. 2017-08-07 14:34:05 +00:00
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 Unconditionally include "opt_inet6.h" in the LinuxKPI. 2017-11-01 12:21:28 +00:00
inetdevice.h Only search the scope ID in ip6_find_dev() for IPv6 addresses which 2017-09-09 12:50:12 +00:00
interrupt.h Add support for LinuxKPI tasklets. 2017-02-21 13:23:53 +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 Implement ioread16be() in the LinuxKPI. 2017-11-01 12:34:18 +00:00
ioctl.h Define _IOC_SIZE() in the LinuxKPI. 2016-05-13 11:42:36 +00:00
jhash.h
jiffies.h Use integer type to pass around jiffies and/or ticks values in the 2017-08-10 13:05:40 +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 Add u64_to_user_ptr() to the LinuxKPI. 2017-06-25 19:30:20 +00:00
kmod.h
kobject.h Add some miscellaneous definitions to support the DRM drivers. 2017-08-22 17:13:28 +00:00
kref.h Implement "kref_put_mutex()" for the LinuxKPI. 2016-05-23 12:06:34 +00:00
kthread.h Add kthread parking support to the LinuxKPI. 2017-06-18 19:22:05 +00:00
ktime.h Fix implementation of ktime_add_ns() and ktime_sub_ns() in the LinuxKPI to 2018-02-07 12:12:06 +00:00
list.h Remove some not needed comments in the LinuxKPI. Use the Linux source tree 2017-11-10 08:31:40 +00:00
lockdep.h Add some miscellaneous definitions to support the DRM drivers. 2017-08-22 17:13:28 +00:00
log2.h
math64.h Add some functions to math64.h in the LinuxKPI, and fix nearby style. 2017-07-09 23:14:51 +00:00
miscdevice.h Minor LinuxKPI code cleanup: 2015-12-31 12:30:19 +00:00
mm.h linuxkpi: Do not leak pages on put. 2018-02-13 15:44:35 +00:00
mm_types.h Avoid including list.h in LinuxKPI headers. 2017-06-18 16:43:57 +00:00
module.h Add some miscellaneous definitions to support the DRM drivers. 2017-08-22 17:13:28 +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 Make sure the "vm_flags" and "vm_page_prot" fields get set correctly 2017-08-11 10:44:40 +00:00
pci.h Add a specialized function for DRM drivers to register themselves. 2017-08-11 03:59:48 +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 Properly implement poll_wait() in the LinuxKPI. This prevents direct 2017-09-09 06:29:29 +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 Add get_random_{int,long} to the LinuxKPI. 2017-10-04 17:29:08 +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 Properly implement the cond_resched() function macro in the LinuxKPI. 2018-01-31 13:40:36 +00:00
semaphore.h Make the LinuxKPI task struct persistent accross system calls. 2017-02-21 12:43:02 +00:00
slab.h linuxkpi: Simplify kmalloc_array. 2018-01-10 20:50:06 +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 Add macros for defining attribute groups and for WO and RW attributes. 2017-08-08 04:30:22 +00:00
time.h A missing definition needed by ktime_to_ms(). 2016-05-23 13:19:20 +00:00
timer.h Mask away return codes from del_timer() and del_timer_sync() because 2017-11-11 10:46:12 +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 Fixes for wait event in the LinuxKPI. These are regression issues 2017-08-10 13:00:10 +00:00
workqueue.h Make sure the timer belonging to the delayed work in the LinuxKPI 2017-10-04 13:13:38 +00:00
ww_mutex.h Implement support for mutexes with deadlock avoidance in the LinuxKPI. 2017-03-09 18:33:40 +00:00