> Date: Fri, 7 Mar 2014 15:09:23 +0100
> From: Martin Pieuchot <[email protected]>
>
> Since usbd pipes contain a per-controller part, I'd like to malloc them
> with M_ZERO to properly initialize the per-controller fields to 0.
>
> ok?
Makes sense to me.
> Index: usb_subr.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/usb/usb_subr.c,v
> retrieving revision 1.98
> diff -u -p -r1.98 usb_subr.c
> --- usb_subr.c 9 Feb 2014 13:21:48 -0000 1.98
> +++ usb_subr.c 7 Mar 2014 13:58:34 -0000
> @@ -793,25 +793,20 @@ usbd_setup_pipe(struct usbd_device *dev,
> struct usbd_pipe *p;
> usbd_status err;
>
> - DPRINTFN(1,("usbd_setup_pipe: dev=%p iface=%p ep=%p pipe=%p\n",
> + DPRINTF(("%s: dev=%p iface=%p ep=%p pipe=%p\n", __func__,
> dev, iface, ep, pipe));
> - p = malloc(dev->bus->pipe_size, M_USB, M_NOWAIT);
> + p = malloc(dev->bus->pipe_size, M_USB, M_NOWAIT|M_ZERO);
> if (p == NULL)
> return (USBD_NOMEM);
> p->device = dev;
> p->iface = iface;
> p->endpoint = ep;
> ep->refcnt++;
> - p->intrxfer = 0;
> - p->running = 0;
> - p->aborting = 0;
> - p->repeat = 0;
> p->interval = ival;
> SIMPLEQ_INIT(&p->queue);
> err = dev->bus->methods->open_pipe(p);
> if (err) {
> - DPRINTFN(-1,("usbd_setup_pipe: endpoint=0x%x failed, error="
> - "%s\n",
> + DPRINTF(("%s: endpoint=0x%x failed, error=%s\n", __func__,
> ep->edesc->bEndpointAddress, usbd_errstr(err)));
> free(p, M_USB);
> return (err);
>
>