Commit Graph

282979 Commits

Author SHA1 Message Date
Michael Tuexen
373b95976b netstat: document that PCB information can't be read from corefiles
Reviewed by:		glebius, cc
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D39610
2023-04-19 12:15:35 +02:00
Kristof Provost
2e6cdfe293 pf: change pf_rules_lock and pf_ioctl_lock to per-vnet locks
Both pf_rules_lock and pf_ioctl_lock only ever affect one vnet, so
there's no point in having these locks affect other vnets.
(In fact, the only lock in pf that can affect multiple vnets is
pf_end_lock.)

That's especially important for the rules lock, because taking the write
lock suspends all network traffic until it's released. This will reduce
the impact a vnet running pf can have on other vnets, and improve
concurrency on machines running multiple pf-enabled vnets.

Reviewed by:	zlei
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D39658
2023-04-19 09:50:52 +02:00
Peter Holm
9c9dfbf256 stress2: Added comment of fixed problem. Enable test 2023-04-19 09:26:29 +02:00
Simon J. Gerraty
a6bd50f712 Avoid breaking crunchgen with meta stats
When using DIRDEPS_BUILD we normally get stats as each dir finishes.
This upsets crunchen, so keep quiet when _RECURSING_CRUNCH is defined
2023-04-18 20:25:33 -07:00
Simon J. Gerraty
901efd8bb9 Avoid staging conflict for examples/pf
If we are staging, let examples/pf stage its bits.
2023-04-18 20:23:23 -07:00
Simon J. Gerraty
5ef0969e62 Handle libs that create linker scripts as libs
Eg ncurses creates libncursesw.ald
This is the only example so far, but if we are staging
handle it.

Reviewed by:	stevek
2023-04-18 20:22:13 -07:00
Simon J. Gerraty
cb05ce69c2 Ensure the stage_* targets we use exist 2023-04-18 20:19:11 -07:00
Simon J. Gerraty
3743a7be4f Just ensure all target exists 2023-04-18 20:17:22 -07:00
Simon J. Gerraty
9eaf82f27c dirdeps.mk guard against inclusion from Makefile.depend.options
A typo in Makefile.depend.options including dirdeps.mk rather than
dirdeps-options.mk can result in infinite recursion - don't let that happen.

Reviewed by:	stevek
2023-04-18 20:15:25 -07:00
Simon J. Gerraty
d9a4274795 Update/fix Makefile.depend for userland 2023-04-18 17:14:23 -07:00
Konstantin Belousov
617a11eab6 x86: initialize use_xsave once
The explanation from https://reviews.freebsd.org/D39637 by stevek:
The "use_xsave" variable is a global and that is only supposed to be
initialized early before scheduling gets started. However, with the way
the ifuncs for "fpusave" and "fpurestore" are implemented, the value
could be changed at runtime when scheduling is active if "use_xsave"
was set to 0 by the tunable. This leaves a window of opportunity where
"use_xsave" gets re-initialized to 1 and a context switch could occur
with a thread that was not set up to be able to use xsave functionality.
This can lead to an "privileged instruction fault".

The fix is to protect "use_xsave" from being initialized more than once.

Reported and reviewed by:	stevek
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D39660
2023-04-19 02:22:28 +03:00
Konstantin Belousov
93ca6ff295 umtx: allow to configure minimal timeout (in nanoseconds)
PR:	270785
Reviewed by:	markj, mav
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
Differential revision:	https://reviews.freebsd.org/D39584
2023-04-19 02:22:28 +03:00
Konstantin Belousov
7aeea73e30 syncer vnode: add VOP_GETWRITEMOUNT() definition explicitly
Since syncer vnode vector does not provide a fallback to the default
one, its VOP_GETWRITEMOUNT() implementation implicitly returned
EOPNOTSUPP, which means that syncer ignored suspension.

Reported and tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2023-04-19 02:21:40 +03:00
Konstantin Belousov
d8a096621b sync_vnode(): add assert to check vn_start_write() correctness
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2023-04-19 02:21:40 +03:00
Kirk McKusick
da86e7a20d Skip Pass 5 in fsck_ffs(8) when corrupt cylinder groups remain unfixed.
Pass 1 of fsck_ffs checks the integrity of all the cylinder groups.
If any are found to have been corrupted it offers to rebuild them.
Pass 5 then makes a second pass over the cylinder groups to validate
their block and inode maps. Pass 5 assumes that the cylinder groups
are not corrupted and can segment fault if they are corrupted. Rather
than rerunning the corruption checks a second time in pass 5, this
fix keeps track whether any corrupt cylinder groups were found but not
fixed in pass 1 either due to running with the -n flag or by explicitly
answering `no' when asked whether to fix a corrupted cylinder group.
If any corrupted cylinder groups remain after pass 1, fsck_ffs will
decline to run pass 5. Instead it marks the filesystem as unclean
so that fsck_ffs will need to be run again before the filesystem can
be mounted.

This patch cleans up and documents the return value from check_cgmagic().
It also renames the variable / parameter "rebuildcg" to "rebuiltcg".
This parameter describes whether the cylinder group has been rebuilt
rather than whether it should be rebuilt.

Reported by: Chuck Silvers
Reviewed by: Chuck Silvers
MFC after:   1 week
2023-04-18 16:13:26 -07:00
Kirk McKusick
18746531a8 Bug fixes for fsck_ffs(8).
Increment a reference count when returning a zero'ed out buffer
after a failed read.

Zero out a structure before using it.

Only dirty a buffer that has been modified.

Submitted by: Chuck Silvers
Sponsored by: Netflix
MFC after:    1 week
2023-04-18 16:13:26 -07:00
Kirk McKusick
7636973c68 Add `chdb' command to fsdb(8) to set direct block numbers.
Add the ability to set direct blocks numbers in inodes so that manual
corrections can be made. No checking of the values is attempted so
accidental or deliberate bad values can be set.

Submitted by: Chuck Silvers
MFC after:    1 week
2023-04-18 16:13:26 -07:00
Warner Losh
238271f4a6 stand: Add a snarky note about the upstream ZFS situation
The latest import of openzfs broke the hacks that we used to omit the
special registers being used on arm64. Add snarky note documenting this
situation since it's a mess now since the hack was only partially
undone, leaving behind a mess.

Sponsored by:		Netflix
2023-04-18 15:31:17 -06:00
John Baldwin
9d8537e3de ee: Remove two set but unused variables.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39671
2023-04-18 12:53:32 -07:00
John Baldwin
91517e3b81 ee: Use C89 function definitions.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39670
2023-04-18 12:53:20 -07:00
John Baldwin
215927f535 ee: Remove function prototype for main. 2023-04-18 12:53:05 -07:00
John Baldwin
87cc8c6be0 ee: Drop P_() macro used for pre-C89 compatibility.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39669
2023-04-18 12:52:44 -07:00
Steve Kiernan
8deb442cf7 mac: Honor order when registering MAC modules.
Ensure MAC modules are inserted in order that they are registered.

Reviewed by:	markj
Obtained from:	Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D39589
2023-04-18 15:36:27 -04:00
Mark Johnston
21d56b7966 loader.efi: Fix some arm64 PE metadata
- Mark the file as an executable in the COFF header.
- Provide separate .text and .data sections.
- Provide sane file and section alignment values.  These values are the
  defaults defined in the PE specification.
- Set appropriate characteristics for each of .text and .data.

This is required for the MS devkit to load our UEFI image.

Obtained from:	OpenBSD via allanjude
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D37765
2023-04-18 14:36:24 -04:00
John Baldwin
274c18c2bd pnpinfo: Use C89 function definitions.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39534
2023-04-18 11:31:13 -07:00
John Baldwin
35a624c549 keyserv: Use C89 function definitions.
Also use more accurate function pointer types, and trim some duplicate
(but incomplete) function prototypes.

Reviewed by:	zlei
Differential Revision:	https://reviews.freebsd.org/D39533
2023-04-18 11:30:51 -07:00
John Baldwin
69b5038738 yp: Use more accurate function pointer types.
Trim a few duplicate (but incomplete) function prototypes as well.

Reviewed by:	zlei, imp
Differential Revision:	https://reviews.freebsd.org/D39532
2023-04-18 11:28:57 -07:00
John Baldwin
6b06255fbe traceroute: Use C89 function definition for one straggler.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39531
2023-04-18 11:28:41 -07:00
John Baldwin
2541accb79 rpc.lockd: Use C89 function definitions.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39530
2023-04-18 11:28:24 -07:00
John Baldwin
e93f27e3ae cron: Use C89 function definitions.
Reviewed by:	zlei
Differential Revision:	https://reviews.freebsd.org/D39529
2023-04-18 11:28:07 -07:00
John Baldwin
11af9d2477 telnet: Use C89 function definitions for two stragglers.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39528
2023-04-18 11:27:47 -07:00
John Baldwin
d28a95513e mail: Use a C89 function pointer type for command functions.
The command function is defined to always take a void *.  Functions
which accept a pointer to an array of pointers use a local temporary
'argv' assigned from the void *arg.

Reviewed by:	zlei
Differential Revision:	https://reviews.freebsd.org/D39527
2023-04-18 11:27:29 -07:00
John Baldwin
c330a185b7 locate: Use C89 function definitions.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39526
2023-04-18 11:27:08 -07:00
John Baldwin
1bd44215d0 less: Silence -Wdeprecated-non-prototype warnings.
This has an active upstream so will presumably be fixed upstream at
some point.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39525
2023-04-18 11:26:08 -07:00
John Baldwin
2ac057dd33 ipf: Use C89 function definitions.
Reviewed by:	zlei
Differential Revision:	https://reviews.freebsd.org/D39523
2023-04-18 11:22:28 -07:00
John Baldwin
eae7dd0f22 rbootd: Remove an unnecessary (and incomplete) function prototype.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39522
2023-04-18 11:22:08 -07:00
John Baldwin
e4253ae822 rpc.rstatd/rwalld: Use more accurate function pointer types.
Reviewed by:	zlei, rmacklem
Differential Revision:	https://reviews.freebsd.org/D39521
2023-04-18 11:21:50 -07:00
John Baldwin
8b356c8881 bootpd: Use C89 function definitions.
Trim a few duplicate (but incomplete) function prototypes as well.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39520
2023-04-18 11:21:15 -07:00
John Baldwin
f6fd5356b3 smbfs: Use C89 function definition for cf_getopt.
Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39519
2023-04-18 11:20:43 -07:00
John Baldwin
525438ea71 sendmail: Silence -Wdeprecated-non-prototype warnings.
These will hopefully be fixed upstream eventually, but silence the
warnings until then.

Reviewed by:	emaste
Differential Revision:	https://reviews.freebsd.org/D39518
2023-04-18 11:19:48 -07:00
John Baldwin
c7f3674fb0 boot0: Drop the BOOT_BOOT0_ORG option.
This shouldn't be an option (and I added it in the first place back in
4ae4202e70 and
83f4b92050).  However, unlike the other
knobs I added back then, this really shouldn't be a knob since it is
hardcoded in the source.
2023-04-18 11:19:12 -07:00
Mateusz Guzik
5e954b9216 tmpfs: add missing vop_fplookup ops to tmpfs_fifoop_entries
Reported by:	gbe
PR:	270917
2023-04-18 18:06:30 +00:00
John Baldwin
bd5dc94b99 boot0: Expand the description of BOOT_BOOT0_ORG.
This really shouldn't even be an option given it is hardcoded as a
constant named ORIGIN in the assembly.  mbr.S also uses 0x600 and
hardcodes it in both the assembly and the Makefile.
2023-04-18 11:02:50 -07:00
Steve Kiernan
4e8b87afe0 Handle errors if WARNS is not defined.
One conditional outside of ifdef WARNS did not protect against an
unset WARNS. Default WARNS to 0 in conditional if not defined.

Obtained from:	Juniper Networks, Inc.
2023-04-18 13:18:01 -04:00
Marius Strobl
a12d60b99e cas.4: Remove remaining sparc64-specific bit
This was missed in 702547720c.
2023-04-18 19:17:24 +02:00
Marius Strobl
8defc88c13 gem(4): Remove onboard-only Sun ERI and remnants of SBus support
These bits are obsolete since 58aa35d429.
This change reverts part of 9ba2b298df as
well as effectively bd3d9826d7, i. e. the
SBus-related modifications. This also gets rid of a nasty hack required
as bus_{read,write}_N(9) doesn't really fit bus_space_subregion(9).
2023-04-18 19:17:24 +02:00
Marius Strobl
bd15d31cef mmc(4): Don't call bridge driver for timings not requiring tuning
The original idea behind calling into the bridge driver was to have the
logic deciding whether tuning is actually required for a particular bus
timing in a given slot as well as doing the sanity checking only on the
controller layer which also generally is better suited for these due to
say SDHCI_SDR50_NEEDS_TUNING. On another thought, not every such driver
should need to check whether tuning is required at all, though, and not
everything is SDHCI in the first place.
Adjust sdhci{,_fsl_fdt}(4) accordingly, but keep sdhci_generic_tune() a
bit cautious still.
2023-04-18 19:17:24 +02:00
Dag-Erling Smørgrav
1bc6dcc287 renice: Factor out common code in tests.
Furthermore, prefer test -eq (which ignores whitespace) over a strict string equality test when comparing numerical values.

MFC after:	1 week
Sponsored by:	Klara, Inc.
Reviewed by:	thj
Differential Revision:	https://reviews.freebsd.org/D39650
2023-04-18 17:14:25 +00:00
Randall Stewart
2ad584c555 tcp: Inconsistent use of hpts_calling flag
Gleb has noticed there were some inconsistency's in the way the inp_hpts_calls flag was being used. One
such inconsistency results in a bug when we can't allocate enough sendmap entries to entertain a call to
rack_output().. basically a timer won't get started like it should. Also in cleaning this up I find that the
"no_output" side of input needs to be adjusted to make sure we don't try to re-pace too quickly outside
the hpts assurance of 250useconds.

Another thing here is we end up with duplicate calls to tcp_output() which we should not. If packets go
from hpts for processing the input side of tcp will call the output side of tcp on the last packet if it is needed.
This means that when that occurs a second call to tcp_output would be made that is not needed and if pacing
is going on may be harmful.

Lets fix all this and explicitly state the contract that hpts is making with transports that care about the
flag.

Reviewed by: tuexen, glebius
Sponsored by: Netflix Inc
Differential Revision:https://reviews.freebsd.org/D39653
2023-04-17 17:10:26 -04:00
Steve Kiernan
fb5ff7384c arm64: Use FULLKERNEL instead of .ALLSRC in .bin target
Using .ALLSRC may get additional arguments that we may not want
and could cause the objcopy to fail.

Reviewed by:	emaste
Obtained from:	Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D39639
2023-04-18 11:41:57 -04:00