Re: [PATCH] driver core: check bus->match without holding device lock

From: Ming Lei
Date: Wed Mar 25 2009 - 11:15:30 EST


2009/3/25 Guennadi Liakhovetski <g.liakhovetski@xxxxxx>:
> On Wed, 25 Mar 2009, Ming Lei wrote:
>
>> >> > Now, without .match() no probing is done. Is this an intended change and
>> >> > soc-camera has to be fixed or is this a bug?
>> >>
>> >> It is not a driver-core bug, and soc-camera should be fixed.
>> >
>> > So, you're saying this used to be a bug and it has been fixed by this
>> > patch? Then why isn't this mentioned in the commit message? The commit
>> > text seems to suggest, that this patch shouldn't introduce any change in
>> > behaviour, but it does. So, before .match == NULL lead to .probe() being
>> > called, and now it doesn't anymore?
>>
>> Where is soc-camera  driver in kernel tree?
>
> drivers/media/video/soc_camera.c
>
>> Which bus  is soc-camera device (driver) attached to ?
>
> camera bus.
>
>> Why doesn't soc-camera  driver  have a match method?
>
> Why should it? Because there is only one driver on this bus by definition
> (and I only register a device on the bus when I find a match between a
> device and its parent / driver).

I grep the drivers directory ( grep -r -n -I -A 5 -w "struct bus_type"
./* ) and
find soc-camera is the __only__ bus-type which have not implemented match
method, so it is better to define a match method(always return true)
in soc-camera
to solve the problem, OK?

Also, I will submit a patch to warn absence of match (maybe should
return failed)
in bus_register().

>
> What I in any case see wrong with this patch, is that it _silently_
> changes kernel behaviour without even mentioning it in the commit log!

IMHO, the change should be reasonable, but it is missed carelessly in
commit log.

Thanks

>
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
>



--
Lei Ming
--
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/