From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: [PATCH 02/44] ibmveth: properly unwind on init errors Date: Thu, 8 Jun 2017 15:25:27 +0200 Message-ID: <20170608132609.32662-3-hch__46885.3809674785$1496928446$gmane$org@lst.de> References: <20170608132609.32662-1-hch@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dIxSG-0002zZ-U8 for xen-devel@lists.xenproject.org; Thu, 08 Jun 2017 13:26:29 +0000 In-Reply-To: <20170608132609.32662-1-hch@lst.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: x86@kernel.org, linux-arm-kernel@lists.infradead.org, xen-devel@lists.xenproject.org, linux-c6x-dev@linux-c6x.org, linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org, linux-mips@linux-mips.org, openrisc@lists.librecores.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-xtensa@linux-xtensa.org, dmaengine@vger.kernel.org, linux-tegra@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, iommu@lists.linux-foundation.org, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org List-Id: xen-devel@lists.xenproject.org VGhhdCB3YXkgdGhlIGRyaXZlciBkb2Vzbid0IGhhdmUgdG8gcmVseSBvbiBETUFfRVJST1JfQ09E RSwgd2hpY2gKaXMgbm90IGEgcHVibGljIEFQSSBhbmQgZ29pbmcgYXdheS4KClNpZ25lZC1vZmYt Ynk6IENocmlzdG9waCBIZWxsd2lnIDxoY2hAbHN0LmRlPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2libS9pYm12ZXRoLmMgfCAxNTkgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12ZXRoLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9pYm0vaWJtdmV0aC5jCmluZGV4IDcyYWI3YjZiZjIwYi4uM2FjMjdmNTll NTk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pYm0vaWJtdmV0aC5jCisrKyBi L2RyaXZlcnMvbmV0L2V0aGVybmV0L2libS9pYm12ZXRoLmMKQEAgLTQ2Nyw1NiArNDY3LDYgQEAg c3RhdGljIHZvaWQgaWJtdmV0aF9yeHFfaGFydmVzdF9idWZmZXIoc3RydWN0IGlibXZldGhfYWRh cHRlciAqYWRhcHRlcikKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGlibXZldGhfY2xlYW51cChzdHJ1 Y3QgaWJtdmV0aF9hZGFwdGVyICphZGFwdGVyKQotewotCWludCBpOwotCXN0cnVjdCBkZXZpY2Ug KmRldiA9ICZhZGFwdGVyLT52ZGV2LT5kZXY7Ci0KLQlpZiAoYWRhcHRlci0+YnVmZmVyX2xpc3Rf YWRkciAhPSBOVUxMKSB7Ci0JCWlmICghZG1hX21hcHBpbmdfZXJyb3IoZGV2LCBhZGFwdGVyLT5i dWZmZXJfbGlzdF9kbWEpKSB7Ci0JCQlkbWFfdW5tYXBfc2luZ2xlKGRldiwgYWRhcHRlci0+YnVm ZmVyX2xpc3RfZG1hLCA0MDk2LAotCQkJCQlETUFfQklESVJFQ1RJT05BTCk7Ci0JCQlhZGFwdGVy LT5idWZmZXJfbGlzdF9kbWEgPSBETUFfRVJST1JfQ09ERTsKLQkJfQotCQlmcmVlX3BhZ2UoKHVu c2lnbmVkIGxvbmcpYWRhcHRlci0+YnVmZmVyX2xpc3RfYWRkcik7Ci0JCWFkYXB0ZXItPmJ1ZmZl cl9saXN0X2FkZHIgPSBOVUxMOwotCX0KLQotCWlmIChhZGFwdGVyLT5maWx0ZXJfbGlzdF9hZGRy ICE9IE5VTEwpIHsKLQkJaWYgKCFkbWFfbWFwcGluZ19lcnJvcihkZXYsIGFkYXB0ZXItPmZpbHRl cl9saXN0X2RtYSkpIHsKLQkJCWRtYV91bm1hcF9zaW5nbGUoZGV2LCBhZGFwdGVyLT5maWx0ZXJf bGlzdF9kbWEsIDQwOTYsCi0JCQkJCURNQV9CSURJUkVDVElPTkFMKTsKLQkJCWFkYXB0ZXItPmZp bHRlcl9saXN0X2RtYSA9IERNQV9FUlJPUl9DT0RFOwotCQl9Ci0JCWZyZWVfcGFnZSgodW5zaWdu ZWQgbG9uZylhZGFwdGVyLT5maWx0ZXJfbGlzdF9hZGRyKTsKLQkJYWRhcHRlci0+ZmlsdGVyX2xp c3RfYWRkciA9IE5VTEw7Ci0JfQotCi0JaWYgKGFkYXB0ZXItPnJ4X3F1ZXVlLnF1ZXVlX2FkZHIg IT0gTlVMTCkgewotCQlkbWFfZnJlZV9jb2hlcmVudChkZXYsIGFkYXB0ZXItPnJ4X3F1ZXVlLnF1 ZXVlX2xlbiwKLQkJCQkgIGFkYXB0ZXItPnJ4X3F1ZXVlLnF1ZXVlX2FkZHIsCi0JCQkJICBhZGFw dGVyLT5yeF9xdWV1ZS5xdWV1ZV9kbWEpOwotCQlhZGFwdGVyLT5yeF9xdWV1ZS5xdWV1ZV9hZGRy ID0gTlVMTDsKLQl9Ci0KLQlmb3IgKGkgPSAwOyBpIDwgSUJNVkVUSF9OVU1fQlVGRl9QT09MUzsg aSsrKQotCQlpZiAoYWRhcHRlci0+cnhfYnVmZl9wb29sW2ldLmFjdGl2ZSkKLQkJCWlibXZldGhf ZnJlZV9idWZmZXJfcG9vbChhZGFwdGVyLAotCQkJCQkJICZhZGFwdGVyLT5yeF9idWZmX3Bvb2xb aV0pOwotCi0JaWYgKGFkYXB0ZXItPmJvdW5jZV9idWZmZXIgIT0gTlVMTCkgewotCQlpZiAoIWRt YV9tYXBwaW5nX2Vycm9yKGRldiwgYWRhcHRlci0+Ym91bmNlX2J1ZmZlcl9kbWEpKSB7Ci0JCQlk bWFfdW5tYXBfc2luZ2xlKCZhZGFwdGVyLT52ZGV2LT5kZXYsCi0JCQkJCWFkYXB0ZXItPmJvdW5j ZV9idWZmZXJfZG1hLAotCQkJCQlhZGFwdGVyLT5uZXRkZXYtPm10dSArIElCTVZFVEhfQlVGRl9P SCwKLQkJCQkJRE1BX0JJRElSRUNUSU9OQUwpOwotCQkJYWRhcHRlci0+Ym91bmNlX2J1ZmZlcl9k bWEgPSBETUFfRVJST1JfQ09ERTsKLQkJfQotCQlrZnJlZShhZGFwdGVyLT5ib3VuY2VfYnVmZmVy KTsKLQkJYWRhcHRlci0+Ym91bmNlX2J1ZmZlciA9IE5VTEw7Ci0JfQotfQotCiBzdGF0aWMgaW50 IGlibXZldGhfcmVnaXN0ZXJfbG9naWNhbF9sYW4oc3RydWN0IGlibXZldGhfYWRhcHRlciAqYWRh cHRlciwKICAgICAgICAgdW5pb24gaWJtdmV0aF9idWZfZGVzYyByeHFfZGVzYywgdTY0IG1hY19h ZGRyZXNzKQogewpAQCAtNTczLDE0ICs1MjMsMTcgQEAgc3RhdGljIGludCBpYm12ZXRoX29wZW4o c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAlmb3IoaSA9IDA7IGkgPCBJQk1WRVRIX05VTV9C VUZGX1BPT0xTOyBpKyspCiAJCXJ4cV9lbnRyaWVzICs9IGFkYXB0ZXItPnJ4X2J1ZmZfcG9vbFtp XS5zaXplOwogCisJcmMgPSAtRU5PTUVNOwogCWFkYXB0ZXItPmJ1ZmZlcl9saXN0X2FkZHIgPSAo dm9pZCopIGdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKLQlhZGFwdGVyLT5maWx0ZXJfbGlz dF9hZGRyID0gKHZvaWQqKSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJaWYgKCFhZGFw dGVyLT5idWZmZXJfbGlzdF9hZGRyKSB7CisJCW5ldGRldl9lcnIobmV0ZGV2LCAidW5hYmxlIHRv IGFsbG9jYXRlIGxpc3QgcGFnZXNcbiIpOworCQlnb3RvIG91dDsKKwl9CiAKLQlpZiAoIWFkYXB0 ZXItPmJ1ZmZlcl9saXN0X2FkZHIgfHwgIWFkYXB0ZXItPmZpbHRlcl9saXN0X2FkZHIpIHsKLQkJ bmV0ZGV2X2VycihuZXRkZXYsICJ1bmFibGUgdG8gYWxsb2NhdGUgZmlsdGVyIG9yIGJ1ZmZlciBs aXN0ICIKLQkJCSAgICJwYWdlc1xuIik7Ci0JCXJjID0gLUVOT01FTTsKLQkJZ290byBlcnJfb3V0 OworCWFkYXB0ZXItPmZpbHRlcl9saXN0X2FkZHIgPSAodm9pZCopIGdldF96ZXJvZWRfcGFnZShH RlBfS0VSTkVMKTsKKwlpZiAoIWFkYXB0ZXItPmZpbHRlcl9saXN0X2FkZHIpIHsKKwkJbmV0ZGV2 X2VycihuZXRkZXYsICJ1bmFibGUgdG8gYWxsb2NhdGUgZmlsdGVyIHBhZ2VzXG4iKTsKKwkJZ290 byBvdXRfZnJlZV9idWZmZXJfbGlzdDsKIAl9CiAKIAlkZXYgPSAmYWRhcHRlci0+dmRldi0+ZGV2 OwpAQCAtNTkwLDIyICs1NDMsMjEgQEAgc3RhdGljIGludCBpYm12ZXRoX29wZW4oc3RydWN0IG5l dF9kZXZpY2UgKm5ldGRldikKIAlhZGFwdGVyLT5yeF9xdWV1ZS5xdWV1ZV9hZGRyID0KIAkJZG1h X2FsbG9jX2NvaGVyZW50KGRldiwgYWRhcHRlci0+cnhfcXVldWUucXVldWVfbGVuLAogCQkJCSAg ICZhZGFwdGVyLT5yeF9xdWV1ZS5xdWV1ZV9kbWEsIEdGUF9LRVJORUwpOwotCWlmICghYWRhcHRl ci0+cnhfcXVldWUucXVldWVfYWRkcikgewotCQlyYyA9IC1FTk9NRU07Ci0JCWdvdG8gZXJyX291 dDsKLQl9CisJaWYgKCFhZGFwdGVyLT5yeF9xdWV1ZS5xdWV1ZV9hZGRyKQorCQlnb3RvIG91dF9m cmVlX2ZpbHRlcl9saXN0OwogCiAJYWRhcHRlci0+YnVmZmVyX2xpc3RfZG1hID0gZG1hX21hcF9z aW5nbGUoZGV2LAogCQkJYWRhcHRlci0+YnVmZmVyX2xpc3RfYWRkciwgNDA5NiwgRE1BX0JJRElS RUNUSU9OQUwpOworCWlmIChkbWFfbWFwcGluZ19lcnJvcihkZXYsIGFkYXB0ZXItPmJ1ZmZlcl9s aXN0X2RtYSkpIHsKKwkJbmV0ZGV2X2VycihuZXRkZXYsICJ1bmFibGUgdG8gbWFwIGJ1ZmZlciBs aXN0IHBhZ2VzXG4iKTsKKwkJZ290byBvdXRfZnJlZV9xdWV1ZV9tZW07CisJfQorCiAJYWRhcHRl ci0+ZmlsdGVyX2xpc3RfZG1hID0gZG1hX21hcF9zaW5nbGUoZGV2LAogCQkJYWRhcHRlci0+Zmls dGVyX2xpc3RfYWRkciwgNDA5NiwgRE1BX0JJRElSRUNUSU9OQUwpOwotCi0JaWYgKChkbWFfbWFw cGluZ19lcnJvcihkZXYsIGFkYXB0ZXItPmJ1ZmZlcl9saXN0X2RtYSkpIHx8Ci0JICAgIChkbWFf bWFwcGluZ19lcnJvcihkZXYsIGFkYXB0ZXItPmZpbHRlcl9saXN0X2RtYSkpKSB7Ci0JCW5ldGRl dl9lcnIobmV0ZGV2LCAidW5hYmxlIHRvIG1hcCBmaWx0ZXIgb3IgYnVmZmVyIGxpc3QgIgotCQkJ ICAgInBhZ2VzXG4iKTsKLQkJcmMgPSAtRU5PTUVNOwotCQlnb3RvIGVycl9vdXQ7CisJaWYgKGRt YV9tYXBwaW5nX2Vycm9yKGRldiwgYWRhcHRlci0+ZmlsdGVyX2xpc3RfZG1hKSkgeworCQluZXRk ZXZfZXJyKG5ldGRldiwgInVuYWJsZSB0byBtYXAgZmlsdGVyIGxpc3QgcGFnZXNcbiIpOworCQln b3RvIG91dF91bm1hcF9idWZmZXJfbGlzdDsKIAl9CiAKIAlhZGFwdGVyLT5yeF9xdWV1ZS5pbmRl eCA9IDA7CkBAIC02MzYsNyArNTg4LDcgQEAgc3RhdGljIGludCBpYm12ZXRoX29wZW4oc3RydWN0 IG5ldF9kZXZpY2UgKm5ldGRldikKIAkJCQkgICAgIHJ4cV9kZXNjLmRlc2MsCiAJCQkJICAgICBt YWNfYWRkcmVzcyk7CiAJCXJjID0gLUVOT05FVDsKLQkJZ290byBlcnJfb3V0OworCQlnb3RvIG91 dF91bm1hcF9maWx0ZXJfbGlzdDsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgSUJNVkVUSF9OVU1f QlVGRl9QT09MUzsgaSsrKSB7CkBAIC02NDYsNyArNTk4LDcgQEAgc3RhdGljIGludCBpYm12ZXRo X29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAkJCW5ldGRldl9lcnIobmV0ZGV2LCAi dW5hYmxlIHRvIGFsbG9jIHBvb2xcbiIpOwogCQkJYWRhcHRlci0+cnhfYnVmZl9wb29sW2ldLmFj dGl2ZSA9IDA7CiAJCQlyYyA9IC1FTk9NRU07Ci0JCQlnb3RvIGVycl9vdXQ7CisJCQlnb3RvIG91 dF9mcmVlX2J1ZmZlcl9wb29sczsKIAkJfQogCX0KIApAQCAtNjYwLDIyICs2MTIsMjEgQEAgc3Rh dGljIGludCBpYm12ZXRoX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAkJCWxwYXJf cmMgPSBoX2ZyZWVfbG9naWNhbF9sYW4oYWRhcHRlci0+dmRldi0+dW5pdF9hZGRyZXNzKTsKIAkJ fSB3aGlsZSAoSF9JU19MT05HX0JVU1kobHBhcl9yYykgfHwgKGxwYXJfcmMgPT0gSF9CVVNZKSk7 CiAKLQkJZ290byBlcnJfb3V0OworCQlnb3RvIG91dF9mcmVlX2J1ZmZlcl9wb29sczsKIAl9CiAK KwlyYyA9IC1FTk9NRU07CiAJYWRhcHRlci0+Ym91bmNlX2J1ZmZlciA9CiAJICAgIGttYWxsb2Mo bmV0ZGV2LT5tdHUgKyBJQk1WRVRIX0JVRkZfT0gsIEdGUF9LRVJORUwpOwotCWlmICghYWRhcHRl ci0+Ym91bmNlX2J1ZmZlcikgewotCQlyYyA9IC1FTk9NRU07Ci0JCWdvdG8gZXJyX291dF9mcmVl X2lycTsKLQl9CisJaWYgKCFhZGFwdGVyLT5ib3VuY2VfYnVmZmVyKQorCQlnb3RvIG91dF9mcmVl X2lycTsKKwogCWFkYXB0ZXItPmJvdW5jZV9idWZmZXJfZG1hID0KIAkgICAgZG1hX21hcF9zaW5n bGUoJmFkYXB0ZXItPnZkZXYtPmRldiwgYWRhcHRlci0+Ym91bmNlX2J1ZmZlciwKIAkJCSAgIG5l dGRldi0+bXR1ICsgSUJNVkVUSF9CVUZGX09ILCBETUFfQklESVJFQ1RJT05BTCk7CiAJaWYgKGRt YV9tYXBwaW5nX2Vycm9yKGRldiwgYWRhcHRlci0+Ym91bmNlX2J1ZmZlcl9kbWEpKSB7CiAJCW5l dGRldl9lcnIobmV0ZGV2LCAidW5hYmxlIHRvIG1hcCBib3VuY2UgYnVmZmVyXG4iKTsKLQkJcmMg PSAtRU5PTUVNOwotCQlnb3RvIGVycl9vdXRfZnJlZV9pcnE7CisJCWdvdG8gb3V0X2ZyZWVfYm91 bmNlX2J1ZmZlcjsKIAl9CiAKIAluZXRkZXZfZGJnKG5ldGRldiwgImluaXRpYWwgcmVwbGVuaXNo IGN5Y2xlXG4iKTsKQEAgLTY4NywxMCArNjM4LDMxIEBAIHN0YXRpYyBpbnQgaWJtdmV0aF9vcGVu KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAKIAlyZXR1cm4gMDsKIAotZXJyX291dF9mcmVl X2lycToKK291dF9mcmVlX2JvdW5jZV9idWZmZXI6CisJa2ZyZWUoYWRhcHRlci0+Ym91bmNlX2J1 ZmZlcik7CitvdXRfZnJlZV9pcnE6CiAJZnJlZV9pcnEobmV0ZGV2LT5pcnEsIG5ldGRldik7Ci1l cnJfb3V0OgotCWlibXZldGhfY2xlYW51cChhZGFwdGVyKTsKK291dF9mcmVlX2J1ZmZlcl9wb29s czoKKwl3aGlsZSAoLS1pID49IDApIHsKKwkJaWYgKGFkYXB0ZXItPnJ4X2J1ZmZfcG9vbFtpXS5h Y3RpdmUpCisJCQlpYm12ZXRoX2ZyZWVfYnVmZmVyX3Bvb2woYWRhcHRlciwKKwkJCQkJCSAmYWRh cHRlci0+cnhfYnVmZl9wb29sW2ldKTsKKwl9CitvdXRfdW5tYXBfZmlsdGVyX2xpc3Q6CisJZG1h X3VubWFwX3NpbmdsZShkZXYsIGFkYXB0ZXItPmZpbHRlcl9saXN0X2RtYSwgNDA5NiwKKwkJCSBE TUFfQklESVJFQ1RJT05BTCk7CitvdXRfdW5tYXBfYnVmZmVyX2xpc3Q6CisJZG1hX3VubWFwX3Np bmdsZShkZXYsIGFkYXB0ZXItPmJ1ZmZlcl9saXN0X2RtYSwgNDA5NiwKKwkJCSBETUFfQklESVJF Q1RJT05BTCk7CitvdXRfZnJlZV9xdWV1ZV9tZW06CisJZG1hX2ZyZWVfY29oZXJlbnQoZGV2LCBh ZGFwdGVyLT5yeF9xdWV1ZS5xdWV1ZV9sZW4sCisJCQkgIGFkYXB0ZXItPnJ4X3F1ZXVlLnF1ZXVl X2FkZHIsCisJCQkgIGFkYXB0ZXItPnJ4X3F1ZXVlLnF1ZXVlX2RtYSk7CitvdXRfZnJlZV9maWx0 ZXJfbGlzdDoKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpYWRhcHRlci0+ZmlsdGVyX2xpc3Rf YWRkcik7CitvdXRfZnJlZV9idWZmZXJfbGlzdDoKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcp YWRhcHRlci0+YnVmZmVyX2xpc3RfYWRkcik7CitvdXQ6CiAJbmFwaV9kaXNhYmxlKCZhZGFwdGVy LT5uYXBpKTsKIAlyZXR1cm4gcmM7CiB9CkBAIC02OTgsNyArNjcwLDkgQEAgc3RhdGljIGludCBp Ym12ZXRoX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIHN0YXRpYyBpbnQgaWJtdmV0 aF9jbG9zZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KQogewogCXN0cnVjdCBpYm12ZXRoX2Fk YXB0ZXIgKmFkYXB0ZXIgPSBuZXRkZXZfcHJpdihuZXRkZXYpOworCXN0cnVjdCBkZXZpY2UgKmRl diA9ICZhZGFwdGVyLT52ZGV2LT5kZXY7CiAJbG9uZyBscGFyX3JjOworCWludCBpOwogCiAJbmV0 ZGV2X2RiZyhuZXRkZXYsICJjbG9zZSBzdGFydGluZ1xuIik7CiAKQEAgLTcyMiw3ICs2OTYsMjcg QEAgc3RhdGljIGludCBpYm12ZXRoX2Nsb3NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAK IAlpYm12ZXRoX3VwZGF0ZV9yeF9ub19idWZmZXIoYWRhcHRlcik7CiAKLQlpYm12ZXRoX2NsZWFu dXAoYWRhcHRlcik7CisJZG1hX3VubWFwX3NpbmdsZShkZXYsIGFkYXB0ZXItPmJ1ZmZlcl9saXN0 X2RtYSwgNDA5NiwKKwkJCSBETUFfQklESVJFQ1RJT05BTCk7CisJZnJlZV9wYWdlKCh1bnNpZ25l ZCBsb25nKWFkYXB0ZXItPmJ1ZmZlcl9saXN0X2FkZHIpOworCisJZG1hX3VubWFwX3NpbmdsZShk ZXYsIGFkYXB0ZXItPmZpbHRlcl9saXN0X2RtYSwgNDA5NiwKKwkJCSBETUFfQklESVJFQ1RJT05B TCk7CisJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKWFkYXB0ZXItPmZpbHRlcl9saXN0X2FkZHIp OworCisJZG1hX2ZyZWVfY29oZXJlbnQoZGV2LCBhZGFwdGVyLT5yeF9xdWV1ZS5xdWV1ZV9sZW4s CisJCQkgIGFkYXB0ZXItPnJ4X3F1ZXVlLnF1ZXVlX2FkZHIsCisJCQkgIGFkYXB0ZXItPnJ4X3F1 ZXVlLnF1ZXVlX2RtYSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgSUJNVkVUSF9OVU1fQlVGRl9QT09M UzsgaSsrKQorCQlpZiAoYWRhcHRlci0+cnhfYnVmZl9wb29sW2ldLmFjdGl2ZSkKKwkJCWlibXZl dGhfZnJlZV9idWZmZXJfcG9vbChhZGFwdGVyLAorCQkJCQkJICZhZGFwdGVyLT5yeF9idWZmX3Bv b2xbaV0pOworCisJZG1hX3VubWFwX3NpbmdsZSgmYWRhcHRlci0+dmRldi0+ZGV2LCBhZGFwdGVy LT5ib3VuY2VfYnVmZmVyX2RtYSwKKwkJCSBhZGFwdGVyLT5uZXRkZXYtPm10dSArIElCTVZFVEhf QlVGRl9PSCwKKwkJCSBETUFfQklESVJFQ1RJT05BTCk7CisJa2ZyZWUoYWRhcHRlci0+Ym91bmNl X2J1ZmZlcik7CiAKIAluZXRkZXZfZGJnKG5ldGRldiwgImNsb3NlIGNvbXBsZXRlXG4iKTsKIApA QCAtMTY0OCwxMSArMTY0Miw2IEBAIHN0YXRpYyBpbnQgaWJtdmV0aF9wcm9iZShzdHJ1Y3Qgdmlv X2RldiAqZGV2LCBjb25zdCBzdHJ1Y3QgdmlvX2RldmljZV9pZCAqaWQpCiAJfQogCiAJbmV0ZGV2 X2RiZyhuZXRkZXYsICJhZGFwdGVyIEAgMHglcFxuIiwgYWRhcHRlcik7Ci0KLQlhZGFwdGVyLT5i dWZmZXJfbGlzdF9kbWEgPSBETUFfRVJST1JfQ09ERTsKLQlhZGFwdGVyLT5maWx0ZXJfbGlzdF9k bWEgPSBETUFfRVJST1JfQ09ERTsKLQlhZGFwdGVyLT5yeF9xdWV1ZS5xdWV1ZV9kbWEgPSBETUFf RVJST1JfQ09ERTsKLQogCW5ldGRldl9kYmcobmV0ZGV2LCAicmVnaXN0ZXJpbmcgbmV0ZGV2Li4u XG4iKTsKIAogCWlibXZldGhfc2V0X2ZlYXR1cmVzKG5ldGRldiwgbmV0ZGV2LT5mZWF0dXJlcyk7 Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK