Re: [PATCH 1/3][-mm] add class_reclassify macro

From: Dave Young
Date: Tue May 27 2008 - 03:31:50 EST


On Tue, May 27, 2008 at 2:59 PM, Andrew Morton
<akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Tue, 27 May 2008 14:42:51 +0800 "Dave Young" <hidave.darkstar@xxxxxxxxx> wrote:
>
>> On Wed, May 21, 2008 at 1:21 AM, Greg KH <greg@xxxxxxxxx> wrote:
>> > On Tue, May 20, 2008 at 03:02:32AM -0700, Andrew Morton wrote:
>> >> On Tue, 20 May 2008 17:55:54 +0800 Dave Young <hidave.darkstar@xxxxxxxxx> wrote:
>> >>
>> >> > Converting class semaphore to mutex cause lockdep warnings due to
>> >> > class_interface_register/unregister will possible call device_add/del
>> >>
>> >> Shouldn't we just fix that?
>> >
>> > Um, no, that's a "feature" that some types of hardware and interfaces
>> > require.
>> >
>> > This is one reason I really don't like this type of conversion, it's
>> > causing lots of problems for no known gain.
>> >
>> > So I would just recommend dropping this patch set, the current "convert
>> > class semaphore to a mutex" patch in the -mm tree is already causing
>> > lockdep warnings, and trying to do something like this isn't really
>> > going to solve the root problem here.
>>
>> At last, I decide to give up.
>>
>> Andrew, I could not do more for this issue now, you can drop the
>> conversion patch if there's no suitable fix from others.
>>
>
> If that semaphore is being used as a mutex then we should convert it to
> a mutex (dammit).
>
> Leaving it implemented as a semphore is not the proper way of
> suppressing the lockdep warnings. It would be better to convert it to
> a mutex then add suitable (and suitably commented) open-coded lockdep
> annotations to suppress the runtime warnings.

I agree.

>
> And afaik that's pretty much what your patch did, except you added that
> unpopular macro. If instead of the macro we were to convert that patch
> to add open-coded lockdep annotation, what problems remain?
>
>
Actually I want a best fix which could be accepted by all of you, and
by me. It's not so easy.

I can give another try without the macro. Thanks.

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