Module Name:    src
Committed By:   skrll
Date:           Thu Sep 29 06:42:14 UTC 2022

Modified Files:
        src/sys/arch/hppa/dev: astro.c uturn.c

Log Message:
malloc -> kmem


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/hppa/dev/astro.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/hppa/dev/uturn.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/hppa/dev/astro.c
diff -u src/sys/arch/hppa/dev/astro.c:1.4 src/sys/arch/hppa/dev/astro.c:1.5
--- src/sys/arch/hppa/dev/astro.c:1.4	Sat Aug  7 16:18:55 2021
+++ src/sys/arch/hppa/dev/astro.c	Thu Sep 29 06:42:14 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: astro.c,v 1.4 2021/08/07 16:18:55 thorpej Exp $	*/
+/*	$NetBSD: astro.c,v 1.5 2022/09/29 06:42:14 skrll Exp $	*/
 
 /*	$OpenBSD: astro.c,v 1.8 2007/10/06 23:50:54 krw Exp $	*/
 
@@ -19,10 +19,11 @@
  */
 
 #include <sys/param.h>
+
 #include <sys/systm.h>
 #include <sys/device.h>
 #include <sys/extent.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
 #include <sys/reboot.h>
 #include <sys/tree.h>
 
@@ -185,7 +186,7 @@ paddr_t	iommu_dvmamem_mmap(void *, bus_d
 void	iommu_enter(struct astro_softc *, bus_addr_t, paddr_t, vaddr_t, int);
 void	iommu_remove(struct astro_softc *, bus_addr_t);
 
-struct iommu_map_state *iommu_iomap_create(int);
+struct iommu_map_state *iommu_iomap_create(int, int);
 void	iommu_iomap_destroy(struct iommu_map_state *);
 int	iommu_iomap_insert_page(struct iommu_map_state *, vaddr_t, paddr_t);
 bus_addr_t iommu_iomap_translate(struct iommu_map_state *, paddr_t);
@@ -362,7 +363,7 @@ iommu_dvmamap_create(void *v, bus_size_t
 	if (error)
 		return (error);
 
-	ims = iommu_iomap_create(atop(round_page(size)));
+	ims = iommu_iomap_create(atop(round_page(size)), flags);
 	if (ims == NULL) {
 		bus_dmamap_destroy(sc->sc_dmat, map);
 		return (ENOMEM);
@@ -604,7 +605,7 @@ SPLAY_GENERATE(iommu_page_tree, iommu_pa
  * Create a new iomap.
  */
 struct iommu_map_state *
-iommu_iomap_create(int n)
+iommu_iomap_create(int n, int flags)
 {
 	struct iommu_map_state *ims;
 
@@ -613,8 +614,10 @@ iommu_iomap_create(int n)
 	if (n < 16)
 		n = 16;
 
-	ims = malloc(sizeof(*ims) + (n - 1) * sizeof(ims->ims_map.ipm_map[0]),
-	    M_DEVBUF, M_NOWAIT | M_ZERO);
+	const size_t sz =
+	    sizeof(*ims) + (n - 1) * sizeof(ims->ims_map.ipm_map[0]);
+
+	ims = kmem_zalloc(sz, (flags & BUS_DMA_NOWAIT) ? KM_NOSLEEP : KM_SLEEP);
 	if (ims == NULL)
 		return (NULL);
 
@@ -636,8 +639,11 @@ iommu_iomap_destroy(struct iommu_map_sta
 		printf("iommu_iomap_destroy: %d page entries in use\n",
 		    ims->ims_map.ipm_pagecnt);
 #endif
+	const int n = ims->ims_map.ipm_maxpage;
+	const size_t sz =
+	    sizeof(*ims) + (n - 1) * sizeof(ims->ims_map.ipm_map[0]);
 
-	free(ims, M_DEVBUF);
+	kmem_free(ims, sz);
 }
 
 /*

Index: src/sys/arch/hppa/dev/uturn.c
diff -u src/sys/arch/hppa/dev/uturn.c:1.5 src/sys/arch/hppa/dev/uturn.c:1.6
--- src/sys/arch/hppa/dev/uturn.c:1.5	Sat Aug  7 16:18:55 2021
+++ src/sys/arch/hppa/dev/uturn.c	Thu Sep 29 06:42:14 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: uturn.c,v 1.5 2021/08/07 16:18:55 thorpej Exp $	*/
+/*	$NetBSD: uturn.c,v 1.6 2022/09/29 06:42:14 skrll Exp $	*/
 
 /*	$OpenBSD: uturn.c,v 1.6 2007/12/29 01:26:14 kettenis Exp $	*/
 
@@ -82,12 +82,13 @@
  */
 
 #include <sys/param.h>
+
 #include <sys/systm.h>
 #include <sys/device.h>
-#include <sys/reboot.h>
-#include <sys/malloc.h>
 #include <sys/extent.h>
+#include <sys/kmem.h>
 #include <sys/mbuf.h>
+#include <sys/reboot.h>
 #include <sys/tree.h>
 
 #include <uvm/uvm.h>
@@ -240,7 +241,7 @@ static void uturn_iommu_enter(struct utu
     vaddr_t, paddr_t);
 static void uturn_iommu_remove(struct uturn_softc *, bus_addr_t, bus_size_t);
 
-struct uturn_map_state *uturn_iomap_create(int);
+struct uturn_map_state *uturn_iomap_create(int, int);
 void	uturn_iomap_destroy(struct uturn_map_state *);
 int	uturn_iomap_insert_page(struct uturn_map_state *, vaddr_t, paddr_t);
 bus_addr_t uturn_iomap_translate(struct uturn_map_state *, paddr_t);
@@ -500,7 +501,7 @@ uturn_dmamap_create(void *v, bus_size_t 
 	if (error)
 		return (error);
 
-	ums = uturn_iomap_create(atop(round_page(size)));
+	ums = uturn_iomap_create(atop(round_page(size)), flags);
 	if (ums == NULL) {
 		bus_dmamap_destroy(sc->sc_dmat, map);
 		return (ENOMEM);
@@ -743,7 +744,7 @@ SPLAY_GENERATE(uturn_page_tree, uturn_pa
  * Create a new iomap.
  */
 struct uturn_map_state *
-uturn_iomap_create(int n)
+uturn_iomap_create(int n, int flags)
 {
 	struct uturn_map_state *ums;
 
@@ -751,9 +752,9 @@ uturn_iomap_create(int n)
 	n += 4;
 	if (n < 16)
 		n = 16;
-
-	ums = malloc(sizeof(*ums) + (n - 1) * sizeof(ums->ums_map.upm_map[0]),
-	    M_DEVBUF, M_NOWAIT | M_ZERO);
+	const size_t sz =
+	    sizeof(*ums) + (n - 1) * sizeof(ums->ums_map.upm_map[0]);
+	ums = kmem_zalloc(sz, (flags & BUS_DMA_NOWAIT) ? KM_NOSLEEP : KM_SLEEP);
 	if (ums == NULL)
 		return (NULL);
 
@@ -771,8 +772,11 @@ void
 uturn_iomap_destroy(struct uturn_map_state *ums)
 {
 	KASSERT(ums->ums_map.upm_pagecnt == 0);
+	const int n = ums->ums_map.upm_maxpage;
+	const size_t sz =
+	    sizeof(*ums) + (n - 1) * sizeof(ums->ums_map.upm_map[0]);
 
-	free(ums, M_DEVBUF);
+	kmem_free(ums, sz);
 }
 
 /*

Reply via email to