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