tb [Mon, 18 Dec 2023 06:06:57 +0000 (06:06 +0000)]
Remove EVP_MD_meth_*() dependency
This broken API was added for Erlang's otp-test-engine which was disabled
for LibreSSL without explanation shortly afterward. So we can remove this
hazard again.
Unfortunately, libfido2 started using EVP_MD_meth_dup(), but for no good
reason: they dup static data into a buffer that is passed unmodified to
EVP_PKEY_CTX_set_signature_md() only to be freed right after. This makes
no sense.
Rework this and the ifdefery to make it clear that it is OpenSSL who broke
API contracts (again), not LibreSSL.
ok djm jsing
tb [Sun, 17 Dec 2023 08:32:26 +0000 (08:32 +0000)]
c2sp: replace openssl 3.0 with 3.2 support
mvs [Sat, 16 Dec 2023 22:17:08 +0000 (22:17 +0000)]
Make `fuse_rd_filtops' mpsafe.
Introduce `fd_lock' rwlock(9) and use it for `fd_fbufs_in' fuse buffers
queue and `fd_rklist' knotes list protection.
Tested by Rafael Sadowski.
Discussed with and ok from bluhm
mvs [Sat, 16 Dec 2023 22:16:02 +0000 (22:16 +0000)]
Rework pflowioctl() lock dances.
Release netlock and take `sc_lock' rwlock(9) just in the beginning of
pflowioctl() and do corresponding operations in the end. Use `sc_lock'
to protect `sc_dying'.
We need to release netlock not only to keep locks order with `sc_lock'
rwlock(9), but also because pflowioctl() calls some operations like
socreate() or soclose() on udp(4) socket. Current implementation has
many relocking places which breaks atomicy, so merge them into one.
The `sc_lock' rwlock(9) is taken during all pflowioctl() call, so
`sc_dying' atomicy is not broken.
Not the ideal solution, but better then we have now.
Tested by Hrvoje Popovski.
Discussed with and ok from sashan
tb [Sat, 16 Dec 2023 19:14:56 +0000 (19:14 +0000)]
ASN1_STRING_TABLE_get.3: grammar: have -> has
tb [Sat, 16 Dec 2023 17:40:22 +0000 (17:40 +0000)]
EVP_EncryptUpdate(): make block_size and block_mask const
suggested by millert
tb [Sat, 16 Dec 2023 15:22:40 +0000 (15:22 +0000)]
First cleanup pass over EVP_EncryptUpdate()
Use more sensible variable names in order to make the logic a bit easier
to follow. The variables may be renamed in a later pass. Unindent a block
that was squeezed too much to the right and make a few minor stylistic
tweaks.
ok jsing
tb [Sat, 16 Dec 2023 14:09:33 +0000 (14:09 +0000)]
Move EVP_PBE_find() next to the tables
There is no point in having EVP_PBE_CipherInit() between the table and
the lookup functions (which it notably uses).
No code change.
tb [Sat, 16 Dec 2023 14:04:59 +0000 (14:04 +0000)]
Remove OBJ_bsearch_() usage from PBE
Split the table of built-in password based encryption algorithms into two
and use a linear scan over the table corresponding to the type specified
in EVP_PBE_find()'s type argument. Use better variable names, make the
API a bit safer and generally reduce the eye bleed in here.
ok jsing
tb [Sat, 16 Dec 2023 13:23:20 +0000 (13:23 +0000)]
Using two different spellings of NULL in the same line is an achievement
tb [Sat, 16 Dec 2023 12:56:20 +0000 (12:56 +0000)]
Annotate incorrect value for ub_email_address
The ub_email_address upper bound, 128, returned for NID_pkcs9_emailAddress,
doesn't match the PKCS#9 specification where it is 255. This was adjusted
in RFC 5280:
The ASN.1 modules in Appendix A are unchanged from RFC 3280, except
that ub-emailaddress-length was changed from 128 to 255 in order to
align with PKCS #9 [RFC2985].
Nobody seems to have noticed so far, so leave it at an XXX and a BUGS
entry for now. It also clearly has the wrong name.
Another mystery is why the RFCs suffix some upper bounds with length, but
not others. Also, OpenSSL chose to be inconsistent with that, because
inconsistency is one of the few things this library is really good at.
tb [Sat, 16 Dec 2023 12:40:02 +0000 (12:40 +0000)]
Neuter the ASN1_STRING_TABLE modification API
This is complete nonsense that nothing's ever used except for a test by
schwarze. It will be removed in the next major bump. What remains could
be moved to a simple lookup table in security/xca...
ok jsing
tb [Sat, 16 Dec 2023 12:36:14 +0000 (12:36 +0000)]
Remove call to ASN1_STRING_TABLE_cleanup()
In a few minutes, the string table will no longer have anything to clean
up and ASN1_STRING_TABLE_cleanup() will push an error on the stack. So
remove this pointless call in the still too complicated OPENSSL_cleanup().
ok jsing
tb [Sat, 16 Dec 2023 12:25:02 +0000 (12:25 +0000)]
asn1.h: mark a type and a bunch of macros for removal
ok jsing
tb [Sat, 16 Dec 2023 10:27:06 +0000 (10:27 +0000)]
sync
tb [Sat, 16 Dec 2023 10:26:10 +0000 (10:26 +0000)]
Rename ASN1_STRING_TABLE_add manual to _get
tb [Sat, 16 Dec 2023 10:22:56 +0000 (10:22 +0000)]
Remove ASN1_STRING_TABLE_{add,cleanup}() documentation
The unused ASN1_STRING_TABLE extensibility API will be removed in the next
major bump and the table itself will become immutable. Lightly adjust the
remaining text. In particular, update the RFC reference, stop talking about
defaults when nothing can be changed anymore, do not mention useless flags
that you will no longer be able to set and move the description of the only
remaining flag after the description of ASN1_STRING_TABLE_get().
The file will be renamed in a second step.
tb [Sat, 16 Dec 2023 09:46:06 +0000 (09:46 +0000)]
Implement and use a do_cipher() wrapper
Instead of using five different idioms for eight callers of the do_cipher()
method in EVP_{Decrypt,Encrypt}{Update,Final_ex}(), wrap the API insanity
in an evp_cipher() function that calls do_cipher() as appropriate depending
on the EVP_CIPH_FLAG_CUSTOM_CIPHER being set or not. This wrapper has the
usual OpenSSL calling conventions.
There is one complication in EVP_EncryptUpdate() in the case a previous
call wrote only a partial buffer. In that case, the evp_cipher() call is
made twice and the lengths have to be added. Add overflow checks and only
set outl (the number of bytes written) to out on success.
ok jsing
aoyama [Sat, 16 Dec 2023 06:42:38 +0000 (06:42 +0000)]
Fix phdr name in ld.script.
ok deraadt@
tb [Fri, 15 Dec 2023 22:24:15 +0000 (22:24 +0000)]
Remove the string_table test
If it wasn't for security/xca, all of the ASN1_STRING_TABLE API would
hit the attic before long. API design by a trained professional...
The table can at least be made immutable, which in turn makes this test
entirely pointless.
tb [Fri, 15 Dec 2023 21:55:47 +0000 (21:55 +0000)]
Remove strings.h again
The portable compat shim doesn't provide it.
jca [Fri, 15 Dec 2023 16:59:48 +0000 (16:59 +0000)]
Run non-daemons services in a different process group to avoid SIGHUP at boot
12 factors apps and similar don't daemonize and are thus vulnerable to
receiving a SIGHUP signal at the end of /etc/rc. Shield them by running
them in a different process group. Do this only for services that need
rc_bg=Yes, as suggested by ajacoutot@
There have been several reports about this issue in the past years, the
last one being from edd@ who successfully tested this fix. Input from
several folks, ok sthen@ ajacoutot@
miod [Fri, 15 Dec 2023 15:20:16 +0000 (15:20 +0000)]
Drop no-longer-applicable comment.
deraadt [Fri, 15 Dec 2023 15:12:08 +0000 (15:12 +0000)]
provide the pieces for ktrace/kdump to observe pinsyscall violations.
(not used yet, because the pinsyscall changes are still being worked on)
ok kettenis
tb [Fri, 15 Dec 2023 14:22:10 +0000 (14:22 +0000)]
Remove EVP_PBE_cleanup() from EVP_cleanup()
It's a noop and will be removed in the next major bump.
ok jsing
tb [Fri, 15 Dec 2023 14:21:14 +0000 (14:21 +0000)]
Move all the neutered PBE API to the bottom of the file
tb [Fri, 15 Dec 2023 14:16:44 +0000 (14:16 +0000)]
Remove unprotected global state from EVP_PBE
Nobody adds a custom password-based encryption algorithm, be it a PRF or
one that can be an outermost AlgorithmIdentifier in CMS or its precursors.
This makes the undocumented and unused EVP_PBE_alg_add{,_type}() always
fail. They will be removed in the next major bump.
Thus, we no longer need to maintain a global stack of PBE algorithms that
one thread can happily modify while another one searches it.
In subsequent steps we can then remove another rather pointless use of
OBJ_bsearch_(). "Let's optimize the lookup in a table with two dozen
entries using about as many glorious layers of obfuscating macros."
ok jsing
tb [Fri, 15 Dec 2023 13:48:59 +0000 (13:48 +0000)]
Fix a return value confusion in chacha20_poly1305_cipher()
On overlong input, chacha20_poly1305_cipher() would return 0, which in
EVP_CipherUpdate() and EVP_CipherFinal() signals success with no data
written since EVP_CIPH_FLAG_CUSTOM_CIPHER is set. In order to signal an
error, we need to return -1. Obviously.
ok jsing
tb [Fri, 15 Dec 2023 13:45:05 +0000 (13:45 +0000)]
Disallow ciphers with EVP_CIPH_FLAG_CUSTOM_CIPHER in CMAC
These are usually AEAD ciphers, for which CMAC makes little sense (if you
need a MAC and all you have is an AEAD, you don't need CMAC, you can just
use a zero length cipher text). Also, since the CMAC implementation only
allows 64 and 128 bit block sizes, the AEADs would error out later anyway.
The only family of ciphers this effectively excludes is AES key wrap, for
which CMAC makes little sense.
One notable side effect of doing this is that the EVP_Cipher() return
value checks in the CMAC code magically become correct. EVP. What's not to
love about it.
ok jsing
tb [Fri, 15 Dec 2023 13:33:10 +0000 (13:33 +0000)]
Document EVP_Cipher() in code
EVP_Cipher() is an implementation detail of EVP_Cipher{Update,Final}().
Behavior depends on EVP_CIPH_FLAG_CUSTOM_CIPHER being set on ctx->cipher.
If the flag is set, do_cipher() operates in update mode if in != NULL and
in final mode if in == NULL. It returns the number of bytes written to out
(which may be 0) or -1 on error.
If the flag is not set, do_cipher() assumes properly aligned data and that
padding is handled correctly by the caller. Most do_cipher() methods will
silently produce garbage and succeed. Returns 1 on success, 0 on error.
ok jsing
tb [Fri, 15 Dec 2023 13:28:30 +0000 (13:28 +0000)]
Move EVP_Cipher() from evp_lib.c to evp_enc.c
EVP_Cipher() is a dangerous thin wrapper of the do_cipher() method set on
the EVP_CIPHER_CTX's cipher. It implements (part of) the update and final
step of the EVP_Cipher* API. Its behavior is nuts and will be documented
in a comment in a subsequent commit. schwarze has a manpage diff that will
fix the incorrect documentation.
kn [Fri, 15 Dec 2023 10:28:57 +0000 (10:28 +0000)]
No interactive shell if -o is given
After r1.140 and r1.144 fixed -o '' and clenaed up option handling,
respectively, avoid the "ftp> " shell if any output file was specified.
OK millert
miod [Fri, 15 Dec 2023 10:17:40 +0000 (10:17 +0000)]
Sync limits with octeon.
tb [Fri, 15 Dec 2023 08:22:08 +0000 (08:22 +0000)]
Clean up includes
tb [Fri, 15 Dec 2023 08:16:54 +0000 (08:16 +0000)]
Neuter EVP_PKEY_asn1_add{0,_alias}()
Nothing uses these, so they will be removed in the next bump. For now
make them always fail and remove the unprotected global state backing
them. This makes EVP_PKEY_asn1_get{0,_count}() completely trivial and
will allow some further cleanup in later steps.
ok jsing
jmatthew [Fri, 15 Dec 2023 06:03:00 +0000 (06:03 +0000)]
For amd64 cdXX.iso and installXX.iso, create an EFI system partition image
containing the EFI boot loaders and install it as an El Torito boot image,
making the install CDs bootable in EFI mode.
"looks great" deraadt@
ok mlarkin@
tb [Fri, 15 Dec 2023 01:51:23 +0000 (01:51 +0000)]
Hoist OBJ_sn2nid() over OBJ_ln2nid()
In all other places, the short name comes before the long name, so fix
the only exception.
tb [Fri, 15 Dec 2023 01:47:50 +0000 (01:47 +0000)]
Coverity rightly points out that an unsigned int is always >= 0
bluhm [Fri, 15 Dec 2023 00:24:56 +0000 (00:24 +0000)]
Use inpcb table mutex to set addresses.
Protect all remaining write access to inp_faddr and inp_laddr with
inpcb table mutex. Document inpcb locking for foreign and local
address and port and routing table id. Reading will be made MP
safe by adding per socket rw-locks in a next step.
OK sashan@ mvs@
tb [Thu, 14 Dec 2023 18:32:49 +0000 (18:32 +0000)]
OBJ_create: sorry Omar, aobj is a better name than op
Done.
tb [Thu, 14 Dec 2023 18:31:03 +0000 (18:31 +0000)]
OBJ_create: use a nid variable to avoid nested function call
tb [Thu, 14 Dec 2023 18:16:13 +0000 (18:16 +0000)]
OBJ_create: malloc() -> calloc()
tb [Thu, 14 Dec 2023 18:15:21 +0000 (18:15 +0000)]
OBJ_create: test and assign as usual
tb [Thu, 14 Dec 2023 18:12:51 +0000 (18:12 +0000)]
OBJ_create: initialize buf and turn function into single exit
tb [Thu, 14 Dec 2023 18:10:32 +0000 (18:10 +0000)]
OBJ_create: rename ok to ret and make it last declaration
tb [Thu, 14 Dec 2023 18:09:35 +0000 (18:09 +0000)]
OBJ_create(): rename i to len
tb [Thu, 14 Dec 2023 18:08:18 +0000 (18:08 +0000)]
OBJ_create(): remove pointless parentheses
tb [Thu, 14 Dec 2023 18:06:44 +0000 (18:06 +0000)]
OBJ_create(): remove useless cast
tb [Thu, 14 Dec 2023 15:33:09 +0000 (15:33 +0000)]
OPENSSL_assert() that the passed nid is within range
discussed with deraadt and jsing
tb [Thu, 14 Dec 2023 15:31:22 +0000 (15:31 +0000)]
Bump OPENSSL_showfatal() from LOG_INFO to LOG_CONS
This way people can actually notice that an OPENSSL_assert() triggered.
discussed with deraadt and jsing
tb [Thu, 14 Dec 2023 14:45:45 +0000 (14:45 +0000)]
Move the txt to obj/nid conversions a bit down.
No code change
tb [Thu, 14 Dec 2023 14:33:23 +0000 (14:33 +0000)]
Dedup OBJ_nid2{obj,sn,ln}()
First get the obj corresponding to nid, then inspect its sn and ln.
Shaves off 40 lines of code and will simplify locking.
claudio [Thu, 14 Dec 2023 14:04:57 +0000 (14:04 +0000)]
Workaround for broken clang which has a broken -fno-zero-initialized-in-bss
implementation.
Set nkmempages to -1 by default instead of 0 so that the value ends up in
the data section. This way config(8) is able to alter the value as promised.
See also: https://github.com/llvm/llvm-project/issues/74632
OK miod@
tb [Thu, 14 Dec 2023 14:04:46 +0000 (14:04 +0000)]
Simplify OBJ_nid2obj()
This is now yet another identical copy of the same code...
Next step will be to dedup.
ok jsing
tb [Thu, 14 Dec 2023 14:02:57 +0000 (14:02 +0000)]
Simplify OBJ_nid2sn()
This is exactly the same as the previous OBJ_nid2ln() change modulo
s/ln/sn/g.
ok jsing
tb [Thu, 14 Dec 2023 14:01:42 +0000 (14:01 +0000)]
Simplify OBJ_nid2ln()
If nid is in the range of built-in NIDs, return the corresponding
long name, unless some genius left a hole. Otherwise perform a yolo
check if there are any user-added objects with matching nid in the
global hash.
This changes behavior in that we now push an OBJ_R_UNKNOWN_NID error
onto the stack even if there are no user-added objects.
ok jsing
claudio [Thu, 14 Dec 2023 13:52:37 +0000 (13:52 +0000)]
Mostly straightforward conversion to imsg_get_fd() only the handling
of the control socket needs a local variable since imsg_get_fd() can
only be called once on an imsg.
OK tb@
claudio [Thu, 14 Dec 2023 13:34:23 +0000 (13:34 +0000)]
There is no more option NKMEMPAGES_MAX
OK miod@
claudio [Thu, 14 Dec 2023 13:26:49 +0000 (13:26 +0000)]
NKMEMPAGES_MAX_DEFAULT is no longer used. Remove it from param.h.
OK miod@
job [Thu, 14 Dec 2023 12:26:03 +0000 (12:26 +0000)]
Constrain the AFRINIC TA further
Today AFRINIC clarified its actual current resource holdings by issuing
a new CA certificate in response to a report on overclaiming:
https://lists.afrinic.net/pipermail/dbwg/2023-December/000496.html
OK tb@
tb [Thu, 14 Dec 2023 12:02:10 +0000 (12:02 +0000)]
Fix sk_deep_copy() implementation
sk_deep_copy() is bad code. It is less bad than the upstream code, but
still bad: it passes strdup() through a void pointer and assigns it to
a function pointer of different type before calling the latter. That's
not kosher in more than one way.
There is no need for such gymnastics. If we need a deep copy for a type,
we should implement it as appropriate for that type.
Also, we should not expect and even less so allow holes in a STACK_OF().
The only way the vpm->hosts can be populated is by way of this deep_copy
function or x509_param_set_hosts_internal(), which pushes only after a
non-NULL check. Invariants: they're useful.
ok jsing
claudio [Thu, 14 Dec 2023 11:58:09 +0000 (11:58 +0000)]
Bring default logic to set nkmempages into the 21st century.
The new logic is:
Up to 1G physmem use physical memory / 4,
above 1G add an extra 16MB per 1G of memory.
Clamp it down depending on available kernel virtual address space
- up and including 512M -> 64MB (macppc, arm, sh)
- between 512M and 1024M -> 128MB (hppa, i386, mips, luna88k)
- over 1024M clamping to VM_KERNEL_SPACE_SIZE / 4
The result is much more malloc(9) space on 64bit archs with lots of memory
and large kva space.
Note: amd64 only has 4G of kva and therefor nkmempages is limited to 262144
As a side-effect NKMEMPAGES_MAX and nkmempages_max are no longer used.
Tested and OK miod@
claudio [Thu, 14 Dec 2023 11:10:19 +0000 (11:10 +0000)]
Use imsg_get_fd() to access the file descriptor passed in the imsg.
OK tb@
claudio [Thu, 14 Dec 2023 11:09:56 +0000 (11:09 +0000)]
Use imsg_get_fd() to access the file descriptor passed in the imsg.
OK tb@
claudio [Thu, 14 Dec 2023 11:09:34 +0000 (11:09 +0000)]
Use imsg_get_fd() to access the file descriptor passed in the imsg.
OK tb@
claudio [Thu, 14 Dec 2023 10:02:27 +0000 (10:02 +0000)]
Rewrite send_packet to update the eigrp header without using ibuf_seek.
There is a long term goal to remove ibuf_seek from the public ibuf API
since the function is a bit tricky to use.
OK tb@
claudio [Thu, 14 Dec 2023 09:59:27 +0000 (09:59 +0000)]
Use imsg_get_fd() to access the fd passed with the imsg.
Go ahead florian@ OK tb@
claudio [Thu, 14 Dec 2023 09:58:59 +0000 (09:58 +0000)]
Use imsg_get_fd() to access the fd passed with the imsg.
Go ahead florian@ OK tb@
claudio [Thu, 14 Dec 2023 09:58:37 +0000 (09:58 +0000)]
Use imsg_get_fd() to access the fd passed with the imsg.
Go ahead florian@ OK tb@
job [Thu, 14 Dec 2023 09:13:00 +0000 (09:13 +0000)]
For historical reasons, APNIC ended up with a v6 block for IX assignments
carved out of a larger block assigned to RIPE NCC
OK tb@
tb [Thu, 14 Dec 2023 07:52:53 +0000 (07:52 +0000)]
rpki-client: make IP address block checks stricter
There are only two valid AFIs in this context, so check that we have one
or two of them. We only accept the IPv4 and IPv6 AFIs in ip_add_afi_parse()
and reject any SAFI, so enforce that neither AFI is repeated. This doesn't
change things for certificates, where all this is implied by other checks
combined. Making this explicit and match the logic needed for ROAs is a win.
looks good to job
ok claudio
jsg [Thu, 14 Dec 2023 05:47:41 +0000 (05:47 +0000)]
drm/i915: Skip some timing checks on BXT/GLK DSI transcoders
From Ville Syrjala
f38b4e99e24cbc45084552fe50273ed847a4f511 in linux-6.1.y/6.1.68
20c2dbff342aec13bf93c2f6c951da198916a455 in mainline linux
jsg [Thu, 14 Dec 2023 05:44:58 +0000 (05:44 +0000)]
drm/i915/sdvo: stop caching has_hdmi_monitor in struct intel_sdvo
From Jani Nikula
d9ef7b05ccd7f4f0d12b7aed2a2e5858809dd4a4 in linux-6.1.y/6.1.68
f2f9c8cb6421429ef166d6404426693212d0ca07 in mainline linux
jsg [Thu, 14 Dec 2023 05:43:28 +0000 (05:43 +0000)]
drm/i915/lvds: Use REG_BIT() & co.
From Ville Syrjala
cf70d62ace9070fb8be900fa87cb2e43cbc1fa9f in linux-6.1.y/6.1.68
9dd56e979cb69f5cd904574c852b620777a2f69f in mainline linux
jsg [Thu, 14 Dec 2023 05:40:30 +0000 (05:40 +0000)]
drm/i915/display: Drop check for doublescan mode in modevalid
From Ankit Nautiyal
e6d55cf4939987eb1761cb0cbf47af233123da87 in linux-6.1.y/6.1.68
9d04eb20bc71a383b4d4e383b0b7fac8d38a2e34 in mainline linux
jsg [Thu, 14 Dec 2023 05:38:21 +0000 (05:38 +0000)]
drm/amdgpu: Update EEPROM I2C address for smu v13_0_0
From Candice Li
c8bf22e0d0499de0692a91290f923029230a5bd4 in linux-6.1.y/6.1.68
e0409021e34af50e7b6f31635c8d21583d7c43dd in mainline linux
jsg [Thu, 14 Dec 2023 05:36:31 +0000 (05:36 +0000)]
drm/amdgpu: Add I2C EEPROM support on smu v13_0_6
From Candice Li
87509778718cffdee6412f0d39713f883208a013 in linux-6.1.y/6.1.68
b81fde0dfe402e864ef1ac506eba756c89f1ad32 in mainline linux
jsg [Thu, 14 Dec 2023 05:34:50 +0000 (05:34 +0000)]
drm/amdgpu: simplify amdgpu_ras_eeprom.c
From Alex Deucher
4ccb34d4313b81d6268b1e68bd9a4e7309f096f6 in linux-6.1.y/6.1.68
6246059a19d4cd32ef1af42a6ab016b779cd68c4 in mainline linux
jsg [Thu, 14 Dec 2023 05:33:28 +0000 (05:33 +0000)]
drm/amdgpu: Return from switch early for EEPROM I2C address
From Luben Tuikov
af6b1f1156fc2d886251a076b87243597301437c in linux-6.1.y/6.1.68
8782007b5f5795f118c5167f46d8c8142abcc92f in mainline linux
jsg [Thu, 14 Dec 2023 05:31:54 +0000 (05:31 +0000)]
drm/amdgpu: Remove second moot switch to set EEPROM I2C address
From Luben Tuikov
a3049c9a30131639f056a2b3db934c70ff91068a in linux-6.1.y/6.1.68
1bb745d7596d2b368fd9afb90473f3581495e39d in mainline linux
jsg [Thu, 14 Dec 2023 05:30:17 +0000 (05:30 +0000)]
drm/amdgpu: Add support for RAS table at 0x40000
From Luben Tuikov
30289057ef8f8accd98ee41221c859a471f20c5c in linux-6.1.y/6.1.68
64a3dbb06ad88d89a0958ccafc4f01611657f641 in mainline linux
jsg [Thu, 14 Dec 2023 05:27:09 +0000 (05:27 +0000)]
drm/amdgpu: Decouple RAS EEPROM addresses from chips
From Luben Tuikov
c67c553b4dd9a315919ae8990da367523fad0e38 in linux-6.1.y/6.1.68
3b8164f8084ff7888ed24970efa230ff5d36eda8 in mainline linux
jsg [Thu, 14 Dec 2023 05:25:39 +0000 (05:25 +0000)]
drm/amdgpu: Remove redundant I2C EEPROM address
From Luben Tuikov
ee9efcdc76af0dcb51579aa61c5019eabce93d73 in linux-6.1.y/6.1.68
da858deab88eb561f2196bc99b6dbd2320e56456 in mainline linux
jsg [Thu, 14 Dec 2023 05:23:24 +0000 (05:23 +0000)]
drm/amdgpu: Add EEPROM I2C address support for ip discovery
From Candice Li
a945568638acfc7d2d95de520849857506b21252 in linux-6.1.y/6.1.68
c9bdc6c3cf39df6db9c611d05fc512b1276b1cc8 in mainline linux
jsg [Thu, 14 Dec 2023 05:20:52 +0000 (05:20 +0000)]
drm/amdgpu: Update ras eeprom support for smu v13_0_0 and v13_0_10
From Candice Li
f549f837b9aca23983540fc6498e19eee8b3073a in linux-6.1.y/6.1.68
bc22f8ec464af9e14263c3ed6a1c2be86618c804 in mainline linux
jsg [Thu, 14 Dec 2023 05:19:03 +0000 (05:19 +0000)]
drm/amdgpu: correct the amdgpu runtime dereference usage count
From Prike Liang
458affed061935948d31f5d731bbcfbff3158762 in linux-6.1.y/6.1.68
c6df7f313794c3ad41a49b9a7c95da369db607f3 in mainline linux
jsg [Thu, 14 Dec 2023 05:17:32 +0000 (05:17 +0000)]
drm/amd/amdgpu: Fix warnings in amdgpu/amdgpu_display.c
From Srinivasan Shanmugam
41c5dd545e765bf4677a211d3c68808d7069e4a1 in linux-6.1.y/6.1.68
93125cb704919f572c01e02ef64923caff1c3164 in mainline linux
jsg [Thu, 14 Dec 2023 05:15:58 +0000 (05:15 +0000)]
drm/amdgpu: fix memory overflow in the IB test
From Tim Huang
613eaee4459dfdae02f48cd02231cc177e9c37e7 in linux-6.1.y/6.1.68
6b0b7789a7a5f3e69185449f891beea58e563f9b in mainline linux
jsg [Thu, 14 Dec 2023 05:14:10 +0000 (05:14 +0000)]
drm/amdgpu: correct chunk_ptr to a pointer to chunk.
From YuanShang
9046665befd6e9b9b97df458dc4c41cfe63e21d3 in linux-6.1.y/6.1.68
50d51374b498457c4dea26779d32ccfed12ddaff in mainline linux
tb [Wed, 13 Dec 2023 23:34:45 +0000 (23:34 +0000)]
Simplify OBJ_ln2nid()
This is s/sn/ln/g of the previous commit and eliminates another
OBJ_bsearch_() user, the last one in this file. The bsearch() uses
in this file are possibly the only ones that actually make sense
since we're searching tables of roughly 1000 entries.
ok jsing
tb [Wed, 13 Dec 2023 23:31:25 +0000 (23:31 +0000)]
Simplify OBJ_sn2nid()
Another OBJ_bsearch_() elimination.
OBJ_sn2nid() is very similar to OBJ_obj2nid(). First it tries to retrieve
an object identifier with matching "short name" from the global hash of
added objects and then searches the table of built-in objects.
ok jsing
tb [Wed, 13 Dec 2023 23:28:47 +0000 (23:28 +0000)]
Simplify OBJ_obj2nid()
Continue with OBJ_bsearch_() elimination.
OBJ_obj2nid() first checks if the object identifier passed in has a nid
and if so, it returns that. Otherwise, it looks into the global hash of
added objects (of course without locking) for a match and then returns
the nid thereof. As a last attempt, it searches the table of built-in
object identifiers.
The last two steps can be cleaned up and simplified quite a bit by using
C99 initializers, bsearch() and an appropriate comparison function. Then
it becomes obvious that bsearch() already returns a pointer to the nid
we're looking for, so there is no point in converting that into its
corresponding obj and returning the nid thereof.
ok jsing
jca [Wed, 13 Dec 2023 18:26:41 +0000 (18:26 +0000)]
Implement per-CPU caching for the page table page (vp) pool and the PTE
descriptor (pted) pool in the [riscv64] 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 the Hifive Unmatched]
Improvement and commit message adapted from kettenis' rev 1.110 commit
to arm64/pmap.c. ok phessler@ kettenis@
ajacoutot [Wed, 13 Dec 2023 17:50:23 +0000 (17:50 +0000)]
Match what reorder_kernel is doing and use kern.osversion to find out whether
we are running an MP kernel or not.
based on a reworked submission from kris at devtty dot one via deraadt@
input and ok robert@
deraadt [Wed, 13 Dec 2023 16:58:32 +0000 (16:58 +0000)]
sync
miod [Wed, 13 Dec 2023 15:57:22 +0000 (15:57 +0000)]
Fix syscall number bounds check computations.
claudio [Wed, 13 Dec 2023 15:34:43 +0000 (15:34 +0000)]
Use imsg_get_fd() to access the control fd.
OK tb@
claudio [Wed, 13 Dec 2023 15:34:27 +0000 (15:34 +0000)]
Use imsg_get_fd() to access the control fd.
OK tb@
miod [Wed, 13 Dec 2023 12:41:31 +0000 (12:41 +0000)]
Unbreak; looks like a not up-to-date diff was commited )-:
kn [Wed, 13 Dec 2023 12:14:10 +0000 (12:14 +0000)]
remove -o cases; reminded by anton