NEWBUS states (was Re: svn commit: r196779 - in head/sys: kern
sys)
Attilio Rao
attilio at freebsd.org
Sun Sep 13 15:27:25 UTC 2009
2009/9/12 Hans Petter Selasky <hselasky at 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
More information about the freebsd-arch
mailing list