2021-06-17 07:16:07

by 何鑫

[permalink] [raw]
Subject: [PATCH] debugobjects: add missing empty function debug_object_active_state()

All other functions are defined for when CONFIG_DEBUG_OBJECTS
is not set.

Signed-off-by: Xin He <[email protected]>
---
include/linux/debugobjects.h | 3 +++
1 file changed, 3 insertions(+)

diff --git a/include/linux/debugobjects.h b/include/linux/debugobjects.h
index 8d2dde23e9fb..af0d73d8d29b 100644
--- a/include/linux/debugobjects.h
+++ b/include/linux/debugobjects.h
@@ -99,6 +99,9 @@ static inline void
debug_object_free (void *addr, const struct debug_obj_descr *descr) { }
static inline void
debug_object_assert_init(void *addr, const struct debug_obj_descr *descr) { }
+static inline void
+debug_object_active_state(void *addr, const struct debug_obj_descr *descr,
+ unsigned int expect, unsigned int next) { }

static inline void debug_objects_early_init(void) { }
static inline void debug_objects_mem_init(void) { }
--
2.20.1


2021-06-19 09:39:32

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH] debugobjects: add missing empty function debug_object_active_state()

Quoting Xin He (2021-06-17 00:10:27)
> All other functions are defined for when CONFIG_DEBUG_OBJECTS
> is not set.
>
> Signed-off-by: Xin He <[email protected]>
> ---
> include/linux/debugobjects.h | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/include/linux/debugobjects.h b/include/linux/debugobjects.h
> index 8d2dde23e9fb..af0d73d8d29b 100644
> --- a/include/linux/debugobjects.h
> +++ b/include/linux/debugobjects.h
> @@ -99,6 +99,9 @@ static inline void
> debug_object_free (void *addr, const struct debug_obj_descr *descr) { }
> static inline void
> debug_object_assert_init(void *addr, const struct debug_obj_descr *descr) { }
> +static inline void
> +debug_object_active_state(void *addr, const struct debug_obj_descr *descr,
> + unsigned int expect, unsigned int next) { }

I suppose it's a landmine that may go off at some point, but this isn't
fixing anything that's broken at the moment, correct?

>
> static inline void debug_objects_early_init(void) { }
> static inline void debug_objects_mem_init(void) { }

2021-06-19 20:47:52

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH] debugobjects: add missing empty function debug_object_active_state()

On Fri, Jun 18 2021 at 22:03, Stephen Boyd wrote:
> Quoting Xin He (2021-06-17 00:10:27)
>> All other functions are defined for when CONFIG_DEBUG_OBJECTS
>> is not set.
>>
>> Signed-off-by: Xin He <[email protected]>
>> ---
>> include/linux/debugobjects.h | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/include/linux/debugobjects.h b/include/linux/debugobjects.h
>> index 8d2dde23e9fb..af0d73d8d29b 100644
>> --- a/include/linux/debugobjects.h
>> +++ b/include/linux/debugobjects.h
>> @@ -99,6 +99,9 @@ static inline void
>> debug_object_free (void *addr, const struct debug_obj_descr *descr) { }
>> static inline void
>> debug_object_assert_init(void *addr, const struct debug_obj_descr *descr) { }
>> +static inline void
>> +debug_object_active_state(void *addr, const struct debug_obj_descr *descr,
>> + unsigned int expect, unsigned int next) { }
>
> I suppose it's a landmine that may go off at some point, but this isn't
> fixing anything that's broken at the moment, correct?

The two users (RCU/i915) have it guarded with RCU/I915 specific config
options which depend on CONFIG_DEBUG_OBJECTS.

I have no problem with the patch per se, but it want's a proper use case.

Thanks,

tglx



2021-06-20 05:41:26

by 何鑫

[permalink] [raw]
Subject: Re: [External] Re: [PATCH] debugobjects: add missing empty function debug_object_active_state()

Stephen Boyd <[email protected]> 于2021年6月19日周六 下午1:03写道:
>
> Quoting Xin He (2021-06-17 00:10:27)
> > All other functions are defined for when CONFIG_DEBUG_OBJECTS
> > is not set.
> >
> > Signed-off-by: Xin He <[email protected]>
> > ---
> > include/linux/debugobjects.h | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/include/linux/debugobjects.h b/include/linux/debugobjects.h
> > index 8d2dde23e9fb..af0d73d8d29b 100644
> > --- a/include/linux/debugobjects.h
> > +++ b/include/linux/debugobjects.h
> > @@ -99,6 +99,9 @@ static inline void
> > debug_object_free (void *addr, const struct debug_obj_descr *descr) { }
> > static inline void
> > debug_object_assert_init(void *addr, const struct debug_obj_descr *descr) { }
> > +static inline void
> > +debug_object_active_state(void *addr, const struct debug_obj_descr *descr,
> > + unsigned int expect, unsigned int next) { }
>
> I suppose it's a landmine that may go off at some point, but this isn't
> fixing anything that's broken at the moment, correct?

Yes, you are rigth.

Thanks.

>
> >
> > static inline void debug_objects_early_init(void) { }
> > static inline void debug_objects_mem_init(void) { }

2021-06-20 06:02:09

by 何鑫

[permalink] [raw]
Subject: Re: [External] Re: [PATCH] debugobjects: add missing empty function debug_object_active_state()

Thomas Gleixner <[email protected]> 于2021年6月20日周日 上午12:47写道:
>
> On Fri, Jun 18 2021 at 22:03, Stephen Boyd wrote:
> > Quoting Xin He (2021-06-17 00:10:27)
> >> All other functions are defined for when CONFIG_DEBUG_OBJECTS
> >> is not set.
> >>
> >> Signed-off-by: Xin He <[email protected]>
> >> ---
> >> include/linux/debugobjects.h | 3 +++
> >> 1 file changed, 3 insertions(+)
> >>
> >> diff --git a/include/linux/debugobjects.h b/include/linux/debugobjects.h
> >> index 8d2dde23e9fb..af0d73d8d29b 100644
> >> --- a/include/linux/debugobjects.h
> >> +++ b/include/linux/debugobjects.h
> >> @@ -99,6 +99,9 @@ static inline void
> >> debug_object_free (void *addr, const struct debug_obj_descr *descr) { }
> >> static inline void
> >> debug_object_assert_init(void *addr, const struct debug_obj_descr *descr) { }
> >> +static inline void
> >> +debug_object_active_state(void *addr, const struct debug_obj_descr *descr,
> >> + unsigned int expect, unsigned int next) { }
> >
> > I suppose it's a landmine that may go off at some point, but this isn't
> > fixing anything that's broken at the moment, correct?
>
> The two users (RCU/i915) have it guarded with RCU/I915 specific config
> options which depend on CONFIG_DEBUG_OBJECTS.
>
> I have no problem with the patch per se, but it want's a proper use case.
>
> Thanks,
>
> tglx
>
>
>

Yes, config options ensure that there will be no problems. But when
CONFIG_DEBUG_OBJECTS is not set, we should provide all empty
functions that may be used.

Thanks.

2021-06-20 11:12:59

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [External] Re: [PATCH] debugobjects: add missing empty function debug_object_active_state()

On Sun, Jun 20 2021 at 13:52, 何鑫 wrote:
> Thomas Gleixner <[email protected]> 于2021年6月20日周日 上午12:47写道:
>>
>> I have no problem with the patch per se, but it want's a proper use case.
>
> Yes, config options ensure that there will be no problems. But when
> CONFIG_DEBUG_OBJECTS is not set, we should provide all empty
> functions that may be used.

What for? Just that we have them w/o users? If someone needs it w/o
guards then we still can add it.

What's the actual problem you are trying to solve?

Thanks,

tglx