Module Name: src Committed By: thorpej Date: Wed Nov 18 02:04:30 UTC 2020
Modified Files: src/sys/arch/alpha/common: bus_dma.c src/sys/arch/alpha/eisa: eisa_machdep.c src/sys/arch/alpha/isa: isadma_bounce.c src/sys/arch/alpha/jensenio: pckbc_jensenio.c src/sys/arch/alpha/pci: dwlpx_dma.c mcpcia.c sio.c src/sys/arch/alpha/sableio: pckbc_sableio.c src/sys/arch/alpha/tc: ioasic.c tc_3000_300.c tc_3000_500.c tc_dma_3000_500.c Log Message: malloc(9) -> kmem(9) To generate a diff of this commit: cvs rdiff -u -r1.70 -r1.71 src/sys/arch/alpha/common/bus_dma.c cvs rdiff -u -r1.12 -r1.13 src/sys/arch/alpha/eisa/eisa_machdep.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/alpha/isa/isadma_bounce.c cvs rdiff -u -r1.14 -r1.15 src/sys/arch/alpha/jensenio/pckbc_jensenio.c cvs rdiff -u -r1.27 -r1.28 src/sys/arch/alpha/pci/dwlpx_dma.c cvs rdiff -u -r1.29 -r1.30 src/sys/arch/alpha/pci/mcpcia.c cvs rdiff -u -r1.53 -r1.54 src/sys/arch/alpha/pci/sio.c cvs rdiff -u -r1.13 -r1.14 src/sys/arch/alpha/sableio/pckbc_sableio.c cvs rdiff -u -r1.47 -r1.48 src/sys/arch/alpha/tc/ioasic.c cvs rdiff -u -r1.37 -r1.38 src/sys/arch/alpha/tc/tc_3000_300.c cvs rdiff -u -r1.36 -r1.37 src/sys/arch/alpha/tc/tc_3000_500.c cvs rdiff -u -r1.22 -r1.23 src/sys/arch/alpha/tc/tc_dma_3000_500.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/arch/alpha/common/bus_dma.c diff -u src/sys/arch/alpha/common/bus_dma.c:1.70 src/sys/arch/alpha/common/bus_dma.c:1.71 --- src/sys/arch/alpha/common/bus_dma.c:1.70 Sun Oct 11 00:33:30 2020 +++ src/sys/arch/alpha/common/bus_dma.c Wed Nov 18 02:04:29 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bus_dma.c,v 1.70 2020/10/11 00:33:30 thorpej Exp $ */ +/* $NetBSD: bus_dma.c,v 1.71 2020/11/18 02:04:29 thorpej Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -32,13 +32,13 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.70 2020/10/11 00:33:30 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bus_dma.c,v 1.71 2020/11/18 02:04:29 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> #include <sys/device.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #include <sys/proc.h> #include <sys/mbuf.h> @@ -59,6 +59,14 @@ extern paddr_t avail_start, avail_end; / #define DMA_COUNT_DECL(cnt) _DMA_COUNT_DECL(dma_direct, cnt) #define DMA_COUNT(cnt) _DMA_COUNT(dma_direct, cnt) +static size_t +_bus_dmamap_mapsize(int const nsegments) +{ + KASSERT(nsegments > 0); + return sizeof(struct alpha_bus_dmamap) + + (sizeof(bus_dma_segment_t) * (nsegments - 1)); +} + /* * Common function for DMA map creation. May be called by bus-specific * DMA map creation functions. @@ -69,7 +77,6 @@ _bus_dmamap_create(bus_dma_tag_t t, bus_ { struct alpha_bus_dmamap *map; void *mapstore; - size_t mapsize; /* * Allocate and initialize the DMA map. The end of the map @@ -83,13 +90,10 @@ _bus_dmamap_create(bus_dma_tag_t t, bus_ * The bus_dmamap_t includes one bus_dma_segment_t, hence * the (nsegments - 1). */ - mapsize = sizeof(struct alpha_bus_dmamap) + - (sizeof(bus_dma_segment_t) * (nsegments - 1)); - if ((mapstore = malloc(mapsize, M_DMAMAP, - (flags & BUS_DMA_NOWAIT) ? M_NOWAIT : M_WAITOK)) == NULL) + if ((mapstore = kmem_zalloc(_bus_dmamap_mapsize(nsegments), + (flags & BUS_DMA_NOWAIT) ? KM_NOSLEEP : KM_SLEEP)) == NULL) return (ENOMEM); - memset(mapstore, 0, mapsize); map = (struct alpha_bus_dmamap *)mapstore; map->_dm_size = size; map->_dm_segcnt = nsegments; @@ -116,7 +120,7 @@ void _bus_dmamap_destroy(bus_dma_tag_t t, bus_dmamap_t map) { - free(map, M_DMAMAP); + kmem_free(map, _bus_dmamap_mapsize(map->_dm_segcnt)); } /* Index: src/sys/arch/alpha/eisa/eisa_machdep.c diff -u src/sys/arch/alpha/eisa/eisa_machdep.c:1.12 src/sys/arch/alpha/eisa/eisa_machdep.c:1.13 --- src/sys/arch/alpha/eisa/eisa_machdep.c:1.12 Sat Mar 29 19:28:25 2014 +++ src/sys/arch/alpha/eisa/eisa_machdep.c Wed Nov 18 02:04:29 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: eisa_machdep.c,v 1.12 2014/03/29 19:28:25 christos Exp $ */ +/* $NetBSD: eisa_machdep.c,v 1.13 2020/11/18 02:04:29 thorpej Exp $ */ /*- * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -31,12 +31,12 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: eisa_machdep.c,v 1.12 2014/03/29 19:28:25 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: eisa_machdep.c,v 1.13 2020/11/18 02:04:29 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/device.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #include <sys/queue.h> #include <machine/intr.h> @@ -157,10 +157,7 @@ eisa_parse_mem(struct ecu_func *ecuf, ui int i; for (i = 0; i < ECUF_MEM_ENTRY_CNT; i++) { - ecum = malloc(sizeof(*ecum), M_DEVBUF, M_ZERO|M_WAITOK); - if (ecum == NULL) - panic("%s: can't allocate memory for ecum", __func__); - + ecum = kmem_zalloc(sizeof(*ecum), KM_SLEEP); ecum->ecum_mem.ecm_isram = dp[0] & 0x1; ecum->ecum_mem.ecm_unitsize = dp[1] & 0x3; ecum->ecum_mem.ecm_decode = (dp[1] >> 2) & 0x3; @@ -191,10 +188,7 @@ eisa_parse_irq(struct ecu_func *ecuf, ui int i; for (i = 0; i < ECUF_IRQ_ENTRY_CNT; i++) { - ecui = malloc(sizeof(*ecui), M_DEVBUF, M_ZERO|M_WAITOK); - if (ecui == NULL) - panic("%s: can't allocate memory for ecui", __func__); - + ecui = kmem_zalloc(sizeof(*ecui), KM_SLEEP); ecui->ecui_irq.eci_irq = dp[0] & 0xf; ecui->ecui_irq.eci_ist = (dp[0] & 0x20) ? IST_LEVEL : IST_EDGE; ecui->ecui_irq.eci_shared = (dp[0] & 0x40) ? 1 : 0; @@ -219,10 +213,7 @@ eisa_parse_dma(struct ecu_func *ecuf, ui int i; for (i = 0; i < ECUF_DMA_ENTRY_CNT; i++) { - ecud = malloc(sizeof(*ecud), M_DEVBUF, M_ZERO|M_WAITOK); - if (ecud == NULL) - panic("%s: can't allocate memory for ecud", __func__); - + ecud = kmem_zalloc(sizeof(*ecud), KM_SLEEP); ecud->ecud_dma.ecd_drq = dp[0] & 0x7; ecud->ecud_dma.ecd_shared = dp[0] & 0x40; ecud->ecud_dma.ecd_size = (dp[1] >> 2) & 0x3; @@ -248,10 +239,7 @@ eisa_parse_io(struct ecu_func *ecuf, uin int i; for (i = 0; i < ECUF_IO_ENTRY_CNT; i++) { - ecuio = malloc(sizeof(*ecuio), M_DEVBUF, M_ZERO|M_WAITOK); - if (ecuio == NULL) - panic("%s: can't allocate memory for ecuio", __func__); - + ecuio = kmem_zalloc(sizeof(*ecuio), KM_SLEEP); ecuio->ecuio_io.ecio_addr = dp[1] | (dp[2] << 8); ecuio->ecuio_io.ecio_size = (dp[0] & 0x1f) + 1; ecuio->ecuio_io.ecio_shared = (dp[0] & 0x40) ? 1 : 0; @@ -370,11 +358,7 @@ eisa_init(eisa_chipset_tag_t ec) printf("SLOT %d: offset 0x%08x eisaid %s\n", i, offset, eisaid); #endif - ecud = malloc(sizeof(*ecud), M_DEVBUF, M_ZERO|M_WAITOK); - if (ecud == NULL) - panic("%s: can't allocate memory for ecud", - __func__); - + ecud = kmem_zalloc(sizeof(*ecud), KM_SLEEP); SIMPLEQ_INIT(&ecud->ecud_funcs); ecud->ecud_slot = i; @@ -388,12 +372,8 @@ eisa_init(eisa_chipset_tag_t ec) * Now traverse the valid slots and read the info. */ - cdata = malloc(CBUFSIZE, M_TEMP, M_ZERO|M_WAITOK); - if (cdata == NULL) - panic("%s: can't allocate memory for cdata", __func__); - data = malloc(CBUFSIZE, M_TEMP, M_ZERO|M_WAITOK); - if (data == NULL) - panic("%s: can't allocate memory for data", __func__); + cdata = kmem_zalloc(CBUFSIZE, KM_SLEEP); + data = kmem_zalloc(CBUFSIZE, KM_SLEEP); SIMPLEQ_FOREACH(ecud, &ecu_data_list, ecud_list) { cfgaddr = eisa_config_addr + ecud->ecud_offset; @@ -501,10 +481,7 @@ eisa_init(eisa_chipset_tag_t ec) continue; } - ecuf = malloc(sizeof(*ecuf), M_DEVBUF, M_WAITOK); - if (ecuf == NULL) - panic("%s: can't allocate memory for ecuf", - __func__); + ecuf = kmem_zalloc(sizeof(*ecuf), KM_SLEEP); ecuf_init(ecuf); ecuf->ecuf_funcno = func; SIMPLEQ_INSERT_TAIL(&ecud->ecud_funcs, ecuf, @@ -557,8 +534,8 @@ eisa_init(eisa_chipset_tag_t ec) } } - free(cdata, M_TEMP); - free(data, M_TEMP); + kmem_free(cdata, CBUFSIZE); + kmem_free(data, CBUFSIZE); } static struct ecu_data * Index: src/sys/arch/alpha/isa/isadma_bounce.c diff -u src/sys/arch/alpha/isa/isadma_bounce.c:1.13 src/sys/arch/alpha/isa/isadma_bounce.c:1.14 --- src/sys/arch/alpha/isa/isadma_bounce.c:1.13 Mon Feb 29 15:28:35 2016 +++ src/sys/arch/alpha/isa/isadma_bounce.c Wed Nov 18 02:04:29 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: isadma_bounce.c,v 1.13 2016/02/29 15:28:35 christos Exp $ */ +/* $NetBSD: isadma_bounce.c,v 1.14 2020/11/18 02:04:29 thorpej Exp $ */ /*- * Copyright (c) 1996, 1997, 1998, 2000 The NetBSD Foundation, Inc. @@ -32,13 +32,13 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: isadma_bounce.c,v 1.13 2016/02/29 15:28:35 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: isadma_bounce.c,v 1.14 2020/11/18 02:04:29 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/syslog.h> #include <sys/device.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #include <sys/proc.h> #include <sys/mbuf.h> @@ -91,28 +91,19 @@ int isadma_bounce_alloc_bouncebuf(bus_dm void isadma_bounce_free_bouncebuf(bus_dma_tag_t, bus_dmamap_t); /* - * Create an ISA DMA map. + * Returns true if the system memory configuration exceeds the + * capabilities of ISA DMA. */ -int -isadma_bounce_dmamap_create(bus_dma_tag_t t, bus_size_t size, int nsegments, - bus_size_t maxsegsz, bus_size_t boundary, int flags, bus_dmamap_t *dmamp) +static bool +isadma_bounce_check_range(bus_dma_tag_t const t) { - struct isadma_bounce_cookie *cookie; - bus_dmamap_t map; - int error, cookieflags; - void *cookiestore; - size_t cookiesize; - - /* Call common function to create the basic map. */ - error = _bus_dmamap_create(t, size, nsegments, maxsegsz, boundary, - flags, dmamp); - if (error) - return (error); - - map = *dmamp; - map->_dm_cookie = NULL; + return avail_end > (t->_wbase + t->_wsize); +} - cookiesize = sizeof(*cookie); +static int +isadma_bounce_cookieflags(bus_dma_tag_t const t, bus_dmamap_t const map) +{ + int cookieflags = 0; /* * ISA only has 24-bits of address space. This means @@ -133,42 +124,97 @@ isadma_bounce_dmamap_create(bus_dma_tag_ * the caller can't handle that many segments (e.g. the * ISA DMA controller), we may have to bounce it as well. */ - cookieflags = 0; - if (avail_end > (t->_wbase + t->_wsize) || + if (isadma_bounce_check_range(t) || ((map->_dm_size / PAGE_SIZE) + 1) > map->_dm_segcnt) { cookieflags |= ID_MIGHT_NEED_BOUNCE; + } + return cookieflags; +} + +static size_t +isadma_bounce_cookiesize(bus_dmamap_t const map, int cookieflags) +{ + size_t cookiesize = sizeof(struct isadma_bounce_cookie); + + if (cookieflags & ID_MIGHT_NEED_BOUNCE) { cookiesize += (sizeof(bus_dma_segment_t) * (map->_dm_segcnt - 1)); } + return cookiesize; +} + +static int +isadma_bounce_cookie_alloc(bus_dma_tag_t const t, bus_dmamap_t const map, + int const flags) +{ + struct isadma_bounce_cookie *cookie; + int cookieflags = isadma_bounce_cookieflags(t, map); + + if ((cookie = kmem_zalloc(isadma_bounce_cookiesize(map, cookieflags), + (flags & BUS_DMA_NOWAIT) ? KM_NOSLEEP : KM_SLEEP)) == NULL) { + return ENOMEM; + } + + cookie->id_flags = cookieflags; + map->_dm_cookie = cookie; + + return 0; +} + +static void +isadma_bounce_cookie_free(bus_dmamap_t const map) +{ + struct isadma_bounce_cookie *cookie = map->_dm_cookie; + + if (cookie != NULL) { + kmem_free(map->_dm_cookie, + isadma_bounce_cookiesize(map, cookie->id_flags)); + map->_dm_cookie = NULL; + } +} + +/* + * Create an ISA DMA map. + */ +int +isadma_bounce_dmamap_create(bus_dma_tag_t t, bus_size_t size, int nsegments, + bus_size_t maxsegsz, bus_size_t boundary, int flags, bus_dmamap_t *dmamp) +{ + struct isadma_bounce_cookie *cookie; + bus_dmamap_t map; + int error; + + /* Call common function to create the basic map. */ + error = _bus_dmamap_create(t, size, nsegments, maxsegsz, boundary, + flags, dmamp); + if (error) + return (error); + + map = *dmamp; + map->_dm_cookie = NULL; /* * Allocate our cookie. */ - if ((cookiestore = malloc(cookiesize, M_DMAMAP, - (flags & BUS_DMA_NOWAIT) ? M_NOWAIT : M_WAITOK)) == NULL) { - error = ENOMEM; + if ((error = isadma_bounce_cookie_alloc(t, map, flags)) != 0) { goto out; } - memset(cookiestore, 0, cookiesize); - cookie = (struct isadma_bounce_cookie *)cookiestore; - cookie->id_flags = cookieflags; - map->_dm_cookie = cookie; + cookie = map->_dm_cookie; - if (cookieflags & ID_MIGHT_NEED_BOUNCE) { + if (cookie->id_flags & ID_MIGHT_NEED_BOUNCE) { /* * Allocate the bounce pages now if the caller * wishes us to do so. */ - if ((flags & BUS_DMA_ALLOCNOW) == 0) - goto out; - - error = isadma_bounce_alloc_bouncebuf(t, map, size, flags); + if (flags & BUS_DMA_ALLOCNOW) { + error = isadma_bounce_alloc_bouncebuf(t, map, size, + flags); + } } out: if (error) { - if (map->_dm_cookie != NULL) - free(map->_dm_cookie, M_DMAMAP); + isadma_bounce_cookie_free(map); _bus_dmamap_destroy(t, map); } return (error); @@ -188,7 +234,7 @@ isadma_bounce_dmamap_destroy(bus_dma_tag if (cookie->id_flags & ID_HAS_BOUNCE) isadma_bounce_free_bouncebuf(t, map); - free(cookie, M_DMAMAP); + isadma_bounce_cookie_free(map); _bus_dmamap_destroy(t, map); } Index: src/sys/arch/alpha/jensenio/pckbc_jensenio.c diff -u src/sys/arch/alpha/jensenio/pckbc_jensenio.c:1.14 src/sys/arch/alpha/jensenio/pckbc_jensenio.c:1.15 --- src/sys/arch/alpha/jensenio/pckbc_jensenio.c:1.14 Fri Sep 25 03:40:11 2020 +++ src/sys/arch/alpha/jensenio/pckbc_jensenio.c Wed Nov 18 02:04:29 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: pckbc_jensenio.c,v 1.14 2020/09/25 03:40:11 thorpej Exp $ */ +/* $NetBSD: pckbc_jensenio.c,v 1.15 2020/11/18 02:04:29 thorpej Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -31,14 +31,14 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: pckbc_jensenio.c,v 1.14 2020/09/25 03:40:11 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pckbc_jensenio.c,v 1.15 2020/11/18 02:04:29 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> #include <sys/proc.h> #include <sys/device.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #include <sys/errno.h> #include <sys/queue.h> #include <sys/intr.h> @@ -111,8 +111,7 @@ pckbc_jensenio_attach(device_t parent, d 1, 0, &ioh_c) != 0) panic("pckbc_jensenio_attach: couldn't map"); - t = malloc(sizeof(struct pckbc_internal), M_DEVBUF, M_WAITOK); - memset(t, 0, sizeof(struct pckbc_internal)); + t = kmem_zalloc(sizeof(struct pckbc_internal), KM_SLEEP); t->t_iot = ja->ja_iot; t->t_ioh_d = ioh_d; t->t_ioh_c = ioh_c; Index: src/sys/arch/alpha/pci/dwlpx_dma.c diff -u src/sys/arch/alpha/pci/dwlpx_dma.c:1.27 src/sys/arch/alpha/pci/dwlpx_dma.c:1.28 --- src/sys/arch/alpha/pci/dwlpx_dma.c:1.27 Sun Oct 11 00:33:31 2020 +++ src/sys/arch/alpha/pci/dwlpx_dma.c Wed Nov 18 02:04:29 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: dwlpx_dma.c,v 1.27 2020/10/11 00:33:31 thorpej Exp $ */ +/* $NetBSD: dwlpx_dma.c,v 1.28 2020/11/18 02:04:29 thorpej Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -32,13 +32,13 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: dwlpx_dma.c,v 1.27 2020/10/11 00:33:31 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: dwlpx_dma.c,v 1.28 2020/11/18 02:04:29 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> #include <sys/device.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #define _ALPHA_BUS_DMA_PRIVATE #include <sys/bus.h> @@ -209,9 +209,7 @@ dwlpx_dma_init(struct dwlpx_config *ccp) * Window base: 1GB * SGVA base: 0 */ -#define EXNAMELEN 16 - exname = malloc(EXNAMELEN, M_DEVBUF, M_WAITOK); - snprintf(exname, EXNAMELEN, "%s_sgmap_a", + exname = kmem_asprintf("%s_sgmap_a", device_xname(ccp->cc_sc->dwlpx_dev)); alpha_sgmap_init(t, &ccp->cc_sgmap, exname, DWLPx_SG_MAPPED_BASE, 0, DWLPx_SG_MAPPED_SIZE(lim), sizeof(uint32_t), Index: src/sys/arch/alpha/pci/mcpcia.c diff -u src/sys/arch/alpha/pci/mcpcia.c:1.29 src/sys/arch/alpha/pci/mcpcia.c:1.30 --- src/sys/arch/alpha/pci/mcpcia.c:1.29 Mon Feb 6 02:14:14 2012 +++ src/sys/arch/alpha/pci/mcpcia.c Wed Nov 18 02:04:29 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: mcpcia.c,v 1.29 2012/02/06 02:14:14 matt Exp $ */ +/* $NetBSD: mcpcia.c,v 1.30 2020/11/18 02:04:29 thorpej Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -67,12 +67,12 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: mcpcia.c,v 1.29 2012/02/06 02:14:14 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mcpcia.c,v 1.30 2020/11/18 02:04:29 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/device.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #include <machine/autoconf.h> #include <machine/rpb.h> @@ -150,9 +150,7 @@ mcpciaattach(device_t parent, device_t s ma->ma_gid == mcpcia_console_configuration.cc_gid) ccp = &mcpcia_console_configuration; else { - ccp = malloc(sizeof(struct mcpcia_config), M_DEVBUF, M_WAITOK); - memset(ccp, 0, sizeof(struct mcpcia_config)); - + ccp = kmem_zalloc(sizeof(struct mcpcia_config), KM_SLEEP); ccp->cc_mid = ma->ma_mid; ccp->cc_gid = ma->ma_gid; } Index: src/sys/arch/alpha/pci/sio.c diff -u src/sys/arch/alpha/pci/sio.c:1.53 src/sys/arch/alpha/pci/sio.c:1.54 --- src/sys/arch/alpha/pci/sio.c:1.53 Tue Sep 22 15:24:02 2020 +++ src/sys/arch/alpha/pci/sio.c Wed Nov 18 02:04:29 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: sio.c,v 1.53 2020/09/22 15:24:02 thorpej Exp $ */ +/* $NetBSD: sio.c,v 1.54 2020/11/18 02:04:29 thorpej Exp $ */ /*- * Copyright (c) 2000 The NetBSD Foundation, Inc. @@ -63,13 +63,13 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: sio.c,v 1.53 2020/09/22 15:24:02 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sio.c,v 1.54 2020/11/18 02:04:29 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> #include <sys/device.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #include <machine/intr.h> #include <sys/bus.h> @@ -254,8 +254,7 @@ sio_bridge_callback(device_t self) break; #endif default: - sc->sc_ic = malloc(sizeof(*sc->sc_ic), M_DEVBUF, M_WAITOK); - memset(sc->sc_ic, 0, sizeof(*sc->sc_ic)); + sc->sc_ic = kmem_zalloc(sizeof(*sc->sc_ic), KM_SLEEP); } sc->sc_ic->ic_v = NULL; Index: src/sys/arch/alpha/sableio/pckbc_sableio.c diff -u src/sys/arch/alpha/sableio/pckbc_sableio.c:1.13 src/sys/arch/alpha/sableio/pckbc_sableio.c:1.14 --- src/sys/arch/alpha/sableio/pckbc_sableio.c:1.13 Tue Sep 22 15:24:02 2020 +++ src/sys/arch/alpha/sableio/pckbc_sableio.c Wed Nov 18 02:04:30 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: pckbc_sableio.c,v 1.13 2020/09/22 15:24:02 thorpej Exp $ */ +/* $NetBSD: pckbc_sableio.c,v 1.14 2020/11/18 02:04:30 thorpej Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -31,14 +31,14 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: pckbc_sableio.c,v 1.13 2020/09/22 15:24:02 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pckbc_sableio.c,v 1.14 2020/11/18 02:04:30 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> #include <sys/proc.h> #include <sys/device.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #include <sys/errno.h> #include <sys/queue.h> #include <sys/intr.h> @@ -112,8 +112,7 @@ pckbc_sableio_attach(device_t parent, de 1, 0, &ioh_c) != 0) panic("pckbc_sableio_attach: couldn't map"); - t = malloc(sizeof(struct pckbc_internal), M_DEVBUF, M_WAITOK); - memset(t, 0, sizeof(struct pckbc_internal)); + t = kmem_zalloc(sizeof(struct pckbc_internal), KM_SLEEP); t->t_iot = sa->sa_iot; t->t_ioh_d = ioh_d; t->t_ioh_c = ioh_c; Index: src/sys/arch/alpha/tc/ioasic.c diff -u src/sys/arch/alpha/tc/ioasic.c:1.47 src/sys/arch/alpha/tc/ioasic.c:1.48 --- src/sys/arch/alpha/tc/ioasic.c:1.47 Sun Nov 10 21:16:22 2019 +++ src/sys/arch/alpha/tc/ioasic.c Wed Nov 18 02:04:30 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ioasic.c,v 1.47 2019/11/10 21:16:22 chs Exp $ */ +/* $NetBSD: ioasic.c,v 1.48 2020/11/18 02:04:30 thorpej Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -61,13 +61,13 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: ioasic.c,v 1.47 2019/11/10 21:16:22 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ioasic.c,v 1.48 2020/11/18 02:04:30 thorpej Exp $"); #include <sys/param.h> #include <sys/kernel.h> #include <sys/systm.h> #include <sys/device.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #include <machine/autoconf.h> #include <sys/bus.h> @@ -192,12 +192,10 @@ ioasicattach(device_t parent, device_t s */ pevcnt = tc_intr_evcnt(parent, ta->ta_cookie); for (i = 0; i < IOASIC_NCOOKIES; i++) { - static const size_t len = 12; ioasicintrs[i].iai_func = ioasic_intrnull; ioasicintrs[i].iai_arg = (void *)i; - cp = malloc(len, M_DEVBUF, M_WAITOK); - snprintf(cp, len, "slot %lu", i); + cp = kmem_asprintf("slot %lu", i); evcnt_attach_dynamic(&ioasicintrs[i].iai_evcnt, EVCNT_TYPE_INTR, pevcnt, device_xname(self), cp); } Index: src/sys/arch/alpha/tc/tc_3000_300.c diff -u src/sys/arch/alpha/tc/tc_3000_300.c:1.37 src/sys/arch/alpha/tc/tc_3000_300.c:1.38 --- src/sys/arch/alpha/tc/tc_3000_300.c:1.37 Fri Sep 25 03:40:11 2020 +++ src/sys/arch/alpha/tc/tc_3000_300.c Wed Nov 18 02:04:30 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tc_3000_300.c,v 1.37 2020/09/25 03:40:11 thorpej Exp $ */ +/* $NetBSD: tc_3000_300.c,v 1.38 2020/11/18 02:04:30 thorpej Exp $ */ /* * Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University. @@ -29,12 +29,12 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: tc_3000_300.c,v 1.37 2020/09/25 03:40:11 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tc_3000_300.c,v 1.38 2020/11/18 02:04:30 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/device.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #include <sys/cpu.h> #include <machine/autoconf.h> @@ -108,12 +108,10 @@ tc_3000_300_intr_setup(void) * Set up interrupt handlers. */ for (i = 0; i < TC_3000_300_NCOOKIES; i++) { - static const size_t len = 12; tc_3000_300_intr[i].tci_func = tc_3000_300_intrnull; tc_3000_300_intr[i].tci_arg = (void *)i; - cp = malloc(len, M_DEVBUF, M_WAITOK); - snprintf(cp, len, "slot %lu", i); + cp = kmem_asprintf("slot %lu", i); evcnt_attach_dynamic(&tc_3000_300_intr[i].tci_evcnt, EVCNT_TYPE_INTR, NULL, "tc", cp); } Index: src/sys/arch/alpha/tc/tc_3000_500.c diff -u src/sys/arch/alpha/tc/tc_3000_500.c:1.36 src/sys/arch/alpha/tc/tc_3000_500.c:1.37 --- src/sys/arch/alpha/tc/tc_3000_500.c:1.36 Fri Sep 25 03:40:11 2020 +++ src/sys/arch/alpha/tc/tc_3000_500.c Wed Nov 18 02:04:30 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tc_3000_500.c,v 1.36 2020/09/25 03:40:11 thorpej Exp $ */ +/* $NetBSD: tc_3000_500.c,v 1.37 2020/11/18 02:04:30 thorpej Exp $ */ /* * Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University. @@ -29,12 +29,12 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: tc_3000_500.c,v 1.36 2020/09/25 03:40:11 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tc_3000_500.c,v 1.37 2020/11/18 02:04:30 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/device.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #include <sys/cpu.h> #include <machine/autoconf.h> @@ -132,12 +132,10 @@ tc_3000_500_intr_setup(void) * Set up interrupt handlers. */ for (i = 0; i < TC_3000_500_NCOOKIES; i++) { - static const size_t len = 12; tc_3000_500_intr[i].tci_func = tc_3000_500_intrnull; tc_3000_500_intr[i].tci_arg = (void *)i; - cp = malloc(len, M_DEVBUF, M_WAITOK); - snprintf(cp, len, "slot %lu", i); + cp = kmem_asprintf("slot %lu", i); evcnt_attach_dynamic(&tc_3000_500_intr[i].tci_evcnt, EVCNT_TYPE_INTR, NULL, "tc", cp); } Index: src/sys/arch/alpha/tc/tc_dma_3000_500.c diff -u src/sys/arch/alpha/tc/tc_dma_3000_500.c:1.22 src/sys/arch/alpha/tc/tc_dma_3000_500.c:1.23 --- src/sys/arch/alpha/tc/tc_dma_3000_500.c:1.22 Sun Oct 11 00:33:30 2020 +++ src/sys/arch/alpha/tc/tc_dma_3000_500.c Wed Nov 18 02:04:30 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: tc_dma_3000_500.c,v 1.22 2020/10/11 00:33:30 thorpej Exp $ */ +/* $NetBSD: tc_dma_3000_500.c,v 1.23 2020/11/18 02:04:30 thorpej Exp $ */ /*- * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. @@ -32,13 +32,13 @@ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ -__KERNEL_RCSID(0, "$NetBSD: tc_dma_3000_500.c,v 1.22 2020/10/11 00:33:30 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tc_dma_3000_500.c,v 1.23 2020/11/18 02:04:30 thorpej Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/device.h> #include <sys/kernel.h> -#include <sys/malloc.h> +#include <sys/kmem.h> #define _ALPHA_BUS_DMA_PRIVATE #include <sys/bus.h> @@ -86,7 +86,7 @@ tc_dma_init_3000_500(int nslots) /* Allocate per-slot DMA info. */ sisize = nslots * sizeof(struct tc_dma_slot_info); - tc_dma_slot_info = malloc(sisize, M_DEVBUF, M_WAITOK | M_ZERO); + tc_dma_slot_info = kmem_zalloc(sisize, KM_SLEEP); /* Default all slots to direct-mapped. */ for (i = 0; i < nslots; i++)