freebsd-skq/sys
Kashyap D Desai 731b75614d Problem statement:
MFI linked list in megaraid_sas driver is used for mfi-mpt pass-through commands.
This list can be corrupted due to many possible race conditions in driver and
eventually we may see kernel panic.

One example -
MFI frame is freed from calling process as driver send command via polling method and interrupt
for that command comes after driver free mfi frame (actually even after some other context reuse
the mfi frame). When driver receive MPT frame in ISR, driver will be using the index of MFI and
access that MFI frame and finally in-used MFI frames list will be corrupted.

High level description of new solution -
Free MFI and MPT command from same context.
Free both the command either from process (from where mfi-mpt pass-through was called) or from
ISR context. Do not split freeing of MFI and MPT, because it creates the race condition which
will do MFI/MPT list.

Submitted by:   Sumit Saxena <sumit.saxena@broadcom.com>
Reviewed by:    Kashyap Desai <Kashyap.Desai@broadcom.com>
MFC after:  3 days
Sponsored by:   Broadcom Limited/AVAGO Technologies
2016-11-29 12:49:20 +00:00
..
amd64 Report page faults due to reserved bits in PTEs as a separate fault type. 2016-11-19 01:34:12 +00:00
arm PLL3 have a fractional mode where an explicit frequency (297Mhz or 270) 2016-11-26 10:36:48 +00:00
arm64 Fix ISS_DATA_DFSC_MASK, it should include all bits in the field. 2016-11-28 14:24:07 +00:00
boot Add an ethernet0 alias pointing to the /aix/usb/hub/ethernet node. This 2016-11-26 17:55:46 +00:00
bsm
cam Explicitly initialize cdai.flags. 2016-11-29 11:13:43 +00:00
cddl MFV r309249: 3821 Race in rollback, zil close, and zil flush 2016-11-28 15:14:31 +00:00
compat Remove PG_CACHED-related fields from struct vmmeter, because they are no 2016-11-22 18:13:46 +00:00
conf Mark the Broadcom code as FDT only, there is no ACPI support for the 2016-11-29 12:46:42 +00:00
contrib Add a FREEBSD-Xlist file for CK. 2016-11-28 21:16:03 +00:00
crypto Add accelerated AES with using the ARMv8 crypto instructions. This is based 2016-11-21 11:18:00 +00:00
ddb Determine the operand/address size of %cs in a new function 2016-09-25 16:30:29 +00:00
dev Problem statement: 2016-11-29 12:49:20 +00:00
fs NFSv4 client tracks opens, and the track records are only dropped when 2016-11-27 09:20:58 +00:00
gdb
geom Use providergone method to cover race between destroy and g_access(). 2016-11-13 03:56:26 +00:00
gnu Add Ingenic X1000 DTS files (unofficial). 2016-11-19 15:03:49 +00:00
i386 MFamd64: Various fatal page fault fixes. 2016-11-19 01:36:44 +00:00
isa
kern Launder VPO_NOSYNC pages upon vnode deactivation. 2016-11-26 21:00:27 +00:00
kgssapi
libkern Update r309143 to prevent false sharing. 2016-11-25 17:20:23 +00:00
mips bhnd(4): Unify NVRAM/SPROM parsing, implement compact SPROM layout encoding. 2016-11-26 23:22:32 +00:00
modules bhnd(4): Unify NVRAM/SPROM parsing, implement compact SPROM layout encoding. 2016-11-26 23:22:32 +00:00
net IPsec RFC6479 support for replay window sizes up to 2^32 - 32 packets. 2016-11-25 14:44:49 +00:00
net80211 [net80211] high oops on the high seas, or "god damnit compilers, it's 2016 and you're supposed to save me from this." 2016-11-22 17:36:16 +00:00
netgraph Writing out the L2TP control packet requires 12 bytes of 2016-11-17 14:03:44 +00:00
netinet Rework ip_tryforward() to use FIB4 KPI. 2016-11-28 17:55:32 +00:00
netinet6 Make ICMPv6 hard error handling for TCP consistent with the ICMPv4 2016-10-21 10:32:57 +00:00
netipsec Add a missing header 2016-11-26 23:15:11 +00:00
netnatm
netpfil Fix ICMPv6 Time Exceeded error message translation. 2016-11-26 10:04:05 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed Move the ConnectX-3 and ConnectX-2 driver from sys/ofed into sys/dev/mlx4 2016-09-30 08:23:06 +00:00
opencrypto Add support for the fpu_kern(9) KPI on arm64. It hooks into the existing 2016-10-20 09:22:10 +00:00
pc98 Fix building on i386 and arm. But 'public domain' headers on the files 2016-10-13 06:56:23 +00:00
powerpc Add an isync to after mtsrin, required by the MPC750 errata 2016-11-25 19:36:27 +00:00
riscv Disable superpages reservations as we don't have implemented them yet. 2016-11-21 12:00:31 +00:00
rpc
security Audit 'fd' and 'cmd' arguments to fcntl(2), and when generating BSM, 2016-11-22 00:41:24 +00:00
sparc64 Fix building on i386 and arm. But 'public domain' headers on the files 2016-10-13 06:56:23 +00:00
sys NFSv4 client tracks opens, and the track records are only dropped when 2016-11-27 09:20:58 +00:00
teken
tests
tools
ufs Release laundered vnode pages to the head of the inactive queue. 2016-11-23 17:53:07 +00:00
vm Recursion on the free page queue mutex occurred when UMA needed to allocate 2016-11-27 01:42:53 +00:00
x86 Fix automatic eventtimer hardware selection when ARAT 2016-11-26 10:33:53 +00:00
xdr
xen xen: add a grant-table user-space device 2016-10-31 13:12:58 +00:00
Makefile