Module Name: src
Committed By: skrll
Date: Wed Dec 3 14:18:07 UTC 2014
Modified Files:
src/sys/arch/mips/adm5120/dev [nick-nhusb]: ahci.c
src/sys/dev/ic [nick-nhusb]: sl811hs.c
src/sys/dev/usb [nick-nhusb]: hid.c if_athn_usb.c if_athn_usb.h
if_kue.c if_otus.c if_otusvar.h if_zyd.c if_zydreg.h u3g.c uaudio.c
ubsa.c ubsa_common.c ubt.c uchcom.c ucycom.c udsir.c uep.c ugen.c
uhid.c uhidev.c uhmodem.c uhub.c umct.c uplcom.c urio.c usb.c usb.h
usb_subr.c usbdi.c usbdi_util.c usbdi_util.h uscanner.c ustir.c
utoppy.c uvscom.c uyurex.c xhci.c
Log Message:
Replace malloc(9) with kmem(9)
To generate a diff of this commit:
cvs rdiff -u -r1.12.6.7 -r1.12.6.8 src/sys/arch/mips/adm5120/dev/ahci.c
cvs rdiff -u -r1.47.6.6 -r1.47.6.7 src/sys/dev/ic/sl811hs.c
cvs rdiff -u -r1.35.16.1 -r1.35.16.2 src/sys/dev/usb/hid.c
cvs rdiff -u -r1.6.8.1 -r1.6.8.2 src/sys/dev/usb/if_athn_usb.c
cvs rdiff -u -r1.2 -r1.2.16.1 src/sys/dev/usb/if_athn_usb.h
cvs rdiff -u -r1.81.4.1 -r1.81.4.2 src/sys/dev/usb/if_kue.c
cvs rdiff -u -r1.25.6.1 -r1.25.6.2 src/sys/dev/usb/if_otus.c
cvs rdiff -u -r1.7.12.1 -r1.7.12.2 src/sys/dev/usb/if_otusvar.h
cvs rdiff -u -r1.36.14.1 -r1.36.14.2 src/sys/dev/usb/if_zyd.c
cvs rdiff -u -r1.7 -r1.7.16.1 src/sys/dev/usb/if_zydreg.h
cvs rdiff -u -r1.31.2.3 -r1.31.2.4 src/sys/dev/usb/u3g.c
cvs rdiff -u -r1.140.2.3 -r1.140.2.4 src/sys/dev/usb/uaudio.c
cvs rdiff -u -r1.30 -r1.30.16.1 src/sys/dev/usb/ubsa.c
cvs rdiff -u -r1.9.14.1 -r1.9.14.2 src/sys/dev/usb/ubsa_common.c
cvs rdiff -u -r1.51.4.1 -r1.51.4.2 src/sys/dev/usb/ubt.c
cvs rdiff -u -r1.13 -r1.13.6.1 src/sys/dev/usb/uchcom.c
cvs rdiff -u -r1.41.2.1 -r1.41.2.2 src/sys/dev/usb/ucycom.c
cvs rdiff -u -r1.1.14.2 -r1.1.14.3 src/sys/dev/usb/udsir.c
cvs rdiff -u -r1.19.6.1 -r1.19.6.2 src/sys/dev/usb/uep.c
cvs rdiff -u -r1.126.2.3 -r1.126.2.4 src/sys/dev/usb/ugen.c
cvs rdiff -u -r1.92.4.2 -r1.92.4.3 src/sys/dev/usb/uhid.c
cvs rdiff -u -r1.61.4.2 -r1.61.4.3 src/sys/dev/usb/uhidev.c
cvs rdiff -u -r1.13.24.2 -r1.13.24.3 src/sys/dev/usb/uhmodem.c
cvs rdiff -u -r1.126.2.2 -r1.126.2.3 src/sys/dev/usb/uhub.c
cvs rdiff -u -r1.32.24.2 -r1.32.24.3 src/sys/dev/usb/umct.c
cvs rdiff -u -r1.74.4.2 -r1.74.4.3 src/sys/dev/usb/uplcom.c
cvs rdiff -u -r1.42.4.3 -r1.42.4.4 src/sys/dev/usb/urio.c
cvs rdiff -u -r1.156.2.2 -r1.156.2.3 src/sys/dev/usb/usb.c
cvs rdiff -u -r1.111.2.3 -r1.111.2.4 src/sys/dev/usb/usb.h
cvs rdiff -u -r1.198.2.3 -r1.198.2.4 src/sys/dev/usb/usb_subr.c
cvs rdiff -u -r1.162.2.6 -r1.162.2.7 src/sys/dev/usb/usbdi.c
cvs rdiff -u -r1.63.2.3 -r1.63.2.4 src/sys/dev/usb/usbdi_util.c
cvs rdiff -u -r1.45.6.2 -r1.45.6.3 src/sys/dev/usb/usbdi_util.h
cvs rdiff -u -r1.75.4.3 -r1.75.4.4 src/sys/dev/usb/uscanner.c
cvs rdiff -u -r1.33.10.3 -r1.33.10.4 src/sys/dev/usb/ustir.c
cvs rdiff -u -r1.24.4.2 -r1.24.4.3 src/sys/dev/usb/utoppy.c
cvs rdiff -u -r1.28 -r1.28.16.1 src/sys/dev/usb/uvscom.c
cvs rdiff -u -r1.9 -r1.9.14.1 src/sys/dev/usb/uyurex.c
cvs rdiff -u -r1.28.2.7 -r1.28.2.8 src/sys/dev/usb/xhci.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/mips/adm5120/dev/ahci.c
diff -u src/sys/arch/mips/adm5120/dev/ahci.c:1.12.6.7 src/sys/arch/mips/adm5120/dev/ahci.c:1.12.6.8
--- src/sys/arch/mips/adm5120/dev/ahci.c:1.12.6.7 Wed Dec 3 13:19:38 2014
+++ src/sys/arch/mips/adm5120/dev/ahci.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ahci.c,v 1.12.6.7 2014/12/03 13:19:38 skrll Exp $ */
+/* $NetBSD: ahci.c,v 1.12.6.8 2014/12/03 14:18:07 skrll Exp $ */
/*-
* Copyright (c) 2007 Ruslan Ermilov and Vsevolod Lobko.
@@ -64,14 +64,14 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ahci.c,v 1.12.6.7 2014/12/03 13:19:38 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ahci.c,v 1.12.6.8 2014/12/03 14:18:07 skrll 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/bus.h>
#include <machine/cpu.h>
@@ -483,7 +483,7 @@ ahci_allocx(struct usbd_bus *bus)
}
#endif
} else {
- xfer = malloc(sizeof(*xfer), M_USB, M_NOWAIT);
+ xfer = kmem_alloc(sizeof(*xfer), KM_SLEEP);
}
if (xfer) {
@@ -1235,7 +1235,7 @@ ahci_device_intr_start(usbd_xfer_handle
DPRINTF(D_TRACE, ("INTRstart "));
- sx = malloc(sizeof(*sx), M_USB, M_NOWAIT);
+ sx = kmem_intr_alloc(sizeof(*sx), KM_NOSLEEP);
if (sx == NULL)
goto reterr;
memset(sx, 0, sizeof(*sx));
@@ -1302,7 +1302,7 @@ ahci_device_intr_abort(usbd_xfer_handle
sx = xfer->ux_hcpriv;
if (sx) {
callout_stop(&sx->sx_callout_t);
- free(sx, M_USB);
+ kmem_intr_free(sx, sizeof(*sx));
xfer->ux_hcpriv = NULL;
} else {
printf("%s: sx == NULL!\n", __func__);
Index: src/sys/dev/ic/sl811hs.c
diff -u src/sys/dev/ic/sl811hs.c:1.47.6.6 src/sys/dev/ic/sl811hs.c:1.47.6.7
--- src/sys/dev/ic/sl811hs.c:1.47.6.6 Wed Dec 3 13:19:38 2014
+++ src/sys/dev/ic/sl811hs.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: sl811hs.c,v 1.47.6.6 2014/12/03 13:19:38 skrll Exp $ */
+/* $NetBSD: sl811hs.c,v 1.47.6.7 2014/12/03 14:18:07 skrll Exp $ */
/*
* Not (c) 2007 Matthew Orgass
@@ -68,7 +68,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sl811hs.c,v 1.47.6.6 2014/12/03 13:19:38 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sl811hs.c,v 1.47.6.7 2014/12/03 14:18:07 skrll Exp $");
#include "opt_slhci.h"
@@ -78,7 +78,7 @@ __KERNEL_RCSID(0, "$NetBSD: sl811hs.c,v
#include <sys/kernel.h>
#include <sys/proc.h>
#include <sys/device.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/queue.h>
#include <sys/gcq.h>
#include <sys/intr.h>
@@ -761,7 +761,7 @@ slhci_allocx(struct usbd_bus *bus)
{
struct usbd_xfer *xfer;
- xfer = malloc(sizeof(*xfer), M_USB, M_NOWAIT|M_ZERO);
+ xfer = kmem_zalloc(sizeof(*xfer), KM_SLEEP);
DLOG(D_MEM, "allocx %p", xfer, 0,0,0);
@@ -796,7 +796,7 @@ slhci_freex(struct usbd_bus *bus, struct
xfer->ux_state = XFER_FREE;
#endif
- free(xfer, M_USB);
+ kmem_free(xfer, sizeof(*xfer));
}
static void
Index: src/sys/dev/usb/hid.c
diff -u src/sys/dev/usb/hid.c:1.35.16.1 src/sys/dev/usb/hid.c:1.35.16.2
--- src/sys/dev/usb/hid.c:1.35.16.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/hid.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: hid.c,v 1.35.16.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: hid.c,v 1.35.16.2 2014/12/03 14:18:07 skrll Exp $ */
/* $FreeBSD: src/sys/dev/usb/hid.c,v 1.11 1999/11/17 22:33:39 n_hibma Exp $ */
/*
@@ -32,12 +32,12 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hid.c,v 1.35.16.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hid.c,v 1.35.16.2 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <dev/usb/usb.h>
#include <dev/usb/usbhid.h>
@@ -91,7 +91,9 @@ hid_start_parse(const void *d, int len,
{
struct hid_data *s;
- s = malloc(sizeof *s, M_TEMP, M_WAITOK|M_ZERO);
+ s = kmem_zalloc(sizeof(*s), KM_SLEEP);
+ if (s == NULL)
+ return s;
s->start = s->p = d;
s->end = (const char *)d + len;
s->kind = kind;
@@ -104,10 +106,10 @@ hid_end_parse(struct hid_data *s)
while (s->cur.next != NULL) {
struct hid_item *hi = s->cur.next->next;
- free(s->cur.next, M_TEMP);
+ kmem_free(s->cur.next, sizeof(*s->cur.next));
s->cur.next = hi;
}
- free(s, M_TEMP);
+ kmem_free(s, sizeof(*s));
}
int
@@ -289,7 +291,7 @@ hid_get_item(struct hid_data *s, struct
c->loc.count = dval;
break;
case 10: /* Push */
- hi = malloc(sizeof *hi, M_TEMP, M_WAITOK);
+ hi = kmem_alloc(sizeof(*hi), KM_SLEEP);
*hi = *c;
c->next = hi;
break;
@@ -298,7 +300,7 @@ hid_get_item(struct hid_data *s, struct
oldpos = c->loc.pos;
*c = *hi;
c->loc.pos = oldpos;
- free(hi, M_TEMP);
+ kmem_free(hi, sizeof(*hi));
break;
default:
printf("Global bTag=%d\n", bTag);
Index: src/sys/dev/usb/if_athn_usb.c
diff -u src/sys/dev/usb/if_athn_usb.c:1.6.8.1 src/sys/dev/usb/if_athn_usb.c:1.6.8.2
--- src/sys/dev/usb/if_athn_usb.c:1.6.8.1 Tue Dec 2 09:00:33 2014
+++ src/sys/dev/usb/if_athn_usb.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_athn_usb.c,v 1.6.8.1 2014/12/02 09:00:33 skrll Exp $ */
+/* $NetBSD: if_athn_usb.c,v 1.6.8.2 2014/12/03 14:18:07 skrll Exp $ */
/* $OpenBSD: if_athn_usb.c,v 1.12 2013/01/14 09:50:31 jsing Exp $ */
/*-
@@ -22,7 +22,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_athn_usb.c,v 1.6.8.1 2014/12/02 09:00:33 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_athn_usb.c,v 1.6.8.2 2014/12/03 14:18:07 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -39,6 +39,7 @@ __KERNEL_RCSID(0, "$NetBSD: if_athn_usb.
#include <sys/socket.h>
#include <sys/sockio.h>
#include <sys/systm.h>
+#include <sys/kmem.h>
#include <sys/bus.h>
#include <sys/endian.h>
@@ -481,7 +482,7 @@ Static int
athn_usb_open_pipes(struct athn_usb_softc *usc)
{
usb_endpoint_descriptor_t *ed;
- int isize, error;
+ int error;
DPRINTFN(DBG_FN, usc, "\n");
@@ -507,21 +508,22 @@ athn_usb_open_pipes(struct athn_usb_soft
"could not retrieve Rx intr pipe descriptor\n");
goto fail;
}
- isize = UGETW(ed->wMaxPacketSize);
- if (isize == 0) {
+ usc->usc_ibufsize = UGETW(ed->wMaxPacketSize);
+ if (usc->usc_ibufsize == 0) {
aprint_error_dev(usc->usc_dev,
"invalid Rx intr pipe descriptor\n");
goto fail;
}
- usc->usc_ibuf = malloc(isize, M_USBDEV, M_NOWAIT);
+ usc->usc_ibuf = kmem_alloc(usc->usc_ibufsize, KM_SLEEP);
if (usc->usc_ibuf == NULL) {
aprint_error_dev(usc->usc_dev,
"could not allocate Rx intr buffer\n");
goto fail;
}
+
error = usbd_open_pipe_intr(usc->usc_iface, AR_PIPE_RX_INTR,
- USBD_SHORT_XFER_OK, &usc->usc_rx_intr_pipe, usc, usc->usc_ibuf, isize,
- athn_usb_intr, USBD_DEFAULT_INTERVAL);
+ USBD_SHORT_XFER_OK, &usc->usc_rx_intr_pipe, usc, usc->usc_ibuf,
+ usc->usc_ibufsize, athn_usb_intr, USBD_DEFAULT_INTERVAL);
if (error != 0) {
aprint_error_dev(usc->usc_dev,
"could not open Rx intr pipe\n");
@@ -566,7 +568,7 @@ athn_usb_close_pipes(struct athn_usb_sof
athn_usb_kill_pipe(&usc->usc_rx_intr_pipe);
ibuf = atomic_swap_ptr(&usc->usc_ibuf, NULL);
if (ibuf != NULL)
- free(ibuf, M_USBDEV);
+ kmem_free(ibuf, usc->usc_ibufsize);
}
Static int
Index: src/sys/dev/usb/if_athn_usb.h
diff -u src/sys/dev/usb/if_athn_usb.h:1.2 src/sys/dev/usb/if_athn_usb.h:1.2.16.1
--- src/sys/dev/usb/if_athn_usb.h:1.2 Sat Mar 30 14:14:31 2013
+++ src/sys/dev/usb/if_athn_usb.h Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_athn_usb.h,v 1.2 2013/03/30 14:14:31 christos Exp $ */
+/* $NetBSD: if_athn_usb.h,v 1.2.16.1 2014/12/03 14:18:07 skrll Exp $ */
/* $OpenBSD: if_athn_usb.h,v 1.3 2012/11/10 14:35:06 mikeb Exp $ */
/*-
@@ -463,6 +463,7 @@ struct athn_usb_softc {
usbd_pipe_handle usc_rx_intr_pipe;
usbd_pipe_handle usc_tx_intr_pipe;
uint8_t *usc_ibuf;
+ size_t usc_ibufsize;
struct ar_wmi_cmd_reg_write usc_wbuf[AR_MAX_WRITE_COUNT];
int usc_wcount;
Index: src/sys/dev/usb/if_kue.c
diff -u src/sys/dev/usb/if_kue.c:1.81.4.1 src/sys/dev/usb/if_kue.c:1.81.4.2
--- src/sys/dev/usb/if_kue.c:1.81.4.1 Tue Dec 2 09:00:33 2014
+++ src/sys/dev/usb/if_kue.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_kue.c,v 1.81.4.1 2014/12/02 09:00:33 skrll Exp $ */
+/* $NetBSD: if_kue.c,v 1.81.4.2 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 1997, 1998, 1999, 2000
@@ -71,7 +71,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_kue.c,v 1.81.4.1 2014/12/02 09:00:33 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_kue.c,v 1.81.4.2 2014/12/03 14:18:07 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -81,7 +81,7 @@ __KERNEL_RCSID(0, "$NetBSD: if_kue.c,v 1
#include <sys/systm.h>
#include <sys/sockio.h>
#include <sys/mbuf.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/kernel.h>
#include <sys/socket.h>
#include <sys/device.h>
@@ -475,8 +475,8 @@ kue_attach(device_t parent, device_t sel
return;
}
- sc->kue_mcfilters = malloc(KUE_MCFILTCNT(sc) * ETHER_ADDR_LEN,
- M_USBDEV, M_NOWAIT);
+ sc->kue_mcfilters = kmem_alloc(KUE_MCFILTCNT(sc) * ETHER_ADDR_LEN,
+ KM_SLEEP);
if (sc->kue_mcfilters == NULL) {
aprint_error_dev(self,
"no memory for multicast filter buffer\n");
@@ -528,7 +528,8 @@ kue_detach(device_t self, int flags)
s = splusb(); /* XXX why? */
if (sc->kue_mcfilters != NULL) {
- free(sc->kue_mcfilters, M_USBDEV);
+ kmem_free(sc->kue_mcfilters,
+ KUE_MCFILTCNT(sc) * ETHER_ADDR_LEN);
sc->kue_mcfilters = NULL;
}
Index: src/sys/dev/usb/if_otus.c
diff -u src/sys/dev/usb/if_otus.c:1.25.6.1 src/sys/dev/usb/if_otus.c:1.25.6.2
--- src/sys/dev/usb/if_otus.c:1.25.6.1 Tue Dec 2 09:00:33 2014
+++ src/sys/dev/usb/if_otus.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_otus.c,v 1.25.6.1 2014/12/02 09:00:33 skrll Exp $ */
+/* $NetBSD: if_otus.c,v 1.25.6.2 2014/12/03 14:18:07 skrll Exp $ */
/* $OpenBSD: if_otus.c,v 1.18 2010/08/27 17:08:00 jsg Exp $ */
/*-
@@ -23,12 +23,13 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_otus.c,v 1.25.6.1 2014/12/02 09:00:33 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_otus.c,v 1.25.6.2 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/sockio.h>
#include <sys/mbuf.h>
#include <sys/kernel.h>
+#include <sys/kmem.h>
#include <sys/kthread.h>
#include <sys/systm.h>
#include <sys/callout.h>
@@ -973,7 +974,7 @@ Static int
otus_open_pipes(struct otus_softc *sc)
{
usb_endpoint_descriptor_t *ed;
- int i, isize, error;
+ int i, error;
DPRINTFN(DBG_FN, sc, "\n");
@@ -990,21 +991,21 @@ otus_open_pipes(struct otus_softc *sc)
"could not retrieve Rx intr pipe descriptor\n");
goto fail;
}
- isize = UGETW(ed->wMaxPacketSize);
- if (isize == 0) {
+ sc->sc_ibuf_size = UGETW(ed->wMaxPacketSize);
+ if (sc->sc_ibuf_size == 0) {
aprint_error_dev(sc->sc_dev,
"invalid Rx intr pipe descriptor\n");
goto fail;
}
- sc->sc_ibuf = malloc(isize, M_USBDEV, M_NOWAIT);
+ sc->sc_ibuf = kmem_alloc(sc->sc_ibuf_size, KM_SLEEP);
if (sc->sc_ibuf == NULL) {
aprint_error_dev(sc->sc_dev,
"could not allocate Rx intr buffer\n");
goto fail;
}
error = usbd_open_pipe_intr(sc->sc_iface, AR_EPT_INTR_RX_NO,
- USBD_SHORT_XFER_OK, &sc->sc_cmd_rx_pipe, sc, sc->sc_ibuf, isize,
- otus_intr, USBD_DEFAULT_INTERVAL);
+ USBD_SHORT_XFER_OK, &sc->sc_cmd_rx_pipe, sc, sc->sc_ibuf,
+ sc->sc_ibuf_size, otus_intr, USBD_DEFAULT_INTERVAL);
if (error != 0) {
aprint_error_dev(sc->sc_dev, "could not open Rx intr pipe\n");
goto fail;
@@ -1077,7 +1078,7 @@ otus_close_pipes(struct otus_softc *sc)
usbd_close_pipe(sc->sc_cmd_rx_pipe);
}
if (sc->sc_ibuf != NULL)
- free(sc->sc_ibuf, M_USBDEV);
+ kmem_free(sc->sc_ibuf, sc->sc_ibuf_size);
if (sc->sc_data_tx_pipe != NULL)
usbd_close_pipe(sc->sc_data_tx_pipe);
if (sc->sc_cmd_tx_pipe != NULL)
Index: src/sys/dev/usb/if_otusvar.h
diff -u src/sys/dev/usb/if_otusvar.h:1.7.12.1 src/sys/dev/usb/if_otusvar.h:1.7.12.2
--- src/sys/dev/usb/if_otusvar.h:1.7.12.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/if_otusvar.h Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_otusvar.h,v 1.7.12.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: if_otusvar.h,v 1.7.12.2 2014/12/03 14:18:07 skrll Exp $ */
/* $OpenBSD: if_otusreg.h,v 1.6 2009/04/06 18:17:01 damien Exp $ */
/*-
@@ -182,6 +182,7 @@ struct otus_softc {
usbd_pipe_handle sc_cmd_tx_pipe;
usbd_pipe_handle sc_cmd_rx_pipe;
uint8_t *sc_ibuf;
+ size_t sc_ibuf_size;
int sc_if_flags;
int sc_tx_timer;
Index: src/sys/dev/usb/if_zyd.c
diff -u src/sys/dev/usb/if_zyd.c:1.36.14.1 src/sys/dev/usb/if_zyd.c:1.36.14.2
--- src/sys/dev/usb/if_zyd.c:1.36.14.1 Tue Dec 2 09:00:33 2014
+++ src/sys/dev/usb/if_zyd.c Wed Dec 3 14:18:07 2014
@@ -1,5 +1,5 @@
/* $OpenBSD: if_zyd.c,v 1.52 2007/02/11 00:08:04 jsg Exp $ */
-/* $NetBSD: if_zyd.c,v 1.36.14.1 2014/12/02 09:00:33 skrll Exp $ */
+/* $NetBSD: if_zyd.c,v 1.36.14.2 2014/12/03 14:18:07 skrll Exp $ */
/*-
* Copyright (c) 2006 by Damien Bergamini <[email protected]>
@@ -23,13 +23,14 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_zyd.c,v 1.36.14.1 2014/12/02 09:00:33 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_zyd.c,v 1.36.14.2 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/sockio.h>
#include <sys/proc.h>
#include <sys/mbuf.h>
#include <sys/kernel.h>
+#include <sys/kmem.h>
#include <sys/socket.h>
#include <sys/systm.h>
#include <sys/malloc.h>
@@ -493,7 +494,6 @@ Static int
zyd_open_pipes(struct zyd_softc *sc)
{
usb_endpoint_descriptor_t *edesc;
- int isize;
usbd_status error;
/* interrupt in */
@@ -501,16 +501,16 @@ zyd_open_pipes(struct zyd_softc *sc)
if (edesc == NULL)
return EINVAL;
- isize = UGETW(edesc->wMaxPacketSize);
- if (isize == 0) /* should not happen */
+ sc->ibuf_size = UGETW(edesc->wMaxPacketSize);
+ if (sc->ibuf_size == 0) /* should not happen */
return EINVAL;
- sc->ibuf = malloc(isize, M_USBDEV, M_NOWAIT);
+ sc->ibuf = kmem_alloc(sc->ibuf_size, KM_SLEEP);
if (sc->ibuf == NULL)
return ENOMEM;
error = usbd_open_pipe_intr(sc->sc_iface, 0x83, USBD_SHORT_XFER_OK,
- &sc->zyd_ep[ZYD_ENDPT_IIN], sc, sc->ibuf, isize, zyd_intr,
+ &sc->zyd_ep[ZYD_ENDPT_IIN], sc, sc->ibuf, sc->ibuf_size, zyd_intr,
USBD_DEFAULT_INTERVAL);
if (error != 0) {
printf("%s: open rx intr pipe failed: %s\n",
@@ -564,7 +564,7 @@ zyd_close_pipes(struct zyd_softc *sc)
}
}
if (sc->ibuf != NULL) {
- free(sc->ibuf, M_USBDEV);
+ kmem_free(sc->ibuf, sc->ibuf_size);
sc->ibuf = NULL;
}
}
Index: src/sys/dev/usb/if_zydreg.h
diff -u src/sys/dev/usb/if_zydreg.h:1.7 src/sys/dev/usb/if_zydreg.h:1.7.16.1
--- src/sys/dev/usb/if_zydreg.h:1.7 Fri Aug 24 09:01:23 2012
+++ src/sys/dev/usb/if_zydreg.h Wed Dec 3 14:18:07 2014
@@ -1,5 +1,5 @@
/* $OpenBSD: if_zydreg.h,v 1.19 2006/11/30 19:28:07 damien Exp $ */
-/* $NetBSD: if_zydreg.h,v 1.7 2012/08/24 09:01:23 msaitoh Exp $ */
+/* $NetBSD: if_zydreg.h,v 1.7.16.1 2014/12/03 14:18:07 skrll Exp $ */
/*-
* Copyright (c) 2006 by Damien Bergamini <[email protected]>
@@ -1219,6 +1219,7 @@ struct zyd_softc {
#define ZYD_ENDPT_CNT 4
usbd_pipe_handle zyd_ep[ZYD_ENDPT_CNT];
uint8_t *ibuf;
+ size_t ibuf_size;
struct zyd_rx_data rx_data[ZYD_RX_LIST_CNT];
struct zyd_tx_data tx_data[ZYD_TX_LIST_CNT];
Index: src/sys/dev/usb/u3g.c
diff -u src/sys/dev/usb/u3g.c:1.31.2.3 src/sys/dev/usb/u3g.c:1.31.2.4
--- src/sys/dev/usb/u3g.c:1.31.2.3 Wed Dec 3 12:52:07 2014
+++ src/sys/dev/usb/u3g.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: u3g.c,v 1.31.2.3 2014/12/03 12:52:07 skrll Exp $ */
+/* $NetBSD: u3g.c,v 1.31.2.4 2014/12/03 14:18:07 skrll Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -50,12 +50,12 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: u3g.c,v 1.31.2.3 2014/12/03 12:52:07 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: u3g.c,v 1.31.2.4 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/bus.h>
#include <sys/conf.h>
#include <sys/tty.h>
@@ -129,6 +129,7 @@ struct u3g_softc {
usbd_pipe_handle sc_intr_pipe; /* Interrupt pipe */
u_char *sc_intr_buff; /* Interrupt buffer */
+ size_t sc_intr_size; /* buffer size */
};
/*
@@ -816,7 +817,8 @@ u3g_attach(device_t parent, device_t sel
* the tty(4) device is open or not.
*/
if (intr_address != -1) {
- sc->sc_intr_buff = malloc(intr_size, M_USBDEV, M_WAITOK);
+ sc->sc_intr_size = intr_size;
+ sc->sc_intr_buff = kmem_alloc(intr_size, KM_SLEEP);
error = usbd_open_pipe_intr(iface, intr_address,
USBD_SHORT_XFER_OK, &sc->sc_intr_pipe, sc, sc->sc_intr_buff,
intr_size, u3g_intr, 100);
@@ -860,7 +862,7 @@ u3g_detach(device_t self, int flags)
sc->sc_intr_pipe = NULL;
}
if (sc->sc_intr_buff != NULL) {
- free(sc->sc_intr_buff, M_USBDEV);
+ kmem_free(sc->sc_intr_buff, sc->sc_intr_size);
sc->sc_intr_buff = NULL;
}
Index: src/sys/dev/usb/uaudio.c
diff -u src/sys/dev/usb/uaudio.c:1.140.2.3 src/sys/dev/usb/uaudio.c:1.140.2.4
--- src/sys/dev/usb/uaudio.c:1.140.2.3 Wed Dec 3 12:52:07 2014
+++ src/sys/dev/usb/uaudio.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uaudio.c,v 1.140.2.3 2014/12/03 12:52:07 skrll Exp $ */
+/* $NetBSD: uaudio.c,v 1.140.2.4 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 1999, 2012 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uaudio.c,v 1.140.2.3 2014/12/03 12:52:07 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uaudio.c,v 1.140.2.4 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -543,7 +543,8 @@ uaudio_detach(device_t self, int flags)
sc->sc_dev);
if (sc->sc_formats != NULL)
- free(sc->sc_formats, M_USBDEV);
+ kmem_free(sc->sc_formats,
+ sizeof(struct audio_format) * sc->sc_nformats);
auconv_delete_encodings(sc->sc_encodings);
mutex_destroy(&sc->sc_lock);
@@ -598,7 +599,7 @@ uaudio_mixer_add_ctl(struct uaudio_softc
DPRINTF("adding %s\n", mc->ctlname);
}
len = sizeof(*mc) * (sc->sc_nctls + 1);
- nmc = malloc(len, M_USBDEV, M_NOWAIT);
+ nmc = kmem_alloc(len, KM_SLEEP);
if (nmc == NULL) {
aprint_error("uaudio_mixer_add_ctl: no memory\n");
return;
@@ -606,7 +607,7 @@ uaudio_mixer_add_ctl(struct uaudio_softc
/* Copy old data, if there was any */
if (sc->sc_nctls != 0) {
memcpy(nmc, sc->sc_ctls, sizeof(*mc) * (sc->sc_nctls));
- free(sc->sc_ctls, M_USBDEV);
+ kmem_free(sc->sc_ctls, sizeof(*mc) * sc->sc_nctls);
}
sc->sc_ctls = nmc;
@@ -1531,7 +1532,7 @@ uaudio_add_alt(struct uaudio_softc *sc,
struct as_info *nai;
len = sizeof(*ai) * (sc->sc_nalts + 1);
- nai = malloc(len, M_USBDEV, M_NOWAIT);
+ nai = kmem_alloc(len, KM_SLEEP);
if (nai == NULL) {
aprint_error("uaudio_add_alt: no memory\n");
return;
@@ -1539,7 +1540,8 @@ uaudio_add_alt(struct uaudio_softc *sc,
/* Copy old data, if there was any */
if (sc->sc_nalts != 0) {
memcpy(nai, sc->sc_alts, sizeof(*ai) * (sc->sc_nalts));
- free(sc->sc_alts, M_USBDEV);
+ kmem_free(sc->sc_alts,
+ sizeof(struct audio_format) * sc->sc_nalts);
}
sc->sc_alts = nai;
DPRINTFN(2,"adding alt=%d, enc=%d\n",
@@ -1820,8 +1822,8 @@ uaudio_identify_as(struct uaudio_softc *
}
/* build audio_format array */
- sc->sc_formats = malloc(sizeof(struct audio_format) * sc->sc_nalts,
- M_USBDEV, M_NOWAIT);
+ sc->sc_formats = kmem_alloc(sizeof(struct audio_format) * sc->sc_nalts,
+ KM_SLEEP);
if (sc->sc_formats == NULL)
return USBD_NOMEM;
sc->sc_nformats = sc->sc_nalts;
@@ -1860,7 +1862,8 @@ uaudio_identify_as(struct uaudio_softc *
if (0 != auconv_create_encodings(sc->sc_formats, sc->sc_nformats,
&sc->sc_encodings)) {
- free(sc->sc_formats, M_DEVBUF);
+ kmem_free(sc->sc_formats,
+ sizeof(struct audio_format) * sc->sc_nformats);
sc->sc_formats = NULL;
return ENOMEM;
}
Index: src/sys/dev/usb/ubsa.c
diff -u src/sys/dev/usb/ubsa.c:1.30 src/sys/dev/usb/ubsa.c:1.30.16.1
--- src/sys/dev/usb/ubsa.c:1.30 Fri Feb 24 06:48:24 2012
+++ src/sys/dev/usb/ubsa.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ubsa.c,v 1.30 2012/02/24 06:48:24 mrg Exp $ */
+/* $NetBSD: ubsa.c,v 1.30.16.1 2014/12/03 14:18:07 skrll Exp $ */
/*-
* Copyright (c) 2002, Alexander Kabaev <kan.FreeBSD.org>.
* All rights reserved.
@@ -54,12 +54,12 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ubsa.c,v 1.30 2012/02/24 06:48:24 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ubsa.c,v 1.30.16.1 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/ioccom.h>
#include <sys/fcntl.h>
#include <sys/conf.h>
@@ -326,7 +326,7 @@ ubsa_detach(device_t self, int flags)
if (sc->sc_intr_pipe != NULL) {
usbd_abort_pipe(sc->sc_intr_pipe);
usbd_close_pipe(sc->sc_intr_pipe);
- free(sc->sc_intr_buf, M_USBDEV);
+ kmem_free(sc->sc_intr_buf, sc->sc_isize);
sc->sc_intr_pipe = NULL;
}
Index: src/sys/dev/usb/ubsa_common.c
diff -u src/sys/dev/usb/ubsa_common.c:1.9.14.1 src/sys/dev/usb/ubsa_common.c:1.9.14.2
--- src/sys/dev/usb/ubsa_common.c:1.9.14.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/ubsa_common.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ubsa_common.c,v 1.9.14.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: ubsa_common.c,v 1.9.14.2 2014/12/03 14:18:07 skrll Exp $ */
/*-
* Copyright (c) 2002, Alexander Kabaev <kan.FreeBSD.org>.
* All rights reserved.
@@ -54,12 +54,12 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ubsa_common.c,v 1.9.14.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ubsa_common.c,v 1.9.14.2 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/ioccom.h>
#include <sys/fcntl.h>
#include <sys/conf.h>
@@ -345,7 +345,7 @@ ubsa_open(void *addr, int portno)
return (ENXIO);
if (sc->sc_intr_number != -1 && sc->sc_intr_pipe == NULL) {
- sc->sc_intr_buf = malloc(sc->sc_isize, M_USBDEV, M_WAITOK);
+ sc->sc_intr_buf = kmem_alloc(sc->sc_isize, KM_SLEEP);
/* XXX only iface# = 0 has intr line */
/* XXX E220 specific? need to check */
err = usbd_open_pipe_intr(sc->sc_iface[0],
@@ -390,7 +390,7 @@ ubsa_close(void *addr, int portno)
printf("%s: close interrupt pipe failed: %s\n",
device_xname(sc->sc_dev),
usbd_errstr(err));
- free(sc->sc_intr_buf, M_USBDEV);
+ kmem_free(sc->sc_intr_buf, sc->sc_isize);
sc->sc_intr_pipe = NULL;
}
}
Index: src/sys/dev/usb/ubt.c
diff -u src/sys/dev/usb/ubt.c:1.51.4.1 src/sys/dev/usb/ubt.c:1.51.4.2
--- src/sys/dev/usb/ubt.c:1.51.4.1 Tue Dec 2 09:00:34 2014
+++ src/sys/dev/usb/ubt.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ubt.c,v 1.51.4.1 2014/12/02 09:00:34 skrll Exp $ */
+/* $NetBSD: ubt.c,v 1.51.4.2 2014/12/03 14:18:07 skrll Exp $ */
/*-
* Copyright (c) 2006 Itronix Inc.
@@ -67,13 +67,13 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ubt.c,v 1.51.4.1 2014/12/02 09:00:34 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ubt.c,v 1.51.4.2 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/device.h>
#include <sys/ioctl.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/mbuf.h>
#include <sys/proc.h>
#include <sys/sysctl.h>
@@ -769,7 +769,7 @@ ubt_abortdealloc(struct ubt_softc *sc)
/* Free event buffer */
if (sc->sc_evt_buf != NULL) {
- free(sc->sc_evt_buf, M_USBDEV);
+ kmem_free(sc->sc_evt_buf, UBT_BUFSIZ_EVENT);
sc->sc_evt_buf = NULL;
}
@@ -843,7 +843,7 @@ ubt_enable(device_t self)
s = splusb();
/* Events */
- sc->sc_evt_buf = malloc(UBT_BUFSIZ_EVENT, M_USBDEV, M_NOWAIT);
+ sc->sc_evt_buf = kmem_alloc(UBT_BUFSIZ_EVENT, KM_SLEEP);
if (sc->sc_evt_buf == NULL) {
error = ENOMEM;
goto bad;
Index: src/sys/dev/usb/uchcom.c
diff -u src/sys/dev/usb/uchcom.c:1.13 src/sys/dev/usb/uchcom.c:1.13.6.1
--- src/sys/dev/usb/uchcom.c:1.13 Sat Mar 15 19:20:27 2014
+++ src/sys/dev/usb/uchcom.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uchcom.c,v 1.13 2014/03/15 19:20:27 martin Exp $ */
+/* $NetBSD: uchcom.c,v 1.13.6.1 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uchcom.c,v 1.13 2014/03/15 19:20:27 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uchcom.c,v 1.13.6.1 2014/12/03 14:18:07 skrll Exp $");
/*
* driver for WinChipHead CH341/340, the worst USB-serial chip in the world.
@@ -39,7 +39,7 @@ __KERNEL_RCSID(0, "$NetBSD: uchcom.c,v 1
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/ioctl.h>
#include <sys/conf.h>
#include <sys/tty.h>
@@ -872,7 +872,7 @@ setup_intr_pipe(struct uchcom_softc *sc)
usbd_status err;
if (sc->sc_intr_endpoint != -1 && sc->sc_intr_pipe == NULL) {
- sc->sc_intr_buf = malloc(sc->sc_intr_size, M_USBDEV, M_WAITOK);
+ sc->sc_intr_buf = kmem_alloc(sc->sc_intr_size, KM_SLEEP);
err = usbd_open_pipe_intr(sc->sc_iface,
sc->sc_intr_endpoint,
USBD_SHORT_XFER_OK,
@@ -909,7 +909,7 @@ close_intr_pipe(struct uchcom_softc *sc)
aprint_error_dev(sc->sc_dev,
"close interrupt pipe failed: %s\n",
usbd_errstr(err));
- free(sc->sc_intr_buf, M_USBDEV);
+ kmem_free(sc->sc_intr_buf, sc->sc_intr_size);
sc->sc_intr_pipe = NULL;
}
}
Index: src/sys/dev/usb/ucycom.c
diff -u src/sys/dev/usb/ucycom.c:1.41.2.1 src/sys/dev/usb/ucycom.c:1.41.2.2
--- src/sys/dev/usb/ucycom.c:1.41.2.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/ucycom.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ucycom.c,v 1.41.2.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: ucycom.c,v 1.41.2.2 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -38,13 +38,13 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ucycom.c,v 1.41.2.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ucycom.c,v 1.41.2.2 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/conf.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/device.h>
#include <sys/sysctl.h>
#include <sys/tty.h>
@@ -380,7 +380,7 @@ ucycomopen(dev_t dev, int flag, int mode
ttsetwater(tp);
/* Allocate an output report buffer */
- sc->sc_obuf = malloc(sc->sc_olen, M_USBDEV, M_WAITOK);
+ sc->sc_obuf = kmem_alloc(sc->sc_olen, KM_SLEEP);
DPRINTF(("ucycomopen: sc->sc_obuf=%p\n", sc->sc_obuf));
@@ -1127,6 +1127,6 @@ ucycom_cleanup(struct ucycom_softc *sc)
DPRINTF(("ucycom_cleanup: closing uhidev\n"));
if (sc->sc_obuf !=NULL)
- free (sc->sc_obuf, M_USBDEV);
+ kmem_free(sc->sc_obuf, sc->sc_olen);
uhidev_close(&sc->sc_hdev);
}
Index: src/sys/dev/usb/udsir.c
diff -u src/sys/dev/usb/udsir.c:1.1.14.2 src/sys/dev/usb/udsir.c:1.1.14.3
--- src/sys/dev/usb/udsir.c:1.1.14.2 Tue Dec 2 09:00:34 2014
+++ src/sys/dev/usb/udsir.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: udsir.c,v 1.1.14.2 2014/12/02 09:00:34 skrll Exp $ */
+/* $NetBSD: udsir.c,v 1.1.14.3 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,14 +30,14 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: udsir.c,v 1.1.14.2 2014/12/02 09:00:34 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udsir.c,v 1.1.14.3 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/device.h>
#include <sys/errno.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/conf.h>
#include <sys/file.h>
#include <sys/poll.h>
@@ -349,7 +349,7 @@ udsir_open(void *h, int flag, int mode,
error = ENOMEM;
goto bad5;
}
- sc->sc_ur_buf = malloc(IRDA_MAX_FRAME_SIZE, M_USBDEV, M_NOWAIT);
+ sc->sc_ur_buf = kmem_alloc(IRDA_MAX_FRAME_SIZE, KM_SLEEP);
if (sc->sc_ur_buf == NULL) {
error = ENOMEM;
goto bad5;
@@ -436,7 +436,7 @@ udsir_close(void *h, int flag, int mode,
sc->sc_wr_buf = NULL;
}
if (sc->sc_ur_buf != NULL) {
- free(sc->sc_ur_buf, M_USBDEV);
+ kmem_free(sc->sc_ur_buf, IRDA_MAX_FRAME_SIZE);
sc->sc_ur_buf = NULL;
}
Index: src/sys/dev/usb/uep.c
diff -u src/sys/dev/usb/uep.c:1.19.6.1 src/sys/dev/usb/uep.c:1.19.6.2
--- src/sys/dev/usb/uep.c:1.19.6.1 Sun Nov 30 12:18:58 2014
+++ src/sys/dev/usb/uep.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uep.c,v 1.19.6.1 2014/11/30 12:18:58 skrll Exp $ */
+/* $NetBSD: uep.c,v 1.19.6.2 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -33,12 +33,12 @@
* eGalax USB touchpanel controller driver.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uep.c,v 1.19.6.1 2014/11/30 12:18:58 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uep.c,v 1.19.6.2 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/device.h>
#include <sys/ioctl.h>
#include <sys/vnode.h>
@@ -285,12 +285,12 @@ uep_enable(void *v)
if (sc->sc_isize == 0)
return 0;
- sc->sc_ibuf = malloc(sc->sc_isize, M_USBDEV, M_WAITOK);
+ sc->sc_ibuf = kmem_alloc(sc->sc_isize, KM_SLEEP);
err = usbd_open_pipe_intr(sc->sc_iface, sc->sc_intr_number,
USBD_SHORT_XFER_OK, &sc->sc_intr_pipe, sc, sc->sc_ibuf,
sc->sc_isize, uep_intr, USBD_DEFAULT_INTERVAL);
if (err) {
- free(sc->sc_ibuf, M_USBDEV);
+ kmem_free(sc->sc_ibuf, sc->sc_isize);
sc->sc_intr_pipe = NULL;
return EIO;
}
@@ -318,7 +318,7 @@ uep_disable(void *v)
}
if (sc->sc_ibuf != NULL) {
- free(sc->sc_ibuf, M_USBDEV);
+ kmem_free(sc->sc_ibuf, sc->sc_isize);
sc->sc_ibuf = NULL;
}
Index: src/sys/dev/usb/ugen.c
diff -u src/sys/dev/usb/ugen.c:1.126.2.3 src/sys/dev/usb/ugen.c:1.126.2.4
--- src/sys/dev/usb/ugen.c:1.126.2.3 Tue Dec 2 09:00:34 2014
+++ src/sys/dev/usb/ugen.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ugen.c,v 1.126.2.3 2014/12/02 09:00:34 skrll Exp $ */
+/* $NetBSD: ugen.c,v 1.126.2.4 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 1998, 2004 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ugen.c,v 1.126.2.3 2014/12/02 09:00:34 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ugen.c,v 1.126.2.4 2014/12/03 14:18:07 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -47,7 +47,7 @@ __KERNEL_RCSID(0, "$NetBSD: ugen.c,v 1.1
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/device.h>
#include <sys/ioctl.h>
#include <sys/conf.h>
@@ -409,11 +409,11 @@ ugenopen(dev_t dev, int flag, int mode,
isize = UGETW(edesc->wMaxPacketSize);
if (isize == 0) /* shouldn't happen */
return (EINVAL);
- sce->ibuf = malloc(isize, M_USBDEV, M_WAITOK);
+ sce->ibuf = kmem_alloc(isize, KM_SLEEP);
DPRINTFN(5, ("ugenopen: intr endpt=%d,isize=%d\n",
endpt, isize));
if (clalloc(&sce->q, UGEN_IBSIZE, 0) == -1) {
- free(sce->ibuf, M_USBDEV);
+ kmem_free(sce->ibuf, isize);
sce->ibuf = NULL;
return (ENOMEM);
}
@@ -424,7 +424,7 @@ ugenopen(dev_t dev, int flag, int mode,
USBD_DEFAULT_INTERVAL);
if (err) {
clfree(&sce->q);
- free(sce->ibuf, M_USBDEV);
+ kmem_free(sce->ibuf, isize);
sce->ibuf = NULL;
return (EIO);
}
@@ -448,8 +448,8 @@ ugenopen(dev_t dev, int flag, int mode,
isize = UGETW(edesc->wMaxPacketSize);
if (isize == 0) /* shouldn't happen */
return (EINVAL);
- sce->ibuf = malloc(isize * UGEN_NISOFRAMES,
- M_USBDEV, M_WAITOK);
+ sce->ibuf = kmem_alloc(isize * UGEN_NISOFRAMES,
+ KM_SLEEP);
sce->cur = sce->fill = sce->ibuf;
sce->limit = sce->ibuf + isize * UGEN_NISOFRAMES;
DPRINTFN(5, ("ugenopen: isoc endpt=%d, isize=%d\n",
@@ -457,7 +457,7 @@ ugenopen(dev_t dev, int flag, int mode,
err = usbd_open_pipe(sce->iface,
edesc->bEndpointAddress, 0, &sce->pipeh);
if (err) {
- free(sce->ibuf, M_USBDEV);
+ kmem_free(sce->ibuf, isize * UGEN_NISOFRAMES);
sce->ibuf = NULL;
return (EIO);
}
@@ -490,7 +490,7 @@ ugenopen(dev_t dev, int flag, int mode,
usbd_free_xfer(sce->isoreqs[i].xfer);
usbd_close_pipe(sce->pipeh);
sce->pipeh = NULL;
- free(sce->ibuf, M_USBDEV);
+ kmem_free(sce->ibuf, isize * UGEN_NISOFRAMES);
sce->ibuf = NULL;
return (ENOMEM);
case UE_CONTROL:
@@ -544,26 +544,31 @@ ugenclose(dev_t dev, int flag, int mode,
usbd_close_pipe(sce->pipeh);
sce->pipeh = NULL;
+ int isize = UGETW(sce->edesc->wMaxPacketSize);
+ int msize = 0;
+
switch (sce->edesc->bmAttributes & UE_XFERTYPE) {
case UE_INTERRUPT:
ndflush(&sce->q, sce->q.c_cc);
clfree(&sce->q);
+ msize = isize;
break;
case UE_ISOCHRONOUS:
for (i = 0; i < UGEN_NISOREQS; ++i)
usbd_free_xfer(sce->isoreqs[i].xfer);
+ msize = isize * UGEN_NISOFRAMES;
break;
case UE_BULK:
- if (sce->state & (UGEN_BULK_RA | UGEN_BULK_WB))
- /* ibuf freed below */
+ if (sce->state & (UGEN_BULK_RA | UGEN_BULK_WB)) {
usbd_free_xfer(sce->ra_wb_xfer);
+ msize = sce->ra_wb_bufsize;
+ }
break;
default:
break;
}
-
if (sce->ibuf != NULL) {
- free(sce->ibuf, M_USBDEV);
+ kmem_free(sce->ibuf, msize);
sce->ibuf = NULL;
}
}
@@ -1381,7 +1386,7 @@ ugen_get_cdesc(struct ugen_softc *sc, in
len = UGETW(tdesc->wTotalLength);
if (lenp)
*lenp = len;
- cdesc = malloc(len, M_TEMP, M_WAITOK);
+ cdesc = kmem_alloc(len, KM_SLEEP);
memcpy(cdesc, tdesc, len);
DPRINTFN(5,("ugen_get_cdesc: current, len=%d\n", len));
} else {
@@ -1392,10 +1397,10 @@ ugen_get_cdesc(struct ugen_softc *sc, in
DPRINTFN(5,("ugen_get_cdesc: index=%d, len=%d\n", index, len));
if (lenp)
*lenp = len;
- cdesc = malloc(len, M_TEMP, M_WAITOK);
+ cdesc = kmem_alloc(len, KM_SLEEP);
err = usbd_get_config_desc_full(sc->sc_udev, index, cdesc, len);
if (err) {
- free(cdesc, M_TEMP);
+ kmem_free(cdesc, len);
return (0);
}
}
@@ -1430,6 +1435,7 @@ ugen_do_ioctl(struct ugen_softc *sc, int
struct usb_alt_interface *ai;
struct usb_string_desc *si;
uint8_t conf, alt;
+ int cdesclen;
DPRINTFN(5, ("ugenioctl: cmd=%08lx\n", cmd));
if (sc->sc_dying)
@@ -1492,8 +1498,7 @@ ugen_do_ioctl(struct ugen_softc *sc, int
usbd_free_xfer(sce->ra_wb_xfer);
return (ENOMEM);
}
- sce->ibuf = malloc(sce->ra_wb_bufsize,
- M_USBDEV, M_WAITOK);
+ sce->ibuf = kmem_alloc(sce->ra_wb_bufsize, KM_SLEEP);
sce->fill = sce->cur = sce->ibuf;
sce->limit = sce->ibuf + sce->ra_wb_bufsize;
sce->ra_wb_used = 0;
@@ -1508,7 +1513,7 @@ ugen_do_ioctl(struct ugen_softc *sc, int
err = usbd_transfer(sce->ra_wb_xfer);
if (err != USBD_IN_PROGRESS) {
sce->state &= ~UGEN_BULK_RA;
- free(sce->ibuf, M_USBDEV);
+ kmem_free(sce->ibuf, sce->ra_wb_bufsize);
sce->ibuf = NULL;
usbd_free_xfer(sce->ra_wb_xfer);
return (EIO);
@@ -1526,7 +1531,7 @@ ugen_do_ioctl(struct ugen_softc *sc, int
* should keep it around and drain the buffer
* instead.
*/
- free(sce->ibuf, M_USBDEV);
+ kmem_free(sce->ibuf, sce->ra_wb_bufsize);
sce->ibuf = NULL;
}
return (0);
@@ -1561,8 +1566,7 @@ ugen_do_ioctl(struct ugen_softc *sc, int
usbd_free_xfer(sce->ra_wb_xfer);
return (ENOMEM);
}
- sce->ibuf = malloc(sce->ra_wb_bufsize,
- M_USBDEV, M_WAITOK);
+ sce->ibuf = kmem_alloc(sce->ra_wb_bufsize, KM_SLEEP);
sce->fill = sce->cur = sce->ibuf;
sce->limit = sce->ibuf + sce->ra_wb_bufsize;
sce->ra_wb_used = 0;
@@ -1580,7 +1584,7 @@ ugen_do_ioctl(struct ugen_softc *sc, int
*/
usbd_abort_pipe(sce->pipeh);
usbd_free_xfer(sce->ra_wb_xfer);
- free(sce->ibuf, M_USBDEV);
+ kmem_free(sce->ibuf, sce->ra_wb_bufsize);
sce->ibuf = NULL;
}
return (0);
@@ -1670,17 +1674,17 @@ ugen_do_ioctl(struct ugen_softc *sc, int
break;
case USB_GET_NO_ALT:
ai = (struct usb_alt_interface *)addr;
- cdesc = ugen_get_cdesc(sc, ai->uai_config_index, 0);
+ cdesc = ugen_get_cdesc(sc, ai->uai_config_index, &cdesclen);
if (cdesc == NULL)
return (EINVAL);
idesc = usbd_find_idesc(cdesc, ai->uai_interface_index, 0);
if (idesc == NULL) {
- free(cdesc, M_TEMP);
+ kmem_free(cdesc, cdesclen);
return (EINVAL);
}
ai->uai_alt_no = usbd_get_no_alts(cdesc,
idesc->bInterfaceNumber);
- free(cdesc, M_TEMP);
+ kmem_free(cdesc, cdesclen);
break;
case USB_GET_DEVICE_DESC:
*(usb_device_descriptor_t *)addr =
@@ -1688,15 +1692,15 @@ ugen_do_ioctl(struct ugen_softc *sc, int
break;
case USB_GET_CONFIG_DESC:
cd = (struct usb_config_desc *)addr;
- cdesc = ugen_get_cdesc(sc, cd->ucd_config_index, 0);
+ cdesc = ugen_get_cdesc(sc, cd->ucd_config_index, &cdesclen);
if (cdesc == NULL)
return (EINVAL);
cd->ucd_desc = *cdesc;
- free(cdesc, M_TEMP);
+ kmem_free(cdesc, cdesclen);
break;
case USB_GET_INTERFACE_DESC:
id = (struct usb_interface_desc *)addr;
- cdesc = ugen_get_cdesc(sc, id->uid_config_index, 0);
+ cdesc = ugen_get_cdesc(sc, id->uid_config_index, &cdesclen);
if (cdesc == NULL)
return (EINVAL);
if (id->uid_config_index == USB_CURRENT_CONFIG_INDEX &&
@@ -1706,15 +1710,15 @@ ugen_do_ioctl(struct ugen_softc *sc, int
alt = id->uid_alt_index;
idesc = usbd_find_idesc(cdesc, id->uid_interface_index, alt);
if (idesc == NULL) {
- free(cdesc, M_TEMP);
+ kmem_free(cdesc, cdesclen);
return (EINVAL);
}
id->uid_desc = *idesc;
- free(cdesc, M_TEMP);
+ kmem_free(cdesc, cdesclen);
break;
case USB_GET_ENDPOINT_DESC:
ed = (struct usb_endpoint_desc *)addr;
- cdesc = ugen_get_cdesc(sc, ed->ued_config_index, 0);
+ cdesc = ugen_get_cdesc(sc, ed->ued_config_index, &cdesclen);
if (cdesc == NULL)
return (EINVAL);
if (ed->ued_config_index == USB_CURRENT_CONFIG_INDEX &&
@@ -1725,11 +1729,11 @@ ugen_do_ioctl(struct ugen_softc *sc, int
edesc = usbd_find_edesc(cdesc, ed->ued_interface_index,
alt, ed->ued_endpoint_index);
if (edesc == NULL) {
- free(cdesc, M_TEMP);
+ kmem_free(cdesc, cdesclen);
return (EINVAL);
}
ed->ued_desc = *edesc;
- free(cdesc, M_TEMP);
+ kmem_free(cdesc, cdesclen);
break;
case USB_GET_FULL_DESC:
{
@@ -1739,9 +1743,10 @@ ugen_do_ioctl(struct ugen_softc *sc, int
struct usb_full_desc *fd = (struct usb_full_desc *)addr;
int error;
- cdesc = ugen_get_cdesc(sc, fd->ufd_config_index, &len);
+ cdesc = ugen_get_cdesc(sc, fd->ufd_config_index, &cdesclen);
if (cdesc == NULL)
return (EINVAL);
+ len = cdesclen;
if (len > fd->ufd_size)
len = fd->ufd_size;
iov.iov_base = (void *)fd->ufd_data;
@@ -1753,7 +1758,7 @@ ugen_do_ioctl(struct ugen_softc *sc, int
uio.uio_rw = UIO_READ;
uio.uio_vmspace = l->l_proc->p_vmspace;
error = uiomove((void *)cdesc, len, &uio);
- free(cdesc, M_TEMP);
+ kmem_free(cdesc, cdesclen);
return (error);
}
case USB_GET_STRING_DESC: {
@@ -1799,7 +1804,7 @@ ugen_do_ioctl(struct ugen_softc *sc, int
ur->ucr_request.bmRequestType & UT_READ ?
UIO_READ : UIO_WRITE;
uio.uio_vmspace = l->l_proc->p_vmspace;
- ptr = malloc(len, M_TEMP, M_WAITOK);
+ ptr = kmem_alloc(len, KM_SLEEP);
if (uio.uio_rw == UIO_WRITE) {
error = uiomove(ptr, len, &uio);
if (error)
@@ -1815,14 +1820,15 @@ ugen_do_ioctl(struct ugen_softc *sc, int
}
if (len != 0) {
if (uio.uio_rw == UIO_READ) {
- error = uiomove(ptr, len, &uio);
+ size_t alen = min(len, ur->ucr_actlen);
+ error = uiomove(ptr, alen, &uio);
if (error)
goto ret;
}
}
ret:
if (ptr)
- free(ptr, M_TEMP);
+ kmem_free(ptr, len);
return (error);
}
case USB_GET_DEVICEINFO:
Index: src/sys/dev/usb/uhid.c
diff -u src/sys/dev/usb/uhid.c:1.92.4.2 src/sys/dev/usb/uhid.c:1.92.4.3
--- src/sys/dev/usb/uhid.c:1.92.4.2 Sun Nov 30 13:14:11 2014
+++ src/sys/dev/usb/uhid.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uhid.c,v 1.92.4.2 2014/11/30 13:14:11 skrll Exp $ */
+/* $NetBSD: uhid.c,v 1.92.4.3 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 1998, 2004, 2008, 2012 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhid.c,v 1.92.4.2 2014/11/30 13:14:11 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhid.c,v 1.92.4.3 2014/12/03 14:18:07 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -44,7 +44,7 @@ __KERNEL_RCSID(0, "$NetBSD: uhid.c,v 1.9
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/signalvar.h>
#include <sys/device.h>
#include <sys/ioctl.h>
@@ -330,7 +330,7 @@ uhidopen(dev_t dev, int flag, int mode,
mutex_exit(&sc->sc_access_lock);
return (ENOMEM);
}
- sc->sc_obuf = malloc(sc->sc_osize, M_USBDEV, M_WAITOK);
+ sc->sc_obuf = kmem_alloc(sc->sc_osize, KM_SLEEP);
sc->sc_state &= ~UHID_IMMED;
mutex_enter(proc_lock);
@@ -350,7 +350,7 @@ uhidclose(dev_t dev, int flag, int mode,
DPRINTF(("uhidclose: sc=%p\n", sc));
clfree(&sc->sc_q);
- free(sc->sc_obuf, M_USBDEV);
+ kmem_free(sc->sc_obuf, sc->sc_osize);
mutex_enter(proc_lock);
sc->sc_async = NULL;
Index: src/sys/dev/usb/uhidev.c
diff -u src/sys/dev/usb/uhidev.c:1.61.4.2 src/sys/dev/usb/uhidev.c:1.61.4.3
--- src/sys/dev/usb/uhidev.c:1.61.4.2 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/uhidev.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uhidev.c,v 1.61.4.2 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: uhidev.c,v 1.61.4.3 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2001, 2012 The NetBSD Foundation, Inc.
@@ -35,12 +35,12 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhidev.c,v 1.61.4.2 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhidev.c,v 1.61.4.3 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/signalvar.h>
#include <sys/device.h>
#include <sys/ioctl.h>
@@ -226,7 +226,7 @@ uhidev_attach(device_t parent, device_t
}
if (descptr) {
- desc = malloc(size, M_USBDEV, M_NOWAIT);
+ desc = kmem_alloc(size, KM_SLEEP);
if (desc == NULL)
err = USBD_NOMEM;
else {
@@ -235,8 +235,7 @@ uhidev_attach(device_t parent, device_t
}
} else {
desc = NULL;
- err = usbd_read_report_desc(uaa->iface, &desc, &size,
- M_USBDEV);
+ err = usbd_read_report_desc(uaa->iface, &desc, &size);
}
if (err) {
aprint_error_dev(self, "no report descriptor\n");
@@ -301,13 +300,13 @@ uhidev_attach(device_t parent, device_t
if (nrepid > 0)
aprint_normal_dev(self, "%d report ids\n", nrepid);
nrepid++;
- repsizes = malloc(nrepid * sizeof(*repsizes), M_TEMP, M_NOWAIT);
+ repsizes = kmem_alloc(nrepid * sizeof(*repsizes), KM_SLEEP);
if (repsizes == NULL)
goto nomem;
- sc->sc_subdevs = malloc(nrepid * sizeof(device_t),
- M_USBDEV, M_NOWAIT | M_ZERO);
+ sc->sc_subdevs = kmem_zalloc(nrepid * sizeof(device_t),
+ KM_SLEEP);
if (sc->sc_subdevs == NULL) {
- free(repsizes, M_TEMP);
+ kmem_free(repsizes, nrepid * sizeof(*repsizes));
nomem:
aprint_error_dev(self, "no memory\n");
return;
@@ -350,7 +349,8 @@ nomem:
DPRINTF(("uhidev_match: repid=%d dev=%p\n",
repid, dev));
if (csc->sc_intr == NULL) {
- free(repsizes, M_TEMP);
+ kmem_free(repsizes,
+ nrepid * sizeof(*repsizes));
aprint_error_dev(self,
"sc_intr == NULL\n");
return;
@@ -363,7 +363,7 @@ nomem:
}
}
}
- free(repsizes, M_TEMP);
+ kmem_free(repsizes, nrepid * sizeof(*repsizes));
return;
}
@@ -438,7 +438,7 @@ uhidev_detach(device_t self, int flags)
usbd_abort_pipe(sc->sc_ipipe);
if (sc->sc_repdesc != NULL)
- free(sc->sc_repdesc, M_USBDEV);
+ kmem_free(sc->sc_repdesc, sc->sc_repdesc_size);
rv = 0;
for (i = 0; i < sc->sc_nrepid; i++) {
@@ -555,7 +555,7 @@ uhidev_open(struct uhidev *scd)
if (sc->sc_isize == 0)
return (0);
- sc->sc_ibuf = malloc(sc->sc_isize, M_USBDEV, M_WAITOK);
+ sc->sc_ibuf = kmem_alloc(sc->sc_isize, KM_SLEEP);
/* Set up input interrupt pipe. */
DPRINTF(("uhidev_open: isize=%d, ep=0x%02x\n", sc->sc_isize,
@@ -606,7 +606,7 @@ out2:
usbd_close_pipe(sc->sc_ipipe);
out1:
DPRINTF(("uhidev_open: failed in someway"));
- free(sc->sc_ibuf, M_USBDEV);
+ kmem_free(sc->sc_ibuf, sc->sc_isize);
mutex_enter(&sc->sc_lock);
scd->sc_state &= ~UHIDEV_OPEN;
sc->sc_refcnt = 0;
@@ -656,7 +656,7 @@ uhidev_close(struct uhidev *scd)
}
if (sc->sc_ibuf != NULL) {
- free(sc->sc_ibuf, M_USBDEV);
+ kmem_free(sc->sc_ibuf, sc->sc_isize);
sc->sc_ibuf = NULL;
}
}
@@ -671,14 +671,14 @@ uhidev_set_report(struct uhidev *scd, in
return usbd_set_report(scd->sc_parent->sc_iface, type,
scd->sc_report_id, data, len);
- buf = malloc(len + 1, M_TEMP, M_WAITOK);
+ buf = kmem_alloc(len + 1, KM_SLEEP);
buf[0] = scd->sc_report_id;
memcpy(buf+1, data, len);
retstat = usbd_set_report(scd->sc_parent->sc_iface, type,
scd->sc_report_id, buf, len + 1);
- free(buf, M_TEMP);
+ kmem_free(buf, len + 1);
return retstat;
}
Index: src/sys/dev/usb/uhmodem.c
diff -u src/sys/dev/usb/uhmodem.c:1.13.24.2 src/sys/dev/usb/uhmodem.c:1.13.24.3
--- src/sys/dev/usb/uhmodem.c:1.13.24.2 Sun Nov 30 13:14:11 2014
+++ src/sys/dev/usb/uhmodem.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uhmodem.c,v 1.13.24.2 2014/11/30 13:14:11 skrll Exp $ */
+/* $NetBSD: uhmodem.c,v 1.13.24.3 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2008 Yojiro UO <[email protected]>.
@@ -71,12 +71,12 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhmodem.c,v 1.13.24.2 2014/11/30 13:14:11 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhmodem.c,v 1.13.24.3 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/ioccom.h>
#include <sys/fcntl.h>
#include <sys/conf.h>
@@ -406,7 +406,7 @@ uhmodem_detach(device_t self, int flags)
if (sc->sc_ubsa.sc_intr_pipe != NULL) {
usbd_abort_pipe(sc->sc_ubsa.sc_intr_pipe);
usbd_close_pipe(sc->sc_ubsa.sc_intr_pipe);
- free(sc->sc_ubsa.sc_intr_buf, M_USBDEV);
+ kmem_free(sc->sc_ubsa.sc_intr_buf, sc->sc_ubsa.sc_isize);
sc->sc_ubsa.sc_intr_pipe = NULL;
}
@@ -470,7 +470,7 @@ uhmodem_open(void *addr, int portno)
}
#endif
if (sc->sc_intr_number != -1 && sc->sc_intr_pipe == NULL) {
- sc->sc_intr_buf = malloc(sc->sc_isize, M_USBDEV, M_WAITOK);
+ sc->sc_intr_buf = kmem_alloc(sc->sc_isize, KM_SLEEP);
/* XXX only iface# = 0 has intr line */
/* XXX E220 specific? need to check */
err = usbd_open_pipe_intr(sc->sc_iface[0],
Index: src/sys/dev/usb/uhub.c
diff -u src/sys/dev/usb/uhub.c:1.126.2.2 src/sys/dev/usb/uhub.c:1.126.2.3
--- src/sys/dev/usb/uhub.c:1.126.2.2 Wed Dec 3 12:52:07 2014
+++ src/sys/dev/usb/uhub.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uhub.c,v 1.126.2.2 2014/12/03 12:52:07 skrll Exp $ */
+/* $NetBSD: uhub.c,v 1.126.2.3 2014/12/03 14:18:07 skrll Exp $ */
/* $FreeBSD: src/sys/dev/usb/uhub.c,v 1.18 1999/11/17 22:33:43 n_hibma Exp $ */
/*
@@ -36,12 +36,12 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhub.c,v 1.126.2.2 2014/12/03 12:52:07 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhub.c,v 1.126.2.3 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/device.h>
#include <sys/proc.h>
@@ -212,8 +212,8 @@ uhub_attach(device_t parent, device_t se
goto bad;
}
- hub = malloc(sizeof(*hub) + (nports-1) * sizeof(struct usbd_port),
- M_USBDEV, M_NOWAIT);
+ hub = kmem_alloc(sizeof(*hub) + (nports-1) * sizeof(struct usbd_port),
+ KM_SLEEP);
if (hub == NULL)
return;
dev->ud_hub = hub;
@@ -245,10 +245,10 @@ uhub_attach(device_t parent, device_t se
}
sc->sc_statuslen = (nports + 1 + 7) / 8;
- sc->sc_statusbuf = malloc(sc->sc_statuslen, M_USBDEV, M_NOWAIT);
+ sc->sc_statusbuf = kmem_alloc(sc->sc_statuslen, KM_SLEEP);
if (!sc->sc_statusbuf)
goto bad;
- sc->sc_status = malloc(sc->sc_statuslen, M_USBDEV, M_NOWAIT);
+ sc->sc_status = kmem_alloc(sc->sc_statuslen, KM_SLEEP);
if (!sc->sc_status)
goto bad;
if (device_is_a(device_parent(device_parent(sc->sc_dev)), "ehci"))
@@ -299,8 +299,8 @@ uhub_attach(device_t parent, device_t se
#if 0
if (UHUB_IS_HIGH_SPEED(sc) && nports > 0) {
- tts = malloc((UHUB_IS_SINGLE_TT(sc) ? 1 : nports) *
- sizeof (struct usbd_tt), M_USBDEV, M_NOWAIT);
+ tts = kmem_alloc((UHUB_IS_SINGLE_TT(sc) ? 1 : nports) *
+ sizeof (struct usbd_tt), KM_SLEEP);
if (!tts)
goto bad;
}
@@ -356,11 +356,12 @@ uhub_attach(device_t parent, device_t se
bad:
if (sc->sc_status)
- free(sc->sc_status, M_USBDEV);
+ kmem_free(sc->sc_statusbuf, sc->sc_statuslen);
if (sc->sc_statusbuf)
- free(sc->sc_statusbuf, M_USBDEV);
+ kmem_free(sc->sc_statusbuf, sc->sc_statuslen);
if (hub)
- free(hub, M_USBDEV);
+ kmem_free(hub,
+ sizeof(*hub) + (nports-1) * sizeof(struct usbd_port));
dev->ud_hub = NULL;
return;
}
@@ -625,14 +626,17 @@ uhub_detach(device_t self, int flags)
#if 0
if (hub->ports[0].tt)
- free(hub->ports[0].tt, M_USBDEV);
+ kmem_free(hub->ports[0].tt,
+ (UHUB_IS_SINGLE_TT(sc) ? 1 : nports) *
+ sizeof (struct usbd_tt));
#endif
- free(hub, M_USBDEV);
+ kmem_free(hub,
+ sizeof(*hub) + (nports-1) * sizeof(struct usbd_port));
sc->sc_hub->ud_hub = NULL;
if (sc->sc_status)
- free(sc->sc_status, M_USBDEV);
+ kmem_free(sc->sc_statusbuf, sc->sc_statuslen);
if (sc->sc_statusbuf)
- free(sc->sc_statusbuf, M_USBDEV);
+ kmem_free(sc->sc_statusbuf, sc->sc_statuslen);
/* XXXSMP usb */
KERNEL_UNLOCK_ONE(curlwp);
@@ -684,7 +688,8 @@ uhub_childdet(device_t self, device_t ch
}
}
if (dev->ud_nifaces_claimed == 0) {
- free(dev->ud_subdevs, M_USB);
+ kmem_free(dev->ud_subdevs,
+ dev->ud_subdevlen * sizeof(device_t));
dev->ud_subdevs = NULL;
dev->ud_subdevlen = 0;
}
Index: src/sys/dev/usb/umct.c
diff -u src/sys/dev/usb/umct.c:1.32.24.2 src/sys/dev/usb/umct.c:1.32.24.3
--- src/sys/dev/usb/umct.c:1.32.24.2 Sun Nov 30 13:14:11 2014
+++ src/sys/dev/usb/umct.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: umct.c,v 1.32.24.2 2014/11/30 13:14:11 skrll Exp $ */
+/* $NetBSD: umct.c,v 1.32.24.3 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: umct.c,v 1.32.24.2 2014/11/30 13:14:11 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: umct.c,v 1.32.24.3 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -328,7 +328,7 @@ umct_detach(device_t self, int flags)
if (sc->sc_intr_pipe != NULL) {
usbd_abort_pipe(sc->sc_intr_pipe);
usbd_close_pipe(sc->sc_intr_pipe);
- free(sc->sc_intr_buf, M_USBDEV);
+ kmem_free(sc->sc_intr_buf, sc->sc_isize);
sc->sc_intr_pipe = NULL;
}
@@ -552,7 +552,7 @@ umct_open(void *addr, int portno)
if (sc->sc_intr_number != -1 && sc->sc_intr_pipe == NULL) {
sc->sc_status = 0; /* clear status bit */
- sc->sc_intr_buf = malloc(sc->sc_isize, M_USBDEV, M_WAITOK);
+ sc->sc_intr_buf = kmem_alloc(sc->sc_isize, KM_SLEEP);
err = usbd_open_pipe_intr(sc->sc_iface, sc->sc_intr_number,
USBD_SHORT_XFER_OK, &sc->sc_intr_pipe, sc,
sc->sc_intr_buf, sc->sc_isize,
@@ -587,7 +587,7 @@ umct_close(void *addr, int portno)
if (err)
printf("%s: close interrupt pipe failed: %s\n",
device_xname(sc->sc_dev), usbd_errstr(err));
- free(sc->sc_intr_buf, M_USBDEV);
+ kmem_free(sc->sc_intr_buf, sc->sc_isize);
sc->sc_intr_pipe = NULL;
}
}
Index: src/sys/dev/usb/uplcom.c
diff -u src/sys/dev/usb/uplcom.c:1.74.4.2 src/sys/dev/usb/uplcom.c:1.74.4.3
--- src/sys/dev/usb/uplcom.c:1.74.4.2 Sun Nov 30 13:14:11 2014
+++ src/sys/dev/usb/uplcom.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uplcom.c,v 1.74.4.2 2014/11/30 13:14:11 skrll Exp $ */
+/* $NetBSD: uplcom.c,v 1.74.4.3 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -34,12 +34,12 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uplcom.c,v 1.74.4.2 2014/11/30 13:14:11 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uplcom.c,v 1.74.4.3 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/ioctl.h>
#include <sys/conf.h>
#include <sys/tty.h>
@@ -441,7 +441,7 @@ uplcom_detach(device_t self, int flags)
if (sc->sc_intr_pipe != NULL) {
usbd_abort_pipe(sc->sc_intr_pipe);
usbd_close_pipe(sc->sc_intr_pipe);
- free(sc->sc_intr_buf, M_USBDEV);
+ kmem_free(sc->sc_intr_buf, sc->sc_isize);
sc->sc_intr_pipe = NULL;
}
@@ -780,7 +780,7 @@ uplcom_open(void *addr, int portno)
uplcom_vendor_control_write(sc->sc_udev, 2, 0x24);
if (sc->sc_intr_number != -1 && sc->sc_intr_pipe == NULL) {
- sc->sc_intr_buf = malloc(sc->sc_isize, M_USBDEV, M_WAITOK);
+ sc->sc_intr_buf = kmem_alloc(sc->sc_isize, KM_SLEEP);
err = usbd_open_pipe_intr(sc->sc_intr_iface, sc->sc_intr_number,
USBD_SHORT_XFER_OK, &sc->sc_intr_pipe, sc,
sc->sc_intr_buf, sc->sc_isize,
@@ -818,7 +818,7 @@ uplcom_close(void *addr, int portno)
if (err)
printf("%s: close interrupt pipe failed: %s\n",
device_xname(sc->sc_dev), usbd_errstr(err));
- free(sc->sc_intr_buf, M_USBDEV);
+ kmem_free(sc->sc_intr_buf, sc->sc_isize);
sc->sc_intr_pipe = NULL;
}
}
Index: src/sys/dev/usb/urio.c
diff -u src/sys/dev/usb/urio.c:1.42.4.3 src/sys/dev/usb/urio.c:1.42.4.4
--- src/sys/dev/usb/urio.c:1.42.4.3 Tue Dec 2 09:00:34 2014
+++ src/sys/dev/usb/urio.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: urio.c,v 1.42.4.3 2014/12/02 09:00:34 skrll Exp $ */
+/* $NetBSD: urio.c,v 1.42.4.4 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -36,12 +36,12 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: urio.c,v 1.42.4.3 2014/12/02 09:00:34 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: urio.c,v 1.42.4.4 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/device.h>
#include <sys/ioctl.h>
#include <sys/conf.h>
@@ -511,7 +511,7 @@ urioioctl(dev_t dev, u_long cmd, void *a
uio.uio_rw = req.bmRequestType & UT_READ ?
UIO_READ : UIO_WRITE;
uio.uio_vmspace = l->l_proc->p_vmspace;
- ptr = malloc(len, M_TEMP, M_WAITOK);
+ ptr = kmem_alloc(len, KM_SLEEP);
if (uio.uio_rw == UIO_WRITE) {
error = uiomove(ptr, len, &uio);
if (error)
@@ -536,6 +536,6 @@ urioioctl(dev_t dev, u_long cmd, void *a
ret:
if (ptr != NULL)
- free(ptr, M_TEMP);
+ kmem_free(ptr, len);
return (error);
}
Index: src/sys/dev/usb/usb.c
diff -u src/sys/dev/usb/usb.c:1.156.2.2 src/sys/dev/usb/usb.c:1.156.2.3
--- src/sys/dev/usb/usb.c:1.156.2.2 Wed Dec 3 12:52:07 2014
+++ src/sys/dev/usb/usb.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usb.c,v 1.156.2.2 2014/12/03 12:52:07 skrll Exp $ */
+/* $NetBSD: usb.c,v 1.156.2.3 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 1998, 2002, 2008, 2012 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.156.2.2 2014/12/03 12:52:07 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.156.2.3 2014/12/03 14:18:07 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
@@ -47,7 +47,7 @@ __KERNEL_RCSID(0, "$NetBSD: usb.c,v 1.15
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/device.h>
#include <sys/kthread.h>
#include <sys/proc.h>
@@ -573,8 +573,7 @@ usbread(dev_t dev, struct uio *uio, int
switch (uio->uio_resid) {
#ifdef COMPAT_30
case sizeof(struct usb_event_old):
- ueo = malloc(sizeof(struct usb_event_old), M_USBDEV,
- M_WAITOK|M_ZERO);
+ ueo = kmem_zalloc(sizeof(struct usb_event_old), KM_SLEEP);
useold = 1;
/* FALLTHRU */
#endif
@@ -636,7 +635,7 @@ usbread(dev_t dev, struct uio *uio, int
usb_free_event(ue);
#ifdef COMPAT_30
if (useold)
- free(ueo, M_USBDEV);
+ kmem_free(ueo, sizeof(struct usb_event_old));
#endif
return (error);
@@ -728,7 +727,7 @@ usbioctl(dev_t devt, u_long cmd, void *d
ur->ucr_request.bmRequestType & UT_READ ?
UIO_READ : UIO_WRITE;
uio.uio_vmspace = l->l_proc->p_vmspace;
- ptr = malloc(len, M_TEMP, M_WAITOK);
+ ptr = kmem_alloc(len, KM_SLEEP);
if (uio.uio_rw == UIO_WRITE) {
error = uiomove(ptr, len, &uio);
if (error)
@@ -752,8 +751,10 @@ usbioctl(dev_t devt, u_long cmd, void *d
}
}
ret:
- if (ptr)
- free(ptr, M_TEMP);
+ if (ptr) {
+ len = UGETW(ur->ucr_request.wLength);
+ kmem_free(ptr, len);
+ }
return (error);
}
@@ -964,13 +965,13 @@ Static struct usb_event *
usb_alloc_event(void)
{
/* Yes, this is right; we allocate enough so that we can use it later */
- return malloc(sizeof(struct usb_event_q), M_USBDEV, M_WAITOK|M_ZERO);
+ return kmem_zalloc(sizeof(struct usb_event_q), KM_SLEEP);
}
Static void
usb_free_event(struct usb_event *uep)
{
- free(uep, M_USBDEV);
+ kmem_free(uep, sizeof(struct usb_event_q));
}
Static void
Index: src/sys/dev/usb/usb.h
diff -u src/sys/dev/usb/usb.h:1.111.2.3 src/sys/dev/usb/usb.h:1.111.2.4
--- src/sys/dev/usb/usb.h:1.111.2.3 Wed Dec 3 13:30:51 2014
+++ src/sys/dev/usb/usb.h Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usb.h,v 1.111.2.3 2014/12/03 13:30:51 skrll Exp $ */
+/* $NetBSD: usb.h,v 1.111.2.4 2014/12/03 14:18:07 skrll Exp $ */
/* $FreeBSD: src/sys/dev/usb/usb.h,v 1.14 1999/11/17 22:33:46 n_hibma Exp $ */
/*
@@ -41,10 +41,6 @@
#include <sys/ioctl.h>
#if defined(_KERNEL)
-#include <sys/mallocvar.h>
-
-MALLOC_DECLARE(M_USB);
-MALLOC_DECLARE(M_USBDEV);
#include <sys/device.h>
Index: src/sys/dev/usb/usb_subr.c
diff -u src/sys/dev/usb/usb_subr.c:1.198.2.3 src/sys/dev/usb/usb_subr.c:1.198.2.4
--- src/sys/dev/usb/usb_subr.c:1.198.2.3 Wed Dec 3 13:30:51 2014
+++ src/sys/dev/usb/usb_subr.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usb_subr.c,v 1.198.2.3 2014/12/03 13:30:51 skrll Exp $ */
+/* $NetBSD: usb_subr.c,v 1.198.2.4 2014/12/03 14:18:07 skrll Exp $ */
/* $FreeBSD: src/sys/dev/usb/usb_subr.c,v 1.18 1999/11/17 22:33:47 n_hibma Exp $ */
/*
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usb_subr.c,v 1.198.2.3 2014/12/03 13:30:51 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usb_subr.c,v 1.198.2.4 2014/12/03 14:18:07 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -43,7 +43,7 @@ __KERNEL_RCSID(0, "$NetBSD: usb_subr.c,v
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/device.h>
#include <sys/select.h>
#include <sys/proc.h>
@@ -71,9 +71,6 @@ extern int usbdebug;
#define DPRINTFN(n,x)
#endif
-MALLOC_DEFINE(M_USB, "USB", "USB misc. memory");
-MALLOC_DEFINE(M_USBDEV, "USB device", "USB device driver");
-
Static usbd_status usbd_set_config(usbd_device_handle, int);
Static void usbd_devinfo(usbd_device_handle, int, char *, size_t);
Static void usbd_devinfo_vp(usbd_device_handle, char *, size_t, char *, size_t,
@@ -212,7 +209,7 @@ usbd_devinfo(usbd_device_handle dev, int
int bcdDevice, bcdUSB;
char *ep;
- vendor = malloc(USB_MAX_ENCODED_STRING_LEN * 2, M_USB, M_NOWAIT);
+ vendor = kmem_alloc(USB_MAX_ENCODED_STRING_LEN * 2, KM_SLEEP);
if (vendor == NULL) {
*cp = '\0';
return;
@@ -235,7 +232,7 @@ usbd_devinfo(usbd_device_handle dev, int
cp += usbd_printBCD(cp, ep - cp, bcdDevice);
cp += snprintf(cp, ep - cp, ", addr %d", dev->ud_addr);
*cp = 0;
- free(vendor, M_USB);
+ kmem_free(vendor, USB_MAX_ENCODED_STRING_LEN * 2);
}
char *
@@ -243,7 +240,7 @@ usbd_devinfo_alloc(usbd_device_handle de
{
char *devinfop;
- devinfop = malloc(DEVINFOSIZE, M_TEMP, M_WAITOK);
+ devinfop = kmem_alloc(DEVINFOSIZE, KM_SLEEP);
usbd_devinfo(dev, showclass, devinfop, DEVINFOSIZE);
return devinfop;
}
@@ -251,7 +248,7 @@ usbd_devinfo_alloc(usbd_device_handle de
void
usbd_devinfo_free(char *devinfop)
{
- free(devinfop, M_TEMP);
+ kmem_free(devinfop, DEVINFOSIZE);
}
/* Delay for a certain number of ms */
@@ -414,8 +411,8 @@ usbd_fill_iface_data(usbd_device_handle
nendpt = ifc->ui_idesc->bNumEndpoints;
DPRINTFN(4,("usbd_fill_iface_data: found idesc nendpt=%d\n", nendpt));
if (nendpt != 0) {
- ifc->ui_endpoints = malloc(nendpt * sizeof(struct usbd_endpoint),
- M_USB, M_NOWAIT);
+ ifc->ui_endpoints = kmem_alloc(nendpt * sizeof(struct usbd_endpoint),
+ KM_SLEEP);
if (ifc->ui_endpoints == NULL)
return (USBD_NOMEM);
} else
@@ -477,7 +474,7 @@ usbd_fill_iface_data(usbd_device_handle
bad:
if (ifc->ui_endpoints != NULL) {
- free(ifc->ui_endpoints, M_USB);
+ kmem_free(ifc->ui_endpoints, nendpt * sizeof(struct usbd_endpoint));
ifc->ui_endpoints = NULL;
}
return (USBD_INVAL);
@@ -487,8 +484,11 @@ void
usbd_free_iface_data(usbd_device_handle dev, int ifcno)
{
usbd_interface_handle ifc = &dev->ud_ifaces[ifcno];
- if (ifc->ui_endpoints)
- free(ifc->ui_endpoints, M_USB);
+ if (ifc->ui_endpoints) {
+ int nendpt = ifc->ui_idesc->bNumEndpoints;
+ size_t sz = nendpt * sizeof(struct usbd_endpoint);
+ kmem_free(ifc->ui_endpoints, sz);
+ }
}
Static usbd_status
@@ -549,8 +549,8 @@ usbd_set_config_index(usbd_device_handle
nifc = dev->ud_cdesc->bNumInterface;
for (ifcidx = 0; ifcidx < nifc; ifcidx++)
usbd_free_iface_data(dev, ifcidx);
- free(dev->ud_ifaces, M_USB);
- free(dev->ud_cdesc, M_USB);
+ kmem_free(dev->ud_ifaces, nifc * sizeof(struct usbd_interface));
+ kmem_free(dev->ud_cdesc, UGETW(dev->ud_cdesc->wTotalLength));
dev->ud_ifaces = NULL;
dev->ud_cdesc = NULL;
dev->ud_config = USB_UNCONFIG_NO;
@@ -574,7 +574,7 @@ usbd_set_config_index(usbd_device_handle
return (err);
}
len = UGETW(cd.wTotalLength);
- cdp = malloc(len, M_USB, M_NOWAIT);
+ cdp = kmem_alloc(len, KM_SLEEP);
if (cdp == NULL)
return (USBD_NOMEM);
@@ -666,8 +666,8 @@ usbd_set_config_index(usbd_device_handle
/* Allocate and fill interface data. */
nifc = cdp->bNumInterface;
- dev->ud_ifaces = malloc(nifc * sizeof(struct usbd_interface),
- M_USB, M_NOWAIT);
+ dev->ud_ifaces = kmem_alloc(nifc * sizeof(struct usbd_interface),
+ KM_SLEEP);
if (dev->ud_ifaces == NULL) {
err = USBD_NOMEM;
goto bad;
@@ -687,7 +687,7 @@ usbd_set_config_index(usbd_device_handle
return (USBD_NORMAL_COMPLETION);
bad:
- free(cdp, M_USB);
+ kmem_free(cdp, len);
return (err);
}
@@ -707,7 +707,7 @@ usbd_setup_pipe_flags(usbd_device_handle
usbd_pipe_handle p;
usbd_status err;
- p = malloc(dev->ud_bus->ub_pipesize, M_USB, M_NOWAIT);
+ p = kmem_alloc(dev->ud_bus->ub_pipesize, KM_SLEEP);
DPRINTFN(1,("usbd_setup_pipe: dev=%p iface=%p ep=%p pipe=%p\n",
dev, iface, ep, p));
if (p == NULL)
@@ -729,7 +729,7 @@ usbd_setup_pipe_flags(usbd_device_handle
DPRINTFN(-1,("usbd_setup_pipe: endpoint=0x%x failed, error="
"%s\n",
ep->ue_edesc->bEndpointAddress, usbd_errstr(err)));
- free(p, M_USB);
+ kmem_intr_free(p, dev->ud_bus->ub_pipesize);
return (err);
}
usb_init_task(&p->up_async_task, usbd_clear_endpoint_stall_task, p,
@@ -748,7 +748,7 @@ usbd_kill_pipe(usbd_pipe_handle pipe)
usbd_unlock_pipe(pipe);
usb_rem_task(pipe->up_dev, &pipe->up_async_task);
pipe->up_endpoint->ue_refcnt--;
- free(pipe, M_USB);
+ kmem_free(pipe, pipe->up_dev->ud_bus->ub_pipesize);
}
int
@@ -781,7 +781,7 @@ usbd_attach_roothub(device_t parent, usb
dv = config_found_ia(parent, "usbroothubif", &uaa, 0);
if (dv) {
- dev->ud_subdevs = malloc(sizeof dv, M_USB, M_NOWAIT);
+ dev->ud_subdevs = kmem_alloc(sizeof(dv), KM_SLEEP);
if (dev->ud_subdevs == NULL)
return (USBD_NOMEM);
dev->ud_subdevs[0] = dv;
@@ -820,7 +820,7 @@ usbd_attachwholedevice(device_t parent,
dv = config_found_sm_loc(parent, "usbdevif", dlocs, &uaa, usbd_print,
config_stdsubmatch);
if (dv) {
- dev->ud_subdevs = malloc(sizeof dv, M_USB, M_NOWAIT);
+ dev->ud_subdevs = kmem_alloc(sizeof(dv), KM_SLEEP);
if (dev->ud_subdevs == NULL)
return (USBD_NOMEM);
dev->ud_subdevs[0] = dv;
@@ -843,7 +843,7 @@ usbd_attachinterfaces(device_t parent, u
device_t dv;
nifaces = dev->ud_cdesc->bNumInterface;
- ifaces = malloc(nifaces * sizeof(*ifaces), M_USB, M_NOWAIT|M_ZERO);
+ ifaces = kmem_zalloc(nifaces * sizeof(*ifaces), KM_SLEEP);
if (!ifaces)
return (USBD_NOMEM);
for (i = 0; i < nifaces; i++)
@@ -896,7 +896,7 @@ usbd_attachinterfaces(device_t parent, u
}
}
- free(ifaces, M_USB);
+ kmem_free(ifaces, nifaces * sizeof(*ifaces));
return (USBD_NORMAL_COMPLETION);
}
@@ -933,8 +933,8 @@ usbd_probe_and_attach(device_t parent, u
return (err);
}
nifaces = dev->ud_cdesc->bNumInterface;
- dev->ud_subdevs = malloc(nifaces * sizeof(device_t), M_USB,
- M_NOWAIT|M_ZERO);
+ dev->ud_subdevs = kmem_zalloc(nifaces * sizeof(device_t),
+ KM_SLEEP);
if (dev->ud_subdevs == NULL)
return (USBD_NOMEM);
dev->ud_subdevlen = nifaces;
@@ -942,7 +942,8 @@ usbd_probe_and_attach(device_t parent, u
err = usbd_attachinterfaces(parent, dev, port, NULL);
if (!dev->ud_nifaces_claimed) {
- free(dev->ud_subdevs, M_USB);
+ kmem_free(dev->ud_subdevs,
+ dev->ud_subdevlen * sizeof(device_t));
dev->ud_subdevs = 0;
dev->ud_subdevlen = 0;
}
@@ -1075,7 +1076,7 @@ usbd_new_device(device_t parent, usbd_bu
return (USBD_NO_ADDR);
}
- dev = malloc(sizeof *dev, M_USB, M_NOWAIT|M_ZERO);
+ dev = kmem_zalloc(sizeof(*dev), KM_SLEEP);
if (dev == NULL)
return (USBD_NOMEM);
@@ -1293,7 +1294,7 @@ usbd_remove_device(usbd_device_handle de
up->up_dev = NULL;
dev->ud_bus->ub_devices[dev->ud_addr] = NULL;
- free(dev, M_USB);
+ kmem_free(dev, sizeof(*dev));
}
int
@@ -1307,10 +1308,10 @@ usbd_print(void *aux, const char *pnp)
char *devinfo;
if (!uaa->usegeneric)
return (QUIET);
- devinfo = malloc(USB_DEVINFO, M_TEMP, M_WAITOK);
+ devinfo = kmem_alloc(USB_DEVINFO, KM_SLEEP);
usbd_devinfo(uaa->device, 1, devinfo, USB_DEVINFO);
aprint_normal("%s, %s", devinfo, pnp);
- free(devinfo, M_TEMP);
+ kmem_free(devinfo, USB_DEVINFO);
}
aprint_normal(" port %d", uaa->port);
#if 0
@@ -1506,15 +1507,17 @@ usb_free_device(usbd_device_handle dev)
nifc = dev->ud_cdesc->bNumInterface;
for (ifcidx = 0; ifcidx < nifc; ifcidx++)
usbd_free_iface_data(dev, ifcidx);
- free(dev->ud_ifaces, M_USB);
+ kmem_free(dev->ud_ifaces,
+ nifc * sizeof(struct usbd_interface));
}
if (dev->ud_cdesc != NULL)
- free(dev->ud_cdesc, M_USB);
+ kmem_free(dev->ud_cdesc, UGETW(dev->ud_cdesc->wTotalLength));
if (dev->ud_subdevlen > 0) {
- free(dev->ud_subdevs, M_USB);
+ kmem_free(dev->ud_subdevs,
+ dev->ud_subdevlen * sizeof(device_t));
dev->ud_subdevlen = 0;
}
- free(dev, M_USB);
+ kmem_free(dev, sizeof(*dev));
}
/*
Index: src/sys/dev/usb/usbdi.c
diff -u src/sys/dev/usb/usbdi.c:1.162.2.6 src/sys/dev/usb/usbdi.c:1.162.2.7
--- src/sys/dev/usb/usbdi.c:1.162.2.6 Wed Dec 3 12:52:07 2014
+++ src/sys/dev/usb/usbdi.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usbdi.c,v 1.162.2.6 2014/12/03 12:52:07 skrll Exp $ */
+/* $NetBSD: usbdi.c,v 1.162.2.7 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 1998, 2012 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usbdi.c,v 1.162.2.6 2014/12/03 12:52:07 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usbdi.c,v 1.162.2.7 2014/12/03 14:18:07 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
@@ -270,7 +270,7 @@ usbd_close_pipe(usbd_pipe_handle pipe)
usbd_unlock_pipe(pipe);
if (pipe->up_intrxfer != NULL)
usbd_free_xfer(pipe->up_intrxfer);
- free(pipe, M_USB);
+ kmem_free(pipe, pipe->up_dev->ud_bus->ub_pipesize);
return (USBD_NORMAL_COMPLETION);
}
@@ -775,8 +775,10 @@ usbd_set_interface(usbd_interface_handle
return (err);
/* new setting works, we can free old endpoints */
- if (endpoints != NULL)
- free(endpoints, M_USB);
+ if (endpoints != NULL) {
+ int nendpt = iface->ui_idesc->bNumEndpoints;
+ kmem_free(endpoints, nendpt * sizeof(struct usbd_endpoint));
+ }
#ifdef DIAGNOSTIC
if (iface->ui_idesc == NULL) {
Index: src/sys/dev/usb/usbdi_util.c
diff -u src/sys/dev/usb/usbdi_util.c:1.63.2.3 src/sys/dev/usb/usbdi_util.c:1.63.2.4
--- src/sys/dev/usb/usbdi_util.c:1.63.2.3 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/usbdi_util.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usbdi_util.c,v 1.63.2.3 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: usbdi_util.c,v 1.63.2.4 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 1998, 2012 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: usbdi_util.c,v 1.63.2.3 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: usbdi_util.c,v 1.63.2.4 2014/12/03 14:18:07 skrll Exp $");
#ifdef _KERNEL_OPT
#include "opt_usb.h"
@@ -40,7 +40,7 @@ __KERNEL_RCSID(0, "$NetBSD: usbdi_util.c
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/proc.h>
#include <sys/device.h>
#include <sys/bus.h>
@@ -357,8 +357,7 @@ usbd_get_hid_descriptor(usbd_interface_h
}
usbd_status
-usbd_read_report_desc(usbd_interface_handle ifc, void **descp, int *sizep,
- struct malloc_type * mem)
+usbd_read_report_desc(usbd_interface_handle ifc, void **descp, int *sizep)
{
usb_interface_descriptor_t *id;
usb_hid_descriptor_t *hid;
@@ -373,13 +372,13 @@ usbd_read_report_desc(usbd_interface_han
if (hid == NULL)
return (USBD_IOERROR);
*sizep = UGETW(hid->descrs[0].wDescriptorLength);
- *descp = malloc(*sizep, mem, M_NOWAIT);
+ *descp = kmem_alloc(*sizep, KM_SLEEP);
if (*descp == NULL)
return (USBD_NOMEM);
err = usbd_get_report_descriptor(dev, id->bInterfaceNumber,
*sizep, *descp);
if (err) {
- free(*descp, mem);
+ kmem_free(*descp, *sizep);
*descp = NULL;
return (err);
}
Index: src/sys/dev/usb/usbdi_util.h
diff -u src/sys/dev/usb/usbdi_util.h:1.45.6.2 src/sys/dev/usb/usbdi_util.h:1.45.6.3
--- src/sys/dev/usb/usbdi_util.h:1.45.6.2 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/usbdi_util.h Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: usbdi_util.h,v 1.45.6.2 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: usbdi_util.h,v 1.45.6.3 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 1998, 2004 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@ usbd_status usbd_get_report(usbd_interfa
void *data, int len);
usbd_status usbd_set_idle(usbd_interface_handle iface, int duration,int id);
usbd_status usbd_read_report_desc(usbd_interface_handle ifc, void **descp,
- int *sizep, struct malloc_type *mem);
+ int *sizep);
usbd_status usbd_get_config(usbd_device_handle dev, uint8_t *conf);
usbd_status usbd_get_string_desc(usbd_device_handle dev, int sindex,
int langid,usb_string_descriptor_t *sdesc,
Index: src/sys/dev/usb/uscanner.c
diff -u src/sys/dev/usb/uscanner.c:1.75.4.3 src/sys/dev/usb/uscanner.c:1.75.4.4
--- src/sys/dev/usb/uscanner.c:1.75.4.3 Mon Dec 1 13:03:05 2014
+++ src/sys/dev/usb/uscanner.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uscanner.c,v 1.75.4.3 2014/12/01 13:03:05 skrll Exp $ */
+/* $NetBSD: uscanner.c,v 1.75.4.4 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -32,12 +32,12 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uscanner.c,v 1.75.4.3 2014/12/01 13:03:05 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uscanner.c,v 1.75.4.4 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/device.h>
#include <sys/file.h>
#include <sys/select.h>
@@ -384,8 +384,8 @@ uscanneropen(dev_t dev, int flag, int mo
sc->sc_state |= USCANNER_OPEN;
- sc->sc_bulkin_buffer = malloc(USCANNER_BUFFERSIZE, M_USBDEV, M_WAITOK);
- sc->sc_bulkout_buffer = malloc(USCANNER_BUFFERSIZE, M_USBDEV, M_WAITOK);
+ sc->sc_bulkin_buffer = kmem_alloc(USCANNER_BUFFERSIZE, KM_SLEEP);
+ sc->sc_bulkout_buffer = kmem_alloc(USCANNER_BUFFERSIZE, KM_SLEEP);
/* No need to check buffers for NULL since we have WAITOK */
sc->sc_bulkin_bufferlen = USCANNER_BUFFERSIZE;
@@ -476,11 +476,11 @@ uscanner_do_close(struct uscanner_softc
}
if (sc->sc_bulkin_buffer) {
- free(sc->sc_bulkin_buffer, M_USBDEV);
+ kmem_free(sc->sc_bulkin_buffer, sc->sc_bulkin_bufferlen);
sc->sc_bulkin_buffer = NULL;
}
if (sc->sc_bulkout_buffer) {
- free(sc->sc_bulkout_buffer, M_USBDEV);
+ kmem_free(sc->sc_bulkout_buffer, sc->sc_bulkin_bufferlen);
sc->sc_bulkout_buffer = NULL;
}
Index: src/sys/dev/usb/ustir.c
diff -u src/sys/dev/usb/ustir.c:1.33.10.3 src/sys/dev/usb/ustir.c:1.33.10.4
--- src/sys/dev/usb/ustir.c:1.33.10.3 Tue Dec 2 09:00:34 2014
+++ src/sys/dev/usb/ustir.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ustir.c,v 1.33.10.3 2014/12/02 09:00:34 skrll Exp $ */
+/* $NetBSD: ustir.c,v 1.33.10.4 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,13 +30,13 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ustir.c,v 1.33.10.3 2014/12/02 09:00:34 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ustir.c,v 1.33.10.4 2014/12/03 14:18:07 skrll 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/conf.h>
#include <sys/file.h>
#include <sys/poll.h>
@@ -717,7 +717,7 @@ ustir_open(void *h, int flag, int mode,
error = ENOMEM;
goto bad5;
}
- sc->sc_ur_buf = malloc(IRDA_MAX_FRAME_SIZE, M_USBDEV, M_NOWAIT);
+ sc->sc_ur_buf = kmem_alloc(IRDA_MAX_FRAME_SIZE, KM_SLEEP);
if (sc->sc_ur_buf == NULL) {
error = ENOMEM;
goto bad5;
@@ -806,7 +806,7 @@ ustir_close(void *h, int flag, int mode,
sc->sc_wr_buf = NULL;
}
if (sc->sc_ur_buf != NULL) {
- free(sc->sc_ur_buf, M_USBDEV);
+ kmem_free(sc->sc_ur_buf, IRDA_MAX_FRAME_SIZE);
sc->sc_ur_buf = NULL;
}
Index: src/sys/dev/usb/utoppy.c
diff -u src/sys/dev/usb/utoppy.c:1.24.4.2 src/sys/dev/usb/utoppy.c:1.24.4.3
--- src/sys/dev/usb/utoppy.c:1.24.4.2 Tue Dec 2 09:00:34 2014
+++ src/sys/dev/usb/utoppy.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: utoppy.c,v 1.24.4.2 2014/12/02 09:00:34 skrll Exp $ */
+/* $NetBSD: utoppy.c,v 1.24.4.3 2014/12/03 14:18:07 skrll Exp $ */
/*-
* Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: utoppy.c,v 1.24.4.2 2014/12/02 09:00:34 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: utoppy.c,v 1.24.4.3 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1368,15 +1368,15 @@ utoppyopen(dev_t dev, int flag, int mode
goto done;
}
- sc->sc_out_data = malloc(UTOPPY_BSIZE + 1, M_DEVBUF, M_WAITOK);
+ sc->sc_out_data = kmem_alloc(UTOPPY_BSIZE + 1, KM_SLEEP);
if (sc->sc_out_data == NULL) {
error = ENOMEM;
goto error;
}
- sc->sc_in_data = malloc(UTOPPY_BSIZE + 1, M_DEVBUF, M_WAITOK);
+ sc->sc_in_data = kmem_alloc(UTOPPY_BSIZE + 1, KM_SLEEP);
if (sc->sc_in_data == NULL) {
- free(sc->sc_out_data, M_DEVBUF);
+ kmem_free(sc->sc_out_data, UTOPPY_BSIZE + 1);
sc->sc_out_data = NULL;
error = ENOMEM;
goto error;
@@ -1450,12 +1450,12 @@ utoppyclose(dev_t dev, int flag, int mod
}
if (sc->sc_out_data) {
- free(sc->sc_out_data, M_DEVBUF);
+ kmem_free(sc->sc_out_data, UTOPPY_BSIZE + 1);
sc->sc_out_data = NULL;
}
if (sc->sc_in_data) {
- free(sc->sc_in_data, M_DEVBUF);
+ kmem_free(sc->sc_in_data, UTOPPY_BSIZE + 1);
sc->sc_in_data = NULL;
}
Index: src/sys/dev/usb/uvscom.c
diff -u src/sys/dev/usb/uvscom.c:1.28 src/sys/dev/usb/uvscom.c:1.28.16.1
--- src/sys/dev/usb/uvscom.c:1.28 Fri Feb 24 06:48:28 2012
+++ src/sys/dev/usb/uvscom.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uvscom.c,v 1.28 2012/02/24 06:48:28 mrg Exp $ */
+/* $NetBSD: uvscom.c,v 1.28.16.1 2014/12/03 14:18:07 skrll Exp $ */
/*-
* Copyright (c) 2001-2002, Shunsuke Akiyama <[email protected]>.
* All rights reserved.
@@ -35,12 +35,12 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvscom.c,v 1.28 2012/02/24 06:48:28 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvscom.c,v 1.28.16.1 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/fcntl.h>
#include <sys/conf.h>
#include <sys/tty.h>
@@ -388,7 +388,7 @@ uvscom_detach(device_t self, int flags)
if (sc->sc_intr_pipe != NULL) {
usbd_abort_pipe(sc->sc_intr_pipe);
usbd_close_pipe(sc->sc_intr_pipe);
- free(sc->sc_intr_buf, M_USBDEV);
+ kmem_free(sc->sc_intr_buf, sc->sc_isize);
sc->sc_intr_pipe = NULL;
}
@@ -733,7 +733,7 @@ uvscom_open(void *addr, int portno)
return (EIO);
}
- sc->sc_intr_buf = malloc(sc->sc_isize, M_USBDEV, M_WAITOK);
+ sc->sc_intr_buf = kmem_alloc(sc->sc_isize, KM_SLEEP);
err = usbd_open_pipe_intr(sc->sc_iface,
sc->sc_intr_number,
USBD_SHORT_XFER_OK,
@@ -802,7 +802,7 @@ uvscom_close(void *addr, int portno)
aprint_error_dev(sc->sc_dev,
"lose interrupt pipe failed: %s\n",
usbd_errstr(err));
- free(sc->sc_intr_buf, M_USBDEV);
+ kmem_free(sc->sc_intr_buf, sc->sc_isize);
sc->sc_intr_pipe = NULL;
}
}
Index: src/sys/dev/usb/uyurex.c
diff -u src/sys/dev/usb/uyurex.c:1.9 src/sys/dev/usb/uyurex.c:1.9.14.1
--- src/sys/dev/usb/uyurex.c:1.9 Sat Jan 5 23:34:21 2013
+++ src/sys/dev/usb/uyurex.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: uyurex.c,v 1.9 2013/01/05 23:34:21 christos Exp $ */
+/* $NetBSD: uyurex.c,v 1.9.14.1 2014/12/03 14:18:07 skrll Exp $ */
/* $OpenBSD: uyurex.c,v 1.3 2010/03/04 03:47:22 deraadt Exp $ */
/*
@@ -22,13 +22,13 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uyurex.c,v 1.9 2013/01/05 23:34:21 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uyurex.c,v 1.9.14.1 2014/12/03 14:18:07 skrll Exp $");
#include <sys/param.h>
#include <sys/proc.h>
#include <sys/systm.h>
#include <sys/kernel.h>
-#include <sys/malloc.h>
+#include <sys/kmem.h>
#include <sys/device.h>
#include <sys/conf.h>
#include <sys/envsys.h>
@@ -155,7 +155,7 @@ uyurex_attach(device_t parent, device_t
aprint_error_dev(self, "uyurex_open: uhidev_open %d\n", err);
return;
}
- sc->sc_ibuf = malloc(sc->sc_ilen, M_USBDEV, M_WAITOK);
+ sc->sc_ibuf = kmem_alloc(sc->sc_ilen, KM_SLEEP);
usbd_add_drv_event(USB_EVENT_DRIVER_ATTACH, sc->sc_udev,
sc->sc_hdev.sc_dev);
@@ -211,7 +211,7 @@ uyurex_detach(device_t self, int flags)
sysmon_envsys_unregister(sc->sc_sme);
if (sc->sc_ibuf != NULL) {
- free(sc->sc_ibuf, M_USBDEV);
+ kmem_free(sc->sc_ibuf, sc->sc_ilen);
sc->sc_ibuf = NULL;
}
Index: src/sys/dev/usb/xhci.c
diff -u src/sys/dev/usb/xhci.c:1.28.2.7 src/sys/dev/usb/xhci.c:1.28.2.8
--- src/sys/dev/usb/xhci.c:1.28.2.7 Wed Dec 3 13:19:38 2014
+++ src/sys/dev/usb/xhci.c Wed Dec 3 14:18:07 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: xhci.c,v 1.28.2.7 2014/12/03 13:19:38 skrll Exp $ */
+/* $NetBSD: xhci.c,v 1.28.2.8 2014/12/03 14:18:07 skrll Exp $ */
/*
* Copyright (c) 2013 Jonathan A. Kollasch
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.28.2.7 2014/12/03 13:19:38 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xhci.c,v 1.28.2.8 2014/12/03 14:18:07 skrll Exp $");
#include "opt_usb.h"
@@ -1438,7 +1438,7 @@ xhci_new_device(device_t parent, usbd_bu
DPRINTFN(4, "port=%d depth=%d speed=%d upport %d",
port, depth, speed, up->up_portno);
- dev = malloc(sizeof *dev, M_USB, M_NOWAIT|M_ZERO);
+ dev = kmem_zalloc(sizeof(*dev), KM_SLEEP);
if (dev == NULL)
return USBD_NOMEM;