2004-04-21 15:55:07

by Charles Coffing

[permalink] [raw]
Subject: [PATCH] unbalanced try_get_module/put_module in cpufreq

Hi,

This patch is against 2.6.5. There's a small bug in cpufreq_add_dev: If kmalloc fails, try_get_module() is not balanced by a module_put().

Thanks,
Charles


diff -pu linux-2.6.5.orig/drivers/cpufreq/cpufreq.c linux-2.6.5/drivers/cpufreq/cpufreq.c
--- linux-2.6.5.orig/drivers/cpufreq/cpufreq.c 2004-04-03 20:36:26.000000000 -0700
+++ linux-2.6.5/drivers/cpufreq/cpufreq.c 2004-04-20 12:38:53.110191544 -0600
@@ -361,7 +361,10 @@ static int cpufreq_add_dev (struct sys_d

policy = kmalloc(sizeof(struct cpufreq_policy), GFP_KERNEL);
if (!policy)
+ {
+ module_put(cpufreq_driver->owner);
return -ENOMEM;
+ }
memset(policy, 0, sizeof(struct cpufreq_policy));

policy->cpu = cpu;


2004-04-21 16:08:30

by Dave Jones

[permalink] [raw]
Subject: Re: [PATCH] unbalanced try_get_module/put_module in cpufreq

On Wed, Apr 21, 2004 at 10:47:02AM -0600, Charles Coffing wrote:
> Hi,
>
> This patch is against 2.6.5. There's a small bug in cpufreq_add_dev: If kmalloc fails, try_get_module() is not balanced by a module_put().
>

Thanks, applied. (Slightly different variant, but same end result).

Dave