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

From: Ming Lei
Date: Thu Mar 26 2009 - 11:46:22 EST


2009/3/25 Ming Lei <tom.leiming@xxxxxxxxx>:
> 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

Sorry, under arch and sound, there are some instances of bus_type defined, and
few of them ( two or three ) do not have a .match method. So it is better to
not change previous driver core behaviour and allow .probe called if bus->match
not defined.

I'll submit a patch to fix it ,and you need not to fix your soc-camera.

Thanks.

> 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
>



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