Re: [PATCH] firewire: reread config ROM when device reset the bus

From: Greg KH
Date: Tue Mar 04 2008 - 00:54:22 EST


On Mon, Mar 03, 2008 at 07:35:07PM +0100, Stefan Richter wrote:
> I wrote:
>>> On Mon, Mar 3, 2008 at 11:51 AM, Stefan Richter
>>> <stefanr@xxxxxxxxxxxxxxxxx> wrote:
> [...rewriting data of a device with children devices whose driver probe
> accesses these data...]
>>>> Maybe I should rather use fw-device.c::idr_rwsem instead of device.sem,
>>>> to have better control over who takes the mutex when. Could also be a
>>>> new dedicated mutex but we don't want to end up with too many of
>>>> them...
> [...]
>> Ah, wait, there is a 3rd reader: sbp2_probe's sbp2_scan_unit_dir. So,
>> using dev->sem is actually the nicest way for now.
>
> Or not. The necessary protection for this and other driver->probe()s would
> be the device->parent.sem, not the device->sem itself. There seem to be
> several ways how a driver probe may be entered (adding a device when the
> driver is already there; attaching a driver when the device is already
> there...) and I am not sure whether all these paths take the
> device->parent.sem around the probe. It doesn't seem to be always the
> case.
>
> Greg, can you comment on this?

Hm, comment on what? Ah, semaphore fun in the device. If at all
possible, use your own, not the driver core as the locking there is a
bit "odd" as you have seen. I think Alan Stern has some patches pending
to mess with it all to try to make it sane during the suspend/resume
path.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/