summaryrefslogtreecommitdiff
path: root/sys
AgeCommit message (Collapse)Author
2023-12-12syncTheo de Raadt
2023-12-12remove support for syscall(2) -- the "indirection system call" becauseTheo de Raadt
it is a dangerous alternative entry point for all system calls, and thus incompatible with the precision system call entry point scheme we are heading towards. This has been a 3-year mission: First perl needed a code-generated wrapper to fake syscall(2) as a giant switch table, then all the ports were cleaned with relatively minor fixes, except for "go". "go" required two fixes -- 1) a framework issue with old library versions, and 2) like perl, a fake syscall(2) wrapper to handle ioctl(2) and sysctl(2) because "syscall(SYS_ioctl" occurs all over the place in the "go" ecosystem because the "go developers" are plan9-loving unix-hating folk who tried to build an ecosystem without allowing "ioctl". ok kettenis, jsing, afresh1, sthen
2023-12-12slyle(9) fix. No functional changes.Vitaliy Makkoveev
2023-12-12The sigtramp was calling sigreturn(2), and upon failure exit(2), whichTheo de Raadt
doesn't make sense anymore. It is better to just issue an illegal instruction. ok kettenis, with some misgivings about inconsistant approaches between architectures. In the future we could change sigreturn(2) to never return an exit code, but always just terminate the process. We stopped this system call from being callable ages ago with msyscall(2), and there is no stub for it in libc.. maybe that's the next step to take?
2023-12-12Turn `pflowstats' statistics counters into per-CPU counters to make themVitaliy Makkoveev
mpsafe. The weird interactions around `pflow_flows' and `sc_gcounter' replaced by simple `pflow_flows' increment. Since the flow sequence is the 32 bits integer, the `sc_gcounter' type replaced by the type of uint32_t. ok bluhm sashan
2023-12-11Implement per-CPU caching for the page table page (vp) pool and the PTEMark Kettenis
descriptor (pted) pool in the arm64 pmap implementation. This significantly reduces the side-effects of lock contention on the kernel map lock that is (incorrectly) translated into excessive page daemon wakeups. This is not a perfect solution but it does lead to significant speedups on machines with many CPU cores. This requires adding a new pmap_init_percpu() function that gets called at the point where kernel is ready to set up the per-CPU pool caches. Dummy implementations of this function are added for all non-arm64 architectures. Some other architectures can probably benefit from providing an actual implementation that sets up per-CPU caches for pmap pools as well. ok phessler@, claudio@, miod@, patrick@
2023-12-11Fix the shift of status bits 2:0 to 11:9 from <<8 to <<9.Kenneth R Westerback
Fix the mask of shifted 8 bit field from 0x7f to 0xff. Allows proper decoding of status fields SCT and SC. From mlelstv@netbsd via NetBSD. ok miod@
2023-12-11Turn `pflow_softc' list into SMR list.Vitaliy Makkoveev
Since the revision 1.1182 of net/pf.c netlock is not taken while export_pflow() called from pf_purge_states(). Current locks order requires netlock to be taken before PF_LOCK(), so there is no reason to turn it back into this path only for optional export_pflow() call. The `pflowif_list' foreach loop has no context switch within, so SMR list is better than mutex(9). Tested by Hrvoje Popovski. ok sashan bluhm
2023-12-11Add ampchwm(4) a driver to access the Ampere Altra Fine-Grained Power TelemetryClaudio Jeker
This adds per core energy sensors (in Joules) and one per SoC temparature sensor. OK kettenis@ deraadt@
2023-12-11vio(4): simplify mbuf parsing with ether_extract_headers()Jan Klemkow
ok sf@
2023-12-11drm/amd/display: Fix MPCC 1DLUT programmingJonathan Gray
From Ilya Bakoulin 10ce6301009fa46ba264ed75b822115ec3ca6e67 in linux-6.1.y/6.1.66 6f395cebdd8927fbffdc3a55a14fcacf93634359 in mainline linux
2023-12-11drm/amd/display: Fix the delta clamping for shaper LUTJonathan Gray
From Harry Wentland 8332cb6c63394f32117a6f46a8cf7bedb8eec0b1 in linux-6.1.y/6.1.66 27fc10d1095f7a7de7c917638d7134033a190dd8 in mainline linux
2023-12-11drm/amd/display: clean code-style issues in dcn30_set_mpc_shaper_3dlutJonathan Gray
From Melissa Wen 442a4d4d01579d5d7066d0653898ffbb4091e3be in linux-6.1.y/6.1.66 94369589e4ec13c762fe10a1fdc4463bdfee5d5f in mainline linux
2023-12-11drm/amd/display: Expand kernel doc for DCJonathan Gray
From Rodrigo Siqueira 6cd736272165d7a6a7d62fb0a40536ed3741ed02 in linux-6.1.y/6.1.66 1682bd1a6b5fb094e914d9b73b711821fd84dcbd in mainline linux
2023-12-11drm/amd/pm: fix a memleak in aldebaran_tables_initJonathan Gray
From Dinghao Liu 0e0a95166882e594af4ab4f8c6f7894c2c32f6a9 in linux-6.1.y/6.1.66 7a88f23e768491bae653b444a96091d2aaeb0818 in mainline linux
2023-12-11drm/amd/display: Guard against invalid RPTR/WPTR being setJonathan Gray
From Nicholas Kazlauskas 195514bda626b16fb6ef9ff4172dc0433a3c105b in linux-6.1.y/6.1.66 1ffa8602e39b89469dc703ebab7a7e44c33da0f7 in mainline linux
2023-12-11drm/amd/display: Restore rptr/wptr for DMCUB as workaroundJonathan Gray
From JinZe Xu 395a63ca1ad2e0534176cac91f5715961e744529 in linux-6.1.y/6.1.66 8f3589bb6fcea397775398cba4fbcc46829a60ed in mainline linux
2023-12-11dma-buf: fix check in dma_resv_add_fenceJonathan Gray
From Christian Koenig fc98ea2699c090e0377d16d733dca7a0b7508237 in linux-6.1.y/6.1.66 95ba893c9f4feb836ddce627efd0bb6af6667031 in mainline linux
2023-12-11drm/amd/display: fix ABM disablementJonathan Gray
From Hamza Mahfooz 7cfc3884a8bb3b77efd035885c758fb33587f1b3 in linux-6.1.y/6.1.66 b9f46f0b98784e40288ee393f863f553fde062fa in mainline linux
2023-12-11drm/amd/display: Update min Z8 residency time to 2100 for DCN314Jonathan Gray
From Nicholas Kazlauskas 859a3a9f1e6b4055fd96695d11defca050ecf5cf in linux-6.1.y/6.1.66 4636a211980052ca0df90265c8a3ed2d46099091 in mainline linux
2023-12-11drm/amd/display: Use DRAM speed from validation for dummy p-stateJonathan Gray
From Alvin Lee 6ef7f13c72df6bc95d39eb1614306768141377db in linux-6.1.y/6.1.66 9be601135ba8ac69880c01606c82140f2dde105e in mainline linux
2023-12-11drm/amd/display: Remove min_dst_y_next_start check for Z8Jonathan Gray
From Nicholas Kazlauskas a67c18704706e0a9ccac9b7002e678d325aea123 in linux-6.1.y/6.1.66 08448812acb2ab701cd5ff7e1a1dc97f7f10260c in mainline linux
2023-12-11drm/amd/display: Include udelay when waiting for INBOX0 ACKJonathan Gray
From Alvin Lee 33ed892f0cdeb1350648cd3bfe8140aa9f792076 in linux-6.1.y/6.1.66 3c9ea68cb61bd7e5bd312c06a12adada74ff5805 in mainline linux
2023-12-11drm/amdgpu: Force order between a read and write to the same addressJonathan Gray
From Alex Sierra c5cf436c8969516c92aaceb87582ff19bd187756 in linux-6.1.y/6.1.66 4b27a33c3b173bef1d19ba89e0b9b812b4fddd25 in mainline linux
2023-12-11drm/amd: Enable PCIe PME from D3Jonathan Gray
From Mario Limonciello c6088429630048661e480ed28590e69a48c102d6 in linux-6.1.y/6.1.66 6967741d26c87300a51b5e50d4acd104bc1a9759 in mainline linux
2023-12-11add dma_fence_is_later_or_same() for 6.1.66 drmJonathan Gray
2023-12-11Add an accounting flag for syscall pinning violations.Theo de Raadt
2023-12-10vmm(4): flush EPTs after enabling VMX mode.Dave Voutila
The Intel SDM states the vmxon/vmxoff instructions don't invalidate any EPT states on the cpu and recommend invalidating the global context. vmm(4) opportunistically disables and enables VMX mode as vms are created or terminated, so this adds a recommended housekeeping step per the SDM. While here, tidy up the CR4 toggling by moving it to after the MSR feature check. ok mlarkin@
2023-12-10The new cinematic to get sensor information as soon as possible sometimesMiod Vallat
runs too fast for the device and causes it to stutter its identification string. Check if the second string chunk matches the first one, and ignore it in this case, the correct data will come later.
2023-12-10syncTheo de Raadt
2023-12-10pinsyscalls(2) 2nd argument can be "uint *" instead of "void *Theo de Raadt
ok kettenis
2023-12-10Add a new label "sigcodecall" inside every sigtramp definition, directlyTheo de Raadt
in front of the syscall instruction. This is used to calculate the start of the syscall for SYS_sigreturn and pinned system calls. ok kettenis
2023-12-10Skip interfaces already claimed by other uaudio(4) instances.Alexandre Ratchov
Fixes support of devices that attach multiple uaudio(4) drivers. Every uaudio(4) instance parses the full set of device descriptors because there are multiple interfaces per driver instance. If there is a second uaudio(4) instance (i.e. a second control & stream interfaces combo), the latter must skip the interfaces already used by the first one (if it didn't, multiple uaudio(4) would try to use the same interface and neither would work). Help from and ok armani@.
2023-12-09vio(4) add recv TCP/UDP checksum offloadingJan Klemkow
tested on Linux/KVM tested on proxmox and vultr by florian ok florian
2023-12-08Add spaces around '='. style(9) fix, no functional changes.Vitaliy Makkoveev
2023-12-08Introduce `sc_mtx' mutex(9) to protect the most of pflow_softcVitaliy Makkoveev
structure. Protect the `send_nam', `sc_flowsrc' and `sc_flowdst' pflow_softc members by existing `sc_lock' rwlock(9). This partially fixes locking inconsistency of pflow_softc. The following work will be done with separate diffs. Also, pass `sc' instead of NULL to pflow_get_mbuf() while calling from pflow_sendout_ipfix_tmpl(). This fixes the NULL dereference. ok bluhm@
2023-12-08PT_OPENBSD_SYSCALLS is an extension that points to non-LOAD sectionTheo de Raadt
which contains {offset,syscall#} structures. ok kettenis
2023-12-08New TEMPerHUM sensor; reported by Mikolaj Kucharski on bugs@Miod Vallat
2023-12-07Inpcb table mutex protects addr and port during bind(2) and connect(2).Alexander Bluhm
in_pcbbind(), in_pcbconnect(), and in6_pcbconnect() have to set addresses and ports within the same critical section as the inpcb hash table calculation. Also lookup and address selection have to be protected to avoid bindings and connections that are not unique. For that in_pcbpickport() and in_pcbbind_locked() expect that the table mutex is already taken. The functions in_pcblookup_lock(), in_pcblookup_local_lock(), and in_pcbaddrisavail_lock() grab the mutex iff the lock parameter is IN_PCBLOCK_GRAB. Otherwise the parameter is IN_PCBLOCK_HOLD has the lock has to be taken already. Note that in_pcblookup_lock() and in_pcblookup_local() return an inp with increased reference iff they take and release the lock. Otherwise the caller protects the life time of the inp. This gives enough flexibility that in_pcbbind() and in_pcbconnect() can hold the table mutex when they need it. The public inpcb API does not change. OK sashan@ mvs@
2023-12-07syncTheo de Raadt
2023-12-07Add a stub pinsyscalls() system call that simply returns 0 for now,Theo de Raadt
before future work where ld.so(1) will need this new system call. Putting this in the kernel ahead of time will save some grief. ok kettenis
2023-12-07avoid bad register access in eephy_reset for Marvell Alaska 88E1512Uwe Stuehler
The register write before this change had no visible run-time effect on 88E1512 under normal conditions but it tried to update a reserved bit and might prevent the standard behaviour of breaking the link on insufficient Inter-Packet Gaps. Cross-checked with datasheets for supported variants. Extended special control register 20 exists only in E1111 but not in E151x, E1545x, or E3016. It seems that the register was dropped in E15xx and subsequent designs. Originally from stsp@ ok claudio@ stsp@
2023-12-06Protect socket receive buffer in IP multicast routing.Alexander Bluhm
Since soreceive() runs in parallel for raw sockets, sbappendaddr() has to be protected by inpcb mutex. This was missing in multicast forwarding which is running with a combination of shared net lock and kernel lock. soreceive() uses shared net lock and mutex per inpcb. Grab mutex before sbappendaddr() in socket_send() and socket6_send(). panic receive 1 reported by Jo Geraerts OK mvs@ claudio@
2023-12-06Move CALLSYS_NOERROR macro from <machine/asm.h> to libc, and expand it forMiod Vallat
non-libc users. This is a two-liner macro anyway, and this will make deraadt@'s future changes in this area easier to make. NFC
2023-12-05Add more devices which may attach ukbd (and thus wskbd) but should never beMiod Vallat
considered as console keyboards.
2023-12-05Cast uvmexp.swpages to long before multiplying by 99 to avoid integerClaudio Jeker
overflows on systems with big swap partitions. OK kettenis@ miod@
2023-12-05timeout_del() the timer while stopping an interface so that no timeoutKevin Lo
is fired afterwards. ok claudio@
2023-12-05Remove "disable auto-negotiation" workaround for Marvell Alaska PHYsUwe Stuehler
This avoids an intermediate link state (10baseT) before the interface is configured via ifconfig(8), and is consistent with other MII drivers and OSes. The original reason for this workaround is mainly thought be related to either reducing the time required for auto-negotiation to complete or indeed incorrect advertisement of link capabilities. Tested on Intel Elkhart Lake with dwqe(4) and 88E1512 PHY. Originally from stsp@ with feedback from kettenis@. ok kettenis@ claudio@
2023-12-05boot_file was removed in arm64 machdep.c rev 1.55Jonathan Gray
2023-12-04Remove unneeded symbols.Miod Vallat