]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/log
FreeBSD/FreeBSD.git
3 years agosrc.conf.5: regen after r368667, GDB retirement
emaste [Wed, 16 Dec 2020 14:00:42 +0000 (14:00 +0000)]
src.conf.5: regen after r368667, GDB retirement

3 years agosrc.conf.5: regen after r368667, GDB retirement
Ed Maste [Wed, 16 Dec 2020 14:00:42 +0000 (14:00 +0000)]
src.conf.5: regen after r368667, GDB retirement

3 years agoImplement strerror_l().
kib [Wed, 16 Dec 2020 09:02:09 +0000 (09:02 +0000)]
Implement strerror_l().

Only for the arches that provide user-mode TLS.

PR: 251651
Requested by: yuri
Discussed with: emaste, jilles, tijl
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D27495
MFC after: 2 weeks

3 years agoImplement strerror_l().
Konstantin Belousov [Wed, 16 Dec 2020 09:02:09 +0000 (09:02 +0000)]
Implement strerror_l().

Only for the arches that provide user-mode TLS.

PR: 251651
Requested by: yuri
Discussed with: emaste, jilles, tijl
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D27495
MFC after: 2 weeks

3 years agoUse more standard types for manipulating pointers.
jhb [Wed, 16 Dec 2020 00:27:28 +0000 (00:27 +0000)]
Use more standard types for manipulating pointers.

- Use a uintptr_t cast to get the virtual address of a pointer in
  USB_P2U() instead of a ptrdiff_t.

- Add offsets to a char * pointer directly without roundtripping the
  pointer through a ptrdiff_t in USB_ADD_BYTES().

Reviewed by: imp, hselasky
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27581

3 years agoUse more standard types for manipulating pointers.
John Baldwin [Wed, 16 Dec 2020 00:27:28 +0000 (00:27 +0000)]
Use more standard types for manipulating pointers.

- Use a uintptr_t cast to get the virtual address of a pointer in
  USB_P2U() instead of a ptrdiff_t.

- Add offsets to a char * pointer directly without roundtripping the
  pointer through a ptrdiff_t in USB_ADD_BYTES().

Reviewed by: imp, hselasky
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27581

3 years agoUse uintptr_t instead of unsigned long for integers holding pointers.
jhb [Wed, 16 Dec 2020 00:17:54 +0000 (00:17 +0000)]
Use uintptr_t instead of unsigned long for integers holding pointers.

Reviewed by: imp, gallatin
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27580

3 years agoUse uintptr_t instead of unsigned long for integers holding pointers.
John Baldwin [Wed, 16 Dec 2020 00:17:54 +0000 (00:17 +0000)]
Use uintptr_t instead of unsigned long for integers holding pointers.

Reviewed by: imp, gallatin
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27580

3 years agoUse uintptr_t instead of unsigned long for pointers.
jhb [Wed, 16 Dec 2020 00:13:32 +0000 (00:13 +0000)]
Use uintptr_t instead of unsigned long for pointers.

The sense_ptr thing is quite broken.  As near as I can tell, the
driver tries to copyout to a physical address rather than whatever
user address the sense buffer should be copied to.  It is not
immediately obvious what user address the sense buffer should be
copied to.

Reviewed by: imp
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27578

3 years agoUse uintptr_t instead of unsigned long for pointers.
John Baldwin [Wed, 16 Dec 2020 00:13:32 +0000 (00:13 +0000)]
Use uintptr_t instead of unsigned long for pointers.

The sense_ptr thing is quite broken.  As near as I can tell, the
driver tries to copyout to a physical address rather than whatever
user address the sense buffer should be copied to.  It is not
immediately obvious what user address the sense buffer should be
copied to.

Reviewed by: imp
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27578

3 years agoUse the 't' modifier to print a ptrdiff_t.
jhb [Wed, 16 Dec 2020 00:11:30 +0000 (00:11 +0000)]
Use the 't' modifier to print a ptrdiff_t.

Reviewed by: imp
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27576

3 years agoUse the 't' modifier to print a ptrdiff_t.
John Baldwin [Wed, 16 Dec 2020 00:11:30 +0000 (00:11 +0000)]
Use the 't' modifier to print a ptrdiff_t.

Reviewed by: imp
Obtained from: CheriBSD
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D27576

3 years agoloader: allow loader to accept zfs feature com.delphix:bookmark_written
tsoome [Tue, 15 Dec 2020 22:37:03 +0000 (22:37 +0000)]
loader: allow loader to accept zfs feature com.delphix:bookmark_written

We do not need to actually read bookmarks, just whitelist this feature.

Reported by: mjg

3 years agoloader: allow loader to accept zfs feature com.delphix:bookmark_written
Toomas Soome [Tue, 15 Dec 2020 22:37:03 +0000 (22:37 +0000)]
loader: allow loader to accept zfs feature com.delphix:bookmark_written

We do not need to actually read bookmarks, just whitelist this feature.

Reported by: mjg

3 years agoloader: allow loader to accept zfs feature com.datto:bookmark_v2
tsoome [Tue, 15 Dec 2020 21:48:35 +0000 (21:48 +0000)]
loader: allow loader to accept zfs feature com.datto:bookmark_v2

We do not need to actually read bookmarks, just whitelist this feature

Reported by: jpaetzel

3 years agoloader: allow loader to accept zfs feature com.datto:bookmark_v2
Toomas Soome [Tue, 15 Dec 2020 21:48:35 +0000 (21:48 +0000)]
loader: allow loader to accept zfs feature com.datto:bookmark_v2

We do not need to actually read bookmarks, just whitelist this feature

Reported by: jpaetzel

3 years agoBugfix to not hide jailparam flags, which for example changes the output
jamie [Tue, 15 Dec 2020 20:56:35 +0000 (20:56 +0000)]
Bugfix to not hide jailparam flags, which for example changes the output
"vnet=2" to the less opaque "vnet=inherit"

Reported by: kevans
MFC after: 5 days

3 years agoBugfix to not hide jailparam flags, which for example changes the output
Jamie Gritton [Tue, 15 Dec 2020 20:56:35 +0000 (20:56 +0000)]
Bugfix to not hide jailparam flags, which for example changes the output
"vnet=2" to the less opaque "vnet=inherit"

Reported by: kevans
MFC after: 5 days

3 years agoRevert r368523 which fixed contig allocs waiting forever.
bdrewery [Tue, 15 Dec 2020 19:38:16 +0000 (19:38 +0000)]
Revert r368523 which fixed contig allocs waiting forever.

This needs to account for empty NUMA domains or domains which do not
satisfy the requested range.

Discussed with: markj

3 years agoRevert r368523 which fixed contig allocs waiting forever.
Bryan Drewery [Tue, 15 Dec 2020 19:38:16 +0000 (19:38 +0000)]
Revert r368523 which fixed contig allocs waiting forever.

This needs to account for empty NUMA domains or domains which do not
satisfy the requested range.

Discussed with: markj

3 years agohme(4): remove stray directories
brooks [Tue, 15 Dec 2020 18:46:23 +0000 (18:46 +0000)]
hme(4): remove stray directories

Sponsored by:  DARPA
Differential Revision: https://reviews.freebsd.org/D27526

3 years agohme(4): remove stray directories
Brooks Davis [Tue, 15 Dec 2020 18:46:23 +0000 (18:46 +0000)]
hme(4): remove stray directories

Sponsored by:  DARPA
Differential Revision: https://reviews.freebsd.org/D27526

3 years agoRemove Doxyfiles for removed drivers
brooks [Tue, 15 Dec 2020 18:44:41 +0000 (18:44 +0000)]
Remove Doxyfiles for removed drivers

Reported by: emaste

3 years agoRemove Doxyfiles for removed drivers
Brooks Davis [Tue, 15 Dec 2020 18:44:41 +0000 (18:44 +0000)]
Remove Doxyfiles for removed drivers

Reported by: emaste

3 years agoRemove additional GDB leftovers missed in r368667
emaste [Tue, 15 Dec 2020 18:12:03 +0000 (18:12 +0000)]
Remove additional GDB leftovers missed in r368667

3 years agoRemove additional GDB leftovers missed in r368667
Ed Maste [Tue, 15 Dec 2020 18:12:03 +0000 (18:12 +0000)]
Remove additional GDB leftovers missed in r368667

3 years agoAdd relnote for r368667, GDB 6.1.1 removal
emaste [Tue, 15 Dec 2020 17:52:04 +0000 (17:52 +0000)]
Add relnote for r368667, GDB 6.1.1 removal

3 years agoAdd relnote for r368667, GDB 6.1.1 removal
Ed Maste [Tue, 15 Dec 2020 17:52:04 +0000 (17:52 +0000)]
Add relnote for r368667, GDB 6.1.1 removal

3 years agoRetire obsolete GDB 6.1.1
emaste [Tue, 15 Dec 2020 17:44:19 +0000 (17:44 +0000)]
Retire obsolete GDB 6.1.1

GDB 6.1.1 was released in June 2004 and is long obsolete. It does not
support all of the architectures that FreeBSD does, and imposes
limitations on the FreeBSD kernel build, such as the continued use of
DWARF2 debugging information.

It was kept (in /usr/libexec/) only for use by crashinfo(8), which
extracts some basic information from a kernel core dump after a crash.
Crashinfo already prefers gdb from port/package if installed.

Future work may add kernel debug support to LLDB or find another path
for crashinfo's needs, but in any case we do not want to ship the
excessively outdated GDB in FreeBSD 13.

Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D27610

3 years agoRetire obsolete GDB 6.1.1
Ed Maste [Tue, 15 Dec 2020 17:44:19 +0000 (17:44 +0000)]
Retire obsolete GDB 6.1.1

GDB 6.1.1 was released in June 2004 and is long obsolete. It does not
support all of the architectures that FreeBSD does, and imposes
limitations on the FreeBSD kernel build, such as the continued use of
DWARF2 debugging information.

It was kept (in /usr/libexec/) only for use by crashinfo(8), which
extracts some basic information from a kernel core dump after a crash.
Crashinfo already prefers gdb from port/package if installed.

Future work may add kernel debug support to LLDB or find another path
for crashinfo's needs, but in any case we do not want to ship the
excessively outdated GDB in FreeBSD 13.

Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D27610

3 years agoImprove handling of alternate settings in the USB stack.
hselasky [Tue, 15 Dec 2020 15:36:41 +0000 (15:36 +0000)]
Improve handling of alternate settings in the USB stack.

Move initialization of num_altsetting under USB_CFG_INIT, else
there will be a page fault when enumerating USB devices.

PR: 251856
MFC after: 1 week
Submitted by: Ma, Horse <Shichun.Ma@dell.com>
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agoImprove handling of alternate settings in the USB stack.
Hans Petter Selasky [Tue, 15 Dec 2020 15:36:41 +0000 (15:36 +0000)]
Improve handling of alternate settings in the USB stack.

Move initialization of num_altsetting under USB_CFG_INIT, else
there will be a page fault when enumerating USB devices.

PR: 251856
MFC after: 1 week
Submitted by: Ma, Horse <Shichun.Ma@dell.com>
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agorelease: Rename arm64/RPI3.conf to arm64/RPI.conf
manu [Tue, 15 Dec 2020 15:13:06 +0000 (15:13 +0000)]
release: Rename arm64/RPI3.conf to arm64/RPI.conf

We now have a u-boot port and config.txt for booting on all 64bits
variant of the RPI boards (RPI2v1.1, RPI3* and RPI4*) so use
the new u-boot-rpi-arm64 and the config_arm64.txt files.

Discussed with: karels, kevans

3 years agorelease: Rename arm64/RPI3.conf to arm64/RPI.conf
Emmanuel Vadot [Tue, 15 Dec 2020 15:13:06 +0000 (15:13 +0000)]
release: Rename arm64/RPI3.conf to arm64/RPI.conf

We now have a u-boot port and config.txt for booting on all 64bits
variant of the RPI boards (RPI2v1.1, RPI3* and RPI4*) so use
the new u-boot-rpi-arm64 and the config_arm64.txt files.

Discussed with: karels, kevans

3 years agoImprove handling of alternate settings in the USB stack.
hselasky [Tue, 15 Dec 2020 12:05:07 +0000 (12:05 +0000)]
Improve handling of alternate settings in the USB stack.

Allow setting the alternate interface number to fail when there is only
one alternate setting present, to comply with the USB specification.

Refactor how iface->num_altsetting is computed.

Bump the __FreeBSD_version due to change of core USB structure.

PR: 251856
MFC after: 1 week
Submitted by: Ma, Horse <Shichun.Ma@dell.com>
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agoImprove handling of alternate settings in the USB stack.
Hans Petter Selasky [Tue, 15 Dec 2020 12:05:07 +0000 (12:05 +0000)]
Improve handling of alternate settings in the USB stack.

Allow setting the alternate interface number to fail when there is only
one alternate setting present, to comply with the USB specification.

Refactor how iface->num_altsetting is computed.

Bump the __FreeBSD_version due to change of core USB structure.

PR: 251856
MFC after: 1 week
Submitted by: Ma, Horse <Shichun.Ma@dell.com>
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agoImprove handling of alternate settings in the USB stack.
hselasky [Tue, 15 Dec 2020 11:51:17 +0000 (11:51 +0000)]
Improve handling of alternate settings in the USB stack.

Limit the number of alternate settings to 256.
Else the alternate index variable may wrap around.

PR: 251856
MFC after: 1 week
Submitted by: Ma, Horse <Shichun.Ma@dell.com>
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agoImprove handling of alternate settings in the USB stack.
Hans Petter Selasky [Tue, 15 Dec 2020 11:51:17 +0000 (11:51 +0000)]
Improve handling of alternate settings in the USB stack.

Limit the number of alternate settings to 256.
Else the alternate index variable may wrap around.

PR: 251856
MFC after: 1 week
Submitted by: Ma, Horse <Shichun.Ma@dell.com>
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agoWhen receiving a file having a length, which is a mulitple of the blocksize,
tuexen [Tue, 15 Dec 2020 09:43:18 +0000 (09:43 +0000)]
When receiving a file having a length, which is a mulitple of the blocksize,
close the file once it is received.

Reported by: Timo Voelker
MFC after: 1 week

3 years agoWhen receiving a file having a length, which is a mulitple of the blocksize,
Michael Tuexen [Tue, 15 Dec 2020 09:43:18 +0000 (09:43 +0000)]
When receiving a file having a length, which is a mulitple of the blocksize,
close the file once it is received.

Reported by: Timo Voelker
MFC after: 1 week

3 years agoRemove more cx,ctau leftovers
emaste [Tue, 15 Dec 2020 01:45:19 +0000 (01:45 +0000)]
Remove more cx,ctau leftovers

Missed in r359178

3 years agoRemove more cx,ctau leftovers
Ed Maste [Tue, 15 Dec 2020 01:45:19 +0000 (01:45 +0000)]
Remove more cx,ctau leftovers

Missed in r359178

3 years agoFix LINT-NOINET6 build after r368571.
melifaro [Mon, 14 Dec 2020 22:54:32 +0000 (22:54 +0000)]
Fix LINT-NOINET6 build after r368571.

Reported by: mjg

3 years agoFix LINT-NOINET6 build after r368571.
Alexander V. Chernikov [Mon, 14 Dec 2020 22:54:32 +0000 (22:54 +0000)]
Fix LINT-NOINET6 build after r368571.

Reported by: mjg

3 years agoamd64 pmap: fix PCID mode invalidations
kib [Mon, 14 Dec 2020 22:52:29 +0000 (22:52 +0000)]
amd64 pmap: fix PCID mode invalidations

When r362031 moved local TLB invalidation after shootdown IPI send, it
moved too much.  In particular, PCID-mode clearing of the pm_gen
generation counters must occur before IPIs are send, which is in fact
described by the comment before seq_cst fence in the invalidation
functions.

Fix it by extracting pm_gen clearing into new helper
pmap_invalidate_preipi(), which is executed before a call to
smp_masked_tlb_shootdown().

Rest of the local invalidation callbacks is simplified as result, and
become very similar to the remote shootdown handlers (to be merged in
some future).

Move pin of the thread to pmap_invalidate_preipi(), and do unpin in
smp_masked_tlb_shootdown().

Reported and tested by: mjg (previous version)
Reviewed by: alc, cem (previous version), markj
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D227588

3 years agoamd64 pmap: fix PCID mode invalidations
Konstantin Belousov [Mon, 14 Dec 2020 22:52:29 +0000 (22:52 +0000)]
amd64 pmap: fix PCID mode invalidations

When r362031 moved local TLB invalidation after shootdown IPI send, it
moved too much.  In particular, PCID-mode clearing of the pm_gen
generation counters must occur before IPIs are send, which is in fact
described by the comment before seq_cst fence in the invalidation
functions.

Fix it by extracting pm_gen clearing into new helper
pmap_invalidate_preipi(), which is executed before a call to
smp_masked_tlb_shootdown().

Rest of the local invalidation callbacks is simplified as result, and
become very similar to the remote shootdown handlers (to be merged in
some future).

Move pin of the thread to pmap_invalidate_preipi(), and do unpin in
smp_masked_tlb_shootdown().

Reported and tested by: mjg (previous version)
Reviewed by: alc, cem (previous version), markj
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D227588

3 years agoEnable ROUTE_MPATH support in GENERIC kernels.
melifaro [Mon, 14 Dec 2020 22:23:08 +0000 (22:23 +0000)]
Enable ROUTE_MPATH support in GENERIC kernels.

Ability to load-balance traffic over multiple path is a must-have thing for routers.
It may be used by the servers to balance outgoing traffic over multiple default gateways.

The previous implementation, RADIX_MPATH stayed in the shadow for too long.
It was not well maintained, which lead us to a vicious circle - people were using
 non-contiguous mask or firewalls to achieve similar goals. As a result, some routing
 daemons implementation still don't have multipath support enabled for FreeBSD.

Turning on ROUTE_MPATH by default would fix it. It will allow to reduce networking
 feature gap to other operating systems. Linux and OpenBSD enabled similar support
 at least 5 years ago.

ROUTE_MPATH does not consume memory unless actually used. It enables around ~1k LOC.

It does not bring any behaviour changes for userland.
Additionally, feature is (temporarily) turned off by the net.route.multipath sysctl
 defaulting to 0.

Differential Revision: https://reviews.freebsd.org/D27428

3 years agoEnable ROUTE_MPATH support in GENERIC kernels.
Alexander V. Chernikov [Mon, 14 Dec 2020 22:23:08 +0000 (22:23 +0000)]
Enable ROUTE_MPATH support in GENERIC kernels.

Ability to load-balance traffic over multiple path is a must-have thing for routers.
It may be used by the servers to balance outgoing traffic over multiple default gateways.

The previous implementation, RADIX_MPATH stayed in the shadow for too long.
It was not well maintained, which lead us to a vicious circle - people were using
 non-contiguous mask or firewalls to achieve similar goals. As a result, some routing
 daemons implementation still don't have multipath support enabled for FreeBSD.

Turning on ROUTE_MPATH by default would fix it. It will allow to reduce networking
 feature gap to other operating systems. Linux and OpenBSD enabled similar support
 at least 5 years ago.

ROUTE_MPATH does not consume memory unless actually used. It enables around ~1k LOC.

It does not bring any behaviour changes for userland.
Additionally, feature is (temporarily) turned off by the net.route.multipath sysctl
 defaulting to 0.

Differential Revision: https://reviews.freebsd.org/D27428

3 years agoImprove the counting of blocks used to transfer a file from the
tuexen [Mon, 14 Dec 2020 22:13:58 +0000 (22:13 +0000)]
Improve the counting of blocks used to transfer a file from the
server to the client in case of not using an OACK: Don't miss
the first block in case of it is not also the last one.

MFC after: 1 week

3 years agoImprove the counting of blocks used to transfer a file from the
Michael Tuexen [Mon, 14 Dec 2020 22:13:58 +0000 (22:13 +0000)]
Improve the counting of blocks used to transfer a file from the
server to the client in case of not using an OACK: Don't miss
the first block in case of it is not also the last one.

MFC after: 1 week

3 years agoRemove unused functions and variables in cpufunc.[ch].
mmel [Mon, 14 Dec 2020 14:00:54 +0000 (14:00 +0000)]
Remove unused functions and variables in cpufunc.[ch].

3 years agoRemove unused functions and variables in cpufunc.[ch].
Michal Meloun [Mon, 14 Dec 2020 14:00:54 +0000 (14:00 +0000)]
Remove unused functions and variables in cpufunc.[ch].

3 years agoFinish implementation of ARM PMU interrupts.
mmel [Mon, 14 Dec 2020 13:10:19 +0000 (13:10 +0000)]
Finish implementation of ARM PMU interrupts.
The ARM PMU may use single per-core interrupt or may use multiple generic
interrupts, one per core. In this case, special attention must be paid to
the correct identification of the physical location of the core, its order
in the external database (FDT) and the associated cpuid.

Also keep in mind that a SoC can have multiple different PMUs
(usually one per cluster)

3 years agoFinish implementation of ARM PMU interrupts.
Michal Meloun [Mon, 14 Dec 2020 13:10:19 +0000 (13:10 +0000)]
Finish implementation of ARM PMU interrupts.
The ARM PMU may use single per-core interrupt or may use multiple generic
interrupts, one per core. In this case, special attention must be paid to
the correct identification of the physical location of the core, its order
in the external database (FDT) and the associated cpuid.

Also keep in mind that a SoC can have multiple different PMUs
(usually one per cluster)

3 years agoVerify (and fix) the context_id argument passed to the mpentry () by PSCI.
mmel [Mon, 14 Dec 2020 11:57:43 +0000 (11:57 +0000)]
Verify (and fix) the context_id argument passed to the mpentry () by PSCI.

Some older PSCI implementations corrupt (or do not pass) the context_id
argument to newly started secondary cores. Although the ideal solution to this
problem is u-boot update, we can find the correct value for the argument (cpuid)
by comparing of real core mpidr register with the value stored in pcu->mpidr.

MFC after: 2 weeks

3 years agoVerify (and fix) the context_id argument passed to the mpentry () by PSCI.
Michal Meloun [Mon, 14 Dec 2020 11:57:43 +0000 (11:57 +0000)]
Verify (and fix) the context_id argument passed to the mpentry () by PSCI.

Some older PSCI implementations corrupt (or do not pass) the context_id
argument to newly started secondary cores. Although the ideal solution to this
problem is u-boot update, we can find the correct value for the argument (cpuid)
by comparing of real core mpidr register with the value stored in pcu->mpidr.

MFC after: 2 weeks

3 years agoBe bug compatible with other operating systems by allowing non-sequential
hselasky [Mon, 14 Dec 2020 11:56:16 +0000 (11:56 +0000)]
Be bug compatible with other operating systems by allowing non-sequential
interface numbering for USB descriptors in userspace. Else certain USB
control requests using the interface number, won't be recognized by the
USB firmware.

Refer to section 9.2.3 in the USB 2.0 specification:
Interfaces are numbered from zero to one less than the number of concurrent interfaces
supported by the configuration.

PR: 251784
MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agoBe bug compatible with other operating systems by allowing non-sequential
Hans Petter Selasky [Mon, 14 Dec 2020 11:56:16 +0000 (11:56 +0000)]
Be bug compatible with other operating systems by allowing non-sequential
interface numbering for USB descriptors in userspace. Else certain USB
control requests using the interface number, won't be recognized by the
USB firmware.

Refer to section 9.2.3 in the USB 2.0 specification:
Interfaces are numbered from zero to one less than the number of concurrent interfaces
supported by the configuration.

PR: 251784
MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking

3 years agoloader: Ignore the .interp section on RISC-V
jrtc27 [Mon, 14 Dec 2020 00:54:05 +0000 (00:54 +0000)]
loader: Ignore the .interp section on RISC-V

Without this we risk having the .interp section be placed earlier in the
file and mess with section offsets; in particular it has been seen to be
placed at the start of the file and cause the PE/COFF header to not be
at address 0. This is the same fix as was done for arm64 in r365578.

Reviewed by: mhorne, imp
Approved by: mhorne, imp
Differential Revision: https://reviews.freebsd.org/D27603

3 years agoloader: Ignore the .interp section on RISC-V
Jessica Clarke [Mon, 14 Dec 2020 00:54:05 +0000 (00:54 +0000)]
loader: Ignore the .interp section on RISC-V

Without this we risk having the .interp section be placed earlier in the
file and mess with section offsets; in particular it has been seen to be
placed at the start of the file and cause the PE/COFF header to not be
at address 0. This is the same fix as was done for arm64 in r365578.

Reviewed by: mhorne, imp
Approved by: mhorne, imp
Differential Revision: https://reviews.freebsd.org/D27603

3 years agostrdup.3: Function appeared in 4.3BSD-Reno, not 4.4BSD
jrtc27 [Mon, 14 Dec 2020 00:50:45 +0000 (00:50 +0000)]
strdup.3: Function appeared in 4.3BSD-Reno, not 4.4BSD

Linux claims 4.3BSD, we claim 4.4BSD and OpenBSD claims 4.3BSD-Reno. It turns
out that OpenBSD got it right: the function was added in late 1988 a few months
after 4.3BSD-Tahoe, well in advance of 4.3BSD-Reno.

Reviewed by: bcr
Approved by: bcr
Differential Revision: https://reviews.freebsd.org/D27392

3 years agostrdup.3: Function appeared in 4.3BSD-Reno, not 4.4BSD
Jessica Clarke [Mon, 14 Dec 2020 00:50:45 +0000 (00:50 +0000)]
strdup.3: Function appeared in 4.3BSD-Reno, not 4.4BSD

Linux claims 4.3BSD, we claim 4.4BSD and OpenBSD claims 4.3BSD-Reno. It turns
out that OpenBSD got it right: the function was added in late 1988 a few months
after 4.3BSD-Tahoe, well in advance of 4.3BSD-Reno.

Reviewed by: bcr
Approved by: bcr
Differential Revision: https://reviews.freebsd.org/D27392

3 years agomips: Fix sub-word atomics implementation
jrtc27 [Mon, 14 Dec 2020 00:47:59 +0000 (00:47 +0000)]
mips: Fix sub-word atomics implementation

These aligned the address but then always used the least significant
bits of the value in memory, which is the wrong half 50% of the time for
16-bit atomics and the wrong quarter 75% of the time for 8-bit atomics.
These bugs were all present in r178172, the commit that added the mips
port, and have remained for its entire existence to date.

Reviewed by: jhb (mentor)
Approved by: jhb (mentor)
Differential Revision: https://reviews.freebsd.org/D27343

3 years agomips: Fix sub-word atomics implementation
Jessica Clarke [Mon, 14 Dec 2020 00:47:59 +0000 (00:47 +0000)]
mips: Fix sub-word atomics implementation

These aligned the address but then always used the least significant
bits of the value in memory, which is the wrong half 50% of the time for
16-bit atomics and the wrong quarter 75% of the time for 8-bit atomics.
These bugs were all present in r178172, the commit that added the mips
port, and have remained for its entire existence to date.

Reviewed by: jhb (mentor)
Approved by: jhb (mentor)
Differential Revision: https://reviews.freebsd.org/D27343

3 years agoloader: Print autoboot countdown immediately, not at 9
jrtc27 [Mon, 14 Dec 2020 00:46:24 +0000 (00:46 +0000)]
loader: Print autoboot countdown immediately, not at 9

For the first second otime and ntime are equal so no message gets
printed. Instead we should print the countdown right from the start,
although we do it at the end of the first iteration so that if a key has
already been pressed then the message is suppressed.

Reviewed by: imp
Approved by: imp
Differential Revision: https://reviews.freebsd.org/D26935

3 years agoloader: Print autoboot countdown immediately, not at 9
Jessica Clarke [Mon, 14 Dec 2020 00:46:24 +0000 (00:46 +0000)]
loader: Print autoboot countdown immediately, not at 9

For the first second otime and ntime are equal so no message gets
printed. Instead we should print the countdown right from the start,
although we do it at the end of the first iteration so that if a key has
already been pressed then the message is suppressed.

Reviewed by: imp
Approved by: imp
Differential Revision: https://reviews.freebsd.org/D26935

3 years agoHarden the handling of outgoing streams in case of an restart or INIT
tuexen [Sun, 13 Dec 2020 23:51:51 +0000 (23:51 +0000)]
Harden the handling of outgoing streams in case of an restart or INIT
collision. This avouds an out-of-bounce access in case the peer can
break the cookie signature. Thanks to Felix Wilhelm from Google for
reporting the issue.

MFC after: 1 week

3 years agoHarden the handling of outgoing streams in case of an restart or INIT
Michael Tuexen [Sun, 13 Dec 2020 23:51:51 +0000 (23:51 +0000)]
Harden the handling of outgoing streams in case of an restart or INIT
collision. This avouds an out-of-bounce access in case the peer can
break the cookie signature. Thanks to Felix Wilhelm from Google for
reporting the issue.

MFC after: 1 week

3 years agouipc: disable prediction in unp_pcb_lock_peer
mjg [Sun, 13 Dec 2020 21:32:19 +0000 (21:32 +0000)]
uipc: disable prediction in unp_pcb_lock_peer

The branch is not very predictable one way or the other, at least during
buildkernel where it only correctly matched 57% of calls.

3 years agouipc: disable prediction in unp_pcb_lock_peer
Mateusz Guzik [Sun, 13 Dec 2020 21:32:19 +0000 (21:32 +0000)]
uipc: disable prediction in unp_pcb_lock_peer

The branch is not very predictable one way or the other, at least during
buildkernel where it only correctly matched 57% of calls.

3 years agoPatch annotation in sigdeferstop
mjg [Sun, 13 Dec 2020 21:30:42 +0000 (21:30 +0000)]
Patch annotation in sigdeferstop

Probability flipped since sigdefer handling was moved away from regular VOP
calls.

3 years agoPatch annotation in sigdeferstop
Mateusz Guzik [Sun, 13 Dec 2020 21:30:42 +0000 (21:30 +0000)]
Patch annotation in sigdeferstop

Probability flipped since sigdefer handling was moved away from regular VOP
calls.

3 years agocache: fix ups bad predicts
mjg [Sun, 13 Dec 2020 21:29:39 +0000 (21:29 +0000)]
cache: fix ups bad predicts

- last level fallback normally sees CREATE; the code should be optimized to not
get there for said case
- fast path commonly fails with ENOENT

3 years agocache: fix ups bad predicts
Mateusz Guzik [Sun, 13 Dec 2020 21:29:39 +0000 (21:29 +0000)]
cache: fix ups bad predicts

- last level fallback normally sees CREATE; the code should be optimized to not
get there for said case
- fast path commonly fails with ENOENT

3 years agovfs: correctly predict last fdrop on failed open
mjg [Sun, 13 Dec 2020 21:28:15 +0000 (21:28 +0000)]
vfs: correctly predict last fdrop on failed open

Arguably since the count is guaranteed to be 1 the code should be modified
to avoid the work.

3 years agovfs: correctly predict last fdrop on failed open
Mateusz Guzik [Sun, 13 Dec 2020 21:28:15 +0000 (21:28 +0000)]
vfs: correctly predict last fdrop on failed open

Arguably since the count is guaranteed to be 1 the code should be modified
to avoid the work.

3 years agoFix TDP_WAKEUP/thr_wake(curthread->td_tid) after r366428.
kib [Sun, 13 Dec 2020 19:45:42 +0000 (19:45 +0000)]
Fix TDP_WAKEUP/thr_wake(curthread->td_tid) after r366428.

Reported by: arichardson
Reviewed by: arichardson, markj
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D27597

3 years agoFix TDP_WAKEUP/thr_wake(curthread->td_tid) after r366428.
Konstantin Belousov [Sun, 13 Dec 2020 19:45:42 +0000 (19:45 +0000)]
Fix TDP_WAKEUP/thr_wake(curthread->td_tid) after r366428.

Reported by: arichardson
Reviewed by: arichardson, markj
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D27597

3 years agoCorrect indent.
kib [Sun, 13 Dec 2020 19:43:45 +0000 (19:43 +0000)]
Correct indent.

Sponsored by: The FreeBSD Foundation

3 years agoCorrect indent.
Konstantin Belousov [Sun, 13 Dec 2020 19:43:45 +0000 (19:43 +0000)]
Correct indent.

Sponsored by: The FreeBSD Foundation

3 years agoFix WITHOUT_ICONV build
se [Sun, 13 Dec 2020 19:06:59 +0000 (19:06 +0000)]
Fix WITHOUT_ICONV build

Move the include of langinfo.h out of the WITH_ICONV condition block,
since it is not dependent on ICONV. This was correct when nl_langinfo()
had only been called in the WITH_ICONV case, but that is no longer the
case.

Submitted by: yuripv

3 years agoFix WITHOUT_ICONV build
Stefan Eßer [Sun, 13 Dec 2020 19:06:59 +0000 (19:06 +0000)]
Fix WITHOUT_ICONV build

Move the include of langinfo.h out of the WITH_ICONV condition block,
since it is not dependent on ICONV. This was correct when nl_langinfo()
had only been called in the WITH_ICONV case, but that is no longer the
case.

Submitted by: yuripv

3 years agoRevert r368606
se [Sun, 13 Dec 2020 19:03:38 +0000 (19:03 +0000)]
Revert r368606

The issue will be fixed in a different way.

Reported by: yuripv

3 years agoRevert r368606
Stefan Eßer [Sun, 13 Dec 2020 19:03:38 +0000 (19:03 +0000)]
Revert r368606

The issue will be fixed in a different way.

Reported by: yuripv

3 years agofd: fix fdrop prediction when closing a fd
mjg [Sun, 13 Dec 2020 18:06:24 +0000 (18:06 +0000)]
fd: fix fdrop prediction when closing a fd

Most of the time this is the last reference, contrary to typical fdrop use.

3 years agofd: fix fdrop prediction when closing a fd
Mateusz Guzik [Sun, 13 Dec 2020 18:06:24 +0000 (18:06 +0000)]
fd: fix fdrop prediction when closing a fd

Most of the time this is the last reference, contrary to typical fdrop use.

3 years agoMFV r368607:
mm [Sun, 13 Dec 2020 16:26:37 +0000 (16:26 +0000)]
MFV r368607:
Sync libarchive with vendor.

Vendor changes:
  Issue #1461: Unbreak build without lzma
  Issue #1462: warc reader: Fix build with gcc11
  Issue #1463: Fix code compatibility in test_archive_read_support.c
  Issue #1464: Use built-in strnlen on platforms where not available
  Issue #1465: warc reader: fix undefined behaviour in deconst() function

MFC after: 3 days
X-MFC-With: 368234

3 years agoMFV r368607:
Martin Matuska [Sun, 13 Dec 2020 16:26:37 +0000 (16:26 +0000)]
MFV r368607:
Sync libarchive with vendor.

Vendor changes:
  Issue #1461: Unbreak build without lzma
  Issue #1462: warc reader: Fix build with gcc11
  Issue #1463: Fix code compatibility in test_archive_read_support.c
  Issue #1464: Use built-in strnlen on platforms where not available
  Issue #1465: warc reader: fix undefined behaviour in deconst() function

MFC after: 3 days
X-MFC-With: 368234

3 years agoUpdate vendor/libarchive/dist to b2c3ee7e2907511533eeb2a0f2ceecc1faa73185
Martin Matuska [Sun, 13 Dec 2020 15:29:19 +0000 (15:29 +0000)]
Update vendor/libarchive/dist to b2c3ee7e2907511533eeb2a0f2ceecc1faa73185

Vendor changes:
  Issue #1461: Unbreak build without lzma
  Issue #1462: warc reader: Fix build with gcc11
  Issue #1463: Fix code compatibility in test_archive_read_support.c
  Issue #1464: Use built-in strnlen on platforms where not available
  Issue #1465: warc reader: fix undefined behaviour in deconst() function

3 years agoFix WITHOUT_ICONV build
se [Sun, 13 Dec 2020 09:38:50 +0000 (09:38 +0000)]
Fix WITHOUT_ICONV build

There was an unprotected use of nl_langinfo() to determine the order of
day vs. month in the generated output.

When building without ICONV support, the order will be: month, day.

3 years agoFix WITHOUT_ICONV build
Stefan Eßer [Sun, 13 Dec 2020 09:38:50 +0000 (09:38 +0000)]
Fix WITHOUT_ICONV build

There was an unprotected use of nl_langinfo() to determine the order of
day vs. month in the generated output.

When building without ICONV support, the order will be: month, day.

3 years ago[PowerPC] Floating-point exception trap followup
bdragon [Sun, 13 Dec 2020 03:58:43 +0000 (03:58 +0000)]
[PowerPC] Floating-point exception trap followup

* Fix incorrect operation on 32-bit caused by incorrectly-sized storage
  for a temporary FPSCR.
* Fix several whitespace problems.
* Don't try to enable VSX during cleanup_fpscr().

Reviewed by: alfredo, jhibbits (earlier version)
Sponsored by: Tag1 Consulting, Inc.
Differential Revision: https://reviews.freebsd.org/D27453

3 years ago[PowerPC] Floating-point exception trap followup
Brandon Bergren [Sun, 13 Dec 2020 03:58:43 +0000 (03:58 +0000)]
[PowerPC] Floating-point exception trap followup

* Fix incorrect operation on 32-bit caused by incorrectly-sized storage
  for a temporary FPSCR.
* Fix several whitespace problems.
* Don't try to enable VSX during cleanup_fpscr().

Reviewed by: alfredo, jhibbits (earlier version)
Sponsored by: Tag1 Consulting, Inc.
Differential Revision: https://reviews.freebsd.org/D27453

3 years agolocale: fix mode for installed files to be 644, not 755
yuripv [Sat, 12 Dec 2020 23:41:47 +0000 (23:41 +0000)]
locale: fix mode for installed files to be 644, not 755

While here, drop '-c' flag to install as it's default and provided for
backward compatibility only.

3 years agolocale: fix mode for installed files to be 644, not 755
Yuri Pankov [Sat, 12 Dec 2020 23:41:47 +0000 (23:41 +0000)]
locale: fix mode for installed files to be 644, not 755

While here, drop '-c' flag to install as it's default and provided for
backward compatibility only.

3 years agoClean up more resouces of an existing SCTP association in case of
tuexen [Sat, 12 Dec 2020 22:23:45 +0000 (22:23 +0000)]
Clean up more resouces of an existing SCTP association in case of
a restart.

This fixes a use-after-free scenario, which was reported by Felix
Wilhelm from Google in case a peer is able to modify the cookie.
However, this can also be triggered by an assciation restart under
some specific conditions.

MFC after: 1 week

3 years agoClean up more resouces of an existing SCTP association in case of
Michael Tuexen [Sat, 12 Dec 2020 22:23:45 +0000 (22:23 +0000)]
Clean up more resouces of an existing SCTP association in case of
a restart.

This fixes a use-after-free scenario, which was reported by Felix
Wilhelm from Google in case a peer is able to modify the cookie.
However, this can also be triggered by an assciation restart under
some specific conditions.

MFC after: 1 week

3 years agostand: liblua: add a pager module
kevans [Sat, 12 Dec 2020 21:25:38 +0000 (21:25 +0000)]
stand: liblua: add a pager module

This is nearly a 1:1 mapping of the pager API from libsa.  The only real
difference is that pager.output() will accept any number of arguments and
coerce all of them to strings for output using luaL_tolstring (i.e. the
__tostring metamethod will be used).

The only consumer planned at this time is the upcoming "show-module-options"
implementation.

MFC after: 1 week

3 years agostand: liblua: add a pager module
Kyle Evans [Sat, 12 Dec 2020 21:25:38 +0000 (21:25 +0000)]
stand: liblua: add a pager module

This is nearly a 1:1 mapping of the pager API from libsa.  The only real
difference is that pager.output() will accept any number of arguments and
coerce all of them to strings for output using luaL_tolstring (i.e. the
__tostring metamethod will be used).

The only consumer planned at this time is the upcoming "show-module-options"
implementation.

MFC after: 1 week

3 years agopf: Allow net.pf.request_maxcount to be set from loader.conf
kp [Sat, 12 Dec 2020 20:14:39 +0000 (20:14 +0000)]
pf: Allow net.pf.request_maxcount to be set from loader.conf

Mark request_maxcount as RWTUN so we can set it both at runtime and from
loader.conf. This avoids usings getting caught out by the change from tunable
to run time configuration.

Suggested by: Franco Fichtner
MFC after: 3 days