Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Feb 2009 09:34:58 -0800
From:      Marcel Moolenaar <xcllnt@mac.com>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        freebsd-usb@freebsd.org
Subject:   Re: USB2+umass: root mount fails
Message-ID:  <55BE8F46-B338-4609-B0DC-F1C90350029D@mac.com>
In-Reply-To: <200902170856.11631.hselasky@c2i.net>
References:  <741FAA3B-B91A-4A23-B47F-21141A8D0B5D@mac.com> <20090216.190312.1756925299.imp@bsdimp.com> <7F91349C-7E58-47C8-BB69-3B2F391B4E73@mac.com> <200902170856.11631.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help

On Feb 16, 2009, at 11:56 PM, Hans Petter Selasky wrote:

> On Tuesday 17 February 2009, Marcel Moolenaar wrote:
>> On Feb 16, 2009, at 6:03 PM, M. Warner Losh wrote:
>>> : root_mount_hold() and root_mount_rel() are specifically
>>> : designed to inform the mountroot code that it needs to
>>> : wait (or that it should go ahead and mount root).
>>>
>>> But it looks like the old usb code didn't call it either...  I think
>>> old code enumerated right away during boot, while the new code  
>>> defers
>>> the enumeration until events can be processed...
>>
>> Yes, you're right. USB1 used the following:
>>
>> SYSINIT(usb_cold_explore, SI_SUB_CONFIGURE, SI_ORDER_MIDDLE,
>>     usb_cold_explore, NULL);
>>
>> SI_SUB_CONFIGURE didn't complete before all USB busses
>> were enumerated.
>
> I would really prefer that first time USB enumeration is not  
> synchronous.

You misunderstand. I wasn't suggesting you changed USB2
to do the same thing as USB1. I was merely pointing out
how USB1 did it and why root mounts worked.

I think the USB2 approacj is better and as you say, we
just need to hold the root mount until we're done.

-- 
Marcel Moolenaar
xcllnt@mac.com






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55BE8F46-B338-4609-B0DC-F1C90350029D>