Commit graph

133975 commits

Author SHA1 Message Date
Mateusz Guzik
405b8d43e4 ciss: clean up empty lines in .c and .h files 2020-09-01 22:10:55 +00:00
Mateusz Guzik
0979589188 cfi: clean up empty lines in .c and .h files 2020-09-01 22:10:34 +00:00
Mateusz Guzik
9c0df1da91 cfe: clean up empty lines in .c and .h files 2020-09-01 22:10:24 +00:00
Mateusz Guzik
594dd1ded3 cesa: clean up empty lines in .c and .h files 2020-09-01 22:10:11 +00:00
Mateusz Guzik
ebf31a5cb9 ce: clean up empty lines in .c and .h files 2020-09-01 22:10:00 +00:00
Mateusz Guzik
44b1283d2a cardbus: clean up empty lines in .c and .h files 2020-09-01 22:09:41 +00:00
Mateusz Guzik
2334c4b865 cadence: clean up empty lines in .c and .h files 2020-09-01 22:09:26 +00:00
Mateusz Guzik
1224a253d8 md: clean up empty lines in .c and .h files 2020-09-01 22:08:52 +00:00
Mateusz Guzik
9f169a20b5 mem: clean up empty lines in .c and .h files 2020-09-01 22:08:39 +00:00
Mateusz Guzik
f0782e02a2 mfi: clean up empty lines in .c and .h files 2020-09-01 22:08:26 +00:00
Mateusz Guzik
fc32241fc8 mgb: clean up empty lines in .c and .h files 2020-09-01 22:08:14 +00:00
Mateusz Guzik
0077d05cae mii: clean up empty lines in .c and .h files 2020-09-01 22:07:59 +00:00
Mateusz Guzik
5ef3520a33 mly: clean up empty lines in .c and .h files 2020-09-01 22:07:37 +00:00
Mateusz Guzik
56feefccc7 mmc: clean up empty lines in .c and .h files 2020-09-01 22:07:26 +00:00
Mateusz Guzik
577858c836 mpr: clean up empty lines in .c and .h files 2020-09-01 22:07:12 +00:00
Mateusz Guzik
742c5f2014 mps: clean up empty lines in .c and .h files 2020-09-01 22:07:00 +00:00
Mateusz Guzik
0bd9a5da1c mpt: clean up empty lines in .c and .h files 2020-09-01 22:06:41 +00:00
Mateusz Guzik
139b723f80 mrsas: clean up empty lines in .c and .h files 2020-09-01 22:06:23 +00:00
Mateusz Guzik
3cb02df9ae mthca: clean up empty lines in .c and .h files 2020-09-01 22:06:07 +00:00
Mateusz Guzik
68304fdc15 mvs: clean up empty lines in .c and .h files 2020-09-01 22:05:53 +00:00
Mateusz Guzik
1046c45055 mwl: clean up empty lines in .c and .h files 2020-09-01 22:05:39 +00:00
Mateusz Guzik
6622a5e912 my: clean up empty lines in .c and .h files 2020-09-01 22:05:21 +00:00
Mateusz Guzik
ecb86c27ba mxge: clean up empty lines in .c and .h files 2020-09-01 22:05:00 +00:00
Mateusz Guzik
4dd5edf32a nfe: clean up empty lines in .c and .h files 2020-09-01 22:04:37 +00:00
Mateusz Guzik
db95a0c2f6 nfsmb: clean up empty lines in .c and .h files 2020-09-01 22:04:24 +00:00
Mateusz Guzik
1db0db8a10 nge: clean up empty lines in .c and .h files 2020-09-01 22:04:10 +00:00
Mateusz Guzik
391486af75 ntb: clean up empty lines in .c and .h files 2020-09-01 22:03:55 +00:00
Mateusz Guzik
86e53c0789 null: clean up empty lines in .c and .h files 2020-09-01 22:03:46 +00:00
Mateusz Guzik
06e9b42260 nvd: clean up empty lines in .c and .h files 2020-09-01 22:03:32 +00:00
Mateusz Guzik
d87b31e159 nvme: clean up empty lines in .c and .h files 2020-09-01 22:03:10 +00:00
Mateusz Guzik
d6d2fd45b9 nvram2env: clean up empty lines in .c and .h files 2020-09-01 22:02:55 +00:00
Mateusz Guzik
cec3c5649c oce: clean up empty lines in .c and .h files 2020-09-01 22:02:32 +00:00
Mateusz Guzik
98d835ae88 ocs_fc: clean up empty lines in .c and .h files 2020-09-01 22:02:12 +00:00
Mateusz Guzik
f9874fbbf1 ofw: clean up empty lines in .c and .h files 2020-09-01 22:01:53 +00:00
Mateusz Guzik
ad297e9ec5 otus: clean up empty lines in .c and .h files 2020-09-01 22:01:41 +00:00
Mateusz Guzik
95515a222d ow: clean up empty lines in .c and .h files 2020-09-01 22:01:32 +00:00
Mateusz Guzik
0f9f3568cd pbio: clean up empty lines in .c and .h files 2020-09-01 22:01:17 +00:00
Mateusz Guzik
3b20422328 pccard: clean up empty lines in .c and .h files 2020-09-01 22:01:04 +00:00
Mateusz Guzik
ba9f0c72dd pccbb: clean up empty lines in .c and .h files 2020-09-01 22:00:48 +00:00
Mateusz Guzik
58263fc56e pcf: clean up empty lines in .c and .h files 2020-09-01 22:00:30 +00:00
Mateusz Guzik
04e8183fd1 pci: clean up empty lines in .c and .h files 2020-09-01 22:00:07 +00:00
Mateusz Guzik
3cfc80b28a powermac_nvram: clean up empty lines in .c and .h files 2020-09-01 21:59:31 +00:00
Mateusz Guzik
8eba8a00b9 ppbus: clean up empty lines in .c and .h files 2020-09-01 21:59:11 +00:00
Mateusz Guzik
6ba56517e2 ppc: clean up empty lines in .c and .h files 2020-09-01 21:58:56 +00:00
Mateusz Guzik
9b15b0633e proto: clean up empty lines in .c and .h files 2020-09-01 21:58:40 +00:00
Mateusz Guzik
0bc261868a psci: clean up empty lines in .c and .h files 2020-09-01 21:58:29 +00:00
Mateusz Guzik
ed67e0760a pst: clean up empty lines in .c and .h files 2020-09-01 21:58:12 +00:00
Mateusz Guzik
232fcd1b62 puc: clean up empty lines in .c and .h files 2020-09-01 21:58:04 +00:00
Mateusz Guzik
d1779f95e2 pwm: clean up empty lines in .c and .h files 2020-09-01 21:57:50 +00:00
Mateusz Guzik
3720573374 qlnx: clean up empty lines in .c and .h files 2020-09-01 21:57:33 +00:00
Mateusz Guzik
29c3bcd9d0 qlxgb: clean up empty lines in .c and .h files 2020-09-01 21:57:15 +00:00
Mateusz Guzik
2c4a3d0a2c qlxgbe: clean up empty lines in .c and .h files 2020-09-01 21:56:55 +00:00
Mateusz Guzik
d7c853dee0 qlxge: clean up empty lines in .c and .h files 2020-09-01 21:56:30 +00:00
Mateusz Guzik
790cd2071a ral: clean up empty lines in .c and .h files 2020-09-01 21:56:10 +00:00
Mateusz Guzik
8545078787 rl: clean up empty lines in .c and .h files 2020-09-01 21:56:03 +00:00
Mateusz Guzik
cce8703a99 rndtest: clean up empty lines in .c and .h files 2020-09-01 21:55:52 +00:00
Mateusz Guzik
2138049a39 rt: clean up empty lines in .c and .h files 2020-09-01 21:55:37 +00:00
Mateusz Guzik
6a8b28c6c9 safe: clean up empty lines in .c and .h files 2020-09-01 21:55:23 +00:00
Mateusz Guzik
f3d4f94fa7 safexcel: clean up empty lines in .c and .h files 2020-09-01 21:54:58 +00:00
Mateusz Guzik
1683952de1 sbni: clean up empty lines in .c and .h files 2020-09-01 21:54:35 +00:00
Mateusz Guzik
fe81abdeb4 sdhci: clean up empty lines in .c and .h files 2020-09-01 21:54:16 +00:00
Mateusz Guzik
00d927f34a sdio: clean up empty lines in .c and .h files 2020-09-01 21:53:58 +00:00
Mateusz Guzik
bf951109dd sec: clean up empty lines in .c and .h files 2020-09-01 21:53:44 +00:00
Mateusz Guzik
a794225cc1 sk: clean up empty lines in .c and .h files 2020-09-01 21:53:37 +00:00
Mateusz Guzik
7368632c18 smartpqi: clean up empty lines in .c and .h files 2020-09-01 21:53:21 +00:00
Mateusz Guzik
75d41981c0 smbus: clean up empty lines in .c and .h files 2020-09-01 21:53:00 +00:00
Mateusz Guzik
a7b66a9ff7 smc: clean up empty lines in .c and .h files 2020-09-01 21:52:46 +00:00
Mateusz Guzik
0866e8bcfb spibus: clean up empty lines in .c and .h files 2020-09-01 21:52:35 +00:00
Mateusz Guzik
c408cf7411 stge: clean up empty lines in .c and .h files 2020-09-01 21:52:20 +00:00
Mateusz Guzik
99cce2a3a9 superio: clean up empty lines in .c and .h files 2020-09-01 21:52:05 +00:00
Mateusz Guzik
e287e71ab9 sym: clean up empty lines in .c and .h files 2020-09-01 21:51:55 +00:00
Mateusz Guzik
70a9bd18f8 tcp_log: clean up empty lines in .c and .h files 2020-09-01 21:51:38 +00:00
Mateusz Guzik
1dbbeb200f tdfx: clean up empty lines in .c and .h files 2020-09-01 21:51:10 +00:00
Mateusz Guzik
4740159ada ti: clean up empty lines in .c and .h files 2020-09-01 21:50:47 +00:00
Mateusz Guzik
0d7f4d16dd tpm: clean up empty lines in .c and .h files 2020-09-01 21:50:31 +00:00
Mateusz Guzik
93a6b43939 tsec: clean up empty lines in .c and .h files 2020-09-01 21:50:21 +00:00
Mateusz Guzik
bf10325475 uart: clean up empty lines in .c and .h files 2020-09-01 21:50:00 +00:00
Mateusz Guzik
cea02fc296 vge: clean up empty lines in .c and .h files 2020-09-01 21:49:49 +00:00
Mateusz Guzik
92a5369e31 viapm: clean up empty lines in .c and .h files 2020-09-01 21:49:31 +00:00
Mateusz Guzik
0a3f7c435a videomode: clean up empty lines in .c and .h files 2020-09-01 21:49:14 +00:00
Mateusz Guzik
875af9c6af vkbd: clean up empty lines in .c and .h files 2020-09-01 21:48:55 +00:00
Mateusz Guzik
00605fca48 vmd: clean up empty lines in .c and .h files 2020-09-01 21:48:37 +00:00
Mateusz Guzik
78ee240673 vnic: clean up empty lines in .c and .h files 2020-09-01 21:48:21 +00:00
Mateusz Guzik
d918dd1915 vr: clean up empty lines in .c and .h files 2020-09-01 21:48:08 +00:00
Mateusz Guzik
d276d86e12 vt: clean up empty lines in .c and .h files 2020-09-01 21:47:32 +00:00
Mateusz Guzik
560f4fcdd8 watchdog: clean up empty lines in .c and .h files 2020-09-01 21:47:20 +00:00
Mateusz Guzik
95f97cd406 wbwd: clean up empty lines in .c and .h files 2020-09-01 21:46:58 +00:00
Mateusz Guzik
8ffce1e79d wi: clean up empty lines in .c and .h files 2020-09-01 21:46:42 +00:00
Mateusz Guzik
391a27c41d wpi: clean up empty lines in .c and .h files 2020-09-01 21:46:27 +00:00
Mateusz Guzik
0bd0689270 wtap: clean up empty lines in .c and .h files 2020-09-01 21:45:35 +00:00
Mateusz Guzik
6c7cae4a73 dev/xen: clean up empty lines in .c and .h files 2020-09-01 21:45:08 +00:00
Mateusz Guzik
6831ac28dc xilinx: clean up empty lines in .c and .h files 2020-09-01 21:44:42 +00:00
Mateusz Guzik
7163a84975 bwn: clean up empty lines in .c and .h files 2020-09-01 21:43:48 +00:00
Mateusz Guzik
93b628b9d8 bwi: clean up empty lines in .c and .h files 2020-09-01 21:43:36 +00:00
Mateusz Guzik
38fc6c1443 bnxt: clean up empty lines in .c and .h files 2020-09-01 21:43:23 +00:00
Mateusz Guzik
ab3fad6ea2 bhnd: clean up empty lines in .c and .h files 2020-09-01 21:43:05 +00:00
Mateusz Guzik
b410de8ad2 bge: clean up empty lines in .c and .h files 2020-09-01 21:42:49 +00:00
Mateusz Guzik
3a1ecfe33d bfe: clean up empty lines in .c and .h files 2020-09-01 21:42:38 +00:00
Mateusz Guzik
dcc016d173 beri: clean up empty lines in .c and .h files 2020-09-01 21:42:21 +00:00
Mateusz Guzik
eef5873fc1 bce: clean up empty lines in .c and .h files 2020-09-01 21:42:08 +00:00
Mateusz Guzik
a62d779028 axgbe: clean up empty lines in .c and .h files 2020-09-01 21:41:55 +00:00
Mateusz Guzik
bf479e1372 atkbdc: clean up empty lines in .c and .h files 2020-09-01 21:41:38 +00:00
Mateusz Guzik
9966c0f962 ath: clean up empty lines in .c and .h files 2020-09-01 21:41:07 +00:00
Mateusz Guzik
1529c50966 ata: clean up empty lines in .c and .h files 2020-09-01 21:40:47 +00:00
Mateusz Guzik
721b3402b6 asmc: clean up empty lines in .c and .h files 2020-09-01 21:40:30 +00:00
Mateusz Guzik
1618c554b0 arcmsr: clean up empty lines in .c and .h files 2020-09-01 21:40:13 +00:00
Mateusz Guzik
dedcfeb6c6 an: clean up empty lines in .c and .h files 2020-09-01 21:39:56 +00:00
Mateusz Guzik
4e12cd7f0b amr: clean up empty lines in .c and .h files 2020-09-01 21:39:37 +00:00
Mateusz Guzik
e492d18c3c amd*: clean up empty lines in .c and .h files 2020-09-01 21:39:19 +00:00
Mateusz Guzik
a3e2cdf8a6 altera: clean up empty lines in .c and .h files 2020-09-01 21:38:18 +00:00
Mateusz Guzik
ec31d2fb11 alpm: clean up empty lines in .c and .h files 2020-09-01 21:38:06 +00:00
Mateusz Guzik
6b827c83d3 ale: clean up empty lines in .c and .h files 2020-09-01 21:37:53 +00:00
Mateusz Guzik
0e9080cb12 al_eth: clean up empty lines in .c and .h files 2020-09-01 21:37:35 +00:00
Mateusz Guzik
d5b4569f95 aic7xxx: clean up empty lines in .c and .h files 2020-09-01 21:37:14 +00:00
Mateusz Guzik
f051a2b0d5 ahci: clean up empty lines in .c and .h files 2020-09-01 21:36:40 +00:00
Mateusz Guzik
4ce60b6549 agp: clean up empty lines in .c and .h files 2020-09-01 21:35:39 +00:00
Mateusz Guzik
2ac05cef89 if_age: clean up empty lines in .c and .h files 2020-09-01 21:35:14 +00:00
Mateusz Guzik
db27c983ac if_ae: clean up empty lines in .c and .h files 2020-09-01 21:34:58 +00:00
Mateusz Guzik
5c01b31291 adlink: clean up empty lines in .c and .h files 2020-09-01 21:34:41 +00:00
Mateusz Guzik
06261cf209 adb: clean up empty lines in .c and .h files 2020-09-01 21:34:24 +00:00
Mateusz Guzik
3149873ac3 acpi_support: clean up empty lines in .c and .h files 2020-09-01 21:34:04 +00:00
Mateusz Guzik
b3512b30db rtwn: clean up empty lines in .c and .h files 2020-09-01 21:33:31 +00:00
Mateusz Guzik
82c28121f7 acpica: clean up empty lines in .c and .h files 2020-09-01 21:32:41 +00:00
Mateusz Guzik
6ece1c1057 aacraid: clean up empty lines in .c and .h files 2020-09-01 21:32:25 +00:00
Mateusz Guzik
74d4575764 aac: clean up empty lines in .c and .h files 2020-09-01 21:32:07 +00:00
Mateusz Guzik
b4492420b6 twe: clean up empty lines in .c and .h files 2020-09-01 21:31:50 +00:00
Mateusz Guzik
8644bfdbfa tws: clean up empty lines in .c and .h files 2020-09-01 21:31:38 +00:00
Mateusz Guzik
068dbf361a virtio: clean up empty lines in .c and .h files 2020-09-01 21:31:26 +00:00
Mateusz Guzik
2140d5b64f iscsi: clean up empty lines in .c and .h files 2020-09-01 21:30:22 +00:00
Mateusz Guzik
4eb2ed072b vmware: clean up empty lines in .c and .h files 2020-09-01 21:30:01 +00:00
Mateusz Guzik
d63738087e syscons: clean up empty lines in .c and .h files 2020-09-01 21:29:44 +00:00
Mateusz Guzik
bed0229648 twa: clean up empty lines in .c and .h files 2020-09-01 21:29:23 +00:00
Mateusz Guzik
b138e49c66 sfxge: clean up empty lines in .c and .h files 2020-09-01 21:29:01 +00:00
Mateusz Guzik
378503af2e sound: clean up empty lines in .c and .h files 2020-09-01 21:27:34 +00:00
Mateusz Guzik
9dd3156e54 usb: clean up empty lines in .c and .h files 2020-09-01 21:26:44 +00:00
Mateusz Guzik
e5ecee7440 security: clean up empty lines in .c and .h files 2020-09-01 21:26:00 +00:00
Mateusz Guzik
7c8e2a57dd nfs: clean up empty lines in .c and .h files 2020-09-01 21:25:39 +00:00
Mateusz Guzik
1060326fb6 libkern: clean up empty lines in .c and .h files 2020-09-01 21:25:23 +00:00
Mateusz Guzik
1a18003240 compat: clean up empty lines in .c and .h files 2020-09-01 21:24:33 +00:00
Mateusz Guzik
ab6c81a218 x86: clean up empty lines in .c and .h files 2020-09-01 21:23:59 +00:00
Mateusz Guzik
d90f2c3617 ufs: clean up empty lines in .c and .h files 2020-09-01 21:23:00 +00:00
Mateusz Guzik
59958e948c xen: clean up empty lines in .c and .h files 2020-09-01 21:21:55 +00:00
Mateusz Guzik
f1ffd05af1 mips: clean up empty lines in .c and .h files 2020-09-01 21:21:19 +00:00
Mateusz Guzik
e91d4ae878 riscv: clean up empty lines in .c and .h files 2020-09-01 21:21:03 +00:00
Mateusz Guzik
c3aa3bf97c vm: clean up empty lines in .c and .h files 2020-09-01 21:20:45 +00:00
Mateusz Guzik
b64b31338f powerpc: clean up empty lines in .c and .h files 2020-09-01 21:20:08 +00:00
Mateusz Guzik
ed83a56181 i386: clean up empty lines in .c and .h files 2020-09-01 21:19:39 +00:00
Mateusz Guzik
662c13053f net: clean up empty lines in .c and .h files 2020-09-01 21:19:14 +00:00
Mateusz Guzik
586ee69f09 fs: clean up empty lines in .c and .h files 2020-09-01 21:18:40 +00:00
Mateusz Guzik
50cedfede3 arm64: clean up empty lines in .c and .h files 2020-09-01 21:18:06 +00:00
Mateusz Guzik
654548838b arm: clean up empty lines in .c and .h files 2020-09-01 21:17:24 +00:00
Mateusz Guzik
543769bf83 amd64: clean up empty lines in .c and .h files 2020-09-01 21:16:54 +00:00
Vincenzo Maffione
35d8a463e8 iflib: leave only 1 receive descriptor unused
The pidx argument of isc_rxd_flush() indicates which is the last valid
receive descriptor to be used by the NIC. However, current code has
multiple issues:
  - Intel drivers write pidx to their RDT register, which means that
    NICs will only use the descriptors up to pidx-1 (modulo ring size N),
    and won't actually use the one pointed by pidx. This does not break
    reception, but it is anyway confusing and suboptimal (the NIC will
    actually see only N-2 descriptors as available, rather than N-1).
    Other drivers (if_vmx, if_bnxt, if_mgb) adhere to this semantic).
  - The semantic used by Intel (RDT is one descriptor past the last
     valid one) is used by most (if not all) NICs, and it is also used
     on the TX side (also in iflib). Since iflib is not currently
     using this semantic for RX, it must decrement fl->ifl_pidx
     (modulo N) before calling isc_rxd_flush(), and then the
     per-driver callback implementation must increment the index
     again (to match the real semantic). This is confusing and suboptimal.
  -  The iflib refill function is also called at initialization.
     However, in case the ring size is smaller than 128 (e.g. if_mgb),
     the refill function will actually prepare all the receive
     descriptors (N), without leaving one unused, as most of NICs assume
     (e.g. to avoid RDT to overrun RDH). I can speculate that the code
     looks like this right now because this issue showed up during
     testing (e.g. with if_mgb), and it was easy to workaround by
     decrementing pidx before isc_rxd_flush().

The goal of this change is to simplify the code (removing a bunch
of instructions from the RX fast path), and to make the semantic of
isc_rxd_flush() consistent across drivers. To achieve this, we:
  - change the semantics of the pidx argument to the usual one (that
    is the index one past the last valid one), so that both iflib and
    drivers avoid the decrement/increment dance.
  - fix the initialization code to prepare at most N-1 descriptors.

Reviewed by:	markj
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D26191
2020-09-01 20:41:47 +00:00
Mark Johnston
f7eec6b204 qlxgb: Initialize if_mtu before setting max_frame_size.
Previously we were relying on ether_ifattach() to set if_mtu, but
max_frame_size is initialized earlier.  This fixes a regression
introduced by r250375.

PR:		249050
Submitted by:	Christian Vallières <novacrash_@hotmail.com>
MFC after:	3 days
2020-09-01 20:13:50 +00:00
Marcin Wojtas
2b33ffde2e Introduce the SDHCI driver for NXP QorIQ Layerscape SoCs
Implement support for an eSDHC controller found in NXP QorIQ Layerscape SoCs.

This driver has been tested with NXP LS1046A and LX2160A (Honeycomb board),
which is incompatible with the existing sdhci_fsl driver (aiming at older
chips from this family). As such, it is not intended as replacement for
the old driver, but rather serves as an improved alternative for SoCs that
support it.
It comes with support for both PIO and Single DMA modes and samples the
clock from the extres clk API.

Submitted by: Artur Rojek <ar@semihalf.com>
Reviewed by: manu, mmel, kibab
Obtained from: Semihalf
Sponsored by: Alstom Group
Differential Revision: https://reviews.freebsd.org/D26153
2020-09-01 16:17:21 +00:00
Takanori Watanabe
e26b9046a0 Add Cannon Point PCH Thermal Controller Device ID.
PR:	249047
Reported by: Dries Michiels <driesm.michiels at gmail.com>
2020-09-01 15:33:57 +00:00
Mark Johnston
fcc0db1734 Tighten frame pointer checking in DTrace's amd64 stack unwinder.
Avoid assuming that the kernel was compiled with
-fno-omit-frame-pointer.

MFC after:	1 week
Sponsored by:	NetApp, Inc.
Sponsored by:	Klara, Inc.
2020-09-01 15:15:44 +00:00
Andrew Turner
a48cf24742 Ensure the tlbi has completed before setting SCTLR
When enabling the MMU on arm64 we need to ensure the tlb invalidation has
completed before setting the enable bit in the SCTLR register.

Reported by:	alc
Sponsored by:	Innovate UK
2020-09-01 14:50:43 +00:00
Hans Petter Selasky
78ae1e6e15 Make hardware TLS send tag allocation synchronous in mlx5en(4).
Previously the send tag was setup in the background, and all packets for
the given send tag were dropped until ready. Change this to be blocking
behaviour so that once the setsocketopt() for enabling TLS completes,
the socket is ready to send packets. Do this by simply flushing the
work request which does the needed firmware programming during send
tag allocation.

MFC after:	1 week
Sponsored by:	Mellanox Technologies // Nvidia
2020-09-01 12:21:17 +00:00
Leandro Lupori
51488825f1 [PowerPC] Fix PMCLOG address width
PMCLOG macros were always using 32-bit addresses, even on PPC64.
This resulted in truncated addresses in logs, when running on 64-bit PPC
machines.

Sponsored by:	Eldorado Research Institute (eldorado.org.br)
Differential Revision:	https://reviews.freebsd.org/D26112
2020-09-01 11:34:05 +00:00
Leandro Lupori
9b23e3845b [PowerPC] Move pmc_hook out of critical section
Calling pmc_hook inside a critical section may result in a panic.

This happens when the user callchain is fetched, because it uses
pmap_map_user_ptr, that tries to get the (sleepable) pmap lock when the
needed vsid is not found.

Judging by the implementation in other platforms, intr_irq_handler in
kern/subr_intr.c and what pmc_hook do, it seems safe to move pmc_hook
outside the critical section.

Sponsored by:	Eldorado Research Institute (eldorado.org.br)
Differential Revision:	https://reviews.freebsd.org/D26111
2020-09-01 11:30:39 +00:00
Andrew Turner
21f81763b3 Support stage 2 arm64 pmap in more places
Add support for stage 2 pmap to pmap_pte_dirty, pmap_release, and more
of pmap_enter. This adds support in all placess I have hit while testing
bhyve ehile faulting pages in as needed.

Sponsored by:	Innovate UK
Differential Revision:	https://reviews.freebsd.org/D26065
2020-09-01 11:02:43 +00:00
Hans Petter Selasky
59ca674ef2 Fully revert r364379.
The "Intel Sunrise Point-LP USB 3.0 controller" doesn't update the wMaxPacket
field in the control endpoint context automatically causing a BABBLE error code
on the initial first USB device descriptor read, when the bMaxPacketSize is not
8 bytes.

Reported by:	wulf@
PR:		248784
MFC after:	1 week
Sponsored by:	Mellanox Technologies
2020-09-01 08:14:46 +00:00
Warner Losh
cffca129a9 Smaller crc for the boot loader.
Save 7k of text space by using simpler crc32 for standalone case. we
don't need all that fancy optimization in the boot loader, so use a
simplified version of the CRC function. We could save more by doing it
one bit at a time rather than 32, but this is the biggest savings at
the smallest performance hit.

With LUA and verfied exec, gptboot, gptzfsboot and friends are pushing
the ~530k limit and every little bit helps.

Reviewed By: allanjude
Differential Revision: https://reviews.freebsd.org/D24225
2020-09-01 04:37:55 +00:00
Brandon Bergren
3ae3a7a7c0 [PowerPC] Remove unused openpic_set_priority().
When SMP support for powerpc was added in r178628, the last callers of this
function were removed. All code that needs to manipulate the task priority
just does it directly instead.

Noticed while reading through the lint logs.

Sponsored by:	Tag1 Consulting, Inc.
2020-09-01 01:57:56 +00:00
Rick Macklem
4cdbb07b3c Add a check to test for the case of the "tls" option being used with "udp".
The KERN_TLS only supports TCP, so use of the "tls" option with "udp" will
not work.  This patch adds a test for this case, so that the mount is not
attempted when both "tls" and "udp" are specified.
2020-09-01 01:10:16 +00:00
Warner Losh
b8e804ba5d Warn for the non pccard attachments
These devices have non-pccard attachments. Warn for those as well. Both an and
wi don't do the modern cyrpto needed to use these cards on secure wifi networks.
an needs firmware from Cisco, which I don't think was ever produced. wi could
in theory do it with raw frames and on-host encryption, but nobody has written
that in the 15 years since WEP was cracked.

MFC After: 3 days
Noticed by: rgrimes
Differential Revision: https://reviews.freebsd.org/D26138
2020-08-31 23:31:16 +00:00
Navdeep Parhar
565b8fce23 cxgbe(4): Check for descriptors before writing a TLS or raw work request.
This fixes a regression in r362905.

Submitted by:	jhb@
Sponsored by:	Chelsio Communications
2020-08-31 22:44:59 +00:00
Warner Losh
8df7e154a2 Add deprecation notice for apm BIOS
Add deprecation notice for apm bios, aka the apm(4) device. The apm(8)
command will remain, at least for a while, since ACPI emulates the apm
ioctl interface.

Discussed on: arch@
Relnotes: yes
MFC After: 3 days
2020-08-31 21:04:00 +00:00
Warner Losh
881534f09c Use symbolic names for asych events
Rather than |= 0x300, define and use asyn event names for the name
space changes and the firmware activations that we're asking for.
2020-08-31 19:38:03 +00:00
Konstantin Belousov
596b98ba16 mlx5 sriov: Add controls for VFs to set port/node GUIDs.
Setting GUIDs make RoCE offloads functional on VFs.

Reported and tested by:	chuck
Sponsored by:	Mellanox Technologies - Nvidia
MFC after:	1 week
2020-08-31 16:32:17 +00:00
Konstantin Belousov
cca1f7a12f mlx5 sriov: add error message for failed MAC programming on VF.
Sponsored by:	Mellanox Technologies - Nvidia
MFC after:	1 week
2020-08-31 16:30:52 +00:00
Konstantin Belousov
2ea114b34e mlx5en: Implement SIOCGIFDOWNREASON.
Sponsored by:	Mellanox Technologies - Nvidia
MFC after:	1 week
2020-08-31 16:27:03 +00:00
Konstantin Belousov
62daa4b6e8 mlx5_core: add mlx5_query_pddr().
And use it in mlx5_query_pddr_range_info() instead of direct register
access.

Sponsored by:	Mellanox Technologies - Nvidia
MFC after:	1 week
2020-08-31 16:25:55 +00:00
Konstantin Belousov
e088db5eae mlx5_core: Import PDDR register definitions
PDDR (Port Diagnostics Database Register) is used to read the physical
layer debug database, which contains helpful troubleshooting information
regarding the state of the link.

PDDR register can only be queried when PCAM register reports it as
supported in its register mask. A new helper macro was added to
the MLX5_CAP_* infrastructure in order to access this mask.

Sponsored by:	Mellanox Technologies - Nvidia
MFC after:	1 week
2020-08-31 16:23:51 +00:00
Eric van Gyzen
536457e181 infiniband: Appease Coverty
Coverity claims the call to rdma_gid2ip in cma_igmp_send overwrites addr.
Use a consistent definition of sockaddr to prevent detections and code
changes in the future.

Submitted by:	bret_ketchum@dell.com
Reported by:	Coverity
Reviewed by:	hselasky, kib
MFC after:	2 weeks
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D26229
2020-08-31 16:17:28 +00:00
Mark Johnston
f4d7179ad3 rtwn(4): Add support for the Belkin N300.
PR:		249034
Submitted by:	Salvador Martínez Mármol <salvica@kapj.net>
MFC after:	1 week
2020-08-31 15:32:45 +00:00
Eric van Gyzen
0bb426274e Fix nfsrvd_locku memory leak
Coverity detected memory leak fix.

Submitted by:	bret_ketchum@dell.com
Reported by:	Coverity
Reviewed by:	rmacklem
MFC after:	2 weeks
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D26231
2020-08-31 15:31:17 +00:00
Kyle Evans
5dd47b52e5 posixshm: fix setting of shm_flags
Noted in D24652, we currently set shmfd->shm_flags on every
shm_open()/shm_open2(). This wasn't properly thought out; one shouldn't be
able to specify incompatible flags on subsequent opens of non-anon shm.

Move setting of shm_flags explicitly to the two places shmfd are created, as
we do with seals, and validate when we're opening a pre-existing mapping
that we've either passed no flags or we've passed the exact same flags as
the first time.

Reviewed by:	kib, markj
Differential Revision:	https://reviews.freebsd.org/D26242
2020-08-31 15:07:15 +00:00
Eric van Gyzen
641b7baa5b jedec_dimm: fix array overrun
Coverity detected the overrunning of sc->part_str.

Submitted by:	bret_ketchum@dell.com
Reported by:	Coverity
MFC after:	2 weeks
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D26145
2020-08-31 15:03:23 +00:00
Andrew Gallatin
796d4eb89e make m_getm2() resilient to zone_jumbop exhaustion
When the zone_jumbop is exhausted, most things using
using sosend* (like sshd)  will eventually
fail or hang if allocations are limited to the
depleted jumbop zone.  This makes it imossible to
communicate with a box which is under an attach which
exhausts the jumbop zone.

Rather than depending on the page size zone, also try cluster
allocations to satisfy larger requests.  This allows me
to ssh to, and serve 100Gb/s of traffic from a server which
under attack and has had its page-sized zone exhausted.

Reviewed by:	glebius, markj, rmacklem
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D26150
2020-08-31 13:53:14 +00:00
Wei Hu
2a0ce39d08 Hyper-V: storvsc: Enhance srb_status code handling.
In hv_storvsc_io_request() when coring, prevent changing of the send channel
from the base channel to another one. storvsc_poll always probes on the base
channel.

Based upon conversations with Microsoft, changed the handling of srb_status
codes. Most we should never get, others yes. All are treated as retry-able
except for two. We should not get these statuses, but if we ever do, the I/O
state is not known.

Submitted by:	Alexander Sideropoulos <Alexander.Sideropoulos@netapp.com>
Reviewed by:	trasz, allanjude, whu
MFC after:	1 week
Sponsored by:	Netapp Inc
Differential Revision:	https://reviews.freebsd.org/D25756
2020-08-31 09:05:45 +00:00
Kyle Evans
1e9b8db9b2 ipv6: quit dropping packets looping back on p2p interfaces
To paraphrase the below-referenced PR:

This logic originated in the KAME project, and was even controversial when
it was enabled there by default in 2001. No such equivalent logic exists in
the IPv4 stack, and it turns out that this leads to us dropping valid
traffic when the "point to point" interface is actually a 1:many tun
interface, e.g. with the wireguard userland stack.

Even in the case of true point-to-point links, this logic only avoids
transient looping of packets sent by misconfigured applications or
attackers, which can be subverted by proper route configuration rather than
hardcoded logic in the kernel to drop packets.

In the review, melifaro goes on to note that the kernel can't fix it, so it
perhaps shouldn't try to be 'smart' about it. Additionally, that TTL will
still kick in even with incorrect route configuration.

PR:		247718
Reviewed by:	melifaro, rgrimes
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D25567
2020-08-31 01:45:48 +00:00
Gleb Smirnoff
8e613cf5f3 Followup on r364922. Old comment said that the only reason to put
the hook at queue mode was that mn_rx_intr() doesn't run at splnet
level. In today's netgraph the only legitimate reason for queue mode
is recursion avoidance. So I see no reason for queue mode here.

Not tested!
2020-08-30 17:13:04 +00:00
Marko Zec
bd36872867 Driver for 4x10Gb Ethernet reference NIC FPGA design for NetFPGA SUME
development board.

Submitted by:	Denis Salopek <denis.salopek AT fer.hr>
Reported by:	zec, bz (src); rgrimes, bcr (manpages)
MFC after:	7 days
Sponsored by:	Google Summer of Code 2020
Differential Revision:	https://reviews.freebsd.org/D26074
2020-08-30 07:34:32 +00:00
Jamie Gritton
0820428967 Add __BEGIN_DECLS to jail.h to keep C++ happy.
PR:		238928
Reported by:	yuri@
2020-08-29 22:24:41 +00:00
Vladimir Kondratyev
5d4bf0578f LinuxKPI: Implement ksize() function.
In Linux, ksize() gets the actual amount of memory allocated for a given
object. This commit adds malloc_usable_size() to FreeBSD KPI which does
the same. It also maps LinuxKPI ksize() to newly created function.

ksize() function is used by drm-kmod.

Reviewed by:	hselasky, kib
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D26215
2020-08-29 19:26:31 +00:00
Alexander V. Chernikov
b8d2d479cd Revert uma zone alignemnt cache unadvertenly committed in r364950. 2020-08-29 12:04:13 +00:00
Warner Losh
f6c941f347 We don't need to INCLUDENUL, so turn it off to avoid assertion...
sbuf_new_for_sysctl turns on INCLUDENUL, but we don't need it. And we assert for
it in the new bus_pnpinfo_sb and bus_location_sb strings.
2020-08-29 11:46:50 +00:00
Emmanuel Vadot
b46b3ba72c Fix arm64 build after r364927
Reported by:	jenkins, dch
Pointy hat to:	manu
2020-08-29 11:39:53 +00:00
Warner Losh
6dd5b77a15 Use sbuf_cat instead of sbuf_cpy
sbuf_cpy doesn't work with sysctl sbufs because of the drain function.
2020-08-29 11:18:10 +00:00
Alexander V. Chernikov
6498f66f7c Fix build with RADIX_MPATH.
Reported by:	Hartmann, O <ohartmann@walstatt.org>
2020-08-29 11:04:24 +00:00
Warner Losh
5eade881a8 Avoid NULL pointer dereferences
Add back NULL pointer checks accidentally dropped in r364946. We need
to append a NUL character when that happens.
2020-08-29 09:59:52 +00:00
Warner Losh
17c219fd6f Move to using sbuf for some sysctl in newbus
Convert two different sysctl to using sbuf. First, for all the default
sysctls we implement for each device driver that's attached. This is a
pure sbuf conversion.

Second, convert sysctl_devices to fill its buffer with sbuf rather
than a hand-rolled crappy thing I wrote years ago.

Reviewed by: cem, markj
Differential Revision: https://reviews.freebsd.org/D26206
2020-08-29 04:30:12 +00:00
Warner Losh
887611b122 Retire devctl_notify_f()
devctl_notify_f isn't needed, so retire it. The flags argument is now
unused, so rather than keep it around, retire it. Convert all old
users of it to devctl_notify(). This path no longer sleeps, so is safe
to call from any context. Since it doesn't sleep, it doesn't need to
know if it is OK to sleep or not.

Reviewed by: markj@
Differential Revision: https://reviews.freebsd.org/D26140
2020-08-29 04:30:06 +00:00
Warner Losh
bca8f35f28 devctl: move to using a uma zone
Convert the memory management of devctl.  Rewrite if to make better
use of memory. This eliminates several mallocs (5? worse case) needed
to send a message. It's now possible to always send a message, though
if things are really backed up the oldest message will be dropped to
free up space for the newest.

Add a static bus_child_{location,pnpinfo}_sb to start migrating to
sbuf instead of buffer + length. Use it in the new code.  Other code
will be converted later (bus_child_*_str is only used inside of
subr_bus.c, though implemented in ~100 places in the tree).

Reviewed by: markj@
Differential Revision: https://reviews.freebsd.org/D26140
2020-08-29 04:29:53 +00:00
Alexander V. Chernikov
7c89a3b63f Move fib_rte_to_nh_flags() from net/route_var.h to net/route/nhop_ctl.c.
No functional changes.
Initially this function was created to perform runtime flag conversions
 for the previous incarnation of fib lookup functions. As these functions
 got deprecated, move the function to the file with the only remaining
 caller. Lastly, rename it to convert_rt_to_nh_flags() to follow the
 naming notation.
2020-08-28 23:01:56 +00:00
Alexander V. Chernikov
a624ca3dff Move net/route/shared.h definitions to net/route/route_var.h.
No functional changes.

net/route/shared.h was created in the inital phases of nexthop conversion.
It was intended to serve the same purpose as route_var.h - share definitions
 of functions and structures between the routing subsystem components. At
 that time route_var.h was included by many files external to the routing
 subsystem, which largerly defeats its purpose.

As currently this is not the case anymore and amount of route_var.h includes
 is roughly the same as shared.h, retire the latter in favour of the former.
2020-08-28 22:50:20 +00:00
Alexander V. Chernikov
b122304f6a Further split nhop creation and rtable operations.
As nexthops are immutable, some operations such as route attribute changes
 require nexthop fetching, forking, modification and route switching.
These operations are not atomic, so they may need to be retried multiple
 times in presence of multiple speakers changing the same route.

This change introduces "synchronisation" primitive: route_update_conditional(),
 simplifying logic for route changes and upcoming multipath operations.

Differential Revision:	https://reviews.freebsd.org/D26216
2020-08-28 21:59:10 +00:00
Michael Tuexen
404ff76bda Fix a regression with the explicit EOR mode I introduced in r364268.
A short MFC time as discussed with the secteam.

Reported by:		Taylor Brandstetter
MFC after:		1 day
2020-08-28 20:05:18 +00:00