opnsense-src/sys/compat/linuxkpi/common/include/linux
Tom Coldrick d3befb534b LinuxKPI: Queue skbuffs at tail in __skb_queue_tail
Correct skb_queue_tail to queue the buffer at the tail of the skbuff.
The skbuff is a circular doubly-linked list, and we call with a pointer
to the head of the list.  Thus queueing before the head gives us a
queueing at the tail.

As a motivating factor, the current behaviour (queueing at the head) was
causing frequent kernel panics from my RTL8822BE wireless card, which
uses the rtw88 driver.  Interrupts can cause buffers to be added to the
rtwdev c2h_queue while the queue is being drained in rtw_c2h_work.
Queueing at the head would leave the nascent entry in the linked list
pointing to the old, now freed, memory for the buffer being processed.
When rtw_c2h_work is next called, we try reading this and so panic.

Reviewed by:	emaste, bz
MFC after:	1 week
Differential Revision: https://reviews.freebsd.org/D44192
2024-03-04 09:33:12 -05:00
..
sched linuxkpi: Add memalloc_noreclaim_save() and memalloc_noreclaim_restore() 2023-01-16 19:27:16 +01:00
soc mt76: update driver from upstream 2023-08-21 01:34:03 +00:00
acpi.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
agp_backend.h linuxkpi: Add linux/agp_backend.h 2023-04-04 11:49:48 +02:00
anon_inodes.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
apple-gmux.h LinuxKPI: Add linux/apple-gmux.h 2023-12-24 11:20:00 +03:00
atomic.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
average.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
backlight.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bcd.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bitfield.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bitmap.h LinuxKPI: Constify src parameter of bitmap_copy 2023-12-24 15:48:06 +03:00
bitops.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bottom_half.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
bsearch.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
build_bug.h linuxkpi: Annotate an unused variable as such 2023-12-27 10:11:33 -05:00
cache.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
capability.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
cc_platform.h linuxkpi: Include <linux/types.h> from <linux/cc_platform.h> 2023-12-13 19:18:42 +01:00
cdev.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
circ_buf.h linuxkpi: Add circ_buf.h 2022-06-29 09:54:45 +02:00
clocksource.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
compat.h LinuxKPI: Allow kmalloc to be called when FPU protection is enabled 2024-02-11 01:01:50 +03:00
compiler.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
completion.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
console.h linuxkpi: Add console.h 2022-06-29 09:54:49 +02:00
container_of.h LinuxKPI: Split linux/container_of.h off from linux/kernel.h 2023-12-24 11:19:58 +03:00
cpu.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
crc32.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
dcache.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
debugfs.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
delay.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
devcoredump.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
device.h LinuxKPI: sort dev_<loglevel>() functions 2024-02-14 22:05:21 +00:00
dma-attrs.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
dma-buf-map.h linuxkpi: Add <linux/dma-buf-map.h> 2022-11-11 18:40:57 +01:00
dma-mapping.h linuxkpi: dma_get_cache_alignment(): Fix off-by-one result 2023-11-02 09:30:03 -04:00
dmapool.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
dmi.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
dynamic_debug.h LinuxKPI: Add linux/dynamic_debug.h header 2023-12-24 11:20:00 +03:00
efi.h LinuxKPI: in efi.h include queue.h 2022-11-15 23:08:05 +00:00
err.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
errno.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
etherdevice.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ethtool.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
eventpoll.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
export.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
file.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
firmware.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
fs.h sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
fwnode.h linuxkpi: Declare struct fwnode_handle in <linux/fwnode.h> 2023-02-14 23:01:06 +01:00
gcd.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
gfp.h Revert "linuxkpi: GFP_KERNEL equals M_NOWAIT now" 2023-12-07 21:53:44 +01:00
hardirq.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
hash.h LinuxKPI: Implement linux/hashtable.h for FreeBSD. 2022-05-12 16:32:47 +02:00
hashtable.h linuxkpi: remove invalid KASSERT from hash_add_rcu 2024-01-29 11:40:17 -05:00
hdmi.h linuxkpi: Add hdmi helpers 2023-03-28 09:11:06 +02:00
highmem.h LinuxKPI: cleanup internal calls to VM_PAGE_TO_PHYS 2023-08-07 00:57:42 +00:00
hrtimer.h linuxkpi: Include <linux/rbtree.h> from <linux/hrtimer.h> and <linux/mm_types.h> 2023-11-29 19:54:48 +01:00
i2c-algo-bit.h linuxkpi: Add i2c support 2022-01-25 16:15:39 +01:00
i2c.h linuxkpi: Add i2c_adapter_quirks support 2023-02-13 22:09:31 +01:00
idr.h LinuxKPI: Add ida_alloc_min() 2023-12-24 11:19:59 +03:00
ieee80211.h LinuxKPI: 802.11: correct HT protection fields 2024-02-14 19:36:30 +00:00
if_arp.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
if_ether.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
if_vlan.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
in.h sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
in6.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
inetdevice.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
interrupt.h LinuxKPI: Remove sys/rman.h include from LKPI headers. 2023-12-24 11:19:57 +03:00
interval_tree.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
interval_tree_generic.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
io-64-nonatomic-lo-hi.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
io-mapping.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
io.h LinuxKPI: Define ioread64() in linux/io.h only on 64 bit archs. 2023-12-24 15:48:06 +03:00
ioctl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
iommu.h linuxkpi: Add <linux/iommu.h> 2023-03-20 21:47:36 +01:00
iopoll.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ioport.h LinuxKPI: Add linux/ioport.h header 2023-12-24 11:20:00 +03:00
iosys-map.h LinuxKPI: Add linux/iosys-map.h header 2023-12-24 11:19:58 +03:00
ip.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
irq_work.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
irqdomain.h LinuxKPI: Add some header pollution and dummy headers 2023-12-24 11:19:58 +03:00
irqreturn.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
jhash.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
jiffies.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
jump_label.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
kconfig.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
kdev_t.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
kernel.h LinuxKPI: Split linux/container_of.h off from linux/kernel.h 2023-12-24 11:19:58 +03:00
kfifo.h LinuxKPI: extend kfifo to be usable 2022-08-18 20:26:20 +00:00
kmemleak.h linuxkpi: Add kmemleak.h 2022-06-29 09:54:57 +02:00
kmod.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
kobject.h LinuxKPI: Add some header pollution and dummy headers 2023-12-24 11:19:58 +03:00
kref.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
kthread.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ktime.h LinuxKPI: Add ktime_get_raw_fast_ns() to linux/ktime.h 2023-12-24 11:19:59 +03:00
leds.h LinuxKPI: add linux/leds.h 2022-11-07 12:52:41 +00:00
list.h LinuxKPI: Rename linux_list_add to __list_add() in linux/list.h 2023-12-24 11:20:00 +03:00
llist.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
lockdep.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
log2.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
math64.h linuxkpi math: fix kassert in math64.h 2023-08-18 00:31:03 -05:00
media-bus-format.h linuxkpi: Add media-bus-format.h 2022-06-29 09:55:00 +02:00
mhi.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
miscdevice.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mm.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mm_types.h linuxkpi: Include <linux/rbtree.h> from <linux/hrtimer.h> and <linux/mm_types.h> 2023-11-29 19:54:48 +01:00
mman.h linuxkpi: Add <linux/mman.h> which includes <linux/smp.h> 2022-11-11 20:57:46 +01:00
mmap_lock.h linuxkpi: Add mmap_lock.h 2022-02-17 09:31:51 +01:00
mmu_context.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mmu_notifier.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mmzone.h linuxkpi: Add <linux/mmzone.h> 2022-11-11 18:39:48 +01:00
mod_devicetable.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
module.h sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
moduleparam.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
mutex.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
net.h sockets: garbage collect SS_ISCONFIRMING 2024-01-30 10:38:33 -08:00
net_dim.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
netdev_features.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
netdevice.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
nl80211.h LinuxKPI: 802.11: update compat code for updated drivers 2023-08-21 00:39:57 +00:00
nospec.h linuxkpi: Add linux/nospec.h 2022-08-08 15:22:35 +02:00
notifier.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
numa.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
of.h LinuxKPI: Add some header pollution and dummy headers 2023-12-24 11:19:58 +03:00
overflow.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
page-flags.h linuxkpi: Add <linux/page-flags.h> 2022-11-11 20:56:42 +01:00
page.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pagemap.h linuxkpi: Move invalidate_mapping_pages() to <linux/pagemap.h> 2023-12-13 19:18:46 +01:00
pagevec.h LinuxKPI: reduce usage of struct vm_page and vm_page_t 2023-08-07 00:55:30 +00:00
pci.h LinuxKPI: Add pcie_capability_clear_and_set_word() function 2023-12-24 11:20:00 +03:00
pci_ids.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pfn.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pfn_t.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pid.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
platform_device.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pm.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pm_qos.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pm_runtime.h linuxkpi: Add pm_runtime_suspended() 2023-01-25 22:26:53 +01:00
poison.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
poll.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
power_supply.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
preempt.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
prefetch.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
printk.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
ptp_clock_kernel.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
pwm.h linuxkpi: Add pwm.h 2022-06-29 09:55:26 +02:00
qrtr.h ath10k: ath11k: add specific LinuxKPI support 2023-04-23 21:31:07 +00:00
radix-tree.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
random.h LinuxKPI: Add get_random_u64() function 2023-12-24 11:20:00 +03:00
ratelimit.h LinuxKPI: Constantly use _LINUXKPI_ prefix in include guards 2022-01-10 22:49:38 +03:00
rbtree.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
rculist.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
rcupdate.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
reboot.h linuxkpi: Add orderly_poweroff 2022-02-17 09:31:25 +01:00
refcount.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
rhashtable.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
rwlock.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
rwsem.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
scatterlist.h linuxkpi: fix iteration in __sg_alloc_table_from_pages 2023-09-06 14:37:12 +00:00
sched.h Revert "LinuxKPI: Add explicit software context to FPU sections" 2024-02-11 01:01:50 +03:00
semaphore.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
seq_file.h linuxkpi: Include <linux/string_helpers.h> from <linux/seq_file.h> 2023-12-13 19:54:32 +01:00
seqlock.h LinuxKPI: Add write_seqcount_invalidate() and seqprop_sequence() 2023-12-24 11:19:59 +03:00
shmem_fs.h LinuxKPI: Add some header pollution and dummy headers 2023-12-24 11:19:58 +03:00
shrinker.h LinuxKPI: Chase for new "name" argument of register_shrinker() 2023-12-24 11:19:59 +03:00
sizes.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
skbuff.h LinuxKPI: Queue skbuffs at tail in __skb_queue_tail 2024-03-04 09:33:12 -05:00
slab.h LinuxKPI: Allow kmalloc to be called when FPU protection is enabled 2024-02-11 01:01:50 +03:00
smp.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
socket.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sort.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
spinlock.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
srcu.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
stackdepot.h linuxkpi: Add linux/stackdepot.h 2022-08-18 09:46:36 +02:00
stdarg.h spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
stddef.h LinuxKPI: add struct_group(...) 2023-06-08 18:00:57 +00:00
string.h LinuxKPI: implement memset_after() 2024-02-03 13:50:32 +00:00
string_helpers.h LinuxKPI: Add str_on_off and other helpers to linux/string_helpers.h 2023-12-24 11:19:58 +03:00
stringify.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
suspend.h linuxkpi: Add more suspend defines 2023-02-17 14:50:58 +01:00
swap.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
sysfs.h linuxkpi: Fix __ATTR_RO() in <linux/sysfs.h> 2023-12-13 19:18:46 +01:00
tcp.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
time.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
timer.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
tracepoint.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
typecheck.h linuxkpi: Add typecheck.h 2022-06-29 09:55:15 +02:00
types.h sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
uaccess.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
udp.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
usb.h sys: Remove $FreeBSD$: one-line .c comment pattern 2023-08-16 11:54:24 -06:00
utsname.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
uuid.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
vgaarb.h linuxkpi: Update vga_client_register() and add vga_client_unregister() 2023-02-13 22:09:31 +01:00
vmalloc.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
wait.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
wait_bit.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
workqueue.h LinuxKPI: Add cancel_work() function. 2023-12-24 11:19:59 +03:00
ww_mutex.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
xarray.h LinuxKPI: Add xa_(un)lock_irq to linux/xarray.h 2023-12-24 11:19:59 +03:00