Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Sep 2009 17:27:21 +0200
From:      Attilio Rao <attilio@freebsd.org>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        arch@freebsd.org, freebsd-arch@freebsd.org
Subject:   Re: NEWBUS states (was Re: svn commit: r196779 - in head/sys: kern  sys)
Message-ID:  <3bbf2fe10909130827m5d8381ebv3e7167986f1f104d@mail.gmail.com>
In-Reply-To: <200909121009.22931.hselasky@c2i.net>
References:  <200909031340.n83Defkv034013@svn.freebsd.org> <3bbf2fe10909041546y2b5633e1ue063955568df1a06@mail.gmail.com> <200909080936.37603.jhb@freebsd.org> <200909121009.22931.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help
2009/9/12 Hans Petter Selasky <hselasky@c2i.net>:
> On Tuesday 08 September 2009 15:36:37 John Baldwin wrote:
>> On Friday 04 September 2009 6:46:03 pm Attilio Rao wrote:
>> > We all agreed the one-state was the better option but it can't be done
>> > in this way because of the device_is_attached() used in the detach
>> > virtual functions. Using just one transition state will break
>> > device_is_attached() in those parts.
>> > The right fix, as pointed out in other e-mails, is to not use
>> > device_is_attached() in detach virtual functions. The better fix, in
>> > my idea would involve:
>> > - replace the device_is_attached() usage in detach virtual functions,
>> > with a more functional support
>> > - use one-state transition
>> >
>> > But that is just too much job to push in before then 8.0-REL and if
>> > that would mean to not commit a patch and make impossible a future
>> > MFC, I prefer to go with a lesser-perfect-but-still-working-approach.
>>
>> Wait, all you need to MFC is the change to the enum.  Fixing the various
>> detach routines does _not_ have to be in 8.0.  That could be merged after
>> the release.
>
> Hi,
>
> http://svn.freebsd.org/viewvc/base/head/sys/kern/subr_bus.c?r1=196529&r2=196779
>
> I'm sorry to say that the latest patches to subr_bus.c have broken USB. I've
> got several reports on memory used after free, due to bus_generic_detach()
> returning EBUSY when called from uhub_detach().

Yes, I think there was an error in the logic. However I reverted them
because we decided to go with another approach. I'm not sure if your
patch (I still didn't review them) are though necessary even in the
case of a saner logic, so for the moment, try to not loose them.

Attilio


-- 
Peace can only be achieved by understanding - A. Einstein



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