From mboxrd@z Thu Jan 1 00:00:00 1970 From: Krzysztof Kozlowski Subject: [RFC v3 44/45] dma-mapping: Remove dma_get_attr Date: Thu, 02 Jun 2016 17:39:46 +0200 Message-ID: <1464881987-13203-45-git-send-email-k.kozlowski@samsung.com> References: <1464881987-13203-1-git-send-email-k.kozlowski@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1b8Ulf-0005Rt-SO for xen-devel@lists.xenproject.org; Thu, 02 Jun 2016 15:42:44 +0000 Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout4.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0O8500CBHIB4Z110@mailout4.w1.samsung.com> for xen-devel@lists.xenproject.org; Thu, 02 Jun 2016 16:42:41 +0100 (BST) In-reply-to: <1464881987-13203-1-git-send-email-k.kozlowski@samsung.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Richard Henderson , Ivan Kokshaysky , Matt Turner , Vineet Gupta , Russell King , Stefano Stabellini , Catalin Marinas , Will Deacon , Haavard Skinnemoen , Hans-Christian Egtvedt , Steven Miao , Mark Salter , Aurelien Jacquiot , Mikael Starvik , Jesper Nilsson , Yoshinori Sato , Richard Kuo , Tony Luck , Fenghua Yu , Konrad Rzeszutek Wilk , Geert Uytterhoeven , James Hogan Michal Simek Cc: hch@infradead.org, Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz List-Id: xen-devel@lists.xenproject.org QWZ0ZXIgc3dpdGNoaW5nIERNQSBhdHRyaWJ1dGVzIHRvIHVuc2lnbmVkIGxvbmcgaXQgaXMgZWFz aWVyIHRvIGp1c3QKY29tcGFyZSB0aGUgYml0cy4KClNpZ25lZC1vZmYtYnk6IEtyenlzenRvZiBL b3psb3dza2kgPGsua296bG93c2tpQHNhbXN1bmcuY29tPgotLS0KIERvY3VtZW50YXRpb24vRE1B LUFQSS50eHQgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIGFyY2gvYXJjL21tL2RtYS5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIGFyY2gvYXJtL21tL2RtYS1t YXBwaW5nLmMgICAgICAgICAgICAgICAgICAgICAgfCAzNiArKysrKysrKysrKystLS0tLS0tLS0t LS0tLQogYXJjaC9hcm0veGVuL21tLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0 ICstLQogYXJjaC9hcm02NC9tbS9kbWEtbWFwcGluZy5jICAgICAgICAgICAgICAgICAgICB8IDEw ICsrKy0tLS0KIGFyY2gvYXZyMzIvbW0vZG1hLWNvaGVyZW50LmMgICAgICAgICAgICAgICAgICAg fCAgNCArLS0KIGFyY2gvaWE2NC9zbi9wY2kvcGNpX2RtYS5jICAgICAgICAgICAgICAgICAgICAg fCAxMCArKy0tLS0tCiBhcmNoL21ldGFnL2tlcm5lbC9kbWEuYyAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGFyY2gvbWlwcy9tbS9kbWEtZGVmYXVsdC5jICAgICAgICAgICAgICAgICAg ICAgfCAgNiArKy0tLQogYXJjaC9vcGVucmlzYy9rZXJuZWwvZG1hLmMgICAgICAgICAgICAgICAg ICAgICB8ICA0ICstLQogYXJjaC9wYXJpc2Mva2VybmVsL3BjaS1kbWEuYyAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvaW9tbXUuYyAgICAgICAg ICAgIHwgMTAgKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9n ZW0uYyAgICB8ICAyICstCiBkcml2ZXJzL2lvbW11L2RtYS1pb21tdS5jICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi1kbWEtY29u dGlnLmMgfCAgMiArLQogaW5jbHVkZS9saW51eC9kbWEtbWFwcGluZy5oICAgICAgICAgICAgICAg ICAgICB8IDEzIC0tLS0tLS0tLS0KIDE2IGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyks IDY5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vRE1BLUFQSS50eHQg Yi9Eb2N1bWVudGF0aW9uL0RNQS1BUEkudHh0CmluZGV4IDI0Zjk2ODhiYjk4YS4uMWQyNmVlYjZi NWY2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0RNQS1BUEkudHh0CisrKyBiL0RvY3VtZW50 YXRpb24vRE1BLUFQSS50eHQKQEAgLTQyMiw5ICs0MjIsNyBAQCB2b2lkIHdoaXpjb19kbWFfbWFw X3NnX2F0dHJzKHN0cnVjdCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBkbWFfYWRkciwKIAkJCSAg ICAgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKIAkuLi4uCi0JaW50IGZvbyA9ICBkbWFfZ2V0X2F0 dHIoRE1BX0FUVFJfRk9PLCBhdHRycyk7Ci0JLi4uLgotCWlmIChmb28pCisJaWYgKGF0dHJzICYg RE1BX0FUVFJfRk9PKQogCQkvKiB0d2l6emxlIHRoZSBmcm9ibm96emxlICovCiAJLi4uLgogCmRp ZmYgLS1naXQgYS9hcmNoL2FyYy9tbS9kbWEuYyBiL2FyY2gvYXJjL21tL2RtYS5jCmluZGV4IDNk MWY0NjdkMTc5Mi4uNzRiYmU2OGRjZTlkIDEwMDY0NAotLS0gYS9hcmNoL2FyYy9tbS9kbWEuYwor KysgYi9hcmNoL2FyYy9tbS9kbWEuYwpAQCAtNDYsNyArNDYsNyBAQCBzdGF0aWMgdm9pZCAqYXJj X2RtYV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCSAqICAgKHZzLiBh bHdheXMgZ29pbmcgdG8gbWVtb3J5IC0gdGh1cyBhcmUgZmFzdGVyKQogCSAqLwogCWlmICgoaXNf aXNhX2FyY3YyKCkgJiYgaW9jX2V4aXN0cykgfHwKLQkgICAgZG1hX2dldF9hdHRyKERNQV9BVFRS X05PTl9DT05TSVNURU5ULCBhdHRycykpCisJICAgIChhdHRycyAmIERNQV9BVFRSX05PTl9DT05T SVNURU5UKSkKIAkJbmVlZF9jb2ggPSAwOwogCiAJLyoKQEAgLTk1LDcgKzk1LDcgQEAgc3RhdGlj IHZvaWQgYXJjX2RtYV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIHZvaWQg KnZhZGRyLAogCXN0cnVjdCBwYWdlICpwYWdlID0gdmlydF90b19wYWdlKGRtYV9oYW5kbGUpOwog CWludCBpc19ub25fY29oID0gMTsKIAotCWlzX25vbl9jb2ggPSBkbWFfZ2V0X2F0dHIoRE1BX0FU VFJfTk9OX0NPTlNJU1RFTlQsIGF0dHJzKSB8fAorCWlzX25vbl9jb2ggPSAoYXR0cnMgJiBETUFf QVRUUl9OT05fQ09OU0lTVEVOVCkgfHwKIAkJCShpc19pc2FfYXJjdjIoKSAmJiBpb2NfZXhpc3Rz KTsKIAogCWlmIChQYWdlSGlnaE1lbShwYWdlKSB8fCAhaXNfbm9uX2NvaCkKZGlmZiAtLWdpdCBh L2FyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMgYi9hcmNoL2FybS9tbS9kbWEtbWFwcGluZy5jCmlu ZGV4IGViYjNmZGU5OTA0My4uNDNlMDNiNTI5M2QwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9k bWEtbWFwcGluZy5jCisrKyBiL2FyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMKQEAgLTEyNiw3ICsx MjYsNyBAQCBzdGF0aWMgZG1hX2FkZHJfdCBhcm1fZG1hX21hcF9wYWdlKHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJICAgICB1bnNpZ25lZCBsb25nIG9mZnNldCwgc2l6 ZV90IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKIAkgICAgIHVuc2lnbmVkIGxv bmcgYXR0cnMpCiB7Ci0JaWYgKCFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfU0tJUF9DUFVfU1lOQywg YXR0cnMpKQorCWlmICgoYXR0cnMgJiBETUFfQVRUUl9TS0lQX0NQVV9TWU5DKSA9PSAwKQogCQlf X2RtYV9wYWdlX2NwdV90b19kZXYocGFnZSwgb2Zmc2V0LCBzaXplLCBkaXIpOwogCXJldHVybiBw Zm5fdG9fZG1hKGRldiwgcGFnZV90b19wZm4ocGFnZSkpICsgb2Zmc2V0OwogfQpAQCAtMTU1LDcg KzE1NSw3IEBAIHN0YXRpYyBkbWFfYWRkcl90IGFybV9jb2hlcmVudF9kbWFfbWFwX3BhZ2Uoc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnCiBzdGF0aWMgdm9pZCBhcm1fZG1hX3Vu bWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGhhbmRsZSwKIAkJc2l6ZV90 IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwgdW5zaWduZWQgbG9uZyBhdHRycykK IHsKLQlpZiAoIWRtYV9nZXRfYXR0cihETUFfQVRUUl9TS0lQX0NQVV9TWU5DLCBhdHRycykpCisJ aWYgKChhdHRycyAmIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpID09IDApCiAJCV9fZG1hX3BhZ2Vf ZGV2X3RvX2NwdShwZm5fdG9fcGFnZShkbWFfdG9fcGZuKGRldiwgaGFuZGxlKSksCiAJCQkJICAg ICAgaGFuZGxlICYgflBBR0VfTUFTSywgc2l6ZSwgZGlyKTsKIH0KQEAgLTYyMiw5ICs2MjIsOSBA QCBzdGF0aWMgdm9pZCBfX2ZyZWVfZnJvbV9jb250aWd1b3VzKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IHBhZ2UgKnBhZ2UsCiAKIHN0YXRpYyBpbmxpbmUgcGdwcm90X3QgX19nZXRfZG1hX3Bn cHJvdCh1bnNpZ25lZCBsb25nIGF0dHJzLCBwZ3Byb3RfdCBwcm90KQogewotCXByb3QgPSBkbWFf Z2V0X2F0dHIoRE1BX0FUVFJfV1JJVEVfQ09NQklORSwgYXR0cnMpID8KLQkJCSAgICBwZ3Byb3Rf d3JpdGVjb21iaW5lKHByb3QpIDoKLQkJCSAgICBwZ3Byb3RfZG1hY29oZXJlbnQocHJvdCk7CisJ cHJvdCA9IChhdHRycyAmIERNQV9BVFRSX1dSSVRFX0NPTUJJTkUpID8KKwkJCXBncHJvdF93cml0 ZWNvbWJpbmUocHJvdCkgOgorCQkJcGdwcm90X2RtYWNvaGVyZW50KHByb3QpOwogCXJldHVybiBw cm90OwogfQogCkBAIC03NDQsNyArNzQ0LDcgQEAgc3RhdGljIHZvaWQgKl9fZG1hX2FsbG9jKHN0 cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIGRtYV9hZGRyX3QgKmhhbmRsZSwKIAkJLmdm cCA9IGdmcCwKIAkJLnByb3QgPSBwcm90LAogCQkuY2FsbGVyID0gY2FsbGVyLAotCQkud2FudF92 YWRkciA9ICFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJTkcsIGF0dHJzKSwK KwkJLndhbnRfdmFkZHIgPSAoKGF0dHJzICYgRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJTkcpID09 IDApLAogCX07CiAKICNpZmRlZiBDT05GSUdfRE1BX0FQSV9ERUJVRwpAQCAtODg3LDcgKzg4Nyw3 IEBAIHN0YXRpYyB2b2lkIF9fYXJtX2RtYV9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90 IHNpemUsIHZvaWQgKmNwdV9hZGRyLAogCQkuc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSksCiAJCS5j cHVfYWRkciA9IGNwdV9hZGRyLAogCQkucGFnZSA9IHBhZ2UsCi0JCS53YW50X3ZhZGRyID0gIWRt YV9nZXRfYXR0cihETUFfQVRUUl9OT19LRVJORUxfTUFQUElORywgYXR0cnMpLAorCQkud2FudF92 YWRkciA9ICgoYXR0cnMgJiBETUFfQVRUUl9OT19LRVJORUxfTUFQUElORykgPT0gMCksCiAJfTsK IAogCWJ1ZiA9IGFybV9kbWFfYnVmZmVyX2ZpbmQoY3B1X2FkZHIpOwpAQCAtMTI2Nyw3ICsxMjY3 LDcgQEAgc3RhdGljIHN0cnVjdCBwYWdlICoqX19pb21tdV9hbGxvY19idWZmZXIoc3RydWN0IGRl dmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKIAlpZiAoIXBhZ2VzKQogCQlyZXR1cm4gTlVMTDsKIAot CWlmIChkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUywgYXR0cnMpKQorCWlm IChhdHRycyAmIERNQV9BVFRSX0ZPUkNFX0NPTlRJR1VPVVMpCiAJewogCQl1bnNpZ25lZCBsb25n IG9yZGVyID0gZ2V0X29yZGVyKHNpemUpOwogCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKQEAgLTEyODUs NyArMTI4NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqKl9faW9tbXVfYWxsb2NfYnVmZmVyKHN0 cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJfQogCiAJLyogR28gc3RyYWlnaHQgdG8g NEsgY2h1bmtzIGlmIGNhbGxlciBzYXlzIGl0J3MgT0suICovCi0JaWYgKGRtYV9nZXRfYXR0cihE TUFfQVRUUl9BTExPQ19TSU5HTEVfUEFHRVMsIGF0dHJzKSkKKwlpZiAoYXR0cnMgJiBETUFfQVRU Ul9BTExPQ19TSU5HTEVfUEFHRVMpCiAJCW9yZGVyX2lkeCA9IEFSUkFZX1NJWkUoaW9tbXVfb3Jk ZXJfYXJyYXkpIC0gMTsKIAogCS8qCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBzdGF0aWMgaW50IF9f aW9tbXVfZnJlZV9idWZmZXIoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqKnBhZ2Vz LAogCWludCBjb3VudCA9IHNpemUgPj4gUEFHRV9TSElGVDsKIAlpbnQgaTsKIAotCWlmIChkbWFf Z2V0X2F0dHIoRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUywgYXR0cnMpKSB7CisJaWYgKGF0dHJz ICYgRE1BX0FUVFJfRk9SQ0VfQ09OVElHVU9VUykgewogCQlkbWFfcmVsZWFzZV9mcm9tX2NvbnRp Z3VvdXMoZGV2LCBwYWdlc1swXSwgY291bnQpOwogCX0gZWxzZSB7CiAJCWZvciAoaSA9IDA7IGkg PCBjb3VudDsgaSsrKQpAQCAtMTQ0NSw3ICsxNDQ1LDcgQEAgc3RhdGljIHN0cnVjdCBwYWdlICoq X19pb21tdV9nZXRfcGFnZXModm9pZCAqY3B1X2FkZHIsIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiAJ aWYgKF9faW5fYXRvbWljX3Bvb2woY3B1X2FkZHIsIFBBR0VfU0laRSkpCiAJCXJldHVybiBfX2F0 b21pY19nZXRfcGFnZXMoY3B1X2FkZHIpOwogCi0JaWYgKGRtYV9nZXRfYXR0cihETUFfQVRUUl9O T19LRVJORUxfTUFQUElORywgYXR0cnMpKQorCWlmIChhdHRycyAmIERNQV9BVFRSX05PX0tFUk5F TF9NQVBQSU5HKQogCQlyZXR1cm4gY3B1X2FkZHI7CiAKIAlhcmVhID0gZmluZF92bV9hcmVhKGNw dV9hZGRyKTsKQEAgLTE1MTIsNyArMTUxMiw3IEBAIHN0YXRpYyB2b2lkICphcm1faW9tbXVfYWxs b2NfYXR0cnMoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKIAlpZiAoKmhhbmRsZSA9 PSBETUFfRVJST1JfQ09ERSkKIAkJZ290byBlcnJfYnVmZmVyOwogCi0JaWYgKGRtYV9nZXRfYXR0 cihETUFfQVRUUl9OT19LRVJORUxfTUFQUElORywgYXR0cnMpKQorCWlmIChhdHRycyAmIERNQV9B VFRSX05PX0tFUk5FTF9NQVBQSU5HKQogCQlyZXR1cm4gcGFnZXM7CiAKIAlhZGRyID0gX19pb21t dV9hbGxvY19yZW1hcChwYWdlcywgc2l6ZSwgZ2ZwLCBwcm90LApAQCAtMTU4Myw3ICsxNTgzLDcg QEAgdm9pZCBhcm1faW9tbXVfZnJlZV9hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBz aXplLCB2b2lkICpjcHVfYWRkciwKIAkJcmV0dXJuOwogCX0KIAotCWlmICghZG1hX2dldF9hdHRy KERNQV9BVFRSX05PX0tFUk5FTF9NQVBQSU5HLCBhdHRycykpIHsKKwlpZiAoKGF0dHJzICYgRE1B X0FUVFJfTk9fS0VSTkVMX01BUFBJTkcpID09IDApIHsKIAkJZG1hX2NvbW1vbl9mcmVlX3JlbWFw KGNwdV9hZGRyLCBzaXplLAogCQkJVk1fQVJNX0RNQV9DT05TSVNURU5UIHwgVk1fVVNFUk1BUCk7 CiAJfQpAQCAtMTY1Myw4ICsxNjUzLDcgQEAgc3RhdGljIGludCBfX21hcF9zZ19jaHVuayhzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCiAJCXBoeXNfYWRkcl90IHBo eXMgPSBwYWdlX3RvX3BoeXMoc2dfcGFnZShzKSk7CiAJCXVuc2lnbmVkIGludCBsZW4gPSBQQUdF X0FMSUdOKHMtPm9mZnNldCArIHMtPmxlbmd0aCk7CiAKLQkJaWYgKCFpc19jb2hlcmVudCAmJgot CQkJIWRtYV9nZXRfYXR0cihETUFfQVRUUl9TS0lQX0NQVV9TWU5DLCBhdHRycykpCisJCWlmICgh aXNfY29oZXJlbnQgJiYgKGF0dHJzICYgRE1BX0FUVFJfU0tJUF9DUFVfU1lOQykgPT0gMCkKIAkJ CV9fZG1hX3BhZ2VfY3B1X3RvX2RldihzZ19wYWdlKHMpLCBzLT5vZmZzZXQsIHMtPmxlbmd0aCwg ZGlyKTsKIAogCQlwcm90ID0gX19kbWFfZGlyZWN0aW9uX3RvX3Byb3QoZGlyKTsKQEAgLTE3Njcs OCArMTc2Niw3IEBAIHN0YXRpYyB2b2lkIF9faW9tbXVfdW5tYXBfc2coc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAogCQlpZiAoc2dfZG1hX2xlbihzKSkKIAkJCV9f aW9tbXVfcmVtb3ZlX21hcHBpbmcoZGV2LCBzZ19kbWFfYWRkcmVzcyhzKSwKIAkJCQkJICAgICAg IHNnX2RtYV9sZW4ocykpOwotCQlpZiAoIWlzX2NvaGVyZW50ICYmCi0JCSAgICAhZG1hX2dldF9h dHRyKERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMsIGF0dHJzKSkKKwkJaWYgKCFpc19jb2hlcmVudCAm JiAoYXR0cnMgJiBETUFfQVRUUl9TS0lQX0NQVV9TWU5DKSA9PSAwKQogCQkJX19kbWFfcGFnZV9k ZXZfdG9fY3B1KHNnX3BhZ2UocyksIHMtPm9mZnNldCwKIAkJCQkJICAgICAgcy0+bGVuZ3RoLCBk aXIpOwogCX0KQEAgLTE4OTIsNyArMTg5MCw3IEBAIHN0YXRpYyBkbWFfYWRkcl90IGFybV9pb21t dV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAogCSAgICAg dW5zaWduZWQgbG9uZyBvZmZzZXQsIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlv biBkaXIsCiAJICAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewotCWlmICghZG1hX2dldF9hdHRy KERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMsIGF0dHJzKSkKKwlpZiAoKGF0dHJzICYgRE1BX0FUVFJf U0tJUF9DUFVfU1lOQykgPT0gMCkKIAkJX19kbWFfcGFnZV9jcHVfdG9fZGV2KHBhZ2UsIG9mZnNl dCwgc2l6ZSwgZGlyKTsKIAogCXJldHVybiBhcm1fY29oZXJlbnRfaW9tbXVfbWFwX3BhZ2UoZGV2 LCBwYWdlLCBvZmZzZXQsIHNpemUsIGRpciwgYXR0cnMpOwpAQCAtMTk0Myw3ICsxOTQxLDcgQEAg c3RhdGljIHZvaWQgYXJtX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBkbWFf YWRkcl90IGhhbmRsZSwKIAlpZiAoIWlvdmEpCiAJCXJldHVybjsKIAotCWlmICghZG1hX2dldF9h dHRyKERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMsIGF0dHJzKSkKKwlpZiAoKGF0dHJzICYgRE1BX0FU VFJfU0tJUF9DUFVfU1lOQykgPT0gMCkKIAkJX19kbWFfcGFnZV9kZXZfdG9fY3B1KHBhZ2UsIG9m ZnNldCwgc2l6ZSwgZGlyKTsKIAogCWlvbW11X3VubWFwKG1hcHBpbmctPmRvbWFpbiwgaW92YSwg bGVuKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3hlbi9tbS5jIGIvYXJjaC9hcm0veGVuL21tLmMK aW5kZXggZmM2N2VkMjM2YTEwLi5kMDYyZjA4ZjUwMjAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3hl bi9tbS5jCisrKyBiL2FyY2gvYXJtL3hlbi9tbS5jCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBf X3hlbl9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIHN0cnVjdCBwYWdlICpwYWdl LAogewogCWlmIChpc19kZXZpY2VfZG1hX2NvaGVyZW50KGh3ZGV2KSkKIAkJcmV0dXJuOwotCWlm IChkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfU0tJUF9DUFVfU1lOQywgYXR0cnMpKQorCWlmIChhdHRy cyAmIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpCiAJCXJldHVybjsKIAogCV9feGVuX2RtYV9wYWdl X2NwdV90b19kZXYoaHdkZXYsIGRldl9hZGRyLCBzaXplLCBkaXIpOwpAQCAtMTE1LDcgKzExNSw3 IEBAIHZvaWQgX194ZW5fZG1hX3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqaHdkZXYsIGRtYV9h ZGRyX3QgaGFuZGxlLAogewogCWlmIChpc19kZXZpY2VfZG1hX2NvaGVyZW50KGh3ZGV2KSkKIAkJ cmV0dXJuOwotCWlmIChkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfU0tJUF9DUFVfU1lOQywgYXR0cnMp KQorCWlmIChhdHRycyAmIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpCiAJCXJldHVybjsKIAogCV9f eGVuX2RtYV9wYWdlX2Rldl90b19jcHUoaHdkZXYsIGhhbmRsZSwgc2l6ZSwgZGlyKTsKZGlmZiAt LWdpdCBhL2FyY2gvYXJtNjQvbW0vZG1hLW1hcHBpbmcuYyBiL2FyY2gvYXJtNjQvbW0vZG1hLW1h cHBpbmcuYwppbmRleCBhNzY4NjAyOGRmZWIuLmU3OGJmMjY5ZWU0ZiAxMDA2NDQKLS0tIGEvYXJj aC9hcm02NC9tbS9kbWEtbWFwcGluZy5jCisrKyBiL2FyY2gvYXJtNjQvbW0vZG1hLW1hcHBpbmcu YwpAQCAtMzIsNyArMzIsNyBAQAogc3RhdGljIHBncHJvdF90IF9fZ2V0X2RtYV9wZ3Byb3QodW5z aWduZWQgbG9uZyBhdHRycywgcGdwcm90X3QgcHJvdCwKIAkJCQkgYm9vbCBjb2hlcmVudCkKIHsK LQlpZiAoIWNvaGVyZW50IHx8IGRtYV9nZXRfYXR0cihETUFfQVRUUl9XUklURV9DT01CSU5FLCBh dHRycykpCisJaWYgKCFjb2hlcmVudCB8fCAoYXR0cnMgJiBETUFfQVRUUl9XUklURV9DT01CSU5F KSkKIAkJcmV0dXJuIHBncHJvdF93cml0ZWNvbWJpbmUocHJvdCk7CiAJcmV0dXJuIHByb3Q7CiB9 CkBAIC03MDIsNyArNzAyLDcgQEAgc3RhdGljIGRtYV9hZGRyX3QgX19pb21tdV9tYXBfcGFnZShz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAogCWRtYV9hZGRyX3QgZGV2X2Fk ZHIgPSBpb21tdV9kbWFfbWFwX3BhZ2UoZGV2LCBwYWdlLCBvZmZzZXQsIHNpemUsIHByb3QpOwog CiAJaWYgKCFpb21tdV9kbWFfbWFwcGluZ19lcnJvcihkZXYsIGRldl9hZGRyKSAmJgotCSAgICAh ZG1hX2dldF9hdHRyKERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMsIGF0dHJzKSkKKwkgICAgKGF0dHJz ICYgRE1BX0FUVFJfU0tJUF9DUFVfU1lOQykgPT0gMCkKIAkJX19pb21tdV9zeW5jX3NpbmdsZV9m b3JfZGV2aWNlKGRldiwgZGV2X2FkZHIsIHNpemUsIGRpcik7CiAKIAlyZXR1cm4gZGV2X2FkZHI7 CkBAIC03MTIsNyArNzEyLDcgQEAgc3RhdGljIHZvaWQgX19pb21tdV91bm1hcF9wYWdlKHN0cnVj dCBkZXZpY2UgKmRldiwgZG1hX2FkZHJfdCBkZXZfYWRkciwKIAkJCSAgICAgICBzaXplX3Qgc2l6 ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAogCQkJICAgICAgIHVuc2lnbmVkIGxvbmcg YXR0cnMpCiB7Ci0JaWYgKCFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfU0tJUF9DUFVfU1lOQywgYXR0 cnMpKQorCWlmICgoYXR0cnMgJiBETUFfQVRUUl9TS0lQX0NQVV9TWU5DID09IDApCiAJCV9faW9t bXVfc3luY19zaW5nbGVfZm9yX2NwdShkZXYsIGRldl9hZGRyLCBzaXplLCBkaXIpOwogCiAJaW9t bXVfZG1hX3VubWFwX3BhZ2UoZGV2LCBkZXZfYWRkciwgc2l6ZSwgZGlyLCBhdHRycyk7CkBAIC03 NTIsNyArNzUyLDcgQEAgc3RhdGljIGludCBfX2lvbW11X21hcF9zZ19hdHRycyhzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2dsLAogewogCWJvb2wgY29oZXJlbnQgPSBp c19kZXZpY2VfZG1hX2NvaGVyZW50KGRldik7CiAKLQlpZiAoIWRtYV9nZXRfYXR0cihETUFfQVRU Ul9TS0lQX0NQVV9TWU5DLCBhdHRycykpCisJaWYgKChhdHRycyAmIERNQV9BVFRSX1NLSVBfQ1BV X1NZTkMgPT0gMCkKIAkJX19pb21tdV9zeW5jX3NnX2Zvcl9kZXZpY2UoZGV2LCBzZ2wsIG5lbGVt cywgZGlyKTsKIAogCXJldHVybiBpb21tdV9kbWFfbWFwX3NnKGRldiwgc2dsLCBuZWxlbXMsCkBA IC03NjQsNyArNzY0LDcgQEAgc3RhdGljIHZvaWQgX19pb21tdV91bm1hcF9zZ19hdHRycyhzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJCQkJICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyLAogCQkJ CSAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7Ci0JaWYgKCFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJf U0tJUF9DUFVfU1lOQywgYXR0cnMpKQorCWlmICgoYXR0cnMgJiBETUFfQVRUUl9TS0lQX0NQVV9T WU5DID09IDApCiAJCV9faW9tbXVfc3luY19zZ19mb3JfY3B1KGRldiwgc2dsLCBuZWxlbXMsIGRp cik7CiAKIAlpb21tdV9kbWFfdW5tYXBfc2coZGV2LCBzZ2wsIG5lbGVtcywgZGlyLCBhdHRycyk7 CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21tL2RtYS1jb2hlcmVudC5jIGIvYXJjaC9hdnIzMi9t bS9kbWEtY29oZXJlbnQuYwppbmRleCBmYzUxZjQ0MjE5MzMuLjU4NjEwZDBkZjdlZCAxMDA2NDQK LS0tIGEvYXJjaC9hdnIzMi9tbS9kbWEtY29oZXJlbnQuYworKysgYi9hcmNoL2F2cjMyL21tL2Rt YS1jb2hlcmVudC5jCkBAIC0xMDksNyArMTA5LDcgQEAgc3RhdGljIHZvaWQgKmF2cjMyX2RtYV9h bGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCQlyZXR1cm4gTlVMTDsKIAlw aHlzID0gcGFnZV90b19waHlzKHBhZ2UpOwogCi0JaWYgKGRtYV9nZXRfYXR0cihETUFfQVRUUl9X UklURV9DT01CSU5FLCBhdHRycykpIHsKKwlpZiAoYXR0cnMgJiBETUFfQVRUUl9XUklURV9DT01C SU5FKSB7CiAJCS8qIE5vdywgbWFwIHRoZSBwYWdlIGludG8gUDMgd2l0aCB3cml0ZS1jb21iaW5p bmcgdHVybmVkIG9uICovCiAJCSpoYW5kbGUgPSBwaHlzOwogCQlyZXR1cm4gX19pb3JlbWFwKHBo eXMsIHNpemUsIF9QQUdFX0JVRkZFUik7CkBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIHZvaWQg YXZyMzJfZG1hX2ZyZWUoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwKIHsKIAlzdHJ1 Y3QgcGFnZSAqcGFnZTsKIAotCWlmIChkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfV1JJVEVfQ09NQklO RSwgYXR0cnMpKSB7CisJaWYgKGF0dHJzICYgRE1BX0FUVFJfV1JJVEVfQ09NQklORSkgewogCQlp b3VubWFwKGNwdV9hZGRyKTsKIAogCQlwYWdlID0gcGh5c190b19wYWdlKGhhbmRsZSk7CmRpZmYg LS1naXQgYS9hcmNoL2lhNjQvc24vcGNpL3BjaV9kbWEuYyBiL2FyY2gvaWE2NC9zbi9wY2kvcGNp X2RtYS5jCmluZGV4IDZiNzhmYzk1M2M0Yi4uNzRjOTM0YTk5N2JiIDEwMDY0NAotLS0gYS9hcmNo L2lhNjQvc24vcGNpL3BjaV9kbWEuYworKysgYi9hcmNoL2lhNjQvc24vcGNpL3BjaV9kbWEuYwpA QCAtMTgzLDE0ICsxODMsMTEgQEAgc3RhdGljIGRtYV9hZGRyX3Qgc25fZG1hX21hcF9wYWdlKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJdW5zaWduZWQgbG9uZyBwaHlz X2FkZHI7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7CiAJc3RydWN0 IHNuX3BjaWJ1c19wcm92aWRlciAqcHJvdmlkZXIgPSBTTl9QQ0lERVZfQlVTUFJPVklERVIocGRl dik7Ci0JaW50IGRtYWJhcnI7Ci0KLQlkbWFiYXJyID0gZG1hX2dldF9hdHRyKERNQV9BVFRSX1dS SVRFX0JBUlJJRVIsIGF0dHJzKTsKIAogCUJVR19PTighZGV2X2lzX3BjaShkZXYpKTsKIAogCXBo eXNfYWRkciA9IF9fcGEoY3B1X2FkZHIpOwotCWlmIChkbWFiYXJyKQorCWlmIChhdHRycyAmIERN QV9BVFRSX1dSSVRFX0JBUlJJRVIpCiAJCWRtYV9hZGRyID0gcHJvdmlkZXItPmRtYV9tYXBfY29u c2lzdGVudChwZGV2LCBwaHlzX2FkZHIsCiAJCQkJCQkJc2l6ZSwgU05fRE1BX0FERFJfUEhZUyk7 CiAJZWxzZQpAQCAtMjgwLDkgKzI3Nyw2IEBAIHN0YXRpYyBpbnQgc25fZG1hX21hcF9zZyhzdHJ1 Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2dsLAogCXN0cnVjdCBwY2lfZGV2 ICpwZGV2ID0gdG9fcGNpX2RldihkZXYpOwogCXN0cnVjdCBzbl9wY2lidXNfcHJvdmlkZXIgKnBy b3ZpZGVyID0gU05fUENJREVWX0JVU1BST1ZJREVSKHBkZXYpOwogCWludCBpOwotCWludCBkbWFi YXJyOwotCi0JZG1hYmFyciA9IGRtYV9nZXRfYXR0cihETUFfQVRUUl9XUklURV9CQVJSSUVSLCBh dHRycyk7CiAKIAlCVUdfT04oIWRldl9pc19wY2koZGV2KSk7CiAKQEAgLTI5Miw3ICsyODYsNyBA QCBzdGF0aWMgaW50IHNuX2RtYV9tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2Nh dHRlcmxpc3QgKnNnbCwKIAlmb3JfZWFjaF9zZyhzZ2wsIHNnLCBuaHdlbnRyaWVzLCBpKSB7CiAJ CWRtYV9hZGRyX3QgZG1hX2FkZHI7CiAJCXBoeXNfYWRkciA9IFNHX0VOVF9QSFlTX0FERFJFU1Mo c2cpOwotCQlpZiAoZG1hYmFycikKKwkJaWYgKGF0dHJzICYgRE1BX0FUVFJfV1JJVEVfQkFSUklF UikKIAkJCWRtYV9hZGRyID0gcHJvdmlkZXItPmRtYV9tYXBfY29uc2lzdGVudChwZGV2LAogCQkJ CQkJCQlwaHlzX2FkZHIsCiAJCQkJCQkJCXNnLT5sZW5ndGgsCmRpZmYgLS1naXQgYS9hcmNoL21l dGFnL2tlcm5lbC9kbWEuYyBiL2FyY2gvbWV0YWcva2VybmVsL2RtYS5jCmluZGV4IGQ2OGY0OThl ODJhMS4uMGRiMzFlMjRjNTQxIDEwMDY0NAotLS0gYS9hcmNoL21ldGFnL2tlcm5lbC9kbWEuYwor KysgYi9hcmNoL21ldGFnL2tlcm5lbC9kbWEuYwpAQCAtMzM3LDcgKzMzNyw3IEBAIHN0YXRpYyBp bnQgbWV0YWdfZG1hX21tYXAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSwKIAlzdHJ1Y3QgbWV0YWdfdm1fcmVnaW9uICpjOwogCWludCByZXQgPSAtRU5YSU87 CiAKLQlpZiAoZG1hX2dldF9hdHRyKERNQV9BVFRSX1dSSVRFX0NPTUJJTkUsIGF0dHJzKSkKKwlp ZiAoYXR0cnMgJiBETUFfQVRUUl9XUklURV9DT01CSU5FKQogCQl2bWEtPnZtX3BhZ2VfcHJvdCA9 IHBncHJvdF93cml0ZWNvbWJpbmUodm1hLT52bV9wYWdlX3Byb3QpOwogCWVsc2UKIAkJdm1hLT52 bV9wYWdlX3Byb3QgPSBwZ3Byb3Rfbm9uY2FjaGVkKHZtYS0+dm1fcGFnZV9wcm90KTsKZGlmZiAt LWdpdCBhL2FyY2gvbWlwcy9tbS9kbWEtZGVmYXVsdC5jIGIvYXJjaC9taXBzL21tL2RtYS1kZWZh dWx0LmMKaW5kZXggYzkwNTIxMDgwOTRmLi4wMzA2ZGQwZjMwMGEgMTAwNjQ0Ci0tLSBhL2FyY2gv bWlwcy9tbS9kbWEtZGVmYXVsdC5jCisrKyBiL2FyY2gvbWlwcy9tbS9kbWEtZGVmYXVsdC5jCkBA IC0xNDEsNyArMTQxLDcgQEAgc3RhdGljIHZvaWQgKm1pcHNfZG1hX2FsbG9jX2NvaGVyZW50KHN0 cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiAJICogWFhYOiBzZWVtcyBsaWtlIHRoZSBj b2hlcmVudCBhbmQgbm9uLWNvaGVyZW50IGltcGxlbWVudGF0aW9ucyBjb3VsZAogCSAqIGJlIGNv bnNvbGlkYXRlZC4KIAkgKi8KLQlpZiAoZG1hX2dldF9hdHRyKERNQV9BVFRSX05PTl9DT05TSVNU RU5ULCBhdHRycykpCisJaWYgKGF0dHJzICYgRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQpCiAJCXJl dHVybiBtaXBzX2RtYV9hbGxvY19ub25jb2hlcmVudChkZXYsIHNpemUsIGRtYV9oYW5kbGUsIGdm cCk7CiAKIAlnZnAgPSBtYXNzYWdlX2dmcF9mbGFncyhkZXYsIGdmcCk7CkBAIC0xODIsNyArMTgy LDcgQEAgc3RhdGljIHZvaWQgbWlwc19kbWFfZnJlZV9jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpk ZXYsIHNpemVfdCBzaXplLCB2b2lkICp2YWRkciwKIAl1bnNpZ25lZCBpbnQgY291bnQgPSBQQUdF X0FMSUdOKHNpemUpID4+IFBBR0VfU0hJRlQ7CiAJc3RydWN0IHBhZ2UgKnBhZ2UgPSBOVUxMOwog Ci0JaWYgKGRtYV9nZXRfYXR0cihETUFfQVRUUl9OT05fQ09OU0lTVEVOVCwgYXR0cnMpKSB7CisJ aWYgKGF0dHJzICYgRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQpIHsKIAkJbWlwc19kbWFfZnJlZV9u b25jb2hlcmVudChkZXYsIHNpemUsIHZhZGRyLCBkbWFfaGFuZGxlKTsKIAkJcmV0dXJuOwogCX0K QEAgLTIxNCw3ICsyMTQsNyBAQCBzdGF0aWMgaW50IG1pcHNfZG1hX21tYXAoc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAogCXBmbiA9IHBhZ2VfdG9fcGZu KHZpcnRfdG9fcGFnZSgodm9pZCAqKWFkZHIpKTsKIAotCWlmIChkbWFfZ2V0X2F0dHIoRE1BX0FU VFJfV1JJVEVfQ09NQklORSwgYXR0cnMpKQorCWlmIChhdHRycyAmIERNQV9BVFRSX1dSSVRFX0NP TUJJTkUpCiAJCXZtYS0+dm1fcGFnZV9wcm90ID0gcGdwcm90X3dyaXRlY29tYmluZSh2bWEtPnZt X3BhZ2VfcHJvdCk7CiAJZWxzZQogCQl2bWEtPnZtX3BhZ2VfcHJvdCA9IHBncHJvdF9ub25jYWNo ZWQodm1hLT52bV9wYWdlX3Byb3QpOwpkaWZmIC0tZ2l0IGEvYXJjaC9vcGVucmlzYy9rZXJuZWwv ZG1hLmMgYi9hcmNoL29wZW5yaXNjL2tlcm5lbC9kbWEuYwppbmRleCA1MGViMWYyNmM1NDAuLjE0 MGM5OTE0MDY0OSAxMDA2NDQKLS0tIGEvYXJjaC9vcGVucmlzYy9rZXJuZWwvZG1hLmMKKysrIGIv YXJjaC9vcGVucmlzYy9rZXJuZWwvZG1hLmMKQEAgLTEwMCw3ICsxMDAsNyBAQCBvcjFrX2RtYV9h bGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCiAJdmEgPSAodW5zaWduZWQg bG9uZylwYWdlOwogCi0JaWYgKCFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQs IGF0dHJzKSkgeworCWlmICgoYXR0cnMgJiBETUFfQVRUUl9OT05fQ09OU0lTVEVOVCkgPT0gMCkg ewogCQkvKgogCQkgKiBXZSBuZWVkIHRvIGl0ZXJhdGUgdGhyb3VnaCB0aGUgcGFnZXMsIGNsZWFy aW5nIHRoZSBkY2FjaGUgZm9yCiAJCSAqIHRoZW0gYW5kIHNldHRpbmcgdGhlIGNhY2hlLWluaGli aXQgYml0LgpAQCAtMTI0LDcgKzEyNCw3IEBAIG9yMWtfZG1hX2ZyZWUoc3RydWN0IGRldmljZSAq ZGV2LCBzaXplX3Qgc2l6ZSwgdm9pZCAqdmFkZHIsCiAJCS5tbSA9ICZpbml0X21tCiAJfTsKIAot CWlmICghZG1hX2dldF9hdHRyKERNQV9BVFRSX05PTl9DT05TSVNURU5ULCBhdHRycykpIHsKKwlp ZiAoKGF0dHJzICYgRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQpID09IDApIHsKIAkJLyogd2Fsa19w YWdlX3JhbmdlIHNob3VsZG4ndCBiZSBhYmxlIHRvIGZhaWwgaGVyZSAqLwogCQlXQVJOX09OKHdh bGtfcGFnZV9yYW5nZSh2YSwgdmEgKyBzaXplLCAmd2FsaykpOwogCX0KZGlmZiAtLWdpdCBhL2Fy Y2gvcGFyaXNjL2tlcm5lbC9wY2ktZG1hLmMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcGNpLWRtYS5j CmluZGV4IDg0NWZkZDUyZTRjNS4uMDJkOWVkMGYzOTQ5IDEwMDY0NAotLS0gYS9hcmNoL3Bhcmlz Yy9rZXJuZWwvcGNpLWRtYS5jCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wY2ktZG1hLmMKQEAg LTU4MSw3ICs1ODEsNyBAQCBzdGF0aWMgdm9pZCAqcGN4X2RtYV9hbGxvYyhzdHJ1Y3QgZGV2aWNl ICpkZXYsIHNpemVfdCBzaXplLAogewogCXZvaWQgKmFkZHI7CiAKLQlpZiAoIWRtYV9nZXRfYXR0 cihETUFfQVRUUl9OT05fQ09OU0lTVEVOVCwgYXR0cnMpKQorCWlmICgoYXR0cnMgJiBETUFfQVRU Ul9OT05fQ09OU0lTVEVOVCkgPT0gMCkKIAkJcmV0dXJuIE5VTEw7CiAKIAlhZGRyID0gKHZvaWQg KilfX2dldF9mcmVlX3BhZ2VzKGZsYWcsIGdldF9vcmRlcihzaXplKSk7CmRpZmYgLS1naXQgYS9h cmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvaW9tbXUuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9y bXMvY2VsbC9pb21tdS5jCmluZGV4IDVkMWE3ZWYzZmRlZS4uMjAxOGU1NjJkMTI0IDEwMDY0NAot LS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvaW9tbXUuYworKysgYi9hcmNoL3Bvd2Vy cGMvcGxhdGZvcm1zL2NlbGwvaW9tbXUuYwpAQCAtMTkzLDcgKzE5Myw3IEBAIHN0YXRpYyBpbnQg dGNlX2J1aWxkX2NlbGwoc3RydWN0IGlvbW11X3RhYmxlICp0YmwsIGxvbmcgaW5kZXgsIGxvbmcg bnBhZ2VzLAogCWJhc2VfcHRlID0gQ0JFX0lPUFRFX1BQX1cgfCBDQkVfSU9QVEVfUFBfUiB8IENC RV9JT1BURV9NIHwKIAkJQ0JFX0lPUFRFX1NPX1JXIHwgKHdpbmRvdy0+aW9pZCAmIENCRV9JT1BU RV9JT0lEX01hc2spOwogI2VuZGlmCi0JaWYgKHVubGlrZWx5KGRtYV9nZXRfYXR0cihETUFfQVRU Ul9XRUFLX09SREVSSU5HLCBhdHRycykpKQorCWlmICh1bmxpa2VseShhdHRycyAmIERNQV9BVFRS X1dFQUtfT1JERVJJTkcpKQogCQliYXNlX3B0ZSAmPSB+Q0JFX0lPUFRFX1NPX1JXOwogCiAJaW9f cHRlID0gKHVuc2lnbmVkIGxvbmcgKil0YmwtPml0X2Jhc2UgKyAoaW5kZXggLSB0YmwtPml0X29m ZnNldCk7CkBAIC02MDAsNyArNjAwLDcgQEAgc3RhdGljIGRtYV9hZGRyX3QgZG1hX2ZpeGVkX21h cF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJCQkJICAgICBl bnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXJlY3Rpb24sCiAJCQkJICAgICB1bnNpZ25lZCBsb25n IGF0dHJzKQogewotCWlmIChpb21tdV9maXhlZF9pc193ZWFrID09IGRtYV9nZXRfYXR0cihETUFf QVRUUl9XRUFLX09SREVSSU5HLCBhdHRycykpCisJaWYgKGlvbW11X2ZpeGVkX2lzX3dlYWsgPT0g KGF0dHJzICYgRE1BX0FUVFJfV0VBS19PUkRFUklORykpCiAJCXJldHVybiBkbWFfZGlyZWN0X29w cy5tYXBfcGFnZShkZXYsIHBhZ2UsIG9mZnNldCwgc2l6ZSwKIAkJCQkJICAgICAgIGRpcmVjdGlv biwgYXR0cnMpOwogCWVsc2UKQEAgLTYxMyw3ICs2MTMsNyBAQCBzdGF0aWMgdm9pZCBkbWFfZml4 ZWRfdW5tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGRtYV9hZGRyX3QgZG1hX2FkZHIsCiAJ CQkJIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXJlY3Rpb24sCiAJCQkJ IHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7Ci0JaWYgKGlvbW11X2ZpeGVkX2lzX3dlYWsgPT0gZG1h X2dldF9hdHRyKERNQV9BVFRSX1dFQUtfT1JERVJJTkcsIGF0dHJzKSkKKwlpZiAoaW9tbXVfZml4 ZWRfaXNfd2VhayA9PSAoYXR0cnMgJiBETUFfQVRUUl9XRUFLX09SREVSSU5HKSkKIAkJZG1hX2Rp cmVjdF9vcHMudW5tYXBfcGFnZShkZXYsIGRtYV9hZGRyLCBzaXplLCBkaXJlY3Rpb24sCiAJCQkJ CSAgYXR0cnMpOwogCWVsc2UKQEAgLTYyNSw3ICs2MjUsNyBAQCBzdGF0aWMgaW50IGRtYV9maXhl ZF9tYXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAogCQkJ ICAgaW50IG5lbnRzLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXJlY3Rpb24sCiAJCQkgICB1 bnNpZ25lZCBsb25nIGF0dHJzKQogewotCWlmIChpb21tdV9maXhlZF9pc193ZWFrID09IGRtYV9n ZXRfYXR0cihETUFfQVRUUl9XRUFLX09SREVSSU5HLCBhdHRycykpCisJaWYgKGlvbW11X2ZpeGVk X2lzX3dlYWsgPT0gKGF0dHJzICYgRE1BX0FUVFJfV0VBS19PUkRFUklORykpCiAJCXJldHVybiBk bWFfZGlyZWN0X29wcy5tYXBfc2coZGV2LCBzZywgbmVudHMsIGRpcmVjdGlvbiwgYXR0cnMpOwog CWVsc2UKIAkJcmV0dXJuIHBwY19pb21tdV9tYXBfc2coZGV2LCBjZWxsX2dldF9pb21tdV90YWJs ZShkZXYpLCBzZywKQEAgLTYzNyw3ICs2MzcsNyBAQCBzdGF0aWMgdm9pZCBkbWFfZml4ZWRfdW5t YXBfc2coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLAogCQkJICAg ICAgIGludCBuZW50cywgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyZWN0aW9uLAogCQkJICAg ICAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7Ci0JaWYgKGlvbW11X2ZpeGVkX2lzX3dlYWsgPT0g ZG1hX2dldF9hdHRyKERNQV9BVFRSX1dFQUtfT1JERVJJTkcsIGF0dHJzKSkKKwlpZiAoaW9tbXVf Zml4ZWRfaXNfd2VhayA9PSAoYXR0cnMgJiBETUFfQVRUUl9XRUFLX09SREVSSU5HKSkKIAkJZG1h X2RpcmVjdF9vcHMudW5tYXBfc2coZGV2LCBzZywgbmVudHMsIGRpcmVjdGlvbiwgYXR0cnMpOwog CWVsc2UKIAkJcHBjX2lvbW11X3VubWFwX3NnKGNlbGxfZ2V0X2lvbW11X3RhYmxlKGRldiksIHNn LCBuZW50cywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9k cm1fZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5jCmlu ZGV4IDdiMTc4OGUyYTgwOC4uNGEyOGQ2MzQ4Yzc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9kcm1fZ2VtLmMKQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkICpyb2NrY2hp cF9nZW1fcHJpbWVfdm1hcChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaikKIHsKIAlzdHJ1Y3Qg cm9ja2NoaXBfZ2VtX29iamVjdCAqcmtfb2JqID0gdG9fcm9ja2NoaXBfb2JqKG9iaik7CiAKLQlp ZiAoZG1hX2dldF9hdHRyKERNQV9BVFRSX05PX0tFUk5FTF9NQVBQSU5HLCBya19vYmotPmRtYV9h dHRycykpCisJaWYgKHJrX29iai0+ZG1hX2F0dHJzICYgRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJ TkcpCiAJCXJldHVybiBOVUxMOwogCiAJcmV0dXJuIHJrX29iai0+a3ZhZGRyOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9pb21tdS9kbWEtaW9tbXUuYyBiL2RyaXZlcnMvaW9tbXUvZG1hLWlvbW11LmMK aW5kZXggNmMxYmRhNTA0ZmIxLi4wOGExZTJmMzY5MGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW9t bXUvZG1hLWlvbW11LmMKKysrIGIvZHJpdmVycy9pb21tdS9kbWEtaW9tbXUuYwpAQCAtMzA2LDcg KzMwNiw3IEBAIHN0cnVjdCBwYWdlICoqaW9tbXVfZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRl diwgc2l6ZV90IHNpemUsIGdmcF90IGdmcCwKIAl9IGVsc2UgewogCQlzaXplID0gQUxJR04oc2l6 ZSwgbWluX3NpemUpOwogCX0KLQlpZiAoZG1hX2dldF9hdHRyKERNQV9BVFRSX0FMTE9DX1NJTkdM RV9QQUdFUywgYXR0cnMpKQorCWlmIChhdHRycyAmIERNQV9BVFRSX0FMTE9DX1NJTkdMRV9QQUdF UykKIAkJYWxsb2Nfc2l6ZXMgPSBtaW5fc2l6ZTsKIAogCWNvdW50ID0gUEFHRV9BTElHTihzaXpl KSA+PiBQQUdFX1NISUZUOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlk ZW9idWYyLWRtYS1jb250aWcuYyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi1k bWEtY29udGlnLmMKaW5kZXggODAwOWE1ODIzMjZiLi5kMmFiNTQxNjE0YjggMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi1kbWEtY29udGlnLmMKKysrIGIvZHJp dmVycy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLWRtYS1jb250aWcuYwpAQCAtMTYwLDcgKzE2 MCw3IEBAIHN0YXRpYyB2b2lkICp2YjJfZGNfYWxsb2Modm9pZCAqYWxsb2NfY3R4LCB1bnNpZ25l ZCBsb25nIHNpemUsCiAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCX0KIAotCWlmICghZG1h X2dldF9hdHRyKERNQV9BVFRSX05PX0tFUk5FTF9NQVBQSU5HLCBidWYtPmF0dHJzKSkKKwlpZiAo KGJ1Zi0+YXR0cnMgJiBETUFfQVRUUl9OT19LRVJORUxfTUFQUElORykgPT0gMCkKIAkJYnVmLT52 YWRkciA9IGJ1Zi0+Y29va2llOwogCiAJLyogUHJldmVudCB0aGUgZGV2aWNlIGZyb20gYmVpbmcg cmVsZWFzZWQgd2hpbGUgdGhlIGJ1ZmZlciBpcyB1c2VkICovCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2RtYS1tYXBwaW5nLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1tYXBwaW5nLmgKaW5kZXgg Yjc1MmI5Y2NlYzc4Li42ZDAxM2JhOTQyMTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZG1h LW1hcHBpbmcuaAorKysgYi9pbmNsdWRlL2xpbnV4L2RtYS1tYXBwaW5nLmgKQEAgLTEwMSwxOSAr MTAxLDYgQEAgc3RhdGljIGlubGluZSBpbnQgaXNfZGV2aWNlX2RtYV9jYXBhYmxlKHN0cnVjdCBk ZXZpY2UgKmRldikKIAlyZXR1cm4gZGV2LT5kbWFfbWFzayAhPSBOVUxMICYmICpkZXYtPmRtYV9t YXNrICE9IERNQV9NQVNLX05PTkU7CiB9CiAKLS8qKgotICogZG1hX2dldF9hdHRyIC0gY2hlY2sg Zm9yIGEgc3BlY2lmaWMgYXR0cmlidXRlCi0gKiBAYXR0cjogYXR0cmlidXRlIHRvIGxvb2sgZm9y Ci0gKiBAYXR0cnM6IGF0dHJpYnV0ZXMgdG8gY2hlY2sgd2l0aGluCi0gKgotICogVW5saWtlIGFs bCBvdGhlciBkbWEtbWFwcGluZyBmdW5jdGlvbnMsIHRoaXMgb25lIGdldHMgcG9pbnRlciB0bwot ICogYXR0cmlidXRlcyAoZm9yIG9sZC1jb2RlIGNvbXBhdGlibGl0eSByZWFzb25zKS4KLSAqLwot c3RhdGljIGlubGluZSBib29sIGRtYV9nZXRfYXR0cih1bnNpZ25lZCBsb25nIGF0dHIsIHVuc2ln bmVkIGxvbmcgYXR0cnMpCi17Ci0JcmV0dXJuICEhKGF0dHIgJiBhdHRycyk7Ci19Ci0KICNpZmRl ZiBDT05GSUdfSEFWRV9HRU5FUklDX0RNQV9DT0hFUkVOVAogLyoKICAqIFRoZXNlIHRocmVlIGZ1 bmN0aW9ucyBhcmUgb25seSBmb3IgZG1hIGFsbG9jYXRvci4KLS0gCjEuOS4xCgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK