From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: [PATCH V13 1/6] mdev: make mdev bus agnostic Date: Mon, 18 Nov 2019 18:59:18 +0800 Message-ID: <20191118105923.7991-2-jasowang@redhat.com> References: <20191118105923.7991-1-jasowang@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id EADE46E427 for ; Mon, 18 Nov 2019 11:00:51 +0000 (UTC) In-Reply-To: <20191118105923.7991-1-jasowang@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: kvm@vger.kernel.org, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, intel-gvt-dev@lists.freedesktop.org, kwankhede@nvidia.com, alex.williamson@redhat.com, mst@redhat.com, tiwei.bie@intel.com, gregkh@linuxfoundation.org, jgg@mellanox.com Cc: rdunlap@infradead.org, jakub.kicinski@netronome.com, christophe.de.dinechin@gmail.com, sebott@linux.ibm.com, airlied@linux.ie, Jason Wang , heiko.carstens@de.ibm.com, kevin.tian@intel.com, rob.miller@broadcom.com, hch@infradead.org, lulu@redhat.com, eperezma@redhat.com, pasic@linux.ibm.com, borntraeger@de.ibm.com, haotian.wang@sifive.com, jeffrey.t.kirsher@intel.com, zhi.a.wang@intel.com, farman@linux.ibm.com, parav@mellanox.com, gor@linux.ibm.com, cunming.liang@intel.com, rodrigo.vivi@intel.com, xiao.w.wang@intel.com, freude@linux.ibm.com, stefanha@redhat.com, zhihong.wang@intel.com, akrowiak@linux.ibm.com, jiri@mellanox.com, netdev@vger.kernel.org, cohuck@redhat.com, oberpar@linux.ibm.com, maxime.coquelin@redhat.com, aadam@redhat.com, lingshan.zhu@intel.com List-Id: dri-devel@lists.freedesktop.org Q3VycmVudCBtZGV2IGlzIHRpZWQgdG8gYSBWRklPIHNwZWNpZmljICJtZGV2IiBidXMuIFRoaXMg cHJldmVudCBtZGV2CmZyb20gYmVpbmcgdXNlZCBieSBvdGhlciB0eXBlcyBvZiBBUEkvYnVzZXMu IFNvIHRoaXMgcGF0Y2ggdHJpZXMgdG8gbWFrZQptZGV2IGJ1cyBhZ25vc3RpYyB0aHJvdWdoIG1h a2luZyBhIG1kZXYgY29yZSBhIHRoaW4gbW9kdWxlOgoKLSBkZWNvdXBsZSBWRklPIGJ1cyBzcGVj aWZpYyBiaXRzIGZyb20gbWRldl9jb3JlLmMgdG8gbWRldl92ZmlvLmMgYW5kCiAgaW50cm9kdWNl IG1kZXZfdmZpbyBtb2R1bGUKLSByZXF1aXJlIHRvIHNwZWNpZnkgdGhlIHR5cGUgb2YgYnVzIHdo ZW4gcmVnaXN0ZXJpbmcgbWRldiBkZXZpY2UgYW5kCiAgbWRldiBkcml2ZXIKCldpdGggdGhvc2Ug bW9kaWZpY2F0aW9ucyBtZGV2IGJlY29tZSBhIGdlbmVyaWMgbW9kdWxlIHRoYXQgY291bGQgYmUK dXNlZCBieSBtdWx0aXBsZSB0eXBlcyBvZiB2aXJ0dWFsIGJ1c2VzIGFuZCBkZXZpY2VzLgoKU2ln bmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KLS0tCiAuLi4vZHJp dmVyLWFwaS92ZmlvLW1lZGlhdGVkLWRldmljZS5yc3QgICAgICAgfCAgNjggKysrKysrLS0tLS0t CiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMgICAgICAgICAgICAgIHwgICA4ICstCiBk cml2ZXJzL3MzOTAvY2lvL3ZmaW9fY2N3X29wcy5jICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRy aXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9vcHMuYyAgICAgICAgICAgICB8ICAyMSArKy0tCiBk cml2ZXJzL3MzOTAvY3J5cHRvL3ZmaW9fYXBfcHJpdmF0ZS5oICAgICAgICAgfCAgIDIgKy0KIGRy aXZlcnMvdmZpby9tZGV2L0tjb25maWcgICAgICAgICAgICAgICAgICAgICB8ICAxNyArKy0KIGRy aXZlcnMvdmZpby9tZGV2L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogZHJp dmVycy92ZmlvL21kZXYvbWRldl9jb3JlLmMgICAgICAgICAgICAgICAgIHwgMTA0ICsrKysrKysr KysrKystLS0tLQogZHJpdmVycy92ZmlvL21kZXYvbWRldl9kcml2ZXIuYyAgICAgICAgICAgICAg IHwgIDI5ICsrLS0tCiBkcml2ZXJzL3ZmaW8vbWRldi9tZGV2X3ByaXZhdGUuaCAgICAgICAgICAg ICAgfCAgMTMgKystCiBkcml2ZXJzL3ZmaW8vbWRldi9tZGV2X3ZmaW8uYyAgICAgICAgICAgICAg ICAgfCAgNDggKysrKysrKysKIGRyaXZlcnMvdmZpby9tZGV2L3ZmaW9fbWRldi5jICAgICAgICAg ICAgICAgICB8ICAgNSArLQogZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVfdHlwZTEuYyAgICAgICAg ICAgICAgIHwgICA2ICstCiBpbmNsdWRlL2xpbnV4L21kZXYuaCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMTYgKystCiBpbmNsdWRlL2xpbnV4L21kZXZfdmZpby5oICAgICAgICAgICAgICAg ICAgICAgfCAgMjUgKysrKysKIHNhbXBsZXMvdmZpby1tZGV2L21ib2Nocy5jICAgICAgICAgICAg ICAgICAgICB8ICAgOCArLQogc2FtcGxlcy92ZmlvLW1kZXYvbWRweS5jICAgICAgICAgICAgICAg ICAgICAgIHwgICA4ICstCiBzYW1wbGVzL3ZmaW8tbWRldi9tdHR5LmMgICAgICAgICAgICAgICAg ICAgICAgfCAgIDggKy0KIDE5IGZpbGVzIGNoYW5nZWQsIDI2OSBpbnNlcnRpb25zKCspLCAxMjgg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy92ZmlvL21kZXYvbWRldl92 ZmlvLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L21kZXZfdmZpby5oCgpkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL3ZmaW8tbWVkaWF0ZWQtZGV2aWNlLnJz dCBiL0RvY3VtZW50YXRpb24vZHJpdmVyLWFwaS92ZmlvLW1lZGlhdGVkLWRldmljZS5yc3QKaW5k ZXggMjVlYjdkNWI4MzRiLi4xODg3ZDI3YTU2NWUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24v ZHJpdmVyLWFwaS92ZmlvLW1lZGlhdGVkLWRldmljZS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi9k cml2ZXItYXBpL3ZmaW8tbWVkaWF0ZWQtZGV2aWNlLnJzdApAQCAtNDksMzUgKzQ5LDM3IEBAIGRl dmljZXMgYXMgZXhhbXBsZXMsIGFzIHRoZXNlIGRldmljZXMgYXJlIHRoZSBmaXJzdCBkZXZpY2Vz IHRvIHVzZSB0aGlzIG1vZHVsZTo6CiAKICAgICAgKy0tLS0tLS0tLS0tLS0tLSsKICAgICAgfCAg ICAgICAgICAgICAgIHwKLSAgICAgfCArLS0tLS0tLS0tLS0rIHwgIG1kZXZfcmVnaXN0ZXJfZHJp dmVyKCkgKy0tLS0tLS0tLS0tLS0tKwotICAgICB8IHwgICAgICAgICAgIHwgKzwtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rICAgICAgICAgICAgICB8Ci0gICAgIHwgfCAgbWRldiAgICAgfCB8ICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwKLSAgICAgfCB8ICBidXMgICAg ICB8ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+KyB2ZmlvX21kZXYua28gfDwtPiBWRklPIHVz ZXIKLSAgICAgfCB8ICBkcml2ZXIgICB8IHwgICAgIHByb2JlKCkvcmVtb3ZlKCkgICAgfCAgICAg ICAgICAgICAgfCAgICBBUElzCi0gICAgIHwgfCAgICAgICAgICAgfCB8ICAgICAgICAgICAgICAg ICAgICAgICAgICstLS0tLS0tLS0tLS0tLSsKLSAgICAgfCArLS0tLS0tLS0tLS0rIHwKKyAgICAg fCAgIE1ERVYgQ09SRSAgIHwgIG1kZXZfcmVnaXN0ZXJfZHJpdmVyKCkgKy0tLS0tLS0tLS0tLS0t KworICAgICB8ICAgIE1PRFVMRSAgICAgKzwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAgICAg ICAgICAgICB8CisgICAgIHwgICAgbWRldi5rbyAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgIHwKKyAgICAgfCAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0+KyB2ZmlvX21kZXYua28gfDwtPiBWRklPIHVzZXIKKyAgICAgfCAgICAgICAgICAg ICAgIHwgICAgIHByb2JlKCkvcmVtb3ZlKCkgICAgfCAgICAgICAgICAgICAgfCAgICBBUElzCisg ICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0t LS0tLSsKKyAgICAgKy0tLSstLS0tLS0tKy0tLSsKKyAgICAgICAgIHwgICAgICAvfFwKKyAgICAg ICAgIHwgICAgICAgfAorY2FsbGJhY2tzfCAgICAgICB8IG1kZXZfcmVnaXN0ZXJfZGV2aWNlKCkK KyAgICAgICAgIHwgICAgICAgfCBtZGV2X3JlZ2lzdGVyX2J1cygpCisgICAgICAgIFx8LyAgICAg IHwKKyAgICAgKy0tLSstLS0tLS0tKy0tLSsKKyAgICAgfCAgICAgICAgICAgICAgIHwgIG1kZXZf dmZpb19yZWdpc3Rlcl9kZXZpY2UoKSArLS0tLS0tLS0tLS0tLS0rCisgICAgIHwgICAgICAgICAg ICAgICArPC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgfAorICAg ICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG52aWRp YS5rbyAgIHw8LT4gcGh5c2ljYWwKKyAgICAgfCAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLT4rICAgICAgICAgICAgICB8ICAgIGRldmljZQorICAgICB8ICAgTURF ViBWRklPICAgfCAgICAgICAgY2FsbGJhY2tzICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLSsK KyAgICAgfCAgIFBoeXNpY2FsICAgIHwKKyAgICAgfCAgICBkZXZpY2UgICAgIHwgIG1kZXZfdmZp b19yZWdpc3Rlcl9kZXZpY2UoKSArLS0tLS0tLS0tLS0tLS0rCisgICAgIHwgICBpbnRlcmZhY2Ug ICB8PC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgfAorICAgICB8 ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGk5MTUua28g ICAgIHw8LT4gcGh5c2ljYWwKKyAgICAgfCBtZGV2X3ZmaW8ua28gICstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLT4rICAgICAgICAgICAgICB8ICAgIGRldmljZQorICAgICB8ICAgICAgICAg ICAgICAgfCAgICAgICAgY2FsbGJhY2tzICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLSsKKyAg ICAgfCAgICAgICAgICAgICAgIHwKKyAgICAgfCAgICAgICAgICAgICAgIHwgIG1kZXZfdmZpb19y ZWdpc3Rlcl9kZXZpY2UoKSArLS0tLS0tLS0tLS0tLS0rCisgICAgIHwgICAgICAgICAgICAgICAr PC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgfAorICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgY2N3X2RldmljZS5r b3w8LT4gcGh5c2ljYWwKKyAgICAgfCAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLT4rICAgICAgICAgICAgICB8ICAgIGRldmljZQorICAgICB8ICAgICAgICAgICAg ICAgfCAgICAgICAgY2FsbGJhY2tzICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLSsKICAgICAg fCAgICAgICAgICAgICAgIHwKLSAgICAgfCAgTURFViBDT1JFICAgIHwKLSAgICAgfCAgIE1PRFVM RSAgICAgIHwKLSAgICAgfCAgIG1kZXYua28gICAgIHwKLSAgICAgfCArLS0tLS0tLS0tLS0rIHwg IG1kZXZfcmVnaXN0ZXJfZGV2aWNlKCkgKy0tLS0tLS0tLS0tLS0tKwotICAgICB8IHwgICAgICAg ICAgIHwgKzwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAgICAgICAgICAgICB8Ci0gICAgIHwg fCAgICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG52aWRpYS5rbyAgIHw8 LT4gcGh5c2ljYWwKLSAgICAgfCB8ICAgICAgICAgICB8ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0+KyAgICAgICAgICAgICAgfCAgICBkZXZpY2UKLSAgICAgfCB8ICAgICAgICAgICB8IHwgICAg ICAgIGNhbGxiYWNrcyAgICAgICAgKy0tLS0tLS0tLS0tLS0tKwotICAgICB8IHwgUGh5c2ljYWwg IHwgfAotICAgICB8IHwgIGRldmljZSAgIHwgfCAgbWRldl9yZWdpc3Rlcl9kZXZpY2UoKSArLS0t LS0tLS0tLS0tLS0rCi0gICAgIHwgfCBpbnRlcmZhY2UgfCB8PC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsgICAgICAgICAgICAgIHwKLSAgICAgfCB8ICAgICAgICAgICB8IHwgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgaTkxNS5rbyAgICAgfDwtPiBwaHlzaWNhbAotICAgICB8IHwgICAgICAg ICAgIHwgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4rICAgICAgICAgICAgICB8ICAgIGRldmlj ZQotICAgICB8IHwgICAgICAgICAgIHwgfCAgICAgICAgY2FsbGJhY2tzICAgICAgICArLS0tLS0t LS0tLS0tLS0rCi0gICAgIHwgfCAgICAgICAgICAgfCB8Ci0gICAgIHwgfCAgICAgICAgICAgfCB8 ICBtZGV2X3JlZ2lzdGVyX2RldmljZSgpICstLS0tLS0tLS0tLS0tLSsKLSAgICAgfCB8ICAgICAg ICAgICB8ICs8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgICAgICAgICAgICAgfAotICAgICB8 IHwgICAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IGNjd19kZXZpY2Uua298 PC0+IHBoeXNpY2FsCi0gICAgIHwgfCAgICAgICAgICAgfCArLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tPisgICAgICAgICAgICAgIHwgICAgZGV2aWNlCi0gICAgIHwgfCAgICAgICAgICAgfCB8ICAg ICAgICBjYWxsYmFja3MgICAgICAgICstLS0tLS0tLS0tLS0tLSsKLSAgICAgfCArLS0tLS0tLS0t LS0rIHwKICAgICAgKy0tLS0tLS0tLS0tLS0tLSsKIAogCkBAIC0xMTYsNyArMTE4LDggQEAgdG8g cmVnaXN0ZXIgYW5kIHVucmVnaXN0ZXIgaXRzZWxmIHdpdGggdGhlIGNvcmUgZHJpdmVyOgogKiBS ZWdpc3Rlcjo6CiAKICAgICBleHRlcm4gaW50ICBtZGV2X3JlZ2lzdGVyX2RyaXZlcihzdHJ1Y3Qg bWRldl9kcml2ZXIgKmRydiwKLQkJCQkgICBzdHJ1Y3QgbW9kdWxlICpvd25lcik7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG1vZHVsZSAqb3duZXIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGJ1c190eXBlICpidXMpOwog CiAqIFVucmVnaXN0ZXI6OgogCkBAIC0xNTksMTEgKzE2MiwxMiBAQCBUaGUgY2FsbGJhY2tzIGlu IHRoZSBtZGV2X3BhcmVudF9vcHMgc3RydWN0dXJlIGFyZSBhcyBmb2xsb3dzOgogKiB3cml0ZTog d3JpdGUgZW11bGF0aW9uIGNhbGxiYWNrCiAqIG1tYXA6IG1tYXAgZW11bGF0aW9uIGNhbGxiYWNr CiAKLUEgZHJpdmVyIHNob3VsZCB1c2UgdGhlIG1kZXZfcGFyZW50X29wcyBzdHJ1Y3R1cmUgaW4g dGhlIGZ1bmN0aW9uIGNhbGwgdG8KLXJlZ2lzdGVyIGl0c2VsZiB3aXRoIHRoZSBtZGV2IGNvcmUg ZHJpdmVyOjoKK0EgZHJpdmVyIHNob3VsZCB1c2UgdGhlIG1kZXZfcGFyZW50X29wcyBzdHJ1Y3R1 cmUgYW5kIGJ1cyB0eXBlIGluIHRoZQorZnVuY3Rpb24gY2FsbCB0byByZWdpc3RlciBpdHNlbGYg d2l0aCB0aGUgbWRldiBjb3JlIGRyaXZlcjo6CiAKIAlleHRlcm4gaW50ICBtZGV2X3JlZ2lzdGVy X2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsCi0JICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IG1kZXZfcGFyZW50X29wcyAqb3BzKTsKKwkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbWRldl9wYXJlbnRfb3BzICpvcHMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBidXNfdHlwZSAq YnVzKTsKIAogSG93ZXZlciwgdGhlIG1kZXZfcGFyZW50X29wcyBzdHJ1Y3R1cmUgaXMgbm90IHJl cXVpcmVkIGluIHRoZSBmdW5jdGlvbiBjYWxsCiB0aGF0IGEgZHJpdmVyIHNob3VsZCB1c2UgdG8g dW5yZWdpc3RlciBpdHNlbGYgd2l0aCB0aGUgbWRldiBjb3JlIGRyaXZlcjo6CmRpZmYgLS1naXQg YS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCmluZGV4IDM0ZWYwY2YzMGVjZS4uNmQ1OTBhZmI2 MmMzIDEwMDY0NAotLS0gYS9NQUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtMTcxMzks NiArMTcxMzksNyBAQCBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2RyaXZlci1hcGkv dmZpby1tZWRpYXRlZC1kZXZpY2UucnN0CiBGOglkcml2ZXJzL3ZmaW8vbWRldi8KIEY6CWluY2x1 ZGUvbGludXgvbWRldi5oCitGOglpbmNsdWRlL2xpbnV4L21kZXZfdmZpby5oCiBGOglzYW1wbGVz L3ZmaW8tbWRldi8KIAogVkZJTyBQTEFURk9STSBEUklWRVIKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0 LmMKaW5kZXggMDRhNWEwZDkwODIzLi5hZmRiM2RlNWNlMmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9r dm1ndC5jCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSA8bGludXgvdXVpZC5oPgogI2luY2x1 ZGUgPGxpbnV4L2t2bV9ob3N0Lmg+CiAjaW5jbHVkZSA8bGludXgvdmZpby5oPgotI2luY2x1ZGUg PGxpbnV4L21kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9tZGV2X3ZmaW8uaD4KICNpbmNsdWRlIDxs aW51eC9kZWJ1Z2ZzLmg+CiAKICNpbmNsdWRlIDxsaW51eC9ub3NwZWMuaD4KQEAgLTE1NTQsNyAr MTU1NCw3IEBAIHN0YXRpYyBzc2l6ZV90CiB2Z3B1X2lkX3Nob3coc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkgICAgIGNoYXIgKmJ1ZikKIHsKLQlz dHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zyb21fZGV2KGRldik7CisJc3RydWN0IG1k ZXZfZGV2aWNlICptZGV2ID0gdmZpb19tZGV2X2Zyb21fZGV2KGRldik7CiAKIAlpZiAobWRldikg ewogCQlzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSA9IChzdHJ1Y3QgaW50ZWxfdmdwdSAqKQpAQCAt MTYwNiwxMiArMTYwNiwxMiBAQCBzdGF0aWMgaW50IGt2bWd0X2hvc3RfaW5pdChzdHJ1Y3QgZGV2 aWNlICpkZXYsIHZvaWQgKmd2dCwgY29uc3Qgdm9pZCAqb3BzKQogCQlyZXR1cm4gLUVGQVVMVDsK IAlpbnRlbF92Z3B1X29wcy5zdXBwb3J0ZWRfdHlwZV9ncm91cHMgPSBrdm1fdmdwdV90eXBlX2dy b3VwczsKIAotCXJldHVybiBtZGV2X3JlZ2lzdGVyX2RldmljZShkZXYsICZpbnRlbF92Z3B1X29w cyk7CisJcmV0dXJuIG1kZXZfdmZpb19yZWdpc3Rlcl9kZXZpY2UoZGV2LCAmaW50ZWxfdmdwdV9v cHMpOwogfQogCiBzdGF0aWMgdm9pZCBrdm1ndF9ob3N0X2V4aXQoc3RydWN0IGRldmljZSAqZGV2 KQogewotCW1kZXZfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2KTsKKwltZGV2X3ZmaW9fdW5yZWdpc3Rl cl9kZXZpY2UoZGV2KTsKIH0KIAogc3RhdGljIGludCBrdm1ndF9wYWdlX3RyYWNrX2FkZCh1bnNp Z25lZCBsb25nIGhhbmRsZSwgdTY0IGdmbikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8v dmZpb19jY3dfb3BzLmMgYi9kcml2ZXJzL3MzOTAvY2lvL3ZmaW9fY2N3X29wcy5jCmluZGV4IGYw ZDcxYWI3N2M1MC4uNzkxYjhiMGViMDI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL3Zm aW9fY2N3X29wcy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vdmZpb19jY3dfb3BzLmMKQEAgLTEx LDcgKzExLDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvdmZpby5oPgotI2luY2x1ZGUgPGxp bnV4L21kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9tZGV2X3ZmaW8uaD4KICNpbmNsdWRlIDxsaW51 eC9ub3NwZWMuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAKQEAgLTU4OCwxMCArNTg4LDEw IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWRldl9wYXJlbnRfb3BzIHZmaW9fY2N3X21kZXZfb3Bz ID0gewogCiBpbnQgdmZpb19jY3dfbWRldl9yZWcoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKIHsK LQlyZXR1cm4gbWRldl9yZWdpc3Rlcl9kZXZpY2UoJnNjaC0+ZGV2LCAmdmZpb19jY3dfbWRldl9v cHMpOworCXJldHVybiBtZGV2X3ZmaW9fcmVnaXN0ZXJfZGV2aWNlKCZzY2gtPmRldiwgJnZmaW9f Y2N3X21kZXZfb3BzKTsKIH0KIAogdm9pZCB2ZmlvX2Njd19tZGV2X3VucmVnKHN0cnVjdCBzdWJj aGFubmVsICpzY2gpCiB7Ci0JbWRldl91bnJlZ2lzdGVyX2RldmljZSgmc2NoLT5kZXYpOworCW1k ZXZfdmZpb191bnJlZ2lzdGVyX2RldmljZSgmc2NoLT5kZXYpOwogfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX29wcy5jIGIvZHJpdmVycy9zMzkwL2NyeXB0by92Zmlv X2FwX29wcy5jCmluZGV4IDVjMGY1M2M2ZGRlNy4uNzgwNDhlNjcwMzc0IDEwMDY0NAotLS0gYS9k cml2ZXJzL3MzOTAvY3J5cHRvL3ZmaW9fYXBfb3BzLmMKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0 by92ZmlvX2FwX29wcy5jCkBAIC02MDIsNyArNjAyLDcgQEAgc3RhdGljIHNzaXplX3QgYXNzaWdu X2FkYXB0ZXJfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogewogCWludCByZXQ7CiAJdW5zaWdu ZWQgbG9uZyBhcGlkOwotCXN0cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IG1kZXZfZnJvbV9kZXYo ZGV2KTsKKwlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSB2ZmlvX21kZXZfZnJvbV9kZXYoZGV2 KTsKIAlzdHJ1Y3QgYXBfbWF0cml4X21kZXYgKm1hdHJpeF9tZGV2ID0gbWRldl9nZXRfZHJ2ZGF0 YShtZGV2KTsKIAogCS8qIElmIHRoZSBndWVzdCBpcyBydW5uaW5nLCBkaXNhbGxvdyBhc3NpZ25t ZW50IG9mIGFkYXB0ZXIgKi8KQEAgLTY2OCw3ICs2NjgsNyBAQCBzdGF0aWMgc3NpemVfdCB1bmFz c2lnbl9hZGFwdGVyX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIHsKIAlpbnQgcmV0OwogCXVu c2lnbmVkIGxvbmcgYXBpZDsKLQlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zyb21f ZGV2KGRldik7CisJc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gdmZpb19tZGV2X2Zyb21fZGV2 KGRldik7CiAJc3RydWN0IGFwX21hdHJpeF9tZGV2ICptYXRyaXhfbWRldiA9IG1kZXZfZ2V0X2Ry dmRhdGEobWRldik7CiAKIAkvKiBJZiB0aGUgZ3Vlc3QgaXMgcnVubmluZywgZGlzYWxsb3cgdW4t YXNzaWdubWVudCBvZiBhZGFwdGVyICovCkBAIC03NDgsNyArNzQ4LDcgQEAgc3RhdGljIHNzaXpl X3QgYXNzaWduX2RvbWFpbl9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiB7CiAJaW50IHJldDsK IAl1bnNpZ25lZCBsb25nIGFwcWk7Ci0Jc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9m cm9tX2RldihkZXYpOworCXN0cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9t X2RldihkZXYpOwogCXN0cnVjdCBhcF9tYXRyaXhfbWRldiAqbWF0cml4X21kZXYgPSBtZGV2X2dl dF9kcnZkYXRhKG1kZXYpOwogCXVuc2lnbmVkIGxvbmcgbWF4X2FwcWkgPSBtYXRyaXhfbWRldi0+ bWF0cml4LmFxbV9tYXg7CiAKQEAgLTgxMCw3ICs4MTAsNyBAQCBzdGF0aWMgc3NpemVfdCB1bmFz c2lnbl9kb21haW5fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogewogCWludCByZXQ7CiAJdW5z aWduZWQgbG9uZyBhcHFpOwotCXN0cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IG1kZXZfZnJvbV9k ZXYoZGV2KTsKKwlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSB2ZmlvX21kZXZfZnJvbV9kZXYo ZGV2KTsKIAlzdHJ1Y3QgYXBfbWF0cml4X21kZXYgKm1hdHJpeF9tZGV2ID0gbWRldl9nZXRfZHJ2 ZGF0YShtZGV2KTsKIAogCS8qIElmIHRoZSBndWVzdCBpcyBydW5uaW5nLCBkaXNhbGxvdyB1bi1h c3NpZ25tZW50IG9mIGRvbWFpbiAqLwpAQCAtODU0LDcgKzg1NCw3IEBAIHN0YXRpYyBzc2l6ZV90 IGFzc2lnbl9jb250cm9sX2RvbWFpbl9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiB7CiAJaW50 IHJldDsKIAl1bnNpZ25lZCBsb25nIGlkOwotCXN0cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IG1k ZXZfZnJvbV9kZXYoZGV2KTsKKwlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSB2ZmlvX21kZXZf ZnJvbV9kZXYoZGV2KTsKIAlzdHJ1Y3QgYXBfbWF0cml4X21kZXYgKm1hdHJpeF9tZGV2ID0gbWRl dl9nZXRfZHJ2ZGF0YShtZGV2KTsKIAogCS8qIElmIHRoZSBndWVzdCBpcyBydW5uaW5nLCBkaXNh bGxvdyBhc3NpZ25tZW50IG9mIGNvbnRyb2wgZG9tYWluICovCkBAIC05MDMsNyArOTAzLDcgQEAg c3RhdGljIHNzaXplX3QgdW5hc3NpZ25fY29udHJvbF9kb21haW5fc3RvcmUoc3RydWN0IGRldmlj ZSAqZGV2LAogewogCWludCByZXQ7CiAJdW5zaWduZWQgbG9uZyBkb21pZDsKLQlzdHJ1Y3QgbWRl dl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zyb21fZGV2KGRldik7CisJc3RydWN0IG1kZXZfZGV2aWNl ICptZGV2ID0gdmZpb19tZGV2X2Zyb21fZGV2KGRldik7CiAJc3RydWN0IGFwX21hdHJpeF9tZGV2 ICptYXRyaXhfbWRldiA9IG1kZXZfZ2V0X2RydmRhdGEobWRldik7CiAJdW5zaWduZWQgbG9uZyBt YXhfZG9taWQgPSAgbWF0cml4X21kZXYtPm1hdHJpeC5hZG1fbWF4OwogCkBAIC05MzMsNyArOTMz LDcgQEAgc3RhdGljIHNzaXplX3QgY29udHJvbF9kb21haW5zX3Nob3coc3RydWN0IGRldmljZSAq ZGV2LAogCWludCBuY2hhcnMgPSAwOwogCWludCBuOwogCWNoYXIgKmJ1ZnBvcyA9IGJ1ZjsKLQlz dHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zyb21fZGV2KGRldik7CisJc3RydWN0IG1k ZXZfZGV2aWNlICptZGV2ID0gdmZpb19tZGV2X2Zyb21fZGV2KGRldik7CiAJc3RydWN0IGFwX21h dHJpeF9tZGV2ICptYXRyaXhfbWRldiA9IG1kZXZfZ2V0X2RydmRhdGEobWRldik7CiAJdW5zaWdu ZWQgbG9uZyBtYXhfZG9taWQgPSBtYXRyaXhfbWRldi0+bWF0cml4LmFkbV9tYXg7CiAKQEAgLTk1 Miw3ICs5NTIsNyBAQCBzdGF0aWMgREVWSUNFX0FUVFJfUk8oY29udHJvbF9kb21haW5zKTsKIHN0 YXRpYyBzc2l6ZV90IG1hdHJpeF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkgICBjaGFyICpidWYpCiB7Ci0Jc3RydWN0IG1kZXZfZGV2 aWNlICptZGV2ID0gbWRldl9mcm9tX2RldihkZXYpOworCXN0cnVjdCBtZGV2X2RldmljZSAqbWRl diA9IHZmaW9fbWRldl9mcm9tX2RldihkZXYpOwogCXN0cnVjdCBhcF9tYXRyaXhfbWRldiAqbWF0 cml4X21kZXYgPSBtZGV2X2dldF9kcnZkYXRhKG1kZXYpOwogCWNoYXIgKmJ1ZnBvcyA9IGJ1ZjsK IAl1bnNpZ25lZCBsb25nIGFwaWQ7CkBAIC0xMjk1LDEwICsxMjk1LDExIEBAIGludCB2ZmlvX2Fw X21kZXZfcmVnaXN0ZXIodm9pZCkKIHsKIAlhdG9taWNfc2V0KCZtYXRyaXhfZGV2LT5hdmFpbGFi bGVfaW5zdGFuY2VzLCBNQVhfWkRFVl9FTlRSSUVTX0VYVCk7CiAKLQlyZXR1cm4gbWRldl9yZWdp c3Rlcl9kZXZpY2UoJm1hdHJpeF9kZXYtPmRldmljZSwgJnZmaW9fYXBfbWF0cml4X29wcyk7CisJ cmV0dXJuIG1kZXZfdmZpb19yZWdpc3Rlcl9kZXZpY2UoJm1hdHJpeF9kZXYtPmRldmljZSwKKwkJ CQkJICZ2ZmlvX2FwX21hdHJpeF9vcHMpOwogfQogCiB2b2lkIHZmaW9fYXBfbWRldl91bnJlZ2lz dGVyKHZvaWQpCiB7Ci0JbWRldl91bnJlZ2lzdGVyX2RldmljZSgmbWF0cml4X2Rldi0+ZGV2aWNl KTsKKwltZGV2X3ZmaW9fdW5yZWdpc3Rlcl9kZXZpY2UoJm1hdHJpeF9kZXYtPmRldmljZSk7CiB9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY3J5cHRvL3ZmaW9fYXBfcHJpdmF0ZS5oIGIvZHJp dmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX3ByaXZhdGUuaAppbmRleCBmNDZkZGU1NmI0NjQuLjRl MzdlMGUzNDMzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX3ByaXZh dGUuaAorKysgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3ZmaW9fYXBfcHJpdmF0ZS5oCkBAIC0xNCw3 ICsxNCw3IEBACiAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Rl dmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L21kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9tZGV2X3Zm aW8uaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+ CiAjaW5jbHVkZSA8bGludXgva3ZtX2hvc3QuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9t ZGV2L0tjb25maWcgYi9kcml2ZXJzL3ZmaW8vbWRldi9LY29uZmlnCmluZGV4IDVkYTI3ZjIxMDBm OS4uMmUwN2NhOTE1YTk2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZmaW8vbWRldi9LY29uZmlnCisr KyBiL2RyaXZlcnMvdmZpby9tZGV2L0tjb25maWcKQEAgLTEsMTUgKzEsMjQgQEAKLSMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQogCi1jb25maWcgVkZJT19NREVWCitjb25m aWcgTURFVgogCXRyaXN0YXRlICJNZWRpYXRlZCBkZXZpY2UgZHJpdmVyIGZyYW1ld29yayIKLQlk ZXBlbmRzIG9uIFZGSU8KIAlkZWZhdWx0IG4KIAloZWxwCiAJICBQcm92aWRlcyBhIGZyYW1ld29y ayB0byB2aXJ0dWFsaXplIGRldmljZXMuCi0JICBTZWUgRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBp L3ZmaW8tbWVkaWF0ZWQtZGV2aWNlLnJzdCBmb3IgbW9yZSBkZXRhaWxzLgogCiAJICBJZiB5b3Ug ZG9uJ3Qga25vdyB3aGF0IGRvIGhlcmUsIHNheSBOLgogCitjb25maWcgVkZJT19NREVWCisJdHJp c3RhdGUgIlZGSU8gTWVkaWF0ZWQgZGV2aWNlIGRyaXZlciIKKyAgICAgICAgZGVwZW5kcyBvbiBW RklPICYmIE1ERVYKKyAgICAgICAgZGVmYXVsdCBuCisJaGVscAorCSAgUHJvaXZkZXMgYSBtZWRp YXRlZCBCVVMgZm9yIHVzZXJzcGFjZSBkcml2ZXIgdGhyb3VnaCBWRklPCisJICBmcmFtZXdvcmsu IFNlZSBEb2N1bWVudGF0aW9uL3ZmaW8tbWVkaWF0ZWQtZGV2aWNlLnR4dCBmb3IKKwkgIG1vcmUg ZGV0YWlscy4KKworCSAgSWYgeW91IGRvbid0IGtub3cgd2hhdCBkbyBoZXJlLCBzYXkgTi4KKwor CiBjb25maWcgVkZJT19NREVWX0RFVklDRQogCXRyaXN0YXRlICJWRklPIGRyaXZlciBmb3IgTWVk aWF0ZWQgZGV2aWNlcyIKIAlkZXBlbmRzIG9uIFZGSU8gJiYgVkZJT19NREVWCmRpZmYgLS1naXQg YS9kcml2ZXJzL3ZmaW8vbWRldi9NYWtlZmlsZSBiL2RyaXZlcnMvdmZpby9tZGV2L01ha2VmaWxl CmluZGV4IDEwMTUxNmZkZjM3NS4uZTk2NzU1MDEyNzFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Zm aW8vbWRldi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3ZmaW8vbWRldi9NYWtlZmlsZQpAQCAtMSw2 ICsxLDYgQEAKLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQogCiBtZGV2 LXkgOj0gbWRldl9jb3JlLm8gbWRldl9zeXNmcy5vIG1kZXZfZHJpdmVyLm8KIAotb2JqLSQoQ09O RklHX1ZGSU9fTURFVikgKz0gbWRldi5vCitvYmotJChDT05GSUdfTURFVikgKz0gbWRldi5vCitv YmotJChDT05GSUdfVkZJT19NREVWKSArPSBtZGV2X3ZmaW8ubwogb2JqLSQoQ09ORklHX1ZGSU9f TURFVl9ERVZJQ0UpICs9IHZmaW9fbWRldi5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vbWRl di9tZGV2X2NvcmUuYyBiL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfY29yZS5jCmluZGV4IGI1NThk NGNmZDA4Mi4uZTEyNzJhNDBjNTIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZmaW8vbWRldi9tZGV2 X2NvcmUuYworKysgYi9kcml2ZXJzL3ZmaW8vbWRldi9tZGV2X2NvcmUuYwpAQCAtMjIsMTEgKzIy LDEzIEBACiAKIHN0YXRpYyBMSVNUX0hFQUQocGFyZW50X2xpc3QpOwogc3RhdGljIERFRklORV9N VVRFWChwYXJlbnRfbGlzdF9sb2NrKTsKLXN0YXRpYyBzdHJ1Y3QgY2xhc3NfY29tcGF0ICptZGV2 X2J1c19jb21wYXRfY2xhc3M7CiAKIHN0YXRpYyBMSVNUX0hFQUQobWRldl9saXN0KTsKIHN0YXRp YyBERUZJTkVfTVVURVgobWRldl9saXN0X2xvY2spOwogCitzdGF0aWMgTElTVF9IRUFEKGNsYXNz X2NvbXBhdF9saXN0KTsKK3N0YXRpYyBERUZJTkVfTVVURVgoY29tcGF0X2xpc3RfbG9jayk7CisK IHN0cnVjdCBkZXZpY2UgKm1kZXZfcGFyZW50X2RldihzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYp CiB7CiAJcmV0dXJuIG1kZXYtPnBhcmVudC0+ZGV2OwpAQCAtNTEsOSArNTMsOSBAQCBzdHJ1Y3Qg ZGV2aWNlICptZGV2X2RldihzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpCiB9CiBFWFBPUlRfU1lN Qk9MKG1kZXZfZGV2KTsKIAotc3RydWN0IG1kZXZfZGV2aWNlICptZGV2X2Zyb21fZGV2KHN0cnVj dCBkZXZpY2UgKmRldikKK3N0cnVjdCBtZGV2X2RldmljZSAqbWRldl9mcm9tX2RldihzdHJ1Y3Qg ZGV2aWNlICpkZXYsIHN0cnVjdCBidXNfdHlwZSAqYnVzKQogewotCXJldHVybiBkZXZfaXNfbWRl dihkZXYpID8gdG9fbWRldl9kZXZpY2UoZGV2KSA6IE5VTEw7CisJcmV0dXJuIGRldl9pc19tZGV2 KGRldiwgYnVzKSA/IHRvX21kZXZfZGV2aWNlKGRldikgOiBOVUxMOwogfQogRVhQT1JUX1NZTUJP TChtZGV2X2Zyb21fZGV2KTsKIApAQCAtMTIyLDcgKzEyNCw5IEBAIHN0YXRpYyB2b2lkIG1kZXZf ZGV2aWNlX3JlbW92ZV9jb21tb24oc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KQogCiBzdGF0aWMg aW50IG1kZXZfZGV2aWNlX3JlbW92ZV9jYihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEp CiB7Ci0JaWYgKGRldl9pc19tZGV2KGRldikpIHsKKwlzdHJ1Y3QgYnVzX3R5cGUgKmJ1cyA9IGRh dGE7CisKKwlpZiAoZGV2X2lzX21kZXYoZGV2LCBidXMpKSB7CiAJCXN0cnVjdCBtZGV2X2Rldmlj ZSAqbWRldjsKIAogCQltZGV2ID0gdG9fbWRldl9kZXZpY2UoZGV2KTsKQEAgLTEzMSw2ICsxMzUs NDEgQEAgc3RhdGljIGludCBtZGV2X2RldmljZV9yZW1vdmVfY2Ioc3RydWN0IGRldmljZSAqZGV2 LCB2b2lkICpkYXRhKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgc3RydWN0IG1kZXZfY2xhc3Nf Y29tcGF0ICpnZXRfY2xhc3NfY29tcGF0KHN0cnVjdCBidXNfdHlwZSAqYnVzKQoreworCXN0cnVj dCBtZGV2X2NsYXNzX2NvbXBhdCAqbWRldl9jbGFzc19jb21wYXQ7CisKKwlsaXN0X2Zvcl9lYWNo X2VudHJ5KG1kZXZfY2xhc3NfY29tcGF0LCAmY2xhc3NfY29tcGF0X2xpc3QsIG5leHQpIHsKKwkJ aWYgKG1kZXZfY2xhc3NfY29tcGF0LT5idXMgPT0gYnVzKQorCQkJcmV0dXJuIG1kZXZfY2xhc3Nf Y29tcGF0OworCX0KKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgc3RydWN0IGNsYXNzX2Nv bXBhdCAqbWRldl9hbGxvY19jbGFzc19jb21wYXQoc3RydWN0IGJ1c190eXBlICpidXMpCit7CisJ c3RydWN0IG1kZXZfY2xhc3NfY29tcGF0ICptZGV2X2NsYXNzX2NvbXBhdCA9IGdldF9jbGFzc19j b21wYXQoYnVzKTsKKwljaGFyIGNsYXNzX25hbWVbNjRdOworCisJaWYgKG1kZXZfY2xhc3NfY29t cGF0KQorCQlyZXR1cm4gbWRldl9jbGFzc19jb21wYXQtPmNsYXNzX2NvbXBhdDsKKworCW1kZXZf Y2xhc3NfY29tcGF0ID0ga21hbGxvYyhzaXplb2YoKm1kZXZfY2xhc3NfY29tcGF0KSwgR0ZQX0tF Uk5FTCk7CisJaWYgKCFtZGV2X2NsYXNzX2NvbXBhdCkKKwkJcmV0dXJuIE5VTEw7CisJc25wcmlu dGYoY2xhc3NfbmFtZSwgNjQsICIlc19idXMiLCBidXMtPm5hbWUpOworCW1kZXZfY2xhc3NfY29t cGF0LT5jbGFzc19jb21wYXQgPSBjbGFzc19jb21wYXRfcmVnaXN0ZXIoY2xhc3NfbmFtZSk7CisJ aWYgKCFtZGV2X2NsYXNzX2NvbXBhdC0+Y2xhc3NfY29tcGF0KSB7CisJCWtmcmVlKG1kZXZfY2xh c3NfY29tcGF0KTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCW1kZXZfY2xhc3NfY29tcGF0LT5idXMg PSBidXM7CisJbGlzdF9hZGQoJm1kZXZfY2xhc3NfY29tcGF0LT5uZXh0LCAmY2xhc3NfY29tcGF0 X2xpc3QpOworCisJcmV0dXJuIG1kZXZfY2xhc3NfY29tcGF0LT5jbGFzc19jb21wYXQ7Cit9CisK IC8qCiAgKiBtZGV2X3JlZ2lzdGVyX2RldmljZSA6IFJlZ2lzdGVyIGEgZGV2aWNlCiAgKiBAZGV2 OiBkZXZpY2Ugc3RydWN0dXJlIHJlcHJlc2VudGluZyBwYXJlbnQgZGV2aWNlLgpAQCAtMTM5LDEy ICsxNzgsMTQgQEAgc3RhdGljIGludCBtZGV2X2RldmljZV9yZW1vdmVfY2Ioc3RydWN0IGRldmlj ZSAqZGV2LCB2b2lkICpkYXRhKQogICogQWRkIGRldmljZSB0byBsaXN0IG9mIHJlZ2lzdGVyZWQg cGFyZW50IGRldmljZXMuCiAgKiBSZXR1cm5zIGEgbmVnYXRpdmUgdmFsdWUgb24gZXJyb3IsIG90 aGVyd2lzZSAwLgogICovCi1pbnQgbWRldl9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGRldmljZSAq ZGV2LCBjb25zdCBzdHJ1Y3QgbWRldl9wYXJlbnRfb3BzICpvcHMpCitpbnQgbWRldl9yZWdpc3Rl cl9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QgbWRldl9wYXJlbnRfb3Bz ICpvcHMsCisJCQkgc3RydWN0IGJ1c190eXBlICpidXMpCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3Qg bWRldl9wYXJlbnQgKnBhcmVudDsKIAljaGFyICplbnZfc3RyaW5nID0gIk1ERVZfU1RBVEU9cmVn aXN0ZXJlZCI7CiAJY2hhciAqZW52cFtdID0geyBlbnZfc3RyaW5nLCBOVUxMIH07CisJc3RydWN0 IGNsYXNzX2NvbXBhdCAqY2xhc3NfY29tcGF0OwogCiAJLyogY2hlY2sgZm9yIG1hbmRhdG9yeSBv cHMgKi8KIAlpZiAoIW9wcyB8fCAhb3BzLT5jcmVhdGUgfHwgIW9wcy0+cmVtb3ZlIHx8ICFvcHMt PnN1cHBvcnRlZF90eXBlX2dyb3VwcykKQEAgLTE3NSwyMCArMjE2LDIxIEBAIGludCBtZGV2X3Jl Z2lzdGVyX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBtZGV2X3BhcmVu dF9vcHMgKm9wcykKIAogCXBhcmVudC0+ZGV2ID0gZGV2OwogCXBhcmVudC0+b3BzID0gb3BzOwor CXBhcmVudC0+YnVzID0gYnVzOwogCi0JaWYgKCFtZGV2X2J1c19jb21wYXRfY2xhc3MpIHsKLQkJ bWRldl9idXNfY29tcGF0X2NsYXNzID0gY2xhc3NfY29tcGF0X3JlZ2lzdGVyKCJtZGV2X2J1cyIp OwotCQlpZiAoIW1kZXZfYnVzX2NvbXBhdF9jbGFzcykgewotCQkJcmV0ID0gLUVOT01FTTsKLQkJ CWdvdG8gYWRkX2Rldl9lcnI7Ci0JCX0KKwltdXRleF9sb2NrKCZjb21wYXRfbGlzdF9sb2NrKTsK KwljbGFzc19jb21wYXQgPSBtZGV2X2FsbG9jX2NsYXNzX2NvbXBhdChidXMpOworCW11dGV4X3Vu bG9jaygmY29tcGF0X2xpc3RfbG9jayk7CisJaWYgKCFjbGFzc19jb21wYXQpIHsKKwkJcmV0ID0g LUVOT01FTTsKKwkJZ290byBhZGRfZGV2X2VycjsKIAl9CiAKIAlyZXQgPSBwYXJlbnRfY3JlYXRl X3N5c2ZzX2ZpbGVzKHBhcmVudCk7CiAJaWYgKHJldCkKIAkJZ290byBhZGRfZGV2X2VycjsKIAot CXJldCA9IGNsYXNzX2NvbXBhdF9jcmVhdGVfbGluayhtZGV2X2J1c19jb21wYXRfY2xhc3MsIGRl diwgTlVMTCk7CisJcmV0ID0gY2xhc3NfY29tcGF0X2NyZWF0ZV9saW5rKGNsYXNzX2NvbXBhdCwg ZGV2LCBOVUxMKTsKIAlpZiAocmV0KQogCQlkZXZfd2FybihkZXYsICJGYWlsZWQgdG8gY3JlYXRl IGNvbXBhdGliaWxpdHkgY2xhc3MgbGlua1xuIik7CiAKQEAgLTIyMyw2ICsyNjUsNyBAQCB2b2lk IG1kZXZfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogCXN0cnVjdCBtZGV2 X3BhcmVudCAqcGFyZW50OwogCWNoYXIgKmVudl9zdHJpbmcgPSAiTURFVl9TVEFURT11bnJlZ2lz dGVyZWQiOwogCWNoYXIgKmVudnBbXSA9IHsgZW52X3N0cmluZywgTlVMTCB9OworCXN0cnVjdCBt ZGV2X2NsYXNzX2NvbXBhdCAqbWRldl9jbGFzc19jb21wYXQ7CiAKIAltdXRleF9sb2NrKCZwYXJl bnRfbGlzdF9sb2NrKTsKIAlwYXJlbnQgPSBfX2ZpbmRfcGFyZW50X2RldmljZShkZXYpOwpAQCAt MjM4LDkgKzI4MSwxMyBAQCB2b2lkIG1kZXZfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGRldmlj ZSAqZGV2KQogCiAJZG93bl93cml0ZSgmcGFyZW50LT51bnJlZ19zZW0pOwogCi0JY2xhc3NfY29t cGF0X3JlbW92ZV9saW5rKG1kZXZfYnVzX2NvbXBhdF9jbGFzcywgZGV2LCBOVUxMKTsKKwltdXRl eF9sb2NrKCZjb21wYXRfbGlzdF9sb2NrKTsKKwltZGV2X2NsYXNzX2NvbXBhdCA9IGdldF9jbGFz c19jb21wYXQocGFyZW50LT5idXMpOworCVdBUk5fT04oIW1kZXZfY2xhc3NfY29tcGF0KTsKKwlj bGFzc19jb21wYXRfcmVtb3ZlX2xpbmsobWRldl9jbGFzc19jb21wYXQtPmNsYXNzX2NvbXBhdCwg ZGV2LCBOVUxMKTsKKwltdXRleF91bmxvY2soJmNvbXBhdF9saXN0X2xvY2spOwogCi0JZGV2aWNl X2Zvcl9lYWNoX2NoaWxkKGRldiwgTlVMTCwgbWRldl9kZXZpY2VfcmVtb3ZlX2NiKTsKKwlkZXZp Y2VfZm9yX2VhY2hfY2hpbGQoZGV2LCBwYXJlbnQtPmJ1cywgbWRldl9kZXZpY2VfcmVtb3ZlX2Ni KTsKIAogCXBhcmVudF9yZW1vdmVfc3lzZnNfZmlsZXMocGFyZW50KTsKIAl1cF93cml0ZSgmcGFy ZW50LT51bnJlZ19zZW0pOwpAQCAtMzE0LDcgKzM2MSw3IEBAIGludCBtZGV2X2RldmljZV9jcmVh dGUoc3RydWN0IGtvYmplY3QgKmtvYmosCiAKIAlkZXZpY2VfaW5pdGlhbGl6ZSgmbWRldi0+ZGV2 KTsKIAltZGV2LT5kZXYucGFyZW50ICA9IGRldjsKLQltZGV2LT5kZXYuYnVzICAgICA9ICZtZGV2 X2J1c190eXBlOworCW1kZXYtPmRldi5idXMgICAgID0gcGFyZW50LT5idXM7CiAJbWRldi0+ZGV2 LnJlbGVhc2UgPSBtZGV2X2RldmljZV9yZWxlYXNlOwogCWRldl9zZXRfbmFtZSgmbWRldi0+ZGV2 LCAiJXBVbCIsIHV1aWQpOwogCW1kZXYtPmRldi5ncm91cHMgPSBwYXJlbnQtPm9wcy0+bWRldl9h dHRyX2dyb3VwczsKQEAgLTQwNCwyNCArNDUxLDI5IEBAIHN0cnVjdCBkZXZpY2UgKm1kZXZfZ2V0 X2lvbW11X2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB9CiBFWFBPUlRfU1lNQk9MKG1kZXZf Z2V0X2lvbW11X2RldmljZSk7CiAKLXN0YXRpYyBpbnQgX19pbml0IG1kZXZfaW5pdCh2b2lkKQor aW50IG1kZXZfcmVnaXN0ZXJfYnVzKHN0cnVjdCBidXNfdHlwZSAqYnVzKQogewotCXJldHVybiBt ZGV2X2J1c19yZWdpc3RlcigpOworCXJldHVybiBidXNfcmVnaXN0ZXIoYnVzKTsKIH0KK0VYUE9S VF9TWU1CT0wobWRldl9yZWdpc3Rlcl9idXMpOwogCi1zdGF0aWMgdm9pZCBfX2V4aXQgbWRldl9l eGl0KHZvaWQpCit2b2lkIG1kZXZfdW5yZWdpc3Rlcl9idXMoc3RydWN0IGJ1c190eXBlICpidXMp CiB7Ci0JaWYgKG1kZXZfYnVzX2NvbXBhdF9jbGFzcykKLQkJY2xhc3NfY29tcGF0X3VucmVnaXN0 ZXIobWRldl9idXNfY29tcGF0X2NsYXNzKTsKLQotCW1kZXZfYnVzX3VucmVnaXN0ZXIoKTsKKwlz dHJ1Y3QgbWRldl9jbGFzc19jb21wYXQgKm1kZXZfY2xhc3NfY29tcGF0OworCisJbXV0ZXhfbG9j aygmY29tcGF0X2xpc3RfbG9jayk7CisJbWRldl9jbGFzc19jb21wYXQgPSBnZXRfY2xhc3NfY29t cGF0KGJ1cyk7CisJaWYgKG1kZXZfY2xhc3NfY29tcGF0KSB7CisJCWxpc3RfZGVsKCZtZGV2X2Ns YXNzX2NvbXBhdC0+bmV4dCk7CisJCWNsYXNzX2NvbXBhdF91bnJlZ2lzdGVyKG1kZXZfY2xhc3Nf Y29tcGF0LT5jbGFzc19jb21wYXQpOworCQlrZnJlZShtZGV2X2NsYXNzX2NvbXBhdCk7CisJfQor CWJ1c191bnJlZ2lzdGVyKGJ1cyk7CisJbXV0ZXhfdW5sb2NrKCZjb21wYXRfbGlzdF9sb2NrKTsK IH0KLQotbW9kdWxlX2luaXQobWRldl9pbml0KQotbW9kdWxlX2V4aXQobWRldl9leGl0KQorRVhQ T1JUX1NZTUJPTChtZGV2X3VucmVnaXN0ZXJfYnVzKTsKIAogTU9EVUxFX1ZFUlNJT04oRFJJVkVS X1ZFUlNJT04pOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwogTU9EVUxFX0FVVEhPUihEUklW RVJfQVVUSE9SKTsKIE1PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7Ci1NT0RVTEVfU09G VERFUCgicG9zdDogdmZpb19tZGV2Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vbWRldi9t ZGV2X2RyaXZlci5jIGIvZHJpdmVycy92ZmlvL21kZXYvbWRldl9kcml2ZXIuYwppbmRleCAwZDMy MjNhZWUyMGIuLmMzYTJhYzAyMzcxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL21kZXYvbWRl dl9kcml2ZXIuYworKysgYi9kcml2ZXJzL3ZmaW8vbWRldi9tZGV2X2RyaXZlci5jCkBAIC0xMCw2 ICsxMCw3IEBACiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvaW9t bXUuaD4KICNpbmNsdWRlIDxsaW51eC9tZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvbWRldl92Zmlv Lmg+CiAKICNpbmNsdWRlICJtZGV2X3ByaXZhdGUuaCIKIApAQCAtMzcsNyArMzgsNyBAQCBzdGF0 aWMgdm9pZCBtZGV2X2RldGFjaF9pb21tdShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYpCiAJZGV2 X2luZm8oJm1kZXYtPmRldiwgIk1ERVY6IGRldGFjaGluZyBpb21tdVxuIik7CiB9CiAKLXN0YXRp YyBpbnQgbWRldl9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCitpbnQgbWRldl9wcm9iZShzdHJ1 Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IG1kZXZfZHJpdmVyICpkcnYgPSB0b19tZGV2X2Ry aXZlcihkZXYtPmRyaXZlcik7CiAJc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gdG9fbWRldl9k ZXZpY2UoZGV2KTsKQEAgLTU1LDggKzU2LDkgQEAgc3RhdGljIGludCBtZGV2X3Byb2JlKHN0cnVj dCBkZXZpY2UgKmRldikKIAogCXJldHVybiByZXQ7CiB9CitFWFBPUlRfU1lNQk9MKG1kZXZfcHJv YmUpOwogCi1zdGF0aWMgaW50IG1kZXZfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldikKK2ludCBt ZGV2X3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IG1kZXZfZHJpdmVyICpk cnYgPSB0b19tZGV2X2RyaXZlcihkZXYtPmRyaXZlcik7CiAJc3RydWN0IG1kZXZfZGV2aWNlICpt ZGV2ID0gdG9fbWRldl9kZXZpY2UoZGV2KTsKQEAgLTY4LDI2ICs3MCwyMiBAQCBzdGF0aWMgaW50 IG1kZXZfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldikKIAogCXJldHVybiAwOwogfQotCi1zdHJ1 Y3QgYnVzX3R5cGUgbWRldl9idXNfdHlwZSA9IHsKLQkubmFtZQkJPSAibWRldiIsCi0JLnByb2Jl CQk9IG1kZXZfcHJvYmUsCi0JLnJlbW92ZQkJPSBtZGV2X3JlbW92ZSwKLX07Ci1FWFBPUlRfU1lN Qk9MX0dQTChtZGV2X2J1c190eXBlKTsKK0VYUE9SVF9TWU1CT0wobWRldl9yZW1vdmUpOwogCiAv KioKICAqIG1kZXZfcmVnaXN0ZXJfZHJpdmVyIC0gcmVnaXN0ZXIgYSBuZXcgTURFViBkcml2ZXIK ICAqIEBkcnY6IHRoZSBkcml2ZXIgdG8gcmVnaXN0ZXIKICAqIEBvd25lcjogbW9kdWxlIG93bmVy IG9mIGRyaXZlciB0byBiZSByZWdpc3RlcmVkCisgKiBAYnVzOiBidXQgdGhhdCB0aGUgZHJpdmVy IHdhbnRzIHRvIGF0dGFjaAogICoKICAqIFJldHVybnMgYSBuZWdhdGl2ZSB2YWx1ZSBvbiBlcnJv ciwgb3RoZXJ3aXNlIDAuCiAgKiovCi1pbnQgbWRldl9yZWdpc3Rlcl9kcml2ZXIoc3RydWN0IG1k ZXZfZHJpdmVyICpkcnYsIHN0cnVjdCBtb2R1bGUgKm93bmVyKQoraW50IG1kZXZfcmVnaXN0ZXJf ZHJpdmVyKHN0cnVjdCBtZGV2X2RyaXZlciAqZHJ2LCBzdHJ1Y3QgbW9kdWxlICpvd25lciwKKwkJ CSBzdHJ1Y3QgYnVzX3R5cGUgKmJ1cykKIHsKIAkvKiBpbml0aWFsaXplIGNvbW1vbiBkcml2ZXIg ZmllbGRzICovCiAJZHJ2LT5kcml2ZXIubmFtZSA9IGRydi0+bmFtZTsKLQlkcnYtPmRyaXZlci5i dXMgPSAmbWRldl9idXNfdHlwZTsKKwlkcnYtPmRyaXZlci5idXMgPSBidXM7CiAJZHJ2LT5kcml2 ZXIub3duZXIgPSBvd25lcjsKIAogCS8qIHJlZ2lzdGVyIHdpdGggY29yZSAqLwpAQCAtMTA1LDEy ICsxMDMsMyBAQCB2b2lkIG1kZXZfdW5yZWdpc3Rlcl9kcml2ZXIoc3RydWN0IG1kZXZfZHJpdmVy ICpkcnYpCiB9CiBFWFBPUlRfU1lNQk9MKG1kZXZfdW5yZWdpc3Rlcl9kcml2ZXIpOwogCi1pbnQg bWRldl9idXNfcmVnaXN0ZXIodm9pZCkKLXsKLQlyZXR1cm4gYnVzX3JlZ2lzdGVyKCZtZGV2X2J1 c190eXBlKTsKLX0KLQotdm9pZCBtZGV2X2J1c191bnJlZ2lzdGVyKHZvaWQpCi17Ci0JYnVzX3Vu cmVnaXN0ZXIoJm1kZXZfYnVzX3R5cGUpOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92ZmlvL21k ZXYvbWRldl9wcml2YXRlLmggYi9kcml2ZXJzL3ZmaW8vbWRldi9tZGV2X3ByaXZhdGUuaAppbmRl eCA3ZDkyMjk1MGNhYWYuLjI5OGQ3YTBmNDkzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL21k ZXYvbWRldl9wcml2YXRlLmgKKysrIGIvZHJpdmVycy92ZmlvL21kZXYvbWRldl9wcml2YXRlLmgK QEAgLTEwLDEyICsxMCwxMCBAQAogI2lmbmRlZiBNREVWX1BSSVZBVEVfSAogI2RlZmluZSBNREVW X1BSSVZBVEVfSAogCi1pbnQgIG1kZXZfYnVzX3JlZ2lzdGVyKHZvaWQpOwotdm9pZCBtZGV2X2J1 c191bnJlZ2lzdGVyKHZvaWQpOwotCiBzdHJ1Y3QgbWRldl9wYXJlbnQgewogCXN0cnVjdCBkZXZp Y2UgKmRldjsKIAljb25zdCBzdHJ1Y3QgbWRldl9wYXJlbnRfb3BzICpvcHM7CisJc3RydWN0IGJ1 c190eXBlICpidXM7CiAJc3RydWN0IGtyZWYgcmVmOwogCXN0cnVjdCBsaXN0X2hlYWQgbmV4dDsK IAlzdHJ1Y3Qga3NldCAqbWRldl90eXBlc19rc2V0OwpAQCAtMzUsOCArMzMsMTUgQEAgc3RydWN0 IG1kZXZfZGV2aWNlIHsKIAlib29sIGFjdGl2ZTsKIH07CiAKK3N0cnVjdCBtZGV2X2NsYXNzX2Nv bXBhdCB7CisJc3RydWN0IGNsYXNzX2NvbXBhdCAqY2xhc3NfY29tcGF0OworCXN0cnVjdCBidXNf dHlwZSAqYnVzOworCXN0cnVjdCBsaXN0X2hlYWQgbmV4dDsKK307CisKKwogI2RlZmluZSB0b19t ZGV2X2RldmljZShkZXYpCWNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBtZGV2X2RldmljZSwgZGV2 KQotI2RlZmluZSBkZXZfaXNfbWRldihkKQkJKChkKS0+YnVzID09ICZtZGV2X2J1c190eXBlKQor I2RlZmluZSBkZXZfaXNfbWRldihkLCBidXMpCSgoZCktPmJ1cyA9PSBidXMpCiAKIHN0cnVjdCBt ZGV2X3R5cGUgewogCXN0cnVjdCBrb2JqZWN0IGtvYmo7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zm aW8vbWRldi9tZGV2X3ZmaW8uYyBiL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfdmZpby5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjlkMTE5MWI5OTgyCi0tLSAvZGV2 L251bGwKKysrIGIvZHJpdmVycy92ZmlvL21kZXYvbWRldl92ZmlvLmMKQEAgLTAsMCArMSw0OCBA QAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQorI2luY2x1ZGUgPGxp bnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3V1aWQuaD4KKyNpbmNsdWRlIDxsaW51eC9k ZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tZGV2X3ZmaW8uaD4KKworI2RlZmluZSBEUklWRVJf VkVSU0lPTgkJIjAuMSIKKyNkZWZpbmUgRFJJVkVSX0FVVEhPUgkJIkphc29uIFdhbmciCisjZGVm aW5lIERSSVZFUl9ERVNDCQkiTWVkaWF0ZWQgVkZJTyBidXMiCisKK3N0cnVjdCBidXNfdHlwZSBt ZGV2X3ZmaW9fYnVzX3R5cGUgPSB7CisJLm5hbWUJCT0gIm1kZXYiLAorCS5wcm9iZQkJPSBtZGV2 X3Byb2JlLAorCS5yZW1vdmUJCT0gbWRldl9yZW1vdmUsCit9OworRVhQT1JUX1NZTUJPTChtZGV2 X3ZmaW9fYnVzX3R5cGUpOworCitzdGF0aWMgaW50IF9faW5pdCBtZGV2X2luaXQodm9pZCkKK3sK KwlyZXR1cm4gbWRldl9yZWdpc3Rlcl9idXMoJm1kZXZfdmZpb19idXNfdHlwZSk7Cit9CisKK3N0 YXRpYyB2b2lkIF9fZXhpdCBtZGV2X2V4aXQodm9pZCkKK3sKKwltZGV2X3VucmVnaXN0ZXJfYnVz KCZtZGV2X3ZmaW9fYnVzX3R5cGUpOworfQorCitpbnQgbWRldl92ZmlvX3JlZ2lzdGVyX2Rldmlj ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgbWRldl9wYXJlbnRf b3BzICpvcHMpCit7CisJcmV0dXJuIG1kZXZfcmVnaXN0ZXJfZGV2aWNlKGRldiwgb3BzLCAmbWRl dl92ZmlvX2J1c190eXBlKTsKK30KK0VYUE9SVF9TWU1CT0wobWRldl92ZmlvX3JlZ2lzdGVyX2Rl dmljZSk7CisKK3ZvaWQgbWRldl92ZmlvX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZpY2Ug KmRldikKK3sKKwlyZXR1cm4gbWRldl91bnJlZ2lzdGVyX2RldmljZShkZXYpOworfQorRVhQT1JU X1NZTUJPTChtZGV2X3ZmaW9fdW5yZWdpc3Rlcl9kZXZpY2UpOworCittb2R1bGVfaW5pdChtZGV2 X2luaXQpCittb2R1bGVfZXhpdChtZGV2X2V4aXQpCisKK01PRFVMRV9WRVJTSU9OKERSSVZFUl9W RVJTSU9OKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKK01PRFVMRV9BVVRIT1IoRFJJVkVS X0FVVEhPUik7CitNT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOworTU9EVUxFX1NPRlRE RVAoInBvc3Q6IHZmaW9fbWRldiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92ZmlvL21kZXYvdmZp b19tZGV2LmMgYi9kcml2ZXJzL3ZmaW8vbWRldi92ZmlvX21kZXYuYwppbmRleCAzMDk2NGE0ZTBh MjguLjE2ZTllYmUzMGQ0YSAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL21kZXYvdmZpb19tZGV2 LmMKKysrIGIvZHJpdmVycy92ZmlvL21kZXYvdmZpb19tZGV2LmMKQEAgLTEzLDcgKzEzLDcgQEAK ICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5j bHVkZSA8bGludXgvdmZpby5oPgotI2luY2x1ZGUgPGxpbnV4L21kZXYuaD4KKyNpbmNsdWRlIDxs aW51eC9tZGV2X3ZmaW8uaD4KIAogI2luY2x1ZGUgIm1kZXZfcHJpdmF0ZS5oIgogCkBAIC0xMjgs NyArMTI4LDggQEAgc3RhdGljIHN0cnVjdCBtZGV2X2RyaXZlciB2ZmlvX21kZXZfZHJpdmVyID0g ewogCiBzdGF0aWMgaW50IF9faW5pdCB2ZmlvX21kZXZfaW5pdCh2b2lkKQogewotCXJldHVybiBt ZGV2X3JlZ2lzdGVyX2RyaXZlcigmdmZpb19tZGV2X2RyaXZlciwgVEhJU19NT0RVTEUpOworCXJl dHVybiBtZGV2X3JlZ2lzdGVyX2RyaXZlcigmdmZpb19tZGV2X2RyaXZlciwgVEhJU19NT0RVTEUs CisJCQkJICAgICZtZGV2X3ZmaW9fYnVzX3R5cGUpOwogfQogCiBzdGF0aWMgdm9pZCBfX2V4aXQg dmZpb19tZGV2X2V4aXQodm9pZCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby92ZmlvX2lvbW11 X3R5cGUxLmMgYi9kcml2ZXJzL3ZmaW8vdmZpb19pb21tdV90eXBlMS5jCmluZGV4IGQ4NjQyNzdl YTE2Zi4uZjM1NTIzZjgyMmViIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZmaW8vdmZpb19pb21tdV90 eXBlMS5jCisrKyBiL2RyaXZlcnMvdmZpby92ZmlvX2lvbW11X3R5cGUxLmMKQEAgLTM0LDcgKzM0 LDcgQEAKICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvdmZpby5o PgogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgotI2luY2x1ZGUgPGxpbnV4L21kZXYuaD4K KyNpbmNsdWRlIDxsaW51eC9tZGV2X3ZmaW8uaD4KICNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5o PgogI2luY2x1ZGUgPGxpbnV4L2RtYS1pb21tdS5oPgogI2luY2x1ZGUgPGxpbnV4L2lycWRvbWFp bi5oPgpAQCAtMTQwNSwxMCArMTQwNSwxMCBAQCBzdGF0aWMgYm9vbCB2ZmlvX2J1c19pc19tZGV2 KHN0cnVjdCBidXNfdHlwZSAqYnVzKQogCXN0cnVjdCBidXNfdHlwZSAqbWRldl9idXM7CiAJYm9v bCByZXQgPSBmYWxzZTsKIAotCW1kZXZfYnVzID0gc3ltYm9sX2dldChtZGV2X2J1c190eXBlKTsK KwltZGV2X2J1cyA9IHN5bWJvbF9nZXQobWRldl92ZmlvX2J1c190eXBlKTsKIAlpZiAobWRldl9i dXMpIHsKIAkJcmV0ID0gKGJ1cyA9PSBtZGV2X2J1cyk7Ci0JCXN5bWJvbF9wdXQobWRldl9idXNf dHlwZSk7CisJCXN5bWJvbF9wdXQobWRldl92ZmlvX2J1c190eXBlKTsKIAl9CiAKIAlyZXR1cm4g cmV0OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZGV2LmggYi9pbmNsdWRlL2xpbnV4L21k ZXYuaAppbmRleCAwY2UzMGNhNzhkYjAuLmVlMjQxMDI0NmIzYyAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9saW51eC9tZGV2LmgKKysrIGIvaW5jbHVkZS9saW51eC9tZGV2LmgKQEAgLTEzMywxNiArMTMz LDIyIEBAIHZvaWQgKm1kZXZfZ2V0X2RydmRhdGEoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KTsK IHZvaWQgbWRldl9zZXRfZHJ2ZGF0YShzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYsIHZvaWQgKmRh dGEpOwogY29uc3QgZ3VpZF90ICptZGV2X3V1aWQoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KTsK IAotZXh0ZXJuIHN0cnVjdCBidXNfdHlwZSBtZGV2X2J1c190eXBlOwotCi1pbnQgbWRldl9yZWdp c3Rlcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QgbWRldl9wYXJlbnRf b3BzICpvcHMpOworaW50IG1kZXZfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwg Y29uc3Qgc3RydWN0IG1kZXZfcGFyZW50X29wcyAqb3BzLAorCQkJIHN0cnVjdCBidXNfdHlwZSAq YnVzKTsKIHZvaWQgbWRldl91bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwog Ci1pbnQgbWRldl9yZWdpc3Rlcl9kcml2ZXIoc3RydWN0IG1kZXZfZHJpdmVyICpkcnYsIHN0cnVj dCBtb2R1bGUgKm93bmVyKTsKK2ludCBtZGV2X3JlZ2lzdGVyX2RyaXZlcihzdHJ1Y3QgbWRldl9k cml2ZXIgKmRydiwgc3RydWN0IG1vZHVsZSAqb3duZXIsCisJCQkgc3RydWN0IGJ1c190eXBlICpi dXMpOwogdm9pZCBtZGV2X3VucmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCBtZGV2X2RyaXZlciAqZHJ2 KTsKIAogc3RydWN0IGRldmljZSAqbWRldl9wYXJlbnRfZGV2KHN0cnVjdCBtZGV2X2RldmljZSAq bWRldik7CiBzdHJ1Y3QgZGV2aWNlICptZGV2X2RldihzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYp Owotc3RydWN0IG1kZXZfZGV2aWNlICptZGV2X2Zyb21fZGV2KHN0cnVjdCBkZXZpY2UgKmRldik7 CitzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXZfZnJvbV9kZXYoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgYnVzX3R5cGUgKmJ1cyk7CisKK2ludCBtZGV2X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRl dik7CitpbnQgbWRldl9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2KTsKKworaW50IG1kZXZfcmVn aXN0ZXJfYnVzKHN0cnVjdCBidXNfdHlwZSAqYnVzKTsKK3ZvaWQgbWRldl91bnJlZ2lzdGVyX2J1 cyhzdHJ1Y3QgYnVzX3R5cGUgKmJ1cyk7CiAKICNlbmRpZiAvKiBNREVWX0ggKi8KZGlmZiAtLWdp dCBhL2luY2x1ZGUvbGludXgvbWRldl92ZmlvLmggYi9pbmNsdWRlL2xpbnV4L21kZXZfdmZpby5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDQ2YTc1MzdlM2ZiCi0t LSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9tZGV2X3ZmaW8uaApAQCAtMCwwICsxLDI1 IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCisvKgorICog VkZJTyBNZWRpYXRlZCBkZXZpY2UgZGVmaW5pdGlvbgorICoKKyAqIENvcHlyaWdodCAoYykgMjAx OSwgUmVkIEhhdC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICAgICBBdXRob3I6IEphc29uIFdh bmcgPGphc293YW5nQHJlZGhhdC5jb20+CisgKi8KKworI2lmbmRlZiBNREVWX1ZGSU9fSAorI2Rl ZmluZSBNREVWX1ZGSU9fSAorCisjaW5jbHVkZSA8bGludXgvbWRldi5oPgorCitleHRlcm4gc3Ry dWN0IGJ1c190eXBlIG1kZXZfdmZpb19idXNfdHlwZTsKKworaW50IG1kZXZfdmZpb19yZWdpc3Rl cl9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LAorCQkJICAgICAgY29uc3Qgc3RydWN0IG1kZXZf cGFyZW50X29wcyAqb3BzKTsKK3ZvaWQgbWRldl92ZmlvX3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVj dCBkZXZpY2UgKmRldik7CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IG1kZXZfZGV2aWNlICp2Zmlv X21kZXZfZnJvbV9kZXYoc3RydWN0IGRldmljZSAqZGV2KQoreworCXJldHVybiBtZGV2X2Zyb21f ZGV2KGRldiwgJm1kZXZfdmZpb19idXNfdHlwZSk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv c2FtcGxlcy92ZmlvLW1kZXYvbWJvY2hzLmMgYi9zYW1wbGVzL3ZmaW8tbWRldi9tYm9jaHMuYwpp bmRleCBhYzVjOGMxN2IxZmYuLmYwNDFkNTgzMjRiMSAxMDA2NDQKLS0tIGEvc2FtcGxlcy92Zmlv LW1kZXYvbWJvY2hzLmMKKysrIGIvc2FtcGxlcy92ZmlvLW1kZXYvbWJvY2hzLmMKQEAgLTI5LDcg KzI5LDcgQEAKICNpbmNsdWRlIDxsaW51eC92ZmlvLmg+CiAjaW5jbHVkZSA8bGludXgvaW9tbXUu aD4KICNpbmNsdWRlIDxsaW51eC9zeXNmcy5oPgotI2luY2x1ZGUgPGxpbnV4L21kZXYuaD4KKyNp bmNsdWRlIDxsaW51eC9tZGV2X3ZmaW8uaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNs dWRlIDxsaW51eC9kbWEtYnVmLmg+CiAjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgpAQCAtMTMz Miw3ICsxMzMyLDcgQEAgc3RhdGljIHNzaXplX3QKIG1lbW9yeV9zaG93KHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJICAgIGNoYXIgKmJ1ZikKIHsK LQlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zyb21fZGV2KGRldik7CisJc3RydWN0 IG1kZXZfZGV2aWNlICptZGV2ID0gdmZpb19tZGV2X2Zyb21fZGV2KGRldik7CiAJc3RydWN0IG1k ZXZfc3RhdGUgKm1kZXZfc3RhdGUgPSBtZGV2X2dldF9kcnZkYXRhKG1kZXYpOwogCiAJcmV0dXJu IHNwcmludGYoYnVmLCAiJWQgTUJcbiIsIG1kZXZfc3RhdGUtPnR5cGUtPm1ieXRlcyk7CkBAIC0x NDY4LDcgKzE0NjgsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBtYm9jaHNfZGV2X2luaXQodm9pZCkK IAlpZiAocmV0KQogCQlnb3RvIGZhaWxlZDI7CiAKLQlyZXQgPSBtZGV2X3JlZ2lzdGVyX2Rldmlj ZSgmbWJvY2hzX2RldiwgJm1kZXZfZm9wcyk7CisJcmV0ID0gbWRldl92ZmlvX3JlZ2lzdGVyX2Rl dmljZSgmbWJvY2hzX2RldiwgJm1kZXZfZm9wcyk7CiAJaWYgKHJldCkKIAkJZ290byBmYWlsZWQz OwogCkBAIC0xNDg3LDcgKzE0ODcsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBtYm9jaHNfZGV2X2lu aXQodm9pZCkKIHN0YXRpYyB2b2lkIF9fZXhpdCBtYm9jaHNfZGV2X2V4aXQodm9pZCkKIHsKIAlt Ym9jaHNfZGV2LmJ1cyA9IE5VTEw7Ci0JbWRldl91bnJlZ2lzdGVyX2RldmljZSgmbWJvY2hzX2Rl dik7CisJbWRldl92ZmlvX3VucmVnaXN0ZXJfZGV2aWNlKCZtYm9jaHNfZGV2KTsKIAogCWRldmlj ZV91bnJlZ2lzdGVyKCZtYm9jaHNfZGV2KTsKIAljZGV2X2RlbCgmbWJvY2hzX2NkZXYpOwpkaWZm IC0tZ2l0IGEvc2FtcGxlcy92ZmlvLW1kZXYvbWRweS5jIGIvc2FtcGxlcy92ZmlvLW1kZXYvbWRw eS5jCmluZGV4IGNjODZiZjY1NjZlNC4uOWMzMmZlMzc5NWFkIDEwMDY0NAotLS0gYS9zYW1wbGVz L3ZmaW8tbWRldi9tZHB5LmMKKysrIGIvc2FtcGxlcy92ZmlvLW1kZXYvbWRweS5jCkBAIC0yNSw3 ICsyNSw3IEBACiAjaW5jbHVkZSA8bGludXgvdmZpby5oPgogI2luY2x1ZGUgPGxpbnV4L2lvbW11 Lmg+CiAjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZGV2Lmg+Cisj aW5jbHVkZSA8bGludXgvbWRldl92ZmlvLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5j bHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KICNpbmNsdWRlICJtZHB5LWRlZnMuaCIKQEAgLTYzOSw3 ICs2MzksNyBAQCBzdGF0aWMgc3NpemVfdAogcmVzb2x1dGlvbl9zaG93KHN0cnVjdCBkZXZpY2Ug KmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCWNoYXIgKmJ1ZikKIHsKLQlz dHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zyb21fZGV2KGRldik7CisJc3RydWN0IG1k ZXZfZGV2aWNlICptZGV2ID0gdmZpb19tZGV2X2Zyb21fZGV2KGRldik7CiAJc3RydWN0IG1kZXZf c3RhdGUgKm1kZXZfc3RhdGUgPSBtZGV2X2dldF9kcnZkYXRhKG1kZXYpOwogCiAJcmV0dXJuIHNw cmludGYoYnVmLCAiJWR4JWRcbiIsCkBAIC03NzUsNyArNzc1LDcgQEAgc3RhdGljIGludCBfX2lu aXQgbWRweV9kZXZfaW5pdCh2b2lkKQogCWlmIChyZXQpCiAJCWdvdG8gZmFpbGVkMjsKIAotCXJl dCA9IG1kZXZfcmVnaXN0ZXJfZGV2aWNlKCZtZHB5X2RldiwgJm1kZXZfZm9wcyk7CisJcmV0ID0g bWRldl92ZmlvX3JlZ2lzdGVyX2RldmljZSgmbWRweV9kZXYsICZtZGV2X2ZvcHMpOwogCWlmIChy ZXQpCiAJCWdvdG8gZmFpbGVkMzsKIApAQCAtNzk0LDcgKzc5NCw3IEBAIHN0YXRpYyBpbnQgX19p bml0IG1kcHlfZGV2X2luaXQodm9pZCkKIHN0YXRpYyB2b2lkIF9fZXhpdCBtZHB5X2Rldl9leGl0 KHZvaWQpCiB7CiAJbWRweV9kZXYuYnVzID0gTlVMTDsKLQltZGV2X3VucmVnaXN0ZXJfZGV2aWNl KCZtZHB5X2Rldik7CisJbWRldl92ZmlvX3VucmVnaXN0ZXJfZGV2aWNlKCZtZHB5X2Rldik7CiAK IAlkZXZpY2VfdW5yZWdpc3RlcigmbWRweV9kZXYpOwogCWNkZXZfZGVsKCZtZHB5X2NkZXYpOwpk aWZmIC0tZ2l0IGEvc2FtcGxlcy92ZmlvLW1kZXYvbXR0eS5jIGIvc2FtcGxlcy92ZmlvLW1kZXYv bXR0eS5jCmluZGV4IGNlODRhMzAwYTRkYS4uNmU0ZTYzMzllMGYxIDEwMDY0NAotLS0gYS9zYW1w bGVzL3ZmaW8tbWRldi9tdHR5LmMKKysrIGIvc2FtcGxlcy92ZmlvLW1kZXYvbXR0eS5jCkBAIC0y Niw3ICsyNiw3IEBACiAjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KICNpbmNsdWRlIDxsaW51eC9j dHlwZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tZGV2Lmg+ CisjaW5jbHVkZSA8bGludXgvbWRldl92ZmlvLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAj aW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CiAjaW5jbHVkZSA8dWFwaS9saW51eC9zZXJpYWxfcmVn Lmg+CkBAIC0xMjg1LDcgKzEyODUsNyBAQCBzdGF0aWMgc3NpemVfdAogc2FtcGxlX21kZXZfZGV2 X3Nob3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwK IAkJICAgICBjaGFyICpidWYpCiB7Ci0JaWYgKG1kZXZfZnJvbV9kZXYoZGV2KSkKKwlpZiAodmZp b19tZGV2X2Zyb21fZGV2KGRldikpCiAJCXJldHVybiBzcHJpbnRmKGJ1ZiwgIlRoaXMgaXMgTURF ViAlc1xuIiwgZGV2X25hbWUoZGV2KSk7CiAKIAlyZXR1cm4gc3ByaW50ZihidWYsICJcbiIpOwpA QCAtMTQ0NSw3ICsxNDQ1LDcgQEAgc3RhdGljIGludCBfX2luaXQgbXR0eV9kZXZfaW5pdCh2b2lk KQogCWlmIChyZXQpCiAJCWdvdG8gZmFpbGVkMjsKIAotCXJldCA9IG1kZXZfcmVnaXN0ZXJfZGV2 aWNlKCZtdHR5X2Rldi5kZXYsICZtZGV2X2ZvcHMpOworCXJldCA9IG1kZXZfdmZpb19yZWdpc3Rl cl9kZXZpY2UoJm10dHlfZGV2LmRldiwgJm1kZXZfZm9wcyk7CiAJaWYgKHJldCkKIAkJZ290byBm YWlsZWQzOwogCkBAIC0xNDcxLDcgKzE0NzEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBtdHR5X2Rl dl9pbml0KHZvaWQpCiBzdGF0aWMgdm9pZCBfX2V4aXQgbXR0eV9kZXZfZXhpdCh2b2lkKQogewog CW10dHlfZGV2LmRldi5idXMgPSBOVUxMOwotCW1kZXZfdW5yZWdpc3Rlcl9kZXZpY2UoJm10dHlf ZGV2LmRldik7CisJbWRldl92ZmlvX3VucmVnaXN0ZXJfZGV2aWNlKCZtdHR5X2Rldi5kZXYpOwog CiAJZGV2aWNlX3VucmVnaXN0ZXIoJm10dHlfZGV2LmRldik7CiAJaWRyX2Rlc3Ryb3koJm10dHlf ZGV2LnZkX2lkcik7Ci0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbA==