From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Williams, Dan J" Subject: [GIT PULL] libnvdimm fixes for 4.3-rc2 Date: Sat, 19 Sep 2015 17:10:58 +0000 Message-ID: <1442682656.1879.13.camel@intel.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <05F6D784F599134198BE357D93ABD1EF@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org To: "torvalds@linux-foundation.org" , "akpm@linux-foundation.org" Cc: "ross.zwisler@linux.intel.com" , "linux-kernel@vger.kernel.org" , "willy@linux.intel.com" , "jmoyer@redhat.com" , "linux-nvdimm@lists.01.org" , "tyler.baker@linaro.org" List-ID: SGkgTGludXMsIHBsZWFzZSBwdWxsIGZyb206DQoNCiAgICBnaXQ6Ly9naXQua2VybmVsLm9yZy9w dWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvbnZkaW1tL252ZGltbSBsaWJudmRpbW0tZml4ZXMNCg0K Li4udG8gcmVjZWl2ZToNCg0KMS8gQSBib290IHJlZ3Jlc3Npb24gKHNpbmNlIHY0LjIpIGZpeCBm b3Igc29tZSBBUk0gY29uZmlndXJhdGlvbnMgZnJvbQ0KVHlsZXINCg0KMi8gUmVncmVzc2lvbiAo c2luY2UgdjQuMSkgZml4ZXMgZm9yIG1rZnMueGZzIG9uIGEgREFYIGVuYWJsZWQgZGV2aWNlDQpm cm9tIEplZmYuICBUaGVzZSBhcmUgdGFnZ2VkIGZvciAtc3RhYmxlLg0KDQozLyBBIHBhaXIgb2Yg bG9ja2luZyBmaXhlcyBmcm9tIEF4ZWwgdGhhdCBhcmUgaGlkZGVuIGZyb20gbG9ja2RlcCBzaW5j ZQ0KdGhleSBpbnZvbHZlIGRldmljZV9sb2NrKCkuICBUaGUgImJ0dCIgb25lIGlzIHRhZ2dlZCBm b3IgLXN0YWJsZSwgdGhlDQpvdGhlciBvbmx5IGFwcGxpZXMgdG8gdGhlIG5ldyAicGZuIiBtZWNo YW5pc20gaW4gdjQuMy4NCg0KNC8gQSBmaXggZm9yIHRoZSBwbWVtIC0+cndfcGFnZSgpIHBhdGgg dG8gdXNlIHdtYl9wbWVtKCkgZnJvbSBSb3NzLg0KDQpGdWxsIGxvZyBhbmQgZGlmZiBiZWxvdy4N Cg0KLS0tDQoNClRoZSBmb2xsb3dpbmcgY2hhbmdlcyBzaW5jZSBjb21taXQgNmZmMzNmMzkwMmMz YjFjNWQwZGI2YjFlMmM3MGI2ZDc2ZmJhMzU3ZjoNCg0KICBMaW51eCA0LjMtcmMxICgyMDE1LTA5 LTEyIDE2OjM1OjU2IC0wNzAwKQ0KDQphcmUgYXZhaWxhYmxlIGluIHRoZSBnaXQgcmVwb3NpdG9y eSBhdDoNCg0KICBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQv bnZkaW1tL252ZGltbSBsaWJudmRpbW0tZml4ZXMNCg0KZm9yIHlvdSB0byBmZXRjaCBjaGFuZ2Vz IHVwIHRvIGFlNGY5NzY5Njg4OTZmOGY0MWIzYTdhYTIxYmU2MTQ2NDkyMjExZTU6DQoNCiAgbW06 IGZpeCB0eXBlIGNhc3QgaW4gX19wZm5fdG9fcGh5cygpICgyMDE1LTA5LTE5IDAzOjU4OjEwIC0w NDAwKQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQpBeGVsIExpbiAoMik6DQogICAgICBsaWJudmRpbW06IGJ0dF9kZXZz OiBGaXggbG9ja2luZyBpbiBuYW1lc3BhY2Vfc3RvcmUNCiAgICAgIGxpYm52ZGltbTogcGZuX2Rl dnM6IEZpeCBsb2NraW5nIGluIG5hbWVzcGFjZV9zdG9yZQ0KDQpKZWZmIE1veWVyICgyKToNCiAg ICAgIGRheDogZml4IE9fRElSRUNUIEkvTyB0byB0aGUgbGFzdCBibG9jayBvZiBhIGJsb2NrZGV2 DQogICAgICBibG9ja2RldjogZG9uJ3Qgc2V0IFNfREFYIGZvciBtaXNhbGlnbmVkIHBhcnRpdGlv bnMNCg0KUm9zcyBad2lzbGVyICgxKToNCiAgICAgIHBtZW06IGFkZCBwcm9wZXIgZmVuY2luZyB0 byBwbWVtX3J3X3BhZ2UoKQ0KDQpUeWxlciBCYWtlciAoMSk6DQogICAgICBtbTogZml4IHR5cGUg Y2FzdCBpbiBfX3Bmbl90b19waHlzKCkNCg0KIGRyaXZlcnMvbnZkaW1tL2J0dF9kZXZzLmMgICAg ICAgICAgfCA0ICsrLS0NCiBkcml2ZXJzL252ZGltbS9wZm5fZGV2cy5jICAgICAgICAgIHwgNCAr Ky0tDQogZHJpdmVycy9udmRpbW0vcG1lbS5jICAgICAgICAgICAgICB8IDIgKysNCiBmcy9ibG9j a19kZXYuYyAgICAgICAgICAgICAgICAgICAgIHwgNyArKysrKysrDQogZnMvZGF4LmMgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDMgKystDQogaW5jbHVkZS9hc20tZ2VuZXJpYy9tZW1vcnlf bW9kZWwuaCB8IDIgKy0NCiA2IGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pDQoNCmNvbW1pdCBhZTRmOTc2OTY4ODk2ZjhmNDFiM2E3YWEyMWJlNjE0NjQ5MjIx MWU1DQpBdXRob3I6IFR5bGVyIEJha2VyIDx0eWxlci5iYWtlckBsaW5hcm8ub3JnPg0KRGF0ZTog ICBTYXQgU2VwIDE5IDAzOjU4OjEwIDIwMTUgLTA0MDANCg0KICAgIG1tOiBmaXggdHlwZSBjYXN0 IGluIF9fcGZuX3RvX3BoeXMoKQ0KICAgIA0KICAgIFRoZSB2YXJpb3VzIGRlZmluaXRpb25zIG9m IF9fcGZuX3RvX3BoeXMoKSBoYXZlIGJlZW4gY29uc29saWRhdGVkIHRvDQogICAgdXNlIGEgZ2Vu ZXJpYyBtYWNybyBpbiBpbmNsdWRlL2FzbS1nZW5lcmljL21lbW9yeV9tb2RlbC5oLiBUaGlzIGhp dA0KICAgIG1haW5saW5lIGluIHRoZSBmb3JtIG9mIDAxMmRjZWYzZjA1OCAibW06IG1vdmUgX19w aHlzX3RvX3BmbiBhbmQNCiAgICBfX3Bmbl90b19waHlzIHRvIGFzbS9nZW5lcmljL21lbW9yeV9t b2RlbC5oIi4gV2hlbiB0aGUgZ2VuZXJpYyBtYWNybw0KICAgIHdhcyBpbXBsZW1lbnRlZCB0aGUg dHlwZSBjYXN0IHRvIHBoeXNfYWRkcl90IHdhcyBkcm9wcGVkIHdoaWNoIGNhdXNlZA0KICAgIGJv b3QgcmVncmVzc2lvbnMgb24gQVJNIHBsYXRmb3JtcyB3aXRoIG1vcmUgdGhhbiA0R0Igb2YgbWVt b3J5IGFuZA0KICAgIExQQUUgZW5hYmxlZC4NCiAgICANCiAgICBJdCB3YXMgc3VnZ2VzdGVkIHRv IHVzZSBQRk5fUEhZUygpIGRlZmluZWQgaW4gaW5jbHVkZS9saW51eC9wZm4uaA0KICAgIGFzIHBy b3ZpZGVzIHRoZSBjb3JyZWN0IGxvZ2ljIGFuZCBhdm9pZHMgZnVydGhlciBkdXBsaWNhdGlvbi4N CiAgICANCiAgICBSZXBvcnRlZC1ieToga2VybmVsY2kub3JnIGJvdCA8Ym90QGtlcm5lbGNpLm9y Zz4NCiAgICBTdWdnZXN0ZWQtYnk6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwu Y29tPg0KICAgIFNpZ25lZC1vZmYtYnk6IFR5bGVyIEJha2VyIDx0eWxlci5iYWtlckBsaW5hcm8u b3JnPg0KICAgIFNpZ25lZC1vZmYtYnk6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50 ZWwuY29tPg0KDQpjb21taXQgYmE4ZmUwZjg1ZTE1ZDA0NzY4NmNhZjhhNDI0NjNiNTkyYzYzYzk4 Yw0KQXV0aG9yOiBSb3NzIFp3aXNsZXIgPHJvc3Muendpc2xlckBsaW51eC5pbnRlbC5jb20+DQpE YXRlOiAgIFdlZCBTZXAgMTYgMTQ6NTI6MjEgMjAxNSAtMDYwMA0KDQogICAgcG1lbTogYWRkIHBy b3BlciBmZW5jaW5nIHRvIHBtZW1fcndfcGFnZSgpDQogICAgDQogICAgcG1lbV9yd19wYWdlKCkg bmVlZHMgdG8gY2FsbCB3bWJfcG1lbSgpIG9uIHdyaXRlcyB0byBtYWtlIHN1cmUgdGhhdCB0aGUN CiAgICBuZXdseSB3cml0dGVuIGRhdGEgaXMgZHVyYWJsZS4gIFRoaXMgZmxvdyB3YXMgYWRkZWQg dG8gcG1lbV9yd19ieXRlcygpDQogICAgYW5kIHBtZW1fbWFrZV9yZXF1ZXN0KCkgd2l0aCB0aGlz IGNvbW1pdDoNCiAgICANCiAgICBjb21taXQgNjEwMzE5NTJmNGM4ICgiYXJjaCwgeDg2OiBwbWVt IGFwaSBmb3IgZW5zdXJpbmcgZHVyYWJpbGl0eSBvZg0KICAgIAlwZXJzaXN0ZW50IG1lbW9yeSB1 cGRhdGVzIikNCiAgICANCiAgICAuLi50aGUgcG1lbV9yd19wYWdlKCkgcGF0aCB3YXMgbWlzc2Vk Lg0KICAgIA0KICAgIENjOiA8c3RhYmxlQHZnZXIua2VybmVsLm9yZz4NCiAgICBTaWduZWQtb2Zm LWJ5OiBSb3NzIFp3aXNsZXIgPHJvc3Muendpc2xlckBsaW51eC5pbnRlbC5jb20+DQogICAgU2ln bmVkLW9mZi1ieTogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+DQoNCmNv bW1pdCA0Y2E4YjU3YTBhZjE0NWY0ZTc5MWYyMWRiY2E2YWQ3ODlkYTllZThiDQpBdXRob3I6IEF4 ZWwgTGluIDxheGVsLmxpbkBpbmdpY3MuY29tPg0KRGF0ZTogICBXZWQgU2VwIDE2IDIxOjI1OjM4 IDIwMTUgKzA4MDANCg0KICAgIGxpYm52ZGltbTogcGZuX2RldnM6IEZpeCBsb2NraW5nIGluIG5h bWVzcGFjZV9zdG9yZQ0KICAgIA0KICAgIEFsd2F5cyB0YWtlIGRldmljZV9sb2NrKCkgYmVmb3Jl IG52ZGltbV9idXNfbG9jaygpIHRvIHByZXZlbnQgZGVhZGxvY2suDQogICAgDQogICAgU2lnbmVk LW9mZi1ieTogQXhlbCBMaW4gPGF4ZWwubGluQGluZ2ljcy5jb20+DQogICAgU2lnbmVkLW9mZi1i eTogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+DQoNCmNvbW1pdCA0YmU5 YzFmYzNkZjljM2IwM2M5YmRlOGFlYzVlNDRmYzczOTk2YTNmDQpBdXRob3I6IEF4ZWwgTGluIDxh eGVsLmxpbkBpbmdpY3MuY29tPg0KRGF0ZTogICBXZWQgU2VwIDE2IDIxOjI0OjQ3IDIwMTUgKzA4 MDANCg0KICAgIGxpYm52ZGltbTogYnR0X2RldnM6IEZpeCBsb2NraW5nIGluIG5hbWVzcGFjZV9z dG9yZQ0KICAgIA0KICAgIEFsd2F5cyB0YWtlIGRldmljZV9sb2NrKCkgYmVmb3JlIG52ZGltbV9i dXNfbG9jaygpIHRvIHByZXZlbnQgZGVhZGxvY2suDQogICAgDQogICAgQ2M6IDxzdGFibGVAdmdl ci5rZXJuZWwub3JnPg0KICAgIFNpZ25lZC1vZmYtYnk6IEF4ZWwgTGluIDxheGVsLmxpbkBpbmdp Y3MuY29tPg0KICAgIFNpZ25lZC1vZmYtYnk6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNA aW50ZWwuY29tPg0KDQpjb21taXQgZjBiMmU1NjNiYzQxOWRmN2MxYjNkMmY0OTQ1NzRjMjUxMjVm NmFlZA0KQXV0aG9yOiBKZWZmIE1veWVyIDxqbW95ZXJAcmVkaGF0LmNvbT4NCkRhdGU6ICAgRnJp IEF1ZyAxNCAxNjoxNTozMiAyMDE1IC0wNDAwDQoNCiAgICBibG9ja2RldjogZG9uJ3Qgc2V0IFNf REFYIGZvciBtaXNhbGlnbmVkIHBhcnRpdGlvbnMNCiAgICANCiAgICBUaGUgZGF4IGNvZGUgZG9l c24ndCBjdXJyZW50bHkgc3VwcG9ydCBtaXNhbGlnbmVkIHBhcnRpdGlvbnMsDQogICAgc28gZGlz YWJsZSBPX0RJUkVDVCB2aWEgZGF4IHVudGlsIHN1Y2ggdGltZSBhcyB0aGF0IHN1cHBvcnQNCiAg ICBtYXRlcmlhbGl6ZXMuDQogICAgDQogICAgQ2M6IDxzdGFibGVAdmdlci5rZXJuZWwub3JnPg0K ICAgIFN1Z2dlc3RlZC1ieTogQm9heiBIYXJyb3NoIDxib2F6QHBsZXhpc3Rvci5jb20+DQogICAg U2lnbmVkLW9mZi1ieTogSmVmZiBNb3llciA8am1veWVyQHJlZGhhdC5jb20+DQogICAgU2lnbmVk LW9mZi1ieTogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+DQoNCmNvbW1p dCBlOTRmNWEyMjg1ZmM5NDIwMmE5ZWZiMmM2ODc0ODFmMjliNjQxMzJjDQpBdXRob3I6IEplZmYg TW95ZXIgPGptb3llckByZWRoYXQuY29tPg0KRGF0ZTogICBGcmkgQXVnIDE0IDE2OjE1OjMxIDIw MTUgLTA0MDANCg0KICAgIGRheDogZml4IE9fRElSRUNUIEkvTyB0byB0aGUgbGFzdCBibG9jayBv ZiBhIGJsb2NrZGV2DQogICAgDQogICAgY29tbWl0IGJiYWIzN2RkYzIwYiAoYmxvY2s6IEFkZCBz dXBwb3J0IGZvciBEQVggcmVhZHMvd3JpdGVzIHRvDQogICAgYmxvY2sgZGV2aWNlcykgY2F1c2Vk IGEgcmVncmVzc2lvbiBpbiBta2ZzLnhmcy4gIFRoYXQgdXRpbGl0eQ0KICAgIHNldHMgdGhlIGJs b2NrIHNpemUgb2YgdGhlIGRldmljZSB0byB0aGUgbG9naWNhbCBibG9jayBzaXplDQogICAgdXNp bmcgdGhlIEJMS0JTWlNFVCBpb2N0bCwgYW5kIHRoZW4gaXNzdWVzIGEgc2luZ2xlIHNlY3RvciBy ZWFkDQogICAgZnJvbSB0aGUgbGFzdCBzZWN0b3Igb2YgdGhlIGRldmljZS4gIFRoaXMgcmVzdWx0 cyBpbiB0aGUgZGF4X2lvDQogICAgY29kZSB0cnlpbmcgdG8gZG8gYSBwYWdlLXNpemVkIHJlYWQg ZnJvbSA1MTIgYnl0ZXMgZnJvbSB0aGUgZW5kDQogICAgb2YgdGhlIGRldmljZS4gIFRoZSByZXN1 bHQgaXMgLUVSQU5HRSBiZWluZyByZXR1cm5lZCB0byB1c2Vyc3BhY2UuDQogICAgDQogICAgVGhl IGZpeCBpcyB0byBhbGlnbiB0aGUgYmxvY2sgdG8gdGhlIHBhZ2Ugc2l6ZSBiZWZvcmUgY2FsbGlu Zw0KICAgIGdldF9ibG9jay4NCiAgICANCiAgICBUaGFua3MgdG8gd2lsbHkgZm9yIHNpbXBsaWZ5 aW5nIG15IG9yaWdpbmFsIHBhdGNoLg0KICAgIA0KICAgIENjOiA8c3RhYmxlQHZnZXIua2VybmVs Lm9yZz4NCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmIE1veWVyIDxqbW95ZXJAcmVkaGF0LmNvbT4N CiAgICBUZXN0ZWQtYnk6ICBMaW5kYSBLbmlwcGVycyA8bGluZGEua25pcHBlcnNAaHAuY29tPg0K ICAgIFNpZ25lZC1vZmYtYnk6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29t Pg0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udmRpbW0vYnR0X2RldnMuYyBiL2RyaXZlcnMvbnZk aW1tL2J0dF9kZXZzLmMNCmluZGV4IDU5YWQ1NGE2M2Q5Zi4uY2I0Nzc1MThkZDBlIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9udmRpbW0vYnR0X2RldnMuYw0KKysrIGIvZHJpdmVycy9udmRpbW0vYnR0 X2RldnMuYw0KQEAgLTEyOCwxMyArMTI4LDEzIEBAIHN0YXRpYyBzc2l6ZV90IG5hbWVzcGFjZV9z dG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsDQogCXN0cnVjdCBuZF9idHQgKm5kX2J0dCA9IHRvX25k X2J0dChkZXYpOw0KIAlzc2l6ZV90IHJjOw0KIA0KLQludmRpbW1fYnVzX2xvY2soZGV2KTsNCiAJ ZGV2aWNlX2xvY2soZGV2KTsNCisJbnZkaW1tX2J1c19sb2NrKGRldik7DQogCXJjID0gbmRfbmFt ZXNwYWNlX3N0b3JlKGRldiwgJm5kX2J0dC0+bmRucywgYnVmLCBsZW4pOw0KIAlkZXZfZGJnKGRl diwgIiVzOiByZXN1bHQ6ICV6ZCB3cm90ZTogJXMlcyIsIF9fZnVuY19fLA0KIAkJCXJjLCBidWYs IGJ1ZltsZW4gLSAxXSA9PSAnXG4nID8gIiIgOiAiXG4iKTsNCi0JZGV2aWNlX3VubG9jayhkZXYp Ow0KIAludmRpbW1fYnVzX3VubG9jayhkZXYpOw0KKwlkZXZpY2VfdW5sb2NrKGRldik7DQogDQog CXJldHVybiByYzsNCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udmRpbW0vcGZuX2RldnMuYyBi L2RyaXZlcnMvbnZkaW1tL3Bmbl9kZXZzLmMNCmluZGV4IDNmZDdkMGQ4MWE0Ny4uNzE4MDVhMWFh MGYzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9udmRpbW0vcGZuX2RldnMuYw0KKysrIGIvZHJpdmVy cy9udmRpbW0vcGZuX2RldnMuYw0KQEAgLTE0OCwxMyArMTQ4LDEzIEBAIHN0YXRpYyBzc2l6ZV90 IG5hbWVzcGFjZV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsDQogCXN0cnVjdCBuZF9wZm4gKm5k X3BmbiA9IHRvX25kX3BmbihkZXYpOw0KIAlzc2l6ZV90IHJjOw0KIA0KLQludmRpbW1fYnVzX2xv Y2soZGV2KTsNCiAJZGV2aWNlX2xvY2soZGV2KTsNCisJbnZkaW1tX2J1c19sb2NrKGRldik7DQog CXJjID0gbmRfbmFtZXNwYWNlX3N0b3JlKGRldiwgJm5kX3Bmbi0+bmRucywgYnVmLCBsZW4pOw0K IAlkZXZfZGJnKGRldiwgIiVzOiByZXN1bHQ6ICV6ZCB3cm90ZTogJXMlcyIsIF9fZnVuY19fLA0K IAkJCXJjLCBidWYsIGJ1ZltsZW4gLSAxXSA9PSAnXG4nID8gIiIgOiAiXG4iKTsNCi0JZGV2aWNl X3VubG9jayhkZXYpOw0KIAludmRpbW1fYnVzX3VubG9jayhkZXYpOw0KKwlkZXZpY2VfdW5sb2Nr KGRldik7DQogDQogCXJldHVybiByYzsNCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udmRpbW0v cG1lbS5jIGIvZHJpdmVycy9udmRpbW0vcG1lbS5jDQppbmRleCBiOTUyNTM4NWMwZGMuLjBiYTZh OTc4ZjIyNyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbnZkaW1tL3BtZW0uYw0KKysrIGIvZHJpdmVy cy9udmRpbW0vcG1lbS5jDQpAQCAtOTIsNiArOTIsOCBAQCBzdGF0aWMgaW50IHBtZW1fcndfcGFn ZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzZWN0b3JfdCBzZWN0b3IsDQogCXN0cnVjdCBw bWVtX2RldmljZSAqcG1lbSA9IGJkZXYtPmJkX2Rpc2stPnByaXZhdGVfZGF0YTsNCiANCiAJcG1l bV9kb19idmVjKHBtZW0sIHBhZ2UsIFBBR0VfQ0FDSEVfU0laRSwgMCwgcncsIHNlY3Rvcik7DQor CWlmIChydyAmIFdSSVRFKQ0KKwkJd21iX3BtZW0oKTsNCiAJcGFnZV9lbmRpbyhwYWdlLCBydyAm IFdSSVRFLCAwKTsNCiANCiAJcmV0dXJuIDA7DQpkaWZmIC0tZ2l0IGEvZnMvYmxvY2tfZGV2LmMg Yi9mcy9ibG9ja19kZXYuYw0KaW5kZXggMjJlYTQyNGVlNzQxLi4wNzNiYjU3YWRhYjEgMTAwNjQ0 DQotLS0gYS9mcy9ibG9ja19kZXYuYw0KKysrIGIvZnMvYmxvY2tfZGV2LmMNCkBAIC0xMjQyLDYg KzEyNDIsMTMgQEAgc3RhdGljIGludCBfX2Jsa2Rldl9nZXQoc3RydWN0IGJsb2NrX2RldmljZSAq YmRldiwgZm1vZGVfdCBtb2RlLCBpbnQgZm9yX3BhcnQpDQogCQkJCWdvdG8gb3V0X2NsZWFyOw0K IAkJCX0NCiAJCQliZF9zZXRfc2l6ZShiZGV2LCAobG9mZl90KWJkZXYtPmJkX3BhcnQtPm5yX3Nl Y3RzIDw8IDkpOw0KKwkJCS8qDQorCQkJICogSWYgdGhlIHBhcnRpdGlvbiBpcyBub3QgYWxpZ25l ZCBvbiBhIHBhZ2UNCisJCQkgKiBib3VuZGFyeSwgd2UgY2FuJ3QgZG8gZGF4IEkvTyB0byBpdC4N CisJCQkgKi8NCisJCQlpZiAoKGJkZXYtPmJkX3BhcnQtPnN0YXJ0X3NlY3QgJSAoUEFHRV9TSVpF IC8gNTEyKSkgfHwNCisJCQkgICAgKGJkZXYtPmJkX3BhcnQtPm5yX3NlY3RzICUgKFBBR0VfU0la RSAvIDUxMikpKQ0KKwkJCQliZGV2LT5iZF9pbm9kZS0+aV9mbGFncyAmPSB+U19EQVg7DQogCQl9 DQogCX0gZWxzZSB7DQogCQlpZiAoYmRldi0+YmRfY29udGFpbnMgPT0gYmRldikgew0KZGlmZiAt LWdpdCBhL2ZzL2RheC5jIGIvZnMvZGF4LmMNCmluZGV4IDkzYmYyZjk5MGFjZS4uN2FlNmRmN2Vh MWQyIDEwMDY0NA0KLS0tIGEvZnMvZGF4LmMNCisrKyBiL2ZzL2RheC5jDQpAQCAtMTE5LDcgKzEx OSw4IEBAIHN0YXRpYyBzc2l6ZV90IGRheF9pbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3Qg aW92X2l0ZXIgKml0ZXIsDQogCQlzaXplX3QgbGVuOw0KIAkJaWYgKHBvcyA9PSBtYXgpIHsNCiAJ CQl1bnNpZ25lZCBibGtiaXRzID0gaW5vZGUtPmlfYmxrYml0czsNCi0JCQlzZWN0b3JfdCBibG9j ayA9IHBvcyA+PiBibGtiaXRzOw0KKwkJCWxvbmcgcGFnZSA9IHBvcyA+PiBQQUdFX1NISUZUOw0K KwkJCXNlY3Rvcl90IGJsb2NrID0gcGFnZSA8PCAoUEFHRV9TSElGVCAtIGJsa2JpdHMpOw0KIAkJ CXVuc2lnbmVkIGZpcnN0ID0gcG9zIC0gKGJsb2NrIDw8IGJsa2JpdHMpOw0KIAkJCWxvbmcgc2l6 ZTsNCiANCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL21lbW9yeV9tb2RlbC5oIGIv aW5jbHVkZS9hc20tZ2VuZXJpYy9tZW1vcnlfbW9kZWwuaA0KaW5kZXggZjIwZjQwN2NlNDVkLi40 YjRiMDU2YTZlYjAgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2FzbS1nZW5lcmljL21lbW9yeV9tb2Rl bC5oDQorKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL21lbW9yeV9tb2RlbC5oDQpAQCAtNzMsNyAr NzMsNyBAQA0KICAqIENvbnZlcnQgYSBwaHlzaWNhbCBhZGRyZXNzIHRvIGEgUGFnZSBGcmFtZSBO dW1iZXIgYW5kIGJhY2sNCiAgKi8NCiAjZGVmaW5lCV9fcGh5c190b19wZm4ocGFkZHIpCSgodW5z aWduZWQgbG9uZykoKHBhZGRyKSA+PiBQQUdFX1NISUZUKSkNCi0jZGVmaW5lCV9fcGZuX3RvX3Bo eXMocGZuKQkoKHBmbikgPDwgUEFHRV9TSElGVCkNCisjZGVmaW5lCV9fcGZuX3RvX3BoeXMocGZu KQlQRk5fUEhZUyhwZm4pDQogDQogI2RlZmluZSBwYWdlX3RvX3BmbiBfX3BhZ2VfdG9fcGZuDQog I2RlZmluZSBwZm5fdG9fcGFnZSBfX3Bmbl90b19wYWdlDQoNCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755166AbbISRLF (ORCPT ); Sat, 19 Sep 2015 13:11:05 -0400 Received: from mga14.intel.com ([192.55.52.115]:15667 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755138AbbISRLB (ORCPT ); Sat, 19 Sep 2015 13:11:01 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,559,1437462000"; d="scan'208";a="564852181" From: "Williams, Dan J" To: "torvalds@linux-foundation.org" , "akpm@linux-foundation.org" CC: "ross.zwisler@linux.intel.com" , "linux-kernel@vger.kernel.org" , "willy@linux.intel.com" , "jmoyer@redhat.com" , "linux-nvdimm@lists.01.org" , "tyler.baker@linaro.org" Subject: [GIT PULL] libnvdimm fixes for 4.3-rc2 Thread-Topic: [GIT PULL] libnvdimm fixes for 4.3-rc2 Thread-Index: AQHQ8v4marcZv0ZvEkyM35q3aiZ0ng== Date: Sat, 19 Sep 2015 17:10:58 +0000 Message-ID: <1442682656.1879.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: <05F6D784F599134198BE357D93ABD1EF@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 t8JHBEob022745 Hi Linus, please pull from: git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm libnvdimm-fixes ...to receive: 1/ A boot regression (since v4.2) fix for some ARM configurations from Tyler 2/ Regression (since v4.1) fixes for mkfs.xfs on a DAX enabled device from Jeff. These are tagged for -stable. 3/ A pair of locking fixes from Axel that are hidden from lockdep since they involve device_lock(). The "btt" one is tagged for -stable, the other only applies to the new "pfn" mechanism in v4.3. 4/ A fix for the pmem ->rw_page() path to use wmb_pmem() from Ross. Full log and diff below. --- The following changes since commit 6ff33f3902c3b1c5d0db6b1e2c70b6d76fba357f: Linux 4.3-rc1 (2015-09-12 16:35:56 -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 ae4f976968896f8f41b3a7aa21be6146492211e5: mm: fix type cast in __pfn_to_phys() (2015-09-19 03:58:10 -0400) ---------------------------------------------------------------- Axel Lin (2): libnvdimm: btt_devs: Fix locking in namespace_store libnvdimm: pfn_devs: Fix locking in namespace_store Jeff Moyer (2): dax: fix O_DIRECT I/O to the last block of a blockdev blockdev: don't set S_DAX for misaligned partitions Ross Zwisler (1): pmem: add proper fencing to pmem_rw_page() Tyler Baker (1): mm: fix type cast in __pfn_to_phys() drivers/nvdimm/btt_devs.c | 4 ++-- drivers/nvdimm/pfn_devs.c | 4 ++-- drivers/nvdimm/pmem.c | 2 ++ fs/block_dev.c | 7 +++++++ fs/dax.c | 3 ++- include/asm-generic/memory_model.h | 2 +- 6 files changed, 16 insertions(+), 6 deletions(-) commit ae4f976968896f8f41b3a7aa21be6146492211e5 Author: Tyler Baker Date: Sat Sep 19 03:58:10 2015 -0400 mm: fix type cast in __pfn_to_phys() The various definitions of __pfn_to_phys() have been consolidated to use a generic macro in include/asm-generic/memory_model.h. This hit mainline in the form of 012dcef3f058 "mm: move __phys_to_pfn and __pfn_to_phys to asm/generic/memory_model.h". When the generic macro was implemented the type cast to phys_addr_t was dropped which caused boot regressions on ARM platforms with more than 4GB of memory and LPAE enabled. It was suggested to use PFN_PHYS() defined in include/linux/pfn.h as provides the correct logic and avoids further duplication. Reported-by: kernelci.org bot Suggested-by: Dan Williams Signed-off-by: Tyler Baker Signed-off-by: Dan Williams commit ba8fe0f85e15d047686caf8a42463b592c63c98c Author: Ross Zwisler Date: Wed Sep 16 14:52:21 2015 -0600 pmem: add proper fencing to pmem_rw_page() pmem_rw_page() needs to call wmb_pmem() on writes to make sure that the newly written data is durable. This flow was added to pmem_rw_bytes() and pmem_make_request() with this commit: commit 61031952f4c8 ("arch, x86: pmem api for ensuring durability of persistent memory updates") ...the pmem_rw_page() path was missed. Cc: Signed-off-by: Ross Zwisler Signed-off-by: Dan Williams commit 4ca8b57a0af145f4e791f21dbca6ad789da9ee8b Author: Axel Lin Date: Wed Sep 16 21:25:38 2015 +0800 libnvdimm: pfn_devs: Fix locking in namespace_store Always take device_lock() before nvdimm_bus_lock() to prevent deadlock. Signed-off-by: Axel Lin Signed-off-by: Dan Williams commit 4be9c1fc3df9c3b03c9bde8aec5e44fc73996a3f Author: Axel Lin Date: Wed Sep 16 21:24:47 2015 +0800 libnvdimm: btt_devs: Fix locking in namespace_store Always take device_lock() before nvdimm_bus_lock() to prevent deadlock. Cc: Signed-off-by: Axel Lin Signed-off-by: Dan Williams commit f0b2e563bc419df7c1b3d2f494574c25125f6aed Author: Jeff Moyer Date: Fri Aug 14 16:15:32 2015 -0400 blockdev: don't set S_DAX for misaligned partitions The dax code doesn't currently support misaligned partitions, so disable O_DIRECT via dax until such time as that support materializes. Cc: Suggested-by: Boaz Harrosh Signed-off-by: Jeff Moyer Signed-off-by: Dan Williams commit e94f5a2285fc94202a9efb2c687481f29b64132c Author: Jeff Moyer Date: Fri Aug 14 16:15:31 2015 -0400 dax: fix O_DIRECT I/O to the last block of a blockdev commit bbab37ddc20b (block: Add support for DAX reads/writes to block devices) caused a regression in mkfs.xfs. That utility sets the block size of the device to the logical block size using the BLKBSZSET ioctl, and then issues a single sector read from the last sector of the device. This results in the dax_io code trying to do a page-sized read from 512 bytes from the end of the device. The result is -ERANGE being returned to userspace. The fix is to align the block to the page size before calling get_block. Thanks to willy for simplifying my original patch. Cc: Signed-off-by: Jeff Moyer Tested-by: Linda Knippers Signed-off-by: Dan Williams diff --git a/drivers/nvdimm/btt_devs.c b/drivers/nvdimm/btt_devs.c index 59ad54a63d9f..cb477518dd0e 100644 --- a/drivers/nvdimm/btt_devs.c +++ b/drivers/nvdimm/btt_devs.c @@ -128,13 +128,13 @@ static ssize_t namespace_store(struct device *dev, struct nd_btt *nd_btt = to_nd_btt(dev); ssize_t rc; - nvdimm_bus_lock(dev); device_lock(dev); + nvdimm_bus_lock(dev); rc = nd_namespace_store(dev, &nd_btt->ndns, buf, len); dev_dbg(dev, "%s: result: %zd wrote: %s%s", __func__, rc, buf, buf[len - 1] == '\n' ? "" : "\n"); - device_unlock(dev); nvdimm_bus_unlock(dev); + device_unlock(dev); return rc; } diff --git a/drivers/nvdimm/pfn_devs.c b/drivers/nvdimm/pfn_devs.c index 3fd7d0d81a47..71805a1aa0f3 100644 --- a/drivers/nvdimm/pfn_devs.c +++ b/drivers/nvdimm/pfn_devs.c @@ -148,13 +148,13 @@ static ssize_t namespace_store(struct device *dev, struct nd_pfn *nd_pfn = to_nd_pfn(dev); ssize_t rc; - nvdimm_bus_lock(dev); device_lock(dev); + nvdimm_bus_lock(dev); rc = nd_namespace_store(dev, &nd_pfn->ndns, buf, len); dev_dbg(dev, "%s: result: %zd wrote: %s%s", __func__, rc, buf, buf[len - 1] == '\n' ? "" : "\n"); - device_unlock(dev); nvdimm_bus_unlock(dev); + device_unlock(dev); return rc; } diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index b9525385c0dc..0ba6a978f227 100644 --- a/drivers/nvdimm/pmem.c +++ b/drivers/nvdimm/pmem.c @@ -92,6 +92,8 @@ static int pmem_rw_page(struct block_device *bdev, sector_t sector, struct pmem_device *pmem = bdev->bd_disk->private_data; pmem_do_bvec(pmem, page, PAGE_CACHE_SIZE, 0, rw, sector); + if (rw & WRITE) + wmb_pmem(); page_endio(page, rw & WRITE, 0); return 0; diff --git a/fs/block_dev.c b/fs/block_dev.c index 22ea424ee741..073bb57adab1 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1242,6 +1242,13 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part) goto out_clear; } bd_set_size(bdev, (loff_t)bdev->bd_part->nr_sects << 9); + /* + * If the partition is not aligned on a page + * boundary, we can't do dax I/O to it. + */ + if ((bdev->bd_part->start_sect % (PAGE_SIZE / 512)) || + (bdev->bd_part->nr_sects % (PAGE_SIZE / 512))) + bdev->bd_inode->i_flags &= ~S_DAX; } } else { if (bdev->bd_contains == bdev) { diff --git a/fs/dax.c b/fs/dax.c index 93bf2f990ace..7ae6df7ea1d2 100644 --- a/fs/dax.c +++ b/fs/dax.c @@ -119,7 +119,8 @@ static ssize_t dax_io(struct inode *inode, struct iov_iter *iter, size_t len; if (pos == max) { unsigned blkbits = inode->i_blkbits; - sector_t block = pos >> blkbits; + long page = pos >> PAGE_SHIFT; + sector_t block = page << (PAGE_SHIFT - blkbits); unsigned first = pos - (block << blkbits); long size; diff --git a/include/asm-generic/memory_model.h b/include/asm-generic/memory_model.h index f20f407ce45d..4b4b056a6eb0 100644 --- a/include/asm-generic/memory_model.h +++ b/include/asm-generic/memory_model.h @@ -73,7 +73,7 @@ * Convert a physical address to a Page Frame Number and back */ #define __phys_to_pfn(paddr) ((unsigned long)((paddr) >> PAGE_SHIFT)) -#define __pfn_to_phys(pfn) ((pfn) << PAGE_SHIFT) +#define __pfn_to_phys(pfn) PFN_PHYS(pfn) #define page_to_pfn __page_to_pfn #define pfn_to_page __pfn_to_page ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayºʇڙë,j­¢f£¢·hšïêÿ‘êçz_è®(­éšŽŠÝ¢j"ú¶m§ÿÿ¾«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^¶m§ÿÿà ÿ¶ìÿ¢¸?–I¥