Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jul 2010 08:59:20 +0200
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-sparc64@freebsd.org
Cc:        Nathaniel W Filardo <nwf@cs.jhu.edu>
Subject:   Re: VIMAGE hang, USB panic
Message-ID:  <201007260859.20501.hselasky@c2i.net>
In-Reply-To: <20100725143252.GV21929@gradx.cs.jhu.edu>
References:  <20100725143252.GV21929@gradx.cs.jhu.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 25 July 2010 16:32:52 Nathaniel W Filardo wrote:
> Speaking of USB hotplug, attaching a micro 4-port hub, I get this (both
> with and without VIMAGE):
> 
> ugen0.2: <vendor 0x05e3> at usbus0
> uhub1: <vendor 0x05e3 USB2.0 Hub, class 9/0, rev 2.00/9.01, addr 2> on
> usbus0
> panic: iommu_dvmamap_create: bogus preallocation size , nsegments = 2,
> maxpre = 2, maxsize = 1
> cpuid = 0
> KDB: stack backtrace:

Hi,

Looks like the following check fails. The allocation size USB requests is 1-
byte. For the check to not fail, we need to request more bytes then the max-
segments parameter specified.

        maxpre = imin(dt->dt_nsegments, IOMMU_MAX_PRE_SEG);
        presz = dt->dt_maxsize / maxpre;
        KASSERT(presz != 0, ("%s: bogus preallocation size , nsegments = %d, "
            "maxpre = %d, maxsize = %lu", __func__, dt->dt_nsegments, maxpre,
            dt->dt_maxsize));

Does not look like a problem in the USB stack.

--HPS



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007260859.20501.hselasky>