debugobjects: add missing empty function debug_object_active_state()
diff mbox series

Message ID 20210617071027.60278-1-hexin.op@bytedance.com
State New, archived
Headers show
Series
  • debugobjects: add missing empty function debug_object_active_state()
Related show

Commit Message

何鑫 June 17, 2021, 7:10 a.m. UTC
All other functions are defined for when CONFIG_DEBUG_OBJECTS
is not set.

Signed-off-by: Xin He <hexin.op@bytedance.com>
---
 include/linux/debugobjects.h | 3 +++
 1 file changed, 3 insertions(+)

Comments

Stephen Boyd June 19, 2021, 5:03 a.m. UTC | #1
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 <hexin.op@bytedance.com>
> ---
>  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) { }
Thomas Gleixner June 19, 2021, 4:47 p.m. UTC | #2
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 <hexin.op@bytedance.com>
>> ---
>>  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
何鑫 June 20, 2021, 5:40 a.m. UTC | #3
Stephen Boyd <swboyd@chromium.org> 于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 <hexin.op@bytedance.com>
> > ---
> >  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) { }
何鑫 June 20, 2021, 5:52 a.m. UTC | #4
Thomas Gleixner <tglx@linutronix.de> 于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 <hexin.op@bytedance.com>
> >> ---
> >>  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.
Thomas Gleixner June 20, 2021, 11:09 a.m. UTC | #5
On Sun, Jun 20 2021 at 13:52, 何鑫 wrote:
> Thomas Gleixner <tglx@linutronix.de> 于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

Patch
diff mbox series

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) { }