From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 2751B22225C09 for ; Sat, 23 Dec 2017 17:00:11 -0800 (PST) Subject: [PATCH v4 09/18] mm, dax: enable filesystems to trigger dev_pagemap ->page_free callbacks From: Dan Williams Date: Sat, 23 Dec 2017 16:56:48 -0800 Message-ID: <151407700867.38751.6057494992833550623.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: <151407695916.38751.2866053440557472361.stgit@dwillia2-desk3.amr.corp.intel.com> References: <151407695916.38751.2866053440557472361.stgit@dwillia2-desk3.amr.corp.intel.com> MIME-Version: 1.0 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: akpm@linux-foundation.org Cc: Michal Hocko , jack@suse.cz, linux-nvdimm@lists.01.org, linux-xfs@vger.kernel.org, =?utf-8?b?SsOpcsO0bWU=?= Glisse , linux-fsdevel@vger.kernel.org, hch@lst.de List-ID: SW4gb3JkZXIgdG8gcmVzb2x2ZSBjb2xsaXNpb25zIGJldHdlZW4gZmlsZXN5c3RlbSBvcGVyYXRp b25zIGFuZCBETUEgdG8KREFYIG1hcHBlZCBwYWdlcyB3ZSBuZWVkIGEgY2FsbGJhY2sgd2hlbiBE TUEgY29tcGxldGVzLiBXaXRoIGEgY2FsbGJhY2sKd2UgY2FuIGhvbGQgb2ZmIGZpbGVzeXN0ZW0g b3BlcmF0aW9ucyB3aGlsZSBETUEgaXMgaW4tZmxpZ2h0IGFuZCB0aGVuCnJlc3VtZSB0aG9zZSBv cGVyYXRpb25zIHdoZW4gdGhlIGxhc3QgcHV0X3BhZ2UoKSBvY2N1cnMgb24gYSBETUEgcGFnZS4K ClJlY2FsbCB0aGF0IHRoZSAnc3RydWN0IHBhZ2UnIGVudHJpZXMgZm9yIERBWCBtZW1vcnkgYXJl IGNyZWF0ZWQgd2l0aApkZXZtX21lbXJlbWFwX3BhZ2VzKCkuIFRoYXQgcm91dGluZSBhcnJhbmdl cyBmb3IgdGhlIHBhZ2VzIHRvIGJlCmFsbG9jYXRlZCwgYnV0IG5ldmVyIG9ubGluZWQsIHNvIGEg REFYIHBhZ2UgaXMgRE1BLWlkbGUgd2hlbiBpdHMKcmVmZXJlbmNlIGNvdW50IHJlYWNoZXMgb25l LgoKQWxzbyByZWNhbGwgdGhhdCB0aGUgSE1NIHN1Yi1zeXN0ZW0gYWRkZWQgaW5mcmFzdHJ1Y3R1 cmUgdG8gdHJhcCB0aGUKcGFnZS1pZGxlICgyLXRvLTEgcmVmZXJlbmNlIGNvdW50KSB0cmFuc2l0 aW9uIG9mIHRoZSBwYWdlcyBhbGxvY2F0ZWQgYnkKZGV2bV9tZW1yZW1hcF9wYWdlcygpIGFuZCB0 cmlnZ2VyIGEgY2FsbGJhY2sgdmlhIHRoZSAnc3RydWN0CmRldl9wYWdlbWFwJyBhc3NvY2lhdGVk IHdpdGggdGhlIHBhZ2UgcmFuZ2UuIFdoZXJlYXMgdGhlIEhNTSBjYWxsYmFja3MKYXJlIGdvaW5n IHRvIGEgZGV2aWNlIGRyaXZlciB0byBtYW5hZ2UgYm91bmNlIHBhZ2VzIGluIGRldmljZS1tZW1v cnkgaW4KdGhlIGZpbGVzeXN0ZW0tZGF4IGNhc2Ugd2Ugd2lsbCBjYWxsIGJhY2sgdG8gZmlsZXN5 c3RlbSBzcGVjaWZpZWQKY2FsbGJhY2suCgpTaW5jZSB0aGUgY2FsbGJhY2sgaXMgbm90IGtub3du IGF0IGRldm1fbWVtcmVtYXBfcGFnZXMoKSB0aW1lIHdlIGFycmFuZ2UKZm9yIHRoZSBmaWxlc3lz dGVtIHRvIGluc3RhbGwgaXQgYXQgbW91bnQgdGltZS4gTm8gZnVuY3Rpb25hbCBjaGFuZ2VzCmFy ZSBleHBlY3RlZCBhcyB0aGlzIG9ubHkgcmVnaXN0ZXJzIGEgbm9wIGhhbmRsZXIgZm9yIHRoZSAt PnBhZ2VfZnJlZSgpCmV2ZW50IGZvciBkZXZpY2UtbWFwcGVkIHBhZ2VzLgoKQ2M6IENocmlzdG9w aCBIZWxsd2lnIDxoY2hAbHN0LmRlPgpDYzogTWljaGFsIEhvY2tvIDxtaG9ja29Ac3VzZS5jb20+ CkNjOiAiSsOpcsO0bWUgR2xpc3NlIiA8amdsaXNzZUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYW4gV2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2Rh eC9zdXBlci5jICAgICAgfCAgIDc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0KIGRyaXZlcnMvbnZkaW1tL3BtZW0uYyAgICB8ICAgIDMgKy0KIGZzL2V4dDIv c3VwZXIuYyAgICAgICAgICB8ICAgIDYgKystCiBmcy9leHQ0L3N1cGVyLmMgICAgICAgICAgfCAg ICA2ICsrLQogZnMveGZzL3hmc19zdXBlci5jICAgICAgIHwgICAyMCArKysrKystLS0tLS0KIGlu Y2x1ZGUvbGludXgvZGF4LmggICAgICB8ICAgMTcgKysrKystLS0tLQogaW5jbHVkZS9saW51eC9t ZW1yZW1hcC5oIHwgICAgOCArKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygr KSwgMzYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9kYXgvc3VwZXIuYyBiL2Ry aXZlcnMvZGF4L3N1cGVyLmMKaW5kZXggNTE2MTI0YWUxY2NmLi5lOTI2ZTM3M2EzYTUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZGF4L3N1cGVyLmMKKysrIGIvZHJpdmVycy9kYXgvc3VwZXIuYwpAQCAt MjksNiArMjksNyBAQCBzdGF0aWMgc3RydWN0IHZmc21vdW50ICpkYXhfbW50Owogc3RhdGljIERF RklORV9JREEoZGF4X21pbm9yX2lkYSk7CiBzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKmRheF9j YWNoZSBfX3JlYWRfbW9zdGx5Owogc3RhdGljIHN0cnVjdCBzdXBlcl9ibG9jayAqZGF4X3N1cGVy YmxvY2sgX19yZWFkX21vc3RseTsKK3N0YXRpYyBERUZJTkVfTVVURVgoZGV2bWFwX2xvY2spOwog CiAjZGVmaW5lIERBWF9IQVNIX1NJWkUgKFBBR0VfU0laRSAvIHNpemVvZihzdHJ1Y3QgaGxpc3Rf aGVhZCkpCiBzdGF0aWMgc3RydWN0IGhsaXN0X2hlYWQgZGF4X2hvc3RfbGlzdFtEQVhfSEFTSF9T SVpFXTsKQEAgLTYyLDE2ICs2Myw2IEBAIGludCBiZGV2X2RheF9wZ29mZihzdHJ1Y3QgYmxvY2tf ZGV2aWNlICpiZGV2LCBzZWN0b3JfdCBzZWN0b3IsIHNpemVfdCBzaXplLAogfQogRVhQT1JUX1NZ TUJPTChiZGV2X2RheF9wZ29mZik7CiAKLSNpZiBJU19FTkFCTEVEKENPTkZJR19GU19EQVgpCi1z dHJ1Y3QgZGF4X2RldmljZSAqZnNfZGF4X2dldF9ieV9iZGV2KHN0cnVjdCBibG9ja19kZXZpY2Ug KmJkZXYpCi17Ci0JaWYgKCFibGtfcXVldWVfZGF4KGJkZXYtPmJkX3F1ZXVlKSkKLQkJcmV0dXJu IE5VTEw7Ci0JcmV0dXJuIGZzX2RheF9nZXRfYnlfaG9zdChiZGV2LT5iZF9kaXNrLT5kaXNrX25h bWUpOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoZnNfZGF4X2dldF9ieV9iZGV2KTsKLSNlbmRpZgot CiAvKioKICAqIF9fYmRldl9kYXhfc3VwcG9ydGVkKCkgLSBDaGVjayBpZiB0aGUgZGV2aWNlIHN1 cHBvcnRzIGRheCBmb3IgZmlsZXN5c3RlbQogICogQHNiOiBUaGUgc3VwZXJibG9jayBvZiB0aGUg ZGV2aWNlCkBAIC0xNjksOSArMTYwLDY2IEBAIHN0cnVjdCBkYXhfZGV2aWNlIHsKIAljb25zdCBj aGFyICpob3N0OwogCXZvaWQgKnByaXZhdGU7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1 Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwOwogCWNvbnN0IHN0cnVjdCBkYXhfb3BlcmF0aW9ucyAqb3Bz OwogfTsKIAorI2lmIElTX0VOQUJMRUQoQ09ORklHX0ZTX0RBWCkKK3N0YXRpYyB2b2lkIGdlbmVy aWNfZGF4X3BhZ2VmcmVlKHN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpkYXRhKQoreworCS8qIFRP RE86IHdha2V1cCBwYWdlLWlkbGUgd2FpdGVycyAqLworfQorCitzdHJ1Y3QgZGF4X2RldmljZSAq ZnNfZGF4X2NsYWltX2JkZXYoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgdm9pZCAqb3duZXIp Cit7CisJc3RydWN0IGRheF9kZXZpY2UgKmRheF9kZXY7CisJc3RydWN0IGRldl9wYWdlbWFwICpw Z21hcDsKKworCWlmICghYmxrX3F1ZXVlX2RheChiZGV2LT5iZF9xdWV1ZSkpCisJCXJldHVybiBO VUxMOworCWRheF9kZXYgPSBmc19kYXhfZ2V0X2J5X2hvc3QoYmRldi0+YmRfZGlzay0+ZGlza19u YW1lKTsKKwlpZiAoIWRheF9kZXYtPnBnbWFwKQorCQlyZXR1cm4gZGF4X2RldjsKKwlwZ21hcCA9 IGRheF9kZXYtPnBnbWFwOworCisJbXV0ZXhfbG9jaygmZGV2bWFwX2xvY2spOworCWlmICgocGdt YXAtPmRhdGEgJiYgcGdtYXAtPmRhdGEgIT0gb3duZXIpIHx8IHBnbWFwLT5wYWdlX2ZyZWUKKwkJ CXx8IHBnbWFwLT5wYWdlX2ZhdWx0CisJCQl8fCBwZ21hcC0+dHlwZSAhPSBNRU1PUllfREVWSUNF X0hPU1QpIHsKKwkJcHV0X2RheChkYXhfZGV2KTsKKwkJbXV0ZXhfdW5sb2NrKCZkZXZtYXBfbG9j ayk7CisJCXJldHVybiBOVUxMOworCX0KKworCXBnbWFwLT50eXBlID0gTUVNT1JZX0RFVklDRV9G U19EQVg7CisJcGdtYXAtPnBhZ2VfZnJlZSA9IGdlbmVyaWNfZGF4X3BhZ2VmcmVlOworCXBnbWFw LT5kYXRhID0gb3duZXI7CisJbXV0ZXhfdW5sb2NrKCZkZXZtYXBfbG9jayk7CisKKwlyZXR1cm4g ZGF4X2RldjsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGZzX2RheF9jbGFpbV9iZGV2KTsKKwordm9p ZCBmc19kYXhfcmVsZWFzZShzdHJ1Y3QgZGF4X2RldmljZSAqZGF4X2Rldiwgdm9pZCAqb3duZXIp Cit7CisJc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcCA9IGRheF9kZXYgPyBkYXhfZGV2LT5wZ21h cCA6IE5VTEw7CisKKwlwdXRfZGF4KGRheF9kZXYpOworCWlmICghcGdtYXApCisJCXJldHVybjsK KwlpZiAoIXBnbWFwLT5kYXRhKQorCQlyZXR1cm47CisKKwltdXRleF9sb2NrKCZkZXZtYXBfbG9j ayk7CisJV0FSTl9PTihwZ21hcC0+ZGF0YSAhPSBvd25lcik7CisJcGdtYXAtPnR5cGUgPSBNRU1P UllfREVWSUNFX0hPU1Q7CisJcGdtYXAtPnBhZ2VfZnJlZSA9IE5VTEw7CisJcGdtYXAtPmRhdGEg PSBOVUxMOworCW11dGV4X3VubG9jaygmZGV2bWFwX2xvY2spOworfQorRVhQT1JUX1NZTUJPTF9H UEwoZnNfZGF4X3JlbGVhc2UpOworI2VuZGlmCisKIHN0YXRpYyBzc2l6ZV90IHdyaXRlX2NhY2hl X3Nob3coc3RydWN0IGRldmljZSAqZGV2LAogCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0 ciwgY2hhciAqYnVmKQogewpAQCAtNTA1LDYgKzU1MywxNyBAQCBzdHJ1Y3QgZGF4X2RldmljZSAq YWxsb2NfZGF4KHZvaWQgKnByaXZhdGUsIGNvbnN0IGNoYXIgKl9faG9zdCwKIH0KIEVYUE9SVF9T WU1CT0xfR1BMKGFsbG9jX2RheCk7CiAKK3N0cnVjdCBkYXhfZGV2aWNlICphbGxvY19kYXhfZGV2 bWFwKHZvaWQgKnByaXZhdGUsIGNvbnN0IGNoYXIgKmhvc3QsCisJCWNvbnN0IHN0cnVjdCBkYXhf b3BlcmF0aW9ucyAqb3BzLCBzdHJ1Y3QgZGV2X3BhZ2VtYXAgKnBnbWFwKQoreworCXN0cnVjdCBk YXhfZGV2aWNlICpkYXhfZGV2ID0gYWxsb2NfZGF4KHByaXZhdGUsIGhvc3QsIG9wcyk7CisKKwlp ZiAoZGF4X2RldikKKwkJZGF4X2Rldi0+cGdtYXAgPSBwZ21hcDsKKwlyZXR1cm4gZGF4X2RldjsK K30KK0VYUE9SVF9TWU1CT0xfR1BMKGFsbG9jX2RheF9kZXZtYXApOworCiB2b2lkIHB1dF9kYXgo c3RydWN0IGRheF9kZXZpY2UgKmRheF9kZXYpCiB7CiAJaWYgKCFkYXhfZGV2KQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9udmRpbW0vcG1lbS5jIGIvZHJpdmVycy9udmRpbW0vcG1lbS5jCmluZGV4IGNm MDc0YjFjZTIxOS4uYmJlMzA0NGMxYjI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL252ZGltbS9wbWVt LmMKKysrIGIvZHJpdmVycy9udmRpbW0vcG1lbS5jCkBAIC00MDcsNyArNDA3LDggQEAgc3RhdGlj IGludCBwbWVtX2F0dGFjaF9kaXNrKHN0cnVjdCBkZXZpY2UgKmRldiwKIAludmRpbW1fYmFkYmxv Y2tzX3BvcHVsYXRlKG5kX3JlZ2lvbiwgJnBtZW0tPmJiLCAmYmJfcmVzKTsKIAlkaXNrLT5iYiA9 ICZwbWVtLT5iYjsKIAotCWRheF9kZXYgPSBhbGxvY19kYXgocG1lbSwgZGlzay0+ZGlza19uYW1l LCAmcG1lbV9kYXhfb3BzKTsKKwlkYXhfZGV2ID0gYWxsb2NfZGF4X2Rldm1hcChwbWVtLCBkaXNr LT5kaXNrX25hbWUsICZwbWVtX2RheF9vcHMsCisJCQkmcG1lbS0+cGdtYXApOwogCWlmICghZGF4 X2RldikgewogCQlwdXRfZGlzayhkaXNrKTsKIAkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQg YS9mcy9leHQyL3N1cGVyLmMgYi9mcy9leHQyL3N1cGVyLmMKaW5kZXggMzhmOTIyMjYwNmVlLi5i MGQ2ZDk5NTQ5NDUgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDIvc3VwZXIuYworKysgYi9mcy9leHQyL3N1 cGVyLmMKQEAgLTE3MSw3ICsxNzEsNyBAQCBzdGF0aWMgdm9pZCBleHQyX3B1dF9zdXBlciAoc3Ry dWN0IHN1cGVyX2Jsb2NrICogc2IpCiAJYnJlbHNlIChzYmktPnNfc2JoKTsKIAlzYi0+c19mc19p bmZvID0gTlVMTDsKIAlrZnJlZShzYmktPnNfYmxvY2tncm91cF9sb2NrKTsKLQlmc19wdXRfZGF4 KHNiaS0+c19kYXhkZXYpOworCWZzX2RheF9yZWxlYXNlKHNiaS0+c19kYXhkZXYsIHNiKTsKIAlr ZnJlZShzYmkpOwogfQogCkBAIC04MTQsNyArODE0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcg ZGVzY3JpcHRvcl9sb2Moc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAogc3RhdGljIGludCBleHQy X2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSwgaW50IHNpbGVu dCkKIHsKLQlzdHJ1Y3QgZGF4X2RldmljZSAqZGF4X2RldiA9IGZzX2RheF9nZXRfYnlfYmRldihz Yi0+c19iZGV2KTsKKwlzdHJ1Y3QgZGF4X2RldmljZSAqZGF4X2RldiA9IGZzX2RheF9jbGFpbV9i ZGV2KHNiLT5zX2JkZXYsIHNiKTsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBiaDsKIAlzdHJ1Y3Qg ZXh0Ml9zYl9pbmZvICogc2JpOwogCXN0cnVjdCBleHQyX3N1cGVyX2Jsb2NrICogZXM7CkBAIC0x MjEwLDcgKzEyMTAsNyBAQCBzdGF0aWMgaW50IGV4dDJfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJf YmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogCWtmcmVlKHNiaS0+c19ibG9ja2dy b3VwX2xvY2spOwogCWtmcmVlKHNiaSk7CiBmYWlsZWQ6Ci0JZnNfcHV0X2RheChkYXhfZGV2KTsK Kwlmc19kYXhfcmVsZWFzZShkYXhfZGV2LCBzYik7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0t Z2l0IGEvZnMvZXh0NC9zdXBlci5jIGIvZnMvZXh0NC9zdXBlci5jCmluZGV4IDE4ODczZWE4OWUw OC4uMjM4Y2FkNTk2NzMzIDEwMDY0NAotLS0gYS9mcy9leHQ0L3N1cGVyLmMKKysrIGIvZnMvZXh0 NC9zdXBlci5jCkBAIC05NTAsNyArOTUwLDcgQEAgc3RhdGljIHZvaWQgZXh0NF9wdXRfc3VwZXIo c3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIAlpZiAoc2JpLT5zX2Noa3N1bV9kcml2ZXIpCiAJCWNy eXB0b19mcmVlX3NoYXNoKHNiaS0+c19jaGtzdW1fZHJpdmVyKTsKIAlrZnJlZShzYmktPnNfYmxv Y2tncm91cF9sb2NrKTsKLQlmc19wdXRfZGF4KHNiaS0+c19kYXhkZXYpOworCWZzX2RheF9yZWxl YXNlKHNiaS0+c19kYXhkZXYsIHNiKTsKIAlrZnJlZShzYmkpOwogfQogCkBAIC0zMzk2LDcgKzMz OTYsNyBAQCBzdGF0aWMgdm9pZCBleHQ0X3NldF9yZXN2X2NsdXN0ZXJzKHN0cnVjdCBzdXBlcl9i bG9jayAqc2IpCiAKIHN0YXRpYyBpbnQgZXh0NF9maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9j ayAqc2IsIHZvaWQgKmRhdGEsIGludCBzaWxlbnQpCiB7Ci0Jc3RydWN0IGRheF9kZXZpY2UgKmRh eF9kZXYgPSBmc19kYXhfZ2V0X2J5X2JkZXYoc2ItPnNfYmRldik7CisJc3RydWN0IGRheF9kZXZp Y2UgKmRheF9kZXYgPSBmc19kYXhfY2xhaW1fYmRldihzYi0+c19iZGV2LCBzYik7CiAJY2hhciAq b3JpZ19kYXRhID0ga3N0cmR1cChkYXRhLCBHRlBfS0VSTkVMKTsKIAlzdHJ1Y3QgYnVmZmVyX2hl YWQgKmJoOwogCXN0cnVjdCBleHQ0X3N1cGVyX2Jsb2NrICplcyA9IE5VTEw7CkBAIC00NDA2LDcg KzQ0MDYsNyBAQCBzdGF0aWMgaW50IGV4dDRfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sg KnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQogb3V0X2ZyZWVfYmFzZToKIAlrZnJlZShzYmkp OwogCWtmcmVlKG9yaWdfZGF0YSk7Ci0JZnNfcHV0X2RheChkYXhfZGV2KTsKKwlmc19kYXhfcmVs ZWFzZShkYXhfZGV2LCBzYik7CiAJcmV0dXJuIGVyciA/IGVyciA6IHJldDsKIH0KIApkaWZmIC0t Z2l0IGEvZnMveGZzL3hmc19zdXBlci5jIGIvZnMveGZzL3hmc19zdXBlci5jCmluZGV4IDUxMjJk MzAyMTExNy4uOGZmODIxZjNiY2ZiIDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX3N1cGVyLmMKKysr IGIvZnMveGZzL3hmc19zdXBlci5jCkBAIC03MjIsNyArNzIyLDcgQEAgeGZzX2Nsb3NlX2Rldmlj ZXMoCiAKIAkJeGZzX2ZyZWVfYnVmdGFyZyhtcCwgbXAtPm1fbG9nZGV2X3RhcmdwKTsKIAkJeGZz X2Jsa2Rldl9wdXQobG9nZGV2KTsKLQkJZnNfcHV0X2RheChkYXhfbG9nZGV2KTsKKwkJZnNfZGF4 X3JlbGVhc2UoZGF4X2xvZ2RldiwgbXApOwogCX0KIAlpZiAobXAtPm1fcnRkZXZfdGFyZ3ApIHsK IAkJc3RydWN0IGJsb2NrX2RldmljZSAqcnRkZXYgPSBtcC0+bV9ydGRldl90YXJncC0+YnRfYmRl djsKQEAgLTczMCwxMCArNzMwLDEwIEBAIHhmc19jbG9zZV9kZXZpY2VzKAogCiAJCXhmc19mcmVl X2J1ZnRhcmcobXAsIG1wLT5tX3J0ZGV2X3RhcmdwKTsKIAkJeGZzX2Jsa2Rldl9wdXQocnRkZXYp OwotCQlmc19wdXRfZGF4KGRheF9ydGRldik7CisJCWZzX2RheF9yZWxlYXNlKGRheF9ydGRldiwg bXApOwogCX0KIAl4ZnNfZnJlZV9idWZ0YXJnKG1wLCBtcC0+bV9kZGV2X3RhcmdwKTsKLQlmc19w dXRfZGF4KGRheF9kZGV2KTsKKwlmc19kYXhfcmVsZWFzZShkYXhfZGRldiwgbXApOwogfQogCiAv KgpAQCAtNzUxLDkgKzc1MSw5IEBAIHhmc19vcGVuX2RldmljZXMoCiAJc3RydWN0IHhmc19tb3Vu dAkqbXApCiB7CiAJc3RydWN0IGJsb2NrX2RldmljZQkqZGRldiA9IG1wLT5tX3N1cGVyLT5zX2Jk ZXY7Ci0Jc3RydWN0IGRheF9kZXZpY2UJKmRheF9kZGV2ID0gZnNfZGF4X2dldF9ieV9iZGV2KGRk ZXYpOwotCXN0cnVjdCBkYXhfZGV2aWNlCSpkYXhfbG9nZGV2ID0gTlVMTCwgKmRheF9ydGRldiA9 IE5VTEw7CisJc3RydWN0IGRheF9kZXZpY2UJKmRheF9kZGV2ID0gZnNfZGF4X2NsYWltX2JkZXYo ZGRldiwgbXApOwogCXN0cnVjdCBibG9ja19kZXZpY2UJKmxvZ2RldiA9IE5VTEwsICpydGRldiA9 IE5VTEw7CisJc3RydWN0IGRheF9kZXZpY2UJKmRheF9sb2dkZXYgPSBOVUxMLCAqZGF4X3J0ZGV2 ID0gTlVMTDsKIAlpbnQJCQllcnJvcjsKIAogCS8qCkBAIC03NjMsNyArNzYzLDcgQEAgeGZzX29w ZW5fZGV2aWNlcygKIAkJZXJyb3IgPSB4ZnNfYmxrZGV2X2dldChtcCwgbXAtPm1fbG9nbmFtZSwg JmxvZ2Rldik7CiAJCWlmIChlcnJvcikKIAkJCWdvdG8gb3V0OwotCQlkYXhfbG9nZGV2ID0gZnNf ZGF4X2dldF9ieV9iZGV2KGxvZ2Rldik7CisJCWRheF9sb2dkZXYgPSBmc19kYXhfY2xhaW1fYmRl dihsb2dkZXYsIG1wKTsKIAl9CiAKIAlpZiAobXAtPm1fcnRuYW1lKSB7CkBAIC03NzcsNyArNzc3 LDcgQEAgeGZzX29wZW5fZGV2aWNlcygKIAkJCWVycm9yID0gLUVJTlZBTDsKIAkJCWdvdG8gb3V0 X2Nsb3NlX3J0ZGV2OwogCQl9Ci0JCWRheF9ydGRldiA9IGZzX2RheF9nZXRfYnlfYmRldihydGRl dik7CisJCWRheF9ydGRldiA9IGZzX2RheF9jbGFpbV9iZGV2KHJ0ZGV2LCBtcCk7CiAJfQogCiAJ LyoKQEAgLTgxMSwxNCArODExLDE0IEBAIHhmc19vcGVuX2RldmljZXMoCiAJeGZzX2ZyZWVfYnVm dGFyZyhtcCwgbXAtPm1fZGRldl90YXJncCk7CiAgb3V0X2Nsb3NlX3J0ZGV2OgogCXhmc19ibGtk ZXZfcHV0KHJ0ZGV2KTsKLQlmc19wdXRfZGF4KGRheF9ydGRldik7CisJZnNfZGF4X3JlbGVhc2Uo ZGF4X3J0ZGV2LCBtcCk7CiAgb3V0X2Nsb3NlX2xvZ2RldjoKIAlpZiAobG9nZGV2ICYmIGxvZ2Rl diAhPSBkZGV2KSB7CiAJCXhmc19ibGtkZXZfcHV0KGxvZ2Rldik7Ci0JCWZzX3B1dF9kYXgoZGF4 X2xvZ2Rldik7CisJCWZzX2RheF9yZWxlYXNlKGRheF9sb2dkZXYsIG1wKTsKIAl9CiAgb3V0Ogot CWZzX3B1dF9kYXgoZGF4X2RkZXYpOworCWZzX2RheF9yZWxlYXNlKGRheF9kZGV2LCBtcCk7CiAJ cmV0dXJuIGVycm9yOwogfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RheC5oIGIvaW5j bHVkZS9saW51eC9kYXguaAppbmRleCA1MjU4MzQ2YzU1OGMuLjFjNmVkNDRmZTlmYyAxMDA2NDQK LS0tIGEvaW5jbHVkZS9saW51eC9kYXguaAorKysgYi9pbmNsdWRlL2xpbnV4L2RheC5oCkBAIC01 MSwxMiArNTEsOCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkYXhfZGV2aWNlICpmc19kYXhfZ2V0 X2J5X2hvc3QoY29uc3QgY2hhciAqaG9zdCkKIAlyZXR1cm4gZGF4X2dldF9ieV9ob3N0KGhvc3Qp OwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZnNfcHV0X2RheChzdHJ1Y3QgZGF4X2RldmljZSAq ZGF4X2RldikKLXsKLQlwdXRfZGF4KGRheF9kZXYpOwotfQotCi1zdHJ1Y3QgZGF4X2RldmljZSAq ZnNfZGF4X2dldF9ieV9iZGV2KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpOworc3RydWN0IGRh eF9kZXZpY2UgKmZzX2RheF9jbGFpbV9iZGV2KHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHZv aWQgKm93bmVyKTsKK3ZvaWQgZnNfZGF4X3JlbGVhc2Uoc3RydWN0IGRheF9kZXZpY2UgKmRheF9k ZXYsIHZvaWQgKm93bmVyKTsKICNlbHNlCiBzdGF0aWMgaW5saW5lIGludCBiZGV2X2RheF9zdXBw b3J0ZWQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IGJsb2Nrc2l6ZSkKIHsKQEAgLTY4LDEz ICs2NCwxNCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkYXhfZGV2aWNlICpmc19kYXhfZ2V0X2J5 X2hvc3QoY29uc3QgY2hhciAqaG9zdCkKIAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIGlubGlu ZSB2b2lkIGZzX3B1dF9kYXgoc3RydWN0IGRheF9kZXZpY2UgKmRheF9kZXYpCitzdGF0aWMgaW5s aW5lIHN0cnVjdCBkYXhfZGV2aWNlICpmc19kYXhfY2xhaW1fYmRldihzdHJ1Y3QgYmxvY2tfZGV2 aWNlICpiZGV2LAorCQl2b2lkICpvd25lcikKIHsKKwlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGlj IGlubGluZSBzdHJ1Y3QgZGF4X2RldmljZSAqZnNfZGF4X2dldF9ieV9iZGV2KHN0cnVjdCBibG9j a19kZXZpY2UgKmJkZXYpCitzdGF0aWMgaW5saW5lIHZvaWQgZnNfZGF4X3JlbGVhc2Uoc3RydWN0 IGRheF9kZXZpY2UgKmRheF9kZXYsIHZvaWQgKm93bmVyKQogewotCXJldHVybiBOVUxMOwogfQog I2VuZGlmCiAKQEAgLTgyLDYgKzc5LDggQEAgaW50IGRheF9yZWFkX2xvY2sodm9pZCk7CiB2b2lk IGRheF9yZWFkX3VubG9jayhpbnQgaWQpOwogc3RydWN0IGRheF9kZXZpY2UgKmFsbG9jX2RheCh2 b2lkICpwcml2YXRlLCBjb25zdCBjaGFyICpob3N0LAogCQljb25zdCBzdHJ1Y3QgZGF4X29wZXJh dGlvbnMgKm9wcyk7CitzdHJ1Y3QgZGF4X2RldmljZSAqYWxsb2NfZGF4X2Rldm1hcCh2b2lkICpw cml2YXRlLCBjb25zdCBjaGFyICpob3N0LAorCQljb25zdCBzdHJ1Y3QgZGF4X29wZXJhdGlvbnMg Km9wcywgc3RydWN0IGRldl9wYWdlbWFwICpwZ21hcCk7CiBib29sIGRheF9hbGl2ZShzdHJ1Y3Qg ZGF4X2RldmljZSAqZGF4X2Rldik7CiB2b2lkIGtpbGxfZGF4KHN0cnVjdCBkYXhfZGV2aWNlICpk YXhfZGV2KTsKIHZvaWQgKmRheF9nZXRfcHJpdmF0ZShzdHJ1Y3QgZGF4X2RldmljZSAqZGF4X2Rl dik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21lbXJlbWFwLmggYi9pbmNsdWRlL2xpbnV4 L21lbXJlbWFwLmgKaW5kZXggN2I0ODk5YzA2ZjQ5Li4wMmQ2ZDA0MmVlN2YgMTAwNjQ0Ci0tLSBh L2luY2x1ZGUvbGludXgvbWVtcmVtYXAuaAorKysgYi9pbmNsdWRlL2xpbnV4L21lbXJlbWFwLmgK QEAgLTUzLDExICs1MywxOSBAQCBzdHJ1Y3Qgdm1lbV9hbHRtYXAgewogICogZHJpdmVyIGNhbiBo b3RwbHVnIHRoZSBkZXZpY2UgbWVtb3J5IHVzaW5nIFpPTkVfREVWSUNFIGFuZCB3aXRoIHRoYXQg bWVtb3J5CiAgKiB0eXBlLiBBbnkgcGFnZSBvZiBhIHByb2Nlc3MgY2FuIGJlIG1pZ3JhdGVkIHRv IHN1Y2ggbWVtb3J5LiBIb3dldmVyIG5vIG9uZQogICogc2hvdWxkIGJlIGFsbG93IHRvIHBpbiBz dWNoIG1lbW9yeSBzbyB0aGF0IGl0IGNhbiBhbHdheXMgYmUgZXZpY3RlZC4KKyAqCisgKiBNRU1P UllfREVWSUNFX0ZTX0RBWDoKKyAqIFdoZW4gTUVNT1JZX0RFVklDRV9IT1NUIG1lbW9yeSBpcyBy ZXByZXNlbnRlZCBieSBhIGRldmljZSB0aGF0IGNhbgorICogaG9zdCBhIGZpbGVzeXN0ZW0sIGZv ciBleGFtcGxlIC9kZXYvcG1lbTAsIHRoYXQgZmlsZXN5c3RlbSBjYW4KKyAqIHJlZ2lzdGVyIGZv ciBhIGNhbGxiYWNrIHdoZW4gYSBwYWdlIGlzIGlkbGVkLiBGb3IgdGhlIGZpbGVzeXN0ZW0tZGF4 CisgKiBjYXNlIHBhZ2UgaWRsZSBjYWxsYmFja3MgYXJlIHVzZWQgdG8gY29vcmRpbmF0ZSBETUEg dnMKKyAqIGhvbGUtcHVuY2gvdHJ1bmNhdGUuCiAgKi8KIGVudW0gbWVtb3J5X3R5cGUgewogCU1F TU9SWV9ERVZJQ0VfSE9TVCA9IDAsCiAJTUVNT1JZX0RFVklDRV9QUklWQVRFLAogCU1FTU9SWV9E RVZJQ0VfUFVCTElDLAorCU1FTU9SWV9ERVZJQ0VfRlNfREFYLAogfTsKIAogLyoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW52ZGltbSBtYWls aW5nIGxpc3QKTGludXgtbnZkaW1tQGxpc3RzLjAxLm9yZwpodHRwczovL2xpc3RzLjAxLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2xpbnV4LW52ZGltbQo=