From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: Patch "EDAC, amd64: Fix reporting of Chip Select sizes on Fam17h" has been added to the 4.11-stable tree From: Greg Kroah-Hartman Message-Id: <1495535608107174@kroah.com> Date: Tue, 23 May 2017 12:33:28 +0200 To: yazen.ghannam@amd.com, benbennett@gmail.com, bp@suse.de, gregkh@linuxfoundation.org, linux-edac@vger.kernel.org Cc: stable@vger.kernel.org, stable-commits@vger.kernel.org List-ID: VGhpcyBpcyBhIG5vdGUgdG8gbGV0IHlvdSBrbm93IHRoYXQgSSd2ZSBqdXN0IGFkZGVkIHRoZSBw YXRjaCB0aXRsZWQKCiAgICBFREFDLCBhbWQ2NDogRml4IHJlcG9ydGluZyBvZiBDaGlwIFNlbGVj dCBzaXplcyBvbiBGYW0xN2gKCnRvIHRoZSA0LjExLXN0YWJsZSB0cmVlIHdoaWNoIGNhbiBiZSBm b3VuZCBhdDoKICAgIGh0dHA6Ly93d3cua2VybmVsLm9yZy9naXQvP3A9bGludXgva2VybmVsL2dp dC9zdGFibGUvc3RhYmxlLXF1ZXVlLmdpdDthPXN1bW1hcnkKClRoZSBmaWxlbmFtZSBvZiB0aGUg cGF0Y2ggaXM6CiAgICAgZWRhYy1hbWQ2NC1maXgtcmVwb3J0aW5nLW9mLWNoaXAtc2VsZWN0LXNp emVzLW9uLWZhbTE3aC5wYXRjaAphbmQgaXQgY2FuIGJlIGZvdW5kIGluIHRoZSBxdWV1ZS00LjEx IHN1YmRpcmVjdG9yeS4KCklmIHlvdSwgb3IgYW55b25lIGVsc2UsIGZlZWxzIGl0IHNob3VsZCBu b3QgYmUgYWRkZWQgdG8gdGhlIHN0YWJsZSB0cmVlLApwbGVhc2UgbGV0IDxzdGFibGVAdmdlci5r ZXJuZWwub3JnPiBrbm93IGFib3V0IGl0LgoKCkZyb20gZWI3N2U2YjgwZjNiZWQyNjJjNzc3MzIz NmYwZmI4NDY0OWZkMzA5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWWF6ZW4gR2hh bm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPgpEYXRlOiBUaHUsIDI3IEFwciAyMDE3IDEyOjEx OjU0IC0wNTAwClN1YmplY3Q6IEVEQUMsIGFtZDY0OiBGaXggcmVwb3J0aW5nIG9mIENoaXAgU2Vs ZWN0IHNpemVzIG9uIEZhbTE3aAoKRnJvbTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBh bWQuY29tPgoKY29tbWl0IGViNzdlNmI4MGYzYmVkMjYyYzc3NzMyMzZmMGZiODQ2NDlmZDMwOTEg dXBzdHJlYW0uCgpUaGUgd3JvbmcgaW5kZXggaW50byB0aGUgY3NiYXNlcy9jc21hc2tzIGFycmF5 cyB3YXMgYmVpbmcgcGFzc2VkIHRvCnRoZSBmdW5jdGlvbiB0byBjb21wdXRlIHRoZSBjaGlwIHNl bGVjdCBzaXplcywgd2hpY2ggcmVzdWx0ZWQgaW4gdGhlCndyb25nIHNpemUgYmVpbmcgY29tcHV0 ZWQuIEFkZHJlc3MgdGhhdCBzbyB0aGF0IHRoZSBjb3JyZWN0IHZhbHVlcyBhcmUKY29tcHV0ZWQg YW5kIHByaW50ZWQuCgpBbHNvLCByZWRvIGhvdyB3ZSBjYWxjdWxhdGUgdGhlIG51bWJlciBvZiBw YWdlcyBpbiBhIENTIHJvdy4KClJlcG9ydGVkLWJ5OiBCZW5qYW1pbiBCZW5uZXR0IDxiZW5iZW5u ZXR0QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogWWF6ZW4gR2hhbm5hbSA8eWF6ZW4uZ2hhbm5h bUBhbWQuY29tPgpDYzogbGludXgtZWRhYyA8bGludXgtZWRhY0B2Z2VyLmtlcm5lbC5vcmc+Ckxp bms6IGh0dHA6Ly9sa21sLmtlcm5lbC5vcmcvci8xNDkzMzEzMTE0LTExMjYwLTEtZ2l0LXNlbmQt ZW1haWwtWWF6ZW4uR2hhbm5hbUBhbWQuY29tClsgUmVtb3ZlIHVubmVlZGVkIGludGVnZXIgbWF0 aCBjb21tZW50LCBtaW5vciBjbGVhbnVwcy4gXQpTaWduZWQtb2ZmLWJ5OiBCb3Jpc2xhdiBQZXRr b3YgPGJwQHN1c2UuZGU+ClNpZ25lZC1vZmYtYnk6IEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2to QGxpbnV4Zm91bmRhdGlvbi5vcmc+Ci0tLQogZHJpdmVycy9lZGFjL2FtZDY0X2VkYWMuYyB8ICAg NDAgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDE5IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKCgpQYXRjaGVzIGN1cnJlbnRs eSBpbiBzdGFibGUtcXVldWUgd2hpY2ggbWlnaHQgYmUgZnJvbSB5YXplbi5naGFubmFtQGFtZC5j b20gYXJlCgpxdWV1ZS00LjExL2VkYWMtYW1kNjQtZml4LXJlcG9ydGluZy1vZi1jaGlwLXNlbGVj dC1zaXplcy1vbi1mYW0xN2gucGF0Y2gKLS0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6 IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LWVkYWMiIGluCnRoZSBib2R5IG9mIGEg bWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnCk1vcmUgbWFqb3Jkb21vIGluZm8g YXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAoKLS0tIGEvZHJp dmVycy9lZGFjL2FtZDY0X2VkYWMuYworKysgYi9kcml2ZXJzL2VkYWMvYW1kNjRfZWRhYy5jCkBA IC03ODIsMjQgKzc4MiwyNiBAQCBzdGF0aWMgdm9pZCBkZWJ1Z19kdW1wX2RyYW1jZmdfbG93KHN0 cnVjCiAKIHN0YXRpYyB2b2lkIGRlYnVnX2Rpc3BsYXlfZGltbV9zaXplc19kZihzdHJ1Y3QgYW1k NjRfcHZ0ICpwdnQsIHU4IGN0cmwpCiB7Ci0JdTMyICpkY3NiID0gY3RybCA/IHB2dC0+Y3NlbHNb MV0uY3NiYXNlcyA6IHB2dC0+Y3NlbHNbMF0uY3NiYXNlczsKLQlpbnQgZGltbSwgc2l6ZTAsIHNp emUxOworCWludCBkaW1tLCBzaXplMCwgc2l6ZTEsIGNzMCwgY3MxOwogCiAJZWRhY19wcmludGso S0VSTl9ERUJVRywgRURBQ19NQywgIlVNQyVkIGNoaXAgc2VsZWN0czpcbiIsIGN0cmwpOwogCiAJ Zm9yIChkaW1tID0gMDsgZGltbSA8IDQ7IGRpbW0rKykgewogCQlzaXplMCA9IDA7CisJCWNzMCA9 IGRpbW0gKiAyOwogCi0JCWlmIChkY3NiW2RpbW0qMl0gJiBEQ1NCX0NTX0VOQUJMRSkKLQkJCXNp emUwID0gcHZ0LT5vcHMtPmRiYW1fdG9fY3MocHZ0LCBjdHJsLCAwLCBkaW1tKTsKKwkJaWYgKGNz cm93X2VuYWJsZWQoY3MwLCBjdHJsLCBwdnQpKQorCQkJc2l6ZTAgPSBwdnQtPm9wcy0+ZGJhbV90 b19jcyhwdnQsIGN0cmwsIDAsIGNzMCk7CiAKIAkJc2l6ZTEgPSAwOwotCQlpZiAoZGNzYltkaW1t KjIgKyAxXSAmIERDU0JfQ1NfRU5BQkxFKQotCQkJc2l6ZTEgPSBwdnQtPm9wcy0+ZGJhbV90b19j cyhwdnQsIGN0cmwsIDAsIGRpbW0pOworCQljczEgPSBkaW1tICogMiArIDE7CisKKwkJaWYgKGNz cm93X2VuYWJsZWQoY3MxLCBjdHJsLCBwdnQpKQorCQkJc2l6ZTEgPSBwdnQtPm9wcy0+ZGJhbV90 b19jcyhwdnQsIGN0cmwsIDAsIGNzMSk7CiAKIAkJYW1kNjRfaW5mbyhFREFDX01DICI6ICVkOiAl NWRNQiAlZDogJTVkTUJcbiIsCi0JCQkJZGltbSAqIDIsICAgICBzaXplMCwKLQkJCQlkaW1tICog MiArIDEsIHNpemUxKTsKKwkJCQljczAsCXNpemUwLAorCQkJCWNzMSwJc2l6ZTEpOwogCX0KIH0K IApAQCAtMjc1NiwyNiArMjc1OCwyMiBAQCBza2lwOgogICoJZW5jb21wYXNzZXMKICAqCiAgKi8K LXN0YXRpYyB1MzIgZ2V0X2Nzcm93X25yX3BhZ2VzKHN0cnVjdCBhbWQ2NF9wdnQgKnB2dCwgdTgg ZGN0LCBpbnQgY3Nyb3dfbnIpCitzdGF0aWMgdTMyIGdldF9jc3Jvd19ucl9wYWdlcyhzdHJ1Y3Qg YW1kNjRfcHZ0ICpwdnQsIHU4IGRjdCwgaW50IGNzcm93X25yX29yaWcpCiB7Ci0JdTMyIGNzX21v ZGUsIG5yX3BhZ2VzOwogCXUzMiBkYmFtID0gZGN0ID8gcHZ0LT5kYmFtMSA6IHB2dC0+ZGJhbTA7 CisJaW50IGNzcm93X25yID0gY3Nyb3dfbnJfb3JpZzsKKwl1MzIgY3NfbW9kZSwgbnJfcGFnZXM7 CiAKKwlpZiAoIXB2dC0+dW1jKQorCQljc3Jvd19uciA+Pj0gMTsKIAotCS8qCi0JICogVGhlIG1h dGggb24gdGhpcyBkb2Vzbid0IGxvb2sgcmlnaHQgb24gdGhlIHN1cmZhY2UgYmVjYXVzZSB4LzIq NCBjYW4KLQkgKiBiZSBzaW1wbGlmaWVkIHRvIHgqMiBidXQgdGhpcyBleHByZXNzaW9uIG1ha2Vz IHVzZSBvZiB0aGUgZmFjdCB0aGF0Ci0JICogaXQgaXMgaW50ZWdyYWwgbWF0aCB3aGVyZSAxLzI9 MC4gVGhpcyBpbnRlcm1lZGlhdGUgdmFsdWUgYmVjb21lcyB0aGUKLQkgKiBudW1iZXIgb2YgYml0 cyB0byBzaGlmdCB0aGUgREJBTSByZWdpc3RlciB0byBleHRyYWN0IHRoZSBwcm9wZXIgQ1NST1cK LQkgKiBmaWVsZC4KLQkgKi8KLQljc19tb2RlID0gREJBTV9ESU1NKGNzcm93X25yIC8gMiwgZGJh bSk7CisJY3NfbW9kZSA9IERCQU1fRElNTShjc3Jvd19uciwgZGJhbSk7CiAKLQlucl9wYWdlcyA9 IHB2dC0+b3BzLT5kYmFtX3RvX2NzKHB2dCwgZGN0LCBjc19tb2RlLCAoY3Nyb3dfbnIgLyAyKSkK LQkJCQkJCQkgICA8PCAoMjAgLSBQQUdFX1NISUZUKTsKKwlucl9wYWdlcyAgID0gcHZ0LT5vcHMt PmRiYW1fdG9fY3MocHZ0LCBkY3QsIGNzX21vZGUsIGNzcm93X25yKTsKKwlucl9wYWdlcyA8PD0g MjAgLSBQQUdFX1NISUZUOwogCiAJZWRhY19kYmcoMCwgImNzcm93OiAlZCwgY2hhbm5lbDogJWQs IERCQU0gaWR4OiAlZFxuIiwKLQkJICAgIGNzcm93X25yLCBkY3QsICBjc19tb2RlKTsKKwkJICAg IGNzcm93X25yX29yaWcsIGRjdCwgIGNzX21vZGUpOwogCWVkYWNfZGJnKDAsICJucl9wYWdlcy9j aGFubmVsOiAldVxuIiwgbnJfcGFnZXMpOwogCiAJcmV0dXJuIG5yX3BhZ2VzOwo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linuxfoundation.org ([140.211.169.12]:36818 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1763540AbdEWKdv (ORCPT ); Tue, 23 May 2017 06:33:51 -0400 Subject: Patch "EDAC, amd64: Fix reporting of Chip Select sizes on Fam17h" has been added to the 4.11-stable tree To: yazen.ghannam@amd.com, benbennett@gmail.com, bp@suse.de, gregkh@linuxfoundation.org, linux-edac@vger.kernel.org Cc: , From: Date: Tue, 23 May 2017 12:33:28 +0200 Message-ID: <1495535608107174@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: This is a note to let you know that I've just added the patch titled EDAC, amd64: Fix reporting of Chip Select sizes on Fam17h to the 4.11-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: edac-amd64-fix-reporting-of-chip-select-sizes-on-fam17h.patch and it can be found in the queue-4.11 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let know about it. >>From eb77e6b80f3bed262c7773236f0fb84649fd3091 Mon Sep 17 00:00:00 2001 From: Yazen Ghannam Date: Thu, 27 Apr 2017 12:11:54 -0500 Subject: EDAC, amd64: Fix reporting of Chip Select sizes on Fam17h From: Yazen Ghannam commit eb77e6b80f3bed262c7773236f0fb84649fd3091 upstream. The wrong index into the csbases/csmasks arrays was being passed to the function to compute the chip select sizes, which resulted in the wrong size being computed. Address that so that the correct values are computed and printed. Also, redo how we calculate the number of pages in a CS row. Reported-by: Benjamin Bennett Signed-off-by: Yazen Ghannam Cc: linux-edac Link: http://lkml.kernel.org/r/1493313114-11260-1-git-send-email-Yazen.Ghannam@amd.com [ Remove unneeded integer math comment, minor cleanups. ] Signed-off-by: Borislav Petkov Signed-off-by: Greg Kroah-Hartman --- drivers/edac/amd64_edac.c | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c @@ -782,24 +782,26 @@ static void debug_dump_dramcfg_low(struc static void debug_display_dimm_sizes_df(struct amd64_pvt *pvt, u8 ctrl) { - u32 *dcsb = ctrl ? pvt->csels[1].csbases : pvt->csels[0].csbases; - int dimm, size0, size1; + int dimm, size0, size1, cs0, cs1; edac_printk(KERN_DEBUG, EDAC_MC, "UMC%d chip selects:\n", ctrl); for (dimm = 0; dimm < 4; dimm++) { size0 = 0; + cs0 = dimm * 2; - if (dcsb[dimm*2] & DCSB_CS_ENABLE) - size0 = pvt->ops->dbam_to_cs(pvt, ctrl, 0, dimm); + if (csrow_enabled(cs0, ctrl, pvt)) + size0 = pvt->ops->dbam_to_cs(pvt, ctrl, 0, cs0); size1 = 0; - if (dcsb[dimm*2 + 1] & DCSB_CS_ENABLE) - size1 = pvt->ops->dbam_to_cs(pvt, ctrl, 0, dimm); + cs1 = dimm * 2 + 1; + + if (csrow_enabled(cs1, ctrl, pvt)) + size1 = pvt->ops->dbam_to_cs(pvt, ctrl, 0, cs1); amd64_info(EDAC_MC ": %d: %5dMB %d: %5dMB\n", - dimm * 2, size0, - dimm * 2 + 1, size1); + cs0, size0, + cs1, size1); } } @@ -2756,26 +2758,22 @@ skip: * encompasses * */ -static u32 get_csrow_nr_pages(struct amd64_pvt *pvt, u8 dct, int csrow_nr) +static u32 get_csrow_nr_pages(struct amd64_pvt *pvt, u8 dct, int csrow_nr_orig) { - u32 cs_mode, nr_pages; u32 dbam = dct ? pvt->dbam1 : pvt->dbam0; + int csrow_nr = csrow_nr_orig; + u32 cs_mode, nr_pages; + if (!pvt->umc) + csrow_nr >>= 1; - /* - * The math on this doesn't look right on the surface because x/2*4 can - * be simplified to x*2 but this expression makes use of the fact that - * it is integral math where 1/2=0. This intermediate value becomes the - * number of bits to shift the DBAM register to extract the proper CSROW - * field. - */ - cs_mode = DBAM_DIMM(csrow_nr / 2, dbam); + cs_mode = DBAM_DIMM(csrow_nr, dbam); - nr_pages = pvt->ops->dbam_to_cs(pvt, dct, cs_mode, (csrow_nr / 2)) - << (20 - PAGE_SHIFT); + nr_pages = pvt->ops->dbam_to_cs(pvt, dct, cs_mode, csrow_nr); + nr_pages <<= 20 - PAGE_SHIFT; edac_dbg(0, "csrow: %d, channel: %d, DBAM idx: %d\n", - csrow_nr, dct, cs_mode); + csrow_nr_orig, dct, cs_mode); edac_dbg(0, "nr_pages/channel: %u\n", nr_pages); return nr_pages; Patches currently in stable-queue which might be from yazen.ghannam@amd.com are queue-4.11/edac-amd64-fix-reporting-of-chip-select-sizes-on-fam17h.patch