From mboxrd@z Thu Jan 1 00:00:00 1970 From: Krzysztof Kozlowski Subject: [PATCH v5 43/44] dma-mapping: Remove dma_get_attr Date: Thu, 30 Jun 2016 10:26:10 +0200 Message-ID: <1467275171-6298-43-git-send-email-k.kozlowski__147.368646185164$1467275382$gmane$org@samsung.com> References: <1467275019-30789-1-git-send-email-k.kozlowski@samsung.com> <1467275171-6298-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bIXKs-0004lJ-Ef for xen-devel@lists.xenproject.org; Thu, 30 Jun 2016 08:28:34 +0000 Received: from eucpsbgm2.samsung.com (unknown [203.254.199.245]) by mailout2.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0O9K000K5SVJLX80@mailout2.w1.samsung.com> for xen-devel@lists.xenproject.org; Thu, 30 Jun 2016 09:28:31 +0100 (BST) In-reply-to: <1467275171-6298-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: Andrew Morton Cc: linux-mips@linux-mips.org, Krzysztof Kozlowski , linux-ia64@vger.kernel.org, Heiko Stuebner , linux-doc@vger.kernel.org, David Airlie , Benjamin Herrenschmidt , Will Deacon , dri-devel@lists.freedesktop.org, "James E.J. Bottomley" , Paul Mackerras , Hans-Christian Egtvedt , Jonas Bonn , Stefano Stabellini , Pawel Osciak , linux-snps-arc@lists.infradead.org, Jonathan Corbet , Michael Ellerman , Helge Deller , Russell King , iommu@lists.linux-foundation.org, hch@infradead.org, linux-rockchip@lists.infradead.org, Catalin Marinas , xen-devel@lists.xe List-Id: xen-devel@lists.xenproject.org QWZ0ZXIgc3dpdGNoaW5nIERNQSBhdHRyaWJ1dGVzIHRvIHVuc2lnbmVkIGxvbmcgaXQgaXMgZWFz aWVyIHRvIGp1c3QKY29tcGFyZSB0aGUgYml0cy4KClNpZ25lZC1vZmYtYnk6IEtyenlzenRvZiBL b3psb3dza2kgPGsua296bG93c2tpQHNhbXN1bmcuY29tPgpbZm9yIGF2cjMyXQpBY2tlZC1ieTog SGFucy1DaHJpc3RpYW4gTm9yZW4gRWd0dmVkdCA8ZWd0dmVkdEBzYW1mdW5kZXQubm8+Cltmb3Ig YXJjXQpBY2tlZC1ieTogVmluZWV0IEd1cHRhIDx2Z3VwdGFAc3lub3BzeXMuY29tPgpbZm9yIGFy bTY0IGFuZCBkbWEtaW9tbXVdCkFja2VkLWJ5OiBSb2JpbiBNdXJwaHkgPHJvYmluLm11cnBoeUBh cm0uY29tPgotLS0KIERvY3VtZW50YXRpb24vRE1BLUFQSS50eHQgICAgICAgICAgICAgICAgICAg ICAgfCAgNCArLS0KIGFyY2gvYXJjL21tL2RtYS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNCArLS0KIGFyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMgICAgICAgICAgICAgICAgICAg ICAgfCAzNiArKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogYXJjaC9hcm0veGVuL21tLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQogYXJjaC9hcm02NC9tbS9kbWEtbWFw cGluZy5jICAgICAgICAgICAgICAgICAgICB8IDEwICsrKy0tLS0KIGFyY2gvYXZyMzIvbW0vZG1h LWNvaGVyZW50LmMgICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIGFyY2gvaWE2NC9zbi9wY2kv cGNpX2RtYS5jICAgICAgICAgICAgICAgICAgICAgfCAxMCArKy0tLS0tCiBhcmNoL21ldGFnL2tl cm5lbC9kbWEuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvbWlwcy9tbS9k bWEtZGVmYXVsdC5jICAgICAgICAgICAgICAgICAgICAgfCAgNiArKy0tLQogYXJjaC9vcGVucmlz Yy9rZXJuZWwvZG1hLmMgICAgICAgICAgICAgICAgICAgICB8ICA0ICstLQogYXJjaC9wYXJpc2Mv a2VybmVsL3BjaS1kbWEuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL3Bvd2VycGMv cGxhdGZvcm1zL2NlbGwvaW9tbXUuYyAgICAgICAgICAgIHwgMTIgKysrKy0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5jICAgIHwgIDIgKy0KIGRyaXZlcnMv aW9tbXUvZG1hLWlvbW11LmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9t ZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLWRtYS1jb250aWcuYyB8ICAyICstCiBpbmNsdWRlL2xp bnV4L2RtYS1tYXBwaW5nLmggICAgICAgICAgICAgICAgICAgIHwgMTAgLS0tLS0tLQogMTYgZmls ZXMgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgNjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvRG9jdW1lbnRhdGlvbi9ETUEtQVBJLnR4dCBiL0RvY3VtZW50YXRpb24vRE1BLUFQSS50eHQK aW5kZXggMjRmOTY4OGJiOThhLi4xZDI2ZWViNmI1ZjYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRp b24vRE1BLUFQSS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9ETUEtQVBJLnR4dApAQCAtNDIyLDkg KzQyMiw3IEBAIHZvaWQgd2hpemNvX2RtYV9tYXBfc2dfYXR0cnMoc3RydWN0IGRldmljZSAqZGV2 LCBkbWFfYWRkcl90IGRtYV9hZGRyLAogCQkJICAgICB1bnNpZ25lZCBsb25nIGF0dHJzKQogewog CS4uLi4KLQlpbnQgZm9vID0gIGRtYV9nZXRfYXR0cihETUFfQVRUUl9GT08sIGF0dHJzKTsKLQku Li4uCi0JaWYgKGZvbykKKwlpZiAoYXR0cnMgJiBETUFfQVRUUl9GT08pCiAJCS8qIHR3aXp6bGUg dGhlIGZyb2Jub3p6bGUgKi8KIAkuLi4uCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJjL21tL2RtYS5j IGIvYXJjaC9hcmMvbW0vZG1hLmMKaW5kZXggM2QxZjQ2N2QxNzkyLi43NGJiZTY4ZGNlOWQgMTAw NjQ0Ci0tLSBhL2FyY2gvYXJjL21tL2RtYS5jCisrKyBiL2FyY2gvYXJjL21tL2RtYS5jCkBAIC00 Niw3ICs0Niw3IEBAIHN0YXRpYyB2b2lkICphcmNfZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRl diwgc2l6ZV90IHNpemUsCiAJICogICAodnMuIGFsd2F5cyBnb2luZyB0byBtZW1vcnkgLSB0aHVz IGFyZSBmYXN0ZXIpCiAJICovCiAJaWYgKChpc19pc2FfYXJjdjIoKSAmJiBpb2NfZXhpc3RzKSB8 fAotCSAgICBkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQsIGF0dHJzKSkKKwkg ICAgKGF0dHJzICYgRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQpKQogCQluZWVkX2NvaCA9IDA7CiAK IAkvKgpAQCAtOTUsNyArOTUsNyBAQCBzdGF0aWMgdm9pZCBhcmNfZG1hX2ZyZWUoc3RydWN0IGRl dmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgdm9pZCAqdmFkZHIsCiAJc3RydWN0IHBhZ2UgKnBhZ2Ug PSB2aXJ0X3RvX3BhZ2UoZG1hX2hhbmRsZSk7CiAJaW50IGlzX25vbl9jb2ggPSAxOwogCi0JaXNf bm9uX2NvaCA9IGRtYV9nZXRfYXR0cihETUFfQVRUUl9OT05fQ09OU0lTVEVOVCwgYXR0cnMpIHx8 CisJaXNfbm9uX2NvaCA9IChhdHRycyAmIERNQV9BVFRSX05PTl9DT05TSVNURU5UKSB8fAogCQkJ KGlzX2lzYV9hcmN2MigpICYmIGlvY19leGlzdHMpOwogCiAJaWYgKFBhZ2VIaWdoTWVtKHBhZ2Up IHx8ICFpc19ub25fY29oKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vZG1hLW1hcHBpbmcuYyBi L2FyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMKaW5kZXggZWJiM2ZkZTk5MDQzLi40M2UwM2I1Mjkz ZDAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL2RtYS1tYXBwaW5nLmMKKysrIGIvYXJjaC9hcm0v bW0vZG1hLW1hcHBpbmcuYwpAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyBkbWFfYWRkcl90IGFy bV9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkg ICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJl Y3Rpb24gZGlyLAogCSAgICAgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKLQlpZiAoIWRtYV9nZXRf YXR0cihETUFfQVRUUl9TS0lQX0NQVV9TWU5DLCBhdHRycykpCisJaWYgKChhdHRycyAmIERNQV9B VFRSX1NLSVBfQ1BVX1NZTkMpID09IDApCiAJCV9fZG1hX3BhZ2VfY3B1X3RvX2RldihwYWdlLCBv ZmZzZXQsIHNpemUsIGRpcik7CiAJcmV0dXJuIHBmbl90b19kbWEoZGV2LCBwYWdlX3RvX3Bmbihw YWdlKSkgKyBvZmZzZXQ7CiB9CkBAIC0xNTUsNyArMTU1LDcgQEAgc3RhdGljIGRtYV9hZGRyX3Qg YXJtX2NvaGVyZW50X2RtYV9tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdl ICpwYWcKIHN0YXRpYyB2b2lkIGFybV9kbWFfdW5tYXBfcGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYs IGRtYV9hZGRyX3QgaGFuZGxlLAogCQlzaXplX3Qgc2l6ZSwgZW51bSBkbWFfZGF0YV9kaXJlY3Rp b24gZGlyLCB1bnNpZ25lZCBsb25nIGF0dHJzKQogewotCWlmICghZG1hX2dldF9hdHRyKERNQV9B VFRSX1NLSVBfQ1BVX1NZTkMsIGF0dHJzKSkKKwlpZiAoKGF0dHJzICYgRE1BX0FUVFJfU0tJUF9D UFVfU1lOQykgPT0gMCkKIAkJX19kbWFfcGFnZV9kZXZfdG9fY3B1KHBmbl90b19wYWdlKGRtYV90 b19wZm4oZGV2LCBoYW5kbGUpKSwKIAkJCQkgICAgICBoYW5kbGUgJiB+UEFHRV9NQVNLLCBzaXpl LCBkaXIpOwogfQpAQCAtNjIyLDkgKzYyMiw5IEBAIHN0YXRpYyB2b2lkIF9fZnJlZV9mcm9tX2Nv bnRpZ3VvdXMoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAogc3RhdGlj IGlubGluZSBwZ3Byb3RfdCBfX2dldF9kbWFfcGdwcm90KHVuc2lnbmVkIGxvbmcgYXR0cnMsIHBn cHJvdF90IHByb3QpCiB7Ci0JcHJvdCA9IGRtYV9nZXRfYXR0cihETUFfQVRUUl9XUklURV9DT01C SU5FLCBhdHRycykgPwotCQkJICAgIHBncHJvdF93cml0ZWNvbWJpbmUocHJvdCkgOgotCQkJICAg IHBncHJvdF9kbWFjb2hlcmVudChwcm90KTsKKwlwcm90ID0gKGF0dHJzICYgRE1BX0FUVFJfV1JJ VEVfQ09NQklORSkgPworCQkJcGdwcm90X3dyaXRlY29tYmluZShwcm90KSA6CisJCQlwZ3Byb3Rf ZG1hY29oZXJlbnQocHJvdCk7CiAJcmV0dXJuIHByb3Q7CiB9CiAKQEAgLTc0NCw3ICs3NDQsNyBA QCBzdGF0aWMgdm9pZCAqX19kbWFfYWxsb2Moc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6 ZSwgZG1hX2FkZHJfdCAqaGFuZGxlLAogCQkuZ2ZwID0gZ2ZwLAogCQkucHJvdCA9IHByb3QsCiAJ CS5jYWxsZXIgPSBjYWxsZXIsCi0JCS53YW50X3ZhZGRyID0gIWRtYV9nZXRfYXR0cihETUFfQVRU Ul9OT19LRVJORUxfTUFQUElORywgYXR0cnMpLAorCQkud2FudF92YWRkciA9ICgoYXR0cnMgJiBE TUFfQVRUUl9OT19LRVJORUxfTUFQUElORykgPT0gMCksCiAJfTsKIAogI2lmZGVmIENPTkZJR19E TUFfQVBJX0RFQlVHCkBAIC04ODcsNyArODg3LDcgQEAgc3RhdGljIHZvaWQgX19hcm1fZG1hX2Zy ZWUoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6ZSwgdm9pZCAqY3B1X2FkZHIsCiAJCS5z aXplID0gUEFHRV9BTElHTihzaXplKSwKIAkJLmNwdV9hZGRyID0gY3B1X2FkZHIsCiAJCS5wYWdl ID0gcGFnZSwKLQkJLndhbnRfdmFkZHIgPSAhZG1hX2dldF9hdHRyKERNQV9BVFRSX05PX0tFUk5F TF9NQVBQSU5HLCBhdHRycyksCisJCS53YW50X3ZhZGRyID0gKChhdHRycyAmIERNQV9BVFRSX05P X0tFUk5FTF9NQVBQSU5HKSA9PSAwKSwKIAl9OwogCiAJYnVmID0gYXJtX2RtYV9idWZmZXJfZmlu ZChjcHVfYWRkcik7CkBAIC0xMjY3LDcgKzEyNjcsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKipf X2lvbW11X2FsbG9jX2J1ZmZlcihzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAogCWlm ICghcGFnZXMpCiAJCXJldHVybiBOVUxMOwogCi0JaWYgKGRtYV9nZXRfYXR0cihETUFfQVRUUl9G T1JDRV9DT05USUdVT1VTLCBhdHRycykpCisJaWYgKGF0dHJzICYgRE1BX0FUVFJfRk9SQ0VfQ09O VElHVU9VUykKIAl7CiAJCXVuc2lnbmVkIGxvbmcgb3JkZXIgPSBnZXRfb3JkZXIoc2l6ZSk7CiAJ CXN0cnVjdCBwYWdlICpwYWdlOwpAQCAtMTI4NSw3ICsxMjg1LDcgQEAgc3RhdGljIHN0cnVjdCBw YWdlICoqX19pb21tdV9hbGxvY19idWZmZXIoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qgc2l6 ZSwKIAl9CiAKIAkvKiBHbyBzdHJhaWdodCB0byA0SyBjaHVua3MgaWYgY2FsbGVyIHNheXMgaXQn cyBPSy4gKi8KLQlpZiAoZG1hX2dldF9hdHRyKERNQV9BVFRSX0FMTE9DX1NJTkdMRV9QQUdFUywg YXR0cnMpKQorCWlmIChhdHRycyAmIERNQV9BVFRSX0FMTE9DX1NJTkdMRV9QQUdFUykKIAkJb3Jk ZXJfaWR4ID0gQVJSQVlfU0laRShpb21tdV9vcmRlcl9hcnJheSkgLSAxOwogCiAJLyoKQEAgLTEz NDYsNyArMTM0Niw3IEBAIHN0YXRpYyBpbnQgX19pb21tdV9mcmVlX2J1ZmZlcihzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBwYWdlICoqcGFnZXMsCiAJaW50IGNvdW50ID0gc2l6ZSA+PiBQQUdF X1NISUZUOwogCWludCBpOwogCi0JaWYgKGRtYV9nZXRfYXR0cihETUFfQVRUUl9GT1JDRV9DT05U SUdVT1VTLCBhdHRycykpIHsKKwlpZiAoYXR0cnMgJiBETUFfQVRUUl9GT1JDRV9DT05USUdVT1VT KSB7CiAJCWRtYV9yZWxlYXNlX2Zyb21fY29udGlndW91cyhkZXYsIHBhZ2VzWzBdLCBjb3VudCk7 CiAJfSBlbHNlIHsKIAkJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCkBAIC0xNDQ1LDcgKzE0 NDUsNyBAQCBzdGF0aWMgc3RydWN0IHBhZ2UgKipfX2lvbW11X2dldF9wYWdlcyh2b2lkICpjcHVf YWRkciwgdW5zaWduZWQgbG9uZyBhdHRycykKIAlpZiAoX19pbl9hdG9taWNfcG9vbChjcHVfYWRk ciwgUEFHRV9TSVpFKSkKIAkJcmV0dXJuIF9fYXRvbWljX2dldF9wYWdlcyhjcHVfYWRkcik7CiAK LQlpZiAoZG1hX2dldF9hdHRyKERNQV9BVFRSX05PX0tFUk5FTF9NQVBQSU5HLCBhdHRycykpCisJ aWYgKGF0dHJzICYgRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJTkcpCiAJCXJldHVybiBjcHVfYWRk cjsKIAogCWFyZWEgPSBmaW5kX3ZtX2FyZWEoY3B1X2FkZHIpOwpAQCAtMTUxMiw3ICsxNTEyLDcg QEAgc3RhdGljIHZvaWQgKmFybV9pb21tdV9hbGxvY19hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYs IHNpemVfdCBzaXplLAogCWlmICgqaGFuZGxlID09IERNQV9FUlJPUl9DT0RFKQogCQlnb3RvIGVy cl9idWZmZXI7CiAKLQlpZiAoZG1hX2dldF9hdHRyKERNQV9BVFRSX05PX0tFUk5FTF9NQVBQSU5H LCBhdHRycykpCisJaWYgKGF0dHJzICYgRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJTkcpCiAJCXJl dHVybiBwYWdlczsKIAogCWFkZHIgPSBfX2lvbW11X2FsbG9jX3JlbWFwKHBhZ2VzLCBzaXplLCBn ZnAsIHByb3QsCkBAIC0xNTgzLDcgKzE1ODMsNyBAQCB2b2lkIGFybV9pb21tdV9mcmVlX2F0dHJz KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIHZvaWQgKmNwdV9hZGRyLAogCQlyZXR1 cm47CiAJfQogCi0JaWYgKCFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJTkcs IGF0dHJzKSkgeworCWlmICgoYXR0cnMgJiBETUFfQVRUUl9OT19LRVJORUxfTUFQUElORykgPT0g MCkgewogCQlkbWFfY29tbW9uX2ZyZWVfcmVtYXAoY3B1X2FkZHIsIHNpemUsCiAJCQlWTV9BUk1f RE1BX0NPTlNJU1RFTlQgfCBWTV9VU0VSTUFQKTsKIAl9CkBAIC0xNjUzLDggKzE2NTMsNyBAQCBz dGF0aWMgaW50IF9fbWFwX3NnX2NodW5rKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0 ZXJsaXN0ICpzZywKIAkJcGh5c19hZGRyX3QgcGh5cyA9IHBhZ2VfdG9fcGh5cyhzZ19wYWdlKHMp KTsKIAkJdW5zaWduZWQgaW50IGxlbiA9IFBBR0VfQUxJR04ocy0+b2Zmc2V0ICsgcy0+bGVuZ3Ro KTsKIAotCQlpZiAoIWlzX2NvaGVyZW50ICYmCi0JCQkhZG1hX2dldF9hdHRyKERNQV9BVFRSX1NL SVBfQ1BVX1NZTkMsIGF0dHJzKSkKKwkJaWYgKCFpc19jb2hlcmVudCAmJiAoYXR0cnMgJiBETUFf QVRUUl9TS0lQX0NQVV9TWU5DKSA9PSAwKQogCQkJX19kbWFfcGFnZV9jcHVfdG9fZGV2KHNnX3Bh Z2UocyksIHMtPm9mZnNldCwgcy0+bGVuZ3RoLCBkaXIpOwogCiAJCXByb3QgPSBfX2RtYV9kaXJl Y3Rpb25fdG9fcHJvdChkaXIpOwpAQCAtMTc2Nyw4ICsxNzY2LDcgQEAgc3RhdGljIHZvaWQgX19p b21tdV91bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2cs CiAJCWlmIChzZ19kbWFfbGVuKHMpKQogCQkJX19pb21tdV9yZW1vdmVfbWFwcGluZyhkZXYsIHNn X2RtYV9hZGRyZXNzKHMpLAogCQkJCQkgICAgICAgc2dfZG1hX2xlbihzKSk7Ci0JCWlmICghaXNf Y29oZXJlbnQgJiYKLQkJICAgICFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfU0tJUF9DUFVfU1lOQywg YXR0cnMpKQorCQlpZiAoIWlzX2NvaGVyZW50ICYmIChhdHRycyAmIERNQV9BVFRSX1NLSVBfQ1BV X1NZTkMpID09IDApCiAJCQlfX2RtYV9wYWdlX2Rldl90b19jcHUoc2dfcGFnZShzKSwgcy0+b2Zm c2V0LAogCQkJCQkgICAgICBzLT5sZW5ndGgsIGRpcik7CiAJfQpAQCAtMTg5Miw3ICsxODkwLDcg QEAgc3RhdGljIGRtYV9hZGRyX3QgYXJtX2lvbW11X21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJICAgICB1bnNpZ25lZCBsb25nIG9mZnNldCwgc2l6ZV90 IHNpemUsIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKIAkgICAgIHVuc2lnbmVkIGxvbmcg YXR0cnMpCiB7Ci0JaWYgKCFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfU0tJUF9DUFVfU1lOQywgYXR0 cnMpKQorCWlmICgoYXR0cnMgJiBETUFfQVRUUl9TS0lQX0NQVV9TWU5DKSA9PSAwKQogCQlfX2Rt YV9wYWdlX2NwdV90b19kZXYocGFnZSwgb2Zmc2V0LCBzaXplLCBkaXIpOwogCiAJcmV0dXJuIGFy bV9jb2hlcmVudF9pb21tdV9tYXBfcGFnZShkZXYsIHBhZ2UsIG9mZnNldCwgc2l6ZSwgZGlyLCBh dHRycyk7CkBAIC0xOTQzLDcgKzE5NDEsNyBAQCBzdGF0aWMgdm9pZCBhcm1faW9tbXVfdW5tYXBf cGFnZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGRtYV9hZGRyX3QgaGFuZGxlLAogCWlmICghaW92YSkK IAkJcmV0dXJuOwogCi0JaWYgKCFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfU0tJUF9DUFVfU1lOQywg YXR0cnMpKQorCWlmICgoYXR0cnMgJiBETUFfQVRUUl9TS0lQX0NQVV9TWU5DKSA9PSAwKQogCQlf X2RtYV9wYWdlX2Rldl90b19jcHUocGFnZSwgb2Zmc2V0LCBzaXplLCBkaXIpOwogCiAJaW9tbXVf dW5tYXAobWFwcGluZy0+ZG9tYWluLCBpb3ZhLCBsZW4pOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v eGVuL21tLmMgYi9hcmNoL2FybS94ZW4vbW0uYwppbmRleCBmYzY3ZWQyMzZhMTAuLmQwNjJmMDhm NTAyMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0veGVuL21tLmMKKysrIGIvYXJjaC9hcm0veGVuL21t LmMKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIF9feGVuX2RtYV9tYXBfcGFnZShzdHJ1Y3QgZGV2 aWNlICpod2Rldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCiB7CiAJaWYgKGlzX2RldmljZV9kbWFfY29o ZXJlbnQoaHdkZXYpKQogCQlyZXR1cm47Ci0JaWYgKGRtYV9nZXRfYXR0cihETUFfQVRUUl9TS0lQ X0NQVV9TWU5DLCBhdHRycykpCisJaWYgKGF0dHJzICYgRE1BX0FUVFJfU0tJUF9DUFVfU1lOQykK IAkJcmV0dXJuOwogCiAJX194ZW5fZG1hX3BhZ2VfY3B1X3RvX2Rldihod2RldiwgZGV2X2FkZHIs IHNpemUsIGRpcik7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBfX3hlbl9kbWFfdW5tYXBfcGFn ZShzdHJ1Y3QgZGV2aWNlICpod2RldiwgZG1hX2FkZHJfdCBoYW5kbGUsCiB7CiAJaWYgKGlzX2Rl dmljZV9kbWFfY29oZXJlbnQoaHdkZXYpKQogCQlyZXR1cm47Ci0JaWYgKGRtYV9nZXRfYXR0cihE TUFfQVRUUl9TS0lQX0NQVV9TWU5DLCBhdHRycykpCisJaWYgKGF0dHJzICYgRE1BX0FUVFJfU0tJ UF9DUFVfU1lOQykKIAkJcmV0dXJuOwogCiAJX194ZW5fZG1hX3BhZ2VfZGV2X3RvX2NwdShod2Rl diwgaGFuZGxlLCBzaXplLCBkaXIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9tbS9kbWEtbWFw cGluZy5jIGIvYXJjaC9hcm02NC9tbS9kbWEtbWFwcGluZy5jCmluZGV4IDY1ZjY5OTQzYjFjYi4u ZTgyNzYzYWYxMzdmIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L21tL2RtYS1tYXBwaW5nLmMKKysr IGIvYXJjaC9hcm02NC9tbS9kbWEtbWFwcGluZy5jCkBAIC0zMiw3ICszMiw3IEBACiBzdGF0aWMg cGdwcm90X3QgX19nZXRfZG1hX3BncHJvdCh1bnNpZ25lZCBsb25nIGF0dHJzLCBwZ3Byb3RfdCBw cm90LAogCQkJCSBib29sIGNvaGVyZW50KQogewotCWlmICghY29oZXJlbnQgfHwgZG1hX2dldF9h dHRyKERNQV9BVFRSX1dSSVRFX0NPTUJJTkUsIGF0dHJzKSkKKwlpZiAoIWNvaGVyZW50IHx8IChh dHRycyAmIERNQV9BVFRSX1dSSVRFX0NPTUJJTkUpKQogCQlyZXR1cm4gcGdwcm90X3dyaXRlY29t YmluZShwcm90KTsKIAlyZXR1cm4gcHJvdDsKIH0KQEAgLTcwMSw3ICs3MDEsNyBAQCBzdGF0aWMg ZG1hX2FkZHJfdCBfX2lvbW11X21hcF9wYWdlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHBh Z2UgKnBhZ2UsCiAJZG1hX2FkZHJfdCBkZXZfYWRkciA9IGlvbW11X2RtYV9tYXBfcGFnZShkZXYs IHBhZ2UsIG9mZnNldCwgc2l6ZSwgcHJvdCk7CiAKIAlpZiAoIWlvbW11X2RtYV9tYXBwaW5nX2Vy cm9yKGRldiwgZGV2X2FkZHIpICYmCi0JICAgICFkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfU0tJUF9D UFVfU1lOQywgYXR0cnMpKQorCSAgICAoYXR0cnMgJiBETUFfQVRUUl9TS0lQX0NQVV9TWU5DKSA9 PSAwKQogCQlfX2lvbW11X3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UoZGV2LCBkZXZfYWRkciwgc2l6 ZSwgZGlyKTsKIAogCXJldHVybiBkZXZfYWRkcjsKQEAgLTcxMSw3ICs3MTEsNyBAQCBzdGF0aWMg dm9pZCBfX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBkbWFfYWRkcl90IGRl dl9hZGRyLAogCQkJICAgICAgIHNpemVfdCBzaXplLCBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBk aXIsCiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBhdHRycykKIHsKLQlpZiAoIWRtYV9nZXRfYXR0 cihETUFfQVRUUl9TS0lQX0NQVV9TWU5DLCBhdHRycykpCisJaWYgKChhdHRycyAmIERNQV9BVFRS X1NLSVBfQ1BVX1NZTkMpID09IDApCiAJCV9faW9tbXVfc3luY19zaW5nbGVfZm9yX2NwdShkZXYs IGRldl9hZGRyLCBzaXplLCBkaXIpOwogCiAJaW9tbXVfZG1hX3VubWFwX3BhZ2UoZGV2LCBkZXZf YWRkciwgc2l6ZSwgZGlyLCBhdHRycyk7CkBAIC03NTEsNyArNzUxLDcgQEAgc3RhdGljIGludCBf X2lvbW11X21hcF9zZ19hdHRycyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlz dCAqc2dsLAogewogCWJvb2wgY29oZXJlbnQgPSBpc19kZXZpY2VfZG1hX2NvaGVyZW50KGRldik7 CiAKLQlpZiAoIWRtYV9nZXRfYXR0cihETUFfQVRUUl9TS0lQX0NQVV9TWU5DLCBhdHRycykpCisJ aWYgKChhdHRycyAmIERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMpID09IDApCiAJCV9faW9tbXVfc3lu Y19zZ19mb3JfZGV2aWNlKGRldiwgc2dsLCBuZWxlbXMsIGRpcik7CiAKIAlyZXR1cm4gaW9tbXVf ZG1hX21hcF9zZyhkZXYsIHNnbCwgbmVsZW1zLApAQCAtNzYzLDcgKzc2Myw3IEBAIHN0YXRpYyB2 b2lkIF9faW9tbXVfdW5tYXBfc2dfYXR0cnMoc3RydWN0IGRldmljZSAqZGV2LAogCQkJCSAgIGVu dW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKIAkJCQkgICB1bnNpZ25lZCBsb25nIGF0dHJzKQog ewotCWlmICghZG1hX2dldF9hdHRyKERNQV9BVFRSX1NLSVBfQ1BVX1NZTkMsIGF0dHJzKSkKKwlp ZiAoKGF0dHJzICYgRE1BX0FUVFJfU0tJUF9DUFVfU1lOQykgPT0gMCkKIAkJX19pb21tdV9zeW5j X3NnX2Zvcl9jcHUoZGV2LCBzZ2wsIG5lbGVtcywgZGlyKTsKIAogCWlvbW11X2RtYV91bm1hcF9z ZyhkZXYsIHNnbCwgbmVsZW1zLCBkaXIsIGF0dHJzKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIv bW0vZG1hLWNvaGVyZW50LmMgYi9hcmNoL2F2cjMyL21tL2RtYS1jb2hlcmVudC5jCmluZGV4IGZj NTFmNDQyMTkzMy4uNTg2MTBkMGRmN2VkIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL21tL2RtYS1j b2hlcmVudC5jCisrKyBiL2FyY2gvYXZyMzIvbW0vZG1hLWNvaGVyZW50LmMKQEAgLTEwOSw3ICsx MDksNyBAQCBzdGF0aWMgdm9pZCAqYXZyMzJfZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwg c2l6ZV90IHNpemUsCiAJCXJldHVybiBOVUxMOwogCXBoeXMgPSBwYWdlX3RvX3BoeXMocGFnZSk7 CiAKLQlpZiAoZG1hX2dldF9hdHRyKERNQV9BVFRSX1dSSVRFX0NPTUJJTkUsIGF0dHJzKSkgewor CWlmIChhdHRycyAmIERNQV9BVFRSX1dSSVRFX0NPTUJJTkUpIHsKIAkJLyogTm93LCBtYXAgdGhl IHBhZ2UgaW50byBQMyB3aXRoIHdyaXRlLWNvbWJpbmluZyB0dXJuZWQgb24gKi8KIAkJKmhhbmRs ZSA9IHBoeXM7CiAJCXJldHVybiBfX2lvcmVtYXAocGh5cywgc2l6ZSwgX1BBR0VfQlVGRkVSKTsK QEAgLTEyMyw3ICsxMjMsNyBAQCBzdGF0aWMgdm9pZCBhdnIzMl9kbWFfZnJlZShzdHJ1Y3QgZGV2 aWNlICpkZXYsIHNpemVfdCBzaXplLAogewogCXN0cnVjdCBwYWdlICpwYWdlOwogCi0JaWYgKGRt YV9nZXRfYXR0cihETUFfQVRUUl9XUklURV9DT01CSU5FLCBhdHRycykpIHsKKwlpZiAoYXR0cnMg JiBETUFfQVRUUl9XUklURV9DT01CSU5FKSB7CiAJCWlvdW5tYXAoY3B1X2FkZHIpOwogCiAJCXBh Z2UgPSBwaHlzX3RvX3BhZ2UoaGFuZGxlKTsKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9zbi9wY2kv cGNpX2RtYS5jIGIvYXJjaC9pYTY0L3NuL3BjaS9wY2lfZG1hLmMKaW5kZXggNmI3OGZjOTUzYzRi Li43NGM5MzRhOTk3YmIgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9zbi9wY2kvcGNpX2RtYS5jCisr KyBiL2FyY2gvaWE2NC9zbi9wY2kvcGNpX2RtYS5jCkBAIC0xODMsMTQgKzE4MywxMSBAQCBzdGF0 aWMgZG1hX2FkZHJfdCBzbl9kbWFfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg cGFnZSAqcGFnZSwKIAl1bnNpZ25lZCBsb25nIHBoeXNfYWRkcjsKIAlzdHJ1Y3QgcGNpX2RldiAq cGRldiA9IHRvX3BjaV9kZXYoZGV2KTsKIAlzdHJ1Y3Qgc25fcGNpYnVzX3Byb3ZpZGVyICpwcm92 aWRlciA9IFNOX1BDSURFVl9CVVNQUk9WSURFUihwZGV2KTsKLQlpbnQgZG1hYmFycjsKLQotCWRt YWJhcnIgPSBkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfV1JJVEVfQkFSUklFUiwgYXR0cnMpOwogCiAJ QlVHX09OKCFkZXZfaXNfcGNpKGRldikpOwogCiAJcGh5c19hZGRyID0gX19wYShjcHVfYWRkcik7 Ci0JaWYgKGRtYWJhcnIpCisJaWYgKGF0dHJzICYgRE1BX0FUVFJfV1JJVEVfQkFSUklFUikKIAkJ ZG1hX2FkZHIgPSBwcm92aWRlci0+ZG1hX21hcF9jb25zaXN0ZW50KHBkZXYsIHBoeXNfYWRkciwK IAkJCQkJCQlzaXplLCBTTl9ETUFfQUREUl9QSFlTKTsKIAllbHNlCkBAIC0yODAsOSArMjc3LDYg QEAgc3RhdGljIGludCBzbl9kbWFfbWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNj YXR0ZXJsaXN0ICpzZ2wsCiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSB0b19wY2lfZGV2KGRldik7 CiAJc3RydWN0IHNuX3BjaWJ1c19wcm92aWRlciAqcHJvdmlkZXIgPSBTTl9QQ0lERVZfQlVTUFJP VklERVIocGRldik7CiAJaW50IGk7Ci0JaW50IGRtYWJhcnI7Ci0KLQlkbWFiYXJyID0gZG1hX2dl dF9hdHRyKERNQV9BVFRSX1dSSVRFX0JBUlJJRVIsIGF0dHJzKTsKIAogCUJVR19PTighZGV2X2lz X3BjaShkZXYpKTsKIApAQCAtMjkyLDcgKzI4Niw3IEBAIHN0YXRpYyBpbnQgc25fZG1hX21hcF9z ZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2dsLAogCWZvcl9lYWNo X3NnKHNnbCwgc2csIG5od2VudHJpZXMsIGkpIHsKIAkJZG1hX2FkZHJfdCBkbWFfYWRkcjsKIAkJ cGh5c19hZGRyID0gU0dfRU5UX1BIWVNfQUREUkVTUyhzZyk7Ci0JCWlmIChkbWFiYXJyKQorCQlp ZiAoYXR0cnMgJiBETUFfQVRUUl9XUklURV9CQVJSSUVSKQogCQkJZG1hX2FkZHIgPSBwcm92aWRl ci0+ZG1hX21hcF9jb25zaXN0ZW50KHBkZXYsCiAJCQkJCQkJCXBoeXNfYWRkciwKIAkJCQkJCQkJ c2ctPmxlbmd0aCwKZGlmZiAtLWdpdCBhL2FyY2gvbWV0YWcva2VybmVsL2RtYS5jIGIvYXJjaC9t ZXRhZy9rZXJuZWwvZG1hLmMKaW5kZXggZDY4ZjQ5OGU4MmExLi4wZGIzMWUyNGM1NDEgMTAwNjQ0 Ci0tLSBhL2FyY2gvbWV0YWcva2VybmVsL2RtYS5jCisrKyBiL2FyY2gvbWV0YWcva2VybmVsL2Rt YS5jCkBAIC0zMzcsNyArMzM3LDcgQEAgc3RhdGljIGludCBtZXRhZ19kbWFfbW1hcChzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCXN0cnVjdCBtZXRhZ192 bV9yZWdpb24gKmM7CiAJaW50IHJldCA9IC1FTlhJTzsKIAotCWlmIChkbWFfZ2V0X2F0dHIoRE1B X0FUVFJfV1JJVEVfQ09NQklORSwgYXR0cnMpKQorCWlmIChhdHRycyAmIERNQV9BVFRSX1dSSVRF X0NPTUJJTkUpCiAJCXZtYS0+dm1fcGFnZV9wcm90ID0gcGdwcm90X3dyaXRlY29tYmluZSh2bWEt PnZtX3BhZ2VfcHJvdCk7CiAJZWxzZQogCQl2bWEtPnZtX3BhZ2VfcHJvdCA9IHBncHJvdF9ub25j YWNoZWQodm1hLT52bV9wYWdlX3Byb3QpOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL2RtYS1k ZWZhdWx0LmMgYi9hcmNoL21pcHMvbW0vZG1hLWRlZmF1bHQuYwppbmRleCAwZWQ5MDAwZGMxZmYu LmIyZWFkZDZmYTlhMSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL21tL2RtYS1kZWZhdWx0LmMKKysr IGIvYXJjaC9taXBzL21tL2RtYS1kZWZhdWx0LmMKQEAgLTE0MSw3ICsxNDEsNyBAQCBzdGF0aWMg dm9pZCAqbWlwc19kbWFfYWxsb2NfY29oZXJlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzaXplX3Qg c2l6ZSwKIAkgKiBYWFg6IHNlZW1zIGxpa2UgdGhlIGNvaGVyZW50IGFuZCBub24tY29oZXJlbnQg aW1wbGVtZW50YXRpb25zIGNvdWxkCiAJICogYmUgY29uc29saWRhdGVkLgogCSAqLwotCWlmIChk bWFfZ2V0X2F0dHIoRE1BX0FUVFJfTk9OX0NPTlNJU1RFTlQsIGF0dHJzKSkKKwlpZiAoYXR0cnMg JiBETUFfQVRUUl9OT05fQ09OU0lTVEVOVCkKIAkJcmV0dXJuIG1pcHNfZG1hX2FsbG9jX25vbmNv aGVyZW50KGRldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZ2ZwKTsKIAogCWdmcCA9IG1hc3NhZ2VfZ2Zw X2ZsYWdzKGRldiwgZ2ZwKTsKQEAgLTE4Miw3ICsxODIsNyBAQCBzdGF0aWMgdm9pZCBtaXBzX2Rt YV9mcmVlX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsIHZvaWQgKnZh ZGRyLAogCXVuc2lnbmVkIGludCBjb3VudCA9IFBBR0VfQUxJR04oc2l6ZSkgPj4gUEFHRV9TSElG VDsKIAlzdHJ1Y3QgcGFnZSAqcGFnZSA9IE5VTEw7CiAKLQlpZiAoZG1hX2dldF9hdHRyKERNQV9B VFRSX05PTl9DT05TSVNURU5ULCBhdHRycykpIHsKKwlpZiAoYXR0cnMgJiBETUFfQVRUUl9OT05f Q09OU0lTVEVOVCkgewogCQltaXBzX2RtYV9mcmVlX25vbmNvaGVyZW50KGRldiwgc2l6ZSwgdmFk ZHIsIGRtYV9oYW5kbGUpOwogCQlyZXR1cm47CiAJfQpAQCAtMjE0LDcgKzIxNCw3IEBAIHN0YXRp YyBpbnQgbWlwc19kbWFfbW1hcChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hLAogCiAJcGZuID0gcGFnZV90b19wZm4odmlydF90b19wYWdlKCh2b2lkICopYWRk cikpOwogCi0JaWYgKGRtYV9nZXRfYXR0cihETUFfQVRUUl9XUklURV9DT01CSU5FLCBhdHRycykp CisJaWYgKGF0dHJzICYgRE1BX0FUVFJfV1JJVEVfQ09NQklORSkKIAkJdm1hLT52bV9wYWdlX3By b3QgPSBwZ3Byb3Rfd3JpdGVjb21iaW5lKHZtYS0+dm1fcGFnZV9wcm90KTsKIAllbHNlCiAJCXZt YS0+dm1fcGFnZV9wcm90ID0gcGdwcm90X25vbmNhY2hlZCh2bWEtPnZtX3BhZ2VfcHJvdCk7CmRp ZmYgLS1naXQgYS9hcmNoL29wZW5yaXNjL2tlcm5lbC9kbWEuYyBiL2FyY2gvb3BlbnJpc2Mva2Vy bmVsL2RtYS5jCmluZGV4IDUwZWIxZjI2YzU0MC4uMTQwYzk5MTQwNjQ5IDEwMDY0NAotLS0gYS9h cmNoL29wZW5yaXNjL2tlcm5lbC9kbWEuYworKysgYi9hcmNoL29wZW5yaXNjL2tlcm5lbC9kbWEu YwpAQCAtMTAwLDcgKzEwMCw3IEBAIG9yMWtfZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwg c2l6ZV90IHNpemUsCiAKIAl2YSA9ICh1bnNpZ25lZCBsb25nKXBhZ2U7CiAKLQlpZiAoIWRtYV9n ZXRfYXR0cihETUFfQVRUUl9OT05fQ09OU0lTVEVOVCwgYXR0cnMpKSB7CisJaWYgKChhdHRycyAm IERNQV9BVFRSX05PTl9DT05TSVNURU5UKSA9PSAwKSB7CiAJCS8qCiAJCSAqIFdlIG5lZWQgdG8g aXRlcmF0ZSB0aHJvdWdoIHRoZSBwYWdlcywgY2xlYXJpbmcgdGhlIGRjYWNoZSBmb3IKIAkJICog dGhlbSBhbmQgc2V0dGluZyB0aGUgY2FjaGUtaW5oaWJpdCBiaXQuCkBAIC0xMjQsNyArMTI0LDcg QEAgb3Ixa19kbWFfZnJlZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLCB2b2lkICp2 YWRkciwKIAkJLm1tID0gJmluaXRfbW0KIAl9OwogCi0JaWYgKCFkbWFfZ2V0X2F0dHIoRE1BX0FU VFJfTk9OX0NPTlNJU1RFTlQsIGF0dHJzKSkgeworCWlmICgoYXR0cnMgJiBETUFfQVRUUl9OT05f Q09OU0lTVEVOVCkgPT0gMCkgewogCQkvKiB3YWxrX3BhZ2VfcmFuZ2Ugc2hvdWxkbid0IGJlIGFi bGUgdG8gZmFpbCBoZXJlICovCiAJCVdBUk5fT04od2Fsa19wYWdlX3JhbmdlKHZhLCB2YSArIHNp emUsICZ3YWxrKSk7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3BjaS1kbWEu YyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wY2ktZG1hLmMKaW5kZXggODQ1ZmRkNTJlNGM1Li4wMmQ5 ZWQwZjM5NDkgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wY2ktZG1hLmMKKysrIGIv YXJjaC9wYXJpc2Mva2VybmVsL3BjaS1kbWEuYwpAQCAtNTgxLDcgKzU4MSw3IEBAIHN0YXRpYyB2 b2lkICpwY3hfZG1hX2FsbG9jKHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCiB7CiAJ dm9pZCAqYWRkcjsKIAotCWlmICghZG1hX2dldF9hdHRyKERNQV9BVFRSX05PTl9DT05TSVNURU5U LCBhdHRycykpCisJaWYgKChhdHRycyAmIERNQV9BVFRSX05PTl9DT05TSVNURU5UKSA9PSAwKQog CQlyZXR1cm4gTlVMTDsKIAogCWFkZHIgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoZmxhZywg Z2V0X29yZGVyKHNpemUpKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2Vs bC9pb21tdS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL2lvbW11LmMKaW5kZXggYzhl MTFlMDIwMzM1Li42MTI4YmRiNDI4YjIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9y bXMvY2VsbC9pb21tdS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9pb21tdS5j CkBAIC0xOTMsNyArMTkzLDcgQEAgc3RhdGljIGludCB0Y2VfYnVpbGRfY2VsbChzdHJ1Y3QgaW9t bXVfdGFibGUgKnRibCwgbG9uZyBpbmRleCwgbG9uZyBucGFnZXMsCiAJYmFzZV9wdGUgPSBDQkVf SU9QVEVfUFBfVyB8IENCRV9JT1BURV9QUF9SIHwgQ0JFX0lPUFRFX00gfAogCQlDQkVfSU9QVEVf U09fUlcgfCAod2luZG93LT5pb2lkICYgQ0JFX0lPUFRFX0lPSURfTWFzayk7CiAjZW5kaWYKLQlp ZiAodW5saWtlbHkoZG1hX2dldF9hdHRyKERNQV9BVFRSX1dFQUtfT1JERVJJTkcsIGF0dHJzKSkp CisJaWYgKHVubGlrZWx5KGF0dHJzICYgRE1BX0FUVFJfV0VBS19PUkRFUklORykpCiAJCWJhc2Vf cHRlICY9IH5DQkVfSU9QVEVfU09fUlc7CiAKIAlpb19wdGUgPSAodW5zaWduZWQgbG9uZyAqKXRi bC0+aXRfYmFzZSArIChpbmRleCAtIHRibC0+aXRfb2Zmc2V0KTsKQEAgLTYwMCw3ICs2MDAsNyBA QCBzdGF0aWMgZG1hX2FkZHJfdCBkbWFfZml4ZWRfbWFwX3BhZ2Uoc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkJCQkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRp cmVjdGlvbiwKIAkJCQkgICAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7Ci0JaWYgKGlvbW11X2Zp eGVkX2lzX3dlYWsgPT0gZG1hX2dldF9hdHRyKERNQV9BVFRSX1dFQUtfT1JERVJJTkcsIGF0dHJz KSkKKwlpZiAoaW9tbXVfZml4ZWRfaXNfd2VhayA9PSAoYXR0cnMgJiBETUFfQVRUUl9XRUFLX09S REVSSU5HKSkKIAkJcmV0dXJuIGRtYV9kaXJlY3Rfb3BzLm1hcF9wYWdlKGRldiwgcGFnZSwgb2Zm c2V0LCBzaXplLAogCQkJCQkgICAgICAgZGlyZWN0aW9uLCBhdHRycyk7CiAJZWxzZQpAQCAtNjEz LDcgKzYxMyw3IEBAIHN0YXRpYyB2b2lkIGRtYV9maXhlZF91bm1hcF9wYWdlKHN0cnVjdCBkZXZp Y2UgKmRldiwgZG1hX2FkZHJfdCBkbWFfYWRkciwKIAkJCQkgc2l6ZV90IHNpemUsIGVudW0gZG1h X2RhdGFfZGlyZWN0aW9uIGRpcmVjdGlvbiwKIAkJCQkgdW5zaWduZWQgbG9uZyBhdHRycykKIHsK LQlpZiAoaW9tbXVfZml4ZWRfaXNfd2VhayA9PSBkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfV0VBS19P UkRFUklORywgYXR0cnMpKQorCWlmIChpb21tdV9maXhlZF9pc193ZWFrID09IChhdHRycyAmIERN QV9BVFRSX1dFQUtfT1JERVJJTkcpKQogCQlkbWFfZGlyZWN0X29wcy51bm1hcF9wYWdlKGRldiwg ZG1hX2FkZHIsIHNpemUsIGRpcmVjdGlvbiwKIAkJCQkJICBhdHRycyk7CiAJZWxzZQpAQCAtNjI1 LDcgKzYyNSw3IEBAIHN0YXRpYyBpbnQgZG1hX2ZpeGVkX21hcF9zZyhzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCiAJCQkgICBpbnQgbmVudHMsIGVudW0gZG1hX2Rh dGFfZGlyZWN0aW9uIGRpcmVjdGlvbiwKIAkJCSAgIHVuc2lnbmVkIGxvbmcgYXR0cnMpCiB7Ci0J aWYgKGlvbW11X2ZpeGVkX2lzX3dlYWsgPT0gZG1hX2dldF9hdHRyKERNQV9BVFRSX1dFQUtfT1JE RVJJTkcsIGF0dHJzKSkKKwlpZiAoaW9tbXVfZml4ZWRfaXNfd2VhayA9PSAoYXR0cnMgJiBETUFf QVRUUl9XRUFLX09SREVSSU5HKSkKIAkJcmV0dXJuIGRtYV9kaXJlY3Rfb3BzLm1hcF9zZyhkZXYs IHNnLCBuZW50cywgZGlyZWN0aW9uLCBhdHRycyk7CiAJZWxzZQogCQlyZXR1cm4gcHBjX2lvbW11 X21hcF9zZyhkZXYsIGNlbGxfZ2V0X2lvbW11X3RhYmxlKGRldiksIHNnLApAQCAtNjM3LDcgKzYz Nyw3IEBAIHN0YXRpYyB2b2lkIGRtYV9maXhlZF91bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCiAJCQkgICAgICAgaW50IG5lbnRzLCBlbnVtIGRtYV9k YXRhX2RpcmVjdGlvbiBkaXJlY3Rpb24sCiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBhdHRycykK IHsKLQlpZiAoaW9tbXVfZml4ZWRfaXNfd2VhayA9PSBkbWFfZ2V0X2F0dHIoRE1BX0FUVFJfV0VB S19PUkRFUklORywgYXR0cnMpKQorCWlmIChpb21tdV9maXhlZF9pc193ZWFrID09IChhdHRycyAm IERNQV9BVFRSX1dFQUtfT1JERVJJTkcpKQogCQlkbWFfZGlyZWN0X29wcy51bm1hcF9zZyhkZXYs IHNnLCBuZW50cywgZGlyZWN0aW9uLCBhdHRycyk7CiAJZWxzZQogCQlwcGNfaW9tbXVfdW5tYXBf c2coY2VsbF9nZXRfaW9tbXVfdGFibGUoZGV2KSwgc2csIG5lbnRzLApAQCAtMTE2Miw3ICsxMTYy LDcgQEAgc3RhdGljIGludCBfX2luaXQgc2V0dXBfaW9tbXVfZml4ZWQoY2hhciAqc3RyKQogCXBj aWVwID0gb2ZfZmluZF9ub2RlX2J5X3R5cGUoTlVMTCwgInBjaWUtZW5kcG9pbnQiKTsKIAogCWlm IChzdHJjbXAoc3RyLCAid2VhayIpID09IDAgfHwgKHBjaWVwICYmIHN0cmNtcChzdHIsICJzdHJv bmciKSAhPSAwKSkKLQkJaW9tbXVfZml4ZWRfaXNfd2VhayA9IDE7CisJCWlvbW11X2ZpeGVkX2lz X3dlYWsgPSBETUFfQVRUUl9XRUFLX09SREVSSU5HOwogCiAJb2Zfbm9kZV9wdXQocGNpZXApOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9nZW0uYwppbmRleCA3YjE3 ODhlMmE4MDguLjRhMjhkNjM0OGM3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL3JvY2tjaGlwX2RybV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfZHJtX2dlbS5jCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCAqcm9ja2NoaXBfZ2VtX3By aW1lX3ZtYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJc3RydWN0IHJvY2tjaGlw X2dlbV9vYmplY3QgKnJrX29iaiA9IHRvX3JvY2tjaGlwX29iaihvYmopOwogCi0JaWYgKGRtYV9n ZXRfYXR0cihETUFfQVRUUl9OT19LRVJORUxfTUFQUElORywgcmtfb2JqLT5kbWFfYXR0cnMpKQor CWlmIChya19vYmotPmRtYV9hdHRycyAmIERNQV9BVFRSX05PX0tFUk5FTF9NQVBQSU5HKQogCQly ZXR1cm4gTlVMTDsKIAogCXJldHVybiBya19vYmotPmt2YWRkcjsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvaW9tbXUvZG1hLWlvbW11LmMgYi9kcml2ZXJzL2lvbW11L2RtYS1pb21tdS5jCmluZGV4IDZj MWJkYTUwNGZiMS4uMDhhMWUyZjM2OTBmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lvbW11L2RtYS1p b21tdS5jCisrKyBiL2RyaXZlcnMvaW9tbXUvZG1hLWlvbW11LmMKQEAgLTMwNiw3ICszMDYsNyBA QCBzdHJ1Y3QgcGFnZSAqKmlvbW11X2RtYV9hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVf dCBzaXplLCBnZnBfdCBnZnAsCiAJfSBlbHNlIHsKIAkJc2l6ZSA9IEFMSUdOKHNpemUsIG1pbl9z aXplKTsKIAl9Ci0JaWYgKGRtYV9nZXRfYXR0cihETUFfQVRUUl9BTExPQ19TSU5HTEVfUEFHRVMs IGF0dHJzKSkKKwlpZiAoYXR0cnMgJiBETUFfQVRUUl9BTExPQ19TSU5HTEVfUEFHRVMpCiAJCWFs bG9jX3NpemVzID0gbWluX3NpemU7CiAKIAljb3VudCA9IFBBR0VfQUxJR04oc2l6ZSkgPj4gUEFH RV9TSElGVDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi1k bWEtY29udGlnLmMgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92aWRlb2J1ZjItZG1hLWNvbnRp Zy5jCmluZGV4IDgwMDlhNTgyMzI2Yi4uZDJhYjU0MTYxNGI4IDEwMDY0NAotLS0gYS9kcml2ZXJz L21lZGlhL3Y0bDItY29yZS92aWRlb2J1ZjItZG1hLWNvbnRpZy5jCisrKyBiL2RyaXZlcnMvbWVk aWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi1kbWEtY29udGlnLmMKQEAgLTE2MCw3ICsxNjAsNyBAQCBz dGF0aWMgdm9pZCAqdmIyX2RjX2FsbG9jKHZvaWQgKmFsbG9jX2N0eCwgdW5zaWduZWQgbG9uZyBz aXplLAogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAl9CiAKLQlpZiAoIWRtYV9nZXRfYXR0 cihETUFfQVRUUl9OT19LRVJORUxfTUFQUElORywgYnVmLT5hdHRycykpCisJaWYgKChidWYtPmF0 dHJzICYgRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJTkcpID09IDApCiAJCWJ1Zi0+dmFkZHIgPSBi dWYtPmNvb2tpZTsKIAogCS8qIFByZXZlbnQgdGhlIGRldmljZSBmcm9tIGJlaW5nIHJlbGVhc2Vk IHdoaWxlIHRoZSBidWZmZXIgaXMgdXNlZCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9k bWEtbWFwcGluZy5oIGIvaW5jbHVkZS9saW51eC9kbWEtbWFwcGluZy5oCmluZGV4IDFmZDk4NjA0 ODdiMS4uZDhmYjY3NzgzY2I3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RtYS1tYXBwaW5n LmgKKysrIGIvaW5jbHVkZS9saW51eC9kbWEtbWFwcGluZy5oCkBAIC0xMDEsMTYgKzEwMSw2IEBA IHN0YXRpYyBpbmxpbmUgaW50IGlzX2RldmljZV9kbWFfY2FwYWJsZShzdHJ1Y3QgZGV2aWNlICpk ZXYpCiAJcmV0dXJuIGRldi0+ZG1hX21hc2sgIT0gTlVMTCAmJiAqZGV2LT5kbWFfbWFzayAhPSBE TUFfTUFTS19OT05FOwogfQogCi0vKioKLSAqIGRtYV9nZXRfYXR0ciAtIGNoZWNrIGZvciBhIHNw ZWNpZmljIGF0dHJpYnV0ZQotICogQGF0dHI6IGF0dHJpYnV0ZSB0byBsb29rIGZvcgotICogQGF0 dHJzOiBhdHRyaWJ1dGVzIHRvIGNoZWNrIHdpdGhpbgotICovCi1zdGF0aWMgaW5saW5lIGJvb2wg ZG1hX2dldF9hdHRyKHVuc2lnbmVkIGxvbmcgYXR0ciwgdW5zaWduZWQgbG9uZyBhdHRycykKLXsK LQlyZXR1cm4gISEoYXR0ciAmIGF0dHJzKTsKLX0KLQogI2lmZGVmIENPTkZJR19IQVZFX0dFTkVS SUNfRE1BX0NPSEVSRU5UCiAvKgogICogVGhlc2UgdGhyZWUgZnVuY3Rpb25zIGFyZSBvbmx5IGZv ciBkbWEgYWxsb2NhdG9yLgotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=