[Bug 206695] New: kmemleak reports leaks in drivers/macintosh/windfarm
Michael Ellerman
mpe at ellerman.id.au
Thu Mar 5 23:22:41 AEDT 2020
Can you try this patch?
diff --git a/drivers/macintosh/windfarm_pm112.c b/drivers/macintosh/windfarm_pm112.c
index 4150301a89a5..a16f43a1def9 100644
--- a/drivers/macintosh/windfarm_pm112.c
+++ b/drivers/macintosh/windfarm_pm112.c
@@ -125,7 +125,7 @@ static int create_cpu_loop(int cpu)
{
int chip = cpu / 2;
int core = cpu & 1;
- struct smu_sdbp_header *hdr;
+ struct smu_sdbp_header *hdr, *hdr2;
struct smu_sdbp_cpupiddata *piddata;
struct wf_cpu_pid_param pid;
struct wf_control *main_fan = cpu_fans[0];
@@ -141,9 +141,9 @@ static int create_cpu_loop(int cpu)
piddata = (struct smu_sdbp_cpupiddata *)&hdr[1];
/* Get FVT params to get Tmax; if not found, assume default */
- hdr = smu_sat_get_sdb_partition(chip, 0xC4 + core, NULL);
- if (hdr) {
- struct smu_sdbp_fvt *fvt = (struct smu_sdbp_fvt *)&hdr[1];
+ hdr2 = smu_sat_get_sdb_partition(chip, 0xC4 + core, NULL);
+ if (hdr2) {
+ struct smu_sdbp_fvt *fvt = (struct smu_sdbp_fvt *)&hdr2[1];
tmax = fvt->maxtemp << 16;
} else
tmax = 95 << 16; /* default to 95 degrees C */
@@ -174,6 +174,10 @@ static int create_cpu_loop(int cpu)
pid.min = fmin;
wf_cpu_pid_init(&cpu_pid[cpu], &pid);
+
+ kfree(hdr);
+ kfree(hdr2);
+
return 0;
}
More information about the Linuxppc-dev
mailing list