Module Name: src Committed By: martin Date: Fri Jan 31 11:17:32 UTC 2020
Modified Files: src/sys/dev/acpi [netbsd-9]: thinkpad_acpi.c src/sys/dev/ic [netbsd-9]: aic6915reg.h tulip.c src/sys/dev/pci [netbsd-9]: agp.c if_jme.c if_lii.c src/sys/dev/scsipi [netbsd-9]: scsipi_base.c Log Message: Pull up following revision(s) (requested by msaitoh in ticket #672): sys/dev/ic/tulip.c: revision 1.198 sys/dev/pci/if_jme.c: revision 1.45 sys/dev/pci/agp.c: revision 1.86 sys/dev/pci/if_lii.c: revision 1.27 sys/dev/acpi/thinkpad_acpi.c: revision 1.47 sys/dev/scsipi/scsipi_base.c: revision 1.183 sys/dev/ic/aic6915reg.h: revision 1.6 Fix undefined behavior in thinkpad_mask_init(). Found by kUBSan. Use unsigned when initialize the transmit completion ring to avoid undefined behavior. Found by kUBSan. Avoid undefined behavior when setting multicast address. found by kUBSan. Use unsigned to avoid undefined behavior in agpattach(). Found by kUBSan. Avoid undefined behavior in jme_mii_write(). Found by kUBSan. Use unsigned to avoid undefined behavior in lii_setmulti(). Use unsigned to avoid undefined behavior in scsipi_{get,put}_tag(). Found by kUBSan. To generate a diff of this commit: cvs rdiff -u -r1.46 -r1.46.24.1 src/sys/dev/acpi/thinkpad_acpi.c cvs rdiff -u -r1.5 -r1.5.94.1 src/sys/dev/ic/aic6915reg.h cvs rdiff -u -r1.197 -r1.197.2.1 src/sys/dev/ic/tulip.c cvs rdiff -u -r1.85 -r1.85.6.1 src/sys/dev/pci/agp.c cvs rdiff -u -r1.44.2.1 -r1.44.2.2 src/sys/dev/pci/if_jme.c cvs rdiff -u -r1.26 -r1.26.2.1 src/sys/dev/pci/if_lii.c cvs rdiff -u -r1.182 -r1.182.4.1 src/sys/dev/scsipi/scsipi_base.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/acpi/thinkpad_acpi.c diff -u src/sys/dev/acpi/thinkpad_acpi.c:1.46 src/sys/dev/acpi/thinkpad_acpi.c:1.46.24.1 --- src/sys/dev/acpi/thinkpad_acpi.c:1.46 Sun Apr 3 10:36:00 2016 +++ src/sys/dev/acpi/thinkpad_acpi.c Fri Jan 31 11:17:32 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: thinkpad_acpi.c,v 1.46 2016/04/03 10:36:00 mlelstv Exp $ */ +/* $NetBSD: thinkpad_acpi.c,v 1.46.24.1 2020/01/31 11:17:32 martin Exp $ */ /*- * Copyright (c) 2007 Jared D. McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: thinkpad_acpi.c,v 1.46 2016/04/03 10:36:00 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: thinkpad_acpi.c,v 1.46.24.1 2020/01/31 11:17:32 martin Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -565,7 +565,7 @@ thinkpad_mask_init(thinkpad_softc_t *sc, for (i = 0; i < 32; i++) { param[0].Integer.Value = i + 1; - param[1].Integer.Value = (((1 << i) & mask) != 0); + param[1].Integer.Value = ((__BIT(i) & mask) != 0); rv = AcpiEvaluateObject(sc->sc_node->ad_handle, "MHKM", ¶ms, NULL); Index: src/sys/dev/ic/aic6915reg.h diff -u src/sys/dev/ic/aic6915reg.h:1.5 src/sys/dev/ic/aic6915reg.h:1.5.94.1 --- src/sys/dev/ic/aic6915reg.h:1.5 Mon Apr 28 20:23:49 2008 +++ src/sys/dev/ic/aic6915reg.h Fri Jan 31 11:17:32 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aic6915reg.h,v 1.5 2008/04/28 20:23:49 martin Exp $ */ +/* $NetBSD: aic6915reg.h,v 1.5.94.1 2020/01/31 11:17:32 martin Exp $ */ /*- * Copyright (c) 2001 The NetBSD Foundation, Inc. @@ -194,7 +194,7 @@ struct sf_tcd { uint32_t tcd_word0; /* index, priority, flags */ }; -#define TCD_DMA_ID (0x4 << 29) +#define TCD_DMA_ID (0x4U << 29) #define TCD_INDEX(x) ((x) & 0x7fff) #define TCD_PR (1U << 15) #define TCD_TIMESTAMP(x) (((x) >> 16) & 0x1fff) Index: src/sys/dev/ic/tulip.c diff -u src/sys/dev/ic/tulip.c:1.197 src/sys/dev/ic/tulip.c:1.197.2.1 --- src/sys/dev/ic/tulip.c:1.197 Tue May 28 08:59:34 2019 +++ src/sys/dev/ic/tulip.c Fri Jan 31 11:17:32 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tulip.c,v 1.197 2019/05/28 08:59:34 msaitoh Exp $ */ +/* $NetBSD: tulip.c,v 1.197.2.1 2020/01/31 11:17:32 martin Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2002 The NetBSD Foundation, Inc. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tulip.c,v 1.197 2019/05/28 08:59:34 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tulip.c,v 1.197.2.1 2020/01/31 11:17:32 martin Exp $"); #include <sys/param.h> @@ -2943,7 +2943,7 @@ tlp_al981_filter_setup(struct tulip_soft } hash = ether_crc32_le(enm->enm_addrlo, ETHER_ADDR_LEN) & 0x3f; - mchash[hash >> 5] |= 1 << (hash & 0x1f); + mchash[hash >> 5] |= __BIT(hash & 0x1f); ETHER_NEXT_MULTI(step, enm); } ETHER_UNLOCK(ec); Index: src/sys/dev/pci/agp.c diff -u src/sys/dev/pci/agp.c:1.85 src/sys/dev/pci/agp.c:1.85.6.1 --- src/sys/dev/pci/agp.c:1.85 Mon Aug 27 07:34:54 2018 +++ src/sys/dev/pci/agp.c Fri Jan 31 11:17:32 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: agp.c,v 1.85 2018/08/27 07:34:54 riastradh Exp $ */ +/* $NetBSD: agp.c,v 1.85.6.1 2020/01/31 11:17:32 martin Exp $ */ /*- * Copyright (c) 2000 Doug Rabson @@ -65,7 +65,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: agp.c,v 1.85 2018/08/27 07:34:54 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: agp.c,v 1.85.6.1 2020/01/31 11:17:32 martin Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -312,7 +312,7 @@ agpmatch(device_t parent, cfdata_t match return (1); } -static const int agp_max[][2] = { +static const u_int agp_max[][2] = { {0, 0}, {32, 4}, {64, 28}, @@ -332,7 +332,8 @@ agpattach(device_t parent, device_t self struct pci_attach_args *pa = &apa->apa_pci_args; struct agp_softc *sc = device_private(self); const struct agp_product *ap; - int memsize, i, ret; + int ret; + u_int memsize, i; ap = agp_lookup(pa); KASSERT(ap != NULL); Index: src/sys/dev/pci/if_jme.c diff -u src/sys/dev/pci/if_jme.c:1.44.2.1 src/sys/dev/pci/if_jme.c:1.44.2.2 --- src/sys/dev/pci/if_jme.c:1.44.2.1 Thu Oct 24 16:25:33 2019 +++ src/sys/dev/pci/if_jme.c Fri Jan 31 11:17:32 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_jme.c,v 1.44.2.1 2019/10/24 16:25:33 martin Exp $ */ +/* $NetBSD: if_jme.c,v 1.44.2.2 2020/01/31 11:17:32 martin Exp $ */ /* * Copyright (c) 2008 Manuel Bouyer. All rights reserved. @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_jme.c,v 1.44.2.1 2019/10/24 16:25:33 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_jme.c,v 1.44.2.2 2020/01/31 11:17:32 martin Exp $"); #include <sys/param.h> @@ -1021,7 +1021,7 @@ jme_mii_write(device_t self, int phy, in bus_space_write_4(sc->jme_bt_mac, sc->jme_bh_mac, JME_SMI, SMI_OP_WRITE | SMI_OP_EXECUTE | - ((val << SMI_DATA_SHIFT) & SMI_DATA_MASK) | + (((uint32_t)val << SMI_DATA_SHIFT) & SMI_DATA_MASK) | SMI_PHY_ADDR(phy) | SMI_REG_ADDR(reg)); for (i = JME_PHY_TIMEOUT / 10; i > 0; i--) { delay(10); Index: src/sys/dev/pci/if_lii.c diff -u src/sys/dev/pci/if_lii.c:1.26 src/sys/dev/pci/if_lii.c:1.26.2.1 --- src/sys/dev/pci/if_lii.c:1.26 Thu May 30 02:32:18 2019 +++ src/sys/dev/pci/if_lii.c Fri Jan 31 11:17:32 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_lii.c,v 1.26 2019/05/30 02:32:18 msaitoh Exp $ */ +/* $NetBSD: if_lii.c,v 1.26.2.1 2020/01/31 11:17:32 martin Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_lii.c,v 1.26 2019/05/30 02:32:18 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_lii.c,v 1.26.2.1 2020/01/31 11:17:32 martin Exp $"); #include <sys/param.h> @@ -1186,10 +1186,10 @@ lii_setmulti(struct lii_softc *sc) crc = ether_crc32_be(enm->enm_addrlo, ETHER_ADDR_LEN); - if (crc & (1 << 31)) - mht1 |= (1 << ((crc >> 26) & 0x0000001f)); + if (crc & (1U << 31)) + mht1 |= (1U << ((crc >> 26) & 0x0000001f)); else - mht0 |= (1 << ((crc >> 26) & 0x0000001f)); + mht0 |= (1U << ((crc >> 26) & 0x0000001f)); ETHER_NEXT_MULTI(step, enm); } Index: src/sys/dev/scsipi/scsipi_base.c diff -u src/sys/dev/scsipi/scsipi_base.c:1.182 src/sys/dev/scsipi/scsipi_base.c:1.182.4.1 --- src/sys/dev/scsipi/scsipi_base.c:1.182 Thu Mar 28 10:44:29 2019 +++ src/sys/dev/scsipi/scsipi_base.c Fri Jan 31 11:17:32 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: scsipi_base.c,v 1.182 2019/03/28 10:44:29 kardel Exp $ */ +/* $NetBSD: scsipi_base.c,v 1.182.4.1 2020/01/31 11:17:32 martin Exp $ */ /*- * Copyright (c) 1998, 1999, 2000, 2002, 2003, 2004 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: scsipi_base.c,v 1.182 2019/03/28 10:44:29 kardel Exp $"); +__KERNEL_RCSID(0, "$NetBSD: scsipi_base.c,v 1.182.4.1 2020/01/31 11:17:32 martin Exp $"); #ifdef _KERNEL_OPT #include "opt_scsi.h" @@ -367,7 +367,7 @@ scsipi_get_tag(struct scsipi_xfer *xs) #endif bit -= 1; - periph->periph_freetags[word] &= ~(1 << bit); + periph->periph_freetags[word] &= ~(1U << bit); tag = (word << 5) | bit; /* XXX Should eventually disallow this completely. */ @@ -398,7 +398,7 @@ scsipi_put_tag(struct scsipi_xfer *xs) word = xs->xs_tag_id >> 5; bit = xs->xs_tag_id & 0x1f; - periph->periph_freetags[word] |= (1 << bit); + periph->periph_freetags[word] |= (1U << bit); } /*