From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot0-x243.google.com (mail-ot0-x243.google.com [IPv6:2607:f8b0:4003:c0f::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A2F4B203B85AB for ; Wed, 16 May 2018 00:20:25 -0700 (PDT) Received: by mail-ot0-x243.google.com with SMTP id i5-v6so3277339otf.1 for ; Wed, 16 May 2018 00:20:25 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <152461279341.17530.15922380333372355441.stgit@dwillia2-desk3.amr.corp.intel.com> References: <152461278149.17530.2867511144531572045.stgit@dwillia2-desk3.amr.corp.intel.com> <152461279341.17530.15922380333372355441.stgit@dwillia2-desk3.amr.corp.intel.com> From: Dan Williams Date: Wed, 16 May 2018 00:20:23 -0700 Message-ID: Subject: Re: [PATCH v9 2/9] mm, dax: enable filesystems to trigger dev_pagemap ->page_free callbacks List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-nvdimm-bounces@lists.01.org Sender: "Linux-nvdimm" To: linux-nvdimm Cc: Michal Hocko , Jan Kara , david , linux-xfs , Linux MM , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , linux-fsdevel , Christoph Hellwig List-ID: T24gVHVlLCBBcHIgMjQsIDIwMTggYXQgNDozMyBQTSwgRGFuIFdpbGxpYW1zIDxkYW4uai53aWxs aWFtc0BpbnRlbC5jb20+IHdyb3RlOgo+IEluIG9yZGVyIHRvIHJlc29sdmUgY29sbGlzaW9ucyBi ZXR3ZWVuIGZpbGVzeXN0ZW0gb3BlcmF0aW9ucyBhbmQgRE1BIHRvCj4gREFYIG1hcHBlZCBwYWdl cyB3ZSBuZWVkIGEgY2FsbGJhY2sgd2hlbiBETUEgY29tcGxldGVzLiBXaXRoIGEgY2FsbGJhY2sK PiB3ZSBjYW4gaG9sZCBvZmYgZmlsZXN5c3RlbSBvcGVyYXRpb25zIHdoaWxlIERNQSBpcyBpbi1m bGlnaHQgYW5kIHRoZW4KPiByZXN1bWUgdGhvc2Ugb3BlcmF0aW9ucyB3aGVuIHRoZSBsYXN0IHB1 dF9wYWdlKCkgb2NjdXJzIG9uIGEgRE1BIHBhZ2UuCj4KPiBSZWNhbGwgdGhhdCB0aGUgJ3N0cnVj dCBwYWdlJyBlbnRyaWVzIGZvciBEQVggbWVtb3J5IGFyZSBjcmVhdGVkIHdpdGgKPiBkZXZtX21l bXJlbWFwX3BhZ2VzKCkuIFRoYXQgcm91dGluZSBhcnJhbmdlcyBmb3IgdGhlIHBhZ2VzIHRvIGJl Cj4gYWxsb2NhdGVkLCBidXQgbmV2ZXIgb25saW5lZCwgc28gYSBEQVggcGFnZSBpcyBETUEtaWRs ZSB3aGVuIGl0cwo+IHJlZmVyZW5jZSBjb3VudCByZWFjaGVzIG9uZS4KPgo+IEFsc28gcmVjYWxs IHRoYXQgdGhlIEhNTSBzdWItc3lzdGVtIGFkZGVkIGluZnJhc3RydWN0dXJlIHRvIHRyYXAgdGhl Cj4gcGFnZS1pZGxlICgyLXRvLTEgcmVmZXJlbmNlIGNvdW50KSB0cmFuc2l0aW9uIG9mIHRoZSBw YWdlcyBhbGxvY2F0ZWQgYnkKPiBkZXZtX21lbXJlbWFwX3BhZ2VzKCkgYW5kIHRyaWdnZXIgYSBj YWxsYmFjayB2aWEgdGhlICdzdHJ1Y3QKPiBkZXZfcGFnZW1hcCcgYXNzb2NpYXRlZCB3aXRoIHRo ZSBwYWdlIHJhbmdlLiBXaGVyZWFzIHRoZSBITU0gY2FsbGJhY2tzCj4gYXJlIGdvaW5nIHRvIGEg ZGV2aWNlIGRyaXZlciB0byBtYW5hZ2UgYm91bmNlIHBhZ2VzIGluIGRldmljZS1tZW1vcnkgaW4K PiB0aGUgZmlsZXN5c3RlbS1kYXggY2FzZSB3ZSB3aWxsIGNhbGwgYmFjayB0byBmaWxlc3lzdGVt IHNwZWNpZmllZAo+IGNhbGxiYWNrLgo+Cj4gU2luY2UgdGhlIGNhbGxiYWNrIGlzIG5vdCBrbm93 biBhdCBkZXZtX21lbXJlbWFwX3BhZ2VzKCkgdGltZSB3ZSBhcnJhbmdlCj4gZm9yIHRoZSBmaWxl c3lzdGVtIHRvIGluc3RhbGwgaXQgYXQgbW91bnQgdGltZS4gTm8gZnVuY3Rpb25hbCBjaGFuZ2Vz Cj4gYXJlIGV4cGVjdGVkIGFzIHRoaXMgb25seSByZWdpc3RlcnMgYSBub3AgaGFuZGxlciBmb3Ig dGhlIC0+cGFnZV9mcmVlKCkKPiBldmVudCBmb3IgZGV2aWNlLW1hcHBlZCBwYWdlcy4KPgo+IENj OiBNaWNoYWwgSG9ja28gPG1ob2Nrb0BzdXNlLmNvbT4KPiBSZXZpZXdlZC1ieTogIkrDqXLDtG1l IEdsaXNzZSIgPGpnbGlzc2VAcmVkaGF0LmNvbT4KPiBSZXZpZXdlZC1ieTogQ2hyaXN0b3BoIEhl bGx3aWcgPGhjaEBsc3QuZGU+Cj4gUmV2aWV3ZWQtYnk6IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+ Cj4gU2lnbmVkLW9mZi1ieTogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+ Cj4gLS0tCgpVZ2gsIHNvIGl0IHR1cm5zIG91dCB0aGlzIGFwcHJvYWNoIGlzIGJyb2tlbiBpbiB0 aGUgZmFjZSBvZgpwYXJ0aXRpb25zLiBUaGFua3MgdG8gRGF2ZSBKIGZvciBub3RpY2luZyB0aGlz IHdpdGggeGZzdGVzdHMsIEkgd2FzCm9ubHkgdGVzdGluZyB3aXRoIHdob2xlIGRldmljZXMuCgpU aGFua2Z1bGx5LCB0aGUgZml4IGlzIHN0cmFpZ2h0Zm9yd2FyZC4gSnVzdCBkZWxldGUgdGhpcyBh bmQgcGF0Y2gxCmFuZCBtb3ZlIGdlbmVyaWNfZGF4X3BhZ2VmcmVlKCkgaW50byB0aGUgcG1lbSBk cml2ZXIgZGlyZWN0bHkuIEl0J3MgYQoxOjEgcmVsYXRpb25zaGlwIGJldHdlZW4gcGdtYXAgYW5k IHRoZSBkYXhfZGV2aWNlLCBzbyB0aGVyZSBpcyBubyBuZWVkCmZvciB0aGlzIGR5bmFtaWMgY2xh aW0gaW5mcmFzdHJ1Y3R1cmUuIEknbGwgc2VuZCBvdXQgdGhlIHBhdGNoZXMgdGhhdApnb3QgbW9k aWZpZWQgYWZ0ZXIgcmViYXNpbmcgb24gdGhlIHJlbW92YWwgb2YgdGhpcyBwYXRjaC4KCj4gIGRy aXZlcnMvZGF4L3N1cGVyLmMgICB8ICAgMjEgKysrKysrKysrKystLS0tLS0tLS0tCj4gIGRyaXZl cnMvbnZkaW1tL3BtZW0uYyB8ICAgIDMgKystCj4gIGZzL2V4dDIvc3VwZXIuYyAgICAgICB8ICAg IDYgKysrLS0tCj4gIGZzL2V4dDQvc3VwZXIuYyAgICAgICB8ICAgIDYgKysrLS0tCj4gIGZzL3hm cy94ZnNfc3VwZXIuYyAgICB8ICAgMjAgKysrKysrKysrKy0tLS0tLS0tLS0KPiAgaW5jbHVkZS9s aW51eC9kYXguaCAgIHwgICAxNCArKysrKysrKy0tLS0tLQo+ICA2IGZpbGVzIGNoYW5nZWQsIDM3 IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv ZGF4L3N1cGVyLmMgYi9kcml2ZXJzL2RheC9zdXBlci5jCj4gaW5kZXggZTYyYTY0YjljOWZiLi5l NDg2NGYzMTllMTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9kYXgvc3VwZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZGF4L3N1cGVyLmMKPiBAQCAtNjMsMTYgKzYzLDYgQEAgaW50IGJkZXZfZGF4X3Bnb2Zm KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHNlY3Rvcl90IHNlY3Rvciwgc2l6ZV90IHNpemUs Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChiZGV2X2RheF9wZ29mZik7Cj4KPiAtI2lmIElTX0VOQUJM RUQoQ09ORklHX0ZTX0RBWCkKPiAtc3RydWN0IGRheF9kZXZpY2UgKmZzX2RheF9nZXRfYnlfYmRl dihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQo+IC17Cj4gLSAgICAgICBpZiAoIWJsa19xdWV1 ZV9kYXgoYmRldi0+YmRfcXVldWUpKQo+IC0gICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKPiAt ICAgICAgIHJldHVybiBmc19kYXhfZ2V0X2J5X2hvc3QoYmRldi0+YmRfZGlzay0+ZGlza19uYW1l KTsKPiAtfQo+IC1FWFBPUlRfU1lNQk9MX0dQTChmc19kYXhfZ2V0X2J5X2JkZXYpOwo+IC0jZW5k aWYKPiAtCj4gIC8qKgo+ICAgKiBfX2JkZXZfZGF4X3N1cHBvcnRlZCgpIC0gQ2hlY2sgaWYgdGhl IGRldmljZSBzdXBwb3J0cyBkYXggZm9yIGZpbGVzeXN0ZW0KPiAgICogQHNiOiBUaGUgc3VwZXJi bG9jayBvZiB0aGUgZGV2aWNlCj4gQEAgLTU3NSw2ICs1NjUsMTcgQEAgc3RydWN0IGRheF9kZXZp Y2UgKmFsbG9jX2RheCh2b2lkICpwcml2YXRlLCBjb25zdCBjaGFyICpfX2hvc3QsCj4gIH0KPiAg RVhQT1JUX1NZTUJPTF9HUEwoYWxsb2NfZGF4KTsKPgo+ICtzdHJ1Y3QgZGF4X2RldmljZSAqYWxs b2NfZGF4X2Rldm1hcCh2b2lkICpwcml2YXRlLCBjb25zdCBjaGFyICpob3N0LAo+ICsgICAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3QgZGF4X29wZXJhdGlvbnMgKm9wcywgc3RydWN0IGRldl9wYWdl bWFwICpwZ21hcCkKPiArewo+ICsgICAgICAgc3RydWN0IGRheF9kZXZpY2UgKmRheF9kZXYgPSBh bGxvY19kYXgocHJpdmF0ZSwgaG9zdCwgb3BzKTsKPiArCj4gKyAgICAgICBpZiAoZGF4X2RldikK PiArICAgICAgICAgICAgICAgZGF4X2Rldi0+cGdtYXAgPSBwZ21hcDsKPiArICAgICAgIHJldHVy biBkYXhfZGV2Owo+ICt9Cj4gK0VYUE9SVF9TWU1CT0xfR1BMKGFsbG9jX2RheF9kZXZtYXApOwo+ ICsKPiAgdm9pZCBwdXRfZGF4KHN0cnVjdCBkYXhfZGV2aWNlICpkYXhfZGV2KQo+ICB7Cj4gICAg ICAgICBpZiAoIWRheF9kZXYpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZkaW1tL3BtZW0uYyBi L2RyaXZlcnMvbnZkaW1tL3BtZW0uYwo+IGluZGV4IDlkNzE0OTI2ZWNmNS4uZmMxYTFhYjI1ZTll IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbnZkaW1tL3BtZW0uYwo+ICsrKyBiL2RyaXZlcnMvbnZk aW1tL3BtZW0uYwo+IEBAIC00MDgsNyArNDA4LDggQEAgc3RhdGljIGludCBwbWVtX2F0dGFjaF9k aXNrKHN0cnVjdCBkZXZpY2UgKmRldiwKPiAgICAgICAgIG52ZGltbV9iYWRibG9ja3NfcG9wdWxh dGUobmRfcmVnaW9uLCAmcG1lbS0+YmIsICZiYl9yZXMpOwo+ICAgICAgICAgZGlzay0+YmIgPSAm cG1lbS0+YmI7Cj4KPiAtICAgICAgIGRheF9kZXYgPSBhbGxvY19kYXgocG1lbSwgZGlzay0+ZGlz a19uYW1lLCAmcG1lbV9kYXhfb3BzKTsKPiArICAgICAgIGRheF9kZXYgPSBhbGxvY19kYXhfZGV2 bWFwKHBtZW0sIGRpc2stPmRpc2tfbmFtZSwgJnBtZW1fZGF4X29wcywKPiArICAgICAgICAgICAg ICAgICAgICAgICAmcG1lbS0+cGdtYXApOwo+ICAgICAgICAgaWYgKCFkYXhfZGV2KSB7Cj4gICAg ICAgICAgICAgICAgIHB1dF9kaXNrKGRpc2spOwo+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVO T01FTTsKPiBkaWZmIC0tZ2l0IGEvZnMvZXh0Mi9zdXBlci5jIGIvZnMvZXh0Mi9zdXBlci5jCj4g aW5kZXggZGUxNjk0NTEyZjFmLi40MjFjN2Q0YmVkMzkgMTAwNjQ0Cj4gLS0tIGEvZnMvZXh0Mi9z dXBlci5jCj4gKysrIGIvZnMvZXh0Mi9zdXBlci5jCj4gQEAgLTE3Miw3ICsxNzIsNyBAQCBzdGF0 aWMgdm9pZCBleHQyX3B1dF9zdXBlciAoc3RydWN0IHN1cGVyX2Jsb2NrICogc2IpCj4gICAgICAg ICBicmVsc2UgKHNiaS0+c19zYmgpOwo+ICAgICAgICAgc2ItPnNfZnNfaW5mbyA9IE5VTEw7Cj4g ICAgICAgICBrZnJlZShzYmktPnNfYmxvY2tncm91cF9sb2NrKTsKPiAtICAgICAgIGZzX3B1dF9k YXgoc2JpLT5zX2RheGRldik7Cj4gKyAgICAgICBmc19kYXhfcmVsZWFzZShzYmktPnNfZGF4ZGV2 LCBzYik7Cj4gICAgICAgICBrZnJlZShzYmkpOwo+ICB9Cj4KPiBAQCAtODE3LDcgKzgxNyw3IEBA IHN0YXRpYyB1bnNpZ25lZCBsb25nIGRlc2NyaXB0b3JfbG9jKHN0cnVjdCBzdXBlcl9ibG9jayAq c2IsCj4KPiAgc3RhdGljIGludCBleHQyX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpz Yiwgdm9pZCAqZGF0YSwgaW50IHNpbGVudCkKPiAgewo+IC0gICAgICAgc3RydWN0IGRheF9kZXZp Y2UgKmRheF9kZXYgPSBmc19kYXhfZ2V0X2J5X2JkZXYoc2ItPnNfYmRldik7Cj4gKyAgICAgICBz dHJ1Y3QgZGF4X2RldmljZSAqZGF4X2RldiA9IGZzX2RheF9jbGFpbV9iZGV2KHNiLT5zX2JkZXYs IHNiKTsKPiAgICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqIGJoOwo+ICAgICAgICAgc3RydWN0 IGV4dDJfc2JfaW5mbyAqIHNiaTsKPiAgICAgICAgIHN0cnVjdCBleHQyX3N1cGVyX2Jsb2NrICog ZXM7Cj4gQEAgLTEyMTMsNyArMTIxMyw3IEBAIHN0YXRpYyBpbnQgZXh0Ml9maWxsX3N1cGVyKHN0 cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCj4gICAgICAgICBr ZnJlZShzYmktPnNfYmxvY2tncm91cF9sb2NrKTsKPiAgICAgICAgIGtmcmVlKHNiaSk7Cj4gIGZh aWxlZDoKPiAtICAgICAgIGZzX3B1dF9kYXgoZGF4X2Rldik7Cj4gKyAgICAgICBmc19kYXhfcmVs ZWFzZShkYXhfZGV2LCBzYik7Cj4gICAgICAgICByZXR1cm4gcmV0Owo+ICB9Cj4KPiBkaWZmIC0t Z2l0IGEvZnMvZXh0NC9zdXBlci5jIGIvZnMvZXh0NC9zdXBlci5jCj4gaW5kZXggMTg1ZjdlNjFm NGNmLi4zZTVkMGY5ZTg3NzIgMTAwNjQ0Cj4gLS0tIGEvZnMvZXh0NC9zdXBlci5jCj4gKysrIGIv ZnMvZXh0NC9zdXBlci5jCj4gQEAgLTk1NCw3ICs5NTQsNyBAQCBzdGF0aWMgdm9pZCBleHQ0X3B1 dF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQo+ICAgICAgICAgaWYgKHNiaS0+c19jaGtz dW1fZHJpdmVyKQo+ICAgICAgICAgICAgICAgICBjcnlwdG9fZnJlZV9zaGFzaChzYmktPnNfY2hr c3VtX2RyaXZlcik7Cj4gICAgICAgICBrZnJlZShzYmktPnNfYmxvY2tncm91cF9sb2NrKTsKPiAt ICAgICAgIGZzX3B1dF9kYXgoc2JpLT5zX2RheGRldik7Cj4gKyAgICAgICBmc19kYXhfcmVsZWFz ZShzYmktPnNfZGF4ZGV2LCBzYik7Cj4gICAgICAgICBrZnJlZShzYmkpOwo+ICB9Cj4KPiBAQCAt MzQwNyw3ICszNDA3LDcgQEAgc3RhdGljIHZvaWQgZXh0NF9zZXRfcmVzdl9jbHVzdGVycyhzdHJ1 Y3Qgc3VwZXJfYmxvY2sgKnNiKQo+Cj4gIHN0YXRpYyBpbnQgZXh0NF9maWxsX3N1cGVyKHN0cnVj dCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCj4gIHsKPiAtICAgICAg IHN0cnVjdCBkYXhfZGV2aWNlICpkYXhfZGV2ID0gZnNfZGF4X2dldF9ieV9iZGV2KHNiLT5zX2Jk ZXYpOwo+ICsgICAgICAgc3RydWN0IGRheF9kZXZpY2UgKmRheF9kZXYgPSBmc19kYXhfY2xhaW1f YmRldihzYi0+c19iZGV2LCBzYik7Cj4gICAgICAgICBjaGFyICpvcmlnX2RhdGEgPSBrc3RyZHVw KGRhdGEsIEdGUF9LRVJORUwpOwo+ICAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKPiAg ICAgICAgIHN0cnVjdCBleHQ0X3N1cGVyX2Jsb2NrICplcyA9IE5VTEw7Cj4gQEAgLTQ0MjksNyAr NDQyOSw3IEBAIHN0YXRpYyBpbnQgZXh0NF9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAq c2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCj4gIG91dF9mcmVlX2Jhc2U6Cj4gICAgICAgICBr ZnJlZShzYmkpOwo+ICAgICAgICAga2ZyZWUob3JpZ19kYXRhKTsKPiAtICAgICAgIGZzX3B1dF9k YXgoZGF4X2Rldik7Cj4gKyAgICAgICBmc19kYXhfcmVsZWFzZShkYXhfZGV2LCBzYik7Cj4gICAg ICAgICByZXR1cm4gZXJyID8gZXJyIDogcmV0Owo+ICB9Cj4KPiBkaWZmIC0tZ2l0IGEvZnMveGZz L3hmc19zdXBlci5jIGIvZnMveGZzL3hmc19zdXBlci5jCj4gaW5kZXggZDcxNDI0MDUyOTE3Li5m NTNmOGE0N2E1MjYgMTAwNjQ0Cj4gLS0tIGEvZnMveGZzL3hmc19zdXBlci5jCj4gKysrIGIvZnMv eGZzL3hmc19zdXBlci5jCj4gQEAgLTcyNCw3ICs3MjQsNyBAQCB4ZnNfY2xvc2VfZGV2aWNlcygK Pgo+ICAgICAgICAgICAgICAgICB4ZnNfZnJlZV9idWZ0YXJnKG1wLT5tX2xvZ2Rldl90YXJncCk7 Cj4gICAgICAgICAgICAgICAgIHhmc19ibGtkZXZfcHV0KGxvZ2Rldik7Cj4gLSAgICAgICAgICAg ICAgIGZzX3B1dF9kYXgoZGF4X2xvZ2Rldik7Cj4gKyAgICAgICAgICAgICAgIGZzX2RheF9yZWxl YXNlKGRheF9sb2dkZXYsIG1wKTsKPiAgICAgICAgIH0KPiAgICAgICAgIGlmIChtcC0+bV9ydGRl dl90YXJncCkgewo+ICAgICAgICAgICAgICAgICBzdHJ1Y3QgYmxvY2tfZGV2aWNlICpydGRldiA9 IG1wLT5tX3J0ZGV2X3RhcmdwLT5idF9iZGV2Owo+IEBAIC03MzIsMTAgKzczMiwxMCBAQCB4ZnNf Y2xvc2VfZGV2aWNlcygKPgo+ICAgICAgICAgICAgICAgICB4ZnNfZnJlZV9idWZ0YXJnKG1wLT5t X3J0ZGV2X3RhcmdwKTsKPiAgICAgICAgICAgICAgICAgeGZzX2Jsa2Rldl9wdXQocnRkZXYpOwo+ IC0gICAgICAgICAgICAgICBmc19wdXRfZGF4KGRheF9ydGRldik7Cj4gKyAgICAgICAgICAgICAg IGZzX2RheF9yZWxlYXNlKGRheF9ydGRldiwgbXApOwo+ICAgICAgICAgfQo+ICAgICAgICAgeGZz X2ZyZWVfYnVmdGFyZyhtcC0+bV9kZGV2X3RhcmdwKTsKPiAtICAgICAgIGZzX3B1dF9kYXgoZGF4 X2RkZXYpOwo+ICsgICAgICAgZnNfZGF4X3JlbGVhc2UoZGF4X2RkZXYsIG1wKTsKPiAgfQo+Cj4g IC8qCj4gQEAgLTc1Myw5ICs3NTMsOSBAQCB4ZnNfb3Blbl9kZXZpY2VzKAo+ICAgICAgICAgc3Ry dWN0IHhmc19tb3VudCAgICAgICAgKm1wKQo+ICB7Cj4gICAgICAgICBzdHJ1Y3QgYmxvY2tfZGV2 aWNlICAgICAqZGRldiA9IG1wLT5tX3N1cGVyLT5zX2JkZXY7Cj4gLSAgICAgICBzdHJ1Y3QgZGF4 X2RldmljZSAgICAgICAqZGF4X2RkZXYgPSBmc19kYXhfZ2V0X2J5X2JkZXYoZGRldik7Cj4gLSAg ICAgICBzdHJ1Y3QgZGF4X2RldmljZSAgICAgICAqZGF4X2xvZ2RldiA9IE5VTEwsICpkYXhfcnRk ZXYgPSBOVUxMOwo+ICsgICAgICAgc3RydWN0IGRheF9kZXZpY2UgICAgICAgKmRheF9kZGV2ID0g ZnNfZGF4X2NsYWltX2JkZXYoZGRldiwgbXApOwo+ICAgICAgICAgc3RydWN0IGJsb2NrX2Rldmlj ZSAgICAgKmxvZ2RldiA9IE5VTEwsICpydGRldiA9IE5VTEw7Cj4gKyAgICAgICBzdHJ1Y3QgZGF4 X2RldmljZSAgICAgICAqZGF4X2xvZ2RldiA9IE5VTEwsICpkYXhfcnRkZXYgPSBOVUxMOwo+ICAg ICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgZXJyb3I7Cj4KPiAgICAgICAgIC8qCj4gQEAg LTc2NSw3ICs3NjUsNyBAQCB4ZnNfb3Blbl9kZXZpY2VzKAo+ICAgICAgICAgICAgICAgICBlcnJv ciA9IHhmc19ibGtkZXZfZ2V0KG1wLCBtcC0+bV9sb2duYW1lLCAmbG9nZGV2KTsKPiAgICAgICAg ICAgICAgICAgaWYgKGVycm9yKQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ IC0gICAgICAgICAgICAgICBkYXhfbG9nZGV2ID0gZnNfZGF4X2dldF9ieV9iZGV2KGxvZ2Rldik7 Cj4gKyAgICAgICAgICAgICAgIGRheF9sb2dkZXYgPSBmc19kYXhfY2xhaW1fYmRldihsb2dkZXYs IG1wKTsKPiAgICAgICAgIH0KPgo+ICAgICAgICAgaWYgKG1wLT5tX3J0bmFtZSkgewo+IEBAIC03 NzksNyArNzc5LDcgQEAgeGZzX29wZW5fZGV2aWNlcygKPiAgICAgICAgICAgICAgICAgICAgICAg ICBlcnJvciA9IC1FSU5WQUw7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXRfY2xv c2VfcnRkZXY7Cj4gICAgICAgICAgICAgICAgIH0KPiAtICAgICAgICAgICAgICAgZGF4X3J0ZGV2 ID0gZnNfZGF4X2dldF9ieV9iZGV2KHJ0ZGV2KTsKPiArICAgICAgICAgICAgICAgZGF4X3J0ZGV2 ID0gZnNfZGF4X2NsYWltX2JkZXYocnRkZXYsIG1wKTsKPiAgICAgICAgIH0KPgo+ICAgICAgICAg LyoKPiBAQCAtODEzLDE0ICs4MTMsMTQgQEAgeGZzX29wZW5fZGV2aWNlcygKPiAgICAgICAgIHhm c19mcmVlX2J1ZnRhcmcobXAtPm1fZGRldl90YXJncCk7Cj4gICBvdXRfY2xvc2VfcnRkZXY6Cj4g ICAgICAgICB4ZnNfYmxrZGV2X3B1dChydGRldik7Cj4gLSAgICAgICBmc19wdXRfZGF4KGRheF9y dGRldik7Cj4gKyAgICAgICBmc19kYXhfcmVsZWFzZShkYXhfcnRkZXYsIG1wKTsKPiAgIG91dF9j bG9zZV9sb2dkZXY6Cj4gICAgICAgICBpZiAobG9nZGV2ICYmIGxvZ2RldiAhPSBkZGV2KSB7Cj4g ICAgICAgICAgICAgICAgIHhmc19ibGtkZXZfcHV0KGxvZ2Rldik7Cj4gLSAgICAgICAgICAgICAg IGZzX3B1dF9kYXgoZGF4X2xvZ2Rldik7Cj4gKyAgICAgICAgICAgICAgIGZzX2RheF9yZWxlYXNl KGRheF9sb2dkZXYsIG1wKTsKPiAgICAgICAgIH0KPiAgIG91dDoKPiAtICAgICAgIGZzX3B1dF9k YXgoZGF4X2RkZXYpOwo+ICsgICAgICAgZnNfZGF4X3JlbGVhc2UoZGF4X2RkZXYsIG1wKTsKPiAg ICAgICAgIHJldHVybiBlcnJvcjsKPiAgfQo+Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv ZGF4LmggYi9pbmNsdWRlL2xpbnV4L2RheC5oCj4gaW5kZXggYWYwMmY5M2M5NDNhLi5mZTMyMmQ2 Nzg1NmUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9saW51eC9kYXguaAo+ICsrKyBiL2luY2x1ZGUv bGludXgvZGF4LmgKPiBAQCAtMzMsNiArMzMsOCBAQCBleHRlcm4gc3RydWN0IGF0dHJpYnV0ZV9n cm91cCBkYXhfYXR0cmlidXRlX2dyb3VwOwo+ICBzdHJ1Y3QgZGF4X2RldmljZSAqZGF4X2dldF9i eV9ob3N0KGNvbnN0IGNoYXIgKmhvc3QpOwo+ICBzdHJ1Y3QgZGF4X2RldmljZSAqYWxsb2NfZGF4 KHZvaWQgKnByaXZhdGUsIGNvbnN0IGNoYXIgKmhvc3QsCj4gICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBkYXhfb3BlcmF0aW9ucyAqb3BzKTsKPiArc3RydWN0IGRheF9kZXZpY2UgKmFsbG9j X2RheF9kZXZtYXAodm9pZCAqcHJpdmF0ZSwgY29uc3QgY2hhciAqaG9zdCwKPiArICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IGRheF9vcGVyYXRpb25zICpvcHMsIHN0cnVjdCBkZXZfcGFnZW1h cCAqcGdtYXApOwo+ICB2b2lkIHB1dF9kYXgoc3RydWN0IGRheF9kZXZpY2UgKmRheF9kZXYpOwo+ ICB2b2lkIGtpbGxfZGF4KHN0cnVjdCBkYXhfZGV2aWNlICpkYXhfZGV2KTsKPiAgdm9pZCBkYXhf d3JpdGVfY2FjaGUoc3RydWN0IGRheF9kZXZpY2UgKmRheF9kZXYsIGJvb2wgd2MpOwo+IEBAIC01 MSw2ICs1MywxMiBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkYXhfZGV2aWNlICphbGxvY19kYXgo dm9pZCAqcHJpdmF0ZSwgY29uc3QgY2hhciAqaG9zdCwKPiAgICAgICAgICAqLwo+ICAgICAgICAg cmV0dXJuIE5VTEw7Cj4gIH0KPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZGF4X2RldmljZSAqYWxs b2NfZGF4X2Rldm1hcCh2b2lkICpwcml2YXRlLAo+ICsgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpob3N0LCBjb25zdCBzdHJ1Y3QgZGF4X29wZXJhdGlvbnMgKm9wcywKPiArICAgICAgICAgICAg ICAgc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcCkKPiArewo+ICsgICAgICAgcmV0dXJuIE5VTEw7 Cj4gK30KPiAgc3RhdGljIGlubGluZSB2b2lkIHB1dF9kYXgoc3RydWN0IGRheF9kZXZpY2UgKmRh eF9kZXYpCj4gIHsKPiAgfQo+IEBAIC04NSw3ICs5Myw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBm c19wdXRfZGF4KHN0cnVjdCBkYXhfZGV2aWNlICpkYXhfZGV2KQo+ICAgICAgICAgcHV0X2RheChk YXhfZGV2KTsKPiAgfQo+Cj4gLXN0cnVjdCBkYXhfZGV2aWNlICpmc19kYXhfZ2V0X2J5X2JkZXYo c3RydWN0IGJsb2NrX2RldmljZSAqYmRldik7Cj4gIGludCBkYXhfd3JpdGViYWNrX21hcHBpbmdf cmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCj4gICAgICAgICAgICAgICAgIHN0 cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKTsK PiAgc3RydWN0IGRheF9kZXZpY2UgKmZzX2RheF9jbGFpbShzdHJ1Y3QgZGF4X2RldmljZSAqZGF4 X2Rldiwgdm9pZCAqb3duZXIpOwo+IEBAIC0xMjMsMTEgKzEzMCw2IEBAIHN0YXRpYyBpbmxpbmUg dm9pZCBmc19wdXRfZGF4KHN0cnVjdCBkYXhfZGV2aWNlICpkYXhfZGV2KQo+ICB7Cj4gIH0KPgo+ IC1zdGF0aWMgaW5saW5lIHN0cnVjdCBkYXhfZGV2aWNlICpmc19kYXhfZ2V0X2J5X2JkZXYoc3Ry dWN0IGJsb2NrX2RldmljZSAqYmRldikKPiAtewo+IC0gICAgICAgcmV0dXJuIE5VTEw7Cj4gLX0K PiAtCj4gIHN0YXRpYyBpbmxpbmUgaW50IGRheF93cml0ZWJhY2tfbWFwcGluZ19yYW5nZShzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKPiAgICAgICAgICAgICAgICAgc3RydWN0IGJsb2Nr X2RldmljZSAqYmRldiwgc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpCj4gIHsKPgo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gTGludXgtbnZk aW1tIG1haWxpbmcgbGlzdAo+IExpbnV4LW52ZGltbUBsaXN0cy4wMS5vcmcKPiBodHRwczovL2xp c3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW52ZGltbQpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1udmRpbW0gbWFpbGluZyBsaXN0 CkxpbnV4LW52ZGltbUBsaXN0cy4wMS5vcmcKaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9s aXN0aW5mby9saW51eC1udmRpbW0K