From 7f3136b31c7174590e735bb6a422119a7472e853 Mon Sep 17 00:00:00 2001 From: purplerain Date: Wed, 26 Jun 2024 04:27:03 +0000 Subject: [PATCH] sync with OpenBSD -current --- lib/libssl/Makefile | 3 +- lib/libssl/ssl_local.h | 4 +- lib/libssl/ssl_srvr.c | 135 +++++++++++++++------------- lib/libssl/ssl_tlsext.c | 4 +- sys/arch/amd64/amd64/intr.c | 14 ++- sys/arch/amd64/amd64/machdep.c | 5 +- sys/arch/amd64/amd64/vmm_machdep.c | 5 +- sys/arch/armv7/armv7/intr.c | 22 +++-- sys/arch/armv7/omap/intc.c | 5 +- sys/arch/armv7/omap/omusbtll.c | 6 +- sys/arch/i386/stand/libsa/machdep.c | 5 +- sys/dev/acpi/acpi.c | 16 +++- sys/dev/acpi/acpi_x86.c | 15 +++- sys/dev/acpi/acpidebug.c | 5 +- sys/dev/acpi/acpidmar.c | 6 +- sys/dev/acpi/acpidmar.h | 7 +- sys/dev/acpi/acpiec.c | 16 +++- sys/dev/acpi/acpivar.h | 3 +- sys/dev/acpi/dsdt.c | 8 +- sys/dev/ic/aic7xxx_openbsd.h | 46 +++++----- sys/dev/ic/ami.c | 5 +- sys/dev/ic/bt463.c | 23 +++-- sys/dev/ic/iosf.c | 5 +- sys/dev/ic/rtwn.c | 5 +- sys/dev/isa/ess_isapnp.c | 5 +- sys/dev/mii/eephy.c | 5 +- sys/dev/mii/xmphy.c | 5 +- sys/dev/pci/bktr/bktr_core.c | 8 +- sys/dev/pci/if_bnxt.c | 5 +- sys/dev/pci/if_em_hw.c | 14 +-- sys/dev/pci/if_iwx.c | 5 +- sys/dev/pci/if_sk.c | 5 +- sys/dev/pci/virtio_pci.c | 6 +- sys/dev/pci/yds.c | 21 +++-- sys/dev/pv/if_vio.c | 5 +- sys/dev/pv/vioblk.c | 5 +- sys/dev/pv/viocon.c | 5 +- sys/dev/pv/viornd.c | 6 +- sys/dev/wscons/wsmouse.c | 5 +- sys/kern/kern_malloc.c | 5 +- sys/net/if_pppoe.c | 5 +- sys/nfs/nfs_syscalls.c | 5 +- usr.sbin/bgpd/rde_prefix.c | 5 +- 43 files changed, 307 insertions(+), 186 deletions(-) diff --git a/lib/libssl/Makefile b/lib/libssl/Makefile index 38e5ba30e..a2b710922 100644 --- a/lib/libssl/Makefile +++ b/lib/libssl/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.81 2023/11/22 15:55:28 tb Exp $ +# $OpenBSD: Makefile,v 1.82 2024/06/25 14:10:45 jsing Exp $ .include .ifndef NOMAN @@ -23,6 +23,7 @@ CFLAGS+= -DLIBRESSL_NAMESPACE CFLAGS+= -DTLS13_DEBUG .endif CFLAGS+= -I${.CURDIR} +CFLAGS+= -I${.CURDIR}/../libcrypto CFLAGS+= -I${.CURDIR}/../libcrypto/hidden CFLAGS+= -I${.CURDIR}/../libcrypto/bio CFLAGS+= -I${.CURDIR}/hidden diff --git a/lib/libssl/ssl_local.h b/lib/libssl/ssl_local.h index eeef569fa..db102212a 100644 --- a/lib/libssl/ssl_local.h +++ b/lib/libssl/ssl_local.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ssl_local.h,v 1.16 2024/05/19 07:12:50 jsg Exp $ */ +/* $OpenBSD: ssl_local.h,v 1.17 2024/06/25 14:10:45 jsing Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -167,8 +167,10 @@ __BEGIN_HIDDEN_DECLS +#ifndef CTASSERT #define CTASSERT(x) extern char _ctassert[(x) ? 1 : -1 ] \ __attribute__((__unused__)) +#endif #ifndef LIBRESSL_HAS_DTLS1_2 #define LIBRESSL_HAS_DTLS1_2 diff --git a/lib/libssl/ssl_srvr.c b/lib/libssl/ssl_srvr.c index 6d61a4e4f..e9f14dc61 100644 --- a/lib/libssl/ssl_srvr.c +++ b/lib/libssl/ssl_srvr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssl_srvr.c,v 1.160 2024/02/03 17:39:17 tb Exp $ */ +/* $OpenBSD: ssl_srvr.c,v 1.161 2024/06/25 14:10:45 jsing Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -163,6 +163,7 @@ #include #include "bytestring.h" +#include "crypto_internal.h" #include "dtls_local.h" #include "ssl_local.h" #include "ssl_sigalgs.h" @@ -1621,98 +1622,104 @@ ssl3_send_certificate_request(SSL *s) static int ssl3_get_client_kex_rsa(SSL *s, CBS *cbs) { - unsigned char fakekey[SSL_MAX_MASTER_KEY_LENGTH]; - unsigned char *pms = NULL; - unsigned char *p; + uint8_t fakepms[SSL_MAX_MASTER_KEY_LENGTH]; + uint8_t *pms = NULL; size_t pms_len = 0; + size_t pad_len; EVP_PKEY *pkey = NULL; RSA *rsa = NULL; CBS enc_pms; int decrypt_len; - int al = -1; + uint8_t mask; + size_t i; + int valid = 1; + int ret = 0; - arc4random_buf(fakekey, sizeof(fakekey)); + /* + * Handle key exchange in the form of an RSA-Encrypted Premaster Secret + * Message. See RFC 5246, section 7.4.7.1. + */ - fakekey[0] = s->s3->hs.peer_legacy_version >> 8; - fakekey[1] = s->s3->hs.peer_legacy_version & 0xff; + arc4random_buf(fakepms, sizeof(fakepms)); + + fakepms[0] = s->s3->hs.peer_legacy_version >> 8; + fakepms[1] = s->s3->hs.peer_legacy_version & 0xff; pkey = s->cert->pkeys[SSL_PKEY_RSA].privatekey; if (pkey == NULL || (rsa = EVP_PKEY_get0_RSA(pkey)) == NULL) { - al = SSL_AD_HANDSHAKE_FAILURE; SSLerror(s, SSL_R_MISSING_RSA_CERTIFICATE); - goto fatal_err; + ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_HANDSHAKE_FAILURE); + goto err; } + /* + * The minimum size of an encrypted premaster secret is 11 bytes of + * padding (00 02 <8 or more non-zero bytes> 00) (RFC 8017, section + * 9.2) and 48 bytes of premaster secret (RFC 5246, section 7.4.7.1). + * This means an RSA key size of at least 472 bits. + */ pms_len = RSA_size(rsa); - if (pms_len < SSL_MAX_MASTER_KEY_LENGTH) - goto err; - if ((pms = malloc(pms_len)) == NULL) - goto err; - p = pms; - - if (!CBS_get_u16_length_prefixed(cbs, &enc_pms)) - goto decode_err; - if (CBS_len(cbs) != 0 || CBS_len(&enc_pms) != RSA_size(rsa)) { - SSLerror(s, SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG); + if (pms_len < 11 + SSL_MAX_MASTER_KEY_LENGTH) { + SSLerror(s, SSL_R_DECRYPTION_FAILED); + ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_DECRYPT_ERROR); goto err; } + pad_len = pms_len - SSL_MAX_MASTER_KEY_LENGTH; + + if (!CBS_get_u16_length_prefixed(cbs, &enc_pms)) { + SSLerror(s, SSL_R_BAD_PACKET_LENGTH); + ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR); + goto err; + } + if (CBS_len(&enc_pms) != pms_len || CBS_len(cbs) != 0) { + SSLerror(s, SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG); + ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_DECODE_ERROR); + goto err; + } + + if ((pms = calloc(1, pms_len)) == NULL) + goto err; decrypt_len = RSA_private_decrypt(CBS_len(&enc_pms), CBS_data(&enc_pms), - pms, rsa, RSA_PKCS1_PADDING); + pms, rsa, RSA_NO_PADDING); - ERR_clear_error(); - - if (decrypt_len != SSL_MAX_MASTER_KEY_LENGTH) { - al = SSL_AD_DECODE_ERROR; - /* SSLerror(s, SSL_R_BAD_RSA_DECRYPT); */ + if (decrypt_len != pms_len) { + SSLerror(s, SSL_R_DECRYPTION_FAILED); + ssl3_send_alert(s, SSL3_AL_FATAL, SSL_AD_DECRYPT_ERROR); + goto err; } - if ((al == -1) && !((pms[0] == (s->s3->hs.peer_legacy_version >> 8)) && - (pms[1] == (s->s3->hs.peer_legacy_version & 0xff)))) { - /* - * The premaster secret must contain the same version number - * as the ClientHello to detect version rollback attacks - * (strangely, the protocol does not offer such protection for - * DH ciphersuites). - * - * The Klima-Pokorny-Rosa extension of Bleichenbacher's attack - * (http://eprint.iacr.org/2003/052/) exploits the version - * number check as a "bad version oracle" -- an alert would - * reveal that the plaintext corresponding to some ciphertext - * made up by the adversary is properly formatted except that - * the version number is wrong. To avoid such attacks, we should - * treat this just like any other decryption error. - */ - al = SSL_AD_DECODE_ERROR; - /* SSLerror(s, SSL_R_BAD_PROTOCOL_VERSION_NUMBER); */ - } + /* + * All processing from here on needs to avoid leaking any information + * about the decrypted content, in order to prevent oracle attacks and + * minimise timing attacks. + */ - if (al != -1) { - /* - * Some decryption failure -- use random value instead - * as countermeasure against Bleichenbacher's attack - * on PKCS #1 v1.5 RSA padding (see RFC 2246, - * section 7.4.7.1). - */ - p = fakekey; - } + /* Check padding - 00 02 <8 or more non-zero bytes> 00 */ + valid &= crypto_ct_eq_u8(pms[0], 0x00); + valid &= crypto_ct_eq_u8(pms[1], 0x02); + for (i = 2; i < pad_len - 1; i++) + valid &= crypto_ct_ne_u8(pms[i], 0x00); + valid &= crypto_ct_eq_u8(pms[pad_len - 1], 0x00); - if (!tls12_derive_master_secret(s, p, SSL_MAX_MASTER_KEY_LENGTH)) + /* Ensure client version in premaster secret matches ClientHello version. */ + valid &= crypto_ct_eq_u8(pms[pad_len + 0], s->s3->hs.peer_legacy_version >> 8); + valid &= crypto_ct_eq_u8(pms[pad_len + 1], s->s3->hs.peer_legacy_version & 0xff); + + /* Use the premaster secret if padding is correct, if not use the fake. */ + mask = crypto_ct_eq_mask_u8(valid, 1); + for (i = 0; i < SSL_MAX_MASTER_KEY_LENGTH; i++) + pms[i] = (pms[pad_len + i] & mask) | (fakepms[i] & ~mask); + + if (!tls12_derive_master_secret(s, pms, SSL_MAX_MASTER_KEY_LENGTH)) goto err; - freezero(pms, pms_len); + ret = 1; - return 1; - - decode_err: - al = SSL_AD_DECODE_ERROR; - SSLerror(s, SSL_R_BAD_PACKET_LENGTH); - fatal_err: - ssl3_send_alert(s, SSL3_AL_FATAL, al); err: freezero(pms, pms_len); - return 0; + return ret; } static int diff --git a/lib/libssl/ssl_tlsext.c b/lib/libssl/ssl_tlsext.c index 62bb3d737..64f82b7df 100644 --- a/lib/libssl/ssl_tlsext.c +++ b/lib/libssl/ssl_tlsext.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssl_tlsext.c,v 1.150 2024/06/06 16:13:12 tb Exp $ */ +/* $OpenBSD: ssl_tlsext.c,v 1.151 2024/06/25 05:46:48 tb Exp $ */ /* * Copyright (c) 2016, 2017, 2019 Joel Sing * Copyright (c) 2017 Doug Hogan @@ -2427,7 +2427,7 @@ tlsext_randomize_build_order(SSL *s) s->tlsext_build_order[N_TLS_EXTENSIONS - 1] = psk_ext; /* Fisher-Yates shuffle with PSK fixed. */ - for (idx = 0; idx < psk_idx; idx++) { + for (idx = 0; idx < N_TLS_EXTENSIONS - 1; idx++) { new_idx = arc4random_uniform(idx + 1); s->tlsext_build_order[idx] = s->tlsext_build_order[new_idx]; s->tlsext_build_order[new_idx] = &tls_extensions[idx]; diff --git a/sys/arch/amd64/amd64/intr.c b/sys/arch/amd64/amd64/intr.c index 96f5d4ee9..2e630d34a 100644 --- a/sys/arch/amd64/amd64/intr.c +++ b/sys/arch/amd64/amd64/intr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: intr.c,v 1.60 2024/06/15 18:01:44 kettenis Exp $ */ +/* $OpenBSD: intr.c,v 1.61 2024/06/25 12:02:48 kettenis Exp $ */ /* $NetBSD: intr.c,v 1.3 2003/03/03 22:16:20 fvdl Exp $ */ /* @@ -74,6 +74,7 @@ struct pic softintr_pic = { }; int intr_suspended; +struct intrhand *intr_nowake; /* * Fill in default interrupt table (in case of spurious interrupt @@ -537,8 +538,10 @@ intr_handler(struct intrframe *frame, struct intrhand *ih) * We may not be able to mask MSIs, so block non-wakeup * interrupts while we're suspended. */ - if (intr_suspended && (ih->ih_flags & IPL_WAKEUP) == 0) + if (intr_suspended && (ih->ih_flags & IPL_WAKEUP) == 0) { + intr_nowake = ih; return 0; + } #ifdef MULTIPROCESSOR if (ih->ih_flags & IPL_MPSAFE) @@ -749,6 +752,13 @@ intr_disable_wakeup(void) if (pic->pic_hwunmask) pic->pic_hwunmask(pic, pin); } + + if (intr_nowake) { + printf("last non-wakeup interrupt: irq%d/%s\n", + *(int *)intr_nowake->ih_count.ec_data, + intr_nowake->ih_count.ec_name); + intr_nowake = NULL; + } } #endif diff --git a/sys/arch/amd64/amd64/machdep.c b/sys/arch/amd64/amd64/machdep.c index 35cea0b58..66cdafb5e 100644 --- a/sys/arch/amd64/amd64/machdep.c +++ b/sys/arch/amd64/amd64/machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: machdep.c,v 1.294 2024/06/07 16:53:35 kettenis Exp $ */ +/* $OpenBSD: machdep.c,v 1.295 2024/06/26 01:40:49 jsg Exp $ */ /* $NetBSD: machdep.c,v 1.3 2003/05/07 22:58:18 fvdl Exp $ */ /*- @@ -1294,7 +1294,8 @@ set_sys_segment(struct sys_segment_descriptor *sd, void *base, size_t limit, sd->sd_hibase = (u_int64_t)base >> 24; } -void cpu_init_idt(void) +void +cpu_init_idt(void) { struct region_descriptor region; diff --git a/sys/arch/amd64/amd64/vmm_machdep.c b/sys/arch/amd64/amd64/vmm_machdep.c index 9487ed98f..f150569d9 100644 --- a/sys/arch/amd64/amd64/vmm_machdep.c +++ b/sys/arch/amd64/amd64/vmm_machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vmm_machdep.c,v 1.27 2024/05/13 01:15:50 jsg Exp $ */ +/* $OpenBSD: vmm_machdep.c,v 1.28 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2014 Mike Larkin * @@ -8370,7 +8370,8 @@ vmm_decode_perf_status_value(uint64_t val) DPRINTF("(pstate ratio = 0x%llx)\n", (val & 0xffff)); } -void vmm_decode_perf_ctl_value(uint64_t val) +void +vmm_decode_perf_ctl_value(uint64_t val) { DPRINTF("(%s ", (val & PERF_CTL_TURBO) ? "TURBO" : "turbo"); DPRINTF("pstate req = 0x%llx)\n", (val & 0xfffF)); diff --git a/sys/arch/armv7/armv7/intr.c b/sys/arch/armv7/armv7/intr.c index 96bf04bbf..225178317 100644 --- a/sys/arch/armv7/armv7/intr.c +++ b/sys/arch/armv7/armv7/intr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: intr.c,v 1.21 2022/07/27 20:26:17 kettenis Exp $ */ +/* $OpenBSD: intr.c,v 1.22 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2011 Dale Rahn * @@ -72,16 +72,21 @@ arm_dflt_intr(void *frame) } -void *arm_intr_establish(int irqno, int level, int (*func)(void *), +void * +arm_intr_establish(int irqno, int level, int (*func)(void *), void *cookie, char *name) { return arm_intr_func.intr_establish(irqno, level, NULL, func, cookie, name); } -void arm_intr_disestablish(void *cookie) + +void +arm_intr_disestablish(void *cookie) { arm_intr_func.intr_disestablish(cookie); } -const char *arm_intr_string(void *cookie) + +const char * +arm_intr_string(void *cookie) { return arm_intr_func.intr_string(cookie); } @@ -657,13 +662,15 @@ arm_dflt_setipl(int newcpl) ci->ci_cpl = newcpl; } -void *arm_dflt_intr_establish(int irqno, int level, struct cpu_info *ci, +void * +arm_dflt_intr_establish(int irqno, int level, struct cpu_info *ci, int (*func)(void *), void *cookie, char *name) { panic("arm_dflt_intr_establish called"); } -void arm_dflt_intr_disestablish(void *cookie) +void +arm_dflt_intr_disestablish(void *cookie) { panic("arm_dflt_intr_disestablish called"); } @@ -721,7 +728,8 @@ arm_do_pending_intr(int pcpl) restore_interrupts(oldirqstate); } -void arm_set_intr_handler(int (*raise)(int), int (*lower)(int), +void +arm_set_intr_handler(int (*raise)(int), int (*lower)(int), void (*x)(int), void (*setipl)(int), void *(*intr_establish)(int irqno, int level, struct cpu_info *ci, int (*func)(void *), void *cookie, char *name), diff --git a/sys/arch/armv7/omap/intc.c b/sys/arch/armv7/omap/intc.c index feb145ade..8d0952e60 100644 --- a/sys/arch/armv7/omap/intc.c +++ b/sys/arch/armv7/omap/intc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: intc.c,v 1.14 2024/04/29 12:42:06 jsg Exp $ */ +/* $OpenBSD: intc.c,v 1.15 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2007,2009 Dale Rahn * @@ -418,7 +418,8 @@ intc_tst(void *a) } void intc_test(void); -void intc_test(void) +void +intc_test(void) { void * ih; printf("about to register handler\n"); diff --git a/sys/arch/armv7/omap/omusbtll.c b/sys/arch/armv7/omap/omusbtll.c index ada7b36c3..937dec4f8 100644 --- a/sys/arch/armv7/omap/omusbtll.c +++ b/sys/arch/armv7/omap/omusbtll.c @@ -1,4 +1,4 @@ -/* $OpenBSD: omusbtll.c,v 1.5 2021/10/24 17:52:28 mpi Exp $ */ +/* $OpenBSD: omusbtll.c,v 1.6 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2010 Dale Rahn * @@ -132,8 +132,8 @@ omusbtll_attach(struct device *parent, struct device *self, void *args) omusbtll_init(0x3); } - -void omusbtll_init(uint32_t channel_mask) +void +omusbtll_init(uint32_t channel_mask) { int i; uint32_t val; diff --git a/sys/arch/i386/stand/libsa/machdep.c b/sys/arch/i386/stand/libsa/machdep.c index e65d85e5e..12fdf7366 100644 --- a/sys/arch/i386/stand/libsa/machdep.c +++ b/sys/arch/i386/stand/libsa/machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: machdep.c,v 1.40 2022/07/07 00:56:47 daniel Exp $ */ +/* $OpenBSD: machdep.c,v 1.41 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2004 Tom Cosgrove @@ -112,7 +112,8 @@ machdep(void) } } -int check_skip_conf(void) +int +check_skip_conf(void) { /* Return non-zero (skip boot.conf) if Control "shift" key down */ #ifndef EFIBOOT diff --git a/sys/dev/acpi/acpi.c b/sys/dev/acpi/acpi.c index ae1e37558..b7b0fd59b 100644 --- a/sys/dev/acpi/acpi.c +++ b/sys/dev/acpi/acpi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: acpi.c,v 1.431 2024/06/11 17:35:26 kettenis Exp $ */ +/* $OpenBSD: acpi.c,v 1.432 2024/06/25 11:57:10 kettenis Exp $ */ /* * Copyright (c) 2005 Thorsten Lockert * Copyright (c) 2005 Jordan Hargrave @@ -2115,6 +2115,11 @@ acpi_interrupt(void *arg) if (!(en & sts & (1L << jdx))) continue; + if (cpu_suspended) { + cpu_suspended = 0; + sc->sc_wakegpe = idx + jdx; + } + /* Signal this GPE */ gpe = idx + jdx; sc->gpe_table[gpe].active = 1; @@ -2149,8 +2154,10 @@ acpi_interrupt(void *arg) ACPI_PM1_PWRBTN_STS); sts &= ~ACPI_PM1_PWRBTN_STS; - if (cpu_suspended) + if (cpu_suspended) { cpu_suspended = 0; + sc->sc_wakegpe = -1; + } acpi_addtask(sc, acpi_pbtn_task, sc, 0); } @@ -2162,6 +2169,11 @@ acpi_interrupt(void *arg) ACPI_PM1_SLPBTN_STS); sts &= ~ACPI_PM1_SLPBTN_STS; + if (cpu_suspended) { + cpu_suspended = 0; + sc->sc_wakegpe = -2; + } + acpi_addtask(sc, acpi_sbtn_task, sc, 0); } if (sts) { diff --git a/sys/dev/acpi/acpi_x86.c b/sys/dev/acpi/acpi_x86.c index dc7467cdd..f9ac40b30 100644 --- a/sys/dev/acpi/acpi_x86.c +++ b/sys/dev/acpi/acpi_x86.c @@ -1,4 +1,4 @@ -/* $OpenBSD: acpi_x86.c,v 1.21 2024/05/29 12:21:33 kettenis Exp $ */ +/* $OpenBSD: acpi_x86.c,v 1.22 2024/06/25 11:57:10 kettenis Exp $ */ /* * Copyright (c) 2005 Thorsten Lockert * Copyright (c) 2005 Jordan Hargrave @@ -147,6 +147,19 @@ suspend_finish(void *v) { struct acpi_softc *sc = v; + printf("wakeup event: "); + switch (sc->sc_wakegpe) { + case -1: + printf("PWRBTN\n"); + break; + case -2: + printf("SLPTN\n"); + break; + default: + printf("GPE 0x%x\n", sc->sc_wakegpe); + break; + } + acpi_record_event(sc, APM_NORMAL_RESUME); acpi_indicator(sc, ACPI_SST_WORKING); diff --git a/sys/dev/acpi/acpidebug.c b/sys/dev/acpi/acpidebug.c index 673371d6a..49ca72e41 100644 --- a/sys/dev/acpi/acpidebug.c +++ b/sys/dev/acpi/acpidebug.c @@ -1,4 +1,4 @@ -/* $OpenBSD: acpidebug.c,v 1.34 2024/05/13 01:15:50 jsg Exp $ */ +/* $OpenBSD: acpidebug.c,v 1.35 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2006 Marco Peereboom * @@ -289,7 +289,8 @@ db_acpi_showval(db_expr_t addr, int haddr, db_expr_t count, char *modif) db_printf("Not a valid value\n"); } -void db_disprint(void *arg, const char *fmt, ...) +void +db_disprint(void *arg, const char *fmt, ...) { va_list ap; diff --git a/sys/dev/acpi/acpidmar.c b/sys/dev/acpi/acpidmar.c index 1a7892783..6ca883528 100644 --- a/sys/dev/acpi/acpidmar.c +++ b/sys/dev/acpi/acpidmar.c @@ -223,12 +223,14 @@ struct iommu_softc { paddr_t evt_tblp; }; -static inline int iommu_bad(struct iommu_softc *sc) +static inline int +iommu_bad(struct iommu_softc *sc) { return (sc->flags & IOMMU_FLAGS_BAD); } -static inline int iommu_enabled(struct iommu_softc *sc) +static inline int +iommu_enabled(struct iommu_softc *sc) { if (sc->dte) { return 1; diff --git a/sys/dev/acpi/acpidmar.h b/sys/dev/acpi/acpidmar.h index 61d02248a..0c8b128b3 100644 --- a/sys/dev/acpi/acpidmar.h +++ b/sys/dev/acpi/acpidmar.h @@ -230,12 +230,15 @@ #define IQA_QS_32K 7 /* 32768 */ /* Read-Modify-Write helpers */ -static inline void iommu_rmw32(void *ov, uint32_t mask, uint32_t shift, uint32_t nv) +static inline void +iommu_rmw32(void *ov, uint32_t mask, uint32_t shift, uint32_t nv) { *(uint32_t *)ov &= ~(mask << shift); *(uint32_t *)ov |= (nv & mask) << shift; } -static inline void iommu_rmw64(void *ov, uint32_t mask, uint32_t shift, uint64_t nv) + +static inline void +iommu_rmw64(void *ov, uint32_t mask, uint32_t shift, uint64_t nv) { *(uint64_t *)ov &= ~(mask << shift); *(uint64_t *)ov |= (nv & mask) << shift; diff --git a/sys/dev/acpi/acpiec.c b/sys/dev/acpi/acpiec.c index e6b362941..35075dc9f 100644 --- a/sys/dev/acpi/acpiec.c +++ b/sys/dev/acpi/acpiec.c @@ -1,4 +1,4 @@ -/* $OpenBSD: acpiec.c,v 1.65 2022/08/10 16:58:16 patrick Exp $ */ +/* $OpenBSD: acpiec.c,v 1.66 2024/06/25 11:57:10 kettenis Exp $ */ /* * Copyright (c) 2006 Can Erkin Acar * @@ -274,6 +274,9 @@ acpiec_attach(struct device *parent, struct device *self, void *aux) { struct acpiec_softc *sc = (struct acpiec_softc *)self; struct acpi_attach_args *aa = aux; +#ifndef SMALL_KERNEL + struct acpi_wakeq *wq; +#endif struct aml_value res; int64_t st; @@ -318,6 +321,17 @@ acpiec_attach(struct device *parent, struct device *self, void *aux) #ifndef SMALL_KERNEL acpi_set_gpehandler(sc->sc_acpi, sc->sc_gpe, acpiec_gpehandler, sc, GPE_EDGE); + + /* + * On many machines the EC is not listed as a wakeup device + * but is necessary to wake up from S0i. + */ + wq = malloc(sizeof(struct acpi_wakeq), M_DEVBUF, M_WAITOK | M_ZERO); + wq->q_node = sc->sc_devnode; + wq->q_gpe = sc->sc_gpe; + wq->q_state = ACPI_STATE_S0; + wq->q_enabled = 1; + SIMPLEQ_INSERT_TAIL(&sc->sc_acpi->sc_wakedevs, wq, q_next); #endif if (aml_evalname(sc->sc_acpi, sc->sc_devnode, "_GLK", 0, NULL, &res)) diff --git a/sys/dev/acpi/acpivar.h b/sys/dev/acpi/acpivar.h index b29c9a6b3..ac89edbdc 100644 --- a/sys/dev/acpi/acpivar.h +++ b/sys/dev/acpi/acpivar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: acpivar.h,v 1.127 2024/05/13 19:56:37 kettenis Exp $ */ +/* $OpenBSD: acpivar.h,v 1.128 2024/06/25 11:57:10 kettenis Exp $ */ /* * Copyright (c) 2005 Thorsten Lockert * @@ -253,6 +253,7 @@ struct acpi_softc { int slp_typb; } sc_sleeptype[6]; int sc_lastgpe; + int sc_wakegpe; struct gpe_block *gpe_table; diff --git a/sys/dev/acpi/dsdt.c b/sys/dev/acpi/dsdt.c index 3f75b2de8..aeb114da3 100644 --- a/sys/dev/acpi/dsdt.c +++ b/sys/dev/acpi/dsdt.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dsdt.c,v 1.268 2024/05/14 08:26:13 jsg Exp $ */ +/* $OpenBSD: dsdt.c,v 1.269 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2005 Jordan Hargrave * @@ -251,7 +251,8 @@ struct aml_opcode aml_table[] = { { AMLOP_COPYOBJECT, "CopyObject", "tS", }, }; -int aml_pc(uint8_t *src) +int +aml_pc(uint8_t *src) { return src - aml_root.start; } @@ -1668,7 +1669,8 @@ aml_foreachpkg(struct aml_value *pkg, int start, */ int aml_fixup_node(struct aml_node *, void *); -int aml_fixup_node(struct aml_node *node, void *arg) +int +aml_fixup_node(struct aml_node *node, void *arg) { struct aml_value *val = arg; int i; diff --git a/sys/dev/ic/aic7xxx_openbsd.h b/sys/dev/ic/aic7xxx_openbsd.h index 061a1b54c..54a7b03b6 100644 --- a/sys/dev/ic/aic7xxx_openbsd.h +++ b/sys/dev/ic/aic7xxx_openbsd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: aic7xxx_openbsd.h,v 1.32 2024/05/29 00:48:15 jsg Exp $ */ +/* $OpenBSD: aic7xxx_openbsd.h,v 1.33 2024/06/26 01:40:49 jsg Exp $ */ /* $NetBSD: aic7xxx_osm.h,v 1.7 2003/11/02 11:07:44 wiz Exp $ */ /* @@ -209,20 +209,20 @@ static __inline uint32_t ahc_get_sense_bufsize(struct ahc_softc *, struct scb *); static __inline void ahc_freeze_scb(struct scb *); -static __inline -void ahc_set_transaction_status(struct scb *scb, uint32_t status) +static __inline void +ahc_set_transaction_status(struct scb *scb, uint32_t status) { scb->xs->error = status; } -static __inline -void ahc_set_scsi_status(struct scb *scb, uint32_t status) +static __inline void +ahc_set_scsi_status(struct scb *scb, uint32_t status) { scb->xs->status = status; } -static __inline -uint32_t ahc_get_transaction_status(struct scb *scb) +static __inline uint32_t +ahc_get_transaction_status(struct scb *scb) { if (scb->xs->flags & ITSDONE) return CAM_REQ_CMP; @@ -230,49 +230,49 @@ uint32_t ahc_get_transaction_status(struct scb *scb) return scb->xs->error; } -static __inline -uint32_t ahc_get_scsi_status(struct scb *scb) +static __inline uint32_t +ahc_get_scsi_status(struct scb *scb) { return (scb->xs->status); } -static __inline -void ahc_set_transaction_tag(struct scb *scb, int enabled, u_int type) +static __inline void +ahc_set_transaction_tag(struct scb *scb, int enabled, u_int type) { } -static __inline -u_long ahc_get_transfer_length(struct scb *scb) +static __inline u_long +ahc_get_transfer_length(struct scb *scb) { return (scb->xs->datalen); } -static __inline -int ahc_get_transfer_dir(struct scb *scb) +static __inline int +ahc_get_transfer_dir(struct scb *scb) { return (scb->xs->flags & (SCSI_DATA_IN | SCSI_DATA_OUT)); } -static __inline -void ahc_set_residual(struct scb *scb, u_long resid) +static __inline void +ahc_set_residual(struct scb *scb, u_long resid) { scb->xs->resid = resid; } -static __inline -void ahc_set_sense_residual(struct scb *scb, u_long resid) +static __inline void +ahc_set_sense_residual(struct scb *scb, u_long resid) { scb->xs->resid = resid; } -static __inline -u_long ahc_get_residual(struct scb *scb) +static __inline u_long +ahc_get_residual(struct scb *scb) { return (scb->xs->resid); } -static __inline -int ahc_perform_autosense(struct scb *scb) +static __inline int +ahc_perform_autosense(struct scb *scb) { /* Return true for OpenBSD */ return (1); diff --git a/sys/dev/ic/ami.c b/sys/dev/ic/ami.c index 7b8ed4c48..98195eccd 100644 --- a/sys/dev/ic/ami.c +++ b/sys/dev/ic/ami.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ami.c,v 1.262 2022/04/16 19:19:58 naddy Exp $ */ +/* $OpenBSD: ami.c,v 1.263 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2001 Michael Shalayeff @@ -2277,7 +2277,8 @@ bail: return (error); } -int ami_ioctl_alarm(struct ami_softc *sc, struct bioc_alarm *ba) +int +ami_ioctl_alarm(struct ami_softc *sc, struct bioc_alarm *ba) { int error = 0; u_int8_t func, ret; diff --git a/sys/dev/ic/bt463.c b/sys/dev/ic/bt463.c index 2a56c27c4..ec3cc6cde 100644 --- a/sys/dev/ic/bt463.c +++ b/sys/dev/ic/bt463.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bt463.c,v 1.13 2014/07/08 17:19:25 deraadt Exp $ */ +/* $OpenBSD: bt463.c,v 1.14 2024/06/26 01:40:49 jsg Exp $ */ /* $NetBSD: bt463.c,v 1.2 2000/06/13 17:21:06 nathanw Exp $ */ /*- @@ -492,7 +492,8 @@ bt463_get_curcmap(rc, cursorp) */ #ifdef BT463_DEBUG -int bt463_store(void *v) +int +bt463_store(void *v) { struct bt463data *data = (struct bt463data *)v; @@ -504,7 +505,8 @@ int bt463_store(void *v) } -int bt463_readback(void *v) +int +bt463_readback(void *v) { struct bt463data *data = (struct bt463data *)v; @@ -623,7 +625,8 @@ bt463_update(p) data->changed = 0; } -int bt463_set_cursor (rc, cur) +int +bt463_set_cursor (rc, cur) struct ramdac_cookie *rc; struct wsdisplay_cursor *cur; { @@ -631,7 +634,8 @@ int bt463_set_cursor (rc, cur) return tga_builtin_set_cursor(data->cookie, cur); } -int bt463_get_cursor (rc, cur) +int +bt463_get_cursor (rc, cur) struct ramdac_cookie *rc; struct wsdisplay_cursor *cur; { @@ -639,7 +643,8 @@ int bt463_get_cursor (rc, cur) return tga_builtin_get_cursor(data->cookie, cur); } -int bt463_set_curpos (rc, cur) +int +bt463_set_curpos (rc, cur) struct ramdac_cookie *rc; struct wsdisplay_curpos *cur; { @@ -647,7 +652,8 @@ int bt463_set_curpos (rc, cur) return tga_builtin_set_curpos(data->cookie, cur); } -int bt463_get_curpos (rc, cur) +int +bt463_get_curpos (rc, cur) struct ramdac_cookie *rc; struct wsdisplay_curpos *cur; { @@ -655,7 +661,8 @@ int bt463_get_curpos (rc, cur) return tga_builtin_get_curpos(data->cookie, cur); } -int bt463_get_curmax (rc, cur) +int +bt463_get_curmax (rc, cur) struct ramdac_cookie *rc; struct wsdisplay_curpos *cur; { diff --git a/sys/dev/ic/iosf.c b/sys/dev/ic/iosf.c index 086b8f487..ab99fd6b1 100644 --- a/sys/dev/ic/iosf.c +++ b/sys/dev/ic/iosf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: iosf.c,v 1.1 2023/04/23 00:20:26 dlg Exp $ */ +/* $OpenBSD: iosf.c,v 1.2 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2023 David Gwynne @@ -253,7 +253,8 @@ iosf_mbi_punit_release(void) rw_exit_write(&iosf_lock); } -void iosf_mbi_assert_punit_acquired(void) +void +iosf_mbi_assert_punit_acquired(void) { int s; diff --git a/sys/dev/ic/rtwn.c b/sys/dev/ic/rtwn.c index b9b83bbfe..3df98b19f 100644 --- a/sys/dev/ic/rtwn.c +++ b/sys/dev/ic/rtwn.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtwn.c,v 1.57 2023/04/28 01:24:14 kevlo Exp $ */ +/* $OpenBSD: rtwn.c,v 1.58 2024/06/26 01:40:49 jsg Exp $ */ /*- * Copyright (c) 2010 Damien Bergamini @@ -857,7 +857,8 @@ rtwn_ra_init(struct rtwn_softc *sc) /* * Initialize rate adaptation in firmware. */ -int rtwn_r92c_ra_init(struct rtwn_softc *sc, u_int8_t mode, u_int32_t rates, +int +rtwn_r92c_ra_init(struct rtwn_softc *sc, u_int8_t mode, u_int32_t rates, int maxrate, uint32_t basicrates, int maxbasicrate) { struct r92c_fw_cmd_macid_cfg cmd; diff --git a/sys/dev/isa/ess_isapnp.c b/sys/dev/isa/ess_isapnp.c index 22381ecc9..7ec1ffc1f 100644 --- a/sys/dev/isa/ess_isapnp.c +++ b/sys/dev/isa/ess_isapnp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ess_isapnp.c,v 1.8 2022/04/06 18:59:28 naddy Exp $ */ +/* $OpenBSD: ess_isapnp.c,v 1.9 2024/06/26 01:40:49 jsg Exp $ */ /* $NetBSD: ess_isa.c,v 1.4 1999/03/18 20:57:11 mycroft Exp $ */ /*- @@ -63,7 +63,8 @@ ess_isapnp_probe(struct device *parent, void *match, void *aux) return 1; } -void ess_isapnp_attach(struct device *parent, struct device *self, void *aux) +void +ess_isapnp_attach(struct device *parent, struct device *self, void *aux) { struct ess_softc *sc = (void *)self; struct isa_attach_args *ia = aux; diff --git a/sys/dev/mii/eephy.c b/sys/dev/mii/eephy.c index c351d1863..1aa3f1fb1 100644 --- a/sys/dev/mii/eephy.c +++ b/sys/dev/mii/eephy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: eephy.c,v 1.65 2024/03/17 00:06:43 patrick Exp $ */ +/* $OpenBSD: eephy.c,v 1.66 2024/06/26 01:40:49 jsg Exp $ */ /* * Principal Author: Parag Patel * Copyright (c) 2001 @@ -443,7 +443,8 @@ eephy_status(struct mii_softc *sc) } #ifdef __HAVE_FDT -void eephy_fdt_reg_init(struct mii_softc *sc) +void +eephy_fdt_reg_init(struct mii_softc *sc) { uint32_t *prop, opage; int i, len; diff --git a/sys/dev/mii/xmphy.c b/sys/dev/mii/xmphy.c index fdc537ac3..a901002f3 100644 --- a/sys/dev/mii/xmphy.c +++ b/sys/dev/mii/xmphy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xmphy.c,v 1.25 2024/05/27 04:58:43 jsg Exp $ */ +/* $OpenBSD: xmphy.c,v 1.26 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2000 @@ -85,7 +85,8 @@ static const struct mii_phydesc xmphys[] = { NULL }, }; -int xmphy_probe(struct device *parent, void *match, void *aux) +int +xmphy_probe(struct device *parent, void *match, void *aux) { struct mii_attach_args *ma = aux; diff --git a/sys/dev/pci/bktr/bktr_core.c b/sys/dev/pci/bktr/bktr_core.c index a74745adc..bb2fda021 100644 --- a/sys/dev/pci/bktr/bktr_core.c +++ b/sys/dev/pci/bktr/bktr_core.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bktr_core.c,v 1.44 2024/06/22 10:22:29 jsg Exp $ */ +/* $OpenBSD: bktr_core.c,v 1.45 2024/06/26 01:40:49 jsg Exp $ */ /* $FreeBSD: src/sys/dev/bktr/bktr_core.c,v 1.114 2000/10/31 13:09:56 roger Exp $ */ /* @@ -3504,7 +3504,8 @@ set_fps( bktr_ptr_t bktr, u_short fps ) * as one would expect. */ -static u_int pixfmt_swap_flags( int pixfmt ) +static u_int +pixfmt_swap_flags( int pixfmt ) { const struct meteor_pixfmt *pf = &pixfmt_table[ pixfmt ].public; u_int swapf = 0; @@ -3541,7 +3542,8 @@ static u_int pixfmt_swap_flags( int pixfmt ) * our pixfmt_table indices. */ -static int oformat_meteor_to_bt( u_int format ) +static int +oformat_meteor_to_bt( u_int format ) { int i; const struct meteor_pixfmt *pf1, *pf2; diff --git a/sys/dev/pci/if_bnxt.c b/sys/dev/pci/if_bnxt.c index b519fa599..ac2e44a63 100644 --- a/sys/dev/pci/if_bnxt.c +++ b/sys/dev/pci/if_bnxt.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_bnxt.c,v 1.50 2024/05/24 06:02:53 jsg Exp $ */ +/* $OpenBSD: if_bnxt.c,v 1.51 2024/06/26 01:40:49 jsg Exp $ */ /*- * Broadcom NetXtreme-C/E network driver. * @@ -3502,7 +3502,8 @@ _bnxt_hwrm_set_async_event_bit(struct hwrm_func_drv_rgtr_input *req, int bit) req->async_event_fwd[bit/32] |= (1 << (bit % 32)); } -int bnxt_hwrm_func_rgtr_async_events(struct bnxt_softc *softc) +int +bnxt_hwrm_func_rgtr_async_events(struct bnxt_softc *softc) { struct hwrm_func_drv_rgtr_input req = {0}; int events[] = { diff --git a/sys/dev/pci/if_em_hw.c b/sys/dev/pci/if_em_hw.c index fbce5bdce..04942a614 100644 --- a/sys/dev/pci/if_em_hw.c +++ b/sys/dev/pci/if_em_hw.c @@ -31,7 +31,7 @@ *******************************************************************************/ -/* $OpenBSD: if_em_hw.c,v 1.121 2024/05/24 06:02:53 jsg Exp $ */ +/* $OpenBSD: if_em_hw.c,v 1.122 2024/06/26 01:40:49 jsg Exp $ */ /* * if_em_hw.c Shared functions for accessing and configuring the MAC */ @@ -5515,7 +5515,8 @@ em_write_kmrn_reg(struct em_hw *hw, uint32_t reg_addr, uint16_t data) * Called to determine if the I2C pins are being used for I2C or as an * external MDIO interface since the two options are mutually exclusive. **/ -int em_sgmii_uses_mdio_82575(struct em_hw *hw) +int +em_sgmii_uses_mdio_82575(struct em_hw *hw) { uint32_t reg = 0; int ext_mdio = 0; @@ -5549,7 +5550,8 @@ int em_sgmii_uses_mdio_82575(struct em_hw *hw) * Reads the PHY register at offset using the i2c interface and stores the * retrieved information in data. **/ -int32_t em_read_phy_reg_i2c(struct em_hw *hw, uint32_t offset, uint16_t *data) +int32_t +em_read_phy_reg_i2c(struct em_hw *hw, uint32_t offset, uint16_t *data) { uint32_t i, i2ccmd = 0; @@ -5595,7 +5597,8 @@ int32_t em_read_phy_reg_i2c(struct em_hw *hw, uint32_t offset, uint16_t *data) * * Writes the data to PHY register at the offset using the i2c interface. **/ -int32_t em_write_phy_reg_i2c(struct em_hw *hw, uint32_t offset, uint16_t data) +int32_t +em_write_phy_reg_i2c(struct em_hw *hw, uint32_t offset, uint16_t data) { uint32_t i, i2ccmd = 0; uint16_t phy_data_swapped; @@ -5655,7 +5658,8 @@ int32_t em_write_phy_reg_i2c(struct em_hw *hw, uint32_t offset, uint16_t data) * E1000_I2CCMD_SFP_DIAG_ADDR() for SFP diagnostics parameters * access **/ -int32_t em_read_sfp_data_byte(struct em_hw *hw, uint16_t offset, uint8_t *data) +int32_t +em_read_sfp_data_byte(struct em_hw *hw, uint16_t offset, uint8_t *data) { uint32_t i = 0; uint32_t i2ccmd = 0; diff --git a/sys/dev/pci/if_iwx.c b/sys/dev/pci/if_iwx.c index b69262077..f3c693a83 100644 --- a/sys/dev/pci/if_iwx.c +++ b/sys/dev/pci/if_iwx.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_iwx.c,v 1.186 2024/05/24 06:02:53 jsg Exp $ */ +/* $OpenBSD: if_iwx.c,v 1.187 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2014, 2016 genua gmbh @@ -597,7 +597,8 @@ iwx_ctxt_info_alloc_dma(struct iwx_softc *sc, return 0; } -void iwx_ctxt_info_free_paging(struct iwx_softc *sc) +void +iwx_ctxt_info_free_paging(struct iwx_softc *sc) { struct iwx_self_init_dram *dram = &sc->init_dram; int i; diff --git a/sys/dev/pci/if_sk.c b/sys/dev/pci/if_sk.c index 54c5a3e35..880d2ab6f 100644 --- a/sys/dev/pci/if_sk.c +++ b/sys/dev/pci/if_sk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_sk.c,v 1.196 2024/05/24 06:02:57 jsg Exp $ */ +/* $OpenBSD: if_sk.c,v 1.197 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 @@ -2083,7 +2083,8 @@ sk_init_xmac(struct sk_if_softc *sc_if) sc_if->sk_link = 1; } -void sk_init_yukon(struct sk_if_softc *sc_if) +void +sk_init_yukon(struct sk_if_softc *sc_if) { u_int32_t phy, v; u_int16_t reg; diff --git a/sys/dev/pci/virtio_pci.c b/sys/dev/pci/virtio_pci.c index a330a49fd..f069df688 100644 --- a/sys/dev/pci/virtio_pci.c +++ b/sys/dev/pci/virtio_pci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: virtio_pci.c,v 1.37 2024/05/17 16:37:10 sf Exp $ */ +/* $OpenBSD: virtio_pci.c,v 1.38 2024/06/26 01:40:49 jsg Exp $ */ /* $NetBSD: virtio.c,v 1.3 2011/11/02 23:05:52 njoly Exp $ */ /* @@ -162,8 +162,8 @@ struct virtio_ops virtio_pci_ops = { virtio_pci_poll_intr, }; -static inline -uint64_t _cread(struct virtio_pci_softc *sc, unsigned off, unsigned size) +static inline uint64_t +_cread(struct virtio_pci_softc *sc, unsigned off, unsigned size) { uint64_t val; switch (size) { diff --git a/sys/dev/pci/yds.c b/sys/dev/pci/yds.c index 016097a41..67feff2bf 100644 --- a/sys/dev/pci/yds.c +++ b/sys/dev/pci/yds.c @@ -1,4 +1,4 @@ -/* $OpenBSD: yds.c,v 1.64 2024/05/24 06:02:58 jsg Exp $ */ +/* $OpenBSD: yds.c,v 1.65 2024/06/26 01:40:49 jsg Exp $ */ /* $NetBSD: yds.c,v 1.5 2001/05/21 23:55:04 minoura Exp $ */ /* @@ -107,27 +107,36 @@ void YWRITE1(struct yds_softc *sc,bus_size_t r,u_int8_t x); void YWRITE2(struct yds_softc *sc,bus_size_t r,u_int16_t x); void YWRITE4(struct yds_softc *sc,bus_size_t r,u_int32_t x); -u_int16_t YREAD2(struct yds_softc *sc,bus_size_t r) +u_int16_t +YREAD2(struct yds_softc *sc,bus_size_t r) { DPRINTFN(5, (" YREAD2(0x%lX)\n",(unsigned long)r)); return bus_space_read_2(sc->memt,sc->memh,r); } -u_int32_t YREAD4(struct yds_softc *sc,bus_size_t r) + +u_int32_t +YREAD4(struct yds_softc *sc,bus_size_t r) { DPRINTFN(5, (" YREAD4(0x%lX)\n",(unsigned long)r)); return bus_space_read_4(sc->memt,sc->memh,r); } -void YWRITE1(struct yds_softc *sc,bus_size_t r,u_int8_t x) + +void +YWRITE1(struct yds_softc *sc,bus_size_t r,u_int8_t x) { DPRINTFN(5, (" YWRITE1(0x%lX,0x%lX)\n",(unsigned long)r,(unsigned long)x)); bus_space_write_1(sc->memt,sc->memh,r,x); } -void YWRITE2(struct yds_softc *sc,bus_size_t r,u_int16_t x) + +void +YWRITE2(struct yds_softc *sc,bus_size_t r,u_int16_t x) { DPRINTFN(5, (" YWRITE2(0x%lX,0x%lX)\n",(unsigned long)r,(unsigned long)x)); bus_space_write_2(sc->memt,sc->memh,r,x); } -void YWRITE4(struct yds_softc *sc,bus_size_t r,u_int32_t x) + +void +YWRITE4(struct yds_softc *sc,bus_size_t r,u_int32_t x) { DPRINTFN(5, (" YWRITE4(0x%lX,0x%lX)\n",(unsigned long)r,(unsigned long)x)); bus_space_write_4(sc->memt,sc->memh,r,x); diff --git a/sys/dev/pv/if_vio.c b/sys/dev/pv/if_vio.c index 353e42b09..f216b83cd 100644 --- a/sys/dev/pv/if_vio.c +++ b/sys/dev/pv/if_vio.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_vio.c,v 1.40 2024/06/10 19:26:17 jan Exp $ */ +/* $OpenBSD: if_vio.c,v 1.41 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2012 Stefan Fritsch, Alexander Fiveg. @@ -524,7 +524,8 @@ vio_put_lladdr(struct arpcom *ac, struct virtio_softc *vsc) } } -static int vio_needs_reset(struct vio_softc *sc) +static int +vio_needs_reset(struct vio_softc *sc) { if (virtio_get_status(sc->sc_virtio) & VIRTIO_CONFIG_DEVICE_STATUS_DEVICE_NEEDS_RESET) { diff --git a/sys/dev/pv/vioblk.c b/sys/dev/pv/vioblk.c index 5b657fab3..6b5f56cd7 100644 --- a/sys/dev/pv/vioblk.c +++ b/sys/dev/pv/vioblk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vioblk.c,v 1.38 2024/05/24 10:05:55 jsg Exp $ */ +/* $OpenBSD: vioblk.c,v 1.39 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2012 Stefan Fritsch. @@ -150,7 +150,8 @@ const struct scsi_adapter vioblk_switch = { vioblk_scsi_cmd, NULL, NULL, NULL, NULL }; -int vioblk_match(struct device *parent, void *match, void *aux) +int +vioblk_match(struct device *parent, void *match, void *aux) { struct virtio_softc *va = aux; if (va->sc_childdevid == PCI_PRODUCT_VIRTIO_BLOCK) diff --git a/sys/dev/pv/viocon.c b/sys/dev/pv/viocon.c index 112e317fe..e81bc9520 100644 --- a/sys/dev/pv/viocon.c +++ b/sys/dev/pv/viocon.c @@ -1,4 +1,4 @@ -/* $OpenBSD: viocon.c,v 1.11 2024/05/24 10:05:55 jsg Exp $ */ +/* $OpenBSD: viocon.c,v 1.12 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2013-2015 Stefan Fritsch @@ -159,7 +159,8 @@ dev2port(dev_t dev) return dev2sc(dev)->sc_ports[VIOCONPORT(dev)]; } -int viocon_match(struct device *parent, void *match, void *aux) +int +viocon_match(struct device *parent, void *match, void *aux) { struct virtio_softc *va = aux; if (va->sc_childdevid == PCI_PRODUCT_VIRTIO_CONSOLE) diff --git a/sys/dev/pv/viornd.c b/sys/dev/pv/viornd.c index 54c0640ec..cc652ba5e 100644 --- a/sys/dev/pv/viornd.c +++ b/sys/dev/pv/viornd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: viornd.c,v 1.8 2024/05/24 10:05:55 jsg Exp $ */ +/* $OpenBSD: viornd.c,v 1.9 2024/06/26 01:40:49 jsg Exp $ */ /* * Copyright (c) 2014 Stefan Fritsch @@ -69,8 +69,8 @@ struct cfdriver viornd_cd = { NULL, "viornd", DV_DULL }; - -int viornd_match(struct device *parent, void *match, void *aux) +int +viornd_match(struct device *parent, void *match, void *aux) { struct virtio_softc *va = aux; if (va->sc_childdevid == PCI_PRODUCT_VIRTIO_ENTROPY) diff --git a/sys/dev/wscons/wsmouse.c b/sys/dev/wscons/wsmouse.c index e0d6cd2ab..f923e6da3 100644 --- a/sys/dev/wscons/wsmouse.c +++ b/sys/dev/wscons/wsmouse.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wsmouse.c,v 1.72 2024/05/17 20:11:58 miod Exp $ */ +/* $OpenBSD: wsmouse.c,v 1.73 2024/06/26 01:40:49 jsg Exp $ */ /* $NetBSD: wsmouse.c,v 1.35 2005/02/27 00:27:52 perry Exp $ */ /* @@ -1622,7 +1622,8 @@ wsmouse_set_mode(struct device *sc, int mode) return (-1); } -struct wsmousehw *wsmouse_get_hw(struct device *sc) +struct wsmousehw * +wsmouse_get_hw(struct device *sc) { return &((struct wsmouse_softc *) sc)->sc_input.hw; } diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index a2104b989..dd90a719f 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_malloc.c,v 1.151 2023/12/14 14:04:57 claudio Exp $ */ +/* $OpenBSD: kern_malloc.c,v 1.152 2024/06/26 01:40:49 jsg Exp $ */ /* $NetBSD: kern_malloc.c,v 1.15.4.2 1996/06/13 17:10:56 cgd Exp $ */ /* @@ -54,7 +54,8 @@ static #ifndef SMALL_KERNEL __inline__ #endif -long BUCKETINDX(size_t sz) +long +BUCKETINDX(size_t sz) { long b, d; diff --git a/sys/net/if_pppoe.c b/sys/net/if_pppoe.c index 7b5d260ea..ba194a5fe 100644 --- a/sys/net/if_pppoe.c +++ b/sys/net/if_pppoe.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_pppoe.c,v 1.83 2022/07/14 11:03:15 mvs Exp $ */ +/* $OpenBSD: if_pppoe.c,v 1.84 2024/06/26 01:40:49 jsg Exp $ */ /* $NetBSD: if_pppoe.c,v 1.51 2003/11/28 08:56:48 keihan Exp $ */ /* @@ -188,7 +188,8 @@ struct mbuf_queue pppoediscinq = MBUF_QUEUE_INITIALIZER( struct mbuf_queue pppoeinq = MBUF_QUEUE_INITIALIZER( IFQ_MAXLEN, IPL_SOFTNET); -void pppoeintr(void) +void +pppoeintr(void) { struct mbuf_list ml; struct mbuf *m; diff --git a/sys/nfs/nfs_syscalls.c b/sys/nfs/nfs_syscalls.c index 71309e420..161f33053 100644 --- a/sys/nfs/nfs_syscalls.c +++ b/sys/nfs/nfs_syscalls.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nfs_syscalls.c,v 1.126 2024/05/01 13:15:59 jsg Exp $ */ +/* $OpenBSD: nfs_syscalls.c,v 1.127 2024/06/26 01:40:49 jsg Exp $ */ /* $NetBSD: nfs_syscalls.c,v 1.19 1996/02/18 11:53:52 fvdl Exp $ */ /* @@ -302,7 +302,8 @@ nfssvc_addsock(struct file *fp, struct mbuf *mynam) return (0); } -static inline int nfssvc_checknam(struct mbuf *nam) +static inline int +nfssvc_checknam(struct mbuf *nam) { struct sockaddr_in *sin; diff --git a/usr.sbin/bgpd/rde_prefix.c b/usr.sbin/bgpd/rde_prefix.c index 07cb8d53b..a6720b00b 100644 --- a/usr.sbin/bgpd/rde_prefix.c +++ b/usr.sbin/bgpd/rde_prefix.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rde_prefix.c,v 1.50 2023/07/12 14:45:43 claudio Exp $ */ +/* $OpenBSD: rde_prefix.c,v 1.51 2024/06/25 13:21:18 claudio Exp $ */ /* * Copyright (c) 2003, 2004 Claudio Jeker @@ -567,6 +567,9 @@ pt_writebuf(struct ibuf *buf, struct pt_entry *pte, int withdraw, goto fail; } + /* keep 2 bytes reserved in the withdraw case for IPv4 encoding */ + if (withdraw && ibuf_left(buf) < ibuf_size(tmp) + 2) + goto fail; if (ibuf_add_buf(buf, tmp) == -1) goto fail; ibuf_free(tmp);