On Fri, Nov 27, 2020 at 07:10:49PM +0000, Mikolaj Kucharski wrote:
> On Fri, Nov 27, 2020 at 07:42:52PM +0100, Marcus Glocker wrote:
> > On Fri, Nov 27, 2020 at 12:57:02PM +0000, Mikolaj Kucharski wrote:
> >
> > > I think something as simple as below would be okay. If requested I can
> > > put in DPRINTFN()s based on current printf()s, like I proposed in
> > > earlier diff in this thread. However more important part is, that I
> > > think DIAGNOSTIC ifdef should be removed as rest of the code, which
> > > relies on `if (curlen > len) curlen = len;` is not enclosed with
> > > `#ifdef DIAGNOSTIC`
> >
> > Right. That code should be outside of DIAGNOSTIC. Though I would
> > leave the printf's in as DPRINTF's for the time being. If you can
> > send such a diff I'm fine.
> >
>
> Sure. Here it is. Kernel GENERIC.MP builds and system with umb(4),
> which started this email thread, runs with below diff.
Thanks, it's committed now.
> Index: dev/usb/ehci.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/usb/ehci.c,v
> retrieving revision 1.212
> diff -u -p -u -r1.212 ehci.c
> --- dev/usb/ehci.c 23 Oct 2020 20:25:35 -0000 1.212
> +++ dev/usb/ehci.c 27 Nov 2020 18:54:21 -0000
> @@ -2393,16 +2406,16 @@ ehci_alloc_sqtd_chain(struct ehci_softc
> /* must use multiple TDs, fill as much as possible. */
> curlen = EHCI_QTD_NBUFFERS * EHCI_PAGE_SIZE -
> EHCI_PAGE_OFFSET(dataphys);
> -#ifdef DIAGNOSTIC
> +
> if (curlen > len) {
> - printf("ehci_alloc_sqtd_chain: curlen=%u "
> + DPRINTFN(1,("ehci_alloc_sqtd_chain: curlen=%u "
> "len=%u offs=0x%x\n", curlen, len,
> - EHCI_PAGE_OFFSET(dataphys));
> - printf("lastpage=0x%x page=0x%x phys=0x%x\n",
> - dataphyslastpage, dataphyspage, dataphys);
> + EHCI_PAGE_OFFSET(dataphys)));
> + DPRINTFN(1,("lastpage=0x%x page=0x%x
> phys=0x%x\n",
> + dataphyslastpage, dataphyspage, dataphys));
> curlen = len;
> }
> -#endif
> +
> /* the length must be a multiple of the max size */
> curlen -= curlen % mps;
> DPRINTFN(1,("ehci_alloc_sqtd_chain: multiple QTDs, "
>
> --
> Regards,
> Mikolaj
>