From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Williams, Dan J" Subject: Re: [GIT PULL v4 00/21] libnd: non-volatile memory device support Date: Thu, 28 May 2015 05:21:17 +0000 Message-ID: <1432790477.723.20.camel@intel.com> References: <20150527210155.17965.74864.stgit@dwillia2-desk3.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com ([192.55.52.115]:43371 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751212AbbE1FVX (ORCPT ); Thu, 28 May 2015 01:21:23 -0400 In-Reply-To: Content-Language: en-US Content-ID: <4196D04820EEDE4D91EFAFA1C8325DCC@intel.com> Sender: linux-acpi-owner@vger.kernel.org List-Id: linux-acpi@vger.kernel.org To: "rafael@kernel.org" Cc: "gregkh@linuxfoundation.org" , "Zheng, Lv" , "mingo@kernel.org" , "nicholas.w.moulin@linux.intel.com" , "linux-kernel@vger.kernel.org" , "neilb@suse.de" , "jmoyer@redhat.com" , "tglx@linutronix.de" , "torvalds@linux-foundation.org" , "hch@lst.de" , "axboe@kernel.dk" , "Moore, Robert" , "Wysocki, Rafael J" , "hpa@zytor.com" , "sfr@canb.auug.org.au" , "linux-nvdimm@lists.01.org" , "vishal.l.verma@linux.intel.com" , "willy@linux.intel.com" , "bp@alien8.de" T24gVGh1LCAyMDE1LTA1LTI4IGF0IDAzOjAxICswMjAwLCBSYWZhZWwgSi4gV3lzb2NraSB3cm90 ZToNCj4gPj4gQW5kIGhvdyBtdWNoIHRpbWUgaXMgaXQgZ29pbmcgdG8gdGFrZSB0byByZWJhc2Ug aXQsIGFjdHVhbGx5Pw0KPiA+Pg0KPiA+PiBJZiBhbGwgaXMgc28gY2xlYW4gYXMgeW91J3JlIHN1 Z2dlc3RpbmcsIGEgImdpdCByZWJhc2UiIHNob3VsZCBiZQ0KPiA+PiBzdWZmaWNpZW50IGZvciB0 aGF0IHJlYWxseS4gIElzIGl0IG5vdCB0aGUgY2FzZT8NCj4gPg0KPiA+IE9mIGNvdXJzZSB0aGUg cmViYXNlIGlzIHRyaXZpYWwsIGl0J3MgdGhlIHRlc3RpbmcgdGhhdCBoYXMgZ29uZSBpbnRvDQo+ ID4gdGhlIGJhc2VsaW5lIGJlaW5nIGZvcmZlaXRlZCBmb3Igbm8gZ29vZCByZWFzb24gdGhhdCBJ IHRha2UgaXNzdWUuDQo+ID4NCj4gPj4gSSBkbyBiZWxpZXZlIHRoYXQgaGF2aW5nIGEgY2xlYW4g aGlzdG9yeSBpbiB0aGUgcmVwb3NpdG9yeSBpcw0KPiA+PiBpbXBvcnRhbnQsIGVzcGVjaWFsbHkg Zm9yIGJpZyBuZXcgYW5kIGNvbXBsaWNhdGVkIGZlYXR1cmVzIGxpa2UgdGhpcw0KPiA+PiBvbmUu DQo+ID4NCj4gPiBTdXJlLCBpbiB0aGUgZ2VuZXJhbCBjYXNlLCBidXQgdGhpcyBpcyBvbmUgZXh0 cmEgY29tbWl0IGZvcg0KPiA+IGF1dG9nZW5lcmF0ZWQgYWNwaWNhIGhpc3RvcnkuDQo+ID4NCj4g Pj4gRm9yIHRoZSBzYW1lIHJlYXNvbiBJIGRvbid0IGJlbGlldmUgdGhhdCBydXNoaW5nIHN1Y2gg ZmVhdHVyZXMgaW4gbm8NCj4gPj4gbWF0dGVyIHdoYXQgaXMgdGhlIHJpZ2h0IGFwcHJvYWNoLg0K PiA+Pg0KPiA+PiBJZiBKZW5zIGRlY2lkZXMgdG8gcHVsbCBpdCByZWdhcmRsZXNzLCBpdCdzIGhp cyBjYWxsLCBidXQgSSB3b3VsZG4ndA0KPiA+PiBkbyB0aGF0IGlmIEkgd2VyZSBoaW0uDQo+ID4N Cj4gPiBJJ20gbm90IGdvaW5nIHRvIHB1c2ggY29kZSBhcm91bmQgeW91ciBvYmplY3Rpb24uICBJ IHVuZGVyc3RhbmQgYW5kDQo+ID4gYWdyZWUgd2l0aCB0aGUgZ2VuZXJhbCBwb2xpY3ksIGJ1dCBp biB0aGlzIHNwZWNpZmljIGNhc2UgSSBiZWxpZXZlIGFuDQo+ID4gZXhjZXB0aW9uIGlzIHdhcnJh bnRlZC4gIElmIHlvdSBzdGlsbCBkb24ndCBhY2sgdGhlIGFwcHJvYWNoIEknbGwNCj4gPiBwcm9j ZWVkIHdpdGggdGhlIHJlYmFzZS4NCj4gDQo+IFBsZWFzZSBkbyBhIHJlYmFzZSwgdGhlbi4gIEkg ZG9uJ3QgdGhpbmsgaXQncyBhbiB1bnJlYXNvbmFibGUgcmVxdWVzdC4NCj4gDQoNClNvLCBmaXJz dCwgdGhlIGJhZCBuZXdzLi4uIHJpZ2h0IG9uIHF1ZXVlIHRoZSBhY3BpY2EgYmFzZWxpbmUgdGhy b3dzIG1lDQp0aGlzIHVucmVsYXRlZCB0byBsaWJuZCBzcGxhdDoNCg0KIC0tLS0tLS0tLS0tLVsg Y3V0IGhlcmUgXS0tLS0tLS0tLS0tLQ0KIFdBUk5JTkc6IENQVTogMjYgUElEOiAxIGF0IGtlcm5l bC9sb2NraW5nL2xvY2tkZXAuYzozMDAyIGxvY2tkZXBfaW5pdF9tYXArMHg0NjINCg0KIERFQlVH X0xPQ0tTX1dBUk5fT04oMSkNCiBNb2R1bGVzIGxpbmtlZCBpbjoNCiBDUFU6IDI2IFBJRDogMSBD b21tOiBzd2FwcGVyLzAgTm90IHRhaW50ZWQgNC4xLjAtcmMzKyAjMzQNCiAgZmZmZmZmZmY4MWNi MGY2MCBmZmZmODgwMzYwYzgzYmM4IGZmZmZmZmZmODE4YTI3NGYgMDAwMDAwMDAwMDAwMjM1NQ0K ICBmZmZmODgwMzYwYzgzYzE4IGZmZmY4ODAzNjBjODNjMDggZmZmZmZmZmY4MTA2MWQ2YSBmZmZm ODgwMzU4MTE0MWYwDQogIGZmZmY4ODAzNTExZTY5MDggZmZmZjg4MDM1ODExNDFmMCAwMDAwMDAw MDAwMDAwMDAwIDAwMDAwMDAwMDAwMDEwMDANCiBDYWxsIFRyYWNlOg0KICBbPGZmZmZmZmZmODE4 YTI3NGY+XSBkdW1wX3N0YWNrKzB4NGMvMHg2NQ0KICBbPGZmZmZmZmZmODEwNjFkNmE+XSB3YXJu X3Nsb3dwYXRoX2NvbW1vbisweDhhLzB4YzANCiAgWzxmZmZmZmZmZjgxMDYxZGU2Pl0gd2Fybl9z bG93cGF0aF9mbXQrMHg0Ni8weDUwDQogIFs8ZmZmZmZmZmY4MTBiZDVjMj5dIGxvY2tkZXBfaW5p dF9tYXArMHg0NjIvMHg1NjANCiAgWzxmZmZmZmZmZjgxMjhlMjMyPl0gPyBfX2tlcm5mc19uZXdf bm9kZSsweDYyLzB4ZTANCiAgWzxmZmZmZmZmZjgxMjkxMDA2Pl0gX19rZXJuZnNfY3JlYXRlX2Zp bGUrMHg3Ni8weGQwDQogIFs8ZmZmZmZmZmY4MTI5MTlkYT5dIHN5c2ZzX2FkZF9maWxlX21vZGVf bnMrMHg5YS8weDFkMA0KICBbPGZmZmZmZmZmODEyOTI2OGU+XSBpbnRlcm5hbF9jcmVhdGVfZ3Jv dXArMHhlZS8weDJhMA0KICBbPGZmZmZmZmZmODEyOTI5NmE+XSBzeXNmc19jcmVhdGVfZ3JvdXBz KzB4NGEvMHhhMA0KICBbPGZmZmZmZmZmODE1OTFjM2Q+XSBkZXZpY2VfYWRkKzB4MzBkLzB4NjQw DQogIFs8ZmZmZmZmZmY4MWZiMWI4Nj5dID8gcGVyZl93b3JrcXVldWVfaW5pdCsweDY2LzB4NjYN CiAgWzxmZmZmZmZmZjgxMTdhNjZmPl0gcG11X2Rldl9hbGxvYysweDhmLzB4ZDANCiAgWzxmZmZm ZmZmZjgxZmIxYmQzPl0gcGVyZl9ldmVudF9zeXNmc19pbml0KzB4NGQvMHg5NQ0KICBbPGZmZmZm ZmZmODEwMDAyZmM+XSBkb19vbmVfaW5pdGNhbGwrMHhiYy8weDFmMA0KICBbPGZmZmZmZmZmODFm OGUxY2Y+XSBrZXJuZWxfaW5pdF9mcmVlYWJsZSsweDFiMS8weDIzZQ0KICBbPGZmZmZmZmZmODFm OGQ4ZWI+XSA/IGluaXRjYWxsX2JsYWNrbGlzdCsweGI2LzB4YjYNCiAgWzxmZmZmZmZmZjgxODkx ZjkwPl0gPyByZXN0X2luaXQrMHgxNTAvMHgxNTANCiAgWzxmZmZmZmZmZjgxODkxZjllPl0ga2Vy bmVsX2luaXQrMHhlLzB4ZjANCiAgWzxmZmZmZmZmZjgxOGFkZjEyPl0gcmV0X2Zyb21fZm9yaysw eDQyLzB4NzANCiAgWzxmZmZmZmZmZjgxODkxZjkwPl0gPyByZXN0X2luaXQrMHgxNTAvMHgxNTAN CiAtLS1bIGVuZCB0cmFjZSAzNmY1ZDI4YWUxMTVlYTIwIF0tLS0NCg0KTHVja2lseSB0aGF0IHNl ZW1zIHRvIGJlIHRoZSBvbmx5IGltbWVkaWF0ZSBicmVha2FnZSBhcyBvdXIgdW5pdCB0ZXN0cw0K cGFzcywgYW5kIHdlIGFscmVhZHkgaGFkIGdvb2QgbG9ja2RlcCBjb3ZlcmFnZSBvZiBsaWJuZCBw bHVzIG5maXQgZHJpdmVyDQpvbiB0aGUgcHJldmlvdXMgYmFzZWxpbmUuDQoNClRoZSBnb29kIG5l d3MgaXMgdGhhdCB1cHN0cmVhbSwgc2luY2Ugb3VyIG9sZCBiYXNlbGluZSwgaGFzIGZpeGVkIGEN CnN5c2ZzIGJ1ZyB0aGF0IHdlIHdlcmUgcmVseWluZyBvbiBmb3Igb3VyIG5hbWVzcGFjZS1kZXZp Y2UNCnNpemUtYXR0cmlidXRlIHBlcm1pc3Npb24gc2V0dGluZ3MgKGZpeCBiZWxvdykuICBBbHNv LCBtb3ZpbmcgdGhlDQpiYXNlbGluZSBzZWVtcyB0byBoYXZlIHNoYWtlbiBhbm90aGVyIDBkYXkg cmVwb3J0IGxvb3NlIChhbHRob3VnaCB0aGlzDQpzcGFyc2UgcmVwb3J0IHdhcyBlcXVhbGx5IHZh bGlkIG9uIHRoZSBvbGQgYmFzZWxpbmUpLg0KDQpUaGUgY2hhbmdlcyBvbiB0b3Agb2YgdGhlIHJl YmFzZSBhcmUgc21hbGwgZW5vdWdoIHRvIGluY2x1ZGUgaW5saW5lLg0KSSd2ZSBhbHNvIHBvc3Rl ZCB0aGUgbGF0ZXN0IHRyZWUgdG8gbnZkaW1tLmdpdC9saWJuZC1mb3ItbmV4dC4gIEdpdmVuDQp0 aGlzIGlzIG5vdyBiYXNlZCBvbiB0aGUgYWNwaWNhIGJpdHMgZm9yIDQuMiBpcyBpdCBzdGlsbCBz dWl0YWJsZSB0byBnbw0KdGhyb3VnaCB0aGUgYmxvY2sgdHJlZT8NCg0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvYWNwaS9uZml0LmMgYi9kcml2ZXJzL2FjcGkvbmZpdC5jDQppbmRleCBjMzFkMGFlODcy OTMuLjM0Zjg3OTgwOGFkYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYWNwaS9uZml0LmMNCisrKyBi L2RyaXZlcnMvYWNwaS9uZml0LmMNCkBAIC04OTUsNyArODk1LDcgQEAgc3RhdGljIHU2NCB0b19p bnRlcmxlYXZlX29mZnNldCh1NjQgb2Zmc2V0LCBzdHJ1Y3QgbmZpdF9ibGtfbW1pbyAqbW1pbykN CiANCiBzdGF0aWMgdTY0IHJlYWRfYmxrX3N0YXQoc3RydWN0IG5maXRfYmxrICpuZml0X2Jsaywg dW5zaWduZWQgaW50IGJ3KQ0KIHsNCi0Jc3RydWN0IG5maXRfYmxrX21taW8gKm1taW8gPSAmbmZp dF9ibGstPm1taW9bRENSXTsNCisJc3RydWN0IG5maXRfYmxrX21taW8gX19pb21lbSAqbW1pbyA9 ICZuZml0X2Jsay0+bW1pb1tEQ1JdOw0KIAl1NjQgb2Zmc2V0ID0gbmZpdF9ibGstPnN0YXRfb2Zm c2V0ICsgbW1pby0+c2l6ZSAqIGJ3Ow0KIA0KIAlpZiAobW1pby0+bnVtX2xpbmVzKQ0KQEAgLTkw OCw3ICs5MDgsNyBAQCBzdGF0aWMgdm9pZCB3cml0ZV9ibGtfY3RsKHN0cnVjdCBuZml0X2JsayAq bmZpdF9ibGssIHVuc2lnbmVkIGludCBidywNCiAJCXJlc291cmNlX3NpemVfdCBkcGEsIHVuc2ln bmVkIGludCBsZW4sIHVuc2lnbmVkIGludCB3cml0ZSkNCiB7DQogCXU2NCBjbWQsIG9mZnNldDsN Ci0Jc3RydWN0IG5maXRfYmxrX21taW8gKm1taW8gPSAmbmZpdF9ibGstPm1taW9bRENSXTsNCisJ c3RydWN0IG5maXRfYmxrX21taW8gX19pb21lbSAqbW1pbyA9ICZuZml0X2Jsay0+bW1pb1tEQ1Jd Ow0KIA0KIAllbnVtIHsNCiAJCUJDV19PRkZTRVRfTUFTSyA9ICgxVUxMIDw8IDQ4KS0xLA0KQEAg LTk1OSw5ICs5NTksOSBAQCBzdGF0aWMgaW50IGFjcGlfbmZpdF9ibGtfc2luZ2xlX2lvKHN0cnVj dCBuZml0X2JsayAqbmZpdF9ibGssIHZvaWQgKmlvYnVmLA0KIAkJfQ0KIA0KIAkJaWYgKHdyaXRl KQ0KLQkJCW1lbWNweShtbWlvLT5iYXNlICsgb2Zmc2V0LCBpb2J1ZiArIGNvcGllZCwgYyk7DQor CQkJbWVtY3B5X2Zyb21pbyhtbWlvLT5iYXNlICsgb2Zmc2V0LCBpb2J1ZiArIGNvcGllZCwgYyk7 DQogCQllbHNlDQotCQkJbWVtY3B5KGlvYnVmICsgY29waWVkLCBtbWlvLT5iYXNlICsgb2Zmc2V0 LCBjKTsNCisJCQltZW1jcHlfdG9pbyhpb2J1ZiArIGNvcGllZCwgbW1pby0+YmFzZSArIG9mZnNl dCwgYyk7DQogDQogCQljb3BpZWQgKz0gYzsNCiAJCWxlbiAtPSBjOw0KQEAgLTEwMzYsNyArMTAz Niw3IEBAIHN0YXRpYyB2b2lkIG5maXRfc3BhX3VubWFwKHN0cnVjdCBhY3BpX25maXRfZGVzYyAq YWNwaV9kZXNjLA0KIAltdXRleF91bmxvY2soJmFjcGlfZGVzYy0+c3BhX21hcF9tdXRleCk7DQog fQ0KIA0KLXN0YXRpYyB2b2lkICpfX25maXRfc3BhX21hcChzdHJ1Y3QgYWNwaV9uZml0X2Rlc2Mg KmFjcGlfZGVzYywNCitzdGF0aWMgdm9pZCBfX2lvbWVtICpfX25maXRfc3BhX21hcChzdHJ1Y3Qg YWNwaV9uZml0X2Rlc2MgKmFjcGlfZGVzYywNCiAJCXN0cnVjdCBhY3BpX25maXRfc3lzdGVtX2Fk ZHJlc3MgKnNwYSkNCiB7DQogCXJlc291cmNlX3NpemVfdCBzdGFydCA9IHNwYS0+YWRkcmVzczsN CkBAIC0xMDkyLDE2ICsxMDkyLDE2IEBAIHN0YXRpYyB2b2lkICpfX25maXRfc3BhX21hcChzdHJ1 Y3QgYWNwaV9uZml0X2Rlc2MgKmFjcGlfZGVzYywNCiAgKiB3aGVuIGFsbCByZWdpb24gZGV2aWNl cyByZWZlcmVuY2luZyB0aGUgc2FtZSBtYXBwaW5nIGFyZSBkaXNhYmxlZCAvDQogICogdW5ib3Vu ZC4NCiAgKi8NCi1zdGF0aWMgdm9pZCAqbmZpdF9zcGFfbWFwKHN0cnVjdCBhY3BpX25maXRfZGVz YyAqYWNwaV9kZXNjLA0KK3N0YXRpYyB2b2lkIF9faW9tZW0gKm5maXRfc3BhX21hcChzdHJ1Y3Qg YWNwaV9uZml0X2Rlc2MgKmFjcGlfZGVzYywNCiAJCXN0cnVjdCBhY3BpX25maXRfc3lzdGVtX2Fk ZHJlc3MgKnNwYSkNCiB7DQotCXN0cnVjdCBuZml0X3NwYV9tYXBwaW5nICpzcGFfbWFwOw0KKwl2 b2lkIF9faW9tZW0gKmlvbWVtOw0KIA0KIAltdXRleF9sb2NrKCZhY3BpX2Rlc2MtPnNwYV9tYXBf bXV0ZXgpOw0KLQlzcGFfbWFwID0gX19uZml0X3NwYV9tYXAoYWNwaV9kZXNjLCBzcGEpOw0KKwlp b21lbSA9IF9fbmZpdF9zcGFfbWFwKGFjcGlfZGVzYywgc3BhKTsNCiAJbXV0ZXhfdW5sb2NrKCZh Y3BpX2Rlc2MtPnNwYV9tYXBfbXV0ZXgpOw0KIA0KLQlyZXR1cm4gc3BhX21hcDsNCisJcmV0dXJu IGlvbWVtOw0KIH0NCiANCiBzdGF0aWMgaW50IG5maXRfYmxrX2luaXRfaW50ZXJsZWF2ZShzdHJ1 Y3QgbmZpdF9ibGtfbW1pbyAqbW1pbywNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvbmZpdC5o IGIvZHJpdmVycy9hY3BpL25maXQuaA0KaW5kZXggODgwZTdiM2E5ZGEwLi5lNDYyMjE0Zjk0Y2Qg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2FjcGkvbmZpdC5oDQorKysgYi9kcml2ZXJzL2FjcGkvbmZp dC5oDQpAQCAtMTE1LDcgKzExNSw3IEBAIGVudW0gbmRfYmxrX21taW9fc2VsZWN0b3Igew0KIA0K IHN0cnVjdCBuZml0X2JsayB7DQogCXN0cnVjdCBuZml0X2Jsa19tbWlvIHsNCi0JCXZvaWQgKmJh c2U7DQorCQl2b2lkIF9faW9tZW0gKmJhc2U7DQogCQl1NjQgc2l6ZTsNCiAJCXU2NCBiYXNlX29m ZnNldDsNCiAJCXUzMiBsaW5lX3NpemU7DQpAQCAtMTM1LDcgKzEzNSw3IEBAIHN0cnVjdCBuZml0 X3NwYV9tYXBwaW5nIHsNCiAJc3RydWN0IGFjcGlfbmZpdF9zeXN0ZW1fYWRkcmVzcyAqc3BhOw0K IAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7DQogCXN0cnVjdCBrcmVmIGtyZWY7DQotCXZvaWQgKmlv bWVtOw0KKwl2b2lkIF9faW9tZW0gKmlvbWVtOw0KIH07DQogDQogc3RhdGljIGlubGluZSBzdHJ1 Y3QgbmZpdF9zcGFfbWFwcGluZyAqdG9fc3BhX21hcChzdHJ1Y3Qga3JlZiAqa3JlZikNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2Jsb2NrL25kL25hbWVzcGFjZV9kZXZzLmMgYi9kcml2ZXJzL2Jsb2Nr L25kL25hbWVzcGFjZV9kZXZzLmMNCmluZGV4IDhlNzVjODgxYmM3Yi4uZDMwNDI2NjJmNGI2IDEw MDY0NA0KLS0tIGEvZHJpdmVycy9ibG9jay9uZC9uYW1lc3BhY2VfZGV2cy5jDQorKysgYi9kcml2 ZXJzL2Jsb2NrL25kL25hbWVzcGFjZV9kZXZzLmMNCkBAIC0xMTAxLDcgKzExMDEsNyBAQCBzdGF0 aWMgdW1vZGVfdCBuZF9uYW1lc3BhY2VfYXR0cl92aXNpYmxlKHN0cnVjdCBrb2JqZWN0ICprb2Jq LCBzdHJ1Y3QgYXR0cmlidXRlDQogDQogCWlmIChpc19uYW1lc3BhY2VfcG1lbShkZXYpIHx8IGlz X25hbWVzcGFjZV9ibGsoZGV2KSkgew0KIAkJaWYgKGEgPT0gJmRldl9hdHRyX3NpemUuYXR0cikN Ci0JCQlyZXR1cm4gU19JV1VTUjsNCisJCQlyZXR1cm4gU19JV1VTUiB8IFNfSVJVR087DQogDQog CQlpZiAoaXNfbmFtZXNwYWNlX3BtZW0oZGV2KSAmJiBhID09ICZkZXZfYXR0cl9zZWN0b3Jfc2l6 ZS5hdHRyKQ0KIAkJCXJldHVybiAwOw0KDQo9PT0NCg0KVGhlIGZvbGxvd2luZyBjaGFuZ2VzIHNp bmNlIGNvbW1pdCBmM2I2Y2VkMjM2MjU5YTg3ODI5YjgyOWU4ZTU0MmZmNTNiZmI5YTRmOg0KDQog IEFDUElDQTogRml4IGZvciBpbGwtZm9ybWVkIEdVSUQgc3RyaW5ncyBmb3IgTkZJVCB0YWJsZXMu ICgyMDE1LTA1LTI1IDIzOjQyOjM0ICswMjAwKQ0KDQphcmUgYXZhaWxhYmxlIGluIHRoZSBnaXQg cmVwb3NpdG9yeSBhdDoNCg0KICBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tl cm5lbC9naXQvZGpidy9udmRpbW0gbGlibmQtZm9yLW5leHQNCg0KZm9yIHlvdSB0byBmZXRjaCBj aGFuZ2VzIHVwIHRvIDk4NzJjMmM1NDU3MmNkN2U3NDEwYjRlYWMyOTNlZmI1OGFjZTJmYzM6DQoN CiAgbGlibmQ6IE5vbi1Wb2xhdGlsZSBEZXZpY2VzICgyMDE1LTA1LTI3IDIzOjM2OjAxIC0wNDAw KQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQpEYW4gV2lsbGlhbXMgKDE4KToNCiAgICAgIGU4MjAsIGVmaTogYWRkIEFD UEkgNi4wIHBlcnNpc3RlbnQgbWVtb3J5IHR5cGVzDQogICAgICBsaWJuZCwgbmZpdDogaW5pdGlh bCBsaWJuZCBpbmZyYXN0cnVjdHVyZSBhbmQgTkZJVCBzdXBwb3J0DQogICAgICBsaWJuZDogY29u dHJvbCBjaGFyYWN0ZXIgZGV2aWNlIGFuZCBsaWJuZCBidXMgc3lzZnMgYXR0cmlidXRlcw0KICAg ICAgbGlibmQsIG5maXQ6IGRpbW0vbWVtb3J5LWRldmljZXMNCiAgICAgIGxpYm5kOiBjb250cm9s IChpb2N0bCkgbWVzc2FnZXMgZm9yIGxpYm5kIGJ1cyBhbmQgZGltbSBkZXZpY2VzDQogICAgICBs aWJuZCwgbmRfZGltbTogZGltbSBkcml2ZXIgYW5kIGJhc2UgbGlibmQgZGV2aWNlLWRyaXZlciBp bmZyYXN0cnVjdHVyZQ0KICAgICAgbGlibmQsIG5maXQ6IHJlZ2lvbnMgKGJsb2NrLWRhdGEtd2lu ZG93LCBwZXJzaXN0ZW50IG1lbW9yeSwgdm9sYXRpbGUgbWVtb3J5KQ0KICAgICAgbGlibmQ6IHN1 cHBvcnQgZm9yIGxlZ2FjeSAobm9uLWFsaWFzaW5nKSBudmRpbW1zDQogICAgICBsaWJuZCwgbmRf cG1lbTogYWRkIGxpYm5kIHN1cHBvcnQgdG8gdGhlIHBtZW0gZHJpdmVyDQogICAgICBsaWJuZCwg bmZpdDogYWRkIGludGVybGVhdmUtc2V0IHN0YXRlLXRyYWNraW5nIGluZnJhc3RydWN0dXJlDQog ICAgICBsaWJuZDogbmFtZXNwYWNlIGluZGljZXM6IHJlYWQgYW5kIHZhbGlkYXRlDQogICAgICBs aWJuZDogcG1lbSBsYWJlbCBzZXRzIGFuZCBuYW1lc3BhY2UgaW5zdGFudGlhdGlvbi4NCiAgICAg IGxpYm5kOiBibGsgbGFiZWxzIGFuZCBuYW1lc3BhY2UgaW5zdGFudGlhdGlvbg0KICAgICAgbGli bmQ6IHdyaXRlIHBtZW0gbGFiZWwgc2V0DQogICAgICBsaWJuZDogd3JpdGUgYmxrIGxhYmVsIHNl dA0KICAgICAgbGlibmQ6IGluZnJhc3RydWN0dXJlIGZvciBidHQgZGV2aWNlcw0KICAgICAgbmZp dC10ZXN0OiBtYW51ZmFjdHVyZWQgTkZJVHMgZm9yIGludGVyZmFjZSBkZXZlbG9wbWVudA0KICAg ICAgbGlibmQ6IE5vbi1Wb2xhdGlsZSBEZXZpY2VzDQoNClJvc3MgWndpc2xlciAoMik6DQogICAg ICBwbWVtOiBEeW5hbWljYWxseSBhbGxvY2F0ZSBwYXJ0aXRpb24gbnVtYmVycw0KICAgICAgbGli bmQsIG5maXQsIG5kX2JsazogZHJpdmVyIGZvciBCTEstbW9kZSBhY2Nlc3MgcGVyc2lzdGVudCBt ZW1vcnkNCg0KVmlzaGFsIFZlcm1hICgxKToNCiAgICAgIG5kX2J0dDogYXRvbWljIHNlY3RvciB1 cGRhdGVzDQoNCiBEb2N1bWVudGF0aW9uL2Jsb2NrZGV2L2J0dC50eHQgICAgfCAgMjczICsrKysr Kw0KIERvY3VtZW50YXRpb24vYmxvY2tkZXYvbGlibmQudHh0ICB8ICA4MDQgKysrKysrKysrKysr KysrKysrDQogTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAgIHwgICAzOSArLQ0KIGFy Y2gvYXJtNjQva2VybmVsL2VmaS5jICAgICAgICAgICB8ICAgIDEgKw0KIGFyY2gvaWE2NC9rZXJu ZWwvZWZpLmMgICAgICAgICAgICB8ICAgIDQgKw0KIGFyY2gveDg2L0tjb25maWcgICAgICAgICAg ICAgICAgICB8ICAgIDQgKw0KIGFyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9lYm9vdC5jICB8ICAg IDQgKw0KIGFyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vZTgyMC5oICB8ICAgIDEgKw0KIGFyY2gv eDg2L2tlcm5lbC9lODIwLmMgICAgICAgICAgICB8ICAgMjggKy0NCiBhcmNoL3g4Ni9rZXJuZWwv cG1lbS5jICAgICAgICAgICAgfCAgIDkyICstDQogYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaS5j ICAgICAgIHwgICAgMyArDQogZHJpdmVycy9hY3BpL0tjb25maWcgICAgICAgICAgICAgIHwgICAy NyArDQogZHJpdmVycy9hY3BpL01ha2VmaWxlICAgICAgICAgICAgIHwgICAgMSArDQogZHJpdmVy cy9hY3BpL25maXQuYyAgICAgICAgICAgICAgIHwgMTQ3NCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKw0KIGRyaXZlcnMvYWNwaS9uZml0LmggICAgICAgICAgICAgICB8ICAxNjAgKysr Kw0KIGRyaXZlcnMvYmxvY2svS2NvbmZpZyAgICAgICAgICAgICB8ICAgMTMgKy0NCiBkcml2ZXJz L2Jsb2NrL01ha2VmaWxlICAgICAgICAgICAgfCAgICAyICstDQogZHJpdmVycy9ibG9jay9uZC9L Y29uZmlnICAgICAgICAgIHwgIDEwMSArKysNCiBkcml2ZXJzL2Jsb2NrL25kL01ha2VmaWxlICAg ICAgICAgfCAgIDI5ICsNCiBkcml2ZXJzL2Jsb2NrL25kL2Jsay5jICAgICAgICAgICAgfCAgMjUy ICsrKysrKw0KIGRyaXZlcnMvYmxvY2svbmQvYnR0LmMgICAgICAgICAgICB8IDE0MzggKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKw0KIGRyaXZlcnMvYmxvY2svbmQvYnR0LmggICAgICAg ICAgICB8ICAxODYgKysrKw0KIGRyaXZlcnMvYmxvY2svbmQvYnR0X2RldnMuYyAgICAgICB8ICA0 NDMgKysrKysrKysrKw0KIGRyaXZlcnMvYmxvY2svbmQvYnVzLmMgICAgICAgICAgICB8ICA3NzAg KysrKysrKysrKysrKysrKysNCiBkcml2ZXJzL2Jsb2NrL25kL2NvcmUuYyAgICAgICAgICAgfCAg NDcyICsrKysrKysrKysNCiBkcml2ZXJzL2Jsb2NrL25kL2RpbW0uYyAgICAgICAgICAgfCAgMTE1 ICsrKw0KIGRyaXZlcnMvYmxvY2svbmQvZGltbV9kZXZzLmMgICAgICB8ICA1MTYgKysrKysrKysr KysNCiBkcml2ZXJzL2Jsb2NrL25kL2xhYmVsLmMgICAgICAgICAgfCAgOTIyICsrKysrKysrKysr KysrKysrKysrDQogZHJpdmVycy9ibG9jay9uZC9sYWJlbC5oICAgICAgICAgIHwgIDE0MyArKysr DQogZHJpdmVycy9ibG9jay9uZC9uYW1lc3BhY2VfZGV2cy5jIHwgMTcwMiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrDQogZHJpdmVycy9ibG9jay9uZC9uZC1wcml2YXRlLmgg ICAgIHwgIDExMSArKysNCiBkcml2ZXJzL2Jsb2NrL25kL25kLmggICAgICAgICAgICAgfCAgMjU3 ICsrKysrKw0KIGRyaXZlcnMvYmxvY2sveyA9PiBuZH0vcG1lbS5jICAgICB8ICAxMDcgKystDQog ZHJpdmVycy9ibG9jay9uZC9yZWdpb24uYyAgICAgICAgIHwgIDE4OSArKysrDQogZHJpdmVycy9i bG9jay9uZC9yZWdpb25fZGV2cy5jICAgIHwgIDY2NyArKysrKysrKysrKysrKysNCiBkcml2ZXJz L2Jsb2NrL25kL3Rlc3QvTWFrZWZpbGUgICAgfCAgICA1ICsNCiBkcml2ZXJzL2Jsb2NrL25kL3Rl c3QvaW9tYXAuYyAgICAgfCAgMTUxICsrKysNCiBkcml2ZXJzL2Jsb2NrL25kL3Rlc3QvbmZpdC5j ICAgICAgfCAxMTcxICsrKysrKysrKysrKysrKysrKysrKysrKysNCiBkcml2ZXJzL2Jsb2NrL25k L3Rlc3QvbmZpdF90ZXN0LmggfCAgIDI4ICsNCiBpbmNsdWRlL2xpbnV4L2VmaS5oICAgICAgICAg ICAgICAgfCAgICAzICstDQogaW5jbHVkZS9saW51eC9saWJuZC5oICAgICAgICAgICAgIHwgIDEy OSArKysNCiBpbmNsdWRlL2xpbnV4L25kLmggICAgICAgICAgICAgICAgfCAgIDk4ICsrKw0KIGlu Y2x1ZGUvdWFwaS9saW51eC9LYnVpbGQgICAgICAgICB8ICAgIDEgKw0KIGluY2x1ZGUvdWFwaS9s aW51eC9uZGN0bC5oICAgICAgICB8ICAxOTkgKysrKysNCiA0NCBmaWxlcyBjaGFuZ2VkLCAxMzA0 NiBpbnNlcnRpb25zKCspLCA4OSBkZWxldGlvbnMoLSkNCiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9j dW1lbnRhdGlvbi9ibG9ja2Rldi9idHQudHh0DQogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50 YXRpb24vYmxvY2tkZXYvbGlibmQudHh0DQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYWNw aS9uZml0LmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9hY3BpL25maXQuaA0KIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25kL0tjb25maWcNCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ibG9jay9uZC9NYWtlZmlsZQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2Jsb2NrL25kL2Jsay5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYmxvY2svbmQvYnR0 LmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ibG9jay9uZC9idHQuaA0KIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25kL2J0dF9kZXZzLmMNCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ibG9jay9uZC9idXMuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Js b2NrL25kL2NvcmUuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25kL2RpbW0u Yw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25kL2RpbW1fZGV2cy5jDQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYmxvY2svbmQvbGFiZWwuYw0KIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2Jsb2NrL25kL2xhYmVsLmgNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ibG9jay9uZC9uYW1lc3BhY2VfZGV2cy5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv YmxvY2svbmQvbmQtcHJpdmF0ZS5oDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYmxvY2sv bmQvbmQuaA0KIHJlbmFtZSBkcml2ZXJzL2Jsb2NrL3sgPT4gbmR9L3BtZW0uYyAoNzAlKQ0KIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25kL3JlZ2lvbi5jDQogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvYmxvY2svbmQvcmVnaW9uX2RldnMuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2Jsb2NrL25kL3Rlc3QvTWFrZWZpbGUNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ibG9jay9uZC90ZXN0L2lvbWFwLmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9i bG9jay9uZC90ZXN0L25maXQuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25k L3Rlc3QvbmZpdF90ZXN0LmgNCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9saWJu ZC5oDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvbmQuaA0KIGNyZWF0ZSBtb2Rl IDEwMDY0NCBpbmNsdWRlL3VhcGkvbGludXgvbmRjdGwuaA0KDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Williams, Dan J" Subject: Re: [GIT PULL v4 00/21] libnd: non-volatile memory device support Date: Thu, 28 May 2015 05:21:17 +0000 Message-ID: <1432790477.723.20.camel@intel.com> References: <20150527210155.17965.74864.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <4196D04820EEDE4D91EFAFA1C8325DCC@intel.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org To: "rafael@kernel.org" Cc: "gregkh@linuxfoundation.org" , "Zheng, Lv" , "mingo@kernel.org" , "nicholas.w.moulin@linux.intel.com" , "linux-kernel@vger.kernel.org" , "neilb@suse.de" , "jmoyer@redhat.com" , "tglx@linutronix.de" , "torvalds@linux-foundation.org" , "hch@lst.de" , "axboe@kernel.dk" , "Moore, Robert" , "Wysocki, Rafael J" , "hpa@zytor.com" , "sfr@canb.auug.org.au" , "linux-nvdimm@lists.01.org" , "vishal.l.verma@linux.intel.com" , "willy@linux.intel.com" , "bp@alien8.de" , "ross.zwisler@linux.intel.com" , "luto@amacapital.net" , "axboe@fb.com" , "boaz@plexistor.com" , "david@fromorbit.com" , "akpm@linux-foundation.org" , "linux-acpi@vger.kernel.org" List-ID: T24gVGh1LCAyMDE1LTA1LTI4IGF0IDAzOjAxICswMjAwLCBSYWZhZWwgSi4gV3lzb2NraSB3cm90 ZToNCj4gPj4gQW5kIGhvdyBtdWNoIHRpbWUgaXMgaXQgZ29pbmcgdG8gdGFrZSB0byByZWJhc2Ug aXQsIGFjdHVhbGx5Pw0KPiA+Pg0KPiA+PiBJZiBhbGwgaXMgc28gY2xlYW4gYXMgeW91J3JlIHN1 Z2dlc3RpbmcsIGEgImdpdCByZWJhc2UiIHNob3VsZCBiZQ0KPiA+PiBzdWZmaWNpZW50IGZvciB0 aGF0IHJlYWxseS4gIElzIGl0IG5vdCB0aGUgY2FzZT8NCj4gPg0KPiA+IE9mIGNvdXJzZSB0aGUg cmViYXNlIGlzIHRyaXZpYWwsIGl0J3MgdGhlIHRlc3RpbmcgdGhhdCBoYXMgZ29uZSBpbnRvDQo+ ID4gdGhlIGJhc2VsaW5lIGJlaW5nIGZvcmZlaXRlZCBmb3Igbm8gZ29vZCByZWFzb24gdGhhdCBJ IHRha2UgaXNzdWUuDQo+ID4NCj4gPj4gSSBkbyBiZWxpZXZlIHRoYXQgaGF2aW5nIGEgY2xlYW4g aGlzdG9yeSBpbiB0aGUgcmVwb3NpdG9yeSBpcw0KPiA+PiBpbXBvcnRhbnQsIGVzcGVjaWFsbHkg Zm9yIGJpZyBuZXcgYW5kIGNvbXBsaWNhdGVkIGZlYXR1cmVzIGxpa2UgdGhpcw0KPiA+PiBvbmUu DQo+ID4NCj4gPiBTdXJlLCBpbiB0aGUgZ2VuZXJhbCBjYXNlLCBidXQgdGhpcyBpcyBvbmUgZXh0 cmEgY29tbWl0IGZvcg0KPiA+IGF1dG9nZW5lcmF0ZWQgYWNwaWNhIGhpc3RvcnkuDQo+ID4NCj4g Pj4gRm9yIHRoZSBzYW1lIHJlYXNvbiBJIGRvbid0IGJlbGlldmUgdGhhdCBydXNoaW5nIHN1Y2gg ZmVhdHVyZXMgaW4gbm8NCj4gPj4gbWF0dGVyIHdoYXQgaXMgdGhlIHJpZ2h0IGFwcHJvYWNoLg0K PiA+Pg0KPiA+PiBJZiBKZW5zIGRlY2lkZXMgdG8gcHVsbCBpdCByZWdhcmRsZXNzLCBpdCdzIGhp cyBjYWxsLCBidXQgSSB3b3VsZG4ndA0KPiA+PiBkbyB0aGF0IGlmIEkgd2VyZSBoaW0uDQo+ID4N Cj4gPiBJJ20gbm90IGdvaW5nIHRvIHB1c2ggY29kZSBhcm91bmQgeW91ciBvYmplY3Rpb24uICBJ IHVuZGVyc3RhbmQgYW5kDQo+ID4gYWdyZWUgd2l0aCB0aGUgZ2VuZXJhbCBwb2xpY3ksIGJ1dCBp biB0aGlzIHNwZWNpZmljIGNhc2UgSSBiZWxpZXZlIGFuDQo+ID4gZXhjZXB0aW9uIGlzIHdhcnJh bnRlZC4gIElmIHlvdSBzdGlsbCBkb24ndCBhY2sgdGhlIGFwcHJvYWNoIEknbGwNCj4gPiBwcm9j ZWVkIHdpdGggdGhlIHJlYmFzZS4NCj4gDQo+IFBsZWFzZSBkbyBhIHJlYmFzZSwgdGhlbi4gIEkg ZG9uJ3QgdGhpbmsgaXQncyBhbiB1bnJlYXNvbmFibGUgcmVxdWVzdC4NCj4gDQoNClNvLCBmaXJz dCwgdGhlIGJhZCBuZXdzLi4uIHJpZ2h0IG9uIHF1ZXVlIHRoZSBhY3BpY2EgYmFzZWxpbmUgdGhy b3dzIG1lDQp0aGlzIHVucmVsYXRlZCB0byBsaWJuZCBzcGxhdDoNCg0KIC0tLS0tLS0tLS0tLVsg Y3V0IGhlcmUgXS0tLS0tLS0tLS0tLQ0KIFdBUk5JTkc6IENQVTogMjYgUElEOiAxIGF0IGtlcm5l bC9sb2NraW5nL2xvY2tkZXAuYzozMDAyIGxvY2tkZXBfaW5pdF9tYXArMHg0NjINCg0KIERFQlVH X0xPQ0tTX1dBUk5fT04oMSkNCiBNb2R1bGVzIGxpbmtlZCBpbjoNCiBDUFU6IDI2IFBJRDogMSBD b21tOiBzd2FwcGVyLzAgTm90IHRhaW50ZWQgNC4xLjAtcmMzKyAjMzQNCiAgZmZmZmZmZmY4MWNi MGY2MCBmZmZmODgwMzYwYzgzYmM4IGZmZmZmZmZmODE4YTI3NGYgMDAwMDAwMDAwMDAwMjM1NQ0K ICBmZmZmODgwMzYwYzgzYzE4IGZmZmY4ODAzNjBjODNjMDggZmZmZmZmZmY4MTA2MWQ2YSBmZmZm ODgwMzU4MTE0MWYwDQogIGZmZmY4ODAzNTExZTY5MDggZmZmZjg4MDM1ODExNDFmMCAwMDAwMDAw MDAwMDAwMDAwIDAwMDAwMDAwMDAwMDEwMDANCiBDYWxsIFRyYWNlOg0KICBbPGZmZmZmZmZmODE4 YTI3NGY+XSBkdW1wX3N0YWNrKzB4NGMvMHg2NQ0KICBbPGZmZmZmZmZmODEwNjFkNmE+XSB3YXJu X3Nsb3dwYXRoX2NvbW1vbisweDhhLzB4YzANCiAgWzxmZmZmZmZmZjgxMDYxZGU2Pl0gd2Fybl9z bG93cGF0aF9mbXQrMHg0Ni8weDUwDQogIFs8ZmZmZmZmZmY4MTBiZDVjMj5dIGxvY2tkZXBfaW5p dF9tYXArMHg0NjIvMHg1NjANCiAgWzxmZmZmZmZmZjgxMjhlMjMyPl0gPyBfX2tlcm5mc19uZXdf bm9kZSsweDYyLzB4ZTANCiAgWzxmZmZmZmZmZjgxMjkxMDA2Pl0gX19rZXJuZnNfY3JlYXRlX2Zp bGUrMHg3Ni8weGQwDQogIFs8ZmZmZmZmZmY4MTI5MTlkYT5dIHN5c2ZzX2FkZF9maWxlX21vZGVf bnMrMHg5YS8weDFkMA0KICBbPGZmZmZmZmZmODEyOTI2OGU+XSBpbnRlcm5hbF9jcmVhdGVfZ3Jv dXArMHhlZS8weDJhMA0KICBbPGZmZmZmZmZmODEyOTI5NmE+XSBzeXNmc19jcmVhdGVfZ3JvdXBz KzB4NGEvMHhhMA0KICBbPGZmZmZmZmZmODE1OTFjM2Q+XSBkZXZpY2VfYWRkKzB4MzBkLzB4NjQw DQogIFs8ZmZmZmZmZmY4MWZiMWI4Nj5dID8gcGVyZl93b3JrcXVldWVfaW5pdCsweDY2LzB4NjYN CiAgWzxmZmZmZmZmZjgxMTdhNjZmPl0gcG11X2Rldl9hbGxvYysweDhmLzB4ZDANCiAgWzxmZmZm ZmZmZjgxZmIxYmQzPl0gcGVyZl9ldmVudF9zeXNmc19pbml0KzB4NGQvMHg5NQ0KICBbPGZmZmZm ZmZmODEwMDAyZmM+XSBkb19vbmVfaW5pdGNhbGwrMHhiYy8weDFmMA0KICBbPGZmZmZmZmZmODFm OGUxY2Y+XSBrZXJuZWxfaW5pdF9mcmVlYWJsZSsweDFiMS8weDIzZQ0KICBbPGZmZmZmZmZmODFm OGQ4ZWI+XSA/IGluaXRjYWxsX2JsYWNrbGlzdCsweGI2LzB4YjYNCiAgWzxmZmZmZmZmZjgxODkx ZjkwPl0gPyByZXN0X2luaXQrMHgxNTAvMHgxNTANCiAgWzxmZmZmZmZmZjgxODkxZjllPl0ga2Vy bmVsX2luaXQrMHhlLzB4ZjANCiAgWzxmZmZmZmZmZjgxOGFkZjEyPl0gcmV0X2Zyb21fZm9yaysw eDQyLzB4NzANCiAgWzxmZmZmZmZmZjgxODkxZjkwPl0gPyByZXN0X2luaXQrMHgxNTAvMHgxNTAN CiAtLS1bIGVuZCB0cmFjZSAzNmY1ZDI4YWUxMTVlYTIwIF0tLS0NCg0KTHVja2lseSB0aGF0IHNl ZW1zIHRvIGJlIHRoZSBvbmx5IGltbWVkaWF0ZSBicmVha2FnZSBhcyBvdXIgdW5pdCB0ZXN0cw0K cGFzcywgYW5kIHdlIGFscmVhZHkgaGFkIGdvb2QgbG9ja2RlcCBjb3ZlcmFnZSBvZiBsaWJuZCBw bHVzIG5maXQgZHJpdmVyDQpvbiB0aGUgcHJldmlvdXMgYmFzZWxpbmUuDQoNClRoZSBnb29kIG5l d3MgaXMgdGhhdCB1cHN0cmVhbSwgc2luY2Ugb3VyIG9sZCBiYXNlbGluZSwgaGFzIGZpeGVkIGEN CnN5c2ZzIGJ1ZyB0aGF0IHdlIHdlcmUgcmVseWluZyBvbiBmb3Igb3VyIG5hbWVzcGFjZS1kZXZp Y2UNCnNpemUtYXR0cmlidXRlIHBlcm1pc3Npb24gc2V0dGluZ3MgKGZpeCBiZWxvdykuICBBbHNv LCBtb3ZpbmcgdGhlDQpiYXNlbGluZSBzZWVtcyB0byBoYXZlIHNoYWtlbiBhbm90aGVyIDBkYXkg cmVwb3J0IGxvb3NlIChhbHRob3VnaCB0aGlzDQpzcGFyc2UgcmVwb3J0IHdhcyBlcXVhbGx5IHZh bGlkIG9uIHRoZSBvbGQgYmFzZWxpbmUpLg0KDQpUaGUgY2hhbmdlcyBvbiB0b3Agb2YgdGhlIHJl YmFzZSBhcmUgc21hbGwgZW5vdWdoIHRvIGluY2x1ZGUgaW5saW5lLg0KSSd2ZSBhbHNvIHBvc3Rl ZCB0aGUgbGF0ZXN0IHRyZWUgdG8gbnZkaW1tLmdpdC9saWJuZC1mb3ItbmV4dC4gIEdpdmVuDQp0 aGlzIGlzIG5vdyBiYXNlZCBvbiB0aGUgYWNwaWNhIGJpdHMgZm9yIDQuMiBpcyBpdCBzdGlsbCBz dWl0YWJsZSB0byBnbw0KdGhyb3VnaCB0aGUgYmxvY2sgdHJlZT8NCg0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvYWNwaS9uZml0LmMgYi9kcml2ZXJzL2FjcGkvbmZpdC5jDQppbmRleCBjMzFkMGFlODcy OTMuLjM0Zjg3OTgwOGFkYSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYWNwaS9uZml0LmMNCisrKyBi L2RyaXZlcnMvYWNwaS9uZml0LmMNCkBAIC04OTUsNyArODk1LDcgQEAgc3RhdGljIHU2NCB0b19p bnRlcmxlYXZlX29mZnNldCh1NjQgb2Zmc2V0LCBzdHJ1Y3QgbmZpdF9ibGtfbW1pbyAqbW1pbykN CiANCiBzdGF0aWMgdTY0IHJlYWRfYmxrX3N0YXQoc3RydWN0IG5maXRfYmxrICpuZml0X2Jsaywg dW5zaWduZWQgaW50IGJ3KQ0KIHsNCi0Jc3RydWN0IG5maXRfYmxrX21taW8gKm1taW8gPSAmbmZp dF9ibGstPm1taW9bRENSXTsNCisJc3RydWN0IG5maXRfYmxrX21taW8gX19pb21lbSAqbW1pbyA9 ICZuZml0X2Jsay0+bW1pb1tEQ1JdOw0KIAl1NjQgb2Zmc2V0ID0gbmZpdF9ibGstPnN0YXRfb2Zm c2V0ICsgbW1pby0+c2l6ZSAqIGJ3Ow0KIA0KIAlpZiAobW1pby0+bnVtX2xpbmVzKQ0KQEAgLTkw OCw3ICs5MDgsNyBAQCBzdGF0aWMgdm9pZCB3cml0ZV9ibGtfY3RsKHN0cnVjdCBuZml0X2JsayAq bmZpdF9ibGssIHVuc2lnbmVkIGludCBidywNCiAJCXJlc291cmNlX3NpemVfdCBkcGEsIHVuc2ln bmVkIGludCBsZW4sIHVuc2lnbmVkIGludCB3cml0ZSkNCiB7DQogCXU2NCBjbWQsIG9mZnNldDsN Ci0Jc3RydWN0IG5maXRfYmxrX21taW8gKm1taW8gPSAmbmZpdF9ibGstPm1taW9bRENSXTsNCisJ c3RydWN0IG5maXRfYmxrX21taW8gX19pb21lbSAqbW1pbyA9ICZuZml0X2Jsay0+bW1pb1tEQ1Jd Ow0KIA0KIAllbnVtIHsNCiAJCUJDV19PRkZTRVRfTUFTSyA9ICgxVUxMIDw8IDQ4KS0xLA0KQEAg LTk1OSw5ICs5NTksOSBAQCBzdGF0aWMgaW50IGFjcGlfbmZpdF9ibGtfc2luZ2xlX2lvKHN0cnVj dCBuZml0X2JsayAqbmZpdF9ibGssIHZvaWQgKmlvYnVmLA0KIAkJfQ0KIA0KIAkJaWYgKHdyaXRl KQ0KLQkJCW1lbWNweShtbWlvLT5iYXNlICsgb2Zmc2V0LCBpb2J1ZiArIGNvcGllZCwgYyk7DQor CQkJbWVtY3B5X2Zyb21pbyhtbWlvLT5iYXNlICsgb2Zmc2V0LCBpb2J1ZiArIGNvcGllZCwgYyk7 DQogCQllbHNlDQotCQkJbWVtY3B5KGlvYnVmICsgY29waWVkLCBtbWlvLT5iYXNlICsgb2Zmc2V0 LCBjKTsNCisJCQltZW1jcHlfdG9pbyhpb2J1ZiArIGNvcGllZCwgbW1pby0+YmFzZSArIG9mZnNl dCwgYyk7DQogDQogCQljb3BpZWQgKz0gYzsNCiAJCWxlbiAtPSBjOw0KQEAgLTEwMzYsNyArMTAz Niw3IEBAIHN0YXRpYyB2b2lkIG5maXRfc3BhX3VubWFwKHN0cnVjdCBhY3BpX25maXRfZGVzYyAq YWNwaV9kZXNjLA0KIAltdXRleF91bmxvY2soJmFjcGlfZGVzYy0+c3BhX21hcF9tdXRleCk7DQog fQ0KIA0KLXN0YXRpYyB2b2lkICpfX25maXRfc3BhX21hcChzdHJ1Y3QgYWNwaV9uZml0X2Rlc2Mg KmFjcGlfZGVzYywNCitzdGF0aWMgdm9pZCBfX2lvbWVtICpfX25maXRfc3BhX21hcChzdHJ1Y3Qg YWNwaV9uZml0X2Rlc2MgKmFjcGlfZGVzYywNCiAJCXN0cnVjdCBhY3BpX25maXRfc3lzdGVtX2Fk ZHJlc3MgKnNwYSkNCiB7DQogCXJlc291cmNlX3NpemVfdCBzdGFydCA9IHNwYS0+YWRkcmVzczsN CkBAIC0xMDkyLDE2ICsxMDkyLDE2IEBAIHN0YXRpYyB2b2lkICpfX25maXRfc3BhX21hcChzdHJ1 Y3QgYWNwaV9uZml0X2Rlc2MgKmFjcGlfZGVzYywNCiAgKiB3aGVuIGFsbCByZWdpb24gZGV2aWNl cyByZWZlcmVuY2luZyB0aGUgc2FtZSBtYXBwaW5nIGFyZSBkaXNhYmxlZCAvDQogICogdW5ib3Vu ZC4NCiAgKi8NCi1zdGF0aWMgdm9pZCAqbmZpdF9zcGFfbWFwKHN0cnVjdCBhY3BpX25maXRfZGVz YyAqYWNwaV9kZXNjLA0KK3N0YXRpYyB2b2lkIF9faW9tZW0gKm5maXRfc3BhX21hcChzdHJ1Y3Qg YWNwaV9uZml0X2Rlc2MgKmFjcGlfZGVzYywNCiAJCXN0cnVjdCBhY3BpX25maXRfc3lzdGVtX2Fk ZHJlc3MgKnNwYSkNCiB7DQotCXN0cnVjdCBuZml0X3NwYV9tYXBwaW5nICpzcGFfbWFwOw0KKwl2 b2lkIF9faW9tZW0gKmlvbWVtOw0KIA0KIAltdXRleF9sb2NrKCZhY3BpX2Rlc2MtPnNwYV9tYXBf bXV0ZXgpOw0KLQlzcGFfbWFwID0gX19uZml0X3NwYV9tYXAoYWNwaV9kZXNjLCBzcGEpOw0KKwlp b21lbSA9IF9fbmZpdF9zcGFfbWFwKGFjcGlfZGVzYywgc3BhKTsNCiAJbXV0ZXhfdW5sb2NrKCZh Y3BpX2Rlc2MtPnNwYV9tYXBfbXV0ZXgpOw0KIA0KLQlyZXR1cm4gc3BhX21hcDsNCisJcmV0dXJu IGlvbWVtOw0KIH0NCiANCiBzdGF0aWMgaW50IG5maXRfYmxrX2luaXRfaW50ZXJsZWF2ZShzdHJ1 Y3QgbmZpdF9ibGtfbW1pbyAqbW1pbywNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvbmZpdC5o IGIvZHJpdmVycy9hY3BpL25maXQuaA0KaW5kZXggODgwZTdiM2E5ZGEwLi5lNDYyMjE0Zjk0Y2Qg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL2FjcGkvbmZpdC5oDQorKysgYi9kcml2ZXJzL2FjcGkvbmZp dC5oDQpAQCAtMTE1LDcgKzExNSw3IEBAIGVudW0gbmRfYmxrX21taW9fc2VsZWN0b3Igew0KIA0K IHN0cnVjdCBuZml0X2JsayB7DQogCXN0cnVjdCBuZml0X2Jsa19tbWlvIHsNCi0JCXZvaWQgKmJh c2U7DQorCQl2b2lkIF9faW9tZW0gKmJhc2U7DQogCQl1NjQgc2l6ZTsNCiAJCXU2NCBiYXNlX29m ZnNldDsNCiAJCXUzMiBsaW5lX3NpemU7DQpAQCAtMTM1LDcgKzEzNSw3IEBAIHN0cnVjdCBuZml0 X3NwYV9tYXBwaW5nIHsNCiAJc3RydWN0IGFjcGlfbmZpdF9zeXN0ZW1fYWRkcmVzcyAqc3BhOw0K IAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7DQogCXN0cnVjdCBrcmVmIGtyZWY7DQotCXZvaWQgKmlv bWVtOw0KKwl2b2lkIF9faW9tZW0gKmlvbWVtOw0KIH07DQogDQogc3RhdGljIGlubGluZSBzdHJ1 Y3QgbmZpdF9zcGFfbWFwcGluZyAqdG9fc3BhX21hcChzdHJ1Y3Qga3JlZiAqa3JlZikNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2Jsb2NrL25kL25hbWVzcGFjZV9kZXZzLmMgYi9kcml2ZXJzL2Jsb2Nr L25kL25hbWVzcGFjZV9kZXZzLmMNCmluZGV4IDhlNzVjODgxYmM3Yi4uZDMwNDI2NjJmNGI2IDEw MDY0NA0KLS0tIGEvZHJpdmVycy9ibG9jay9uZC9uYW1lc3BhY2VfZGV2cy5jDQorKysgYi9kcml2 ZXJzL2Jsb2NrL25kL25hbWVzcGFjZV9kZXZzLmMNCkBAIC0xMTAxLDcgKzExMDEsNyBAQCBzdGF0 aWMgdW1vZGVfdCBuZF9uYW1lc3BhY2VfYXR0cl92aXNpYmxlKHN0cnVjdCBrb2JqZWN0ICprb2Jq LCBzdHJ1Y3QgYXR0cmlidXRlDQogDQogCWlmIChpc19uYW1lc3BhY2VfcG1lbShkZXYpIHx8IGlz X25hbWVzcGFjZV9ibGsoZGV2KSkgew0KIAkJaWYgKGEgPT0gJmRldl9hdHRyX3NpemUuYXR0cikN Ci0JCQlyZXR1cm4gU19JV1VTUjsNCisJCQlyZXR1cm4gU19JV1VTUiB8IFNfSVJVR087DQogDQog CQlpZiAoaXNfbmFtZXNwYWNlX3BtZW0oZGV2KSAmJiBhID09ICZkZXZfYXR0cl9zZWN0b3Jfc2l6 ZS5hdHRyKQ0KIAkJCXJldHVybiAwOw0KDQo9PT0NCg0KVGhlIGZvbGxvd2luZyBjaGFuZ2VzIHNp bmNlIGNvbW1pdCBmM2I2Y2VkMjM2MjU5YTg3ODI5YjgyOWU4ZTU0MmZmNTNiZmI5YTRmOg0KDQog IEFDUElDQTogRml4IGZvciBpbGwtZm9ybWVkIEdVSUQgc3RyaW5ncyBmb3IgTkZJVCB0YWJsZXMu ICgyMDE1LTA1LTI1IDIzOjQyOjM0ICswMjAwKQ0KDQphcmUgYXZhaWxhYmxlIGluIHRoZSBnaXQg cmVwb3NpdG9yeSBhdDoNCg0KICBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tl cm5lbC9naXQvZGpidy9udmRpbW0gbGlibmQtZm9yLW5leHQNCg0KZm9yIHlvdSB0byBmZXRjaCBj aGFuZ2VzIHVwIHRvIDk4NzJjMmM1NDU3MmNkN2U3NDEwYjRlYWMyOTNlZmI1OGFjZTJmYzM6DQoN CiAgbGlibmQ6IE5vbi1Wb2xhdGlsZSBEZXZpY2VzICgyMDE1LTA1LTI3IDIzOjM2OjAxIC0wNDAw KQ0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQpEYW4gV2lsbGlhbXMgKDE4KToNCiAgICAgIGU4MjAsIGVmaTogYWRkIEFD UEkgNi4wIHBlcnNpc3RlbnQgbWVtb3J5IHR5cGVzDQogICAgICBsaWJuZCwgbmZpdDogaW5pdGlh bCBsaWJuZCBpbmZyYXN0cnVjdHVyZSBhbmQgTkZJVCBzdXBwb3J0DQogICAgICBsaWJuZDogY29u dHJvbCBjaGFyYWN0ZXIgZGV2aWNlIGFuZCBsaWJuZCBidXMgc3lzZnMgYXR0cmlidXRlcw0KICAg ICAgbGlibmQsIG5maXQ6IGRpbW0vbWVtb3J5LWRldmljZXMNCiAgICAgIGxpYm5kOiBjb250cm9s IChpb2N0bCkgbWVzc2FnZXMgZm9yIGxpYm5kIGJ1cyBhbmQgZGltbSBkZXZpY2VzDQogICAgICBs aWJuZCwgbmRfZGltbTogZGltbSBkcml2ZXIgYW5kIGJhc2UgbGlibmQgZGV2aWNlLWRyaXZlciBp bmZyYXN0cnVjdHVyZQ0KICAgICAgbGlibmQsIG5maXQ6IHJlZ2lvbnMgKGJsb2NrLWRhdGEtd2lu ZG93LCBwZXJzaXN0ZW50IG1lbW9yeSwgdm9sYXRpbGUgbWVtb3J5KQ0KICAgICAgbGlibmQ6IHN1 cHBvcnQgZm9yIGxlZ2FjeSAobm9uLWFsaWFzaW5nKSBudmRpbW1zDQogICAgICBsaWJuZCwgbmRf cG1lbTogYWRkIGxpYm5kIHN1cHBvcnQgdG8gdGhlIHBtZW0gZHJpdmVyDQogICAgICBsaWJuZCwg bmZpdDogYWRkIGludGVybGVhdmUtc2V0IHN0YXRlLXRyYWNraW5nIGluZnJhc3RydWN0dXJlDQog ICAgICBsaWJuZDogbmFtZXNwYWNlIGluZGljZXM6IHJlYWQgYW5kIHZhbGlkYXRlDQogICAgICBs aWJuZDogcG1lbSBsYWJlbCBzZXRzIGFuZCBuYW1lc3BhY2UgaW5zdGFudGlhdGlvbi4NCiAgICAg IGxpYm5kOiBibGsgbGFiZWxzIGFuZCBuYW1lc3BhY2UgaW5zdGFudGlhdGlvbg0KICAgICAgbGli bmQ6IHdyaXRlIHBtZW0gbGFiZWwgc2V0DQogICAgICBsaWJuZDogd3JpdGUgYmxrIGxhYmVsIHNl dA0KICAgICAgbGlibmQ6IGluZnJhc3RydWN0dXJlIGZvciBidHQgZGV2aWNlcw0KICAgICAgbmZp dC10ZXN0OiBtYW51ZmFjdHVyZWQgTkZJVHMgZm9yIGludGVyZmFjZSBkZXZlbG9wbWVudA0KICAg ICAgbGlibmQ6IE5vbi1Wb2xhdGlsZSBEZXZpY2VzDQoNClJvc3MgWndpc2xlciAoMik6DQogICAg ICBwbWVtOiBEeW5hbWljYWxseSBhbGxvY2F0ZSBwYXJ0aXRpb24gbnVtYmVycw0KICAgICAgbGli bmQsIG5maXQsIG5kX2JsazogZHJpdmVyIGZvciBCTEstbW9kZSBhY2Nlc3MgcGVyc2lzdGVudCBt ZW1vcnkNCg0KVmlzaGFsIFZlcm1hICgxKToNCiAgICAgIG5kX2J0dDogYXRvbWljIHNlY3RvciB1 cGRhdGVzDQoNCiBEb2N1bWVudGF0aW9uL2Jsb2NrZGV2L2J0dC50eHQgICAgfCAgMjczICsrKysr Kw0KIERvY3VtZW50YXRpb24vYmxvY2tkZXYvbGlibmQudHh0ICB8ICA4MDQgKysrKysrKysrKysr KysrKysrDQogTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAgIHwgICAzOSArLQ0KIGFy Y2gvYXJtNjQva2VybmVsL2VmaS5jICAgICAgICAgICB8ICAgIDEgKw0KIGFyY2gvaWE2NC9rZXJu ZWwvZWZpLmMgICAgICAgICAgICB8ICAgIDQgKw0KIGFyY2gveDg2L0tjb25maWcgICAgICAgICAg ICAgICAgICB8ICAgIDQgKw0KIGFyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9lYm9vdC5jICB8ICAg IDQgKw0KIGFyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20vZTgyMC5oICB8ICAgIDEgKw0KIGFyY2gv eDg2L2tlcm5lbC9lODIwLmMgICAgICAgICAgICB8ICAgMjggKy0NCiBhcmNoL3g4Ni9rZXJuZWwv cG1lbS5jICAgICAgICAgICAgfCAgIDkyICstDQogYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaS5j ICAgICAgIHwgICAgMyArDQogZHJpdmVycy9hY3BpL0tjb25maWcgICAgICAgICAgICAgIHwgICAy NyArDQogZHJpdmVycy9hY3BpL01ha2VmaWxlICAgICAgICAgICAgIHwgICAgMSArDQogZHJpdmVy cy9hY3BpL25maXQuYyAgICAgICAgICAgICAgIHwgMTQ3NCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKw0KIGRyaXZlcnMvYWNwaS9uZml0LmggICAgICAgICAgICAgICB8ICAxNjAgKysr Kw0KIGRyaXZlcnMvYmxvY2svS2NvbmZpZyAgICAgICAgICAgICB8ICAgMTMgKy0NCiBkcml2ZXJz L2Jsb2NrL01ha2VmaWxlICAgICAgICAgICAgfCAgICAyICstDQogZHJpdmVycy9ibG9jay9uZC9L Y29uZmlnICAgICAgICAgIHwgIDEwMSArKysNCiBkcml2ZXJzL2Jsb2NrL25kL01ha2VmaWxlICAg ICAgICAgfCAgIDI5ICsNCiBkcml2ZXJzL2Jsb2NrL25kL2Jsay5jICAgICAgICAgICAgfCAgMjUy ICsrKysrKw0KIGRyaXZlcnMvYmxvY2svbmQvYnR0LmMgICAgICAgICAgICB8IDE0MzggKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKw0KIGRyaXZlcnMvYmxvY2svbmQvYnR0LmggICAgICAg ICAgICB8ICAxODYgKysrKw0KIGRyaXZlcnMvYmxvY2svbmQvYnR0X2RldnMuYyAgICAgICB8ICA0 NDMgKysrKysrKysrKw0KIGRyaXZlcnMvYmxvY2svbmQvYnVzLmMgICAgICAgICAgICB8ICA3NzAg KysrKysrKysrKysrKysrKysNCiBkcml2ZXJzL2Jsb2NrL25kL2NvcmUuYyAgICAgICAgICAgfCAg NDcyICsrKysrKysrKysNCiBkcml2ZXJzL2Jsb2NrL25kL2RpbW0uYyAgICAgICAgICAgfCAgMTE1 ICsrKw0KIGRyaXZlcnMvYmxvY2svbmQvZGltbV9kZXZzLmMgICAgICB8ICA1MTYgKysrKysrKysr KysNCiBkcml2ZXJzL2Jsb2NrL25kL2xhYmVsLmMgICAgICAgICAgfCAgOTIyICsrKysrKysrKysr KysrKysrKysrDQogZHJpdmVycy9ibG9jay9uZC9sYWJlbC5oICAgICAgICAgIHwgIDE0MyArKysr DQogZHJpdmVycy9ibG9jay9uZC9uYW1lc3BhY2VfZGV2cy5jIHwgMTcwMiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrDQogZHJpdmVycy9ibG9jay9uZC9uZC1wcml2YXRlLmgg ICAgIHwgIDExMSArKysNCiBkcml2ZXJzL2Jsb2NrL25kL25kLmggICAgICAgICAgICAgfCAgMjU3 ICsrKysrKw0KIGRyaXZlcnMvYmxvY2sveyA9PiBuZH0vcG1lbS5jICAgICB8ICAxMDcgKystDQog ZHJpdmVycy9ibG9jay9uZC9yZWdpb24uYyAgICAgICAgIHwgIDE4OSArKysrDQogZHJpdmVycy9i bG9jay9uZC9yZWdpb25fZGV2cy5jICAgIHwgIDY2NyArKysrKysrKysrKysrKysNCiBkcml2ZXJz L2Jsb2NrL25kL3Rlc3QvTWFrZWZpbGUgICAgfCAgICA1ICsNCiBkcml2ZXJzL2Jsb2NrL25kL3Rl c3QvaW9tYXAuYyAgICAgfCAgMTUxICsrKysNCiBkcml2ZXJzL2Jsb2NrL25kL3Rlc3QvbmZpdC5j ICAgICAgfCAxMTcxICsrKysrKysrKysrKysrKysrKysrKysrKysNCiBkcml2ZXJzL2Jsb2NrL25k L3Rlc3QvbmZpdF90ZXN0LmggfCAgIDI4ICsNCiBpbmNsdWRlL2xpbnV4L2VmaS5oICAgICAgICAg ICAgICAgfCAgICAzICstDQogaW5jbHVkZS9saW51eC9saWJuZC5oICAgICAgICAgICAgIHwgIDEy OSArKysNCiBpbmNsdWRlL2xpbnV4L25kLmggICAgICAgICAgICAgICAgfCAgIDk4ICsrKw0KIGlu Y2x1ZGUvdWFwaS9saW51eC9LYnVpbGQgICAgICAgICB8ICAgIDEgKw0KIGluY2x1ZGUvdWFwaS9s aW51eC9uZGN0bC5oICAgICAgICB8ICAxOTkgKysrKysNCiA0NCBmaWxlcyBjaGFuZ2VkLCAxMzA0 NiBpbnNlcnRpb25zKCspLCA4OSBkZWxldGlvbnMoLSkNCiBjcmVhdGUgbW9kZSAxMDA2NDQgRG9j dW1lbnRhdGlvbi9ibG9ja2Rldi9idHQudHh0DQogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50 YXRpb24vYmxvY2tkZXYvbGlibmQudHh0DQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYWNw aS9uZml0LmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9hY3BpL25maXQuaA0KIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25kL0tjb25maWcNCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ibG9jay9uZC9NYWtlZmlsZQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2Jsb2NrL25kL2Jsay5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYmxvY2svbmQvYnR0 LmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ibG9jay9uZC9idHQuaA0KIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25kL2J0dF9kZXZzLmMNCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ibG9jay9uZC9idXMuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Js b2NrL25kL2NvcmUuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25kL2RpbW0u Yw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25kL2RpbW1fZGV2cy5jDQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYmxvY2svbmQvbGFiZWwuYw0KIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2Jsb2NrL25kL2xhYmVsLmgNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVy cy9ibG9jay9uZC9uYW1lc3BhY2VfZGV2cy5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv YmxvY2svbmQvbmQtcHJpdmF0ZS5oDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYmxvY2sv bmQvbmQuaA0KIHJlbmFtZSBkcml2ZXJzL2Jsb2NrL3sgPT4gbmR9L3BtZW0uYyAoNzAlKQ0KIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25kL3JlZ2lvbi5jDQogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvYmxvY2svbmQvcmVnaW9uX2RldnMuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2Jsb2NrL25kL3Rlc3QvTWFrZWZpbGUNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ibG9jay9uZC90ZXN0L2lvbWFwLmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9i bG9jay9uZC90ZXN0L25maXQuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2Jsb2NrL25k L3Rlc3QvbmZpdF90ZXN0LmgNCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9saWJu ZC5oDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvbmQuaA0KIGNyZWF0ZSBtb2Rl IDEwMDY0NCBpbmNsdWRlL3VhcGkvbGludXgvbmRjdGwuaA0KDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752093AbbE1FVf (ORCPT ); Thu, 28 May 2015 01:21:35 -0400 Received: from mga14.intel.com ([192.55.52.115]:43371 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751212AbbE1FVX (ORCPT ); Thu, 28 May 2015 01:21:23 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,511,1427785200"; d="scan'208";a="732902371" From: "Williams, Dan J" To: "rafael@kernel.org" CC: "gregkh@linuxfoundation.org" , "Zheng, Lv" , "mingo@kernel.org" , "nicholas.w.moulin@linux.intel.com" , "linux-kernel@vger.kernel.org" , "neilb@suse.de" , "jmoyer@redhat.com" , "tglx@linutronix.de" , "torvalds@linux-foundation.org" , "hch@lst.de" , "axboe@kernel.dk" , "Moore, Robert" , "Wysocki, Rafael J" , "hpa@zytor.com" , "sfr@canb.auug.org.au" , "linux-nvdimm@lists.01.org" , "vishal.l.verma@linux.intel.com" , "willy@linux.intel.com" , "bp@alien8.de" , "ross.zwisler@linux.intel.com" , "luto@amacapital.net" , "axboe@fb.com" , "boaz@plexistor.com" , "david@fromorbit.com" , "akpm@linux-foundation.org" , "linux-acpi@vger.kernel.org" Subject: Re: [GIT PULL v4 00/21] libnd: non-volatile memory device support Thread-Topic: [GIT PULL v4 00/21] libnd: non-volatile memory device support Thread-Index: AQHQmMxPxzk4GDWqHUy2RRZSdzjCQ52Q3s+AgAAEmICAAAbRgIAAFaCAgAACRQCAAAO/gIAAAZcAgABIi4A= Date: Thu, 28 May 2015 05:21:17 +0000 Message-ID: <1432790477.723.20.camel@intel.com> References: <20150527210155.17965.74864.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: 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: <4196D04820EEDE4D91EFAFA1C8325DCC@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 nfs id t4S5Ld6F024534 On Thu, 2015-05-28 at 03:01 +0200, Rafael J. Wysocki wrote: > >> And how much time is it going to take to rebase it, actually? > >> > >> If all is so clean as you're suggesting, a "git rebase" should be > >> sufficient for that really. Is it not the case? > > > > Of course the rebase is trivial, it's the testing that has gone into > > the baseline being forfeited for no good reason that I take issue. > > > >> I do believe that having a clean history in the repository is > >> important, especially for big new and complicated features like this > >> one. > > > > Sure, in the general case, but this is one extra commit for > > autogenerated acpica history. > > > >> For the same reason I don't believe that rushing such features in no > >> matter what is the right approach. > >> > >> If Jens decides to pull it regardless, it's his call, but I wouldn't > >> do that if I were him. > > > > I'm not going to push code around your objection. I understand and > > agree with the general policy, but in this specific case I believe an > > exception is warranted. If you still don't ack the approach I'll > > proceed with the rebase. > > Please do a rebase, then. I don't think it's an unreasonable request. > So, first, the bad news... right on queue the acpica baseline throws me this unrelated to libnd splat: ------------[ cut here ]------------ WARNING: CPU: 26 PID: 1 at kernel/locking/lockdep.c:3002 lockdep_init_map+0x462 DEBUG_LOCKS_WARN_ON(1) Modules linked in: CPU: 26 PID: 1 Comm: swapper/0 Not tainted 4.1.0-rc3+ #34 ffffffff81cb0f60 ffff880360c83bc8 ffffffff818a274f 0000000000002355 ffff880360c83c18 ffff880360c83c08 ffffffff81061d6a ffff8803581141f0 ffff8803511e6908 ffff8803581141f0 0000000000000000 0000000000001000 Call Trace: [] dump_stack+0x4c/0x65 [] warn_slowpath_common+0x8a/0xc0 [] warn_slowpath_fmt+0x46/0x50 [] lockdep_init_map+0x462/0x560 [] ? __kernfs_new_node+0x62/0xe0 [] __kernfs_create_file+0x76/0xd0 [] sysfs_add_file_mode_ns+0x9a/0x1d0 [] internal_create_group+0xee/0x2a0 [] sysfs_create_groups+0x4a/0xa0 [] device_add+0x30d/0x640 [] ? perf_workqueue_init+0x66/0x66 [] pmu_dev_alloc+0x8f/0xd0 [] perf_event_sysfs_init+0x4d/0x95 [] do_one_initcall+0xbc/0x1f0 [] kernel_init_freeable+0x1b1/0x23e [] ? initcall_blacklist+0xb6/0xb6 [] ? rest_init+0x150/0x150 [] kernel_init+0xe/0xf0 [] ret_from_fork+0x42/0x70 [] ? rest_init+0x150/0x150 ---[ end trace 36f5d28ae115ea20 ]--- Luckily that seems to be the only immediate breakage as our unit tests pass, and we already had good lockdep coverage of libnd plus nfit driver on the previous baseline. The good news is that upstream, since our old baseline, has fixed a sysfs bug that we were relying on for our namespace-device size-attribute permission settings (fix below). Also, moving the baseline seems to have shaken another 0day report loose (although this sparse report was equally valid on the old baseline). The changes on top of the rebase are small enough to include inline. I've also posted the latest tree to nvdimm.git/libnd-for-next. Given this is now based on the acpica bits for 4.2 is it still suitable to go through the block tree? diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c index c31d0ae87293..34f879808ada 100644 --- a/drivers/acpi/nfit.c +++ b/drivers/acpi/nfit.c @@ -895,7 +895,7 @@ static u64 to_interleave_offset(u64 offset, struct nfit_blk_mmio *mmio) static u64 read_blk_stat(struct nfit_blk *nfit_blk, unsigned int bw) { - struct nfit_blk_mmio *mmio = &nfit_blk->mmio[DCR]; + struct nfit_blk_mmio __iomem *mmio = &nfit_blk->mmio[DCR]; u64 offset = nfit_blk->stat_offset + mmio->size * bw; if (mmio->num_lines) @@ -908,7 +908,7 @@ static void write_blk_ctl(struct nfit_blk *nfit_blk, unsigned int bw, resource_size_t dpa, unsigned int len, unsigned int write) { u64 cmd, offset; - struct nfit_blk_mmio *mmio = &nfit_blk->mmio[DCR]; + struct nfit_blk_mmio __iomem *mmio = &nfit_blk->mmio[DCR]; enum { BCW_OFFSET_MASK = (1ULL << 48)-1, @@ -959,9 +959,9 @@ static int acpi_nfit_blk_single_io(struct nfit_blk *nfit_blk, void *iobuf, } if (write) - memcpy(mmio->base + offset, iobuf + copied, c); + memcpy_fromio(mmio->base + offset, iobuf + copied, c); else - memcpy(iobuf + copied, mmio->base + offset, c); + memcpy_toio(iobuf + copied, mmio->base + offset, c); copied += c; len -= c; @@ -1036,7 +1036,7 @@ static void nfit_spa_unmap(struct acpi_nfit_desc *acpi_desc, mutex_unlock(&acpi_desc->spa_map_mutex); } -static void *__nfit_spa_map(struct acpi_nfit_desc *acpi_desc, +static void __iomem *__nfit_spa_map(struct acpi_nfit_desc *acpi_desc, struct acpi_nfit_system_address *spa) { resource_size_t start = spa->address; @@ -1092,16 +1092,16 @@ static void *__nfit_spa_map(struct acpi_nfit_desc *acpi_desc, * when all region devices referencing the same mapping are disabled / * unbound. */ -static void *nfit_spa_map(struct acpi_nfit_desc *acpi_desc, +static void __iomem *nfit_spa_map(struct acpi_nfit_desc *acpi_desc, struct acpi_nfit_system_address *spa) { - struct nfit_spa_mapping *spa_map; + void __iomem *iomem; mutex_lock(&acpi_desc->spa_map_mutex); - spa_map = __nfit_spa_map(acpi_desc, spa); + iomem = __nfit_spa_map(acpi_desc, spa); mutex_unlock(&acpi_desc->spa_map_mutex); - return spa_map; + return iomem; } static int nfit_blk_init_interleave(struct nfit_blk_mmio *mmio, diff --git a/drivers/acpi/nfit.h b/drivers/acpi/nfit.h index 880e7b3a9da0..e462214f94cd 100644 --- a/drivers/acpi/nfit.h +++ b/drivers/acpi/nfit.h @@ -115,7 +115,7 @@ enum nd_blk_mmio_selector { struct nfit_blk { struct nfit_blk_mmio { - void *base; + void __iomem *base; u64 size; u64 base_offset; u32 line_size; @@ -135,7 +135,7 @@ struct nfit_spa_mapping { struct acpi_nfit_system_address *spa; struct list_head list; struct kref kref; - void *iomem; + void __iomem *iomem; }; static inline struct nfit_spa_mapping *to_spa_map(struct kref *kref) diff --git a/drivers/block/nd/namespace_devs.c b/drivers/block/nd/namespace_devs.c index 8e75c881bc7b..d3042662f4b6 100644 --- a/drivers/block/nd/namespace_devs.c +++ b/drivers/block/nd/namespace_devs.c @@ -1101,7 +1101,7 @@ static umode_t nd_namespace_attr_visible(struct kobject *kobj, struct attribute if (is_namespace_pmem(dev) || is_namespace_blk(dev)) { if (a == &dev_attr_size.attr) - return S_IWUSR; + return S_IWUSR | S_IRUGO; if (is_namespace_pmem(dev) && a == &dev_attr_sector_size.attr) return 0; === The following changes since commit f3b6ced236259a87829b829e8e542ff53bfb9a4f: ACPICA: Fix for ill-formed GUID strings for NFIT tables. (2015-05-25 23:42:34 +0200) are available in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm libnd-for-next for you to fetch changes up to 9872c2c54572cd7e7410b4eac293efb58ace2fc3: libnd: Non-Volatile Devices (2015-05-27 23:36:01 -0400) ---------------------------------------------------------------- Dan Williams (18): e820, efi: add ACPI 6.0 persistent memory types libnd, nfit: initial libnd infrastructure and NFIT support libnd: control character device and libnd bus sysfs attributes libnd, nfit: dimm/memory-devices libnd: control (ioctl) messages for libnd bus and dimm devices libnd, nd_dimm: dimm driver and base libnd device-driver infrastructure libnd, nfit: regions (block-data-window, persistent memory, volatile memory) libnd: support for legacy (non-aliasing) nvdimms libnd, nd_pmem: add libnd support to the pmem driver libnd, nfit: add interleave-set state-tracking infrastructure libnd: namespace indices: read and validate libnd: pmem label sets and namespace instantiation. libnd: blk labels and namespace instantiation libnd: write pmem label set libnd: write blk label set libnd: infrastructure for btt devices nfit-test: manufactured NFITs for interface development libnd: Non-Volatile Devices Ross Zwisler (2): pmem: Dynamically allocate partition numbers libnd, nfit, nd_blk: driver for BLK-mode access persistent memory Vishal Verma (1): nd_btt: atomic sector updates Documentation/blockdev/btt.txt | 273 ++++++ Documentation/blockdev/libnd.txt | 804 ++++++++++++++++++ MAINTAINERS | 39 +- arch/arm64/kernel/efi.c | 1 + arch/ia64/kernel/efi.c | 4 + arch/x86/Kconfig | 4 + arch/x86/boot/compressed/eboot.c | 4 + arch/x86/include/uapi/asm/e820.h | 1 + arch/x86/kernel/e820.c | 28 +- arch/x86/kernel/pmem.c | 92 +- arch/x86/platform/efi/efi.c | 3 + drivers/acpi/Kconfig | 27 + drivers/acpi/Makefile | 1 + drivers/acpi/nfit.c | 1474 ++++++++++++++++++++++++++++++++ drivers/acpi/nfit.h | 160 ++++ drivers/block/Kconfig | 13 +- drivers/block/Makefile | 2 +- drivers/block/nd/Kconfig | 101 +++ drivers/block/nd/Makefile | 29 + drivers/block/nd/blk.c | 252 ++++++ drivers/block/nd/btt.c | 1438 +++++++++++++++++++++++++++++++ drivers/block/nd/btt.h | 186 ++++ drivers/block/nd/btt_devs.c | 443 ++++++++++ drivers/block/nd/bus.c | 770 +++++++++++++++++ drivers/block/nd/core.c | 472 ++++++++++ drivers/block/nd/dimm.c | 115 +++ drivers/block/nd/dimm_devs.c | 516 +++++++++++ drivers/block/nd/label.c | 922 ++++++++++++++++++++ drivers/block/nd/label.h | 143 ++++ drivers/block/nd/namespace_devs.c | 1702 +++++++++++++++++++++++++++++++++++++ drivers/block/nd/nd-private.h | 111 +++ drivers/block/nd/nd.h | 257 ++++++ drivers/block/{ => nd}/pmem.c | 107 ++- drivers/block/nd/region.c | 189 ++++ drivers/block/nd/region_devs.c | 667 +++++++++++++++ drivers/block/nd/test/Makefile | 5 + drivers/block/nd/test/iomap.c | 151 ++++ drivers/block/nd/test/nfit.c | 1171 +++++++++++++++++++++++++ drivers/block/nd/test/nfit_test.h | 28 + include/linux/efi.h | 3 +- include/linux/libnd.h | 129 +++ include/linux/nd.h | 98 +++ include/uapi/linux/Kbuild | 1 + include/uapi/linux/ndctl.h | 199 +++++ 44 files changed, 13046 insertions(+), 89 deletions(-) create mode 100644 Documentation/blockdev/btt.txt create mode 100644 Documentation/blockdev/libnd.txt create mode 100644 drivers/acpi/nfit.c create mode 100644 drivers/acpi/nfit.h create mode 100644 drivers/block/nd/Kconfig create mode 100644 drivers/block/nd/Makefile create mode 100644 drivers/block/nd/blk.c create mode 100644 drivers/block/nd/btt.c create mode 100644 drivers/block/nd/btt.h create mode 100644 drivers/block/nd/btt_devs.c create mode 100644 drivers/block/nd/bus.c create mode 100644 drivers/block/nd/core.c create mode 100644 drivers/block/nd/dimm.c create mode 100644 drivers/block/nd/dimm_devs.c create mode 100644 drivers/block/nd/label.c create mode 100644 drivers/block/nd/label.h create mode 100644 drivers/block/nd/namespace_devs.c create mode 100644 drivers/block/nd/nd-private.h create mode 100644 drivers/block/nd/nd.h rename drivers/block/{ => nd}/pmem.c (70%) create mode 100644 drivers/block/nd/region.c create mode 100644 drivers/block/nd/region_devs.c create mode 100644 drivers/block/nd/test/Makefile create mode 100644 drivers/block/nd/test/iomap.c create mode 100644 drivers/block/nd/test/nfit.c create mode 100644 drivers/block/nd/test/nfit_test.h create mode 100644 include/linux/libnd.h create mode 100644 include/linux/nd.h create mode 100644 include/uapi/linux/ndctl.h {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I