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; }