From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Williams, Dan J" Subject: [GIT PULL] libnvdimm fix for 4.2 Date: Wed, 26 Aug 2015 00:16:06 +0000 Message-ID: <1440548164.31365.13.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com ([192.55.52.88]:45595 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753943AbbHZAQI (ORCPT ); Tue, 25 Aug 2015 20:16:08 -0400 Content-Language: en-US Content-ID: <140300644124DD46B17F8D0CF7CCC231@intel.com> Sender: linux-acpi-owner@vger.kernel.org List-Id: linux-acpi@vger.kernel.org To: "torvalds@linux-foundation.org" Cc: "linux-kernel@vger.kernel.org" , "linux-nvdimm@lists.01.org" , "linux-acpi@vger.kernel.org" SGkgTGludXMgcGxlYXNlIHB1bGwgZnJvbS4uLg0KDQogIGdpdDovL2dpdC5rZXJuZWwub3JnL3B1 Yi9zY20vbGludXgva2VybmVsL2dpdC9udmRpbW0vbnZkaW1tIGxpYm52ZGltbS1maXhlcw0KDQou Li50byByZWNlaXZlIGEgc2luZ2xlIGZpeCBmb3IgdGhlIG5kX2JsayBkcml2ZXIuDQoNClRoZSBl ZmZlY3Qgb2YgZ2V0dGluZyB0aGUgd2lkdGggb2YgdGhpcyByZWdpc3RlciByZWFkIHdyb25nIGlz IHRoYXQgYWxsDQpJL08gZmFpbHMgd2hlbiB0aGUgcmVhZCByZXR1cm5zIG5vbi16ZXJvLiAgR2l2 ZW4gdGhlIGF2YWlsYWJpbGl0eSBvZg0KQUNQSSA2IE5GSVQgZW5hYmxlZCBwbGF0Zm9ybXMsIHRo aXMgY291bGQgcmVhc29uYWJseSB3YWl0IHRvIGNvbWUgaW4NCmR1cmluZyB0aGUgNC4zIG1lcmdl IHdpbmRvdyB3aXRoIGEgdGFnIGZvciA0LjItc3RhYmxlLiAgT3RoZXJ3aXNlLCB0aGlzDQptYWtl cyB0aGUgNC4yIGtlcm5lbCBmdWxseSBmdW5jdGlvbmFsIHdpdGggZGV2aWNlcyB0aGF0IGNvbmZv cm0gdG8gdGhlDQptbWlvLWJsb2NrLWFwZXJ0dXJlcyBkZWZpbmVkIGluIHRoZSBBQ1BJIDYgTkZJ VCAoTlZESU1NIEZpcm13YXJlDQpJbnRlcmZhY2UgVGFibGUpLg0KDQpGdWxsIGNoYW5nZWxvZyBh bmQgZGlmZnN0YXQgYmVsb3cuDQoNCi0tLQ0KDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaW5j ZSBjb21taXQgY2JmZThmYTZjZDY3MjAxMWM3NTVjM2NkODVjOWZmZDRlMmQxMGE2ZjoNCg0KICBM aW51eCA0LjItcmM0ICgyMDE1LTA3LTI2IDEyOjI2OjIxIC0wNzAwKQ0KDQphcmUgYXZhaWxhYmxl IGluIHRoZSBnaXQgcmVwb3NpdG9yeSBhdDoNCg0KICBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIv c2NtL2xpbnV4L2tlcm5lbC9naXQvbnZkaW1tL252ZGltbSBsaWJudmRpbW0tZml4ZXMNCg0KZm9y IHlvdSB0byBmZXRjaCBjaGFuZ2VzIHVwIHRvIGRlNGExOTZjMDJhMmEyNjMxYjUxNmQ5MGRhNmU4 ZDA1MmNjYjA3ZTg6DQoNCiAgbmZpdCwgbmRfYmxrOiBCTEsgc3RhdHVzIHJlZ2lzdGVyIGlzIG9u bHkgMzIgYml0cyAoMjAxNS0wOC0yNSAxOTo0MjowMSAtMDQwMCkNCg0KLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KUm9zcyBa d2lzbGVyICgxKToNCiAgICAgIG5maXQsIG5kX2JsazogQkxLIHN0YXR1cyByZWdpc3RlciBpcyBv bmx5IDMyIGJpdHMNCg0KIGRyaXZlcnMvYWNwaS9uZml0LmMgfCA0ICsrLS0NCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KDQotLS0NCg0KY29tbWl0IGRl NGExOTZjMDJhMmEyNjMxYjUxNmQ5MGRhNmU4ZDA1MmNjYjA3ZTgNCkF1dGhvcjogUm9zcyBad2lz bGVyIDxyb3NzLnp3aXNsZXJAbGludXguaW50ZWwuY29tPg0KRGF0ZTogICBUaHUgQXVnIDIwIDE2 OjI3OjM4IDIwMTUgLTA2MDANCg0KICAgIG5maXQsIG5kX2JsazogQkxLIHN0YXR1cyByZWdpc3Rl ciBpcyBvbmx5IDMyIGJpdHMNCiAgICANCiAgICBPbmx5IHJlYWQgMzIgYml0cyBmb3IgdGhlIEJM SyBzdGF0dXMgcmVnaXN0ZXIgaW4gcmVhZF9ibGtfc3RhdCgpLg0KICAgIA0KICAgIFRoZSBmb3Jt YXQgYW5kIHNpemUgb2YgdGhpcyByZWdpc3RlciBpcyBkZWZpbmVkIGluIHRoZQ0KICAgICJOVkRJ TU0gRHJpdmVyIFdyaXRlcidzIGd1aWRlIjoNCiAgICANCiAgICBodHRwOi8vcG1lbS5pby9kb2N1 bWVudHMvTlZESU1NX0RyaXZlcl9Xcml0ZXJzX0d1aWRlLnBkZg0KICAgIA0KICAgIFNpZ25lZC1v ZmYtYnk6IFJvc3MgWndpc2xlciA8cm9zcy56d2lzbGVyQGxpbnV4LmludGVsLmNvbT4NCiAgICBS ZXBvcnRlZC1ieTogTmljaG9sYXMgTW91bGluIDxuaWNob2xhcy53Lm1vdWxpbkBsaW51eC5pbnRl bC5jb20+DQogICAgVGVzdGVkLWJ5OiBOaWNob2xhcyBNb3VsaW4gPG5pY2hvbGFzLncubW91bGlu QGxpbnV4LmludGVsLmNvbT4NCiAgICBSZXZpZXdlZC1ieTogSmVmZiBNb3llciA8am1veWVyQHJl ZGhhdC5jb20+DQogICAgU2lnbmVkLW9mZi1ieTogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFt c0BpbnRlbC5jb20+DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvbmZpdC5jIGIvZHJpdmVy cy9hY3BpL25maXQuYw0KaW5kZXggNjI4YTQyYzQxYWIxLi5iYjI5ZTU2Mjc2YmQgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL2FjcGkvbmZpdC5jDQorKysgYi9kcml2ZXJzL2FjcGkvbmZpdC5jDQpAQCAt MTAyNCw3ICsxMDI0LDcgQEAgc3RhdGljIHZvaWQgd21iX2JsayhzdHJ1Y3QgbmZpdF9ibGsgKm5m aXRfYmxrKQ0KIAkJd21iX3BtZW0oKTsNCiB9DQogDQotc3RhdGljIHU2NCByZWFkX2Jsa19zdGF0 KHN0cnVjdCBuZml0X2JsayAqbmZpdF9ibGssIHVuc2lnbmVkIGludCBidykNCitzdGF0aWMgdTMy IHJlYWRfYmxrX3N0YXQoc3RydWN0IG5maXRfYmxrICpuZml0X2JsaywgdW5zaWduZWQgaW50IGJ3 KQ0KIHsNCiAJc3RydWN0IG5maXRfYmxrX21taW8gKm1taW8gPSAmbmZpdF9ibGstPm1taW9bRENS XTsNCiAJdTY0IG9mZnNldCA9IG5maXRfYmxrLT5zdGF0X29mZnNldCArIG1taW8tPnNpemUgKiBi dzsNCkBAIC0xMDMyLDcgKzEwMzIsNyBAQCBzdGF0aWMgdTY0IHJlYWRfYmxrX3N0YXQoc3RydWN0 IG5maXRfYmxrICpuZml0X2JsaywgdW5zaWduZWQgaW50IGJ3KQ0KIAlpZiAobW1pby0+bnVtX2xp bmVzKQ0KIAkJb2Zmc2V0ID0gdG9faW50ZXJsZWF2ZV9vZmZzZXQob2Zmc2V0LCBtbWlvKTsNCiAN Ci0JcmV0dXJuIHJlYWRxKG1taW8tPmJhc2UgKyBvZmZzZXQpOw0KKwlyZXR1cm4gcmVhZGwobW1p by0+YmFzZSArIG9mZnNldCk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIHdyaXRlX2Jsa19jdGwoc3Ry dWN0IG5maXRfYmxrICpuZml0X2JsaywgdW5zaWduZWQgaW50IGJ3LA0KDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756005AbbHZAQJ (ORCPT ); Tue, 25 Aug 2015 20:16:09 -0400 Received: from mga01.intel.com ([192.55.52.88]:45595 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753943AbbHZAQI (ORCPT ); Tue, 25 Aug 2015 20:16:08 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,412,1437462000"; d="scan'208";a="632225246" From: "Williams, Dan J" To: "torvalds@linux-foundation.org" CC: "linux-kernel@vger.kernel.org" , "linux-nvdimm@lists.01.org" , "linux-acpi@vger.kernel.org" Subject: [GIT PULL] libnvdimm fix for 4.2 Thread-Topic: [GIT PULL] libnvdimm fix for 4.2 Thread-Index: AQHQ35RmMYW/sQCx5UmoF1oR8fszrg== Date: Wed, 26 Aug 2015 00:16:06 +0000 Message-ID: <1440548164.31365.13.camel@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.22.254.140] Content-Type: text/plain; charset="utf-8" Content-ID: <140300644124DD46B17F8D0CF7CCC231@intel.com> MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id t7Q0GGGt021886 Hi Linus please pull from... git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fixes ...to receive a single fix for the nd_blk driver. The effect of getting the width of this register read wrong is that all I/O fails when the read returns non-zero. Given the availability of ACPI 6 NFIT enabled platforms, this could reasonably wait to come in during the 4.3 merge window with a tag for 4.2-stable. Otherwise, this makes the 4.2 kernel fully functional with devices that conform to the mmio-block-apertures defined in the ACPI 6 NFIT (NVDIMM Firmware Interface Table). Full changelog and diffstat below. --- The following changes since commit cbfe8fa6cd672011c755c3cd85c9ffd4e2d10a6f: Linux 4.2-rc4 (2015-07-26 12:26:21 -0700) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fixes for you to fetch changes up to de4a196c02a2a2631b516d90da6e8d052ccb07e8: nfit, nd_blk: BLK status register is only 32 bits (2015-08-25 19:42:01 -0400) ---------------------------------------------------------------- Ross Zwisler (1): nfit, nd_blk: BLK status register is only 32 bits drivers/acpi/nfit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- commit de4a196c02a2a2631b516d90da6e8d052ccb07e8 Author: Ross Zwisler Date: Thu Aug 20 16:27:38 2015 -0600 nfit, nd_blk: BLK status register is only 32 bits Only read 32 bits for the BLK status register in read_blk_stat(). The format and size of this register is defined in the "NVDIMM Driver Writer's guide": http://pmem.io/documents/NVDIMM_Driver_Writers_Guide.pdf Signed-off-by: Ross Zwisler Reported-by: Nicholas Moulin Tested-by: Nicholas Moulin Reviewed-by: Jeff Moyer Signed-off-by: Dan Williams diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c index 628a42c41ab1..bb29e56276bd 100644 --- a/drivers/acpi/nfit.c +++ b/drivers/acpi/nfit.c @@ -1024,7 +1024,7 @@ static void wmb_blk(struct nfit_blk *nfit_blk) wmb_pmem(); } -static u64 read_blk_stat(struct nfit_blk *nfit_blk, unsigned int bw) +static u32 read_blk_stat(struct nfit_blk *nfit_blk, unsigned int bw) { struct nfit_blk_mmio *mmio = &nfit_blk->mmio[DCR]; u64 offset = nfit_blk->stat_offset + mmio->size * bw; @@ -1032,7 +1032,7 @@ static u64 read_blk_stat(struct nfit_blk *nfit_blk, unsigned int bw) if (mmio->num_lines) offset = to_interleave_offset(offset, mmio); - return readq(mmio->base + offset); + return readl(mmio->base + offset); } static void write_blk_ctl(struct nfit_blk *nfit_blk, unsigned int bw, {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I