freebsd-dev/sys
Konstantin Belousov f9feb09189 Correct handling of RMRR during early enumeration stages.
On some machines, DMAR contexts must be created before all devices
under the scope of the corresponding DMAR unit are enumerated.
Current code has two problems with that:
- scope lookup returns NULL device_t, which causes to skip creating a
  context with RMRR, which is fatal for the affected device.
- calculation of the final pci dbsf address fails if any bridge in the
  scope is not yet enumerated, because code relies on pcib_get_bus().

Make creation of contexts work either with device_t, or with DMAR PCI
scope paths.  Scope provides enough information to infer context
address, and it is directly matched against DMAR tables scopes.

When calculating bus addresses for the scope or device, use direct
pci_cfgregread(PCIR_SECBUS_1) to get the secondary bus number, instead
of pcib_get_bus().

The issue was observed on HP Gen servers, where iLO PCI devices are
located behind south bridge switch.  Turning on translation without
satisfying RMRR requests caused iLO to mostly hang, up to the level of
being unusable to control the server.

While there, remove hw.dmar.dmar_match_verbose tunable, and make the
normal logging under bootverbose useful and sufficient to diagnose
DRHD and RMRR parsing and matching.

Sponsored by:	Mellanox Technologies
MFC after:	1 week
2019-04-18 14:18:06 +00:00
..
amd64 Fix initial x87 state after r345562. 2019-04-16 19:46:02 +00:00
arm arm: allwinner: Fix audio for Allwinner H3/H5 2019-04-17 21:45:19 +00:00
arm64 Merge ACPICA 20190329. 2019-03-29 20:21:28 +00:00
bsm Create new EINTEGRITY error with message "Integrity check failed". 2019-01-17 06:35:45 +00:00
cam Add new fields to mmc_data in preparation to SDIO CMD53 block mode support 2019-04-10 19:49:35 +00:00
cddl powerpc/dtrace: Fix dtrace powerpc asm, and simplify stack walking 2019-04-13 03:32:21 +00:00
compat correct readlinkat(2) return type 2019-04-16 13:26:31 +00:00
conf ofw_graph: Add functions for graph bindings 2019-04-17 20:09:01 +00:00
contrib The nvlist_report_missing is also used by the cnvlist. 2019-04-11 04:24:41 +00:00
crypto Embedded chacha: Add 0-bit iv + 128-bit counter mode 2019-03-01 23:30:23 +00:00
ddb ddb: Print the thread's pcb in 'show thread' 2019-02-09 21:08:19 +00:00
dev ofw_graph: Add functions for graph bindings 2019-04-17 20:09:01 +00:00
dts arm: dts: Remove some old DTS 2019-04-10 19:18:05 +00:00
fs ext2fs: Initial version of DTrace support. 2019-04-16 11:37:15 +00:00
gdb
geom Implement automatic online expansion of GELI providers - if the underlying 2019-04-03 23:57:37 +00:00
gnu Import DTS files from Linux 5.0 2019-04-10 18:15:36 +00:00
i386 Fix initial x87 state after r345562. 2019-04-16 19:46:02 +00:00
isa
kern stack_protector: Add tunable to bypass random cookies 2019-04-16 18:47:20 +00:00
kgssapi * Handle SIGPIPE in gssd 2019-02-21 01:30:37 +00:00
libkern random(4): Block read_random(9) on initial seeding 2019-04-15 18:40:36 +00:00
mips The Atheros AR7241 has 20 GPIO pins 2019-03-25 07:48:52 +00:00
modules Add support for INET6 addresses to the kernel code that dumps open/lock state. 2019-04-13 22:00:09 +00:00
net iflib: Use new ether_gen_addr, restricting addresses to that subset 2019-04-17 17:19:54 +00:00
net80211 net80211: correct check for SMPS node flags updates 2019-03-18 02:40:22 +00:00
netgraph Remove 'dir' argument in ng_ipfw_input, since ip_fw_args now has this info. 2019-03-14 22:30:05 +00:00
netinet When sending IPv4 packets on a SOCK_RAW socket using the IP_HDRINCL option, 2019-04-13 10:47:47 +00:00
netinet6 Reinitialize multicast source filter structures after invalidation. 2019-04-11 08:00:59 +00:00
netipsec Replace read_random(9) with more appropriate arc4rand(9) KPIs 2019-04-04 01:02:50 +00:00
netpfil pf: No need to M_NOWAIT in DIOCRSETTFLAGS 2019-04-18 11:37:44 +00:00
netsmb Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
nfs
nfsclient
nfsserver
nlm
ofed Mechanical cleanup of epoch(9) usage in network stack. 2019-01-09 01:11:19 +00:00
opencrypto Fix another bug introduced during the review process of r344140: 2019-02-25 19:14:16 +00:00
powerpc Move mpr/mps drivers from per-arch NOTES files into the MI notes 2019-04-13 06:30:45 +00:00
riscv RISC-V: initialize pcpu slightly earlier 2019-04-07 20:12:24 +00:00
rpc Fix malloc stats for the RPCSEC_GSS server code when DEBUG is enabled. 2019-04-04 01:23:06 +00:00
security Create kernel module to parse Veriexec manifest based on envs 2019-04-03 03:57:37 +00:00
sparc64 Move mpr/mps drivers from per-arch NOTES files into the MI notes 2019-04-13 06:30:45 +00:00
sys random(4): Add is_random_seeded(9) KPI 2019-04-16 17:12:17 +00:00
teken Attempt to complete fixing programmable function keys for syscons. 2019-02-20 02:14:41 +00:00
tests Regularize the Netflix copyright 2019-02-04 21:28:25 +00:00
tools make_dtb.sh: Use $CPP instead of assuming that cpp is in $PATH 2018-12-14 23:53:28 +00:00
ufs Handle races when remounting UFS volume from ro to rw. 2019-04-08 15:20:05 +00:00
vm for a cache-only zone the destructor tries to destroy a non-existent keg 2019-04-12 12:46:25 +00:00
x86 Correct handling of RMRR during early enumeration stages. 2019-04-18 14:18:06 +00:00
xdr
xen xen: introduce a new way to setup event channel upcall 2019-01-30 11:34:52 +00:00
Makefile