
From: Pavel Machek <pavel@ucw.cz>

This prevents memory leak if something goes wrong.



 arch/i386/kernel/cpu/cpufreq/powernow-k8.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)

diff -puN arch/i386/kernel/cpu/cpufreq/powernow-k8.c~cpufreq-memleak-fix arch/i386/kernel/cpu/cpufreq/powernow-k8.c
--- 25/arch/i386/kernel/cpu/cpufreq/powernow-k8.c~cpufreq-memleak-fix	2004-01-03 11:41:46.000000000 -0800
+++ 25-akpm/arch/i386/kernel/cpu/cpufreq/powernow-k8.c	2004-01-03 11:41:46.000000000 -0800
@@ -687,11 +687,13 @@ find_psb_table(void)
 			if (ppst[j].vid < rvo) {	/* vid+rvo >= 0 */
 				printk(KERN_ERR BFX
 				       "0 vid exceeded with pstate %d\n", j);
+				kfree(ppst);
 				return -ENODEV;
 			}
 			if (ppst[j].vid < maxvid+rvo) { /* vid+rvo >= maxvid */
 				printk(KERN_ERR BFX
 				       "maxvid exceeded with pstate %d\n", j);
+				kfree(ppst);
 				return -ENODEV;
 			}
 		}
@@ -706,7 +708,7 @@ find_psb_table(void)
 
 		for (j = 0; j < numps; j++)
 			if ((ppst[j].fid==currfid) && (ppst[j].vid==currvid))
-				return (0);
+				return 0;
 
 		printk(KERN_ERR BFX "currfid/vid do not match PST, ignoring\n");
 		return 0;

_
