All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 5.15] cpufreq: governor: Use kobject release() method to free dbs_data
@ 2023-01-20  4:26 Kevin Hao
  2023-01-20  6:39 ` Greg Kroah-Hartman
  2023-01-20 21:40 ` Tom Saeger
  0 siblings, 2 replies; 7+ messages in thread
From: Kevin Hao @ 2023-01-20  4:26 UTC (permalink / raw)
  To: stable; +Cc: Greg Kroah-Hartman, Sasha Levin, Rafael J . Wysocki

commit a85ee6401a47ae3fc64ba506cacb3e7873823c65 upstream.

The struct dbs_data embeds a struct gov_attr_set and
the struct gov_attr_set embeds a kobject. Since every kobject must have
a release() method and we can't use kfree() to free it directly,
so introduce cpufreq_dbs_data_release() to release the dbs_data via
the kobject::release() method. This fixes the calltrace like below:

  ODEBUG: free active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x34
  WARNING: CPU: 12 PID: 810 at lib/debugobjects.c:505 debug_print_object+0xb8/0x100
  Modules linked in:
  CPU: 12 PID: 810 Comm: sh Not tainted 5.16.0-next-20220120-yocto-standard+ #536
  Hardware name: Marvell OcteonTX CN96XX board (DT)
  pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
  pc : debug_print_object+0xb8/0x100
  lr : debug_print_object+0xb8/0x100
  sp : ffff80001dfcf9a0
  x29: ffff80001dfcf9a0 x28: 0000000000000001 x27: ffff0001464f0000
  x26: 0000000000000000 x25: ffff8000090e3f00 x24: ffff80000af60210
  x23: ffff8000094dfb78 x22: ffff8000090e3f00 x21: ffff0001080b7118
  x20: ffff80000aeb2430 x19: ffff800009e8f5e0 x18: 0000000000000000
  x17: 0000000000000002 x16: 00004d62e58be040 x15: 013590470523aff8
  x14: ffff8000090e1828 x13: 0000000001359047 x12: 00000000f5257d14
  x11: 0000000000040591 x10: 0000000066c1ffea x9 : ffff8000080d15e0
  x8 : ffff80000a1765a8 x7 : 0000000000000000 x6 : 0000000000000001
  x5 : ffff800009e8c000 x4 : ffff800009e8c760 x3 : 0000000000000000
  x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0001474ed040
  Call trace:
   debug_print_object+0xb8/0x100
   __debug_check_no_obj_freed+0x1d0/0x25c
   debug_check_no_obj_freed+0x24/0xa0
   kfree+0x11c/0x440
   cpufreq_dbs_governor_exit+0xa8/0xac
   cpufreq_exit_governor+0x44/0x90
   cpufreq_set_policy+0x29c/0x570
   store_scaling_governor+0x110/0x154
   store+0xb0/0xe0
   sysfs_kf_write+0x58/0x84
   kernfs_fop_write_iter+0x12c/0x1c0
   new_sync_write+0xf0/0x18c
   vfs_write+0x1cc/0x220
   ksys_write+0x74/0x100
   __arm64_sys_write+0x28/0x3c
   invoke_syscall.constprop.0+0x58/0xf0
   do_el0_svc+0x70/0x170
   el0_svc+0x54/0x190
   el0t_64_sync_handler+0xa4/0x130
   el0t_64_sync+0x1a0/0x1a4
  irq event stamp: 189006
  hardirqs last  enabled at (189005): [<ffff8000080849d0>] finish_task_switch.isra.0+0xe0/0x2c0
  hardirqs last disabled at (189006): [<ffff8000090667a4>] el1_dbg+0x24/0xa0
  softirqs last  enabled at (188966): [<ffff8000080106d0>] __do_softirq+0x4b0/0x6a0
  softirqs last disabled at (188957): [<ffff80000804a618>] __irq_exit_rcu+0x108/0x1a4

[ rjw: Because can be freed by the gov_attr_set_put() in
  cpufreq_dbs_governor_exit() now, it is also necessary to put the
  invocation of the governor ->exit() callback into the new
  cpufreq_dbs_data_release() function. ]

Fixes: c4435630361d ("cpufreq: governor: New sysfs show/store callbacks for governor tunables")
Signed-off-by: Kevin Hao <haokexin@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
Hi,

The original upstream patch has the Fixes tag, but I have no idea why it
wasn't picked up by the 5.15 stable kernel. So resend it to the linux stable.
The original upstream patch can apply to the 5.15.y kernel cleanly.

 drivers/cpufreq/cpufreq_governor.c | 20 +++++++++++++-------
 drivers/cpufreq/cpufreq_governor.h |  1 +
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
index 63f7c219062b..55c80319d268 100644
--- a/drivers/cpufreq/cpufreq_governor.c
+++ b/drivers/cpufreq/cpufreq_governor.c
@@ -388,6 +388,15 @@ static void free_policy_dbs_info(struct policy_dbs_info *policy_dbs,
 	gov->free(policy_dbs);
 }
 
+static void cpufreq_dbs_data_release(struct kobject *kobj)
+{
+	struct dbs_data *dbs_data = to_dbs_data(to_gov_attr_set(kobj));
+	struct dbs_governor *gov = dbs_data->gov;
+
+	gov->exit(dbs_data);
+	kfree(dbs_data);
+}
+
 int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)
 {
 	struct dbs_governor *gov = dbs_governor_of(policy);
@@ -425,6 +434,7 @@ int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)
 		goto free_policy_dbs_info;
 	}
 
+	dbs_data->gov = gov;
 	gov_attr_set_init(&dbs_data->attr_set, &policy_dbs->list);
 
 	ret = gov->init(dbs_data);
@@ -447,6 +457,7 @@ int cpufreq_dbs_governor_init(struct cpufreq_policy *policy)
 	policy->governor_data = policy_dbs;
 
 	gov->kobj_type.sysfs_ops = &governor_sysfs_ops;
+	gov->kobj_type.release = cpufreq_dbs_data_release;
 	ret = kobject_init_and_add(&dbs_data->attr_set.kobj, &gov->kobj_type,
 				   get_governor_parent_kobj(policy),
 				   "%s", gov->gov.name);
@@ -488,13 +499,8 @@ void cpufreq_dbs_governor_exit(struct cpufreq_policy *policy)
 
 	policy->governor_data = NULL;
 
-	if (!count) {
-		if (!have_governor_per_policy())
-			gov->gdbs_data = NULL;
-
-		gov->exit(dbs_data);
-		kfree(dbs_data);
-	}
+	if (!count && !have_governor_per_policy())
+		gov->gdbs_data = NULL;
 
 	free_policy_dbs_info(policy_dbs, gov);
 
diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_governor.h
index bab8e6140377..a6de26318abb 100644
--- a/drivers/cpufreq/cpufreq_governor.h
+++ b/drivers/cpufreq/cpufreq_governor.h
@@ -37,6 +37,7 @@ enum {OD_NORMAL_SAMPLE, OD_SUB_SAMPLE};
 /* Governor demand based switching data (per-policy or global). */
 struct dbs_data {
 	struct gov_attr_set attr_set;
+	struct dbs_governor *gov;
 	void *tuners;
 	unsigned int ignore_nice_load;
 	unsigned int sampling_rate;
-- 
2.38.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 5.15] cpufreq: governor: Use kobject release() method to free dbs_data
  2023-01-20  4:26 [PATCH 5.15] cpufreq: governor: Use kobject release() method to free dbs_data Kevin Hao
@ 2023-01-20  6:39 ` Greg Kroah-Hartman
  2023-01-20  8:00   ` Kevin Hao
  2023-01-20 21:40 ` Tom Saeger
  1 sibling, 1 reply; 7+ messages in thread
From: Greg Kroah-Hartman @ 2023-01-20  6:39 UTC (permalink / raw)
  To: Kevin Hao; +Cc: stable, Sasha Levin, Rafael J . Wysocki

On Fri, Jan 20, 2023 at 12:26:50PM +0800, Kevin Hao wrote:
> commit a85ee6401a47ae3fc64ba506cacb3e7873823c65 upstream.
> 
> The struct dbs_data embeds a struct gov_attr_set and
> the struct gov_attr_set embeds a kobject. Since every kobject must have
> a release() method and we can't use kfree() to free it directly,
> so introduce cpufreq_dbs_data_release() to release the dbs_data via
> the kobject::release() method. This fixes the calltrace like below:
> 
>   ODEBUG: free active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x34
>   WARNING: CPU: 12 PID: 810 at lib/debugobjects.c:505 debug_print_object+0xb8/0x100
>   Modules linked in:
>   CPU: 12 PID: 810 Comm: sh Not tainted 5.16.0-next-20220120-yocto-standard+ #536
>   Hardware name: Marvell OcteonTX CN96XX board (DT)
>   pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
>   pc : debug_print_object+0xb8/0x100
>   lr : debug_print_object+0xb8/0x100
>   sp : ffff80001dfcf9a0
>   x29: ffff80001dfcf9a0 x28: 0000000000000001 x27: ffff0001464f0000
>   x26: 0000000000000000 x25: ffff8000090e3f00 x24: ffff80000af60210
>   x23: ffff8000094dfb78 x22: ffff8000090e3f00 x21: ffff0001080b7118
>   x20: ffff80000aeb2430 x19: ffff800009e8f5e0 x18: 0000000000000000
>   x17: 0000000000000002 x16: 00004d62e58be040 x15: 013590470523aff8
>   x14: ffff8000090e1828 x13: 0000000001359047 x12: 00000000f5257d14
>   x11: 0000000000040591 x10: 0000000066c1ffea x9 : ffff8000080d15e0
>   x8 : ffff80000a1765a8 x7 : 0000000000000000 x6 : 0000000000000001
>   x5 : ffff800009e8c000 x4 : ffff800009e8c760 x3 : 0000000000000000
>   x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0001474ed040
>   Call trace:
>    debug_print_object+0xb8/0x100
>    __debug_check_no_obj_freed+0x1d0/0x25c
>    debug_check_no_obj_freed+0x24/0xa0
>    kfree+0x11c/0x440
>    cpufreq_dbs_governor_exit+0xa8/0xac
>    cpufreq_exit_governor+0x44/0x90
>    cpufreq_set_policy+0x29c/0x570
>    store_scaling_governor+0x110/0x154
>    store+0xb0/0xe0
>    sysfs_kf_write+0x58/0x84
>    kernfs_fop_write_iter+0x12c/0x1c0
>    new_sync_write+0xf0/0x18c
>    vfs_write+0x1cc/0x220
>    ksys_write+0x74/0x100
>    __arm64_sys_write+0x28/0x3c
>    invoke_syscall.constprop.0+0x58/0xf0
>    do_el0_svc+0x70/0x170
>    el0_svc+0x54/0x190
>    el0t_64_sync_handler+0xa4/0x130
>    el0t_64_sync+0x1a0/0x1a4
>   irq event stamp: 189006
>   hardirqs last  enabled at (189005): [<ffff8000080849d0>] finish_task_switch.isra.0+0xe0/0x2c0
>   hardirqs last disabled at (189006): [<ffff8000090667a4>] el1_dbg+0x24/0xa0
>   softirqs last  enabled at (188966): [<ffff8000080106d0>] __do_softirq+0x4b0/0x6a0
>   softirqs last disabled at (188957): [<ffff80000804a618>] __irq_exit_rcu+0x108/0x1a4
> 
> [ rjw: Because can be freed by the gov_attr_set_put() in
>   cpufreq_dbs_governor_exit() now, it is also necessary to put the
>   invocation of the governor ->exit() callback into the new
>   cpufreq_dbs_data_release() function. ]
> 
> Fixes: c4435630361d ("cpufreq: governor: New sysfs show/store callbacks for governor tunables")
> Signed-off-by: Kevin Hao <haokexin@gmail.com>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ---
> Hi,
> 
> The original upstream patch has the Fixes tag, but I have no idea why it
> wasn't picked up by the 5.15 stable kernel.

That is because that is NOT how you mark commits for stable backports.
Please see:
    https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 5.15] cpufreq: governor: Use kobject release() method to free dbs_data
  2023-01-20  6:39 ` Greg Kroah-Hartman
@ 2023-01-20  8:00   ` Kevin Hao
  0 siblings, 0 replies; 7+ messages in thread
From: Kevin Hao @ 2023-01-20  8:00 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: stable, Sasha Levin, Rafael J . Wysocki

[-- Attachment #1: Type: text/plain, Size: 379 bytes --]

On Fri, Jan 20, 2023 at 07:39:00AM +0100, Greg Kroah-Hartman wrote:
> 
> That is because that is NOT how you mark commits for stable backports.
> Please see:
>     https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
> for how to do this properly.

I see where the problem is and will make sure to do it right next time. Thanks Greg.

Thanks,
Kevin

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 5.15] cpufreq: governor: Use kobject release() method to free dbs_data
  2023-01-20  4:26 [PATCH 5.15] cpufreq: governor: Use kobject release() method to free dbs_data Kevin Hao
  2023-01-20  6:39 ` Greg Kroah-Hartman
@ 2023-01-20 21:40 ` Tom Saeger
  2023-01-21  1:50   ` Kevin Hao
  1 sibling, 1 reply; 7+ messages in thread
From: Tom Saeger @ 2023-01-20 21:40 UTC (permalink / raw)
  To: Kevin Hao; +Cc: stable, Greg Kroah-Hartman, Sasha Levin, Rafael J . Wysocki

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=unknown-8bit, Size: 5072 bytes --]

On Fri, Jan 20, 2023 at 12:26:50PM +0800, Kevin Hao wrote:
> commit a85ee6401a47ae3fc64ba506cacb3e7873823c65 upstream.
> 
> The struct dbs_data embeds a struct gov_attr_set and
> the struct gov_attr_set embeds a kobject. Since every kobject must have
> a release() method and we can't use kfree() to free it directly,
> so introduce cpufreq_dbs_data_release() to release the dbs_data via
> the kobject::release() method. This fixes the calltrace like below:
> 
>   ODEBUG: free active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x34
>   WARNING: CPU: 12 PID: 810 at lib/debugobjects.c:505 debug_print_object+0xb8/0x100
>   Modules linked in:
>   CPU: 12 PID: 810 Comm: sh Not tainted 5.16.0-next-20220120-yocto-standard+ #536
>   Hardware name: Marvell OcteonTX CN96XX board (DT)
>   pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
>   pc : debug_print_object+0xb8/0x100
>   lr : debug_print_object+0xb8/0x100
>   sp : ffff80001dfcf9a0
>   x29: ffff80001dfcf9a0 x28: 0000000000000001 x27: ffff0001464f0000
>   x26: 0000000000000000 x25: ffff8000090e3f00 x24: ffff80000af60210
>   x23: ffff8000094dfb78 x22: ffff8000090e3f00 x21: ffff0001080b7118
>   x20: ffff80000aeb2430 x19: ffff800009e8f5e0 x18: 0000000000000000
>   x17: 0000000000000002 x16: 00004d62e58be040 x15: 013590470523aff8
>   x14: ffff8000090e1828 x13: 0000000001359047 x12: 00000000f5257d14
>   x11: 0000000000040591 x10: 0000000066c1ffea x9 : ffff8000080d15e0
>   x8 : ffff80000a1765a8 x7 : 0000000000000000 x6 : 0000000000000001
>   x5 : ffff800009e8c000 x4 : ffff800009e8c760 x3 : 0000000000000000
>   x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0001474ed040
>   Call trace:
>    debug_print_object+0xb8/0x100
>    __debug_check_no_obj_freed+0x1d0/0x25c
>    debug_check_no_obj_freed+0x24/0xa0
>    kfree+0x11c/0x440
>    cpufreq_dbs_governor_exit+0xa8/0xac
>    cpufreq_exit_governor+0x44/0x90
>    cpufreq_set_policy+0x29c/0x570
>    store_scaling_governor+0x110/0x154
>    store+0xb0/0xe0
>    sysfs_kf_write+0x58/0x84
>    kernfs_fop_write_iter+0x12c/0x1c0
>    new_sync_write+0xf0/0x18c
>    vfs_write+0x1cc/0x220
>    ksys_write+0x74/0x100
>    __arm64_sys_write+0x28/0x3c
>    invoke_syscall.constprop.0+0x58/0xf0
>    do_el0_svc+0x70/0x170
>    el0_svc+0x54/0x190
>    el0t_64_sync_handler+0xa4/0x130
>    el0t_64_sync+0x1a0/0x1a4
>   irq event stamp: 189006
>   hardirqs last  enabled at (189005): [<ffff8000080849d0>] finish_task_switch.isra.0+0xe0/0x2c0
>   hardirqs last disabled at (189006): [<ffff8000090667a4>] el1_dbg+0x24/0xa0
>   softirqs last  enabled at (188966): [<ffff8000080106d0>] __do_softirq+0x4b0/0x6a0
>   softirqs last disabled at (188957): [<ffff80000804a618>] __irq_exit_rcu+0x108/0x1a4
> 
> [ rjw: Because can be freed by the gov_attr_set_put() in
>   cpufreq_dbs_governor_exit() now, it is also necessary to put the
>   invocation of the governor ->exit() callback into the new
>   cpufreq_dbs_data_release() function. ]
> 
> Fixes: c4435630361d ("cpufreq: governor: New sysfs show/store callbacks for governor tunables")
> Signed-off-by: Kevin Hao <haokexin@gmail.com>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ---
> Hi,
> 
> The original upstream patch has the Fixes tag, but I have no idea why it
> wasn't picked up by the 5.15 stable kernel. So resend it to the linux stable.
> The original upstream patch can apply to the 5.15.y kernel cleanly.

applies but has build error:

/home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c: In function ‘cpufreq_dbs_data_release’:
/home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c:393:49: error: implicit declaration of function ‘to_gov_attr_set’ [-Werror=implicit-function-declaration]
  393 |         struct dbs_data *dbs_data = to_dbs_data(to_gov_attr_set(kobj));
      |                                                 ^~~~~~~~~~~~~~~
/home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c:393:49: warning: passing argument 1 of ‘to_dbs_data’ makes pointer from integer without a cast [-Wint-conversion]
  393 |         struct dbs_data *dbs_data = to_dbs_data(to_gov_attr_set(kobj));
      |                                                 ^~~~~~~~~~~~~~~~~~~~~
      |                                                 |
      |                                                 int
In file included from /home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c:20:
/home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.h:49:65: note: expected ‘struct gov_attr_set *’ but argument is of type ‘int’
   49 | static inline struct dbs_data *to_dbs_data(struct gov_attr_set *attr_set)
      |                                            ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
cc1: some warnings being treated as errors


5.15.y first with:
ae2650865127 ("cpufreq: Move to_gov_attr_set() to cpufreq.h")

then
a85ee6401a47 ("cpufreq: governor: Use kobject release() method to free dbs_data")

compiled clean


Regards,
--Tom

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 5.15] cpufreq: governor: Use kobject release() method to free dbs_data
  2023-01-20 21:40 ` Tom Saeger
@ 2023-01-21  1:50   ` Kevin Hao
  2023-01-22 13:44     ` Greg Kroah-Hartman
  0 siblings, 1 reply; 7+ messages in thread
From: Kevin Hao @ 2023-01-21  1:50 UTC (permalink / raw)
  To: Tom Saeger; +Cc: stable, Greg Kroah-Hartman, Sasha Levin, Rafael J . Wysocki

[-- Attachment #1: Type: text/plain, Size: 1857 bytes --]

On Fri, Jan 20, 2023 at 02:40:32PM -0700, Tom Saeger wrote:
> 
> applies but has build error:
> 
> /home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c: In function ‘cpufreq_dbs_data_release’:
> /home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c:393:49: error: implicit declaration of function ‘to_gov_attr_set’ [-Werror=implicit-function-declaration]
>   393 |         struct dbs_data *dbs_data = to_dbs_data(to_gov_attr_set(kobj));
>       |                                                 ^~~~~~~~~~~~~~~
> /home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c:393:49: warning: passing argument 1 of ‘to_dbs_data’ makes pointer from integer without a cast [-Wint-conversion]
>   393 |         struct dbs_data *dbs_data = to_dbs_data(to_gov_attr_set(kobj));
>       |                                                 ^~~~~~~~~~~~~~~~~~~~~
>       |                                                 |
>       |                                                 int
> In file included from /home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c:20:
> /home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.h:49:65: note: expected ‘struct gov_attr_set *’ but argument is of type ‘int’
>    49 | static inline struct dbs_data *to_dbs_data(struct gov_attr_set *attr_set)
>       |                                            ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
> cc1: some warnings being treated as errors
> 
> 
> 5.15.y first with:
> ae2650865127 ("cpufreq: Move to_gov_attr_set() to cpufreq.h")

I managed to forget this commit.

> 
> then
> a85ee6401a47 ("cpufreq: governor: Use kobject release() method to free dbs_data")
> 
> compiled clean

Thanks Tom.

Kevin

> 
> 
> Regards,
> --Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 5.15] cpufreq: governor: Use kobject release() method to free dbs_data
  2023-01-21  1:50   ` Kevin Hao
@ 2023-01-22 13:44     ` Greg Kroah-Hartman
  2023-01-22 14:43       ` Kevin Hao
  0 siblings, 1 reply; 7+ messages in thread
From: Greg Kroah-Hartman @ 2023-01-22 13:44 UTC (permalink / raw)
  To: Kevin Hao; +Cc: Tom Saeger, stable, Sasha Levin, Rafael J . Wysocki

On Sat, Jan 21, 2023 at 09:50:13AM +0800, Kevin Hao wrote:
> On Fri, Jan 20, 2023 at 02:40:32PM -0700, Tom Saeger wrote:
> > 
> > applies but has build error:
> > 
> > /home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c: In function ‘cpufreq_dbs_data_release’:
> > /home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c:393:49: error: implicit declaration of function ‘to_gov_attr_set’ [-Werror=implicit-function-declaration]
> >   393 |         struct dbs_data *dbs_data = to_dbs_data(to_gov_attr_set(kobj));
> >       |                                                 ^~~~~~~~~~~~~~~
> > /home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c:393:49: warning: passing argument 1 of ‘to_dbs_data’ makes pointer from integer without a cast [-Wint-conversion]
> >   393 |         struct dbs_data *dbs_data = to_dbs_data(to_gov_attr_set(kobj));
> >       |                                                 ^~~~~~~~~~~~~~~~~~~~~
> >       |                                                 |
> >       |                                                 int
> > In file included from /home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.c:20:
> > /home/tsaeger/workspace/linux/linux-5.15.y/drivers/cpufreq/cpufreq_governor.h:49:65: note: expected ‘struct gov_attr_set *’ but argument is of type ‘int’
> >    49 | static inline struct dbs_data *to_dbs_data(struct gov_attr_set *attr_set)
> >       |                                            ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
> > cc1: some warnings being treated as errors
> > 
> > 
> > 5.15.y first with:
> > ae2650865127 ("cpufreq: Move to_gov_attr_set() to cpufreq.h")
> 
> I managed to forget this commit.

Please submit a working patch series that at least attempts to show you
tested this :)

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 5.15] cpufreq: governor: Use kobject release() method to free dbs_data
  2023-01-22 13:44     ` Greg Kroah-Hartman
@ 2023-01-22 14:43       ` Kevin Hao
  0 siblings, 0 replies; 7+ messages in thread
From: Kevin Hao @ 2023-01-22 14:43 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: Tom Saeger, stable, Sasha Levin, Rafael J . Wysocki

[-- Attachment #1: Type: text/plain, Size: 230 bytes --]

On Sun, Jan 22, 2023 at 02:44:24PM +0100, Greg Kroah-Hartman wrote:
> 
> Please submit a working patch series that at least attempts to show you
> tested this :)

Apologize for my negligence. V2 is coming.

Thanks,
Kevin

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-01-22 14:43 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-20  4:26 [PATCH 5.15] cpufreq: governor: Use kobject release() method to free dbs_data Kevin Hao
2023-01-20  6:39 ` Greg Kroah-Hartman
2023-01-20  8:00   ` Kevin Hao
2023-01-20 21:40 ` Tom Saeger
2023-01-21  1:50   ` Kevin Hao
2023-01-22 13:44     ` Greg Kroah-Hartman
2023-01-22 14:43       ` Kevin Hao

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.