From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: [PATCH V12 1/6] mdev: make mdev bus agnostic Date: Mon, 18 Nov 2019 14:16:58 +0800 Message-ID: <20191118061703.8669-2-jasowang@redhat.com> References: <20191118061703.8669-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 [205.139.110.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1FB5E89F45 for ; Mon, 18 Nov 2019 06:18:47 +0000 (UTC) In-Reply-To: <20191118061703.8669-1-jasowang@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" 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 Cc: rdunlap@infradead.org, christophe.de.dinechin@gmail.com, sebott@linux.ibm.com, airlied@linux.ie, Jason Wang , heiko.carstens@de.ibm.com, virtualization@lists.linux-foundation.org, jgg@mellanox.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, farman@linux.ibm.com, parav@mellanox.com, gor@linux.ibm.com, cunming.liang@intel.com, xiao.w.wang@intel.com, freude@linux.ibm.com, stefanha@redhat.com, zhihong.wang@intel.com, akrowiak@linux.ibm.com, netdev@vger.kernel.org, cohuck@redhat.com, oberpar@linux.ibm.com, maxime.coquelin@redhat.com, gregkh@linuxfoundation.org, lingshan.zhu@intel.com List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudCBtZGV2IGlzIHRpZWQgdG8gYSBWRklPIHNwZWNpZmljICJtZGV2IiBidXMuIFRoaXMg cHJldmVudCBtZGV2CmZyb20gYmVpbmcgdXNlZCBieSBvdGhlciB0eXBlcyBvZiBBUEkvYnVzZXMu IFNvIHRoaXMgcGF0Y2ggdHJpZXMgdG8gbWFrZQptZGV2IGJ1cyBhZ25vc3RpYyB0aHJvdWdoIG1h a2luZyBhIG1kZXYgY29yZSBhIHRoaW4gbW9kdWxlOgoKLSBkZWNvdXBsZSBWRklPIGJ1cyBzcGVj aWZpYyBiaXRzIGZyb20gbWRldl9jb3JlLmMgdG8gbWRldl92ZmlvLmMgYW5kCiAgaW50cm9kdWNl IG1kZXZfdmZpbyBtb2R1bGUKLSByZXF1aXJlIHRvIHNwZWNpZnkgdGhlIHR5cGUgb2YgYnVzIHdo ZW4gcmVnaXN0ZXJpbmcgbWRldiBkZXZpY2UgYW5kCiAgbWRldiBkcml2ZXIKCldpdGggdGhvc2Ug bW9kaWZpY2F0aW9ucyBtZGV2IGJlY29tZSBhIGdlbmVyaWMgbW9kdWxlIHRoYXQgY291bGQgYmUK dXNlZCBieSBtdWx0aXBsZSB0eXBlcyBvZiB2aXJ0dWFsIGJ1c2VzIGFuZCBkZXZpY2VzLgoKU2ln bmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KLS0tCiAuLi4vZHJp dmVyLWFwaS92ZmlvLW1lZGlhdGVkLWRldmljZS5yc3QgICAgICAgfCAgNjggKysrKysrLS0tLS0t CiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMgICAgICAgICAgICAgIHwgIDEwICstCiBk cml2ZXJzL3MzOTAvY2lvL3ZmaW9fY2N3X29wcy5jICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRy aXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9vcHMuYyAgICAgICAgICAgICB8ICAyMSArKy0tCiBk cml2ZXJzL3MzOTAvY3J5cHRvL3ZmaW9fYXBfcHJpdmF0ZS5oICAgICAgICAgfCAgIDIgKy0KIGRy aXZlcnMvdmZpby9tZGV2L0tjb25maWcgICAgICAgICAgICAgICAgICAgICB8ICAxNyArKy0KIGRy aXZlcnMvdmZpby9tZGV2L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogZHJp dmVycy92ZmlvL21kZXYvbWRldl9jb3JlLmMgICAgICAgICAgICAgICAgIHwgMTA0ICsrKysrKysr KysrKystLS0tLQogZHJpdmVycy92ZmlvL21kZXYvbWRldl9kcml2ZXIuYyAgICAgICAgICAgICAg IHwgIDI5ICsrLS0tCiBkcml2ZXJzL3ZmaW8vbWRldi9tZGV2X3ByaXZhdGUuaCAgICAgICAgICAg ICAgfCAgMTMgKystCiBkcml2ZXJzL3ZmaW8vbWRldi9tZGV2X3ZmaW8uYyAgICAgICAgICAgICAg ICAgfCAgNDggKysrKysrKysKIGRyaXZlcnMvdmZpby9tZGV2L3ZmaW9fbWRldi5jICAgICAgICAg ICAgICAgICB8ICAgNSArLQogZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVfdHlwZTEuYyAgICAgICAg ICAgICAgIHwgICA2ICstCiBpbmNsdWRlL2xpbnV4L21kZXYuaCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMTYgKystCiBpbmNsdWRlL2xpbnV4L21kZXZfdmZpby5oICAgICAgICAgICAgICAg ICAgICAgfCAgMjUgKysrKysKIHNhbXBsZXMvdmZpby1tZGV2L21ib2Nocy5jICAgICAgICAgICAg ICAgICAgICB8ICAgOCArLQogc2FtcGxlcy92ZmlvLW1kZXYvbWRweS5jICAgICAgICAgICAgICAg ICAgICAgIHwgICA4ICstCiBzYW1wbGVzL3ZmaW8tbWRldi9tdHR5LmMgICAgICAgICAgICAgICAg ICAgICAgfCAgIDggKy0KIDE5IGZpbGVzIGNoYW5nZWQsIDI3MCBpbnNlcnRpb25zKCspLCAxMjkg 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 YS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCmluZGV4IGNiYTEwOTU1NDdmZC4uZDMzNTk0OTI0 MGRjIDEwMDY0NAotLS0gYS9NQUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtMTcxMjEs NiArMTcxMjEsNyBAQCBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2RyaXZlci1hcGkv dmZpby1tZWRpYXRlZC1kZXZpY2UucnN0CiBGOglkcml2ZXJzL3ZmaW8vbWRldi8KIEY6CWluY2x1 ZGUvbGludXgvbWRldi5oCitGOglpbmNsdWRlL2xpbnV4L21kZXZfdmZpby5oCiBGOglzYW1wbGVz L3ZmaW8tbWRldi8KIAogVkZJTyBQTEFURk9STSBEUklWRVIKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0 LmMKaW5kZXggMzQzZDc5YzFjYjdlLi44YzAyNTcyYzliNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9r dm1ndC5jCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSA8bGludXgvdXVpZC5oPgogI2luY2x1 ZGUgPGxpbnV4L2t2bV9ob3N0Lmg+CiAjaW5jbHVkZSA8bGludXgvdmZpby5oPgotI2luY2x1ZGUg PGxpbnV4L21kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9tZGV2X3ZmaW8uaD4KICNpbmNsdWRlIDxs aW51eC9kZWJ1Z2ZzLmg+CiAKICNpbmNsdWRlIDxsaW51eC9ub3NwZWMuaD4KQEAgLTE1NTQsNyAr MTU1NCw3IEBAIHN0YXRpYyBzc2l6ZV90CiB2Z3B1X2lkX3Nob3coc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkgICAgIGNoYXIgKmJ1ZikKIHsKLQlz dHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zyb21fZGV2KGRldik7CisJc3RydWN0IG1k ZXZfZGV2aWNlICptZGV2ID0gdmZpb19tZGV2X2Zyb21fZGV2KGRldik7CiAKIAlpZiAobWRldikg ewogCQlzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSA9IChzdHJ1Y3QgaW50ZWxfdmdwdSAqKQpAQCAt MTU2OCw3ICsxNTY4LDcgQEAgc3RhdGljIHNzaXplX3QKIGh3X2lkX3Nob3coc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkgICBjaGFyICpidWYpCiB7 Ci0Jc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9mcm9tX2RldihkZXYpOworCXN0cnVj dCBtZGV2X2RldmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9tX2RldihkZXYpOwogCiAJaWYgKG1k ZXYpIHsKIAkJc3RydWN0IGludGVsX3ZncHUgKnZncHUgPSAoc3RydWN0IGludGVsX3ZncHUgKikK QEAgLTE2MjMsMTIgKzE2MjMsMTIgQEAgc3RhdGljIGludCBrdm1ndF9ob3N0X2luaXQoc3RydWN0 IGRldmljZSAqZGV2LCB2b2lkICpndnQsIGNvbnN0IHZvaWQgKm9wcykKIAkJcmV0dXJuIC1FRkFV TFQ7CiAJaW50ZWxfdmdwdV9vcHMuc3VwcG9ydGVkX3R5cGVfZ3JvdXBzID0ga3ZtX3ZncHVfdHlw ZV9ncm91cHM7CiAKLQlyZXR1cm4gbWRldl9yZWdpc3Rlcl9kZXZpY2UoZGV2LCAmaW50ZWxfdmdw dV9vcHMpOworCXJldHVybiBtZGV2X3ZmaW9fcmVnaXN0ZXJfZGV2aWNlKGRldiwgJmludGVsX3Zn cHVfb3BzKTsKIH0KIAogc3RhdGljIHZvaWQga3ZtZ3RfaG9zdF9leGl0KHN0cnVjdCBkZXZpY2Ug KmRldikKIHsKLQltZGV2X3VucmVnaXN0ZXJfZGV2aWNlKGRldik7CisJbWRldl92ZmlvX3VucmVn aXN0ZXJfZGV2aWNlKGRldik7CiB9CiAKIHN0YXRpYyBpbnQga3ZtZ3RfcGFnZV90cmFja19hZGQo dW5zaWduZWQgbG9uZyBoYW5kbGUsIHU2NCBnZm4pCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAv Y2lvL3ZmaW9fY2N3X29wcy5jIGIvZHJpdmVycy9zMzkwL2Npby92ZmlvX2Njd19vcHMuYwppbmRl eCBmMGQ3MWFiNzdjNTAuLjc5MWI4YjBlYjAyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Np by92ZmlvX2Njd19vcHMuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL3ZmaW9fY2N3X29wcy5jCkBA IC0xMSw3ICsxMSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3ZmaW8uaD4KLSNpbmNsdWRl IDxsaW51eC9tZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvbWRldl92ZmlvLmg+CiAjaW5jbHVkZSA8 bGludXgvbm9zcGVjLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogCkBAIC01ODgsMTAgKzU4 OCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1kZXZfcGFyZW50X29wcyB2ZmlvX2Njd19tZGV2 X29wcyA9IHsKIAogaW50IHZmaW9fY2N3X21kZXZfcmVnKHN0cnVjdCBzdWJjaGFubmVsICpzY2gp CiB7Ci0JcmV0dXJuIG1kZXZfcmVnaXN0ZXJfZGV2aWNlKCZzY2gtPmRldiwgJnZmaW9fY2N3X21k ZXZfb3BzKTsKKwlyZXR1cm4gbWRldl92ZmlvX3JlZ2lzdGVyX2RldmljZSgmc2NoLT5kZXYsICZ2 ZmlvX2Njd19tZGV2X29wcyk7CiB9CiAKIHZvaWQgdmZpb19jY3dfbWRldl91bnJlZyhzdHJ1Y3Qg c3ViY2hhbm5lbCAqc2NoKQogewotCW1kZXZfdW5yZWdpc3Rlcl9kZXZpY2UoJnNjaC0+ZGV2KTsK KwltZGV2X3ZmaW9fdW5yZWdpc3Rlcl9kZXZpY2UoJnNjaC0+ZGV2KTsKIH0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9vcHMuYyBiL2RyaXZlcnMvczM5MC9jcnlwdG8v dmZpb19hcF9vcHMuYwppbmRleCA1YzBmNTNjNmRkZTcuLjc4MDQ4ZTY3MDM3NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX29wcy5jCisrKyBiL2RyaXZlcnMvczM5MC9j cnlwdG8vdmZpb19hcF9vcHMuYwpAQCAtNjAyLDcgKzYwMiw3IEBAIHN0YXRpYyBzc2l6ZV90IGFz c2lnbl9hZGFwdGVyX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIHsKIAlpbnQgcmV0OwogCXVu c2lnbmVkIGxvbmcgYXBpZDsKLQlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zyb21f ZGV2KGRldik7CisJc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gdmZpb19tZGV2X2Zyb21fZGV2 KGRldik7CiAJc3RydWN0IGFwX21hdHJpeF9tZGV2ICptYXRyaXhfbWRldiA9IG1kZXZfZ2V0X2Ry dmRhdGEobWRldik7CiAKIAkvKiBJZiB0aGUgZ3Vlc3QgaXMgcnVubmluZywgZGlzYWxsb3cgYXNz aWdubWVudCBvZiBhZGFwdGVyICovCkBAIC02NjgsNyArNjY4LDcgQEAgc3RhdGljIHNzaXplX3Qg dW5hc3NpZ25fYWRhcHRlcl9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiB7CiAJaW50IHJldDsK IAl1bnNpZ25lZCBsb25nIGFwaWQ7Ci0Jc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9m cm9tX2RldihkZXYpOworCXN0cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9t X2RldihkZXYpOwogCXN0cnVjdCBhcF9tYXRyaXhfbWRldiAqbWF0cml4X21kZXYgPSBtZGV2X2dl dF9kcnZkYXRhKG1kZXYpOwogCiAJLyogSWYgdGhlIGd1ZXN0IGlzIHJ1bm5pbmcsIGRpc2FsbG93 IHVuLWFzc2lnbm1lbnQgb2YgYWRhcHRlciAqLwpAQCAtNzQ4LDcgKzc0OCw3IEBAIHN0YXRpYyBz c2l6ZV90IGFzc2lnbl9kb21haW5fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogewogCWludCBy ZXQ7CiAJdW5zaWduZWQgbG9uZyBhcHFpOwotCXN0cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IG1k ZXZfZnJvbV9kZXYoZGV2KTsKKwlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSB2ZmlvX21kZXZf ZnJvbV9kZXYoZGV2KTsKIAlzdHJ1Y3QgYXBfbWF0cml4X21kZXYgKm1hdHJpeF9tZGV2ID0gbWRl dl9nZXRfZHJ2ZGF0YShtZGV2KTsKIAl1bnNpZ25lZCBsb25nIG1heF9hcHFpID0gbWF0cml4X21k ZXYtPm1hdHJpeC5hcW1fbWF4OwogCkBAIC04MTAsNyArODEwLDcgQEAgc3RhdGljIHNzaXplX3Qg dW5hc3NpZ25fZG9tYWluX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIHsKIAlpbnQgcmV0Owog CXVuc2lnbmVkIGxvbmcgYXBxaTsKLQlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zy b21fZGV2KGRldik7CisJc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gdmZpb19tZGV2X2Zyb21f ZGV2KGRldik7CiAJc3RydWN0IGFwX21hdHJpeF9tZGV2ICptYXRyaXhfbWRldiA9IG1kZXZfZ2V0 X2RydmRhdGEobWRldik7CiAKIAkvKiBJZiB0aGUgZ3Vlc3QgaXMgcnVubmluZywgZGlzYWxsb3cg dW4tYXNzaWdubWVudCBvZiBkb21haW4gKi8KQEAgLTg1NCw3ICs4NTQsNyBAQCBzdGF0aWMgc3Np emVfdCBhc3NpZ25fY29udHJvbF9kb21haW5fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogewog CWludCByZXQ7CiAJdW5zaWduZWQgbG9uZyBpZDsKLQlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYg PSBtZGV2X2Zyb21fZGV2KGRldik7CisJc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gdmZpb19t ZGV2X2Zyb21fZGV2KGRldik7CiAJc3RydWN0IGFwX21hdHJpeF9tZGV2ICptYXRyaXhfbWRldiA9 IG1kZXZfZ2V0X2RydmRhdGEobWRldik7CiAKIAkvKiBJZiB0aGUgZ3Vlc3QgaXMgcnVubmluZywg ZGlzYWxsb3cgYXNzaWdubWVudCBvZiBjb250cm9sIGRvbWFpbiAqLwpAQCAtOTAzLDcgKzkwMyw3 IEBAIHN0YXRpYyBzc2l6ZV90IHVuYXNzaWduX2NvbnRyb2xfZG9tYWluX3N0b3JlKHN0cnVjdCBk ZXZpY2UgKmRldiwKIHsKIAlpbnQgcmV0OwogCXVuc2lnbmVkIGxvbmcgZG9taWQ7Ci0Jc3RydWN0 IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9mcm9tX2RldihkZXYpOworCXN0cnVjdCBtZGV2X2Rl dmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9tX2RldihkZXYpOwogCXN0cnVjdCBhcF9tYXRyaXhf bWRldiAqbWF0cml4X21kZXYgPSBtZGV2X2dldF9kcnZkYXRhKG1kZXYpOwogCXVuc2lnbmVkIGxv bmcgbWF4X2RvbWlkID0gIG1hdHJpeF9tZGV2LT5tYXRyaXguYWRtX21heDsKIApAQCAtOTMzLDcg KzkzMyw3IEBAIHN0YXRpYyBzc2l6ZV90IGNvbnRyb2xfZG9tYWluc19zaG93KHN0cnVjdCBkZXZp Y2UgKmRldiwKIAlpbnQgbmNoYXJzID0gMDsKIAlpbnQgbjsKIAljaGFyICpidWZwb3MgPSBidWY7 Ci0Jc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9mcm9tX2RldihkZXYpOworCXN0cnVj dCBtZGV2X2RldmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9tX2RldihkZXYpOwogCXN0cnVjdCBh cF9tYXRyaXhfbWRldiAqbWF0cml4X21kZXYgPSBtZGV2X2dldF9kcnZkYXRhKG1kZXYpOwogCXVu c2lnbmVkIGxvbmcgbWF4X2RvbWlkID0gbWF0cml4X21kZXYtPm1hdHJpeC5hZG1fbWF4OwogCkBA IC05NTIsNyArOTUyLDcgQEAgc3RhdGljIERFVklDRV9BVFRSX1JPKGNvbnRyb2xfZG9tYWlucyk7 CiBzdGF0aWMgc3NpemVfdCBtYXRyaXhfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBk ZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQkJICAgY2hhciAqYnVmKQogewotCXN0cnVjdCBtZGV2 X2RldmljZSAqbWRldiA9IG1kZXZfZnJvbV9kZXYoZGV2KTsKKwlzdHJ1Y3QgbWRldl9kZXZpY2Ug Km1kZXYgPSB2ZmlvX21kZXZfZnJvbV9kZXYoZGV2KTsKIAlzdHJ1Y3QgYXBfbWF0cml4X21kZXYg Km1hdHJpeF9tZGV2ID0gbWRldl9nZXRfZHJ2ZGF0YShtZGV2KTsKIAljaGFyICpidWZwb3MgPSBi dWY7CiAJdW5zaWduZWQgbG9uZyBhcGlkOwpAQCAtMTI5NSwxMCArMTI5NSwxMSBAQCBpbnQgdmZp b19hcF9tZGV2X3JlZ2lzdGVyKHZvaWQpCiB7CiAJYXRvbWljX3NldCgmbWF0cml4X2Rldi0+YXZh aWxhYmxlX2luc3RhbmNlcywgTUFYX1pERVZfRU5UUklFU19FWFQpOwogCi0JcmV0dXJuIG1kZXZf cmVnaXN0ZXJfZGV2aWNlKCZtYXRyaXhfZGV2LT5kZXZpY2UsICZ2ZmlvX2FwX21hdHJpeF9vcHMp OworCXJldHVybiBtZGV2X3ZmaW9fcmVnaXN0ZXJfZGV2aWNlKCZtYXRyaXhfZGV2LT5kZXZpY2Us CisJCQkJCSAmdmZpb19hcF9tYXRyaXhfb3BzKTsKIH0KIAogdm9pZCB2ZmlvX2FwX21kZXZfdW5y ZWdpc3Rlcih2b2lkKQogewotCW1kZXZfdW5yZWdpc3Rlcl9kZXZpY2UoJm1hdHJpeF9kZXYtPmRl dmljZSk7CisJbWRldl92ZmlvX3VucmVnaXN0ZXJfZGV2aWNlKCZtYXRyaXhfZGV2LT5kZXZpY2Up OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX3ByaXZhdGUuaCBi L2RyaXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9wcml2YXRlLmgKaW5kZXggZjQ2ZGRlNTZiNDY0 Li40ZTM3ZTBlMzQzM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9w cml2YXRlLmgKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX3ByaXZhdGUuaApAQCAt MTQsNyArMTQsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51 eC9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9tZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvbWRl dl92ZmlvLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRl eC5oPgogI2luY2x1ZGUgPGxpbnV4L2t2bV9ob3N0Lmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zm aW8vbWRldi9LY29uZmlnIGIvZHJpdmVycy92ZmlvL21kZXYvS2NvbmZpZwppbmRleCA1ZGEyN2Yy MTAwZjkuLjJlMDdjYTkxNWE5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL21kZXYvS2NvbmZp ZworKysgYi9kcml2ZXJzL3ZmaW8vbWRldi9LY29uZmlnCkBAIC0xLDE1ICsxLDI0IEBACi0jIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKIAotY29uZmlnIFZGSU9fTURFVgor Y29uZmlnIE1ERVYKIAl0cmlzdGF0ZSAiTWVkaWF0ZWQgZGV2aWNlIGRyaXZlciBmcmFtZXdvcmsi Ci0JZGVwZW5kcyBvbiBWRklPCiAJZGVmYXVsdCBuCiAJaGVscAogCSAgUHJvdmlkZXMgYSBmcmFt ZXdvcmsgdG8gdmlydHVhbGl6ZSBkZXZpY2VzLgotCSAgU2VlIERvY3VtZW50YXRpb24vZHJpdmVy LWFwaS92ZmlvLW1lZGlhdGVkLWRldmljZS5yc3QgZm9yIG1vcmUgZGV0YWlscy4KIAogCSAgSWYg eW91IGRvbid0IGtub3cgd2hhdCBkbyBoZXJlLCBzYXkgTi4KIAorY29uZmlnIFZGSU9fTURFVgor CXRyaXN0YXRlICJWRklPIE1lZGlhdGVkIGRldmljZSBkcml2ZXIiCisgICAgICAgIGRlcGVuZHMg b24gVkZJTyAmJiBNREVWCisgICAgICAgIGRlZmF1bHQgbgorCWhlbHAKKwkgIFByb2l2ZGVzIGEg bWVkaWF0ZWQgQlVTIGZvciB1c2Vyc3BhY2UgZHJpdmVyIHRocm91Z2ggVkZJTworCSAgZnJhbWV3 b3JrLiBTZWUgRG9jdW1lbnRhdGlvbi92ZmlvLW1lZGlhdGVkLWRldmljZS50eHQgZm9yCisJICBt b3JlIGRldGFpbHMuCisKKwkgIElmIHlvdSBkb24ndCBrbm93IHdoYXQgZG8gaGVyZSwgc2F5IE4u CisKKwogY29uZmlnIFZGSU9fTURFVl9ERVZJQ0UKIAl0cmlzdGF0ZSAiVkZJTyBkcml2ZXIgZm9y IE1lZGlhdGVkIGRldmljZXMiCiAJZGVwZW5kcyBvbiBWRklPICYmIFZGSU9fTURFVgpkaWZmIC0t Z2l0IGEvZHJpdmVycy92ZmlvL21kZXYvTWFrZWZpbGUgYi9kcml2ZXJzL3ZmaW8vbWRldi9NYWtl ZmlsZQppbmRleCAxMDE1MTZmZGYzNzUuLmU5Njc1NTAxMjcxYSAxMDA2NDQKLS0tIGEvZHJpdmVy cy92ZmlvL21kZXYvTWFrZWZpbGUKKysrIGIvZHJpdmVycy92ZmlvL21kZXYvTWFrZWZpbGUKQEAg LTEsNiArMSw2IEBACi0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKIAog bWRldi15IDo9IG1kZXZfY29yZS5vIG1kZXZfc3lzZnMubyBtZGV2X2RyaXZlci5vCiAKLW9iai0k KENPTkZJR19WRklPX01ERVYpICs9IG1kZXYubworb2JqLSQoQ09ORklHX01ERVYpICs9IG1kZXYu bworb2JqLSQoQ09ORklHX1ZGSU9fTURFVikgKz0gbWRldl92ZmlvLm8KIG9iai0kKENPTkZJR19W RklPX01ERVZfREVWSUNFKSArPSB2ZmlvX21kZXYubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92Zmlv L21kZXYvbWRldl9jb3JlLmMgYi9kcml2ZXJzL3ZmaW8vbWRldi9tZGV2X2NvcmUuYwppbmRleCBi NTU4ZDRjZmQwODIuLmUxMjcyYTQwYzUyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL21kZXYv bWRldl9jb3JlLmMKKysrIGIvZHJpdmVycy92ZmlvL21kZXYvbWRldl9jb3JlLmMKQEAgLTIyLDEx ICsyMiwxMyBAQAogCiBzdGF0aWMgTElTVF9IRUFEKHBhcmVudF9saXN0KTsKIHN0YXRpYyBERUZJ TkVfTVVURVgocGFyZW50X2xpc3RfbG9jayk7Ci1zdGF0aWMgc3RydWN0IGNsYXNzX2NvbXBhdCAq bWRldl9idXNfY29tcGF0X2NsYXNzOwogCiBzdGF0aWMgTElTVF9IRUFEKG1kZXZfbGlzdCk7CiBz dGF0aWMgREVGSU5FX01VVEVYKG1kZXZfbGlzdF9sb2NrKTsKIAorc3RhdGljIExJU1RfSEVBRChj bGFzc19jb21wYXRfbGlzdCk7CitzdGF0aWMgREVGSU5FX01VVEVYKGNvbXBhdF9saXN0X2xvY2sp OworCiBzdHJ1Y3QgZGV2aWNlICptZGV2X3BhcmVudF9kZXYoc3RydWN0IG1kZXZfZGV2aWNlICpt ZGV2KQogewogCXJldHVybiBtZGV2LT5wYXJlbnQtPmRldjsKQEAgLTUxLDkgKzUzLDkgQEAgc3Ry dWN0IGRldmljZSAqbWRldl9kZXYoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KQogfQogRVhQT1JU X1NZTUJPTChtZGV2X2Rldik7CiAKLXN0cnVjdCBtZGV2X2RldmljZSAqbWRldl9mcm9tX2Rldihz dHJ1Y3QgZGV2aWNlICpkZXYpCitzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXZfZnJvbV9kZXYoc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgYnVzX3R5cGUgKmJ1cykKIHsKLQlyZXR1cm4gZGV2X2lz X21kZXYoZGV2KSA/IHRvX21kZXZfZGV2aWNlKGRldikgOiBOVUxMOworCXJldHVybiBkZXZfaXNf bWRldihkZXYsIGJ1cykgPyB0b19tZGV2X2RldmljZShkZXYpIDogTlVMTDsKIH0KIEVYUE9SVF9T WU1CT0wobWRldl9mcm9tX2Rldik7CiAKQEAgLTEyMiw3ICsxMjQsOSBAQCBzdGF0aWMgdm9pZCBt ZGV2X2RldmljZV9yZW1vdmVfY29tbW9uKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldikKIAogc3Rh dGljIGludCBtZGV2X2RldmljZV9yZW1vdmVfY2Ioc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpk YXRhKQogewotCWlmIChkZXZfaXNfbWRldihkZXYpKSB7CisJc3RydWN0IGJ1c190eXBlICpidXMg PSBkYXRhOworCisJaWYgKGRldl9pc19tZGV2KGRldiwgYnVzKSkgewogCQlzdHJ1Y3QgbWRldl9k ZXZpY2UgKm1kZXY7CiAKIAkJbWRldiA9IHRvX21kZXZfZGV2aWNlKGRldik7CkBAIC0xMzEsNiAr MTM1LDQxIEBAIHN0YXRpYyBpbnQgbWRldl9kZXZpY2VfcmVtb3ZlX2NiKHN0cnVjdCBkZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHN0cnVjdCBtZGV2X2Ns YXNzX2NvbXBhdCAqZ2V0X2NsYXNzX2NvbXBhdChzdHJ1Y3QgYnVzX3R5cGUgKmJ1cykKK3sKKwlz dHJ1Y3QgbWRldl9jbGFzc19jb21wYXQgKm1kZXZfY2xhc3NfY29tcGF0OworCisJbGlzdF9mb3Jf ZWFjaF9lbnRyeShtZGV2X2NsYXNzX2NvbXBhdCwgJmNsYXNzX2NvbXBhdF9saXN0LCBuZXh0KSB7 CisJCWlmIChtZGV2X2NsYXNzX2NvbXBhdC0+YnVzID09IGJ1cykKKwkJCXJldHVybiBtZGV2X2Ns YXNzX2NvbXBhdDsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHN0cnVjdCBjbGFz c19jb21wYXQgKm1kZXZfYWxsb2NfY2xhc3NfY29tcGF0KHN0cnVjdCBidXNfdHlwZSAqYnVzKQor eworCXN0cnVjdCBtZGV2X2NsYXNzX2NvbXBhdCAqbWRldl9jbGFzc19jb21wYXQgPSBnZXRfY2xh c3NfY29tcGF0KGJ1cyk7CisJY2hhciBjbGFzc19uYW1lWzY0XTsKKworCWlmIChtZGV2X2NsYXNz X2NvbXBhdCkKKwkJcmV0dXJuIG1kZXZfY2xhc3NfY29tcGF0LT5jbGFzc19jb21wYXQ7CisKKwlt ZGV2X2NsYXNzX2NvbXBhdCA9IGttYWxsb2Moc2l6ZW9mKCptZGV2X2NsYXNzX2NvbXBhdCksIEdG UF9LRVJORUwpOworCWlmICghbWRldl9jbGFzc19jb21wYXQpCisJCXJldHVybiBOVUxMOworCXNu cHJpbnRmKGNsYXNzX25hbWUsIDY0LCAiJXNfYnVzIiwgYnVzLT5uYW1lKTsKKwltZGV2X2NsYXNz X2NvbXBhdC0+Y2xhc3NfY29tcGF0ID0gY2xhc3NfY29tcGF0X3JlZ2lzdGVyKGNsYXNzX25hbWUp OworCWlmICghbWRldl9jbGFzc19jb21wYXQtPmNsYXNzX2NvbXBhdCkgeworCQlrZnJlZShtZGV2 X2NsYXNzX2NvbXBhdCk7CisJCXJldHVybiBOVUxMOworCX0KKwltZGV2X2NsYXNzX2NvbXBhdC0+ YnVzID0gYnVzOworCWxpc3RfYWRkKCZtZGV2X2NsYXNzX2NvbXBhdC0+bmV4dCwgJmNsYXNzX2Nv bXBhdF9saXN0KTsKKworCXJldHVybiBtZGV2X2NsYXNzX2NvbXBhdC0+Y2xhc3NfY29tcGF0Owor fQorCiAvKgogICogbWRldl9yZWdpc3Rlcl9kZXZpY2UgOiBSZWdpc3RlciBhIGRldmljZQogICog QGRldjogZGV2aWNlIHN0cnVjdHVyZSByZXByZXNlbnRpbmcgcGFyZW50IGRldmljZS4KQEAgLTEz OSwxMiArMTc4LDE0IEBAIHN0YXRpYyBpbnQgbWRldl9kZXZpY2VfcmVtb3ZlX2NiKHN0cnVjdCBk ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKICAqIEFkZCBkZXZpY2UgdG8gbGlzdCBvZiByZWdpc3Rl cmVkIHBhcmVudCBkZXZpY2VzLgogICogUmV0dXJucyBhIG5lZ2F0aXZlIHZhbHVlIG9uIGVycm9y LCBvdGhlcndpc2UgMC4KICAqLwotaW50IG1kZXZfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZp Y2UgKmRldiwgY29uc3Qgc3RydWN0IG1kZXZfcGFyZW50X29wcyAqb3BzKQoraW50IG1kZXZfcmVn aXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IG1kZXZfcGFyZW50 X29wcyAqb3BzLAorCQkJIHN0cnVjdCBidXNfdHlwZSAqYnVzKQogewogCWludCByZXQ7CiAJc3Ry dWN0IG1kZXZfcGFyZW50ICpwYXJlbnQ7CiAJY2hhciAqZW52X3N0cmluZyA9ICJNREVWX1NUQVRF PXJlZ2lzdGVyZWQiOwogCWNoYXIgKmVudnBbXSA9IHsgZW52X3N0cmluZywgTlVMTCB9OworCXN0 cnVjdCBjbGFzc19jb21wYXQgKmNsYXNzX2NvbXBhdDsKIAogCS8qIGNoZWNrIGZvciBtYW5kYXRv cnkgb3BzICovCiAJaWYgKCFvcHMgfHwgIW9wcy0+Y3JlYXRlIHx8ICFvcHMtPnJlbW92ZSB8fCAh b3BzLT5zdXBwb3J0ZWRfdHlwZV9ncm91cHMpCkBAIC0xNzUsMjAgKzIxNiwyMSBAQCBpbnQgbWRl dl9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QgbWRldl9w YXJlbnRfb3BzICpvcHMpCiAKIAlwYXJlbnQtPmRldiA9IGRldjsKIAlwYXJlbnQtPm9wcyA9IG9w czsKKwlwYXJlbnQtPmJ1cyA9IGJ1czsKIAotCWlmICghbWRldl9idXNfY29tcGF0X2NsYXNzKSB7 Ci0JCW1kZXZfYnVzX2NvbXBhdF9jbGFzcyA9IGNsYXNzX2NvbXBhdF9yZWdpc3RlcigibWRldl9i dXMiKTsKLQkJaWYgKCFtZGV2X2J1c19jb21wYXRfY2xhc3MpIHsKLQkJCXJldCA9IC1FTk9NRU07 Ci0JCQlnb3RvIGFkZF9kZXZfZXJyOwotCQl9CisJbXV0ZXhfbG9jaygmY29tcGF0X2xpc3RfbG9j ayk7CisJY2xhc3NfY29tcGF0ID0gbWRldl9hbGxvY19jbGFzc19jb21wYXQoYnVzKTsKKwltdXRl eF91bmxvY2soJmNvbXBhdF9saXN0X2xvY2spOworCWlmICghY2xhc3NfY29tcGF0KSB7CisJCXJl dCA9IC1FTk9NRU07CisJCWdvdG8gYWRkX2Rldl9lcnI7CiAJfQogCiAJcmV0ID0gcGFyZW50X2Ny ZWF0ZV9zeXNmc19maWxlcyhwYXJlbnQpOwogCWlmIChyZXQpCiAJCWdvdG8gYWRkX2Rldl9lcnI7 CiAKLQlyZXQgPSBjbGFzc19jb21wYXRfY3JlYXRlX2xpbmsobWRldl9idXNfY29tcGF0X2NsYXNz LCBkZXYsIE5VTEwpOworCXJldCA9IGNsYXNzX2NvbXBhdF9jcmVhdGVfbGluayhjbGFzc19jb21w YXQsIGRldiwgTlVMTCk7CiAJaWYgKHJldCkKIAkJZGV2X3dhcm4oZGV2LCAiRmFpbGVkIHRvIGNy ZWF0ZSBjb21wYXRpYmlsaXR5IGNsYXNzIGxpbmtcbiIpOwogCkBAIC0yMjMsNiArMjY1LDcgQEAg dm9pZCBtZGV2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlzdHJ1Y3Qg bWRldl9wYXJlbnQgKnBhcmVudDsKIAljaGFyICplbnZfc3RyaW5nID0gIk1ERVZfU1RBVEU9dW5y ZWdpc3RlcmVkIjsKIAljaGFyICplbnZwW10gPSB7IGVudl9zdHJpbmcsIE5VTEwgfTsKKwlzdHJ1 Y3QgbWRldl9jbGFzc19jb21wYXQgKm1kZXZfY2xhc3NfY29tcGF0OwogCiAJbXV0ZXhfbG9jaygm cGFyZW50X2xpc3RfbG9jayk7CiAJcGFyZW50ID0gX19maW5kX3BhcmVudF9kZXZpY2UoZGV2KTsK QEAgLTIzOCw5ICsyODEsMTMgQEAgdm9pZCBtZGV2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBk ZXZpY2UgKmRldikKIAogCWRvd25fd3JpdGUoJnBhcmVudC0+dW5yZWdfc2VtKTsKIAotCWNsYXNz X2NvbXBhdF9yZW1vdmVfbGluayhtZGV2X2J1c19jb21wYXRfY2xhc3MsIGRldiwgTlVMTCk7CisJ bXV0ZXhfbG9jaygmY29tcGF0X2xpc3RfbG9jayk7CisJbWRldl9jbGFzc19jb21wYXQgPSBnZXRf Y2xhc3NfY29tcGF0KHBhcmVudC0+YnVzKTsKKwlXQVJOX09OKCFtZGV2X2NsYXNzX2NvbXBhdCk7 CisJY2xhc3NfY29tcGF0X3JlbW92ZV9saW5rKG1kZXZfY2xhc3NfY29tcGF0LT5jbGFzc19jb21w YXQsIGRldiwgTlVMTCk7CisJbXV0ZXhfdW5sb2NrKCZjb21wYXRfbGlzdF9sb2NrKTsKIAotCWRl dmljZV9mb3JfZWFjaF9jaGlsZChkZXYsIE5VTEwsIG1kZXZfZGV2aWNlX3JlbW92ZV9jYik7CisJ ZGV2aWNlX2Zvcl9lYWNoX2NoaWxkKGRldiwgcGFyZW50LT5idXMsIG1kZXZfZGV2aWNlX3JlbW92 ZV9jYik7CiAKIAlwYXJlbnRfcmVtb3ZlX3N5c2ZzX2ZpbGVzKHBhcmVudCk7CiAJdXBfd3JpdGUo JnBhcmVudC0+dW5yZWdfc2VtKTsKQEAgLTMxNCw3ICszNjEsNyBAQCBpbnQgbWRldl9kZXZpY2Vf Y3JlYXRlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCiAJZGV2aWNlX2luaXRpYWxpemUoJm1kZXYt PmRldik7CiAJbWRldi0+ZGV2LnBhcmVudCAgPSBkZXY7Ci0JbWRldi0+ZGV2LmJ1cyAgICAgPSAm bWRldl9idXNfdHlwZTsKKwltZGV2LT5kZXYuYnVzICAgICA9IHBhcmVudC0+YnVzOwogCW1kZXYt PmRldi5yZWxlYXNlID0gbWRldl9kZXZpY2VfcmVsZWFzZTsKIAlkZXZfc2V0X25hbWUoJm1kZXYt PmRldiwgIiVwVWwiLCB1dWlkKTsKIAltZGV2LT5kZXYuZ3JvdXBzID0gcGFyZW50LT5vcHMtPm1k ZXZfYXR0cl9ncm91cHM7CkBAIC00MDQsMjQgKzQ1MSwyOSBAQCBzdHJ1Y3QgZGV2aWNlICptZGV2 X2dldF9pb21tdV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogfQogRVhQT1JUX1NZTUJPTCht ZGV2X2dldF9pb21tdV9kZXZpY2UpOwogCi1zdGF0aWMgaW50IF9faW5pdCBtZGV2X2luaXQodm9p ZCkKK2ludCBtZGV2X3JlZ2lzdGVyX2J1cyhzdHJ1Y3QgYnVzX3R5cGUgKmJ1cykKIHsKLQlyZXR1 cm4gbWRldl9idXNfcmVnaXN0ZXIoKTsKKwlyZXR1cm4gYnVzX3JlZ2lzdGVyKGJ1cyk7CiB9CitF WFBPUlRfU1lNQk9MKG1kZXZfcmVnaXN0ZXJfYnVzKTsKIAotc3RhdGljIHZvaWQgX19leGl0IG1k ZXZfZXhpdCh2b2lkKQordm9pZCBtZGV2X3VucmVnaXN0ZXJfYnVzKHN0cnVjdCBidXNfdHlwZSAq YnVzKQogewotCWlmIChtZGV2X2J1c19jb21wYXRfY2xhc3MpCi0JCWNsYXNzX2NvbXBhdF91bnJl Z2lzdGVyKG1kZXZfYnVzX2NvbXBhdF9jbGFzcyk7Ci0KLQltZGV2X2J1c191bnJlZ2lzdGVyKCk7 CisJc3RydWN0IG1kZXZfY2xhc3NfY29tcGF0ICptZGV2X2NsYXNzX2NvbXBhdDsKKworCW11dGV4 X2xvY2soJmNvbXBhdF9saXN0X2xvY2spOworCW1kZXZfY2xhc3NfY29tcGF0ID0gZ2V0X2NsYXNz X2NvbXBhdChidXMpOworCWlmIChtZGV2X2NsYXNzX2NvbXBhdCkgeworCQlsaXN0X2RlbCgmbWRl dl9jbGFzc19jb21wYXQtPm5leHQpOworCQljbGFzc19jb21wYXRfdW5yZWdpc3RlcihtZGV2X2Ns YXNzX2NvbXBhdC0+Y2xhc3NfY29tcGF0KTsKKwkJa2ZyZWUobWRldl9jbGFzc19jb21wYXQpOwor CX0KKwlidXNfdW5yZWdpc3RlcihidXMpOworCW11dGV4X3VubG9jaygmY29tcGF0X2xpc3RfbG9j ayk7CiB9Ci0KLW1vZHVsZV9pbml0KG1kZXZfaW5pdCkKLW1vZHVsZV9leGl0KG1kZXZfZXhpdCkK K0VYUE9SVF9TWU1CT0wobWRldl91bnJlZ2lzdGVyX2J1cyk7CiAKIE1PRFVMRV9WRVJTSU9OKERS SVZFUl9WRVJTSU9OKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKIE1PRFVMRV9BVVRIT1Io RFJJVkVSX0FVVEhPUik7CiBNT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOwotTU9EVUxF X1NPRlRERVAoInBvc3Q6IHZmaW9fbWRldiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92ZmlvL21k ZXYvbWRldl9kcml2ZXIuYyBiL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfZHJpdmVyLmMKaW5kZXgg MGQzMjIzYWVlMjBiLi5jM2EyYWMwMjM3MTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmZpby9tZGV2 L21kZXZfZHJpdmVyLmMKKysrIGIvZHJpdmVycy92ZmlvL21kZXYvbWRldl9kcml2ZXIuYwpAQCAt MTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4 L2lvbW11Lmg+CiAjaW5jbHVkZSA8bGludXgvbWRldi5oPgorI2luY2x1ZGUgPGxpbnV4L21kZXZf dmZpby5oPgogCiAjaW5jbHVkZSAibWRldl9wcml2YXRlLmgiCiAKQEAgLTM3LDcgKzM4LDcgQEAg c3RhdGljIHZvaWQgbWRldl9kZXRhY2hfaW9tbXUoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KQog CWRldl9pbmZvKCZtZGV2LT5kZXYsICJNREVWOiBkZXRhY2hpbmcgaW9tbXVcbiIpOwogfQogCi1z dGF0aWMgaW50IG1kZXZfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KQoraW50IG1kZXZfcHJvYmUo c3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBtZGV2X2RyaXZlciAqZHJ2ID0gdG9fbWRl dl9kcml2ZXIoZGV2LT5kcml2ZXIpOwogCXN0cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IHRvX21k ZXZfZGV2aWNlKGRldik7CkBAIC01NSw4ICs1Niw5IEBAIHN0YXRpYyBpbnQgbWRldl9wcm9iZShz dHJ1Y3QgZGV2aWNlICpkZXYpCiAKIAlyZXR1cm4gcmV0OwogfQorRVhQT1JUX1NZTUJPTChtZGV2 X3Byb2JlKTsKIAotc3RhdGljIGludCBtZGV2X3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCitp bnQgbWRldl9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBtZGV2X2RyaXZl ciAqZHJ2ID0gdG9fbWRldl9kcml2ZXIoZGV2LT5kcml2ZXIpOwogCXN0cnVjdCBtZGV2X2Rldmlj ZSAqbWRldiA9IHRvX21kZXZfZGV2aWNlKGRldik7CkBAIC02OCwyNiArNzAsMjIgQEAgc3RhdGlj IGludCBtZGV2X3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAKIAlyZXR1cm4gMDsKIH0KLQot c3RydWN0IGJ1c190eXBlIG1kZXZfYnVzX3R5cGUgPSB7Ci0JLm5hbWUJCT0gIm1kZXYiLAotCS5w cm9iZQkJPSBtZGV2X3Byb2JlLAotCS5yZW1vdmUJCT0gbWRldl9yZW1vdmUsCi19OwotRVhQT1JU X1NZTUJPTF9HUEwobWRldl9idXNfdHlwZSk7CitFWFBPUlRfU1lNQk9MKG1kZXZfcmVtb3ZlKTsK IAogLyoqCiAgKiBtZGV2X3JlZ2lzdGVyX2RyaXZlciAtIHJlZ2lzdGVyIGEgbmV3IE1ERVYgZHJp dmVyCiAgKiBAZHJ2OiB0aGUgZHJpdmVyIHRvIHJlZ2lzdGVyCiAgKiBAb3duZXI6IG1vZHVsZSBv d25lciBvZiBkcml2ZXIgdG8gYmUgcmVnaXN0ZXJlZAorICogQGJ1czogYnV0IHRoYXQgdGhlIGRy aXZlciB3YW50cyB0byBhdHRhY2gKICAqCiAgKiBSZXR1cm5zIGEgbmVnYXRpdmUgdmFsdWUgb24g ZXJyb3IsIG90aGVyd2lzZSAwLgogICoqLwotaW50IG1kZXZfcmVnaXN0ZXJfZHJpdmVyKHN0cnVj dCBtZGV2X2RyaXZlciAqZHJ2LCBzdHJ1Y3QgbW9kdWxlICpvd25lcikKK2ludCBtZGV2X3JlZ2lz dGVyX2RyaXZlcihzdHJ1Y3QgbWRldl9kcml2ZXIgKmRydiwgc3RydWN0IG1vZHVsZSAqb3duZXIs CisJCQkgc3RydWN0IGJ1c190eXBlICpidXMpCiB7CiAJLyogaW5pdGlhbGl6ZSBjb21tb24gZHJp dmVyIGZpZWxkcyAqLwogCWRydi0+ZHJpdmVyLm5hbWUgPSBkcnYtPm5hbWU7Ci0JZHJ2LT5kcml2 ZXIuYnVzID0gJm1kZXZfYnVzX3R5cGU7CisJZHJ2LT5kcml2ZXIuYnVzID0gYnVzOwogCWRydi0+ ZHJpdmVyLm93bmVyID0gb3duZXI7CiAKIAkvKiByZWdpc3RlciB3aXRoIGNvcmUgKi8KQEAgLTEw NSwxMiArMTAzLDMgQEAgdm9pZCBtZGV2X3VucmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCBtZGV2X2Ry aXZlciAqZHJ2KQogfQogRVhQT1JUX1NZTUJPTChtZGV2X3VucmVnaXN0ZXJfZHJpdmVyKTsKIAot aW50IG1kZXZfYnVzX3JlZ2lzdGVyKHZvaWQpCi17Ci0JcmV0dXJuIGJ1c19yZWdpc3RlcigmbWRl dl9idXNfdHlwZSk7Ci19Ci0KLXZvaWQgbWRldl9idXNfdW5yZWdpc3Rlcih2b2lkKQotewotCWJ1 c191bnJlZ2lzdGVyKCZtZGV2X2J1c190eXBlKTsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZp by9tZGV2L21kZXZfcHJpdmF0ZS5oIGIvZHJpdmVycy92ZmlvL21kZXYvbWRldl9wcml2YXRlLmgK aW5kZXggN2Q5MjI5NTBjYWFmLi4yOThkN2EwZjQ5M2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmZp by9tZGV2L21kZXZfcHJpdmF0ZS5oCisrKyBiL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfcHJpdmF0 ZS5oCkBAIC0xMCwxMiArMTAsMTAgQEAKICNpZm5kZWYgTURFVl9QUklWQVRFX0gKICNkZWZpbmUg TURFVl9QUklWQVRFX0gKIAotaW50ICBtZGV2X2J1c19yZWdpc3Rlcih2b2lkKTsKLXZvaWQgbWRl dl9idXNfdW5yZWdpc3Rlcih2b2lkKTsKLQogc3RydWN0IG1kZXZfcGFyZW50IHsKIAlzdHJ1Y3Qg ZGV2aWNlICpkZXY7CiAJY29uc3Qgc3RydWN0IG1kZXZfcGFyZW50X29wcyAqb3BzOworCXN0cnVj dCBidXNfdHlwZSAqYnVzOwogCXN0cnVjdCBrcmVmIHJlZjsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG5l eHQ7CiAJc3RydWN0IGtzZXQgKm1kZXZfdHlwZXNfa3NldDsKQEAgLTM1LDggKzMzLDE1IEBAIHN0 cnVjdCBtZGV2X2RldmljZSB7CiAJYm9vbCBhY3RpdmU7CiB9OwogCitzdHJ1Y3QgbWRldl9jbGFz c19jb21wYXQgeworCXN0cnVjdCBjbGFzc19jb21wYXQgKmNsYXNzX2NvbXBhdDsKKwlzdHJ1Y3Qg YnVzX3R5cGUgKmJ1czsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG5leHQ7Cit9OworCisKICNkZWZpbmUg dG9fbWRldl9kZXZpY2UoZGV2KQljb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgbWRldl9kZXZpY2Us IGRldikKLSNkZWZpbmUgZGV2X2lzX21kZXYoZCkJCSgoZCktPmJ1cyA9PSAmbWRldl9idXNfdHlw ZSkKKyNkZWZpbmUgZGV2X2lzX21kZXYoZCwgYnVzKQkoKGQpLT5idXMgPT0gYnVzKQogCiBzdHJ1 Y3QgbWRldl90eXBlIHsKIAlzdHJ1Y3Qga29iamVjdCBrb2JqOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy92ZmlvL21kZXYvbWRldl92ZmlvLmMgYi9kcml2ZXJzL3ZmaW8vbWRldi9tZGV2X3ZmaW8uYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY5ZDExOTFiOTk4MgotLS0g L2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfdmZpby5jCkBAIC0wLDAgKzEs NDggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKyNpbmNsdWRl IDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC91dWlkLmg+CisjaW5jbHVkZSA8bGlu dXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbWRldl92ZmlvLmg+CisKKyNkZWZpbmUgRFJJ VkVSX1ZFUlNJT04JCSIwLjEiCisjZGVmaW5lIERSSVZFUl9BVVRIT1IJCSJKYXNvbiBXYW5nIgor I2RlZmluZSBEUklWRVJfREVTQwkJIk1lZGlhdGVkIFZGSU8gYnVzIgorCitzdHJ1Y3QgYnVzX3R5 cGUgbWRldl92ZmlvX2J1c190eXBlID0geworCS5uYW1lCQk9ICJtZGV2IiwKKwkucHJvYmUJCT0g bWRldl9wcm9iZSwKKwkucmVtb3ZlCQk9IG1kZXZfcmVtb3ZlLAorfTsKK0VYUE9SVF9TWU1CT0wo bWRldl92ZmlvX2J1c190eXBlKTsKKworc3RhdGljIGludCBfX2luaXQgbWRldl9pbml0KHZvaWQp Cit7CisJcmV0dXJuIG1kZXZfcmVnaXN0ZXJfYnVzKCZtZGV2X3ZmaW9fYnVzX3R5cGUpOworfQor CitzdGF0aWMgdm9pZCBfX2V4aXQgbWRldl9leGl0KHZvaWQpCit7CisJbWRldl91bnJlZ2lzdGVy X2J1cygmbWRldl92ZmlvX2J1c190eXBlKTsKK30KKworaW50IG1kZXZfdmZpb19yZWdpc3Rlcl9k ZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LAorCQkJICAgICAgY29uc3Qgc3RydWN0IG1kZXZfcGFy ZW50X29wcyAqb3BzKQoreworCXJldHVybiBtZGV2X3JlZ2lzdGVyX2RldmljZShkZXYsIG9wcywg Jm1kZXZfdmZpb19idXNfdHlwZSk7Cit9CitFWFBPUlRfU1lNQk9MKG1kZXZfdmZpb19yZWdpc3Rl cl9kZXZpY2UpOworCit2b2lkIG1kZXZfdmZpb191bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgZGV2 aWNlICpkZXYpCit7CisJcmV0dXJuIG1kZXZfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2KTsKK30KK0VY UE9SVF9TWU1CT0wobWRldl92ZmlvX3VucmVnaXN0ZXJfZGV2aWNlKTsKKworbW9kdWxlX2luaXQo bWRldl9pbml0KQorbW9kdWxlX2V4aXQobWRldl9leGl0KQorCitNT0RVTEVfVkVSU0lPTihEUklW RVJfVkVSU0lPTik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CitNT0RVTEVfQVVUSE9SKERS SVZFUl9BVVRIT1IpOworTU9EVUxFX0RFU0NSSVBUSU9OKERSSVZFUl9ERVNDKTsKK01PRFVMRV9T T0ZUREVQKCJwb3N0OiB2ZmlvX21kZXYiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9tZGV2 L3ZmaW9fbWRldi5jIGIvZHJpdmVycy92ZmlvL21kZXYvdmZpb19tZGV2LmMKaW5kZXggMzA5NjRh NGUwYTI4Li4xNmU5ZWJlMzBkNGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmZpby9tZGV2L3ZmaW9f bWRldi5jCisrKyBiL2RyaXZlcnMvdmZpby9tZGV2L3ZmaW9fbWRldi5jCkBAIC0xMyw3ICsxMyw3 IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgog I2luY2x1ZGUgPGxpbnV4L3ZmaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9tZGV2Lmg+CisjaW5jbHVk ZSA8bGludXgvbWRldl92ZmlvLmg+CiAKICNpbmNsdWRlICJtZGV2X3ByaXZhdGUuaCIKIApAQCAt MTI4LDcgKzEyOCw4IEBAIHN0YXRpYyBzdHJ1Y3QgbWRldl9kcml2ZXIgdmZpb19tZGV2X2RyaXZl ciA9IHsKIAogc3RhdGljIGludCBfX2luaXQgdmZpb19tZGV2X2luaXQodm9pZCkKIHsKLQlyZXR1 cm4gbWRldl9yZWdpc3Rlcl9kcml2ZXIoJnZmaW9fbWRldl9kcml2ZXIsIFRISVNfTU9EVUxFKTsK KwlyZXR1cm4gbWRldl9yZWdpc3Rlcl9kcml2ZXIoJnZmaW9fbWRldl9kcml2ZXIsIFRISVNfTU9E VUxFLAorCQkJCSAgICAmbWRldl92ZmlvX2J1c190eXBlKTsKIH0KIAogc3RhdGljIHZvaWQgX19l eGl0IHZmaW9fbWRldl9leGl0KHZvaWQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vdmZpb19p b21tdV90eXBlMS5jIGIvZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVfdHlwZTEuYwppbmRleCBkODY0 Mjc3ZWExNmYuLmYzNTUyM2Y4MjJlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL3ZmaW9faW9t bXVfdHlwZTEuYworKysgYi9kcml2ZXJzL3ZmaW8vdmZpb19pb21tdV90eXBlMS5jCkBAIC0zNCw3 ICszNCw3IEBACiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3Zm aW8uaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KLSNpbmNsdWRlIDxsaW51eC9tZGV2 Lmg+CisjaW5jbHVkZSA8bGludXgvbWRldl92ZmlvLmg+CiAjaW5jbHVkZSA8bGludXgvbm90aWZp ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtaW9tbXUuaD4KICNpbmNsdWRlIDxsaW51eC9pcnFk b21haW4uaD4KQEAgLTE0MDUsMTAgKzE0MDUsMTAgQEAgc3RhdGljIGJvb2wgdmZpb19idXNfaXNf bWRldihzdHJ1Y3QgYnVzX3R5cGUgKmJ1cykKIAlzdHJ1Y3QgYnVzX3R5cGUgKm1kZXZfYnVzOwog CWJvb2wgcmV0ID0gZmFsc2U7CiAKLQltZGV2X2J1cyA9IHN5bWJvbF9nZXQobWRldl9idXNfdHlw ZSk7CisJbWRldl9idXMgPSBzeW1ib2xfZ2V0KG1kZXZfdmZpb19idXNfdHlwZSk7CiAJaWYgKG1k ZXZfYnVzKSB7CiAJCXJldCA9IChidXMgPT0gbWRldl9idXMpOwotCQlzeW1ib2xfcHV0KG1kZXZf YnVzX3R5cGUpOworCQlzeW1ib2xfcHV0KG1kZXZfdmZpb19idXNfdHlwZSk7CiAJfQogCiAJcmV0 dXJuIHJldDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWRldi5oIGIvaW5jbHVkZS9saW51 eC9tZGV2LmgKaW5kZXggMGNlMzBjYTc4ZGIwLi5lZTI0MTAyNDZiM2MgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbGludXgvbWRldi5oCisrKyBiL2luY2x1ZGUvbGludXgvbWRldi5oCkBAIC0xMzMsMTYg KzEzMywyMiBAQCB2b2lkICptZGV2X2dldF9kcnZkYXRhKHN0cnVjdCBtZGV2X2RldmljZSAqbWRl dik7CiB2b2lkIG1kZXZfc2V0X2RydmRhdGEoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2LCB2b2lk ICpkYXRhKTsKIGNvbnN0IGd1aWRfdCAqbWRldl91dWlkKHN0cnVjdCBtZGV2X2RldmljZSAqbWRl dik7CiAKLWV4dGVybiBzdHJ1Y3QgYnVzX3R5cGUgbWRldl9idXNfdHlwZTsKLQotaW50IG1kZXZf cmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IG1kZXZfcGFy ZW50X29wcyAqb3BzKTsKK2ludCBtZGV2X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgZGV2aWNlICpk ZXYsIGNvbnN0IHN0cnVjdCBtZGV2X3BhcmVudF9vcHMgKm9wcywKKwkJCSBzdHJ1Y3QgYnVzX3R5 cGUgKmJ1cyk7CiB2b2lkIG1kZXZfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2 KTsKIAotaW50IG1kZXZfcmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCBtZGV2X2RyaXZlciAqZHJ2LCBz dHJ1Y3QgbW9kdWxlICpvd25lcik7CitpbnQgbWRldl9yZWdpc3Rlcl9kcml2ZXIoc3RydWN0IG1k ZXZfZHJpdmVyICpkcnYsIHN0cnVjdCBtb2R1bGUgKm93bmVyLAorCQkJIHN0cnVjdCBidXNfdHlw ZSAqYnVzKTsKIHZvaWQgbWRldl91bnJlZ2lzdGVyX2RyaXZlcihzdHJ1Y3QgbWRldl9kcml2ZXIg KmRydik7CiAKIHN0cnVjdCBkZXZpY2UgKm1kZXZfcGFyZW50X2RldihzdHJ1Y3QgbWRldl9kZXZp Y2UgKm1kZXYpOwogc3RydWN0IGRldmljZSAqbWRldl9kZXYoc3RydWN0IG1kZXZfZGV2aWNlICpt ZGV2KTsKLXN0cnVjdCBtZGV2X2RldmljZSAqbWRldl9mcm9tX2RldihzdHJ1Y3QgZGV2aWNlICpk ZXYpOworc3RydWN0IG1kZXZfZGV2aWNlICptZGV2X2Zyb21fZGV2KHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGJ1c190eXBlICpidXMpOworCitpbnQgbWRldl9wcm9iZShzdHJ1Y3QgZGV2aWNl ICpkZXYpOworaW50IG1kZXZfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldik7CisKK2ludCBtZGV2 X3JlZ2lzdGVyX2J1cyhzdHJ1Y3QgYnVzX3R5cGUgKmJ1cyk7Cit2b2lkIG1kZXZfdW5yZWdpc3Rl cl9idXMoc3RydWN0IGJ1c190eXBlICpidXMpOwogCiAjZW5kaWYgLyogTURFVl9IICovCmRpZmYg LS1naXQgYS9pbmNsdWRlL2xpbnV4L21kZXZfdmZpby5oIGIvaW5jbHVkZS9saW51eC9tZGV2X3Zm aW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ0NmE3NTM3ZTNm YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvbWRldl92ZmlvLmgKQEAgLTAsMCAr MSwyNSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLworLyoK KyAqIFZGSU8gTWVkaWF0ZWQgZGV2aWNlIGRlZmluaXRpb24KKyAqCisgKiBDb3B5cmlnaHQgKGMp IDIwMTksIFJlZCBIYXQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgQXV0aG9yOiBKYXNv biBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgorICovCisKKyNpZm5kZWYgTURFVl9WRklPX0gK KyNkZWZpbmUgTURFVl9WRklPX0gKKworI2luY2x1ZGUgPGxpbnV4L21kZXYuaD4KKworZXh0ZXJu IHN0cnVjdCBidXNfdHlwZSBtZGV2X3ZmaW9fYnVzX3R5cGU7CisKK2ludCBtZGV2X3ZmaW9fcmVn aXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBt ZGV2X3BhcmVudF9vcHMgKm9wcyk7Cit2b2lkIG1kZXZfdmZpb191bnJlZ2lzdGVyX2RldmljZShz dHJ1Y3QgZGV2aWNlICpkZXYpOworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBtZGV2X2RldmljZSAq dmZpb19tZGV2X2Zyb21fZGV2KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gbWRldl9m cm9tX2RldihkZXYsICZtZGV2X3ZmaW9fYnVzX3R5cGUpOworfQorCisjZW5kaWYKZGlmZiAtLWdp dCBhL3NhbXBsZXMvdmZpby1tZGV2L21ib2Nocy5jIGIvc2FtcGxlcy92ZmlvLW1kZXYvbWJvY2hz LmMKaW5kZXggYWM1YzhjMTdiMWZmLi5mMDQxZDU4MzI0YjEgMTAwNjQ0Ci0tLSBhL3NhbXBsZXMv dmZpby1tZGV2L21ib2Nocy5jCisrKyBiL3NhbXBsZXMvdmZpby1tZGV2L21ib2Nocy5jCkBAIC0y OSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8bGludXgvdmZpby5oPgogI2luY2x1ZGUgPGxpbnV4L2lv bW11Lmg+CiAjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZGV2Lmg+ CisjaW5jbHVkZSA8bGludXgvbWRldl92ZmlvLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAj aW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KQEAg LTEzMzIsNyArMTMzMiw3IEBAIHN0YXRpYyBzc2l6ZV90CiBtZW1vcnlfc2hvdyhzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCSAgICBjaGFyICpidWYp CiB7Ci0Jc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9mcm9tX2RldihkZXYpOworCXN0 cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9tX2RldihkZXYpOwogCXN0cnVj dCBtZGV2X3N0YXRlICptZGV2X3N0YXRlID0gbWRldl9nZXRfZHJ2ZGF0YShtZGV2KTsKIAogCXJl dHVybiBzcHJpbnRmKGJ1ZiwgIiVkIE1CXG4iLCBtZGV2X3N0YXRlLT50eXBlLT5tYnl0ZXMpOwpA QCAtMTQ2OCw3ICsxNDY4LDcgQEAgc3RhdGljIGludCBfX2luaXQgbWJvY2hzX2Rldl9pbml0KHZv aWQpCiAJaWYgKHJldCkKIAkJZ290byBmYWlsZWQyOwogCi0JcmV0ID0gbWRldl9yZWdpc3Rlcl9k ZXZpY2UoJm1ib2Noc19kZXYsICZtZGV2X2ZvcHMpOworCXJldCA9IG1kZXZfdmZpb19yZWdpc3Rl cl9kZXZpY2UoJm1ib2Noc19kZXYsICZtZGV2X2ZvcHMpOwogCWlmIChyZXQpCiAJCWdvdG8gZmFp bGVkMzsKIApAQCAtMTQ4Nyw3ICsxNDg3LDcgQEAgc3RhdGljIGludCBfX2luaXQgbWJvY2hzX2Rl dl9pbml0KHZvaWQpCiBzdGF0aWMgdm9pZCBfX2V4aXQgbWJvY2hzX2Rldl9leGl0KHZvaWQpCiB7 CiAJbWJvY2hzX2Rldi5idXMgPSBOVUxMOwotCW1kZXZfdW5yZWdpc3Rlcl9kZXZpY2UoJm1ib2No c19kZXYpOworCW1kZXZfdmZpb191bnJlZ2lzdGVyX2RldmljZSgmbWJvY2hzX2Rldik7CiAKIAlk ZXZpY2VfdW5yZWdpc3RlcigmbWJvY2hzX2Rldik7CiAJY2Rldl9kZWwoJm1ib2Noc19jZGV2KTsK ZGlmZiAtLWdpdCBhL3NhbXBsZXMvdmZpby1tZGV2L21kcHkuYyBiL3NhbXBsZXMvdmZpby1tZGV2 L21kcHkuYwppbmRleCBjYzg2YmY2NTY2ZTQuLjljMzJmZTM3OTVhZCAxMDA2NDQKLS0tIGEvc2Ft cGxlcy92ZmlvLW1kZXYvbWRweS5jCisrKyBiL3NhbXBsZXMvdmZpby1tZGV2L21kcHkuYwpAQCAt MjUsNyArMjUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3ZmaW8uaD4KICNpbmNsdWRlIDxsaW51eC9p b21tdS5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgvbWRldi5o PgorI2luY2x1ZGUgPGxpbnV4L21kZXZfdmZpby5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgog I2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSAibWRweS1kZWZzLmgiCkBAIC02 MzksNyArNjM5LDcgQEAgc3RhdGljIHNzaXplX3QKIHJlc29sdXRpb25fc2hvdyhzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQljaGFyICpidWYpCiB7 Ci0Jc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9mcm9tX2RldihkZXYpOworCXN0cnVj dCBtZGV2X2RldmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9tX2RldihkZXYpOwogCXN0cnVjdCBt ZGV2X3N0YXRlICptZGV2X3N0YXRlID0gbWRldl9nZXRfZHJ2ZGF0YShtZGV2KTsKIAogCXJldHVy biBzcHJpbnRmKGJ1ZiwgIiVkeCVkXG4iLApAQCAtNzc1LDcgKzc3NSw3IEBAIHN0YXRpYyBpbnQg X19pbml0IG1kcHlfZGV2X2luaXQodm9pZCkKIAlpZiAocmV0KQogCQlnb3RvIGZhaWxlZDI7CiAK LQlyZXQgPSBtZGV2X3JlZ2lzdGVyX2RldmljZSgmbWRweV9kZXYsICZtZGV2X2ZvcHMpOworCXJl dCA9IG1kZXZfdmZpb19yZWdpc3Rlcl9kZXZpY2UoJm1kcHlfZGV2LCAmbWRldl9mb3BzKTsKIAlp ZiAocmV0KQogCQlnb3RvIGZhaWxlZDM7CiAKQEAgLTc5NCw3ICs3OTQsNyBAQCBzdGF0aWMgaW50 IF9faW5pdCBtZHB5X2Rldl9pbml0KHZvaWQpCiBzdGF0aWMgdm9pZCBfX2V4aXQgbWRweV9kZXZf ZXhpdCh2b2lkKQogewogCW1kcHlfZGV2LmJ1cyA9IE5VTEw7Ci0JbWRldl91bnJlZ2lzdGVyX2Rl dmljZSgmbWRweV9kZXYpOworCW1kZXZfdmZpb191bnJlZ2lzdGVyX2RldmljZSgmbWRweV9kZXYp OwogCiAJZGV2aWNlX3VucmVnaXN0ZXIoJm1kcHlfZGV2KTsKIAljZGV2X2RlbCgmbWRweV9jZGV2 KTsKZGlmZiAtLWdpdCBhL3NhbXBsZXMvdmZpby1tZGV2L210dHkuYyBiL3NhbXBsZXMvdmZpby1t ZGV2L210dHkuYwppbmRleCBjZTg0YTMwMGE0ZGEuLjZlNGU2MzM5ZTBmMSAxMDA2NDQKLS0tIGEv c2FtcGxlcy92ZmlvLW1kZXYvbXR0eS5jCisrKyBiL3NhbXBsZXMvdmZpby1tZGV2L210dHkuYwpA QCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CiAjaW5jbHVkZSA8bGlu dXgvY3R5cGUuaD4KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbWRl di5oPgorI2luY2x1ZGUgPGxpbnV4L21kZXZfdmZpby5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5o PgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgogI2luY2x1ZGUgPHVhcGkvbGludXgvc2VyaWFs X3JlZy5oPgpAQCAtMTI4NSw3ICsxMjg1LDcgQEAgc3RhdGljIHNzaXplX3QKIHNhbXBsZV9tZGV2 X2Rldl9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0 dHIsCiAJCSAgICAgY2hhciAqYnVmKQogewotCWlmIChtZGV2X2Zyb21fZGV2KGRldikpCisJaWYg KHZmaW9fbWRldl9mcm9tX2RldihkZXYpKQogCQlyZXR1cm4gc3ByaW50ZihidWYsICJUaGlzIGlz IE1ERVYgJXNcbiIsIGRldl9uYW1lKGRldikpOwogCiAJcmV0dXJuIHNwcmludGYoYnVmLCAiXG4i KTsKQEAgLTE0NDUsNyArMTQ0NSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IG10dHlfZGV2X2luaXQo dm9pZCkKIAlpZiAocmV0KQogCQlnb3RvIGZhaWxlZDI7CiAKLQlyZXQgPSBtZGV2X3JlZ2lzdGVy X2RldmljZSgmbXR0eV9kZXYuZGV2LCAmbWRldl9mb3BzKTsKKwlyZXQgPSBtZGV2X3ZmaW9fcmVn aXN0ZXJfZGV2aWNlKCZtdHR5X2Rldi5kZXYsICZtZGV2X2ZvcHMpOwogCWlmIChyZXQpCiAJCWdv dG8gZmFpbGVkMzsKIApAQCAtMTQ3MSw3ICsxNDcxLDcgQEAgc3RhdGljIGludCBfX2luaXQgbXR0 eV9kZXZfaW5pdCh2b2lkKQogc3RhdGljIHZvaWQgX19leGl0IG10dHlfZGV2X2V4aXQodm9pZCkK IHsKIAltdHR5X2Rldi5kZXYuYnVzID0gTlVMTDsKLQltZGV2X3VucmVnaXN0ZXJfZGV2aWNlKCZt dHR5X2Rldi5kZXYpOworCW1kZXZfdmZpb191bnJlZ2lzdGVyX2RldmljZSgmbXR0eV9kZXYuZGV2 KTsKIAogCWRldmljZV91bnJlZ2lzdGVyKCZtdHR5X2Rldi5kZXYpOwogCWlkcl9kZXN0cm95KCZt dHR5X2Rldi52ZF9pZHIpOwotLSAKMi4xOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74015C432C0 for ; Mon, 18 Nov 2019 06:18:48 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 548BE206D4 for ; Mon, 18 Nov 2019 06:18:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 548BE206D4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DA6CA89F33; Mon, 18 Nov 2019 06:18:47 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1FB5E89F45 for ; Mon, 18 Nov 2019 06:18:47 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-152-tD3vmjQuNrO9sCAztXnV0A-1; Mon, 18 Nov 2019 01:18:42 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0A81D9125A; Mon, 18 Nov 2019 06:18:38 +0000 (UTC) Received: from jason-ThinkPad-X1-Carbon-6th.redhat.com (ovpn-12-215.pek2.redhat.com [10.72.12.215]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3C0A961070; Mon, 18 Nov 2019 06:17:40 +0000 (UTC) From: Jason Wang 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 Date: Mon, 18 Nov 2019 14:16:58 +0800 Message-Id: <20191118061703.8669-2-jasowang@redhat.com> In-Reply-To: <20191118061703.8669-1-jasowang@redhat.com> References: <20191118061703.8669-1-jasowang@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-MC-Unique: tD3vmjQuNrO9sCAztXnV0A-1 X-Mimecast-Spam-Score: 0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1574057926; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=/XNAWBJl9HYd58zJCbVCxLRJrBu8qH2nBLBROQScSb0=; b=OWa+B+tc8ft3wuxO/3yVmcCBcuW/pBF1zzxrQUEI+bFLW+eFaay5iT3DHYuwZ4sDUJEUb4 ww5g8xXG+dcTrIp2akElctgoCHL70kLn0K4LM7rQvBkKTWoa3ldX36pF4sSISAdbPRJFgT rbJdW2DZkm/PNn33VZsv6uZtol1t69w= Subject: [Intel-gfx] [PATCH V12 1/6] mdev: make mdev bus agnostic X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: rdunlap@infradead.org, christophe.de.dinechin@gmail.com, sebott@linux.ibm.com, airlied@linux.ie, Jason Wang , heiko.carstens@de.ibm.com, virtualization@lists.linux-foundation.org, jgg@mellanox.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, farman@linux.ibm.com, parav@mellanox.com, gor@linux.ibm.com, cunming.liang@intel.com, xiao.w.wang@intel.com, freude@linux.ibm.com, stefanha@redhat.com, zhihong.wang@intel.com, akrowiak@linux.ibm.com, netdev@vger.kernel.org, cohuck@redhat.com, oberpar@linux.ibm.com, maxime.coquelin@redhat.com, gregkh@linuxfoundation.org, lingshan.zhu@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191118061658.SZEFZKTJSFI8698j7VB_FHxcb_4ylsvMxAnwoOnPoKw@z> Q3VycmVudCBtZGV2IGlzIHRpZWQgdG8gYSBWRklPIHNwZWNpZmljICJtZGV2IiBidXMuIFRoaXMg cHJldmVudCBtZGV2CmZyb20gYmVpbmcgdXNlZCBieSBvdGhlciB0eXBlcyBvZiBBUEkvYnVzZXMu IFNvIHRoaXMgcGF0Y2ggdHJpZXMgdG8gbWFrZQptZGV2IGJ1cyBhZ25vc3RpYyB0aHJvdWdoIG1h a2luZyBhIG1kZXYgY29yZSBhIHRoaW4gbW9kdWxlOgoKLSBkZWNvdXBsZSBWRklPIGJ1cyBzcGVj aWZpYyBiaXRzIGZyb20gbWRldl9jb3JlLmMgdG8gbWRldl92ZmlvLmMgYW5kCiAgaW50cm9kdWNl IG1kZXZfdmZpbyBtb2R1bGUKLSByZXF1aXJlIHRvIHNwZWNpZnkgdGhlIHR5cGUgb2YgYnVzIHdo ZW4gcmVnaXN0ZXJpbmcgbWRldiBkZXZpY2UgYW5kCiAgbWRldiBkcml2ZXIKCldpdGggdGhvc2Ug bW9kaWZpY2F0aW9ucyBtZGV2IGJlY29tZSBhIGdlbmVyaWMgbW9kdWxlIHRoYXQgY291bGQgYmUK dXNlZCBieSBtdWx0aXBsZSB0eXBlcyBvZiB2aXJ0dWFsIGJ1c2VzIGFuZCBkZXZpY2VzLgoKU2ln bmVkLW9mZi1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KLS0tCiAuLi4vZHJp dmVyLWFwaS92ZmlvLW1lZGlhdGVkLWRldmljZS5yc3QgICAgICAgfCAgNjggKysrKysrLS0tLS0t CiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0LmMgICAgICAgICAgICAgIHwgIDEwICstCiBk cml2ZXJzL3MzOTAvY2lvL3ZmaW9fY2N3X29wcy5jICAgICAgICAgICAgICAgfCAgIDYgKy0KIGRy aXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9vcHMuYyAgICAgICAgICAgICB8ICAyMSArKy0tCiBk cml2ZXJzL3MzOTAvY3J5cHRvL3ZmaW9fYXBfcHJpdmF0ZS5oICAgICAgICAgfCAgIDIgKy0KIGRy aXZlcnMvdmZpby9tZGV2L0tjb25maWcgICAgICAgICAgICAgICAgICAgICB8ICAxNyArKy0KIGRy aXZlcnMvdmZpby9tZGV2L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogZHJp dmVycy92ZmlvL21kZXYvbWRldl9jb3JlLmMgICAgICAgICAgICAgICAgIHwgMTA0ICsrKysrKysr KysrKystLS0tLQogZHJpdmVycy92ZmlvL21kZXYvbWRldl9kcml2ZXIuYyAgICAgICAgICAgICAg IHwgIDI5ICsrLS0tCiBkcml2ZXJzL3ZmaW8vbWRldi9tZGV2X3ByaXZhdGUuaCAgICAgICAgICAg ICAgfCAgMTMgKystCiBkcml2ZXJzL3ZmaW8vbWRldi9tZGV2X3ZmaW8uYyAgICAgICAgICAgICAg ICAgfCAgNDggKysrKysrKysKIGRyaXZlcnMvdmZpby9tZGV2L3ZmaW9fbWRldi5jICAgICAgICAg ICAgICAgICB8ICAgNSArLQogZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVfdHlwZTEuYyAgICAgICAg ICAgICAgIHwgICA2ICstCiBpbmNsdWRlL2xpbnV4L21kZXYuaCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMTYgKystCiBpbmNsdWRlL2xpbnV4L21kZXZfdmZpby5oICAgICAgICAgICAgICAg ICAgICAgfCAgMjUgKysrKysKIHNhbXBsZXMvdmZpby1tZGV2L21ib2Nocy5jICAgICAgICAgICAg ICAgICAgICB8ICAgOCArLQogc2FtcGxlcy92ZmlvLW1kZXYvbWRweS5jICAgICAgICAgICAgICAg ICAgICAgIHwgICA4ICstCiBzYW1wbGVzL3ZmaW8tbWRldi9tdHR5LmMgICAgICAgICAgICAgICAg ICAgICAgfCAgIDggKy0KIDE5IGZpbGVzIGNoYW5nZWQsIDI3MCBpbnNlcnRpb25zKCspLCAxMjkg 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 YS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCmluZGV4IGNiYTEwOTU1NDdmZC4uZDMzNTk0OTI0 MGRjIDEwMDY0NAotLS0gYS9NQUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtMTcxMjEs NiArMTcxMjEsNyBAQCBTOglNYWludGFpbmVkCiBGOglEb2N1bWVudGF0aW9uL2RyaXZlci1hcGkv dmZpby1tZWRpYXRlZC1kZXZpY2UucnN0CiBGOglkcml2ZXJzL3ZmaW8vbWRldi8KIEY6CWluY2x1 ZGUvbGludXgvbWRldi5oCitGOglpbmNsdWRlL2xpbnV4L21kZXZfdmZpby5oCiBGOglzYW1wbGVz L3ZmaW8tbWRldi8KIAogVkZJTyBQTEFURk9STSBEUklWRVIKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2t2bWd0 LmMKaW5kZXggMzQzZDc5YzFjYjdlLi44YzAyNTcyYzliNDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d2dC9rdm1ndC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9r dm1ndC5jCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVkZSA8bGludXgvdXVpZC5oPgogI2luY2x1 ZGUgPGxpbnV4L2t2bV9ob3N0Lmg+CiAjaW5jbHVkZSA8bGludXgvdmZpby5oPgotI2luY2x1ZGUg PGxpbnV4L21kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9tZGV2X3ZmaW8uaD4KICNpbmNsdWRlIDxs aW51eC9kZWJ1Z2ZzLmg+CiAKICNpbmNsdWRlIDxsaW51eC9ub3NwZWMuaD4KQEAgLTE1NTQsNyAr MTU1NCw3IEBAIHN0YXRpYyBzc2l6ZV90CiB2Z3B1X2lkX3Nob3coc3RydWN0IGRldmljZSAqZGV2 LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkgICAgIGNoYXIgKmJ1ZikKIHsKLQlz dHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zyb21fZGV2KGRldik7CisJc3RydWN0IG1k ZXZfZGV2aWNlICptZGV2ID0gdmZpb19tZGV2X2Zyb21fZGV2KGRldik7CiAKIAlpZiAobWRldikg ewogCQlzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSA9IChzdHJ1Y3QgaW50ZWxfdmdwdSAqKQpAQCAt MTU2OCw3ICsxNTY4LDcgQEAgc3RhdGljIHNzaXplX3QKIGh3X2lkX3Nob3coc3RydWN0IGRldmlj ZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKIAkgICBjaGFyICpidWYpCiB7 Ci0Jc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9mcm9tX2RldihkZXYpOworCXN0cnVj dCBtZGV2X2RldmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9tX2RldihkZXYpOwogCiAJaWYgKG1k ZXYpIHsKIAkJc3RydWN0IGludGVsX3ZncHUgKnZncHUgPSAoc3RydWN0IGludGVsX3ZncHUgKikK QEAgLTE2MjMsMTIgKzE2MjMsMTIgQEAgc3RhdGljIGludCBrdm1ndF9ob3N0X2luaXQoc3RydWN0 IGRldmljZSAqZGV2LCB2b2lkICpndnQsIGNvbnN0IHZvaWQgKm9wcykKIAkJcmV0dXJuIC1FRkFV TFQ7CiAJaW50ZWxfdmdwdV9vcHMuc3VwcG9ydGVkX3R5cGVfZ3JvdXBzID0ga3ZtX3ZncHVfdHlw ZV9ncm91cHM7CiAKLQlyZXR1cm4gbWRldl9yZWdpc3Rlcl9kZXZpY2UoZGV2LCAmaW50ZWxfdmdw dV9vcHMpOworCXJldHVybiBtZGV2X3ZmaW9fcmVnaXN0ZXJfZGV2aWNlKGRldiwgJmludGVsX3Zn cHVfb3BzKTsKIH0KIAogc3RhdGljIHZvaWQga3ZtZ3RfaG9zdF9leGl0KHN0cnVjdCBkZXZpY2Ug KmRldikKIHsKLQltZGV2X3VucmVnaXN0ZXJfZGV2aWNlKGRldik7CisJbWRldl92ZmlvX3VucmVn aXN0ZXJfZGV2aWNlKGRldik7CiB9CiAKIHN0YXRpYyBpbnQga3ZtZ3RfcGFnZV90cmFja19hZGQo dW5zaWduZWQgbG9uZyBoYW5kbGUsIHU2NCBnZm4pCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAv Y2lvL3ZmaW9fY2N3X29wcy5jIGIvZHJpdmVycy9zMzkwL2Npby92ZmlvX2Njd19vcHMuYwppbmRl eCBmMGQ3MWFiNzdjNTAuLjc5MWI4YjBlYjAyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Np by92ZmlvX2Njd19vcHMuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL3ZmaW9fY2N3X29wcy5jCkBA IC0xMSw3ICsxMSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3ZmaW8uaD4KLSNpbmNsdWRl IDxsaW51eC9tZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvbWRldl92ZmlvLmg+CiAjaW5jbHVkZSA8 bGludXgvbm9zcGVjLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogCkBAIC01ODgsMTAgKzU4 OCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1kZXZfcGFyZW50X29wcyB2ZmlvX2Njd19tZGV2 X29wcyA9IHsKIAogaW50IHZmaW9fY2N3X21kZXZfcmVnKHN0cnVjdCBzdWJjaGFubmVsICpzY2gp CiB7Ci0JcmV0dXJuIG1kZXZfcmVnaXN0ZXJfZGV2aWNlKCZzY2gtPmRldiwgJnZmaW9fY2N3X21k ZXZfb3BzKTsKKwlyZXR1cm4gbWRldl92ZmlvX3JlZ2lzdGVyX2RldmljZSgmc2NoLT5kZXYsICZ2 ZmlvX2Njd19tZGV2X29wcyk7CiB9CiAKIHZvaWQgdmZpb19jY3dfbWRldl91bnJlZyhzdHJ1Y3Qg c3ViY2hhbm5lbCAqc2NoKQogewotCW1kZXZfdW5yZWdpc3Rlcl9kZXZpY2UoJnNjaC0+ZGV2KTsK KwltZGV2X3ZmaW9fdW5yZWdpc3Rlcl9kZXZpY2UoJnNjaC0+ZGV2KTsKIH0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9vcHMuYyBiL2RyaXZlcnMvczM5MC9jcnlwdG8v dmZpb19hcF9vcHMuYwppbmRleCA1YzBmNTNjNmRkZTcuLjc4MDQ4ZTY3MDM3NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX29wcy5jCisrKyBiL2RyaXZlcnMvczM5MC9j cnlwdG8vdmZpb19hcF9vcHMuYwpAQCAtNjAyLDcgKzYwMiw3IEBAIHN0YXRpYyBzc2l6ZV90IGFz c2lnbl9hZGFwdGVyX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIHsKIAlpbnQgcmV0OwogCXVu c2lnbmVkIGxvbmcgYXBpZDsKLQlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zyb21f ZGV2KGRldik7CisJc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gdmZpb19tZGV2X2Zyb21fZGV2 KGRldik7CiAJc3RydWN0IGFwX21hdHJpeF9tZGV2ICptYXRyaXhfbWRldiA9IG1kZXZfZ2V0X2Ry dmRhdGEobWRldik7CiAKIAkvKiBJZiB0aGUgZ3Vlc3QgaXMgcnVubmluZywgZGlzYWxsb3cgYXNz aWdubWVudCBvZiBhZGFwdGVyICovCkBAIC02NjgsNyArNjY4LDcgQEAgc3RhdGljIHNzaXplX3Qg dW5hc3NpZ25fYWRhcHRlcl9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsCiB7CiAJaW50IHJldDsK IAl1bnNpZ25lZCBsb25nIGFwaWQ7Ci0Jc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9m cm9tX2RldihkZXYpOworCXN0cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9t X2RldihkZXYpOwogCXN0cnVjdCBhcF9tYXRyaXhfbWRldiAqbWF0cml4X21kZXYgPSBtZGV2X2dl dF9kcnZkYXRhKG1kZXYpOwogCiAJLyogSWYgdGhlIGd1ZXN0IGlzIHJ1bm5pbmcsIGRpc2FsbG93 IHVuLWFzc2lnbm1lbnQgb2YgYWRhcHRlciAqLwpAQCAtNzQ4LDcgKzc0OCw3IEBAIHN0YXRpYyBz c2l6ZV90IGFzc2lnbl9kb21haW5fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogewogCWludCBy ZXQ7CiAJdW5zaWduZWQgbG9uZyBhcHFpOwotCXN0cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IG1k ZXZfZnJvbV9kZXYoZGV2KTsKKwlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSB2ZmlvX21kZXZf ZnJvbV9kZXYoZGV2KTsKIAlzdHJ1Y3QgYXBfbWF0cml4X21kZXYgKm1hdHJpeF9tZGV2ID0gbWRl dl9nZXRfZHJ2ZGF0YShtZGV2KTsKIAl1bnNpZ25lZCBsb25nIG1heF9hcHFpID0gbWF0cml4X21k ZXYtPm1hdHJpeC5hcW1fbWF4OwogCkBAIC04MTAsNyArODEwLDcgQEAgc3RhdGljIHNzaXplX3Qg dW5hc3NpZ25fZG9tYWluX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKIHsKIAlpbnQgcmV0Owog CXVuc2lnbmVkIGxvbmcgYXBxaTsKLQlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYgPSBtZGV2X2Zy b21fZGV2KGRldik7CisJc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gdmZpb19tZGV2X2Zyb21f ZGV2KGRldik7CiAJc3RydWN0IGFwX21hdHJpeF9tZGV2ICptYXRyaXhfbWRldiA9IG1kZXZfZ2V0 X2RydmRhdGEobWRldik7CiAKIAkvKiBJZiB0aGUgZ3Vlc3QgaXMgcnVubmluZywgZGlzYWxsb3cg dW4tYXNzaWdubWVudCBvZiBkb21haW4gKi8KQEAgLTg1NCw3ICs4NTQsNyBAQCBzdGF0aWMgc3Np emVfdCBhc3NpZ25fY29udHJvbF9kb21haW5fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAogewog CWludCByZXQ7CiAJdW5zaWduZWQgbG9uZyBpZDsKLQlzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXYg PSBtZGV2X2Zyb21fZGV2KGRldik7CisJc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gdmZpb19t ZGV2X2Zyb21fZGV2KGRldik7CiAJc3RydWN0IGFwX21hdHJpeF9tZGV2ICptYXRyaXhfbWRldiA9 IG1kZXZfZ2V0X2RydmRhdGEobWRldik7CiAKIAkvKiBJZiB0aGUgZ3Vlc3QgaXMgcnVubmluZywg ZGlzYWxsb3cgYXNzaWdubWVudCBvZiBjb250cm9sIGRvbWFpbiAqLwpAQCAtOTAzLDcgKzkwMyw3 IEBAIHN0YXRpYyBzc2l6ZV90IHVuYXNzaWduX2NvbnRyb2xfZG9tYWluX3N0b3JlKHN0cnVjdCBk ZXZpY2UgKmRldiwKIHsKIAlpbnQgcmV0OwogCXVuc2lnbmVkIGxvbmcgZG9taWQ7Ci0Jc3RydWN0 IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9mcm9tX2RldihkZXYpOworCXN0cnVjdCBtZGV2X2Rl dmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9tX2RldihkZXYpOwogCXN0cnVjdCBhcF9tYXRyaXhf bWRldiAqbWF0cml4X21kZXYgPSBtZGV2X2dldF9kcnZkYXRhKG1kZXYpOwogCXVuc2lnbmVkIGxv bmcgbWF4X2RvbWlkID0gIG1hdHJpeF9tZGV2LT5tYXRyaXguYWRtX21heDsKIApAQCAtOTMzLDcg KzkzMyw3IEBAIHN0YXRpYyBzc2l6ZV90IGNvbnRyb2xfZG9tYWluc19zaG93KHN0cnVjdCBkZXZp Y2UgKmRldiwKIAlpbnQgbmNoYXJzID0gMDsKIAlpbnQgbjsKIAljaGFyICpidWZwb3MgPSBidWY7 Ci0Jc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9mcm9tX2RldihkZXYpOworCXN0cnVj dCBtZGV2X2RldmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9tX2RldihkZXYpOwogCXN0cnVjdCBh cF9tYXRyaXhfbWRldiAqbWF0cml4X21kZXYgPSBtZGV2X2dldF9kcnZkYXRhKG1kZXYpOwogCXVu c2lnbmVkIGxvbmcgbWF4X2RvbWlkID0gbWF0cml4X21kZXYtPm1hdHJpeC5hZG1fbWF4OwogCkBA IC05NTIsNyArOTUyLDcgQEAgc3RhdGljIERFVklDRV9BVFRSX1JPKGNvbnRyb2xfZG9tYWlucyk7 CiBzdGF0aWMgc3NpemVfdCBtYXRyaXhfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBk ZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQkJICAgY2hhciAqYnVmKQogewotCXN0cnVjdCBtZGV2 X2RldmljZSAqbWRldiA9IG1kZXZfZnJvbV9kZXYoZGV2KTsKKwlzdHJ1Y3QgbWRldl9kZXZpY2Ug Km1kZXYgPSB2ZmlvX21kZXZfZnJvbV9kZXYoZGV2KTsKIAlzdHJ1Y3QgYXBfbWF0cml4X21kZXYg Km1hdHJpeF9tZGV2ID0gbWRldl9nZXRfZHJ2ZGF0YShtZGV2KTsKIAljaGFyICpidWZwb3MgPSBi dWY7CiAJdW5zaWduZWQgbG9uZyBhcGlkOwpAQCAtMTI5NSwxMCArMTI5NSwxMSBAQCBpbnQgdmZp b19hcF9tZGV2X3JlZ2lzdGVyKHZvaWQpCiB7CiAJYXRvbWljX3NldCgmbWF0cml4X2Rldi0+YXZh aWxhYmxlX2luc3RhbmNlcywgTUFYX1pERVZfRU5UUklFU19FWFQpOwogCi0JcmV0dXJuIG1kZXZf cmVnaXN0ZXJfZGV2aWNlKCZtYXRyaXhfZGV2LT5kZXZpY2UsICZ2ZmlvX2FwX21hdHJpeF9vcHMp OworCXJldHVybiBtZGV2X3ZmaW9fcmVnaXN0ZXJfZGV2aWNlKCZtYXRyaXhfZGV2LT5kZXZpY2Us CisJCQkJCSAmdmZpb19hcF9tYXRyaXhfb3BzKTsKIH0KIAogdm9pZCB2ZmlvX2FwX21kZXZfdW5y ZWdpc3Rlcih2b2lkKQogewotCW1kZXZfdW5yZWdpc3Rlcl9kZXZpY2UoJm1hdHJpeF9kZXYtPmRl dmljZSk7CisJbWRldl92ZmlvX3VucmVnaXN0ZXJfZGV2aWNlKCZtYXRyaXhfZGV2LT5kZXZpY2Up OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX3ByaXZhdGUuaCBi L2RyaXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9wcml2YXRlLmgKaW5kZXggZjQ2ZGRlNTZiNDY0 Li40ZTM3ZTBlMzQzM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vdmZpb19hcF9w cml2YXRlLmgKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by92ZmlvX2FwX3ByaXZhdGUuaApAQCAt MTQsNyArMTQsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51 eC9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9tZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvbWRl dl92ZmlvLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRl eC5oPgogI2luY2x1ZGUgPGxpbnV4L2t2bV9ob3N0Lmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Zm aW8vbWRldi9LY29uZmlnIGIvZHJpdmVycy92ZmlvL21kZXYvS2NvbmZpZwppbmRleCA1ZGEyN2Yy MTAwZjkuLjJlMDdjYTkxNWE5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL21kZXYvS2NvbmZp ZworKysgYi9kcml2ZXJzL3ZmaW8vbWRldi9LY29uZmlnCkBAIC0xLDE1ICsxLDI0IEBACi0jIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKIAotY29uZmlnIFZGSU9fTURFVgor Y29uZmlnIE1ERVYKIAl0cmlzdGF0ZSAiTWVkaWF0ZWQgZGV2aWNlIGRyaXZlciBmcmFtZXdvcmsi Ci0JZGVwZW5kcyBvbiBWRklPCiAJZGVmYXVsdCBuCiAJaGVscAogCSAgUHJvdmlkZXMgYSBmcmFt ZXdvcmsgdG8gdmlydHVhbGl6ZSBkZXZpY2VzLgotCSAgU2VlIERvY3VtZW50YXRpb24vZHJpdmVy LWFwaS92ZmlvLW1lZGlhdGVkLWRldmljZS5yc3QgZm9yIG1vcmUgZGV0YWlscy4KIAogCSAgSWYg eW91IGRvbid0IGtub3cgd2hhdCBkbyBoZXJlLCBzYXkgTi4KIAorY29uZmlnIFZGSU9fTURFVgor CXRyaXN0YXRlICJWRklPIE1lZGlhdGVkIGRldmljZSBkcml2ZXIiCisgICAgICAgIGRlcGVuZHMg b24gVkZJTyAmJiBNREVWCisgICAgICAgIGRlZmF1bHQgbgorCWhlbHAKKwkgIFByb2l2ZGVzIGEg bWVkaWF0ZWQgQlVTIGZvciB1c2Vyc3BhY2UgZHJpdmVyIHRocm91Z2ggVkZJTworCSAgZnJhbWV3 b3JrLiBTZWUgRG9jdW1lbnRhdGlvbi92ZmlvLW1lZGlhdGVkLWRldmljZS50eHQgZm9yCisJICBt b3JlIGRldGFpbHMuCisKKwkgIElmIHlvdSBkb24ndCBrbm93IHdoYXQgZG8gaGVyZSwgc2F5IE4u CisKKwogY29uZmlnIFZGSU9fTURFVl9ERVZJQ0UKIAl0cmlzdGF0ZSAiVkZJTyBkcml2ZXIgZm9y IE1lZGlhdGVkIGRldmljZXMiCiAJZGVwZW5kcyBvbiBWRklPICYmIFZGSU9fTURFVgpkaWZmIC0t Z2l0IGEvZHJpdmVycy92ZmlvL21kZXYvTWFrZWZpbGUgYi9kcml2ZXJzL3ZmaW8vbWRldi9NYWtl ZmlsZQppbmRleCAxMDE1MTZmZGYzNzUuLmU5Njc1NTAxMjcxYSAxMDA2NDQKLS0tIGEvZHJpdmVy cy92ZmlvL21kZXYvTWFrZWZpbGUKKysrIGIvZHJpdmVycy92ZmlvL21kZXYvTWFrZWZpbGUKQEAg LTEsNiArMSw2IEBACi0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKIAog bWRldi15IDo9IG1kZXZfY29yZS5vIG1kZXZfc3lzZnMubyBtZGV2X2RyaXZlci5vCiAKLW9iai0k KENPTkZJR19WRklPX01ERVYpICs9IG1kZXYubworb2JqLSQoQ09ORklHX01ERVYpICs9IG1kZXYu bworb2JqLSQoQ09ORklHX1ZGSU9fTURFVikgKz0gbWRldl92ZmlvLm8KIG9iai0kKENPTkZJR19W RklPX01ERVZfREVWSUNFKSArPSB2ZmlvX21kZXYubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92Zmlv L21kZXYvbWRldl9jb3JlLmMgYi9kcml2ZXJzL3ZmaW8vbWRldi9tZGV2X2NvcmUuYwppbmRleCBi NTU4ZDRjZmQwODIuLmUxMjcyYTQwYzUyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL21kZXYv bWRldl9jb3JlLmMKKysrIGIvZHJpdmVycy92ZmlvL21kZXYvbWRldl9jb3JlLmMKQEAgLTIyLDEx ICsyMiwxMyBAQAogCiBzdGF0aWMgTElTVF9IRUFEKHBhcmVudF9saXN0KTsKIHN0YXRpYyBERUZJ TkVfTVVURVgocGFyZW50X2xpc3RfbG9jayk7Ci1zdGF0aWMgc3RydWN0IGNsYXNzX2NvbXBhdCAq bWRldl9idXNfY29tcGF0X2NsYXNzOwogCiBzdGF0aWMgTElTVF9IRUFEKG1kZXZfbGlzdCk7CiBz dGF0aWMgREVGSU5FX01VVEVYKG1kZXZfbGlzdF9sb2NrKTsKIAorc3RhdGljIExJU1RfSEVBRChj bGFzc19jb21wYXRfbGlzdCk7CitzdGF0aWMgREVGSU5FX01VVEVYKGNvbXBhdF9saXN0X2xvY2sp OworCiBzdHJ1Y3QgZGV2aWNlICptZGV2X3BhcmVudF9kZXYoc3RydWN0IG1kZXZfZGV2aWNlICpt ZGV2KQogewogCXJldHVybiBtZGV2LT5wYXJlbnQtPmRldjsKQEAgLTUxLDkgKzUzLDkgQEAgc3Ry dWN0IGRldmljZSAqbWRldl9kZXYoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KQogfQogRVhQT1JU X1NZTUJPTChtZGV2X2Rldik7CiAKLXN0cnVjdCBtZGV2X2RldmljZSAqbWRldl9mcm9tX2Rldihz dHJ1Y3QgZGV2aWNlICpkZXYpCitzdHJ1Y3QgbWRldl9kZXZpY2UgKm1kZXZfZnJvbV9kZXYoc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgYnVzX3R5cGUgKmJ1cykKIHsKLQlyZXR1cm4gZGV2X2lz X21kZXYoZGV2KSA/IHRvX21kZXZfZGV2aWNlKGRldikgOiBOVUxMOworCXJldHVybiBkZXZfaXNf bWRldihkZXYsIGJ1cykgPyB0b19tZGV2X2RldmljZShkZXYpIDogTlVMTDsKIH0KIEVYUE9SVF9T WU1CT0wobWRldl9mcm9tX2Rldik7CiAKQEAgLTEyMiw3ICsxMjQsOSBAQCBzdGF0aWMgdm9pZCBt ZGV2X2RldmljZV9yZW1vdmVfY29tbW9uKHN0cnVjdCBtZGV2X2RldmljZSAqbWRldikKIAogc3Rh dGljIGludCBtZGV2X2RldmljZV9yZW1vdmVfY2Ioc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpk YXRhKQogewotCWlmIChkZXZfaXNfbWRldihkZXYpKSB7CisJc3RydWN0IGJ1c190eXBlICpidXMg PSBkYXRhOworCisJaWYgKGRldl9pc19tZGV2KGRldiwgYnVzKSkgewogCQlzdHJ1Y3QgbWRldl9k ZXZpY2UgKm1kZXY7CiAKIAkJbWRldiA9IHRvX21kZXZfZGV2aWNlKGRldik7CkBAIC0xMzEsNiAr MTM1LDQxIEBAIHN0YXRpYyBpbnQgbWRldl9kZXZpY2VfcmVtb3ZlX2NiKHN0cnVjdCBkZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHN0cnVjdCBtZGV2X2Ns YXNzX2NvbXBhdCAqZ2V0X2NsYXNzX2NvbXBhdChzdHJ1Y3QgYnVzX3R5cGUgKmJ1cykKK3sKKwlz dHJ1Y3QgbWRldl9jbGFzc19jb21wYXQgKm1kZXZfY2xhc3NfY29tcGF0OworCisJbGlzdF9mb3Jf ZWFjaF9lbnRyeShtZGV2X2NsYXNzX2NvbXBhdCwgJmNsYXNzX2NvbXBhdF9saXN0LCBuZXh0KSB7 CisJCWlmIChtZGV2X2NsYXNzX2NvbXBhdC0+YnVzID09IGJ1cykKKwkJCXJldHVybiBtZGV2X2Ns YXNzX2NvbXBhdDsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHN0cnVjdCBjbGFz c19jb21wYXQgKm1kZXZfYWxsb2NfY2xhc3NfY29tcGF0KHN0cnVjdCBidXNfdHlwZSAqYnVzKQor eworCXN0cnVjdCBtZGV2X2NsYXNzX2NvbXBhdCAqbWRldl9jbGFzc19jb21wYXQgPSBnZXRfY2xh c3NfY29tcGF0KGJ1cyk7CisJY2hhciBjbGFzc19uYW1lWzY0XTsKKworCWlmIChtZGV2X2NsYXNz X2NvbXBhdCkKKwkJcmV0dXJuIG1kZXZfY2xhc3NfY29tcGF0LT5jbGFzc19jb21wYXQ7CisKKwlt ZGV2X2NsYXNzX2NvbXBhdCA9IGttYWxsb2Moc2l6ZW9mKCptZGV2X2NsYXNzX2NvbXBhdCksIEdG UF9LRVJORUwpOworCWlmICghbWRldl9jbGFzc19jb21wYXQpCisJCXJldHVybiBOVUxMOworCXNu cHJpbnRmKGNsYXNzX25hbWUsIDY0LCAiJXNfYnVzIiwgYnVzLT5uYW1lKTsKKwltZGV2X2NsYXNz X2NvbXBhdC0+Y2xhc3NfY29tcGF0ID0gY2xhc3NfY29tcGF0X3JlZ2lzdGVyKGNsYXNzX25hbWUp OworCWlmICghbWRldl9jbGFzc19jb21wYXQtPmNsYXNzX2NvbXBhdCkgeworCQlrZnJlZShtZGV2 X2NsYXNzX2NvbXBhdCk7CisJCXJldHVybiBOVUxMOworCX0KKwltZGV2X2NsYXNzX2NvbXBhdC0+ YnVzID0gYnVzOworCWxpc3RfYWRkKCZtZGV2X2NsYXNzX2NvbXBhdC0+bmV4dCwgJmNsYXNzX2Nv bXBhdF9saXN0KTsKKworCXJldHVybiBtZGV2X2NsYXNzX2NvbXBhdC0+Y2xhc3NfY29tcGF0Owor fQorCiAvKgogICogbWRldl9yZWdpc3Rlcl9kZXZpY2UgOiBSZWdpc3RlciBhIGRldmljZQogICog QGRldjogZGV2aWNlIHN0cnVjdHVyZSByZXByZXNlbnRpbmcgcGFyZW50IGRldmljZS4KQEAgLTEz OSwxMiArMTc4LDE0IEBAIHN0YXRpYyBpbnQgbWRldl9kZXZpY2VfcmVtb3ZlX2NiKHN0cnVjdCBk ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKICAqIEFkZCBkZXZpY2UgdG8gbGlzdCBvZiByZWdpc3Rl cmVkIHBhcmVudCBkZXZpY2VzLgogICogUmV0dXJucyBhIG5lZ2F0aXZlIHZhbHVlIG9uIGVycm9y LCBvdGhlcndpc2UgMC4KICAqLwotaW50IG1kZXZfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZp Y2UgKmRldiwgY29uc3Qgc3RydWN0IG1kZXZfcGFyZW50X29wcyAqb3BzKQoraW50IG1kZXZfcmVn aXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IG1kZXZfcGFyZW50 X29wcyAqb3BzLAorCQkJIHN0cnVjdCBidXNfdHlwZSAqYnVzKQogewogCWludCByZXQ7CiAJc3Ry dWN0IG1kZXZfcGFyZW50ICpwYXJlbnQ7CiAJY2hhciAqZW52X3N0cmluZyA9ICJNREVWX1NUQVRF PXJlZ2lzdGVyZWQiOwogCWNoYXIgKmVudnBbXSA9IHsgZW52X3N0cmluZywgTlVMTCB9OworCXN0 cnVjdCBjbGFzc19jb21wYXQgKmNsYXNzX2NvbXBhdDsKIAogCS8qIGNoZWNrIGZvciBtYW5kYXRv cnkgb3BzICovCiAJaWYgKCFvcHMgfHwgIW9wcy0+Y3JlYXRlIHx8ICFvcHMtPnJlbW92ZSB8fCAh b3BzLT5zdXBwb3J0ZWRfdHlwZV9ncm91cHMpCkBAIC0xNzUsMjAgKzIxNiwyMSBAQCBpbnQgbWRl dl9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3QgbWRldl9w YXJlbnRfb3BzICpvcHMpCiAKIAlwYXJlbnQtPmRldiA9IGRldjsKIAlwYXJlbnQtPm9wcyA9IG9w czsKKwlwYXJlbnQtPmJ1cyA9IGJ1czsKIAotCWlmICghbWRldl9idXNfY29tcGF0X2NsYXNzKSB7 Ci0JCW1kZXZfYnVzX2NvbXBhdF9jbGFzcyA9IGNsYXNzX2NvbXBhdF9yZWdpc3RlcigibWRldl9i dXMiKTsKLQkJaWYgKCFtZGV2X2J1c19jb21wYXRfY2xhc3MpIHsKLQkJCXJldCA9IC1FTk9NRU07 Ci0JCQlnb3RvIGFkZF9kZXZfZXJyOwotCQl9CisJbXV0ZXhfbG9jaygmY29tcGF0X2xpc3RfbG9j ayk7CisJY2xhc3NfY29tcGF0ID0gbWRldl9hbGxvY19jbGFzc19jb21wYXQoYnVzKTsKKwltdXRl eF91bmxvY2soJmNvbXBhdF9saXN0X2xvY2spOworCWlmICghY2xhc3NfY29tcGF0KSB7CisJCXJl dCA9IC1FTk9NRU07CisJCWdvdG8gYWRkX2Rldl9lcnI7CiAJfQogCiAJcmV0ID0gcGFyZW50X2Ny ZWF0ZV9zeXNmc19maWxlcyhwYXJlbnQpOwogCWlmIChyZXQpCiAJCWdvdG8gYWRkX2Rldl9lcnI7 CiAKLQlyZXQgPSBjbGFzc19jb21wYXRfY3JlYXRlX2xpbmsobWRldl9idXNfY29tcGF0X2NsYXNz LCBkZXYsIE5VTEwpOworCXJldCA9IGNsYXNzX2NvbXBhdF9jcmVhdGVfbGluayhjbGFzc19jb21w YXQsIGRldiwgTlVMTCk7CiAJaWYgKHJldCkKIAkJZGV2X3dhcm4oZGV2LCAiRmFpbGVkIHRvIGNy ZWF0ZSBjb21wYXRpYmlsaXR5IGNsYXNzIGxpbmtcbiIpOwogCkBAIC0yMjMsNiArMjY1LDcgQEAg dm9pZCBtZGV2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAlzdHJ1Y3Qg bWRldl9wYXJlbnQgKnBhcmVudDsKIAljaGFyICplbnZfc3RyaW5nID0gIk1ERVZfU1RBVEU9dW5y ZWdpc3RlcmVkIjsKIAljaGFyICplbnZwW10gPSB7IGVudl9zdHJpbmcsIE5VTEwgfTsKKwlzdHJ1 Y3QgbWRldl9jbGFzc19jb21wYXQgKm1kZXZfY2xhc3NfY29tcGF0OwogCiAJbXV0ZXhfbG9jaygm cGFyZW50X2xpc3RfbG9jayk7CiAJcGFyZW50ID0gX19maW5kX3BhcmVudF9kZXZpY2UoZGV2KTsK QEAgLTIzOCw5ICsyODEsMTMgQEAgdm9pZCBtZGV2X3VucmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBk ZXZpY2UgKmRldikKIAogCWRvd25fd3JpdGUoJnBhcmVudC0+dW5yZWdfc2VtKTsKIAotCWNsYXNz X2NvbXBhdF9yZW1vdmVfbGluayhtZGV2X2J1c19jb21wYXRfY2xhc3MsIGRldiwgTlVMTCk7CisJ bXV0ZXhfbG9jaygmY29tcGF0X2xpc3RfbG9jayk7CisJbWRldl9jbGFzc19jb21wYXQgPSBnZXRf Y2xhc3NfY29tcGF0KHBhcmVudC0+YnVzKTsKKwlXQVJOX09OKCFtZGV2X2NsYXNzX2NvbXBhdCk7 CisJY2xhc3NfY29tcGF0X3JlbW92ZV9saW5rKG1kZXZfY2xhc3NfY29tcGF0LT5jbGFzc19jb21w YXQsIGRldiwgTlVMTCk7CisJbXV0ZXhfdW5sb2NrKCZjb21wYXRfbGlzdF9sb2NrKTsKIAotCWRl dmljZV9mb3JfZWFjaF9jaGlsZChkZXYsIE5VTEwsIG1kZXZfZGV2aWNlX3JlbW92ZV9jYik7CisJ ZGV2aWNlX2Zvcl9lYWNoX2NoaWxkKGRldiwgcGFyZW50LT5idXMsIG1kZXZfZGV2aWNlX3JlbW92 ZV9jYik7CiAKIAlwYXJlbnRfcmVtb3ZlX3N5c2ZzX2ZpbGVzKHBhcmVudCk7CiAJdXBfd3JpdGUo JnBhcmVudC0+dW5yZWdfc2VtKTsKQEAgLTMxNCw3ICszNjEsNyBAQCBpbnQgbWRldl9kZXZpY2Vf Y3JlYXRlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCiAJZGV2aWNlX2luaXRpYWxpemUoJm1kZXYt PmRldik7CiAJbWRldi0+ZGV2LnBhcmVudCAgPSBkZXY7Ci0JbWRldi0+ZGV2LmJ1cyAgICAgPSAm bWRldl9idXNfdHlwZTsKKwltZGV2LT5kZXYuYnVzICAgICA9IHBhcmVudC0+YnVzOwogCW1kZXYt PmRldi5yZWxlYXNlID0gbWRldl9kZXZpY2VfcmVsZWFzZTsKIAlkZXZfc2V0X25hbWUoJm1kZXYt PmRldiwgIiVwVWwiLCB1dWlkKTsKIAltZGV2LT5kZXYuZ3JvdXBzID0gcGFyZW50LT5vcHMtPm1k ZXZfYXR0cl9ncm91cHM7CkBAIC00MDQsMjQgKzQ1MSwyOSBAQCBzdHJ1Y3QgZGV2aWNlICptZGV2 X2dldF9pb21tdV9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQogfQogRVhQT1JUX1NZTUJPTCht ZGV2X2dldF9pb21tdV9kZXZpY2UpOwogCi1zdGF0aWMgaW50IF9faW5pdCBtZGV2X2luaXQodm9p ZCkKK2ludCBtZGV2X3JlZ2lzdGVyX2J1cyhzdHJ1Y3QgYnVzX3R5cGUgKmJ1cykKIHsKLQlyZXR1 cm4gbWRldl9idXNfcmVnaXN0ZXIoKTsKKwlyZXR1cm4gYnVzX3JlZ2lzdGVyKGJ1cyk7CiB9CitF WFBPUlRfU1lNQk9MKG1kZXZfcmVnaXN0ZXJfYnVzKTsKIAotc3RhdGljIHZvaWQgX19leGl0IG1k ZXZfZXhpdCh2b2lkKQordm9pZCBtZGV2X3VucmVnaXN0ZXJfYnVzKHN0cnVjdCBidXNfdHlwZSAq YnVzKQogewotCWlmIChtZGV2X2J1c19jb21wYXRfY2xhc3MpCi0JCWNsYXNzX2NvbXBhdF91bnJl Z2lzdGVyKG1kZXZfYnVzX2NvbXBhdF9jbGFzcyk7Ci0KLQltZGV2X2J1c191bnJlZ2lzdGVyKCk7 CisJc3RydWN0IG1kZXZfY2xhc3NfY29tcGF0ICptZGV2X2NsYXNzX2NvbXBhdDsKKworCW11dGV4 X2xvY2soJmNvbXBhdF9saXN0X2xvY2spOworCW1kZXZfY2xhc3NfY29tcGF0ID0gZ2V0X2NsYXNz X2NvbXBhdChidXMpOworCWlmIChtZGV2X2NsYXNzX2NvbXBhdCkgeworCQlsaXN0X2RlbCgmbWRl dl9jbGFzc19jb21wYXQtPm5leHQpOworCQljbGFzc19jb21wYXRfdW5yZWdpc3RlcihtZGV2X2Ns YXNzX2NvbXBhdC0+Y2xhc3NfY29tcGF0KTsKKwkJa2ZyZWUobWRldl9jbGFzc19jb21wYXQpOwor CX0KKwlidXNfdW5yZWdpc3RlcihidXMpOworCW11dGV4X3VubG9jaygmY29tcGF0X2xpc3RfbG9j ayk7CiB9Ci0KLW1vZHVsZV9pbml0KG1kZXZfaW5pdCkKLW1vZHVsZV9leGl0KG1kZXZfZXhpdCkK K0VYUE9SVF9TWU1CT0wobWRldl91bnJlZ2lzdGVyX2J1cyk7CiAKIE1PRFVMRV9WRVJTSU9OKERS SVZFUl9WRVJTSU9OKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKIE1PRFVMRV9BVVRIT1Io RFJJVkVSX0FVVEhPUik7CiBNT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOwotTU9EVUxF X1NPRlRERVAoInBvc3Q6IHZmaW9fbWRldiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92ZmlvL21k ZXYvbWRldl9kcml2ZXIuYyBiL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfZHJpdmVyLmMKaW5kZXgg MGQzMjIzYWVlMjBiLi5jM2EyYWMwMjM3MTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmZpby9tZGV2 L21kZXZfZHJpdmVyLmMKKysrIGIvZHJpdmVycy92ZmlvL21kZXYvbWRldl9kcml2ZXIuYwpAQCAt MTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4 L2lvbW11Lmg+CiAjaW5jbHVkZSA8bGludXgvbWRldi5oPgorI2luY2x1ZGUgPGxpbnV4L21kZXZf dmZpby5oPgogCiAjaW5jbHVkZSAibWRldl9wcml2YXRlLmgiCiAKQEAgLTM3LDcgKzM4LDcgQEAg c3RhdGljIHZvaWQgbWRldl9kZXRhY2hfaW9tbXUoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2KQog CWRldl9pbmZvKCZtZGV2LT5kZXYsICJNREVWOiBkZXRhY2hpbmcgaW9tbXVcbiIpOwogfQogCi1z dGF0aWMgaW50IG1kZXZfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KQoraW50IG1kZXZfcHJvYmUo c3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBtZGV2X2RyaXZlciAqZHJ2ID0gdG9fbWRl dl9kcml2ZXIoZGV2LT5kcml2ZXIpOwogCXN0cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IHRvX21k ZXZfZGV2aWNlKGRldik7CkBAIC01NSw4ICs1Niw5IEBAIHN0YXRpYyBpbnQgbWRldl9wcm9iZShz dHJ1Y3QgZGV2aWNlICpkZXYpCiAKIAlyZXR1cm4gcmV0OwogfQorRVhQT1JUX1NZTUJPTChtZGV2 X3Byb2JlKTsKIAotc3RhdGljIGludCBtZGV2X3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCitp bnQgbWRldl9yZW1vdmUoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBtZGV2X2RyaXZl ciAqZHJ2ID0gdG9fbWRldl9kcml2ZXIoZGV2LT5kcml2ZXIpOwogCXN0cnVjdCBtZGV2X2Rldmlj ZSAqbWRldiA9IHRvX21kZXZfZGV2aWNlKGRldik7CkBAIC02OCwyNiArNzAsMjIgQEAgc3RhdGlj IGludCBtZGV2X3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAKIAlyZXR1cm4gMDsKIH0KLQot c3RydWN0IGJ1c190eXBlIG1kZXZfYnVzX3R5cGUgPSB7Ci0JLm5hbWUJCT0gIm1kZXYiLAotCS5w cm9iZQkJPSBtZGV2X3Byb2JlLAotCS5yZW1vdmUJCT0gbWRldl9yZW1vdmUsCi19OwotRVhQT1JU X1NZTUJPTF9HUEwobWRldl9idXNfdHlwZSk7CitFWFBPUlRfU1lNQk9MKG1kZXZfcmVtb3ZlKTsK IAogLyoqCiAgKiBtZGV2X3JlZ2lzdGVyX2RyaXZlciAtIHJlZ2lzdGVyIGEgbmV3IE1ERVYgZHJp dmVyCiAgKiBAZHJ2OiB0aGUgZHJpdmVyIHRvIHJlZ2lzdGVyCiAgKiBAb3duZXI6IG1vZHVsZSBv d25lciBvZiBkcml2ZXIgdG8gYmUgcmVnaXN0ZXJlZAorICogQGJ1czogYnV0IHRoYXQgdGhlIGRy aXZlciB3YW50cyB0byBhdHRhY2gKICAqCiAgKiBSZXR1cm5zIGEgbmVnYXRpdmUgdmFsdWUgb24g ZXJyb3IsIG90aGVyd2lzZSAwLgogICoqLwotaW50IG1kZXZfcmVnaXN0ZXJfZHJpdmVyKHN0cnVj dCBtZGV2X2RyaXZlciAqZHJ2LCBzdHJ1Y3QgbW9kdWxlICpvd25lcikKK2ludCBtZGV2X3JlZ2lz dGVyX2RyaXZlcihzdHJ1Y3QgbWRldl9kcml2ZXIgKmRydiwgc3RydWN0IG1vZHVsZSAqb3duZXIs CisJCQkgc3RydWN0IGJ1c190eXBlICpidXMpCiB7CiAJLyogaW5pdGlhbGl6ZSBjb21tb24gZHJp dmVyIGZpZWxkcyAqLwogCWRydi0+ZHJpdmVyLm5hbWUgPSBkcnYtPm5hbWU7Ci0JZHJ2LT5kcml2 ZXIuYnVzID0gJm1kZXZfYnVzX3R5cGU7CisJZHJ2LT5kcml2ZXIuYnVzID0gYnVzOwogCWRydi0+ ZHJpdmVyLm93bmVyID0gb3duZXI7CiAKIAkvKiByZWdpc3RlciB3aXRoIGNvcmUgKi8KQEAgLTEw NSwxMiArMTAzLDMgQEAgdm9pZCBtZGV2X3VucmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCBtZGV2X2Ry aXZlciAqZHJ2KQogfQogRVhQT1JUX1NZTUJPTChtZGV2X3VucmVnaXN0ZXJfZHJpdmVyKTsKIAot aW50IG1kZXZfYnVzX3JlZ2lzdGVyKHZvaWQpCi17Ci0JcmV0dXJuIGJ1c19yZWdpc3RlcigmbWRl dl9idXNfdHlwZSk7Ci19Ci0KLXZvaWQgbWRldl9idXNfdW5yZWdpc3Rlcih2b2lkKQotewotCWJ1 c191bnJlZ2lzdGVyKCZtZGV2X2J1c190eXBlKTsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZp by9tZGV2L21kZXZfcHJpdmF0ZS5oIGIvZHJpdmVycy92ZmlvL21kZXYvbWRldl9wcml2YXRlLmgK aW5kZXggN2Q5MjI5NTBjYWFmLi4yOThkN2EwZjQ5M2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmZp by9tZGV2L21kZXZfcHJpdmF0ZS5oCisrKyBiL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfcHJpdmF0 ZS5oCkBAIC0xMCwxMiArMTAsMTAgQEAKICNpZm5kZWYgTURFVl9QUklWQVRFX0gKICNkZWZpbmUg TURFVl9QUklWQVRFX0gKIAotaW50ICBtZGV2X2J1c19yZWdpc3Rlcih2b2lkKTsKLXZvaWQgbWRl dl9idXNfdW5yZWdpc3Rlcih2b2lkKTsKLQogc3RydWN0IG1kZXZfcGFyZW50IHsKIAlzdHJ1Y3Qg ZGV2aWNlICpkZXY7CiAJY29uc3Qgc3RydWN0IG1kZXZfcGFyZW50X29wcyAqb3BzOworCXN0cnVj dCBidXNfdHlwZSAqYnVzOwogCXN0cnVjdCBrcmVmIHJlZjsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG5l eHQ7CiAJc3RydWN0IGtzZXQgKm1kZXZfdHlwZXNfa3NldDsKQEAgLTM1LDggKzMzLDE1IEBAIHN0 cnVjdCBtZGV2X2RldmljZSB7CiAJYm9vbCBhY3RpdmU7CiB9OwogCitzdHJ1Y3QgbWRldl9jbGFz c19jb21wYXQgeworCXN0cnVjdCBjbGFzc19jb21wYXQgKmNsYXNzX2NvbXBhdDsKKwlzdHJ1Y3Qg YnVzX3R5cGUgKmJ1czsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG5leHQ7Cit9OworCisKICNkZWZpbmUg dG9fbWRldl9kZXZpY2UoZGV2KQljb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgbWRldl9kZXZpY2Us IGRldikKLSNkZWZpbmUgZGV2X2lzX21kZXYoZCkJCSgoZCktPmJ1cyA9PSAmbWRldl9idXNfdHlw ZSkKKyNkZWZpbmUgZGV2X2lzX21kZXYoZCwgYnVzKQkoKGQpLT5idXMgPT0gYnVzKQogCiBzdHJ1 Y3QgbWRldl90eXBlIHsKIAlzdHJ1Y3Qga29iamVjdCBrb2JqOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy92ZmlvL21kZXYvbWRldl92ZmlvLmMgYi9kcml2ZXJzL3ZmaW8vbWRldi9tZGV2X3ZmaW8uYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmY5ZDExOTFiOTk4MgotLS0g L2Rldi9udWxsCisrKyBiL2RyaXZlcnMvdmZpby9tZGV2L21kZXZfdmZpby5jCkBAIC0wLDAgKzEs NDggQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKKyNpbmNsdWRl IDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC91dWlkLmg+CisjaW5jbHVkZSA8bGlu dXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbWRldl92ZmlvLmg+CisKKyNkZWZpbmUgRFJJ VkVSX1ZFUlNJT04JCSIwLjEiCisjZGVmaW5lIERSSVZFUl9BVVRIT1IJCSJKYXNvbiBXYW5nIgor I2RlZmluZSBEUklWRVJfREVTQwkJIk1lZGlhdGVkIFZGSU8gYnVzIgorCitzdHJ1Y3QgYnVzX3R5 cGUgbWRldl92ZmlvX2J1c190eXBlID0geworCS5uYW1lCQk9ICJtZGV2IiwKKwkucHJvYmUJCT0g bWRldl9wcm9iZSwKKwkucmVtb3ZlCQk9IG1kZXZfcmVtb3ZlLAorfTsKK0VYUE9SVF9TWU1CT0wo bWRldl92ZmlvX2J1c190eXBlKTsKKworc3RhdGljIGludCBfX2luaXQgbWRldl9pbml0KHZvaWQp Cit7CisJcmV0dXJuIG1kZXZfcmVnaXN0ZXJfYnVzKCZtZGV2X3ZmaW9fYnVzX3R5cGUpOworfQor CitzdGF0aWMgdm9pZCBfX2V4aXQgbWRldl9leGl0KHZvaWQpCit7CisJbWRldl91bnJlZ2lzdGVy X2J1cygmbWRldl92ZmlvX2J1c190eXBlKTsKK30KKworaW50IG1kZXZfdmZpb19yZWdpc3Rlcl9k ZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2LAorCQkJICAgICAgY29uc3Qgc3RydWN0IG1kZXZfcGFy ZW50X29wcyAqb3BzKQoreworCXJldHVybiBtZGV2X3JlZ2lzdGVyX2RldmljZShkZXYsIG9wcywg Jm1kZXZfdmZpb19idXNfdHlwZSk7Cit9CitFWFBPUlRfU1lNQk9MKG1kZXZfdmZpb19yZWdpc3Rl cl9kZXZpY2UpOworCit2b2lkIG1kZXZfdmZpb191bnJlZ2lzdGVyX2RldmljZShzdHJ1Y3QgZGV2 aWNlICpkZXYpCit7CisJcmV0dXJuIG1kZXZfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2KTsKK30KK0VY UE9SVF9TWU1CT0wobWRldl92ZmlvX3VucmVnaXN0ZXJfZGV2aWNlKTsKKworbW9kdWxlX2luaXQo bWRldl9pbml0KQorbW9kdWxlX2V4aXQobWRldl9leGl0KQorCitNT0RVTEVfVkVSU0lPTihEUklW RVJfVkVSU0lPTik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CitNT0RVTEVfQVVUSE9SKERS SVZFUl9BVVRIT1IpOworTU9EVUxFX0RFU0NSSVBUSU9OKERSSVZFUl9ERVNDKTsKK01PRFVMRV9T T0ZUREVQKCJwb3N0OiB2ZmlvX21kZXYiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmZpby9tZGV2 L3ZmaW9fbWRldi5jIGIvZHJpdmVycy92ZmlvL21kZXYvdmZpb19tZGV2LmMKaW5kZXggMzA5NjRh NGUwYTI4Li4xNmU5ZWJlMzBkNGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmZpby9tZGV2L3ZmaW9f bWRldi5jCisrKyBiL2RyaXZlcnMvdmZpby9tZGV2L3ZmaW9fbWRldi5jCkBAIC0xMyw3ICsxMyw3 IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgog I2luY2x1ZGUgPGxpbnV4L3ZmaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9tZGV2Lmg+CisjaW5jbHVk ZSA8bGludXgvbWRldl92ZmlvLmg+CiAKICNpbmNsdWRlICJtZGV2X3ByaXZhdGUuaCIKIApAQCAt MTI4LDcgKzEyOCw4IEBAIHN0YXRpYyBzdHJ1Y3QgbWRldl9kcml2ZXIgdmZpb19tZGV2X2RyaXZl ciA9IHsKIAogc3RhdGljIGludCBfX2luaXQgdmZpb19tZGV2X2luaXQodm9pZCkKIHsKLQlyZXR1 cm4gbWRldl9yZWdpc3Rlcl9kcml2ZXIoJnZmaW9fbWRldl9kcml2ZXIsIFRISVNfTU9EVUxFKTsK KwlyZXR1cm4gbWRldl9yZWdpc3Rlcl9kcml2ZXIoJnZmaW9fbWRldl9kcml2ZXIsIFRISVNfTU9E VUxFLAorCQkJCSAgICAmbWRldl92ZmlvX2J1c190eXBlKTsKIH0KIAogc3RhdGljIHZvaWQgX19l eGl0IHZmaW9fbWRldl9leGl0KHZvaWQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZmaW8vdmZpb19p b21tdV90eXBlMS5jIGIvZHJpdmVycy92ZmlvL3ZmaW9faW9tbXVfdHlwZTEuYwppbmRleCBkODY0 Mjc3ZWExNmYuLmYzNTUyM2Y4MjJlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy92ZmlvL3ZmaW9faW9t bXVfdHlwZTEuYworKysgYi9kcml2ZXJzL3ZmaW8vdmZpb19pb21tdV90eXBlMS5jCkBAIC0zNCw3 ICszNCw3IEBACiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3Zm aW8uaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KLSNpbmNsdWRlIDxsaW51eC9tZGV2 Lmg+CisjaW5jbHVkZSA8bGludXgvbWRldl92ZmlvLmg+CiAjaW5jbHVkZSA8bGludXgvbm90aWZp ZXIuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtaW9tbXUuaD4KICNpbmNsdWRlIDxsaW51eC9pcnFk b21haW4uaD4KQEAgLTE0MDUsMTAgKzE0MDUsMTAgQEAgc3RhdGljIGJvb2wgdmZpb19idXNfaXNf bWRldihzdHJ1Y3QgYnVzX3R5cGUgKmJ1cykKIAlzdHJ1Y3QgYnVzX3R5cGUgKm1kZXZfYnVzOwog CWJvb2wgcmV0ID0gZmFsc2U7CiAKLQltZGV2X2J1cyA9IHN5bWJvbF9nZXQobWRldl9idXNfdHlw ZSk7CisJbWRldl9idXMgPSBzeW1ib2xfZ2V0KG1kZXZfdmZpb19idXNfdHlwZSk7CiAJaWYgKG1k ZXZfYnVzKSB7CiAJCXJldCA9IChidXMgPT0gbWRldl9idXMpOwotCQlzeW1ib2xfcHV0KG1kZXZf YnVzX3R5cGUpOworCQlzeW1ib2xfcHV0KG1kZXZfdmZpb19idXNfdHlwZSk7CiAJfQogCiAJcmV0 dXJuIHJldDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWRldi5oIGIvaW5jbHVkZS9saW51 eC9tZGV2LmgKaW5kZXggMGNlMzBjYTc4ZGIwLi5lZTI0MTAyNDZiM2MgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbGludXgvbWRldi5oCisrKyBiL2luY2x1ZGUvbGludXgvbWRldi5oCkBAIC0xMzMsMTYg KzEzMywyMiBAQCB2b2lkICptZGV2X2dldF9kcnZkYXRhKHN0cnVjdCBtZGV2X2RldmljZSAqbWRl dik7CiB2b2lkIG1kZXZfc2V0X2RydmRhdGEoc3RydWN0IG1kZXZfZGV2aWNlICptZGV2LCB2b2lk ICpkYXRhKTsKIGNvbnN0IGd1aWRfdCAqbWRldl91dWlkKHN0cnVjdCBtZGV2X2RldmljZSAqbWRl dik7CiAKLWV4dGVybiBzdHJ1Y3QgYnVzX3R5cGUgbWRldl9idXNfdHlwZTsKLQotaW50IG1kZXZf cmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0IG1kZXZfcGFy ZW50X29wcyAqb3BzKTsKK2ludCBtZGV2X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgZGV2aWNlICpk ZXYsIGNvbnN0IHN0cnVjdCBtZGV2X3BhcmVudF9vcHMgKm9wcywKKwkJCSBzdHJ1Y3QgYnVzX3R5 cGUgKmJ1cyk7CiB2b2lkIG1kZXZfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2 KTsKIAotaW50IG1kZXZfcmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCBtZGV2X2RyaXZlciAqZHJ2LCBz dHJ1Y3QgbW9kdWxlICpvd25lcik7CitpbnQgbWRldl9yZWdpc3Rlcl9kcml2ZXIoc3RydWN0IG1k ZXZfZHJpdmVyICpkcnYsIHN0cnVjdCBtb2R1bGUgKm93bmVyLAorCQkJIHN0cnVjdCBidXNfdHlw ZSAqYnVzKTsKIHZvaWQgbWRldl91bnJlZ2lzdGVyX2RyaXZlcihzdHJ1Y3QgbWRldl9kcml2ZXIg KmRydik7CiAKIHN0cnVjdCBkZXZpY2UgKm1kZXZfcGFyZW50X2RldihzdHJ1Y3QgbWRldl9kZXZp Y2UgKm1kZXYpOwogc3RydWN0IGRldmljZSAqbWRldl9kZXYoc3RydWN0IG1kZXZfZGV2aWNlICpt ZGV2KTsKLXN0cnVjdCBtZGV2X2RldmljZSAqbWRldl9mcm9tX2RldihzdHJ1Y3QgZGV2aWNlICpk ZXYpOworc3RydWN0IG1kZXZfZGV2aWNlICptZGV2X2Zyb21fZGV2KHN0cnVjdCBkZXZpY2UgKmRl diwgc3RydWN0IGJ1c190eXBlICpidXMpOworCitpbnQgbWRldl9wcm9iZShzdHJ1Y3QgZGV2aWNl ICpkZXYpOworaW50IG1kZXZfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldik7CisKK2ludCBtZGV2 X3JlZ2lzdGVyX2J1cyhzdHJ1Y3QgYnVzX3R5cGUgKmJ1cyk7Cit2b2lkIG1kZXZfdW5yZWdpc3Rl cl9idXMoc3RydWN0IGJ1c190eXBlICpidXMpOwogCiAjZW5kaWYgLyogTURFVl9IICovCmRpZmYg LS1naXQgYS9pbmNsdWRlL2xpbnV4L21kZXZfdmZpby5oIGIvaW5jbHVkZS9saW51eC9tZGV2X3Zm aW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ0NmE3NTM3ZTNm YgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvbWRldl92ZmlvLmgKQEAgLTAsMCAr MSwyNSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAqLworLyoK KyAqIFZGSU8gTWVkaWF0ZWQgZGV2aWNlIGRlZmluaXRpb24KKyAqCisgKiBDb3B5cmlnaHQgKGMp IDIwMTksIFJlZCBIYXQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgQXV0aG9yOiBKYXNv biBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPgorICovCisKKyNpZm5kZWYgTURFVl9WRklPX0gK KyNkZWZpbmUgTURFVl9WRklPX0gKKworI2luY2x1ZGUgPGxpbnV4L21kZXYuaD4KKworZXh0ZXJu IHN0cnVjdCBidXNfdHlwZSBtZGV2X3ZmaW9fYnVzX3R5cGU7CisKK2ludCBtZGV2X3ZmaW9fcmVn aXN0ZXJfZGV2aWNlKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBt ZGV2X3BhcmVudF9vcHMgKm9wcyk7Cit2b2lkIG1kZXZfdmZpb191bnJlZ2lzdGVyX2RldmljZShz dHJ1Y3QgZGV2aWNlICpkZXYpOworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBtZGV2X2RldmljZSAq dmZpb19tZGV2X2Zyb21fZGV2KHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gbWRldl9m cm9tX2RldihkZXYsICZtZGV2X3ZmaW9fYnVzX3R5cGUpOworfQorCisjZW5kaWYKZGlmZiAtLWdp dCBhL3NhbXBsZXMvdmZpby1tZGV2L21ib2Nocy5jIGIvc2FtcGxlcy92ZmlvLW1kZXYvbWJvY2hz LmMKaW5kZXggYWM1YzhjMTdiMWZmLi5mMDQxZDU4MzI0YjEgMTAwNjQ0Ci0tLSBhL3NhbXBsZXMv dmZpby1tZGV2L21ib2Nocy5jCisrKyBiL3NhbXBsZXMvdmZpby1tZGV2L21ib2Nocy5jCkBAIC0y OSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8bGludXgvdmZpby5oPgogI2luY2x1ZGUgPGxpbnV4L2lv bW11Lmg+CiAjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KLSNpbmNsdWRlIDxsaW51eC9tZGV2Lmg+ CisjaW5jbHVkZSA8bGludXgvbWRldl92ZmlvLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAj aW5jbHVkZSA8bGludXgvZG1hLWJ1Zi5oPgogI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KQEAg LTEzMzIsNyArMTMzMiw3IEBAIHN0YXRpYyBzc2l6ZV90CiBtZW1vcnlfc2hvdyhzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCSAgICBjaGFyICpidWYp CiB7Ci0Jc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9mcm9tX2RldihkZXYpOworCXN0 cnVjdCBtZGV2X2RldmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9tX2RldihkZXYpOwogCXN0cnVj dCBtZGV2X3N0YXRlICptZGV2X3N0YXRlID0gbWRldl9nZXRfZHJ2ZGF0YShtZGV2KTsKIAogCXJl dHVybiBzcHJpbnRmKGJ1ZiwgIiVkIE1CXG4iLCBtZGV2X3N0YXRlLT50eXBlLT5tYnl0ZXMpOwpA QCAtMTQ2OCw3ICsxNDY4LDcgQEAgc3RhdGljIGludCBfX2luaXQgbWJvY2hzX2Rldl9pbml0KHZv aWQpCiAJaWYgKHJldCkKIAkJZ290byBmYWlsZWQyOwogCi0JcmV0ID0gbWRldl9yZWdpc3Rlcl9k ZXZpY2UoJm1ib2Noc19kZXYsICZtZGV2X2ZvcHMpOworCXJldCA9IG1kZXZfdmZpb19yZWdpc3Rl cl9kZXZpY2UoJm1ib2Noc19kZXYsICZtZGV2X2ZvcHMpOwogCWlmIChyZXQpCiAJCWdvdG8gZmFp bGVkMzsKIApAQCAtMTQ4Nyw3ICsxNDg3LDcgQEAgc3RhdGljIGludCBfX2luaXQgbWJvY2hzX2Rl dl9pbml0KHZvaWQpCiBzdGF0aWMgdm9pZCBfX2V4aXQgbWJvY2hzX2Rldl9leGl0KHZvaWQpCiB7 CiAJbWJvY2hzX2Rldi5idXMgPSBOVUxMOwotCW1kZXZfdW5yZWdpc3Rlcl9kZXZpY2UoJm1ib2No c19kZXYpOworCW1kZXZfdmZpb191bnJlZ2lzdGVyX2RldmljZSgmbWJvY2hzX2Rldik7CiAKIAlk ZXZpY2VfdW5yZWdpc3RlcigmbWJvY2hzX2Rldik7CiAJY2Rldl9kZWwoJm1ib2Noc19jZGV2KTsK ZGlmZiAtLWdpdCBhL3NhbXBsZXMvdmZpby1tZGV2L21kcHkuYyBiL3NhbXBsZXMvdmZpby1tZGV2 L21kcHkuYwppbmRleCBjYzg2YmY2NTY2ZTQuLjljMzJmZTM3OTVhZCAxMDA2NDQKLS0tIGEvc2Ft cGxlcy92ZmlvLW1kZXYvbWRweS5jCisrKyBiL3NhbXBsZXMvdmZpby1tZGV2L21kcHkuYwpAQCAt MjUsNyArMjUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3ZmaW8uaD4KICNpbmNsdWRlIDxsaW51eC9p b21tdS5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgvbWRldi5o PgorI2luY2x1ZGUgPGxpbnV4L21kZXZfdmZpby5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgog I2luY2x1ZGUgPGRybS9kcm1fZm91cmNjLmg+CiAjaW5jbHVkZSAibWRweS1kZWZzLmgiCkBAIC02 MzksNyArNjM5LDcgQEAgc3RhdGljIHNzaXplX3QKIHJlc29sdXRpb25fc2hvdyhzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAogCQljaGFyICpidWYpCiB7 Ci0Jc3RydWN0IG1kZXZfZGV2aWNlICptZGV2ID0gbWRldl9mcm9tX2RldihkZXYpOworCXN0cnVj dCBtZGV2X2RldmljZSAqbWRldiA9IHZmaW9fbWRldl9mcm9tX2RldihkZXYpOwogCXN0cnVjdCBt ZGV2X3N0YXRlICptZGV2X3N0YXRlID0gbWRldl9nZXRfZHJ2ZGF0YShtZGV2KTsKIAogCXJldHVy biBzcHJpbnRmKGJ1ZiwgIiVkeCVkXG4iLApAQCAtNzc1LDcgKzc3NSw3IEBAIHN0YXRpYyBpbnQg X19pbml0IG1kcHlfZGV2X2luaXQodm9pZCkKIAlpZiAocmV0KQogCQlnb3RvIGZhaWxlZDI7CiAK LQlyZXQgPSBtZGV2X3JlZ2lzdGVyX2RldmljZSgmbWRweV9kZXYsICZtZGV2X2ZvcHMpOworCXJl dCA9IG1kZXZfdmZpb19yZWdpc3Rlcl9kZXZpY2UoJm1kcHlfZGV2LCAmbWRldl9mb3BzKTsKIAlp ZiAocmV0KQogCQlnb3RvIGZhaWxlZDM7CiAKQEAgLTc5NCw3ICs3OTQsNyBAQCBzdGF0aWMgaW50 IF9faW5pdCBtZHB5X2Rldl9pbml0KHZvaWQpCiBzdGF0aWMgdm9pZCBfX2V4aXQgbWRweV9kZXZf ZXhpdCh2b2lkKQogewogCW1kcHlfZGV2LmJ1cyA9IE5VTEw7Ci0JbWRldl91bnJlZ2lzdGVyX2Rl dmljZSgmbWRweV9kZXYpOworCW1kZXZfdmZpb191bnJlZ2lzdGVyX2RldmljZSgmbWRweV9kZXYp OwogCiAJZGV2aWNlX3VucmVnaXN0ZXIoJm1kcHlfZGV2KTsKIAljZGV2X2RlbCgmbWRweV9jZGV2 KTsKZGlmZiAtLWdpdCBhL3NhbXBsZXMvdmZpby1tZGV2L210dHkuYyBiL3NhbXBsZXMvdmZpby1t ZGV2L210dHkuYwppbmRleCBjZTg0YTMwMGE0ZGEuLjZlNGU2MzM5ZTBmMSAxMDA2NDQKLS0tIGEv c2FtcGxlcy92ZmlvLW1kZXYvbXR0eS5jCisrKyBiL3NhbXBsZXMvdmZpby1tZGV2L210dHkuYwpA QCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CiAjaW5jbHVkZSA8bGlu dXgvY3R5cGUuaD4KICNpbmNsdWRlIDxsaW51eC9maWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbWRl di5oPgorI2luY2x1ZGUgPGxpbnV4L21kZXZfdmZpby5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaS5o PgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgogI2luY2x1ZGUgPHVhcGkvbGludXgvc2VyaWFs X3JlZy5oPgpAQCAtMTI4NSw3ICsxMjg1LDcgQEAgc3RhdGljIHNzaXplX3QKIHNhbXBsZV9tZGV2 X2Rldl9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0 dHIsCiAJCSAgICAgY2hhciAqYnVmKQogewotCWlmIChtZGV2X2Zyb21fZGV2KGRldikpCisJaWYg KHZmaW9fbWRldl9mcm9tX2RldihkZXYpKQogCQlyZXR1cm4gc3ByaW50ZihidWYsICJUaGlzIGlz IE1ERVYgJXNcbiIsIGRldl9uYW1lKGRldikpOwogCiAJcmV0dXJuIHNwcmludGYoYnVmLCAiXG4i KTsKQEAgLTE0NDUsNyArMTQ0NSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IG10dHlfZGV2X2luaXQo dm9pZCkKIAlpZiAocmV0KQogCQlnb3RvIGZhaWxlZDI7CiAKLQlyZXQgPSBtZGV2X3JlZ2lzdGVy X2RldmljZSgmbXR0eV9kZXYuZGV2LCAmbWRldl9mb3BzKTsKKwlyZXQgPSBtZGV2X3ZmaW9fcmVn aXN0ZXJfZGV2aWNlKCZtdHR5X2Rldi5kZXYsICZtZGV2X2ZvcHMpOwogCWlmIChyZXQpCiAJCWdv dG8gZmFpbGVkMzsKIApAQCAtMTQ3MSw3ICsxNDcxLDcgQEAgc3RhdGljIGludCBfX2luaXQgbXR0 eV9kZXZfaW5pdCh2b2lkKQogc3RhdGljIHZvaWQgX19leGl0IG10dHlfZGV2X2V4aXQodm9pZCkK IHsKIAltdHR5X2Rldi5kZXYuYnVzID0gTlVMTDsKLQltZGV2X3VucmVnaXN0ZXJfZGV2aWNlKCZt dHR5X2Rldi5kZXYpOworCW1kZXZfdmZpb191bnJlZ2lzdGVyX2RldmljZSgmbXR0eV9kZXYuZGV2 KTsKIAogCWRldmljZV91bnJlZ2lzdGVyKCZtdHR5X2Rldi5kZXYpOwogCWlkcl9kZXN0cm95KCZt dHR5X2Rldi52ZF9pZHIpOwotLSAKMi4xOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng=