From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f45.google.com (mail-pa0-f45.google.com [209.85.220.45]) by kanga.kvack.org (Postfix) with ESMTP id F40B26B0253 for ; Wed, 23 Sep 2015 19:36:15 -0400 (EDT) Received: by pacex6 with SMTP id ex6so53784174pac.0 for ; Wed, 23 Sep 2015 16:36:15 -0700 (PDT) Received: from mga01.intel.com (mga01.intel.com. [192.55.52.88]) by mx.google.com with ESMTP id fi15si13961040pac.135.2015.09.23.16.36.14 for ; Wed, 23 Sep 2015 16:36:15 -0700 (PDT) From: "Williams, Dan J" Subject: Re: [PATCH 11/15] mm, dax, pmem: introduce __pfn_t Date: Wed, 23 Sep 2015 23:36:11 +0000 Message-ID: <1443051363.26918.6.camel@intel.com> References: <20150923043737.36490.70547.stgit@dwillia2-desk3.jf.intel.com> <20150923044211.36490.18084.stgit@dwillia2-desk3.jf.intel.com> <5602CD09.3080801@sr71.net> In-Reply-To: <5602CD09.3080801@sr71.net> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: owner-linux-mm@kvack.org List-ID: To: "dave@sr71.net" Cc: "kvm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , "hch@lst.de" , "akpm@linux-foundation.org" , "linux-nvdimm@lists.01.org" , "linux-fsdevel@vger.kernel.org" , "ross.zwisler@linux.intel.com" WyBhZGRpbmcga3ZtQHZnZXIua2VybmVsLm9yZyBdDQoNCk9uIFdlZCwgMjAxNS0wOS0yMyBhdCAw OTowMiAtMDcwMCwgRGF2ZSBIYW5zZW4gd3JvdGU6DQo+IE9uIDA5LzIyLzIwMTUgMDk6NDIgUE0s IERhbiBXaWxsaWFtcyB3cm90ZToNCj4gPiAgLyoNCj4gPiArICogX19wZm5fdDogZW5jYXBzdWxh dGVzIGEgcGFnZS1mcmFtZSBudW1iZXIgdGhhdCBpcyBvcHRpb25hbGx5IGJhY2tlZA0KPiA+ICsg KiBieSBtZW1tYXAgKHN0cnVjdCBwYWdlKS4gIFdoZXRoZXIgYSBfX3Bmbl90IGhhcyBhICdzdHJ1 Y3QgcGFnZScNCj4gPiArICogYmFja2luZyBpcyBpbmRpY2F0ZWQgYnkgZmxhZ3MgaW4gdGhlIGxv dyBiaXRzIG9mIHRoZSB2YWx1ZTsNCj4gPiArICovDQo+ID4gK3R5cGVkZWYgc3RydWN0IHsNCj4g PiArCXVuc2lnbmVkIGxvbmcgdmFsOw0KPiA+ICt9IF9fcGZuX3Q7DQo+ID4gKw0KPiA+ICsvKg0K PiA+ICsgKiBQRk5fU0dfQ0hBSU4gLSBwZm4gaXMgYSBwb2ludGVyIHRvIHRoZSBuZXh0IHNjYXR0 ZXJsaXN0IGVudHJ5DQo+ID4gKyAqIFBGTl9TR19MQVNUIC0gcGZuIHJlZmVyZW5jZXMgYSBwYWdl IGFuZCBpcyB0aGUgbGFzdCBzY2F0dGVybGlzdCBlbnRyeQ0KPiA+ICsgKiBQRk5fREVWIC0gcGZu IGlzIG5vdCBjb3ZlcmVkIGJ5IHN5c3RlbSBtZW1tYXAgYnkgZGVmYXVsdA0KPiA+ICsgKiBQRk5f TUFQIC0gcGZuIGhhcyBhIGR5bmFtaWMgcGFnZSBtYXBwaW5nIGVzdGFibGlzaGVkIGJ5IGEgZGV2 aWNlIGRyaXZlcg0KPiA+ICsgKi8NCj4gPiArZW51bSB7DQo+ID4gKwlQRk5fU0hJRlQgPSA0LA0K PiA+ICsJUEZOX01BU0sgPSAoMVVMIDw8IFBGTl9TSElGVCkgLSAxLA0KPiA+ICsJUEZOX1NHX0NI QUlOID0gKDFVTCA8PCAwKSwNCj4gPiArCVBGTl9TR19MQVNUID0gKDFVTCA8PCAxKSwNCj4gPiAr CVBGTl9ERVYgPSAoMVVMIDw8IDIpLA0KPiA+ICsJUEZOX01BUCA9ICgxVUwgPDwgMyksDQo+ID4g K307DQo+IA0KPiBQbGVhc2UgZm9yZ2l2ZSBhIGxpdHRsZSBiaWtlc2hlZGRpbmcgaGVyZS4uLg0K PiANCj4gV2h5IF9fcGZuX3Q/ICBCZWNhdXNlIHRoZSBLVk0gY29kZSBoYXMgYSBwZm5fdD8gIElm IHNvLCBJIHRoaW5rIHdlDQo+IHNob3VsZCByZXNjdWUgcGZuX3QgZnJvbSBLVk0gYW5kIGdpdmUg dGhlbSBhIGt2bV9wZm5fdC4NCg0KU291bmRzIGdvb2QsIG9uY2UgMGRheSBoYXMgYSBjaGFuY2Ug dG8gY2hldyBvbiB0aGUgY29udmVyc2lvbiBJJ2xsIHNlbmQNCml0IG91dC4NCg0KPiBJIHRoaW5r IHlvdSBzaG91bGQgZG8gb25lIG9mIHR3byB0aGluZ3M6ICBNYWtlIFBGTl9TSElGVCAxMiBzbyB0 aGF0IGENCj4gcGh5c2ljYWwgYWRkciBjYW4gYmUgc3RvcmVkIGluIGEgX19wZm5fdCB3aXRoIG5v IHdvcmsuICBPciwgdXNlIHRoZQ0KPiAqaGlnaCogMTIgYml0cyBvZiBfX3Bmbl90LnZhbC4NCj4g DQoNCnBmbiB0byBwZm5fdCBjb252ZXJzaW9ucyBhcmUgbW9yZSBsaWtlbHksIHNvIHRoZSBoaWdo IGJpdHMgc291bmRzDQpiZXR0ZXIuDQoNCj4gSWYgeW91IHVzZSB0aGUgaGlnaCBiaXRzLCAqYW5k KiBtYWtlIGl0IHN0b3JlIGEgcGxhaW4gcGZuIHdoZW4gYWxsIHRoZQ0KPiBiaXRzIGFyZSAwLCB0 aGVuIHlvdSBnZXQgYSB6ZXJvLWNvc3QgcGZuPC0+X19wZm5fdCBjb252ZXJzaW9uIHdoaWNoIHdp bGwNCj4gaG9wZWZ1bGx5IGdlbmVyYXRlIHRoZSBleGFjdCBzYW1lIGNvZGUgd2hpY2ggaXMgdGhl cmUgdG9kYXkuDQo+IA0KPiBUaGUgb25lIGRpc2FkdmFudGFnZSBoZXJlIGlzIHRoYXQgaXQgbWFr ZXMgaXQgbW9yZSBsaWtlbHkgdGhhdCBzb21lYm9keQ0KPiB0aGF0J3MganVzdCBzZXR0aW5nIF9f cGZuX3QudmFsPWZvbyB3aWxsIGdldCB0aGluZ3Mgc3VidGx5IHdyb25nDQo+IHNvbWVob3csIGJ1 dCB0aGF0IGl0IHdpbGwgd29yayBtb3N0IG9mIHRoZSB0aW1lLg0KPiANCj4gQWxzbywgYWJvdXQg bmFtaW5nLi4uICBQRk5fU0hJRlQgaXMgcHJldHR5IGF3ZnVsIG5hbWUgZm9yIHRoaXMuICBJdA0K PiBwcm9iYWJseSBuZWVkcyB0byBiZSBfX1BGTl9UX1NPTUVUSElORy4gIFdlIGRvbid0IHdhbnQg Zm9sa3MgZG9pbmcNCj4gY3JhemluZXNzIGxpa2U6DQo+IA0KPiAJdW5zaWduZWQgbG9uZyBwaHlz X2FkZHIgPSBwZm4gPDwgUEZOX1NISUZULg0KPiANCj4gV2hpY2ggKmxvb2tzKiBPSy4NCg0KSGVo LCB0cnVlLiAgSXQncyBub3cgUEZOX0ZMQUdTX01BU0sgaW4gdGhlIHJld29ya2VkIHBhdGNoLi4u DQoNCg0KODwtLS0NClN1YmplY3Q6IG1tLCBkYXgsIHBtZW06IGludHJvZHVjZSBwZm5fdA0KDQpG cm9tOiBEYW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4NCg0KSW4gcHJlcGFy YXRpb24gZm9yIGVuYWJsaW5nIGdldF91c2VyX3BhZ2VzKCkgb3BlcmF0aW9ucyBvbiBkYXggbWFw cGluZ3MsDQppbnRyb2R1Y2UgYSB0eXBlIHRoYXQgZW5jYXBzdWxhdGVzIGEgcGFnZS1mcmFtZS1u dW1iZXIgdGhhdCBjYW4gYWxzbyBiZQ0KdXNlZCB0byBlbmNvZGUgb3RoZXIgaW5mb3JtYXRpb24u ICBUaGlzIG90aGVyIGluZm9ybWF0aW9uIGlzIHRoZQ0KaGlzdG9yaWNhbCAicGFnZV9saW5rIiBl bmNvZGluZyBpbiBhIHNjYXR0ZXJsaXN0LCBidXQgY2FuIGFsc28gZGVub3RlDQoiZGV2aWNlIG1l bW9yeSIuICBXaGVyZSAiZGV2aWNlIG1lbW9yeSIgaXMgYSBzZXQgb2YgcGZucyB0aGF0IGFyZSBu b3QNCnBhcnQgb2YgdGhlIGtlcm5lbCdzIGxpbmVhciBtYXBwaW5nIGJ5IGRlZmF1bHQsIGJ1dCBh cmUgYWNjZXNzZWQgdmlhIHRoZQ0Kc2FtZSBtZW1vcnkgY29udHJvbGxlciBhcyByYW0uICBUaGUg bW90aXZhdGlvbiBmb3IgdGhpcyBuZXcgdHlwZSBpcw0KbGFyZ2UgY2FwYWNpdHkgcGVyc2lzdGVu dCBtZW1vcnkgdGhhdCBvcHRpb25hbGx5IGhhcyBzdHJ1Y3QgcGFnZSBlbnRyaWVzDQppbiB0aGUg J21lbW1hcCcuDQoNCldoZW4gYSBkcml2ZXIsIGxpa2UgcG1lbSwgaGFzIGVzdGFibGlzaGVkIGEg ZGV2bV9tZW1yZW1hcF9wYWdlcygpDQptYXBwaW5nIGl0IG5lZWRzIHRvIGNvbW11bmljYXRlIHRv IHVwcGVyIGxheWVycyB0aGF0IHRoZSBwZm4gaGFzIGEgcGFnZQ0KYmFja2luZy4gIFRoaXMgcHJv cGVydHkgd2lsbCBiZSBsZXZlcmFnZWQgaW4gYSBsYXRlciBwYXRjaCB0byBlbmFibGUNCmRheC1n dXAuICBGb3Igbm93LCB1cGRhdGUgYWxsIHRoZSAtPmRpcmVjdF9hY2Nlc3MoKSBpbXBsZW1lbnRh dGlvbnMgdG8NCmNvbW11bmljYXRlIHdoZXRoZXIgdGhlIHJldHVybmVkIHBmbiByYW5nZSBpcyBt YXBwZWQuDQoNCkNjOiBDaHJpc3RvcGggSGVsbHdpZyA8aGNoQGxzdC5kZT4NCkNjOiBEYXZlIEhh bnNlbiA8ZGF2ZUBzcjcxLm5ldD4NCkNjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5k YXRpb24ub3JnPg0KQ2M6IFJvc3MgWndpc2xlciA8cm9zcy56d2lzbGVyQGxpbnV4LmludGVsLmNv bT4NClNpZ25lZC1vZmYtYnk6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29t Pg0KLS0tDQogYXJjaC9wb3dlcnBjL3N5c2Rldi9heG9ucmFtLmMgfCAgICA4ICsrLS0tDQogZHJp dmVycy9ibG9jay9icmQuYyAgICAgICAgICAgfCAgICA0ICstLQ0KIGRyaXZlcnMvbnZkaW1tL3Bt ZW0uYyAgICAgICAgIHwgICAyNyArKysrKysrKystLS0tLS0tLQ0KIGRyaXZlcnMvczM5MC9ibG9j ay9kY3NzYmxrLmMgIHwgICAxMCArKystLS0NCiBmcy9ibG9ja19kZXYuYyAgICAgICAgICAgICAg ICB8ICAgIDIgKw0KIGZzL2RheC5jICAgICAgICAgICAgICAgICAgICAgIHwgICAyMyArKysrKysr Ky0tLS0tLS0NCiBpbmNsdWRlL2xpbnV4L2Jsa2Rldi5oICAgICAgICB8ICAgIDQgKy0tDQogaW5j bHVkZS9saW51eC9tbS5oICAgICAgICAgICAgfCAgIDY1ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrDQogaW5jbHVkZS9saW51eC9wZm4uaCAgICAgICAgICAgfCAgICA5 ICsrKysrKw0KIDkgZmlsZXMgY2hhbmdlZCwgMTEyIGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9u cygtKQ0KDQpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9heG9ucmFtLmMgYi9hcmNo L3Bvd2VycGMvc3lzZGV2L2F4b25yYW0uYw0KaW5kZXggMjRmZmFiMjU3MmU4Li5lYzNiMDcyZDIw Y2YgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMvc3lzZGV2L2F4b25yYW0uYw0KKysrIGIvYXJj aC9wb3dlcnBjL3N5c2Rldi9heG9ucmFtLmMNCkBAIC0xNDEsMTUgKzE0MSwxMyBAQCBheG9uX3Jh bV9tYWtlX3JlcXVlc3Qoc3RydWN0IHJlcXVlc3RfcXVldWUgKnF1ZXVlLCBzdHJ1Y3QgYmlvICpi aW8pDQogICovDQogc3RhdGljIGxvbmcNCiBheG9uX3JhbV9kaXJlY3RfYWNjZXNzKHN0cnVjdCBi bG9ja19kZXZpY2UgKmRldmljZSwgc2VjdG9yX3Qgc2VjdG9yLA0KLQkJICAgICAgIHZvaWQgX19w bWVtICoqa2FkZHIsIHVuc2lnbmVkIGxvbmcgKnBmbikNCisJCSAgICAgICB2b2lkIF9fcG1lbSAq KmthZGRyLCBwZm5fdCAqcGZuKQ0KIHsNCiAJc3RydWN0IGF4b25fcmFtX2JhbmsgKmJhbmsgPSBk ZXZpY2UtPmJkX2Rpc2stPnByaXZhdGVfZGF0YTsNCiAJbG9mZl90IG9mZnNldCA9IChsb2ZmX3Qp c2VjdG9yIDw8IEFYT05fUkFNX1NFQ1RPUl9TSElGVDsNCi0Jdm9pZCAqYWRkciA9ICh2b2lkICop KGJhbmstPnBoX2FkZHIgKyBvZmZzZXQpOw0KLQ0KLQkqa2FkZHIgPSAodm9pZCBfX3BtZW0gKilh ZGRyOw0KLQkqcGZuID0gdmlydF90b19waHlzKGFkZHIpID4+IFBBR0VfU0hJRlQ7DQogDQorCSpr YWRkciA9ICh2b2lkIF9fcG1lbSBfX2ZvcmNlICopIGJhbmstPmlvX2FkZHIgKyBvZmZzZXQ7DQor CSpwZm4gPSBwaHlzX3RvX3Bmbl90KGJhbmstPnBoX2FkZHIgKyBvZmZzZXQsIFBGTl9ERVYpOw0K IAlyZXR1cm4gYmFuay0+c2l6ZSAtIG9mZnNldDsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ibG9jay9icmQuYyBiL2RyaXZlcnMvYmxvY2svYnJkLmMNCmluZGV4IGY2NDVhNzFhZTgyNy4u Nzk2MTEyZTkxNzRiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ibG9jay9icmQuYw0KKysrIGIvZHJp dmVycy9ibG9jay9icmQuYw0KQEAgLTM3NCw3ICszNzQsNyBAQCBzdGF0aWMgaW50IGJyZF9yd19w YWdlKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHNlY3Rvcl90IHNlY3RvciwNCiANCiAjaWZk ZWYgQ09ORklHX0JMS19ERVZfUkFNX0RBWA0KIHN0YXRpYyBsb25nIGJyZF9kaXJlY3RfYWNjZXNz KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHNlY3Rvcl90IHNlY3RvciwNCi0JCQl2b2lkIF9f cG1lbSAqKmthZGRyLCB1bnNpZ25lZCBsb25nICpwZm4pDQorCQkJdm9pZCBfX3BtZW0gKiprYWRk ciwgcGZuX3QgKnBmbikNCiB7DQogCXN0cnVjdCBicmRfZGV2aWNlICpicmQgPSBiZGV2LT5iZF9k aXNrLT5wcml2YXRlX2RhdGE7DQogCXN0cnVjdCBwYWdlICpwYWdlOw0KQEAgLTM4NSw3ICszODUs NyBAQCBzdGF0aWMgbG9uZyBicmRfZGlyZWN0X2FjY2VzcyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpi ZGV2LCBzZWN0b3JfdCBzZWN0b3IsDQogCWlmICghcGFnZSkNCiAJCXJldHVybiAtRU5PU1BDOw0K IAkqa2FkZHIgPSAodm9pZCBfX3BtZW0gKilwYWdlX2FkZHJlc3MocGFnZSk7DQotCSpwZm4gPSBw YWdlX3RvX3BmbihwYWdlKTsNCisJKnBmbiA9IHBhZ2VfdG9fcGZuX3QocGFnZSk7DQogDQogCXJl dHVybiBQQUdFX1NJWkU7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZkaW1tL3BtZW0uYyBi L2RyaXZlcnMvbnZkaW1tL3BtZW0uYw0KaW5kZXggM2VlMDJhZjczYWQwLi5hZjgwYzhlYzJjYzkg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL252ZGltbS9wbWVtLmMNCisrKyBiL2RyaXZlcnMvbnZkaW1t L3BtZW0uYw0KQEAgLTM5LDYgKzM5LDcgQEAgc3RydWN0IHBtZW1fZGV2aWNlIHsNCiAJcGh5c19h ZGRyX3QJCXBoeXNfYWRkcjsNCiAJLyogd2hlbiBub24temVybyB0aGlzIGRldmljZSBpcyBob3N0 aW5nIGEgJ3BmbicgaW5zdGFuY2UgKi8NCiAJcGh5c19hZGRyX3QJCWRhdGFfb2Zmc2V0Ow0KKwl1 bnNpZ25lZCBsb25nCQlwZm5fZmxhZ3M7DQogCXZvaWQgX19wbWVtCQkqdmlydF9hZGRyOw0KIAlz aXplX3QJCQlzaXplOw0KIH07DQpAQCAtMTA4LDI1ICsxMDksMjIgQEAgc3RhdGljIGludCBwbWVt X3J3X3BhZ2Uoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgc2VjdG9yX3Qgc2VjdG9yLA0KIH0N CiANCiBzdGF0aWMgbG9uZyBwbWVtX2RpcmVjdF9hY2Nlc3Moc3RydWN0IGJsb2NrX2RldmljZSAq YmRldiwgc2VjdG9yX3Qgc2VjdG9yLA0KLQkJICAgICAgdm9pZCBfX3BtZW0gKiprYWRkciwgdW5z aWduZWQgbG9uZyAqcGZuKQ0KKwkJICAgICAgdm9pZCBfX3BtZW0gKiprYWRkciwgcGZuX3QgKnBm bikNCiB7DQogCXN0cnVjdCBwbWVtX2RldmljZSAqcG1lbSA9IGJkZXYtPmJkX2Rpc2stPnByaXZh dGVfZGF0YTsNCiAJcmVzb3VyY2Vfc2l6ZV90IG9mZnNldCA9IHNlY3RvciAqIDUxMiArIHBtZW0t PmRhdGFfb2Zmc2V0Ow0KLQlyZXNvdXJjZV9zaXplX3Qgc2l6ZTsNCisJcmVzb3VyY2Vfc2l6ZV90 IHNpemUgPSBwbWVtLT5zaXplIC0gb2Zmc2V0Ow0KIA0KLQlpZiAocG1lbS0+ZGF0YV9vZmZzZXQp IHsNCisJKmthZGRyID0gcG1lbS0+dmlydF9hZGRyICsgb2Zmc2V0Ow0KKwkqcGZuID0gcGh5c190 b19wZm5fdChwbWVtLT5waHlzX2FkZHIgKyBvZmZzZXQsIHBtZW0tPnBmbl9mbGFncyk7DQorDQor CWlmIChwZm5fdF9oYXNfcGFnZSgqcGZuKSkgew0KIAkJLyoNCiAJCSAqIExpbWl0IHRoZSBkaXJl Y3RfYWNjZXNzKCkgc2l6ZSB0byB3aGF0IGlzIGNvdmVyZWQgYnkNCiAJCSAqIHRoZSBtZW1tYXAN CiAJCSAqLw0KLQkJc2l6ZSA9IChwbWVtLT5zaXplIC0gb2Zmc2V0KSAmIH5ORF9QRk5fTUFTSzsN Ci0JfSBlbHNlDQotCQlzaXplID0gcG1lbS0+c2l6ZSAtIG9mZnNldDsNCi0NCi0JLyogRklYTUUg Y29udmVydCBEQVggdG8gY29tcHJlaGVuZCB0aGF0IHRoaXMgbWFwcGluZyBoYXMgYSBsaWZldGlt ZSAqLw0KLQkqa2FkZHIgPSBwbWVtLT52aXJ0X2FkZHIgKyBvZmZzZXQ7DQotCSpwZm4gPSAocG1l bS0+cGh5c19hZGRyICsgb2Zmc2V0KSA+PiBQQUdFX1NISUZUOw0KLQ0KKwkJc2l6ZSAmPSB+TkRf UEZOX01BU0s7DQorCX0NCiAJcmV0dXJuIHNpemU7DQogfQ0KIA0KQEAgLTE1OCw5ICsxNTYsMTEg QEAgc3RhdGljIHN0cnVjdCBwbWVtX2RldmljZSAqcG1lbV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpk ZXYsDQogCQlyZXR1cm4gRVJSX1BUUigtRUJVU1kpOw0KIAl9DQogDQotCWlmIChwbWVtX3Nob3Vs ZF9tYXBfcGFnZXMoZGV2KSkNCisJcG1lbS0+cGZuX2ZsYWdzID0gUEZOX0RFVjsNCisJaWYgKHBt ZW1fc2hvdWxkX21hcF9wYWdlcyhkZXYpKSB7DQogCQlwbWVtLT52aXJ0X2FkZHIgPSAodm9pZCBf X3BtZW0gKikgZGV2bV9tZW1yZW1hcF9wYWdlcyhkZXYsIHJlcyk7DQotCWVsc2UNCisJCXBtZW0t PnBmbl9mbGFncyB8PSBQRk5fTUFQOw0KKwl9IGVsc2UNCiAJCXBtZW0tPnZpcnRfYWRkciA9ICh2 b2lkIF9fcG1lbSAqKSBkZXZtX21lbXJlbWFwKGRldiwNCiAJCQkJcG1lbS0+cGh5c19hZGRyLCBw bWVtLT5zaXplLA0KIAkJCQlBUkNIX01FTVJFTUFQX1BNRU0pOw0KQEAgLTM3MSw2ICszNzEsNyBA QCBzdGF0aWMgaW50IG52ZGltbV9uYW1lc3BhY2VfYXR0YWNoX3BmbihzdHJ1Y3QgbmRfbmFtZXNw YWNlX2NvbW1vbiAqbmRucykNCiAJcG1lbSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KIAlkZXZt X21lbXVubWFwKGRldiwgKHZvaWQgX19mb3JjZSAqKSBwbWVtLT52aXJ0X2FkZHIpOw0KIAlwbWVt LT52aXJ0X2FkZHIgPSAodm9pZCBfX3BtZW0gKikgZGV2bV9tZW1yZW1hcF9wYWdlcyhkZXYsICZu c2lvLT5yZXMpOw0KKwlwbWVtLT5wZm5fZmxhZ3MgfD0gUEZOX01BUDsNCiAJaWYgKElTX0VSUihw bWVtLT52aXJ0X2FkZHIpKSB7DQogCQlyYyA9IFBUUl9FUlIocG1lbS0+dmlydF9hZGRyKTsNCiAJ CWdvdG8gZXJyOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9ibG9jay9kY3NzYmxrLmMgYi9k cml2ZXJzL3MzOTAvYmxvY2svZGNzc2Jsay5jDQppbmRleCBjMjEyY2U5MjVlZTYuLmYzNWQ2Yzhm NWZiYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kY3NzYmxrLmMNCisrKyBiL2Ry aXZlcnMvczM5MC9ibG9jay9kY3NzYmxrLmMNCkBAIC0yOSw3ICsyOSw3IEBAIHN0YXRpYyBpbnQg ZGNzc2Jsa19vcGVuKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIGZtb2RlX3QgbW9kZSk7DQog c3RhdGljIHZvaWQgZGNzc2Jsa19yZWxlYXNlKHN0cnVjdCBnZW5kaXNrICpkaXNrLCBmbW9kZV90 IG1vZGUpOw0KIHN0YXRpYyB2b2lkIGRjc3NibGtfbWFrZV9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0 X3F1ZXVlICpxLCBzdHJ1Y3QgYmlvICpiaW8pOw0KIHN0YXRpYyBsb25nIGRjc3NibGtfZGlyZWN0 X2FjY2VzcyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzZWN0b3JfdCBzZWNudW0sDQotCQkJ IHZvaWQgX19wbWVtICoqa2FkZHIsIHVuc2lnbmVkIGxvbmcgKnBmbik7DQorCQkJIHZvaWQgX19w bWVtICoqa2FkZHIsIHBmbl90ICpwZm4pOw0KIA0KIHN0YXRpYyBjaGFyIGRjc3NibGtfc2VnbWVu dHNbRENTU0JMS19QQVJNX0xFTl0gPSAiXDAiOw0KIA0KQEAgLTg4MSwyMCArODgxLDE4IEBAIGZh aWw6DQogDQogc3RhdGljIGxvbmcNCiBkY3NzYmxrX2RpcmVjdF9hY2Nlc3MgKHN0cnVjdCBibG9j a19kZXZpY2UgKmJkZXYsIHNlY3Rvcl90IHNlY251bSwNCi0JCQl2b2lkIF9fcG1lbSAqKmthZGRy LCB1bnNpZ25lZCBsb25nICpwZm4pDQorCQkJdm9pZCBfX3BtZW0gKiprYWRkciwgcGZuX3QgKnBm bikNCiB7DQogCXN0cnVjdCBkY3NzYmxrX2Rldl9pbmZvICpkZXZfaW5mbzsNCiAJdW5zaWduZWQg bG9uZyBvZmZzZXQsIGRldl9zejsNCi0Jdm9pZCAqYWRkcjsNCiANCiAJZGV2X2luZm8gPSBiZGV2 LT5iZF9kaXNrLT5wcml2YXRlX2RhdGE7DQogCWlmICghZGV2X2luZm8pDQogCQlyZXR1cm4gLUVO T0RFVjsNCiAJZGV2X3N6ID0gZGV2X2luZm8tPmVuZCAtIGRldl9pbmZvLT5zdGFydDsNCiAJb2Zm c2V0ID0gc2VjbnVtICogNTEyOw0KLQlhZGRyID0gKHZvaWQgKikgKGRldl9pbmZvLT5zdGFydCAr IG9mZnNldCk7DQotCSpwZm4gPSB2aXJ0X3RvX3BoeXMoYWRkcikgPj4gUEFHRV9TSElGVDsNCi0J KmthZGRyID0gKHZvaWQgX19wbWVtICopIGFkZHI7DQorCSprYWRkciA9ICh2b2lkIF9fcG1lbSAq KSAoZGV2X2luZm8tPnN0YXJ0ICsgb2Zmc2V0KTsNCisJKnBmbiA9IHBoeXNfdG9fcGZuX3QoZGV2 X2luZm8tPnN0YXJ0ICsgb2Zmc2V0LCBQRk5fREVWKTsNCiANCiAJcmV0dXJuIGRldl9zeiAtIG9m ZnNldDsNCiB9DQpkaWZmIC0tZ2l0IGEvZnMvYmxvY2tfZGV2LmMgYi9mcy9ibG9ja19kZXYuYw0K aW5kZXggMDczYmI1N2FkYWIxLi5jMzdhMTkzNjk1ZDQgMTAwNjQ0DQotLS0gYS9mcy9ibG9ja19k ZXYuYw0KKysrIGIvZnMvYmxvY2tfZGV2LmMNCkBAIC00NDIsNyArNDQyLDcgQEAgRVhQT1JUX1NZ TUJPTF9HUEwoYmRldl93cml0ZV9wYWdlKTsNCiAgKiBhY2Nlc3NpYmxlIGF0IHRoaXMgYWRkcmVz cy4NCiAgKi8NCiBsb25nIGJkZXZfZGlyZWN0X2FjY2VzcyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpi ZGV2LCBzZWN0b3JfdCBzZWN0b3IsDQotCQkJdm9pZCBfX3BtZW0gKiphZGRyLCB1bnNpZ25lZCBs b25nICpwZm4sIGxvbmcgc2l6ZSkNCisJCQl2b2lkIF9fcG1lbSAqKmFkZHIsIHBmbl90ICpwZm4s IGxvbmcgc2l6ZSkNCiB7DQogCWxvbmcgYXZhaWw7DQogCWNvbnN0IHN0cnVjdCBibG9ja19kZXZp Y2Vfb3BlcmF0aW9ucyAqb3BzID0gYmRldi0+YmRfZGlzay0+Zm9wczsNCmRpZmYgLS1naXQgYS9m cy9kYXguYyBiL2ZzL2RheC5jDQppbmRleCAzNThlZWEzOWU5ODIuLjdiZDgxYjQ4YTcxZCAxMDA2 NDQNCi0tLSBhL2ZzL2RheC5jDQorKysgYi9mcy9kYXguYw0KQEAgLTM3LDcgKzM3LDcgQEAgaW50 IGRheF9jbGVhcl9ibG9ja3Moc3RydWN0IGlub2RlICppbm9kZSwgc2VjdG9yX3QgYmxvY2ssIGxv bmcgc2l6ZSkNCiAJbWlnaHRfc2xlZXAoKTsNCiAJZG8gew0KIAkJdm9pZCBfX3BtZW0gKmFkZHI7 DQotCQl1bnNpZ25lZCBsb25nIHBmbjsNCisJCXBmbl90IHBmbjsNCiAJCWxvbmcgY291bnQ7DQog DQogCQljb3VudCA9IGJkZXZfZGlyZWN0X2FjY2VzcyhiZGV2LCBzZWN0b3IsICZhZGRyLCAmcGZu LCBzaXplKTsNCkBAIC02NCw3ICs2NCw3IEBAIGludCBkYXhfY2xlYXJfYmxvY2tzKHN0cnVjdCBp bm9kZSAqaW5vZGUsIHNlY3Rvcl90IGJsb2NrLCBsb25nIHNpemUpDQogRVhQT1JUX1NZTUJPTF9H UEwoZGF4X2NsZWFyX2Jsb2Nrcyk7DQogDQogc3RhdGljIHZvaWQgX19wbWVtICpfX2RheF9tYXBf YmgoY29uc3Qgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCwgdW5zaWduZWQgYmxrYml0cywNCi0JCXVu c2lnbmVkIGxvbmcgKnBmbiwgbG9uZyAqbGVuKQ0KKwkJcGZuX3QgKnBmbiwgbG9uZyAqbGVuKQ0K IHsNCiAJbG9uZyByYzsNCiAJdm9pZCBfX3BtZW0gKmFkZHI7DQpAQCAtODcsNyArODcsNyBAQCBz dGF0aWMgdm9pZCBfX3BtZW0gKl9fZGF4X21hcF9iaChjb25zdCBzdHJ1Y3QgYnVmZmVyX2hlYWQg KmJoLCB1bnNpZ25lZCBibGtiaXRzLA0KIA0KIHN0YXRpYyB2b2lkIF9fcG1lbSAqZGF4X21hcF9i aChjb25zdCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCB1bnNpZ25lZCBibGtiaXRzKQ0KIHsNCi0J dW5zaWduZWQgbG9uZyBwZm47DQorCXBmbl90IHBmbjsNCiANCiAJcmV0dXJuIF9fZGF4X21hcF9i aChiaCwgYmxrYml0cywgJnBmbiwgTlVMTCk7DQogfQ0KQEAgLTEzOCw3ICsxMzgsNyBAQCBzdGF0 aWMgc3NpemVfdCBkYXhfaW8oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGlvdl9pdGVyICpp dGVyLA0KIAlsb2ZmX3QgcG9zID0gc3RhcnQsIG1heCA9IHN0YXJ0LCBiaF9tYXggPSBzdGFydDsN CiAJaW50IHJ3ID0gaW92X2l0ZXJfcncoaXRlciksIHJjOw0KIAlsb25nIG1hcF9sZW4gPSAwOw0K LQl1bnNpZ25lZCBsb25nIHBmbjsNCisJcGZuX3QgcGZuOw0KIAl2b2lkIF9fcG1lbSAqYWRkciA9 IE5VTEw7DQogCXZvaWQgX19wbWVtICprbWFwID0gKHZvaWQgX19wbWVtICopIEVSUl9QVFIoLUVJ Tyk7DQogCWJvb2wgaG9sZSA9IGZhbHNlOw0KQEAgLTMyNCw5ICszMjQsOSBAQCBzdGF0aWMgaW50 IGRheF9pbnNlcnRfbWFwcGluZyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgYnVmZmVyX2hl YWQgKmJoLA0KIAkJCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fZmF1bHQg KnZtZikNCiB7DQogCXVuc2lnbmVkIGxvbmcgdmFkZHIgPSAodW5zaWduZWQgbG9uZyl2bWYtPnZp cnR1YWxfYWRkcmVzczsNCi0JdW5zaWduZWQgbG9uZyBwZm47DQogCXZvaWQgX19wbWVtICphZGRy Ow0KIAlwZ29mZl90IHNpemU7DQorCXBmbl90IHBmbjsNCiAJaW50IGVycm9yOw0KIA0KIAkvKg0K QEAgLTM1NCw3ICszNTQsNyBAQCBzdGF0aWMgaW50IGRheF9pbnNlcnRfbWFwcGluZyhzdHJ1Y3Qg aW5vZGUgKmlub2RlLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLA0KIAl9DQogCWRheF91bm1hcF9i aChiaCwgYWRkcik7DQogDQotCWVycm9yID0gdm1faW5zZXJ0X21peGVkKHZtYSwgdmFkZHIsIHBm bik7DQorCWVycm9yID0gdm1faW5zZXJ0X21peGVkKHZtYSwgdmFkZHIsIHBmbl90X3RvX3Bmbihw Zm4pKTsNCiANCiAgb3V0Og0KIAlyZXR1cm4gZXJyb3I7DQpAQCAtNjA0LDcgKzYwNCw3IEBAIGlu dCBfX2RheF9wbWRfZmF1bHQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxv bmcgYWRkcmVzcywNCiAJaWYgKGJ1ZmZlcl91bndyaXR0ZW4oJmJoKSB8fCBidWZmZXJfbmV3KCZi aCkpIHsNCiAJCWludCBpOw0KIAkJbG9uZyBsZW5ndGg7DQotCQl1bnNpZ25lZCBsb25nIHBmbjsN CisJCXBmbl90IHBmbjsNCiAJCXZvaWQgX19wbWVtICprYWRkciA9IF9fZGF4X21hcF9iaCgmYmgs IGJsa2JpdHMsICZwZm4sICZsZW5ndGgpOw0KIA0KIAkJaWYgKElTX0VSUihrYWRkcikpIHsNCkBA IC02MTIsNyArNjEyLDcgQEAgaW50IF9fZGF4X3BtZF9mYXVsdChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLA0KIAkJCWdvdG8gb3V0Ow0KIAkJfQ0KIA0K LQkJaWYgKChsZW5ndGggPCBQTURfU0laRSkgfHwgKHBmbiAmIFBHX1BNRF9DT0xPVVIpKQ0KKwkJ aWYgKChsZW5ndGggPCBQTURfU0laRSkgfHwgKHBmbl90X3RvX3BmbihwZm4pICYgUEdfUE1EX0NP TE9VUikpDQogCQkJZ290byBmYWxsYmFjazsNCiANCiAJCWZvciAoaSA9IDA7IGkgPCBQVFJTX1BF Ul9QTUQ7IGkrKykNCkBAIC02NjgsOCArNjY4LDggQEAgaW50IF9fZGF4X3BtZF9mYXVsdChzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLA0KIAkJcmVzdWx0 ID0gVk1fRkFVTFRfTk9QQUdFOw0KIAkJc3Bpbl91bmxvY2socHRsKTsNCiAJfSBlbHNlIHsNCisJ CXBmbl90IHBmbjsNCiAJCWxvbmcgbGVuZ3RoOw0KLQkJdW5zaWduZWQgbG9uZyBwZm47DQogCQl2 b2lkIF9fcG1lbSAqa2FkZHIgPSBfX2RheF9tYXBfYmgoJmJoLCBibGtiaXRzLCAmcGZuLCAmbGVu Z3RoKTsNCiANCiAJCWlmIChJU19FUlIoa2FkZHIpKSB7DQpAQCAtNjc3LDEwICs2NzcsMTEgQEAg aW50IF9fZGF4X3BtZF9mYXVsdChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQg bG9uZyBhZGRyZXNzLA0KIAkJCWdvdG8gb3V0Ow0KIAkJfQ0KIAkJZGF4X3VubWFwX2JoKCZiaCwg a2FkZHIpOw0KLQkJaWYgKChsZW5ndGggPCBQTURfU0laRSkgfHwgKHBmbiAmIFBHX1BNRF9DT0xP VVIpKQ0KKwkJaWYgKChsZW5ndGggPCBQTURfU0laRSkgfHwgKHBmbl90X3RvX3BmbihwZm4pICYg UEdfUE1EX0NPTE9VUikpDQogCQkJZ290byBmYWxsYmFjazsNCiANCi0JCXJlc3VsdCB8PSB2bWZf aW5zZXJ0X3Bmbl9wbWQodm1hLCBhZGRyZXNzLCBwbWQsIHBmbiwgd3JpdGUpOw0KKwkJcmVzdWx0 IHw9IHZtZl9pbnNlcnRfcGZuX3BtZCh2bWEsIGFkZHJlc3MsIHBtZCwNCisJCQkJcGZuX3RfdG9f cGZuKHBmbiksIHdyaXRlKTsNCiAJfQ0KIA0KICBvdXQ6DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9ibGtkZXYuaCBiL2luY2x1ZGUvbGludXgvYmxrZGV2LmgNCmluZGV4IDM2M2Q3ZGY4ZDY1 Yy4uMGJlOGRiYjk4MmYzIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9ibGtkZXYuaA0KKysr IGIvaW5jbHVkZS9saW51eC9ibGtkZXYuaA0KQEAgLTE2MzQsNyArMTYzNCw3IEBAIHN0cnVjdCBi bG9ja19kZXZpY2Vfb3BlcmF0aW9ucyB7DQogCWludCAoKmlvY3RsKSAoc3RydWN0IGJsb2NrX2Rl dmljZSAqLCBmbW9kZV90LCB1bnNpZ25lZCwgdW5zaWduZWQgbG9uZyk7DQogCWludCAoKmNvbXBh dF9pb2N0bCkgKHN0cnVjdCBibG9ja19kZXZpY2UgKiwgZm1vZGVfdCwgdW5zaWduZWQsIHVuc2ln bmVkIGxvbmcpOw0KIAlsb25nICgqZGlyZWN0X2FjY2Vzcykoc3RydWN0IGJsb2NrX2RldmljZSAq LCBzZWN0b3JfdCwgdm9pZCBfX3BtZW0gKiosDQotCQkJdW5zaWduZWQgbG9uZyAqcGZuKTsNCisJ CQlwZm5fdCAqKTsNCiAJdW5zaWduZWQgaW50ICgqY2hlY2tfZXZlbnRzKSAoc3RydWN0IGdlbmRp c2sgKmRpc2ssDQogCQkJCSAgICAgIHVuc2lnbmVkIGludCBjbGVhcmluZyk7DQogCS8qIC0+bWVk aWFfY2hhbmdlZCgpIGlzIERFUFJFQ0FURUQsIHVzZSAtPmNoZWNrX2V2ZW50cygpIGluc3RlYWQg Ki8NCkBAIC0xNjUzLDcgKzE2NTMsNyBAQCBleHRlcm4gaW50IGJkZXZfcmVhZF9wYWdlKHN0cnVj dCBibG9ja19kZXZpY2UgKiwgc2VjdG9yX3QsIHN0cnVjdCBwYWdlICopOw0KIGV4dGVybiBpbnQg YmRldl93cml0ZV9wYWdlKHN0cnVjdCBibG9ja19kZXZpY2UgKiwgc2VjdG9yX3QsIHN0cnVjdCBw YWdlICosDQogCQkJCQkJc3RydWN0IHdyaXRlYmFja19jb250cm9sICopOw0KIGV4dGVybiBsb25n IGJkZXZfZGlyZWN0X2FjY2VzcyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICosIHNlY3Rvcl90LA0KLQkJ dm9pZCBfX3BtZW0gKiphZGRyLCB1bnNpZ25lZCBsb25nICpwZm4sIGxvbmcgc2l6ZSk7DQorCQl2 b2lkIF9fcG1lbSAqKmFkZHIsIHBmbl90ICpwZm4sIGxvbmcgc2l6ZSk7DQogI2Vsc2UgLyogQ09O RklHX0JMT0NLICovDQogDQogc3RydWN0IGJsb2NrX2RldmljZTsNCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L21tLmggYi9pbmNsdWRlL2xpbnV4L21tLmgNCmluZGV4IDkxYzA4ZjZmMGRjOS4u YWJlNjBlYWRjOGFlIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9tbS5oDQorKysgYi9pbmNs dWRlL2xpbnV4L21tLmgNCkBAIC05MDYsNiArOTA2LDcxIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBz ZXRfcGFnZV9saW5rcyhzdHJ1Y3QgcGFnZSAqcGFnZSwgZW51bSB6b25lX3R5cGUgem9uZSwNCiB9 DQogDQogLyoNCisgKiBQRk5fRkxBR1NfTUFTSyAtIG1hc2sgb2YgYWxsIHRoZSBwb3NzaWJsZSB2 YWxpZCBwZm5fdCBmbGFncw0KKyAqIFBGTl9TR19DSEFJTiAtIHBmbiBpcyBhIHBvaW50ZXIgdG8g dGhlIG5leHQgc2NhdHRlcmxpc3QgZW50cnkNCisgKiBQRk5fU0dfTEFTVCAtIHBmbiByZWZlcmVu Y2VzIGEgcGFnZSBhbmQgaXMgdGhlIGxhc3Qgc2NhdHRlcmxpc3QgZW50cnkNCisgKiBQRk5fREVW IC0gcGZuIGlzIG5vdCBjb3ZlcmVkIGJ5IHN5c3RlbSBtZW1tYXAgYnkgZGVmYXVsdA0KKyAqIFBG Tl9NQVAgLSBwZm4gaGFzIGEgZHluYW1pYyBwYWdlIG1hcHBpbmcgZXN0YWJsaXNoZWQgYnkgYSBk ZXZpY2UgZHJpdmVyDQorICovDQorI2RlZmluZSBQRk5fRkxBR1NfTUFTSyAoflBBR0VfTUFTSyA8 PCAoQklUU19QRVJfTE9ORyAtIFBBR0VfU0hJRlQpKQ0KKyNkZWZpbmUgUEZOX1NHX0NIQUlOICgx VUwgPDwgKEJJVFNfUEVSX0xPTkcgLSAxKSkNCisjZGVmaW5lIFBGTl9TR19MQVNUICgxVUwgPDwg KEJJVFNfUEVSX0xPTkcgLSAyKSkNCisjZGVmaW5lIFBGTl9ERVYgKDFVTCA8PCAoQklUU19QRVJf TE9ORyAtIDMpKQ0KKyNkZWZpbmUgUEZOX01BUCAoMVVMIDw8IChCSVRTX1BFUl9MT05HIC0gNCkp DQorDQorc3RhdGljIGlubGluZSBwZm5fdCBfX3Bmbl90b19wZm5fdCh1bnNpZ25lZCBsb25nIHBm biwgdW5zaWduZWQgbG9uZyBmbGFncykNCit7DQorCXBmbl90IHBmbl90ID0geyAudmFsID0gcGZu IHwgKGZsYWdzICYgUEZOX0ZMQUdTX01BU0spLCB9Ow0KKw0KKwlyZXR1cm4gcGZuX3Q7DQorfQ0K Kw0KKy8qIGEgZGVmYXVsdCBwZm4gdG8gcGZuX3QgY29udmVyc2lvbiBhc3N1bWVzIHRoYXQgQHBm biBpcyBwZm5fdmFsaWQoKSAqLw0KK3N0YXRpYyBpbmxpbmUgcGZuX3QgcGZuX3RvX3Bmbl90KHVu c2lnbmVkIGxvbmcgcGZuKQ0KK3sNCisJcmV0dXJuIF9fcGZuX3RvX3Bmbl90KHBmbiwgMCk7DQor fQ0KKw0KK3N0YXRpYyBpbmxpbmUgcGZuX3QgcGh5c190b19wZm5fdChkbWFfYWRkcl90IGFkZHIs IHVuc2lnbmVkIGxvbmcgZmxhZ3MpDQorew0KKwlyZXR1cm4gX19wZm5fdG9fcGZuX3QoYWRkciA+ PiBQQUdFX1NISUZULCBmbGFncyk7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgYm9vbCBwZm5fdF9o YXNfcGFnZShwZm5fdCBwZm4pDQorew0KKwlyZXR1cm4gKHBmbi52YWwgJiBQRk5fTUFQKSA9PSBQ Rk5fTUFQIHx8IChwZm4udmFsICYgUEZOX0RFVikgPT0gMDsNCit9DQorDQorc3RhdGljIGlubGlu ZSB1bnNpZ25lZCBsb25nIHBmbl90X3RvX3BmbihwZm5fdCBwZm4pDQorew0KKwlyZXR1cm4gcGZu LnZhbCAmIH5QRk5fRkxBR1NfTUFTSzsNCit9DQorDQorc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFn ZSAqcGZuX3RfdG9fcGFnZShwZm5fdCBwZm4pDQorew0KKwlpZiAocGZuX3RfaGFzX3BhZ2UocGZu KSkNCisJCXJldHVybiBwZm5fdG9fcGFnZShwZm5fdF90b19wZm4ocGZuKSk7DQorCXJldHVybiBO VUxMOw0KK30NCisNCitzdGF0aWMgaW5saW5lIGRtYV9hZGRyX3QgcGZuX3RfdG9fcGh5cyhwZm5f dCBwZm4pDQorew0KKwlyZXR1cm4gUEZOX1BIWVMocGZuX3RfdG9fcGZuKHBmbikpOw0KK30NCisN CitzdGF0aWMgaW5saW5lIHZvaWQgKnBmbl90X3RvX3ZpcnQocGZuX3QgcGZuKQ0KK3sNCisJaWYg KHBmbl90X2hhc19wYWdlKHBmbikpDQorCQlyZXR1cm4gX192YShwZm5fdF90b19waHlzKHBmbikp Ow0KKwlyZXR1cm4gTlVMTDsNCit9DQorDQorc3RhdGljIGlubGluZSBwZm5fdCBwYWdlX3RvX3Bm bl90KHN0cnVjdCBwYWdlICpwYWdlKQ0KK3sNCisJcmV0dXJuIHBmbl90b19wZm5fdChwYWdlX3Rv X3BmbihwYWdlKSk7DQorfQ0KKw0KKy8qDQogICogU29tZSBpbmxpbmUgZnVuY3Rpb25zIGluIHZt c3RhdC5oIGRlcGVuZCBvbiBwYWdlX3pvbmUoKQ0KICAqLw0KICNpbmNsdWRlIDxsaW51eC92bXN0 YXQuaD4NCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Bmbi5oIGIvaW5jbHVkZS9saW51eC9w Zm4uaA0KaW5kZXggNzY0NjYzNzIyMWYzLi45NmRmODU5ODVmMTYgMTAwNjQ0DQotLS0gYS9pbmNs dWRlL2xpbnV4L3Bmbi5oDQorKysgYi9pbmNsdWRlL2xpbnV4L3Bmbi5oDQpAQCAtMyw2ICszLDE1 IEBADQogDQogI2lmbmRlZiBfX0FTU0VNQkxZX18NCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4N CisNCisvKg0KKyAqIHBmbl90OiBlbmNhcHN1bGF0ZXMgYSBwYWdlLWZyYW1lIG51bWJlciB0aGF0 IGlzIG9wdGlvbmFsbHkgYmFja2VkDQorICogYnkgbWVtbWFwIChzdHJ1Y3QgcGFnZSkuICBXaGV0 aGVyIGEgcGZuX3QgaGFzIGEgJ3N0cnVjdCBwYWdlJw0KKyAqIGJhY2tpbmcgaXMgaW5kaWNhdGVk IGJ5IGZsYWdzIGluIHRoZSBoaWdoIGJpdHMgb2YgdGhlIHZhbHVlLg0KKyAqLw0KK3R5cGVkZWYg c3RydWN0IHsNCisJdW5zaWduZWQgbG9uZyB2YWw7DQorfSBwZm5fdDsNCiAjZW5kaWYNCiANCiAj ZGVmaW5lIFBGTl9BTElHTih4KQkoKCh1bnNpZ25lZCBsb25nKSh4KSArIChQQUdFX1NJWkUgLSAx KSkgJiBQQUdFX01BU0spDQoNCg0K -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org