[PATCH 1/3] edac_mc: fix kfree calls in the error path
From: Fengguang Wu We need to free up memory in this order: free csrows[i]->channels[j] free csrows[i]->channels free csrows[i] free csrows Signed-off-by: Fengguang Wu --- drivers/edac/edac_mc.c | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c index 616d90b..9037ffa 100644 --- a/drivers/edac/edac_mc.c +++ b/drivers/edac/edac_mc.c @@ -419,14 +419,16 @@ error: 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); } -- 1.7.11.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 1/3] edac_mc: fix kfree calls in the error path
From: Fengguang Wu fengguang...@intel.com We need to free up memory in this order: free csrows[i]-channels[j] free csrows[i]-channels free csrows[i] free csrows Signed-off-by: Fengguang Wu fengguang...@intel.com --- drivers/edac/edac_mc.c | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c index 616d90b..9037ffa 100644 --- a/drivers/edac/edac_mc.c +++ b/drivers/edac/edac_mc.c @@ -419,14 +419,16 @@ error: 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); } -- 1.7.11.2 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/