From b7cfd10a1c44c90ffa3a4bea752d058f663a14cc Mon Sep 17 00:00:00 2001 From: Fengguang Wu Date: Sun, 23 Sep 2012 08:18:06 +0800 Subject: [PATCH] --- yaml --- r: 323125 b: refs/heads/master c: ef6e7816b4546475d04b4ea22d58c48472157c70 h: refs/heads/master i: 323123: be7086a59f786f4db4aaf7ae86ae42c347cd4967 v: v3 --- [refs] | 2 +- trunk/drivers/edac/edac_mc.c | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 802c15b65bc6..8fdf46888135 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e5e77cf9f9a275083f9a365a20d956fa8a67803e +refs/heads/master: ef6e7816b4546475d04b4ea22d58c48472157c70 diff --git a/trunk/drivers/edac/edac_mc.c b/trunk/drivers/edac/edac_mc.c index 616d90bcb3a4..9037ffa100d5 100644 --- a/trunk/drivers/edac/edac_mc.c +++ b/trunk/drivers/edac/edac_mc.c @@ -419,14 +419,16 @@ struct mem_ctl_info *edac_mc_alloc(unsigned mc_num, kfree(mci->dimms); } if (mci->csrows) { - for (chn = 0; chn < tot_channels; chn++) { - csr = mci->csrows[chn]; + for (row = 0; row < tot_csrows; row++) { + csr = mci->csrows[row]; if (csr) { - for (chn = 0; chn < tot_channels; chn++) - kfree(csr->channels[chn]); + if (csr->channels) { + for (chn = 0; chn < tot_channels; chn++) + kfree(csr->channels[chn]); + kfree(csr->channels); + } kfree(csr); } - kfree(mci->csrows[i]); } kfree(mci->csrows); }