From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christoph Hellwig Subject: [PATCH 24/27] block: remove QUEUE_FLAG_DISCARD Date: Fri, 15 Apr 2022 06:52:55 +0200 Message-ID: <20220415045258.199825-25-hch@lst.de> References: <20220415045258.199825-1-hch@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20220415045258.199825-1-hch@lst.de> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dm-devel-bounces@redhat.com Sender: "dm-devel" To: Jens Axboe Cc: jfs-discussion@lists.sourceforge.net, =?UTF-8?q?Jan=20H=C3=B6ppner?= , linux-nvme@lists.infradead.org, virtualization@lists.linux-foundation.org, linux-mm@kvack.org, dm-devel@redhat.com, target-devel@vger.kernel.org, linux-mtd@lists.infradead.org, drbd-dev@lists.linbit.com, linux-s390@vger.kernel.org, linux-nilfs@vger.kernel.org, linux-scsi@vger.kernel.org, cluster-devel@redhat.com, xen-devel@lists.xenproject.org, linux-ext4@vger.kernel.org, linux-um@lists.infradead.org, nbd@other.debian.org, linux-block@vger.kernel.org, linux-bcache@vger.kernel.org, David Sterba , ceph-devel@vger.kernel.org, Coly Li , linux-raid@vger.kernel.org, "Martin K . Petersen" , linux-mmc@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-xfs@vger.kernel.org, =?UTF-8?q?Christoph=20B=C3=B6hmwalder?= SnVzdCB1c2UgYSBub24temVybyBtYXhfZGlzY2FyZF9zZWN0b3JzIGFzIGFuIGluZGljYXRvciBm b3IgZGlzY2FyZApzdXBwb3J0LCBzaW1pbGFyIHRvIHdoYXQgaXMgZG9uZSBmb3Igd3JpdGUgemVy b2VzLgoKVGhlIG9ubHkgcGxhY2VzIHdoZXJlIG5lZWRzIHNwZWNpYWwgYXR0ZW50aW9uIGlzIHRo ZSBSQUlENSBkcml2ZXIsCndoaWNoIG11c3QgY2xlYXIgZGlzY2FyZCBzdXBwb3J0IGZvciBzZWN1 cml0eSByZWFzb25zIGJ5IGRlZmF1bHQsCmV2ZW4gaWYgdGhlIGRlZmF1bHQgc3RhY2tpbmcgcnVs ZXMgd291bGQgYWxsb3cgZm9yIGl0LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIEhlbGx3aWcg PGhjaEBsc3QuZGU+ClJldmlld2VkLWJ5OiBNYXJ0aW4gSy4gUGV0ZXJzZW4gPG1hcnRpbi5wZXRl cnNlbkBvcmFjbGUuY29tPgpBY2tlZC1ieTogQ2hyaXN0b3BoIELDtmhtd2FsZGVyIDxjaHJpc3Rv cGguYm9laG13YWxkZXJAbGluYml0LmNvbT4gW2RyYmRdCkFja2VkLWJ5OiBKYW4gSMO2cHBuZXIg PGhvZXBwbmVyQGxpbnV4LmlibS5jb20+IFtzMzkwXQpBY2tlZC1ieTogQ29seSBMaSA8Y29seWxp QHN1c2UuZGU+IFtiY2FjaGVdCkFja2VkLWJ5OiBEYXZpZCBTdGVyYmEgPGRzdGVyYmFAc3VzZS5j b20+IFtidHJmc10KLS0tCiBhcmNoL3VtL2RyaXZlcnMvdWJkX2tlcm4uYyAgICAgICAgICB8ICAy IC0tCiBibG9jay9ibGstY29yZS5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBibG9jay9i bGstbGliLmMgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBibG9jay9ibGstbXEtZGVidWdm cy5jICAgICAgICAgICAgICB8ICAxIC0KIGJsb2NrL2lvY3RsLmMgICAgICAgICAgICAgICAgICAg ICAgIHwgIDMgKy0tCiBkcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9tYWluLmMgICAgICB8ICAyICst CiBkcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9ubC5jICAgICAgICB8IDE5ICsrLS0tLS0tLS0tLS0t LS0tLS0KIGRyaXZlcnMvYmxvY2svZHJiZC9kcmJkX3JlY2VpdmVyLmMgIHwgIDMgKy0tCiBkcml2 ZXJzL2Jsb2NrL2xvb3AuYyAgICAgICAgICAgICAgICB8IDExICsrKy0tLS0tLS0tCiBkcml2ZXJz L2Jsb2NrL25iZC5jICAgICAgICAgICAgICAgICB8ICA1ICstLS0tCiBkcml2ZXJzL2Jsb2NrL251 bGxfYmxrL21haW4uYyAgICAgICB8ICAxIC0KIGRyaXZlcnMvYmxvY2svcmJkLmMgICAgICAgICAg ICAgICAgIHwgIDEgLQogZHJpdmVycy9ibG9jay9ybmJkL3JuYmQtY2x0LmMgICAgICAgfCAgMiAt LQogZHJpdmVycy9ibG9jay9ybmJkL3JuYmQtc3J2LWRldi5oICAgfCAgMyAtLS0KIGRyaXZlcnMv YmxvY2svdmlydGlvX2Jsay5jICAgICAgICAgIHwgIDIgLS0KIGRyaXZlcnMvYmxvY2sveGVuLWJs a2JhY2sveGVuYnVzLmMgIHwgIDIgKy0KIGRyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMgICAg ICAgIHwgIDMgKy0tCiBkcml2ZXJzL2Jsb2NrL3pyYW0venJhbV9kcnYuYyAgICAgICB8ICAxIC0K IGRyaXZlcnMvbWQvYmNhY2hlL3JlcXVlc3QuYyAgICAgICAgIHwgIDQgKystLQogZHJpdmVycy9t ZC9iY2FjaGUvc3VwZXIuYyAgICAgICAgICAgfCAgMyArLS0KIGRyaXZlcnMvbWQvYmNhY2hlL3N5 c2ZzLmMgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbWQvZG0tY2FjaGUtdGFyZ2V0LmMgICAg ICAgIHwgIDkgKy0tLS0tLS0tCiBkcml2ZXJzL21kL2RtLWNsb25lLXRhcmdldC5jICAgICAgICB8 ICA5ICstLS0tLS0tLQogZHJpdmVycy9tZC9kbS1sb2ctd3JpdGVzLmMgICAgICAgICAgfCAgMyAr LS0KIGRyaXZlcnMvbWQvZG0tcmFpZC5jICAgICAgICAgICAgICAgIHwgIDkgKystLS0tLS0tCiBk cml2ZXJzL21kL2RtLXRhYmxlLmMgICAgICAgICAgICAgICB8ICA5ICsrLS0tLS0tLQogZHJpdmVy cy9tZC9kbS10aGluLmMgICAgICAgICAgICAgICAgfCAxMSArLS0tLS0tLS0tLQogZHJpdmVycy9t ZC9kbS5jICAgICAgICAgICAgICAgICAgICAgfCAgMyArLS0KIGRyaXZlcnMvbWQvbWQtbGluZWFy LmMgICAgICAgICAgICAgIHwgMTEgKy0tLS0tLS0tLS0KIGRyaXZlcnMvbWQvcmFpZDAuYyAgICAg ICAgICAgICAgICAgIHwgIDcgLS0tLS0tLQogZHJpdmVycy9tZC9yYWlkMS5jICAgICAgICAgICAg ICAgICAgfCAxNiArLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL21kL3JhaWQxMC5jICAgICAgICAg ICAgICAgICB8IDE4ICsrLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9tZC9yYWlkNS1jYWNoZS5j ICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9tZC9yYWlkNS5jICAgICAgICAgICAgICAgICAg fCAxMiArKysrLS0tLS0tLS0KIGRyaXZlcnMvbW1jL2NvcmUvcXVldWUuYyAgICAgICAgICAgIHwg IDEgLQogZHJpdmVycy9tdGQvbXRkX2Jsa2RldnMuYyAgICAgICAgICAgfCAgMSAtCiBkcml2ZXJz L252bWUvaG9zdC9jb3JlLmMgICAgICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvczM5MC9ibG9j ay9kYXNkX2ZiYS5jICAgICAgIHwgIDEgLQogZHJpdmVycy9zY3NpL3NkLmMgICAgICAgICAgICAg ICAgICAgfCAgMiAtLQogZHJpdmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfZGV2aWNlLmMgfCAgMiAr LQogZnMvYnRyZnMvZXh0ZW50LXRyZWUuYyAgICAgICAgICAgICAgfCAgNCArKy0tCiBmcy9idHJm cy9pb2N0bC5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9leGZhdC9maWxlLmMgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9leGZhdC9zdXBlci5jICAgICAgICAgICAgICAg ICAgICB8IDEwICsrKy0tLS0tLS0KIGZzL2V4dDQvaW9jdGwuYyAgICAgICAgICAgICAgICAgICAg IHwgMTAgKysrLS0tLS0tLQogZnMvZXh0NC9zdXBlci5jICAgICAgICAgICAgICAgICAgICAgfCAx MCArKystLS0tLS0tCiBmcy9mMmZzL2YyZnMuaCAgICAgICAgICAgICAgICAgICAgICB8ICAzICst LQogZnMvZmF0L2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZnMvZmF0L2lu b2RlLmMgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKystLS0tLS0tCiBmcy9nZnMyL3JncnAu YyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy9qYmQyL2pvdXJuYWwuYyAgICAgICAg ICAgICAgICAgICB8ICA3ICsrLS0tLS0KIGZzL2pmcy9pb2N0bC5jICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGZzL2pmcy9zdXBlci5jICAgICAgICAgICAgICAgICAgICAgIHwgIDggKyst LS0tLS0KIGZzL25pbGZzMi9pb2N0bC5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL250 ZnMzL2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL250ZnMzL3N1cGVyLmMg ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL29jZnMyL2lvY3RsLmMgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIGZzL3hmcy94ZnNfZGlzY2FyZC5jICAgICAgICAgICAgICAgIHwgIDIg Ky0KIGZzL3hmcy94ZnNfc3VwZXIuYyAgICAgICAgICAgICAgICAgIHwgMTIgKysrKy0tLS0tLS0t CiBpbmNsdWRlL2xpbnV4L2Jsa2Rldi5oICAgICAgICAgICAgICB8ICAyIC0tCiBtbS9zd2FwZmls ZS5jICAgICAgICAgICAgICAgICAgICAgICB8IDE3ICsrLS0tLS0tLS0tLS0tLS0tCiA2MSBmaWxl cyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCAyNDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvYXJjaC91bS9kcml2ZXJzL3ViZF9rZXJuLmMgYi9hcmNoL3VtL2RyaXZlcnMvdWJkX2tlcm4u YwppbmRleCBiMDMyNjlmYWVmNzE0Li4wODVmZmRmOThlNTdlIDEwMDY0NAotLS0gYS9hcmNoL3Vt L2RyaXZlcnMvdWJkX2tlcm4uYworKysgYi9hcmNoL3VtL2RyaXZlcnMvdWJkX2tlcm4uYwpAQCAt NDgzLDcgKzQ4Myw2IEBAIHN0YXRpYyB2b2lkIHViZF9oYW5kbGVyKHZvaWQpCiAJCQlpZiAoKGlv X3JlcS0+ZXJyb3IgPT0gQkxLX1NUU19OT1RTVVBQKSAmJiAocmVxX29wKGlvX3JlcS0+cmVxKSA9 PSBSRVFfT1BfRElTQ0FSRCkpIHsKIAkJCQlibGtfcXVldWVfbWF4X2Rpc2NhcmRfc2VjdG9ycyhp b19yZXEtPnJlcS0+cSwgMCk7CiAJCQkJYmxrX3F1ZXVlX21heF93cml0ZV96ZXJvZXNfc2VjdG9y cyhpb19yZXEtPnJlcS0+cSwgMCk7Ci0JCQkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxB R19ESVNDQVJELCBpb19yZXEtPnJlcS0+cSk7CiAJCQl9CiAJCQlibGtfbXFfZW5kX3JlcXVlc3Qo aW9fcmVxLT5yZXEsIGlvX3JlcS0+ZXJyb3IpOwogCQkJa2ZyZWUoaW9fcmVxKTsKQEAgLTgwMyw3 ICs4MDIsNiBAQCBzdGF0aWMgaW50IHViZF9vcGVuX2RldihzdHJ1Y3QgdWJkICp1YmRfZGV2KQog CQl1YmRfZGV2LT5xdWV1ZS0+bGltaXRzLmRpc2NhcmRfYWxpZ25tZW50ID0gU0VDVE9SX1NJWkU7 CiAJCWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9zZWN0b3JzKHViZF9kZXYtPnF1ZXVlLCBVQkRfTUFY X1JFUVVFU1QpOwogCQlibGtfcXVldWVfbWF4X3dyaXRlX3plcm9lc19zZWN0b3JzKHViZF9kZXYt PnF1ZXVlLCBVQkRfTUFYX1JFUVVFU1QpOwotCQlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxB R19ESVNDQVJELCB1YmRfZGV2LT5xdWV1ZSk7CiAJfQogCWJsa19xdWV1ZV9mbGFnX3NldChRVUVV RV9GTEFHX05PTlJPVCwgdWJkX2Rldi0+cXVldWUpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEv YmxvY2svYmxrLWNvcmUuYyBiL2Jsb2NrL2Jsay1jb3JlLmMKaW5kZXggOTM3YmI2Yjg2MzMxNy4u YjVjM2E4MDQ5MTM0YyAxMDA2NDQKLS0tIGEvYmxvY2svYmxrLWNvcmUuYworKysgYi9ibG9jay9i bGstY29yZS5jCkBAIC04MjAsNyArODIwLDcgQEAgdm9pZCBzdWJtaXRfYmlvX25vYWNjdChzdHJ1 Y3QgYmlvICpiaW8pCiAKIAlzd2l0Y2ggKGJpb19vcChiaW8pKSB7CiAJY2FzZSBSRVFfT1BfRElT Q0FSRDoKLQkJaWYgKCFibGtfcXVldWVfZGlzY2FyZChxKSkKKwkJaWYgKCFiZGV2X21heF9kaXNj YXJkX3NlY3RvcnMoYmRldikpCiAJCQlnb3RvIG5vdF9zdXBwb3J0ZWQ7CiAJCWJyZWFrOwogCWNh c2UgUkVRX09QX1NFQ1VSRV9FUkFTRToKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1saWIuYyBiL2Js b2NrL2Jsay1saWIuYwppbmRleCAyYWUzMmE3MjI4NTFjLi44YjRiNjZkM2E5YmZjIDEwMDY0NAot LS0gYS9ibG9jay9ibGstbGliLmMKKysrIGIvYmxvY2svYmxrLWxpYi5jCkBAIC01Myw3ICs1Myw3 IEBAIGludCBfX2Jsa2Rldl9pc3N1ZV9kaXNjYXJkKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYs IHNlY3Rvcl90IHNlY3RvciwKIAkJCXJldHVybiAtRU9QTk9UU1VQUDsKIAkJb3AgPSBSRVFfT1Bf U0VDVVJFX0VSQVNFOwogCX0gZWxzZSB7Ci0JCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQocSkpCisJ CWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGJkZXYpKQogCQkJcmV0dXJuIC1FT1BOT1RT VVBQOwogCQlvcCA9IFJFUV9PUF9ESVNDQVJEOwogCX0KZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1t cS1kZWJ1Z2ZzLmMgYi9ibG9jay9ibGstbXEtZGVidWdmcy5jCmluZGV4IGFhMDM0OWU5ZjA4M2Iu LmZkMTExYzUwMDEyNTYgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1tcS1kZWJ1Z2ZzLmMKKysrIGIv YmxvY2svYmxrLW1xLWRlYnVnZnMuYwpAQCAtMTEzLDcgKzExMyw2IEBAIHN0YXRpYyBjb25zdCBj aGFyICpjb25zdCBibGtfcXVldWVfZmxhZ19uYW1lW10gPSB7CiAJUVVFVUVfRkxBR19OQU1FKEZB SUxfSU8pLAogCVFVRVVFX0ZMQUdfTkFNRShOT05ST1QpLAogCVFVRVVFX0ZMQUdfTkFNRShJT19T VEFUKSwKLQlRVUVVRV9GTEFHX05BTUUoRElTQ0FSRCksCiAJUVVFVUVfRkxBR19OQU1FKE5PWE1F UkdFUyksCiAJUVVFVUVfRkxBR19OQU1FKEFERF9SQU5ET00pLAogCVFVRVVFX0ZMQUdfTkFNRShT RUNFUkFTRSksCmRpZmYgLS1naXQgYS9ibG9jay9pb2N0bC5jIGIvYmxvY2svaW9jdGwuYwppbmRl eCBhZDM3NzFiMjY4YjgxLi5jMmNkM2JhNTI5MGNlIDEwMDY0NAotLS0gYS9ibG9jay9pb2N0bC5j CisrKyBiL2Jsb2NrL2lvY3RsLmMKQEAgLTg3LDE0ICs4NywxMyBAQCBzdGF0aWMgaW50IGJsa19p b2N0bF9kaXNjYXJkKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIGZtb2RlX3QgbW9kZSwKIHsK IAl1aW50NjRfdCByYW5nZVsyXTsKIAl1aW50NjRfdCBzdGFydCwgbGVuOwotCXN0cnVjdCByZXF1 ZXN0X3F1ZXVlICpxID0gYmRldl9nZXRfcXVldWUoYmRldik7CiAJc3RydWN0IGlub2RlICppbm9k ZSA9IGJkZXYtPmJkX2lub2RlOwogCWludCBlcnI7CiAKIAlpZiAoIShtb2RlICYgRk1PREVfV1JJ VEUpKQogCQlyZXR1cm4gLUVCQURGOwogCi0JaWYgKCFibGtfcXVldWVfZGlzY2FyZChxKSkKKwlp ZiAoIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhiZGV2KSkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQ OwogCiAJaWYgKGNvcHlfZnJvbV91c2VyKHJhbmdlLCAodm9pZCBfX3VzZXIgKilhcmcsIHNpemVv ZihyYW5nZSkpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbWFpbi5jIGIv ZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbWFpbi5jCmluZGV4IDdiNTAxYzhkNTk5MjguLjkxMjU2 MGY2MTFjMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX21haW4uYworKysg Yi9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9tYWluLmMKQEAgLTk0Miw3ICs5NDIsNyBAQCBpbnQg ZHJiZF9zZW5kX3NpemVzKHN0cnVjdCBkcmJkX3BlZXJfZGV2aWNlICpwZWVyX2RldmljZSwgaW50 IHRyaWdnZXJfcmVwbHksIGVudQogCQkJY3B1X3RvX2JlMzIoYmRldl9hbGlnbm1lbnRfb2Zmc2V0 KGJkZXYpKTsKIAkJcC0+cWxpbS0+aW9fbWluID0gY3B1X3RvX2JlMzIoYmRldl9pb19taW4oYmRl dikpOwogCQlwLT5xbGltLT5pb19vcHQgPSBjcHVfdG9fYmUzMihiZGV2X2lvX29wdChiZGV2KSk7 Ci0JCXAtPnFsaW0tPmRpc2NhcmRfZW5hYmxlZCA9IGJsa19xdWV1ZV9kaXNjYXJkKHEpOworCQlw LT5xbGltLT5kaXNjYXJkX2VuYWJsZWQgPSAhIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhiZGV2 KTsKIAkJcHV0X2xkZXYoZGV2aWNlKTsKIAl9IGVsc2UgewogCQlzdHJ1Y3QgcmVxdWVzdF9xdWV1 ZSAqcSA9IGRldmljZS0+cnFfcXVldWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2RyYmQv ZHJiZF9ubC5jIGIvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfbmwuYwppbmRleCBhMGEwNmUyMzhl OTE3Li4wNjc4Y2ViNTA1Nzk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL2RyYmQvZHJiZF9u bC5jCisrKyBiL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX25sLmMKQEAgLTEyMTAsNyArMTIxMCw3 IEBAIHN0YXRpYyB2b2lkIGRlY2lkZV9vbl9kaXNjYXJkX3N1cHBvcnQoc3RydWN0IGRyYmRfZGV2 aWNlICpkZXZpY2UsCiAJCWZpcnN0X3BlZXJfZGV2aWNlKGRldmljZSktPmNvbm5lY3Rpb247CiAJ c3RydWN0IHJlcXVlc3RfcXVldWUgKnEgPSBkZXZpY2UtPnJxX3F1ZXVlOwogCi0JaWYgKGJkZXYg JiYgIWJsa19xdWV1ZV9kaXNjYXJkKGJkZXYtPmJhY2tpbmdfYmRldi0+YmRfZGlzay0+cXVldWUp KQorCWlmIChiZGV2ICYmICFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoYmRldi0+YmFja2luZ19i ZGV2KSkKIAkJZ290byBub3Rfc3VwcG9ydGVkOwogCiAJaWYgKGNvbm5lY3Rpb24tPmNzdGF0ZSA+ PSBDX0NPTk5FQ1RFRCAmJgpAQCAtMTIzMCwzMCArMTIzMCwxNiBAQCBzdGF0aWMgdm9pZCBkZWNp ZGVfb25fZGlzY2FyZF9zdXBwb3J0KHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLAogCSAqLwog CWJsa19xdWV1ZV9kaXNjYXJkX2dyYW51bGFyaXR5KHEsIDUxMik7CiAJcS0+bGltaXRzLm1heF9k aXNjYXJkX3NlY3RvcnMgPSBkcmJkX21heF9kaXNjYXJkX3NlY3RvcnMoY29ubmVjdGlvbik7Ci0J YmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfRElTQ0FSRCwgcSk7CiAJcS0+bGltaXRzLm1h eF93cml0ZV96ZXJvZXNfc2VjdG9ycyA9CiAJCWRyYmRfbWF4X2Rpc2NhcmRfc2VjdG9ycyhjb25u ZWN0aW9uKTsKIAlyZXR1cm47CiAKIG5vdF9zdXBwb3J0ZWQ6Ci0JYmxrX3F1ZXVlX2ZsYWdfY2xl YXIoUVVFVUVfRkxBR19ESVNDQVJELCBxKTsKIAlibGtfcXVldWVfZGlzY2FyZF9ncmFudWxhcml0 eShxLCAwKTsKIAlxLT5saW1pdHMubWF4X2Rpc2NhcmRfc2VjdG9ycyA9IDA7CiAJcS0+bGltaXRz Lm1heF93cml0ZV96ZXJvZXNfc2VjdG9ycyA9IDA7CiB9CiAKLXN0YXRpYyB2b2lkIGZpeHVwX2Rp c2NhcmRfaWZfbm90X3N1cHBvcnRlZChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSkKLXsKLQkvKiBU byBhdm9pZCBjb25mdXNpb24sIGlmIHRoaXMgcXVldWUgZG9lcyBub3Qgc3VwcG9ydCBkaXNjYXJk LCBjbGVhcgotCSAqIG1heF9kaXNjYXJkX3NlY3RvcnMsIHdoaWNoIGlzIHdoYXQgbHNibGsgLUQg cmVwb3J0cyB0byB0aGUgdXNlci4KLQkgKiBPbGRlciBrZXJuZWxzIGdvdCB0aGlzIHdyb25nIGlu ICJzdGFjayBsaW1pdHMiLgotCSAqICovCi0JaWYgKCFibGtfcXVldWVfZGlzY2FyZChxKSkgewot CQlibGtfcXVldWVfbWF4X2Rpc2NhcmRfc2VjdG9ycyhxLCAwKTsKLQkJYmxrX3F1ZXVlX2Rpc2Nh cmRfZ3JhbnVsYXJpdHkocSwgMCk7Ci0JfQotfQotCiBzdGF0aWMgdm9pZCBmaXh1cF93cml0ZV96 ZXJvZXMoc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpx KQogewogCS8qIEZpeHVwIG1heF93cml0ZV96ZXJvZXNfc2VjdG9ycyBhZnRlciBibGtfc3RhY2tf bGltaXRzKCk6CkBAIC0xMzAwLDcgKzEyODYsNiBAQCBzdGF0aWMgdm9pZCBkcmJkX3NldHVwX3F1 ZXVlX3BhcmFtKHN0cnVjdCBkcmJkX2RldmljZSAqZGV2aWNlLCBzdHJ1Y3QgZHJiZF9iYWNraQog CQlibGtfc3RhY2tfbGltaXRzKCZxLT5saW1pdHMsICZiLT5saW1pdHMsIDApOwogCQlkaXNrX3Vw ZGF0ZV9yZWFkYWhlYWQoZGV2aWNlLT52ZGlzayk7CiAJfQotCWZpeHVwX2Rpc2NhcmRfaWZfbm90 X3N1cHBvcnRlZChxKTsKIAlmaXh1cF93cml0ZV96ZXJvZXMoZGV2aWNlLCBxKTsKIH0KIApAQCAt MTQ0Nyw3ICsxNDMyLDcgQEAgc3RhdGljIHZvaWQgc2FuaXRpemVfZGlza19jb25mKHN0cnVjdCBk cmJkX2RldmljZSAqZGV2aWNlLCBzdHJ1Y3QgZGlza19jb25mICpkaXMKIAlpZiAoZGlza19jb25m LT5hbF9leHRlbnRzID4gZHJiZF9hbF9leHRlbnRzX21heChuYmMpKQogCQlkaXNrX2NvbmYtPmFs X2V4dGVudHMgPSBkcmJkX2FsX2V4dGVudHNfbWF4KG5iYyk7CiAKLQlpZiAoIWJsa19xdWV1ZV9k aXNjYXJkKHEpKSB7CisJaWYgKCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoYmRldikpIHsKIAkJ aWYgKGRpc2tfY29uZi0+cnNfZGlzY2FyZF9ncmFudWxhcml0eSkgewogCQkJZGlza19jb25mLT5y c19kaXNjYXJkX2dyYW51bGFyaXR5ID0gMDsgLyogZGlzYWJsZSBmZWF0dXJlICovCiAJCQlkcmJk X2luZm8oZGV2aWNlLCAicnNfZGlzY2FyZF9ncmFudWxhcml0eSBmZWF0dXJlIGRpc2FibGVkXG4i KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX3JlY2VpdmVyLmMgYi9kcml2 ZXJzL2Jsb2NrL2RyYmQvZHJiZF9yZWNlaXZlci5jCmluZGV4IDBiNGM3ZGU0NjM5ODkuLjhhNGE0 N2RhNTZmZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX3JlY2VpdmVyLmMK KysrIGIvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfcmVjZWl2ZXIuYwpAQCAtMTU3NSwxMSArMTU3 NSwxMCBAQCBpbnQgZHJiZF9pc3N1ZV9kaXNjYXJkX29yX3plcm9fb3V0KHN0cnVjdCBkcmJkX2Rl dmljZSAqZGV2aWNlLCBzZWN0b3JfdCBzdGFydCwgdQogCiBzdGF0aWMgYm9vbCBjYW5fZG9fcmVs aWFibGVfZGlzY2FyZHMoc3RydWN0IGRyYmRfZGV2aWNlICpkZXZpY2UpCiB7Ci0Jc3RydWN0IHJl cXVlc3RfcXVldWUgKnEgPSBiZGV2X2dldF9xdWV1ZShkZXZpY2UtPmxkZXYtPmJhY2tpbmdfYmRl dik7CiAJc3RydWN0IGRpc2tfY29uZiAqZGM7CiAJYm9vbCBjYW5fZG87CiAKLQlpZiAoIWJsa19x dWV1ZV9kaXNjYXJkKHEpKQorCWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGRldmljZS0+ bGRldi0+YmFja2luZ19iZGV2KSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJcmN1X3JlYWRfbG9jaygp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9sb29wLmMgYi9kcml2ZXJzL2Jsb2NrL2xvb3Au YwppbmRleCA4ZDgwMGQ0NmU0OTg1Li4wZTA2MWM5ODk2ZWZmIDEwMDY0NAotLS0gYS9kcml2ZXJz L2Jsb2NrL2xvb3AuYworKysgYi9kcml2ZXJzL2Jsb2NrL2xvb3AuYwpAQCAtMzE0LDE1ICszMTQs MTIgQEAgc3RhdGljIGludCBsb19mYWxsb2NhdGUoc3RydWN0IGxvb3BfZGV2aWNlICpsbywgc3Ry dWN0IHJlcXVlc3QgKnJxLCBsb2ZmX3QgcG9zLAogCiAJbW9kZSB8PSBGQUxMT0NfRkxfS0VFUF9T SVpFOwogCi0JaWYgKCFibGtfcXVldWVfZGlzY2FyZChsby0+bG9fcXVldWUpKSB7Ci0JCXJldCA9 IC1FT1BOT1RTVVBQOwotCQlnb3RvIG91dDsKLQl9CisJaWYgKCFiZGV2X21heF9kaXNjYXJkX3Nl Y3RvcnMobG8tPmxvX2RldmljZSkpCisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCXJldCA9IGZp bGUtPmZfb3AtPmZhbGxvY2F0ZShmaWxlLCBtb2RlLCBwb3MsIGJsa19ycV9ieXRlcyhycSkpOwog CWlmICh1bmxpa2VseShyZXQgJiYgcmV0ICE9IC1FSU5WQUwgJiYgcmV0ICE9IC1FT1BOT1RTVVBQ KSkKLQkJcmV0ID0gLUVJTzsKLSBvdXQ6CisJCXJldHVybiAtRUlPOwogCXJldHVybiByZXQ7CiB9 CiAKQEAgLTc4NywxMiArNzg0LDEwIEBAIHN0YXRpYyB2b2lkIGxvb3BfY29uZmlnX2Rpc2NhcmQo c3RydWN0IGxvb3BfZGV2aWNlICpsbykKIAkJcS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkg PSBncmFudWxhcml0eTsKIAkJYmxrX3F1ZXVlX21heF9kaXNjYXJkX3NlY3RvcnMocSwgbWF4X2Rp c2NhcmRfc2VjdG9ycyk7CiAJCWJsa19xdWV1ZV9tYXhfd3JpdGVfemVyb2VzX3NlY3RvcnMocSwg bWF4X2Rpc2NhcmRfc2VjdG9ycyk7Ci0JCWJsa19xdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFHX0RJ U0NBUkQsIHEpOwogCX0gZWxzZSB7CiAJCXEtPmxpbWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5ID0g MDsKIAkJYmxrX3F1ZXVlX21heF9kaXNjYXJkX3NlY3RvcnMocSwgMCk7CiAJCWJsa19xdWV1ZV9t YXhfd3JpdGVfemVyb2VzX3NlY3RvcnMocSwgMCk7Ci0JCWJsa19xdWV1ZV9mbGFnX2NsZWFyKFFV RVVFX0ZMQUdfRElTQ0FSRCwgcSk7CiAJfQogCXEtPmxpbWl0cy5kaXNjYXJkX2FsaWdubWVudCA9 IDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL25iZC5jIGIvZHJpdmVycy9ibG9jay9u YmQuYwppbmRleCA1YTFmOTg0OTRkZGRmLi40NzI5YWVmOGM2NDYyIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2Jsb2NrL25iZC5jCisrKyBiL2RyaXZlcnMvYmxvY2svbmJkLmMKQEAgLTEyMzEsOCArMTIz MSw2IEBAIHN0YXRpYyB2b2lkIG5iZF9wYXJzZV9mbGFncyhzdHJ1Y3QgbmJkX2RldmljZSAqbmJk KQogCQlzZXRfZGlza19ybyhuYmQtPmRpc2ssIHRydWUpOwogCWVsc2UKIAkJc2V0X2Rpc2tfcm8o bmJkLT5kaXNrLCBmYWxzZSk7Ci0JaWYgKGNvbmZpZy0+ZmxhZ3MgJiBOQkRfRkxBR19TRU5EX1RS SU0pCi0JCWJsa19xdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFHX0RJU0NBUkQsIG5iZC0+ZGlzay0+ cXVldWUpOwogCWlmIChjb25maWctPmZsYWdzICYgTkJEX0ZMQUdfU0VORF9GTFVTSCkgewogCQlp ZiAoY29uZmlnLT5mbGFncyAmIE5CRF9GTEFHX1NFTkRfRlVBKQogCQkJYmxrX3F1ZXVlX3dyaXRl X2NhY2hlKG5iZC0+ZGlzay0+cXVldWUsIHRydWUsIHRydWUpOwpAQCAtMTMxOSw4ICsxMzE3LDcg QEAgc3RhdGljIHZvaWQgbmJkX2NvbmZpZ19wdXQoc3RydWN0IG5iZF9kZXZpY2UgKm5iZCkKIAkJ bmJkLT50YWdfc2V0LnRpbWVvdXQgPSAwOwogCQluYmQtPmRpc2stPnF1ZXVlLT5saW1pdHMuZGlz Y2FyZF9ncmFudWxhcml0eSA9IDA7CiAJCW5iZC0+ZGlzay0+cXVldWUtPmxpbWl0cy5kaXNjYXJk X2FsaWdubWVudCA9IDA7Ci0JCWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9zZWN0b3JzKG5iZC0+ZGlz ay0+cXVldWUsIFVJTlRfTUFYKTsKLQkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19E SVNDQVJELCBuYmQtPmRpc2stPnF1ZXVlKTsKKwkJYmxrX3F1ZXVlX21heF9kaXNjYXJkX3NlY3Rv cnMobmJkLT5kaXNrLT5xdWV1ZSwgMCk7CiAKIAkJbXV0ZXhfdW5sb2NrKCZuYmQtPmNvbmZpZ19s b2NrKTsKIAkJbmJkX3B1dChuYmQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9udWxsX2Js ay9tYWluLmMgYi9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uYwppbmRleCAwNWIxMTIwZTY2 MjM0Li5mNjQ5M2E5ZTg1ZWQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21h aW4uYworKysgYi9kcml2ZXJzL2Jsb2NrL251bGxfYmxrL21haW4uYwpAQCAtMTc2Nyw3ICsxNzY3 LDYgQEAgc3RhdGljIHZvaWQgbnVsbF9jb25maWdfZGlzY2FyZChzdHJ1Y3QgbnVsbGIgKm51bGxi KQogCW51bGxiLT5xLT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eSA9IG51bGxiLT5kZXYtPmJs b2Nrc2l6ZTsKIAludWxsYi0+cS0+bGltaXRzLmRpc2NhcmRfYWxpZ25tZW50ID0gbnVsbGItPmRl di0+YmxvY2tzaXplOwogCWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9zZWN0b3JzKG51bGxiLT5xLCBV SU5UX01BWCA+PiA5KTsKLQlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19ESVNDQVJELCBu dWxsYi0+cSk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYmxvY2tfZGV2aWNlX29wZXJhdGlv bnMgbnVsbF9iaW9fb3BzID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9yYmQuYyBiL2Ry aXZlcnMvYmxvY2svcmJkLmMKaW5kZXggYjg0NDQzMmJhZDIwYi4uMmIyMWY3MTdjY2UxYSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ibG9jay9yYmQuYworKysgYi9kcml2ZXJzL2Jsb2NrL3JiZC5jCkBA IC00OTQyLDcgKzQ5NDIsNiBAQCBzdGF0aWMgaW50IHJiZF9pbml0X2Rpc2soc3RydWN0IHJiZF9k ZXZpY2UgKnJiZF9kZXYpCiAJYmxrX3F1ZXVlX2lvX29wdChxLCByYmRfZGV2LT5vcHRzLT5hbGxv Y19zaXplKTsKIAogCWlmIChyYmRfZGV2LT5vcHRzLT50cmltKSB7Ci0JCWJsa19xdWV1ZV9mbGFn X3NldChRVUVVRV9GTEFHX0RJU0NBUkQsIHEpOwogCQlxLT5saW1pdHMuZGlzY2FyZF9ncmFudWxh cml0eSA9IHJiZF9kZXYtPm9wdHMtPmFsbG9jX3NpemU7CiAJCWJsa19xdWV1ZV9tYXhfZGlzY2Fy ZF9zZWN0b3JzKHEsIG9ianNldF9ieXRlcyA+PiBTRUNUT1JfU0hJRlQpOwogCQlibGtfcXVldWVf bWF4X3dyaXRlX3plcm9lc19zZWN0b3JzKHEsIG9ianNldF9ieXRlcyA+PiBTRUNUT1JfU0hJRlQp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9ybmJkL3JuYmQtY2x0LmMgYi9kcml2ZXJzL2Js b2NrL3JuYmQvcm5iZC1jbHQuYwppbmRleCBiNjZlODg0MGI5NGI4Li5lZmE5OWEzODg0NTA3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3JuYmQvcm5iZC1jbHQuYworKysgYi9kcml2ZXJzL2Js b2NrL3JuYmQvcm5iZC1jbHQuYwpAQCAtMTM2NCw4ICsxMzY0LDYgQEAgc3RhdGljIHZvaWQgc2V0 dXBfcmVxdWVzdF9xdWV1ZShzdHJ1Y3Qgcm5iZF9jbHRfZGV2ICpkZXYpCiAJYmxrX3F1ZXVlX21h eF9kaXNjYXJkX3NlY3RvcnMoZGV2LT5xdWV1ZSwgZGV2LT5tYXhfZGlzY2FyZF9zZWN0b3JzKTsK IAlkZXYtPnF1ZXVlLT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eQk9IGRldi0+ZGlzY2FyZF9n cmFudWxhcml0eTsKIAlkZXYtPnF1ZXVlLT5saW1pdHMuZGlzY2FyZF9hbGlnbm1lbnQJPSBkZXYt PmRpc2NhcmRfYWxpZ25tZW50OwotCWlmIChkZXYtPm1heF9kaXNjYXJkX3NlY3RvcnMpCi0JCWJs a19xdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFHX0RJU0NBUkQsIGRldi0+cXVldWUpOwogCWlmIChk ZXYtPnNlY3VyZV9kaXNjYXJkKQogCQlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19TRUNF UkFTRSwgZGV2LT5xdWV1ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svcm5iZC9ybmJk LXNydi1kZXYuaCBiL2RyaXZlcnMvYmxvY2svcm5iZC9ybmJkLXNydi1kZXYuaAppbmRleCBmODJm YmI0YmJkYThlLi4xZjdlMWM4ZmQ0ZDliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3JuYmQv cm5iZC1zcnYtZGV2LmgKKysrIGIvZHJpdmVycy9ibG9jay9ybmJkL3JuYmQtc3J2LWRldi5oCkBA IC00OSw5ICs0OSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IHJuYmRfZGV2X2dldF9zZWN1cmVfZGlz Y2FyZChjb25zdCBzdHJ1Y3Qgcm5iZF9kZXYgKmRldikKIAogc3RhdGljIGlubGluZSBpbnQgcm5i ZF9kZXZfZ2V0X21heF9kaXNjYXJkX3NlY3RzKGNvbnN0IHN0cnVjdCBybmJkX2RldiAqZGV2KQog ewotCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQoYmRldl9nZXRfcXVldWUoZGV2LT5iZGV2KSkpCi0J CXJldHVybiAwOwotCiAJcmV0dXJuIGJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhkZXYtPmJkZXYp OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3ZpcnRpb19ibGsuYyBiL2RyaXZlcnMv YmxvY2svdmlydGlvX2Jsay5jCmluZGV4IGE4YmNmM2Y2NjRhZjEuLjZjY2YxNTI1M2RlZTEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svdmlydGlvX2Jsay5jCisrKyBiL2RyaXZlcnMvYmxvY2sv dmlydGlvX2Jsay5jCkBAIC04ODgsOCArODg4LDYgQEAgc3RhdGljIGludCB2aXJ0YmxrX3Byb2Jl KHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2KQogCQkJdiA9IHNnX2VsZW1zOwogCQlibGtfcXVl dWVfbWF4X2Rpc2NhcmRfc2VnbWVudHMocSwKIAkJCQkJICAgICAgIG1pbih2LCBNQVhfRElTQ0FS RF9TRUdNRU5UUykpOwotCi0JCWJsa19xdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFHX0RJU0NBUkQs IHEpOwogCX0KIAogCWlmICh2aXJ0aW9faGFzX2ZlYXR1cmUodmRldiwgVklSVElPX0JMS19GX1dS SVRFX1pFUk9FUykpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2JhY2sveGVu YnVzLmMgYi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtiYWNrL3hlbmJ1cy5jCmluZGV4IDhiNjkxZmU1 MDQ3NWYuLjgzY2QwODA0MWU2YjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Jh Y2sveGVuYnVzLmMKKysrIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrYmFjay94ZW5idXMuYwpAQCAt NTgzLDcgKzU4Myw3IEBAIHN0YXRpYyB2b2lkIHhlbl9ibGtia19kaXNjYXJkKHN0cnVjdCB4ZW5i dXNfdHJhbnNhY3Rpb24geGJ0LCBzdHJ1Y3QgYmFja2VuZF9pbmZvCiAJaWYgKCF4ZW5idXNfcmVh ZF91bnNpZ25lZChkZXYtPm5vZGVuYW1lLCAiZGlzY2FyZC1lbmFibGUiLCAxKSkKIAkJcmV0dXJu OwogCi0JaWYgKGJsa19xdWV1ZV9kaXNjYXJkKHEpKSB7CisJaWYgKGJkZXZfbWF4X2Rpc2NhcmRf c2VjdG9ycyhiZGV2KSkgewogCQllcnIgPSB4ZW5idXNfcHJpbnRmKHhidCwgZGV2LT5ub2RlbmFt ZSwKIAkJCSJkaXNjYXJkLWdyYW51bGFyaXR5IiwgIiV1IiwKIAkJCXEtPmxpbWl0cy5kaXNjYXJk X2dyYW51bGFyaXR5KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMg Yi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jCmluZGV4IDAwMzA1NmQ0ZjdmNWYuLmUxM2Ni NGQ0OGYxZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMKKysrIGIv ZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYwpAQCAtOTQ0LDcgKzk0NCw2IEBAIHN0YXRpYyB2 b2lkIGJsa2lmX3NldF9xdWV1ZV9saW1pdHMoc3RydWN0IGJsa2Zyb250X2luZm8gKmluZm8pCiAJ YmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfVklSVCwgcnEpOwogCiAJaWYgKGluZm8tPmZl YXR1cmVfZGlzY2FyZCkgewotCQlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19ESVNDQVJE LCBycSk7CiAJCWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9zZWN0b3JzKHJxLCBnZXRfY2FwYWNpdHko Z2QpKTsKIAkJcnEtPmxpbWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5ID0gaW5mby0+ZGlzY2FyZF9n cmFudWxhcml0eSA/OgogCQkJCQkJIGluZm8tPnBoeXNpY2FsX3NlY3Rvcl9zaXplOwpAQCAtMTYw Niw3ICsxNjA1LDcgQEAgc3RhdGljIGlycXJldHVybl90IGJsa2lmX2ludGVycnVwdChpbnQgaXJx LCB2b2lkICpkZXZfaWQpCiAJCQkJYmxraWZfcmVxKHJlcSktPmVycm9yID0gQkxLX1NUU19OT1RT VVBQOwogCQkJCWluZm8tPmZlYXR1cmVfZGlzY2FyZCA9IDA7CiAJCQkJaW5mby0+ZmVhdHVyZV9z ZWNkaXNjYXJkID0gMDsKLQkJCQlibGtfcXVldWVfZmxhZ19jbGVhcihRVUVVRV9GTEFHX0RJU0NB UkQsIHJxKTsKKwkJCQlibGtfcXVldWVfbWF4X2Rpc2NhcmRfc2VjdG9ycyhycSwgMCk7CiAJCQkJ YmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19TRUNFUkFTRSwgcnEpOwogCQkJfQogCQkJ YnJlYWs7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3pyYW0venJhbV9kcnYuYyBiL2RyaXZl cnMvYmxvY2svenJhbS96cmFtX2Rydi5jCmluZGV4IGU5NDc0YjAyMDEyZGUuLjU5ZmY0NDRiZjZj NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svenJhbS96cmFtX2Rydi5jCisrKyBiL2RyaXZl cnMvYmxvY2svenJhbS96cmFtX2Rydi5jCkBAIC0xOTUyLDcgKzE5NTIsNiBAQCBzdGF0aWMgaW50 IHpyYW1fYWRkKHZvaWQpCiAJYmxrX3F1ZXVlX2lvX29wdCh6cmFtLT5kaXNrLT5xdWV1ZSwgUEFH RV9TSVpFKTsKIAl6cmFtLT5kaXNrLT5xdWV1ZS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkg PSBQQUdFX1NJWkU7CiAJYmxrX3F1ZXVlX21heF9kaXNjYXJkX3NlY3RvcnMoenJhbS0+ZGlzay0+ cXVldWUsIFVJTlRfTUFYKTsKLQlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19ESVNDQVJE LCB6cmFtLT5kaXNrLT5xdWV1ZSk7CiAKIAkvKgogCSAqIHpyYW1fYmlvX2Rpc2NhcmQoKSB3aWxs IGNsZWFyIGFsbCBsb2dpY2FsIGJsb2NrcyBpZiBsb2dpY2FsIGJsb2NrCmRpZmYgLS1naXQgYS9k cml2ZXJzL21kL2JjYWNoZS9yZXF1ZXN0LmMgYi9kcml2ZXJzL21kL2JjYWNoZS9yZXF1ZXN0LmMK aW5kZXggZmRkMDE5NGY4NGRkMC4uZTI3ZjY3ZjA2YTQyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9t ZC9iY2FjaGUvcmVxdWVzdC5jCisrKyBiL2RyaXZlcnMvbWQvYmNhY2hlL3JlcXVlc3QuYwpAQCAt MTAwNSw3ICsxMDA1LDcgQEAgc3RhdGljIHZvaWQgY2FjaGVkX2Rldl93cml0ZShzdHJ1Y3QgY2Fj aGVkX2RldiAqZGMsIHN0cnVjdCBzZWFyY2ggKnMpCiAJCWJpb19nZXQocy0+aW9wLmJpbyk7CiAK IAkJaWYgKGJpb19vcChiaW8pID09IFJFUV9PUF9ESVNDQVJEICYmCi0JCSAgICAhYmxrX3F1ZXVl X2Rpc2NhcmQoYmRldl9nZXRfcXVldWUoZGMtPmJkZXYpKSkKKwkJICAgICFiZGV2X21heF9kaXNj YXJkX3NlY3RvcnMoZGMtPmJkZXYpKQogCQkJZ290byBpbnNlcnRfZGF0YTsKIAogCQkvKiBJL08g cmVxdWVzdCBzZW50IHRvIGJhY2tpbmcgZGV2aWNlICovCkBAIC0xMTE1LDcgKzExMTUsNyBAQCBz dGF0aWMgdm9pZCBkZXRhY2hlZF9kZXZfZG9fcmVxdWVzdChzdHJ1Y3QgYmNhY2hlX2RldmljZSAq ZCwgc3RydWN0IGJpbyAqYmlvLAogCWJpby0+YmlfcHJpdmF0ZSA9IGRkaXA7CiAKIAlpZiAoKGJp b19vcChiaW8pID09IFJFUV9PUF9ESVNDQVJEKSAmJgotCSAgICAhYmxrX3F1ZXVlX2Rpc2NhcmQo YmRldl9nZXRfcXVldWUoZGMtPmJkZXYpKSkKKwkgICAgIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9y cyhkYy0+YmRldikpCiAJCWJpby0+YmlfZW5kX2lvKGJpbyk7CiAJZWxzZQogCQlzdWJtaXRfYmlv X25vYWNjdChiaW8pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9iY2FjaGUvc3VwZXIuYyBiL2Ry aXZlcnMvbWQvYmNhY2hlL3N1cGVyLmMKaW5kZXggYmYzZGUxNDlkM2M5Zi4uMmY0OWUzMTE0MmY2 MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9iY2FjaGUvc3VwZXIuYworKysgYi9kcml2ZXJzL21k L2JjYWNoZS9zdXBlci5jCkBAIC05NzMsNyArOTczLDYgQEAgc3RhdGljIGludCBiY2FjaGVfZGV2 aWNlX2luaXQoc3RydWN0IGJjYWNoZV9kZXZpY2UgKmQsIHVuc2lnbmVkIGludCBibG9ja19zaXpl LAogCiAJYmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfTk9OUk9ULCBkLT5kaXNrLT5xdWV1 ZSk7CiAJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19BRERfUkFORE9NLCBkLT5kaXNr LT5xdWV1ZSk7Ci0JYmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfRElTQ0FSRCwgZC0+ZGlz ay0+cXVldWUpOwogCiAJYmxrX3F1ZXVlX3dyaXRlX2NhY2hlKHEsIHRydWUsIHRydWUpOwogCkBA IC0yMzUwLDcgKzIzNDksNyBAQCBzdGF0aWMgaW50IHJlZ2lzdGVyX2NhY2hlKHN0cnVjdCBjYWNo ZV9zYiAqc2IsIHN0cnVjdCBjYWNoZV9zYl9kaXNrICpzYl9kaXNrLAogCWNhLT5iZGV2LT5iZF9o b2xkZXIgPSBjYTsKIAljYS0+c2JfZGlzayA9IHNiX2Rpc2s7CiAKLQlpZiAoYmxrX3F1ZXVlX2Rp c2NhcmQoYmRldl9nZXRfcXVldWUoYmRldikpKQorCWlmIChiZGV2X21heF9kaXNjYXJkX3NlY3Rv cnMoKGJkZXYpKSkKIAkJY2EtPmRpc2NhcmQgPSBDQUNIRV9ESVNDQVJEKCZjYS0+c2IpOwogCiAJ cmV0ID0gY2FjaGVfYWxsb2MoY2EpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9iY2FjaGUvc3lz ZnMuYyBiL2RyaXZlcnMvbWQvYmNhY2hlL3N5c2ZzLmMKaW5kZXggZDEwMjlkNzFmZjNiYy4uYzZm Njc3MDU5MjE0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9iY2FjaGUvc3lzZnMuYworKysgYi9k cml2ZXJzL21kL2JjYWNoZS9zeXNmcy5jCkBAIC0xMTUxLDcgKzExNTEsNyBAQCBTVE9SRShfX2Jj aF9jYWNoZSkKIAlpZiAoYXR0ciA9PSAmc3lzZnNfZGlzY2FyZCkgewogCQlib29sIHYgPSBzdHJ0 b3VsX29yX3JldHVybihidWYpOwogCi0JCWlmIChibGtfcXVldWVfZGlzY2FyZChiZGV2X2dldF9x dWV1ZShjYS0+YmRldikpKQorCQlpZiAoYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGNhLT5iZGV2 KSkKIAkJCWNhLT5kaXNjYXJkID0gdjsKIAogCQlpZiAodiAhPSBDQUNIRV9ESVNDQVJEKCZjYS0+ c2IpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLWNhY2hlLXRhcmdldC5jIGIvZHJpdmVy cy9tZC9kbS1jYWNoZS10YXJnZXQuYwppbmRleCA3ODBhNjFiYzZjYzAzLi4yOGM1ZGU4ZWNhNGEw IDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2RtLWNhY2hlLXRhcmdldC5jCisrKyBiL2RyaXZlcnMv bWQvZG0tY2FjaGUtdGFyZ2V0LmMKQEAgLTMzMjksMTMgKzMzMjksNiBAQCBzdGF0aWMgaW50IGNh Y2hlX2l0ZXJhdGVfZGV2aWNlcyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwKIAlyZXR1cm4gcjsKIH0K IAotc3RhdGljIGJvb2wgb3JpZ2luX2Rldl9zdXBwb3J0c19kaXNjYXJkKHN0cnVjdCBibG9ja19k ZXZpY2UgKm9yaWdpbl9iZGV2KQotewotCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxID0gYmRldl9n ZXRfcXVldWUob3JpZ2luX2JkZXYpOwotCi0JcmV0dXJuIGJsa19xdWV1ZV9kaXNjYXJkKHEpOwot fQotCiAvKgogICogSWYgZGlzY2FyZF9wYXNzZG93biB3YXMgZW5hYmxlZCB2ZXJpZnkgdGhhdCB0 aGUgb3JpZ2luIGRldmljZQogICogc3VwcG9ydHMgZGlzY2FyZHMuICBEaXNhYmxlIGRpc2NhcmRf cGFzc2Rvd24gaWYgbm90LgpAQCAtMzM0OSw3ICszMzQyLDcgQEAgc3RhdGljIHZvaWQgZGlzYWJs ZV9wYXNzZG93bl9pZl9ub3Rfc3VwcG9ydGVkKHN0cnVjdCBjYWNoZSAqY2FjaGUpCiAJaWYgKCFj YWNoZS0+ZmVhdHVyZXMuZGlzY2FyZF9wYXNzZG93bikKIAkJcmV0dXJuOwogCi0JaWYgKCFvcmln aW5fZGV2X3N1cHBvcnRzX2Rpc2NhcmQob3JpZ2luX2JkZXYpKQorCWlmICghYmRldl9tYXhfZGlz Y2FyZF9zZWN0b3JzKG9yaWdpbl9iZGV2KSkKIAkJcmVhc29uID0gImRpc2NhcmQgdW5zdXBwb3J0 ZWQiOwogCiAJZWxzZSBpZiAob3JpZ2luX2xpbWl0cy0+bWF4X2Rpc2NhcmRfc2VjdG9ycyA8IGNh Y2hlLT5zZWN0b3JzX3Blcl9ibG9jaykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0tY2xvbmUt dGFyZ2V0LmMgYi9kcml2ZXJzL21kL2RtLWNsb25lLXRhcmdldC5jCmluZGV4IDEyODMxNmE3M2Qw MTYuLjgxMWIwYTUzNzlkMDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tY2xvbmUtdGFyZ2V0 LmMKKysrIGIvZHJpdmVycy9tZC9kbS1jbG9uZS10YXJnZXQuYwpAQCAtMjAxNiwxMyArMjAxNiw2 IEBAIHN0YXRpYyB2b2lkIGNsb25lX3Jlc3VtZShzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSkKIAlkb193 YWtlcigmY2xvbmUtPndha2VyLndvcmspOwogfQogCi1zdGF0aWMgYm9vbCBiZGV2X3N1cHBvcnRz X2Rpc2NhcmRzKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpCi17Ci0Jc3RydWN0IHJlcXVlc3Rf cXVldWUgKnEgPSBiZGV2X2dldF9xdWV1ZShiZGV2KTsKLQotCXJldHVybiAocSAmJiBibGtfcXVl dWVfZGlzY2FyZChxKSk7Ci19Ci0KIC8qCiAgKiBJZiBkaXNjYXJkX3Bhc3Nkb3duIHdhcyBlbmFi bGVkIHZlcmlmeSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBkZXZpY2Ugc3VwcG9ydHMKICAqIGRpc2Nh cmRzLiBEaXNhYmxlIGRpc2NhcmRfcGFzc2Rvd24gaWYgbm90LgpAQCAtMjAzNiw3ICsyMDI5LDcg QEAgc3RhdGljIHZvaWQgZGlzYWJsZV9wYXNzZG93bl9pZl9ub3Rfc3VwcG9ydGVkKHN0cnVjdCBj bG9uZSAqY2xvbmUpCiAJaWYgKCF0ZXN0X2JpdChETV9DTE9ORV9ESVNDQVJEX1BBU1NET1dOLCAm Y2xvbmUtPmZsYWdzKSkKIAkJcmV0dXJuOwogCi0JaWYgKCFiZGV2X3N1cHBvcnRzX2Rpc2NhcmRz KGRlc3RfZGV2KSkKKwlpZiAoIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhkZXN0X2RldikpCiAJ CXJlYXNvbiA9ICJkaXNjYXJkIHVuc3VwcG9ydGVkIjsKIAllbHNlIGlmIChkZXN0X2xpbWl0cy0+ bWF4X2Rpc2NhcmRfc2VjdG9ycyA8IGNsb25lLT5yZWdpb25fc2l6ZSkKIAkJcmVhc29uID0gIm1h eCBkaXNjYXJkIHNlY3RvcnMgc21hbGxlciB0aGFuIGEgcmVnaW9uIjsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWQvZG0tbG9nLXdyaXRlcy5jIGIvZHJpdmVycy9tZC9kbS1sb2ctd3JpdGVzLmMKaW5k ZXggYzlkMDM2ZDZiYjJlZS4uZTE5NDIyNmM4OWU1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9k bS1sb2ctd3JpdGVzLmMKKysrIGIvZHJpdmVycy9tZC9kbS1sb2ctd3JpdGVzLmMKQEAgLTg2Niw5 ICs4NjYsOCBAQCBzdGF0aWMgaW50IGxvZ193cml0ZXNfbWVzc2FnZShzdHJ1Y3QgZG1fdGFyZ2V0 ICp0aSwgdW5zaWduZWQgYXJnYywgY2hhciAqKmFyZ3YsCiBzdGF0aWMgdm9pZCBsb2dfd3JpdGVz X2lvX2hpbnRzKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdHJ1Y3QgcXVldWVfbGltaXRzICpsaW1p dHMpCiB7CiAJc3RydWN0IGxvZ193cml0ZXNfYyAqbGMgPSB0aS0+cHJpdmF0ZTsKLQlzdHJ1Y3Qg cmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKGxjLT5kZXYtPmJkZXYpOwogCi0JaWYg KCFxIHx8ICFibGtfcXVldWVfZGlzY2FyZChxKSkgeworCWlmICghYmRldl9tYXhfZGlzY2FyZF9z ZWN0b3JzKGxjLT5kZXYtPmJkZXYpKSB7CiAJCWxjLT5kZXZpY2Vfc3VwcG9ydHNfZGlzY2FyZCA9 IGZhbHNlOwogCQlsaW1pdHMtPmRpc2NhcmRfZ3JhbnVsYXJpdHkgPSBsYy0+c2VjdG9yc2l6ZTsK IAkJbGltaXRzLT5tYXhfZGlzY2FyZF9zZWN0b3JzID0gKFVJTlRfTUFYID4+IFNFQ1RPUl9TSElG VCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXJhaWQuYyBiL2RyaXZlcnMvbWQvZG0tcmFp ZC5jCmluZGV4IDJiMjY0MzVhNjk0NmUuLjk1MjZjY2JlZGFmYmEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbWQvZG0tcmFpZC5jCisrKyBiL2RyaXZlcnMvbWQvZG0tcmFpZC5jCkBAIC0yOTYzLDEzICsy OTYzLDggQEAgc3RhdGljIHZvaWQgY29uZmlndXJlX2Rpc2NhcmRfc3VwcG9ydChzdHJ1Y3QgcmFp ZF9zZXQgKnJzKQogCXJhaWQ0NTYgPSByc19pc19yYWlkNDU2KHJzKTsKIAogCWZvciAoaSA9IDA7 IGkgPCBycy0+cmFpZF9kaXNrczsgaSsrKSB7Ci0JCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxOwot Ci0JCWlmICghcnMtPmRldltpXS5yZGV2LmJkZXYpCi0JCQljb250aW51ZTsKLQotCQlxID0gYmRl dl9nZXRfcXVldWUocnMtPmRldltpXS5yZGV2LmJkZXYpOwotCQlpZiAoIXEgfHwgIWJsa19xdWV1 ZV9kaXNjYXJkKHEpKQorCQlpZiAoIXJzLT5kZXZbaV0ucmRldi5iZGV2IHx8CisJCSAgICAhYmRl dl9tYXhfZGlzY2FyZF9zZWN0b3JzKHJzLT5kZXZbaV0ucmRldi5iZGV2KSkKIAkJCXJldHVybjsK IAogCQlpZiAocmFpZDQ1NikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS10YWJsZS5jIGIv ZHJpdmVycy9tZC9kbS10YWJsZS5jCmluZGV4IGQ0NjgzOWZhYTBjYTUuLjBkZmY2OTA3ZmQwMGQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvZG0tdGFibGUuYworKysgYi9kcml2ZXJzL21kL2RtLXRh YmxlLmMKQEAgLTE4ODgsOSArMTg4OCw3IEBAIHN0YXRpYyBib29sIGRtX3RhYmxlX3N1cHBvcnRz X25vd2FpdChzdHJ1Y3QgZG1fdGFibGUgKnQpCiBzdGF0aWMgaW50IGRldmljZV9ub3RfZGlzY2Fy ZF9jYXBhYmxlKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdHJ1Y3QgZG1fZGV2ICpkZXYsCiAJCQkJ ICAgICAgc2VjdG9yX3Qgc3RhcnQsIHNlY3Rvcl90IGxlbiwgdm9pZCAqZGF0YSkKIHsKLQlzdHJ1 Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKGRldi0+YmRldik7Ci0KLQlyZXR1 cm4gIWJsa19xdWV1ZV9kaXNjYXJkKHEpOworCXJldHVybiAhYmRldl9tYXhfZGlzY2FyZF9zZWN0 b3JzKGRldi0+YmRldik7CiB9CiAKIHN0YXRpYyBib29sIGRtX3RhYmxlX3N1cHBvcnRzX2Rpc2Nh cmRzKHN0cnVjdCBkbV90YWJsZSAqdCkKQEAgLTE5NzAsMTUgKzE5NjgsMTIgQEAgaW50IGRtX3Rh YmxlX3NldF9yZXN0cmljdGlvbnMoc3RydWN0IGRtX3RhYmxlICp0LCBzdHJ1Y3QgcmVxdWVzdF9x dWV1ZSAqcSwKIAkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19OT1dBSVQsIHEpOwog CiAJaWYgKCFkbV90YWJsZV9zdXBwb3J0c19kaXNjYXJkcyh0KSkgewotCQlibGtfcXVldWVfZmxh Z19jbGVhcihRVUVVRV9GTEFHX0RJU0NBUkQsIHEpOwotCQkvKiBNdXN0IGFsc28gY2xlYXIgZGlz Y2FyZCBsaW1pdHMuLi4gKi8KIAkJcS0+bGltaXRzLm1heF9kaXNjYXJkX3NlY3RvcnMgPSAwOwog CQlxLT5saW1pdHMubWF4X2h3X2Rpc2NhcmRfc2VjdG9ycyA9IDA7CiAJCXEtPmxpbWl0cy5kaXNj YXJkX2dyYW51bGFyaXR5ID0gMDsKIAkJcS0+bGltaXRzLmRpc2NhcmRfYWxpZ25tZW50ID0gMDsK IAkJcS0+bGltaXRzLmRpc2NhcmRfbWlzYWxpZ25lZCA9IDA7Ci0JfSBlbHNlCi0JCWJsa19xdWV1 ZV9mbGFnX3NldChRVUVVRV9GTEFHX0RJU0NBUkQsIHEpOworCX0KIAogCWlmIChkbV90YWJsZV9z dXBwb3J0c19zZWN1cmVfZXJhc2UodCkpCiAJCWJsa19xdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFH X1NFQ0VSQVNFLCBxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0tdGhpbi5jIGIvZHJpdmVy cy9tZC9kbS10aGluLmMKaW5kZXggNGQyNWQwZTI3MDMxMy4uZWRlZDRiY2M0NTQ1ZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9tZC9kbS10aGluLmMKKysrIGIvZHJpdmVycy9tZC9kbS10aGluLmMKQEAg LTI4MDIsMTMgKzI4MDIsNiBAQCBzdGF0aWMgdm9pZCByZXF1ZXVlX2Jpb3Moc3RydWN0IHBvb2wg KnBvb2wpCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAqIEJpbmRpbmcgb2YgY29udHJvbCB0YXJnZXRzIHRvIGEgcG9v bCBvYmplY3QKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0qLwotc3RhdGljIGJvb2wgZGF0YV9kZXZfc3VwcG9ydHNfZGlzY2Fy ZChzdHJ1Y3QgcG9vbF9jICpwdCkKLXsKLQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZf Z2V0X3F1ZXVlKHB0LT5kYXRhX2Rldi0+YmRldik7Ci0KLQlyZXR1cm4gYmxrX3F1ZXVlX2Rpc2Nh cmQocSk7Ci19Ci0KIHN0YXRpYyBib29sIGlzX2ZhY3RvcihzZWN0b3JfdCBibG9ja19zaXplLCB1 aW50MzJfdCBuKQogewogCXJldHVybiAhc2VjdG9yX2RpdihibG9ja19zaXplLCBuKTsKQEAgLTI4 MjgsNyArMjgyMSw3IEBAIHN0YXRpYyB2b2lkIGRpc2FibGVfcGFzc2Rvd25faWZfbm90X3N1cHBv cnRlZChzdHJ1Y3QgcG9vbF9jICpwdCkKIAlpZiAoIXB0LT5hZGp1c3RlZF9wZi5kaXNjYXJkX3Bh c3Nkb3duKQogCQlyZXR1cm47CiAKLQlpZiAoIWRhdGFfZGV2X3N1cHBvcnRzX2Rpc2NhcmQocHQp KQorCWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKHB0LT5kYXRhX2Rldi0+YmRldikpCiAJ CXJlYXNvbiA9ICJkaXNjYXJkIHVuc3VwcG9ydGVkIjsKIAogCWVsc2UgaWYgKGRhdGFfbGltaXRz LT5tYXhfZGlzY2FyZF9zZWN0b3JzIDwgcG9vbC0+c2VjdG9yc19wZXJfYmxvY2spCkBAIC00MDU3 LDggKzQwNTAsNiBAQCBzdGF0aWMgdm9pZCBwb29sX2lvX2hpbnRzKHN0cnVjdCBkbV90YXJnZXQg KnRpLCBzdHJ1Y3QgcXVldWVfbGltaXRzICpsaW1pdHMpCiAJCS8qCiAJCSAqIE11c3QgZXhwbGlj aXRseSBkaXNhbGxvdyBzdGFja2luZyBkaXNjYXJkIGxpbWl0cyBvdGhlcndpc2UgdGhlCiAJCSAq IGJsb2NrIGxheWVyIHdpbGwgc3RhY2sgdGhlbSBpZiBwb29sJ3MgZGF0YSBkZXZpY2UgaGFzIHN1 cHBvcnQuCi0JCSAqIFFVRVVFX0ZMQUdfRElTQ0FSRCB3b3VsZG4ndCBiZSBzZXQgYnV0IHRoZXJl IGlzIG5vIHdheSBmb3IgdGhlCi0JCSAqIHVzZXIgdG8gc2VlIHRoYXQsIHNvIG1ha2Ugc3VyZSB0 byBzZXQgYWxsIGRpc2NhcmQgbGltaXRzIHRvIDAuCiAJCSAqLwogCQlsaW1pdHMtPmRpc2NhcmRf Z3JhbnVsYXJpdHkgPSAwOwogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLmMg Yi9kcml2ZXJzL21kL2RtLmMKaW5kZXggM2M1ZmFkN2M0ZWU2OC4uZGJiZjY0Y2U3ZTkyNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9tZC9kbS5jCisrKyBiL2RyaXZlcnMvbWQvZG0uYwpAQCAtOTU1LDcg Kzk1NSw2IEBAIHZvaWQgZGlzYWJsZV9kaXNjYXJkKHN0cnVjdCBtYXBwZWRfZGV2aWNlICptZCkK IAogCS8qIGRldmljZSBkb2Vzbid0IHJlYWxseSBzdXBwb3J0IERJU0NBUkQsIGRpc2FibGUgaXQg Ki8KIAlsaW1pdHMtPm1heF9kaXNjYXJkX3NlY3RvcnMgPSAwOwotCWJsa19xdWV1ZV9mbGFnX2Ns ZWFyKFFVRVVFX0ZMQUdfRElTQ0FSRCwgbWQtPnF1ZXVlKTsKIH0KIAogdm9pZCBkaXNhYmxlX3dy aXRlX3plcm9lcyhzdHJ1Y3QgbWFwcGVkX2RldmljZSAqbWQpCkBAIC05ODIsNyArOTgxLDcgQEAg c3RhdGljIHZvaWQgY2xvbmVfZW5kaW8oc3RydWN0IGJpbyAqYmlvKQogCiAJaWYgKHVubGlrZWx5 KGVycm9yID09IEJMS19TVFNfVEFSR0VUKSkgewogCQlpZiAoYmlvX29wKGJpbykgPT0gUkVRX09Q X0RJU0NBUkQgJiYKLQkJICAgICFxLT5saW1pdHMubWF4X2Rpc2NhcmRfc2VjdG9ycykKKwkJICAg ICFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoYmlvLT5iaV9iZGV2KSkKIAkJCWRpc2FibGVfZGlz Y2FyZChtZCk7CiAJCWVsc2UgaWYgKGJpb19vcChiaW8pID09IFJFUV9PUF9XUklURV9aRVJPRVMg JiYKIAkJCSAhcS0+bGltaXRzLm1heF93cml0ZV96ZXJvZXNfc2VjdG9ycykKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbWQvbWQtbGluZWFyLmMgYi9kcml2ZXJzL21kL21kLWxpbmVhci5jCmluZGV4IDBm NTViMDc5MzcxYjEuLjEzOGEzYjI1YzVjODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvbWQtbGlu ZWFyLmMKKysrIGIvZHJpdmVycy9tZC9tZC1saW5lYXIuYwpAQCAtNjQsNyArNjQsNiBAQCBzdGF0 aWMgc3RydWN0IGxpbmVhcl9jb25mICpsaW5lYXJfY29uZihzdHJ1Y3QgbWRkZXYgKm1kZGV2LCBp bnQgcmFpZF9kaXNrcykKIAlzdHJ1Y3QgbGluZWFyX2NvbmYgKmNvbmY7CiAJc3RydWN0IG1kX3Jk ZXYgKnJkZXY7CiAJaW50IGksIGNudDsKLQlib29sIGRpc2NhcmRfc3VwcG9ydGVkID0gZmFsc2U7 CiAKIAljb25mID0ga3phbGxvYyhzdHJ1Y3Rfc2l6ZShjb25mLCBkaXNrcywgcmFpZF9kaXNrcyks IEdGUF9LRVJORUwpOwogCWlmICghY29uZikKQEAgLTk2LDkgKzk1LDYgQEAgc3RhdGljIHN0cnVj dCBsaW5lYXJfY29uZiAqbGluZWFyX2NvbmYoc3RydWN0IG1kZGV2ICptZGRldiwgaW50IHJhaWRf ZGlza3MpCiAKIAkJY29uZi0+YXJyYXlfc2VjdG9ycyArPSByZGV2LT5zZWN0b3JzOwogCQljbnQr KzsKLQotCQlpZiAoYmxrX3F1ZXVlX2Rpc2NhcmQoYmRldl9nZXRfcXVldWUocmRldi0+YmRldikp KQotCQkJZGlzY2FyZF9zdXBwb3J0ZWQgPSB0cnVlOwogCX0KIAlpZiAoY250ICE9IHJhaWRfZGlz a3MpIHsKIAkJcHJfd2FybigibWQvbGluZWFyOiVzOiBub3QgZW5vdWdoIGRyaXZlcyBwcmVzZW50 LiBBYm9ydGluZyFcbiIsCkBAIC0xMDYsMTEgKzEwMiw2IEBAIHN0YXRpYyBzdHJ1Y3QgbGluZWFy X2NvbmYgKmxpbmVhcl9jb25mKHN0cnVjdCBtZGRldiAqbWRkZXYsIGludCByYWlkX2Rpc2tzKQog CQlnb3RvIG91dDsKIAl9CiAKLQlpZiAoIWRpc2NhcmRfc3VwcG9ydGVkKQotCQlibGtfcXVldWVf ZmxhZ19jbGVhcihRVUVVRV9GTEFHX0RJU0NBUkQsIG1kZGV2LT5xdWV1ZSk7Ci0JZWxzZQotCQli bGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19ESVNDQVJELCBtZGRldi0+cXVldWUpOwotCiAJ LyoKIAkgKiBIZXJlIHdlIGNhbGN1bGF0ZSB0aGUgZGV2aWNlIG9mZnNldHMuCiAJICovCkBAIC0y NTIsNyArMjQzLDcgQEAgc3RhdGljIGJvb2wgbGluZWFyX21ha2VfcmVxdWVzdChzdHJ1Y3QgbWRk ZXYgKm1kZGV2LCBzdHJ1Y3QgYmlvICpiaW8pCiAJCXN0YXJ0X3NlY3RvciArIGRhdGFfb2Zmc2V0 OwogCiAJaWYgKHVubGlrZWx5KChiaW9fb3AoYmlvKSA9PSBSRVFfT1BfRElTQ0FSRCkgJiYKLQkJ ICAgICAhYmxrX3F1ZXVlX2Rpc2NhcmQoYmlvLT5iaV9iZGV2LT5iZF9kaXNrLT5xdWV1ZSkpKSB7 CisJCSAgICAgIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhiaW8tPmJpX2JkZXYpKSkgewogCQkv KiBKdXN0IGlnbm9yZSBpdCAqLwogCQliaW9fZW5kaW8oYmlvKTsKIAl9IGVsc2UgewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9tZC9yYWlkMC5jIGIvZHJpdmVycy9tZC9yYWlkMC5jCmluZGV4IGIyMWUx MDExODNmNDQuLjcyMzFmNWUxZWFhNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDAuYwor KysgYi9kcml2ZXJzL21kL3JhaWQwLmMKQEAgLTM5OSw3ICszOTksNiBAQCBzdGF0aWMgaW50IHJh aWQwX3J1bihzdHJ1Y3QgbWRkZXYgKm1kZGV2KQogCWNvbmYgPSBtZGRldi0+cHJpdmF0ZTsKIAlp ZiAobWRkZXYtPnF1ZXVlKSB7CiAJCXN0cnVjdCBtZF9yZGV2ICpyZGV2OwotCQlib29sIGRpc2Nh cmRfc3VwcG9ydGVkID0gZmFsc2U7CiAKIAkJYmxrX3F1ZXVlX21heF9od19zZWN0b3JzKG1kZGV2 LT5xdWV1ZSwgbWRkZXYtPmNodW5rX3NlY3RvcnMpOwogCQlibGtfcXVldWVfbWF4X3dyaXRlX3pl cm9lc19zZWN0b3JzKG1kZGV2LT5xdWV1ZSwgbWRkZXYtPmNodW5rX3NlY3RvcnMpOwpAQCAtNDEy LDEzICs0MTEsNyBAQCBzdGF0aWMgaW50IHJhaWQwX3J1bihzdHJ1Y3QgbWRkZXYgKm1kZGV2KQog CQlyZGV2X2Zvcl9lYWNoKHJkZXYsIG1kZGV2KSB7CiAJCQlkaXNrX3N0YWNrX2xpbWl0cyhtZGRl di0+Z2VuZGlzaywgcmRldi0+YmRldiwKIAkJCQkJICByZGV2LT5kYXRhX29mZnNldCA8PCA5KTsK LQkJCWlmIChibGtfcXVldWVfZGlzY2FyZChiZGV2X2dldF9xdWV1ZShyZGV2LT5iZGV2KSkpCi0J CQkJZGlzY2FyZF9zdXBwb3J0ZWQgPSB0cnVlOwogCQl9Ci0JCWlmICghZGlzY2FyZF9zdXBwb3J0 ZWQpCi0JCQlibGtfcXVldWVfZmxhZ19jbGVhcihRVUVVRV9GTEFHX0RJU0NBUkQsIG1kZGV2LT5x dWV1ZSk7Ci0JCWVsc2UKLQkJCWJsa19xdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFHX0RJU0NBUkQs IG1kZGV2LT5xdWV1ZSk7CiAJfQogCiAJLyogY2FsY3VsYXRlIGFycmF5IGRldmljZSBzaXplICov CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL3JhaWQxLmMgYi9kcml2ZXJzL21kL3JhaWQxLmMKaW5k ZXggZDgxYjg5Njg1NWY5Zi4uM2RhNzQ5ZDE1MGExNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9y YWlkMS5jCisrKyBiL2RyaXZlcnMvbWQvcmFpZDEuYwpAQCAtODAyLDcgKzgwMiw3IEBAIHN0YXRp YyB2b2lkIGZsdXNoX2Jpb19saXN0KHN0cnVjdCByMWNvbmYgKmNvbmYsIHN0cnVjdCBiaW8gKmJp bykKIAkJaWYgKHRlc3RfYml0KEZhdWx0eSwgJnJkZXYtPmZsYWdzKSkgewogCQkJYmlvX2lvX2Vy cm9yKGJpbyk7CiAJCX0gZWxzZSBpZiAodW5saWtlbHkoKGJpb19vcChiaW8pID09IFJFUV9PUF9E SVNDQVJEKSAmJgotCQkJCSAgICAhYmxrX3F1ZXVlX2Rpc2NhcmQoYmlvLT5iaV9iZGV2LT5iZF9k aXNrLT5xdWV1ZSkpKQorCQkJCSAgICAhYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGJpby0+Ymlf YmRldikpKQogCQkJLyogSnVzdCBpZ25vcmUgaXQgKi8KIAkJCWJpb19lbmRpbyhiaW8pOwogCQll bHNlCkBAIC0xODI2LDggKzE4MjYsNiBAQCBzdGF0aWMgaW50IHJhaWQxX2FkZF9kaXNrKHN0cnVj dCBtZGRldiAqbWRkZXYsIHN0cnVjdCBtZF9yZGV2ICpyZGV2KQogCQkJYnJlYWs7CiAJCX0KIAl9 Ci0JaWYgKG1kZGV2LT5xdWV1ZSAmJiBibGtfcXVldWVfZGlzY2FyZChiZGV2X2dldF9xdWV1ZShy ZGV2LT5iZGV2KSkpCi0JCWJsa19xdWV1ZV9mbGFnX3NldChRVUVVRV9GTEFHX0RJU0NBUkQsIG1k ZGV2LT5xdWV1ZSk7CiAJcHJpbnRfY29uZihjb25mKTsKIAlyZXR1cm4gZXJyOwogfQpAQCAtMzEw Niw3ICszMTA0LDYgQEAgc3RhdGljIGludCByYWlkMV9ydW4oc3RydWN0IG1kZGV2ICptZGRldikK IAlpbnQgaTsKIAlzdHJ1Y3QgbWRfcmRldiAqcmRldjsKIAlpbnQgcmV0OwotCWJvb2wgZGlzY2Fy ZF9zdXBwb3J0ZWQgPSBmYWxzZTsKIAogCWlmIChtZGRldi0+bGV2ZWwgIT0gMSkgewogCQlwcl93 YXJuKCJtZC9yYWlkMTolczogcmFpZCBsZXZlbCBub3Qgc2V0IHRvIG1pcnJvcmluZyAoJWQpXG4i LApAQCAtMzE0MSw4ICszMTM4LDYgQEAgc3RhdGljIGludCByYWlkMV9ydW4oc3RydWN0IG1kZGV2 ICptZGRldikKIAkJCWNvbnRpbnVlOwogCQlkaXNrX3N0YWNrX2xpbWl0cyhtZGRldi0+Z2VuZGlz aywgcmRldi0+YmRldiwKIAkJCQkgIHJkZXYtPmRhdGFfb2Zmc2V0IDw8IDkpOwotCQlpZiAoYmxr X3F1ZXVlX2Rpc2NhcmQoYmRldl9nZXRfcXVldWUocmRldi0+YmRldikpKQotCQkJZGlzY2FyZF9z dXBwb3J0ZWQgPSB0cnVlOwogCX0KIAogCW1kZGV2LT5kZWdyYWRlZCA9IDA7CkBAIC0zMTc5LDE1 ICszMTc0LDYgQEAgc3RhdGljIGludCByYWlkMV9ydW4oc3RydWN0IG1kZGV2ICptZGRldikKIAog CW1kX3NldF9hcnJheV9zZWN0b3JzKG1kZGV2LCByYWlkMV9zaXplKG1kZGV2LCAwLCAwKSk7CiAK LQlpZiAobWRkZXYtPnF1ZXVlKSB7Ci0JCWlmIChkaXNjYXJkX3N1cHBvcnRlZCkKLQkJCWJsa19x dWV1ZV9mbGFnX3NldChRVUVVRV9GTEFHX0RJU0NBUkQsCi0JCQkJCQltZGRldi0+cXVldWUpOwot CQllbHNlCi0JCQlibGtfcXVldWVfZmxhZ19jbGVhcihRVUVVRV9GTEFHX0RJU0NBUkQsCi0JCQkJ CQkgIG1kZGV2LT5xdWV1ZSk7Ci0JfQotCiAJcmV0ID0gbWRfaW50ZWdyaXR5X3JlZ2lzdGVyKG1k ZGV2KTsKIAlpZiAocmV0KSB7CiAJCW1kX3VucmVnaXN0ZXJfdGhyZWFkKCZtZGRldi0+dGhyZWFk KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFpZDEwLmMgYi9kcml2ZXJzL21kL3JhaWQxMC5j CmluZGV4IDc4MTZjOGIyZTgwODcuLjM2YTQ2MDAxNWNmNTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bWQvcmFpZDEwLmMKKysrIGIvZHJpdmVycy9tZC9yYWlkMTAuYwpAQCAtODg4LDcgKzg4OCw3IEBA IHN0YXRpYyB2b2lkIGZsdXNoX3BlbmRpbmdfd3JpdGVzKHN0cnVjdCByMTBjb25mICpjb25mKQog CQkJaWYgKHRlc3RfYml0KEZhdWx0eSwgJnJkZXYtPmZsYWdzKSkgewogCQkJCWJpb19pb19lcnJv cihiaW8pOwogCQkJfSBlbHNlIGlmICh1bmxpa2VseSgoYmlvX29wKGJpbykgPT0gIFJFUV9PUF9E SVNDQVJEKSAmJgotCQkJCQkgICAgIWJsa19xdWV1ZV9kaXNjYXJkKGJpby0+YmlfYmRldi0+YmRf ZGlzay0+cXVldWUpKSkKKwkJCQkJICAgICFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoYmlvLT5i aV9iZGV2KSkpCiAJCQkJLyogSnVzdCBpZ25vcmUgaXQgKi8KIAkJCQliaW9fZW5kaW8oYmlvKTsK IAkJCWVsc2UKQEAgLTEwODMsNyArMTA4Myw3IEBAIHN0YXRpYyB2b2lkIHJhaWQxMF91bnBsdWco c3RydWN0IGJsa19wbHVnX2NiICpjYiwgYm9vbCBmcm9tX3NjaGVkdWxlKQogCQlpZiAodGVzdF9i aXQoRmF1bHR5LCAmcmRldi0+ZmxhZ3MpKSB7CiAJCQliaW9faW9fZXJyb3IoYmlvKTsKIAkJfSBl bHNlIGlmICh1bmxpa2VseSgoYmlvX29wKGJpbykgPT0gIFJFUV9PUF9ESVNDQVJEKSAmJgotCQkJ CSAgICAhYmxrX3F1ZXVlX2Rpc2NhcmQoYmlvLT5iaV9iZGV2LT5iZF9kaXNrLT5xdWV1ZSkpKQor CQkJCSAgICAhYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKGJpby0+YmlfYmRldikpKQogCQkJLyog SnVzdCBpZ25vcmUgaXQgKi8KIAkJCWJpb19lbmRpbyhiaW8pOwogCQllbHNlCkBAIC0yMTQ0LDgg KzIxNDQsNiBAQCBzdGF0aWMgaW50IHJhaWQxMF9hZGRfZGlzayhzdHJ1Y3QgbWRkZXYgKm1kZGV2 LCBzdHJ1Y3QgbWRfcmRldiAqcmRldikKIAkJcmN1X2Fzc2lnbl9wb2ludGVyKHAtPnJkZXYsIHJk ZXYpOwogCQlicmVhazsKIAl9Ci0JaWYgKG1kZGV2LT5xdWV1ZSAmJiBibGtfcXVldWVfZGlzY2Fy ZChiZGV2X2dldF9xdWV1ZShyZGV2LT5iZGV2KSkpCi0JCWJsa19xdWV1ZV9mbGFnX3NldChRVUVV RV9GTEFHX0RJU0NBUkQsIG1kZGV2LT5xdWV1ZSk7CiAKIAlwcmludF9jb25mKGNvbmYpOwogCXJl dHVybiBlcnI7CkBAIC00MDY5LDcgKzQwNjcsNiBAQCBzdGF0aWMgaW50IHJhaWQxMF9ydW4oc3Ry dWN0IG1kZGV2ICptZGRldikKIAlzZWN0b3JfdCBzaXplOwogCXNlY3Rvcl90IG1pbl9vZmZzZXRf ZGlmZiA9IDA7CiAJaW50IGZpcnN0ID0gMTsKLQlib29sIGRpc2NhcmRfc3VwcG9ydGVkID0gZmFs c2U7CiAKIAlpZiAobWRkZXZfaW5pdF93cml0ZXNfcGVuZGluZyhtZGRldikgPCAwKQogCQlyZXR1 cm4gLUVOT01FTTsKQEAgLTQxNDAsMjAgKzQxMzcsOSBAQCBzdGF0aWMgaW50IHJhaWQxMF9ydW4o c3RydWN0IG1kZGV2ICptZGRldikKIAkJCQkJICByZGV2LT5kYXRhX29mZnNldCA8PCA5KTsKIAog CQlkaXNrLT5oZWFkX3Bvc2l0aW9uID0gMDsKLQotCQlpZiAoYmxrX3F1ZXVlX2Rpc2NhcmQoYmRl dl9nZXRfcXVldWUocmRldi0+YmRldikpKQotCQkJZGlzY2FyZF9zdXBwb3J0ZWQgPSB0cnVlOwog CQlmaXJzdCA9IDA7CiAJfQogCi0JaWYgKG1kZGV2LT5xdWV1ZSkgewotCQlpZiAoZGlzY2FyZF9z dXBwb3J0ZWQpCi0JCQlibGtfcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19ESVNDQVJELAotCQkJ CQkJbWRkZXYtPnF1ZXVlKTsKLQkJZWxzZQotCQkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVf RkxBR19ESVNDQVJELAotCQkJCQkJICBtZGRldi0+cXVldWUpOwotCX0KIAkvKiBuZWVkIHRvIGNo ZWNrIHRoYXQgZXZlcnkgYmxvY2sgaGFzIGF0IGxlYXN0IG9uZSB3b3JraW5nIG1pcnJvciAqLwog CWlmICghZW5vdWdoKGNvbmYsIC0xKSkgewogCQlwcl9lcnIoIm1kL3JhaWQxMDolczogbm90IGVu b3VnaCBvcGVyYXRpb25hbCBtaXJyb3JzLlxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcmFp ZDUtY2FjaGUuYyBiL2RyaXZlcnMvbWQvcmFpZDUtY2FjaGUuYwppbmRleCBhN2Q1MGZmOTAyMGE4 Li5jM2NiZjlhNTc0YTM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL3JhaWQ1LWNhY2hlLmMKKysr IGIvZHJpdmVycy9tZC9yYWlkNS1jYWNoZS5jCkBAIC0xMzE4LDcgKzEzMTgsNyBAQCBzdGF0aWMg dm9pZCByNWxfd3JpdGVfc3VwZXJfYW5kX2Rpc2NhcmRfc3BhY2Uoc3RydWN0IHI1bF9sb2cgKmxv ZywKIAogCXI1bF93cml0ZV9zdXBlcihsb2csIGVuZCk7CiAKLQlpZiAoIWJsa19xdWV1ZV9kaXNj YXJkKGJkZXZfZ2V0X3F1ZXVlKGJkZXYpKSkKKwlpZiAoIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9y cyhiZGV2KSkKIAkJcmV0dXJuOwogCiAJbWRkZXYgPSBsb2ctPnJkZXYtPm1kZGV2OwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9tZC9yYWlkNS5jIGIvZHJpdmVycy9tZC9yYWlkNS5jCmluZGV4IDBiYmFl MGU2Mzg2NjYuLjU5ZjkxZTM5MmEyYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDUuYwor KysgYi9kcml2ZXJzL21kL3JhaWQ1LmMKQEAgLTc3NzYsMTQgKzc3NzYsMTAgQEAgc3RhdGljIGlu dCByYWlkNV9ydW4oc3RydWN0IG1kZGV2ICptZGRldikKIAkJICogQSBiZXR0ZXIgaWRlYSBtaWdo dCBiZSB0byB0dXJuIERJU0NBUkQgaW50byBXUklURV9aRVJPRVMKIAkJICogcmVxdWVzdHMsIGFz IHRoYXQgaXMgcmVxdWlyZWQgdG8gYmUgc2FmZS4KIAkJICovCi0JCWlmIChkZXZpY2VzX2hhbmRs ZV9kaXNjYXJkX3NhZmVseSAmJgotCQkgICAgbWRkZXYtPnF1ZXVlLT5saW1pdHMubWF4X2Rpc2Nh cmRfc2VjdG9ycyA+PSAoc3RyaXBlID4+IDkpICYmCi0JCSAgICBtZGRldi0+cXVldWUtPmxpbWl0 cy5kaXNjYXJkX2dyYW51bGFyaXR5ID49IHN0cmlwZSkKLQkJCWJsa19xdWV1ZV9mbGFnX3NldChR VUVVRV9GTEFHX0RJU0NBUkQsCi0JCQkJCQltZGRldi0+cXVldWUpOwotCQllbHNlCi0JCQlibGtf cXVldWVfZmxhZ19jbGVhcihRVUVVRV9GTEFHX0RJU0NBUkQsCi0JCQkJCQltZGRldi0+cXVldWUp OworCQlpZiAoIWRldmljZXNfaGFuZGxlX2Rpc2NhcmRfc2FmZWx5IHx8CisJCSAgICBtZGRldi0+ cXVldWUtPmxpbWl0cy5tYXhfZGlzY2FyZF9zZWN0b3JzIDwgKHN0cmlwZSA+PiA5KSB8fAorCQkg ICAgbWRkZXYtPnF1ZXVlLT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eSA8IHN0cmlwZSkKKwkJ CWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9zZWN0b3JzKG1kZGV2LT5xdWV1ZSwgMCk7CiAKIAkJYmxr X3F1ZXVlX21heF9od19zZWN0b3JzKG1kZGV2LT5xdWV1ZSwgVUlOVF9NQVgpOwogCX0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbW1jL2NvcmUvcXVldWUuYyBiL2RyaXZlcnMvbW1jL2NvcmUvcXVldWUu YwppbmRleCBjNjliMmQ5ZGY2ZjE2Li5jYWM2MzE1MDEwYTNkIDEwMDY0NAotLS0gYS9kcml2ZXJz L21tYy9jb3JlL3F1ZXVlLmMKKysrIGIvZHJpdmVycy9tbWMvY29yZS9xdWV1ZS5jCkBAIC0xODMs NyArMTgzLDYgQEAgc3RhdGljIHZvaWQgbW1jX3F1ZXVlX3NldHVwX2Rpc2NhcmQoc3RydWN0IHJl cXVlc3RfcXVldWUgKnEsCiAJaWYgKCFtYXhfZGlzY2FyZCkKIAkJcmV0dXJuOwogCi0JYmxrX3F1 ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfRElTQ0FSRCwgcSk7CiAJYmxrX3F1ZXVlX21heF9kaXNj YXJkX3NlY3RvcnMocSwgbWF4X2Rpc2NhcmQpOwogCXEtPmxpbWl0cy5kaXNjYXJkX2dyYW51bGFy aXR5ID0gY2FyZC0+cHJlZl9lcmFzZSA8PCA5OwogCS8qIGdyYW51bGFyaXR5IG11c3Qgbm90IGJl IGdyZWF0ZXIgdGhhbiBtYXguIGRpc2NhcmQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL210 ZF9ibGtkZXZzLmMgYi9kcml2ZXJzL210ZC9tdGRfYmxrZGV2cy5jCmluZGV4IDY0ZDJiMDkzZjEx NGIuLmY3MzE3MjExMTQ2NTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL210ZF9ibGtkZXZzLmMK KysrIGIvZHJpdmVycy9tdGQvbXRkX2Jsa2RldnMuYwpAQCAtMzc3LDcgKzM3Nyw2IEBAIGludCBh ZGRfbXRkX2Jsa3RyYW5zX2RldihzdHJ1Y3QgbXRkX2Jsa3RyYW5zX2RldiAqbmV3KQogCWJsa19x dWV1ZV9mbGFnX2NsZWFyKFFVRVVFX0ZMQUdfQUREX1JBTkRPTSwgbmV3LT5ycSk7CiAKIAlpZiAo dHItPmRpc2NhcmQpIHsKLQkJYmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfRElTQ0FSRCwg bmV3LT5ycSk7CiAJCWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9zZWN0b3JzKG5ldy0+cnEsIFVJTlRf TUFYKTsKIAkJbmV3LT5ycS0+bGltaXRzLmRpc2NhcmRfZ3JhbnVsYXJpdHkgPSB0ci0+Ymxrc2l6 ZTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMgYi9kcml2ZXJzL252 bWUvaG9zdC9jb3JlLmMKaW5kZXggZWZiODVjNmQ4ZTJkNS4uYjAxMzAwZDljZDM3MiAxMDA2NDQK LS0tIGEvZHJpdmVycy9udm1lL2hvc3QvY29yZS5jCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L2Nv cmUuYwpAQCAtMTYwOCw3ICsxNjA4LDcgQEAgc3RhdGljIHZvaWQgbnZtZV9jb25maWdfZGlzY2Fy ZChzdHJ1Y3QgZ2VuZGlzayAqZGlzaywgc3RydWN0IG52bWVfbnMgKm5zKQogCXUzMiBzaXplID0g cXVldWVfbG9naWNhbF9ibG9ja19zaXplKHF1ZXVlKTsKIAogCWlmIChjdHJsLT5tYXhfZGlzY2Fy ZF9zZWN0b3JzID09IDApIHsKLQkJYmxrX3F1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19ESVND QVJELCBxdWV1ZSk7CisJCWJsa19xdWV1ZV9tYXhfZGlzY2FyZF9zZWN0b3JzKHF1ZXVlLCAwKTsK IAkJcmV0dXJuOwogCX0KIApAQCAtMTYxOSw3ICsxNjE5LDcgQEAgc3RhdGljIHZvaWQgbnZtZV9j b25maWdfZGlzY2FyZChzdHJ1Y3QgZ2VuZGlzayAqZGlzaywgc3RydWN0IG52bWVfbnMgKm5zKQog CXF1ZXVlLT5saW1pdHMuZGlzY2FyZF9ncmFudWxhcml0eSA9IHNpemU7CiAKIAkvKiBJZiBkaXNj YXJkIGlzIGFscmVhZHkgZW5hYmxlZCwgZG9uJ3QgcmVzZXQgcXVldWUgbGltaXRzICovCi0JaWYg KGJsa19xdWV1ZV9mbGFnX3Rlc3RfYW5kX3NldChRVUVVRV9GTEFHX0RJU0NBUkQsIHF1ZXVlKSkK KwlpZiAocXVldWUtPmxpbWl0cy5tYXhfZGlzY2FyZF9zZWN0b3JzKQogCQlyZXR1cm47CiAKIAli bGtfcXVldWVfbWF4X2Rpc2NhcmRfc2VjdG9ycyhxdWV1ZSwgY3RybC0+bWF4X2Rpc2NhcmRfc2Vj dG9ycyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9mYmEuYyBiL2RyaXZl cnMvczM5MC9ibG9jay9kYXNkX2ZiYS5jCmluZGV4IGUwODRmNGRlZGRkZGQuLjhiZDU2NjVkYjkx OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2ZiYS5jCisrKyBiL2RyaXZl cnMvczM5MC9ibG9jay9kYXNkX2ZiYS5jCkBAIC03OTEsNyArNzkxLDYgQEAgc3RhdGljIHZvaWQg ZGFzZF9mYmFfc2V0dXBfYmxrX3F1ZXVlKHN0cnVjdCBkYXNkX2Jsb2NrICpibG9jaykKIAogCWJs a19xdWV1ZV9tYXhfZGlzY2FyZF9zZWN0b3JzKHEsIG1heF9kaXNjYXJkX3NlY3RvcnMpOwogCWJs a19xdWV1ZV9tYXhfd3JpdGVfemVyb2VzX3NlY3RvcnMocSwgbWF4X2Rpc2NhcmRfc2VjdG9ycyk7 Ci0JYmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfRElTQ0FSRCwgcSk7CiB9CiAKIHN0YXRp YyBpbnQgZGFzZF9mYmFfcGVfaGFuZGxlcihzdHJ1Y3QgZGFzZF9kZXZpY2UgKmRldmljZSwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZC5jIGIvZHJpdmVycy9zY3NpL3NkLmMKaW5kZXggZGM2 ZTU1NzYxZmQxZi4uOTY5NGUyY2ZhZjlhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3NkLmMK KysrIGIvZHJpdmVycy9zY3NpL3NkLmMKQEAgLTc5Nyw3ICs3OTcsNiBAQCBzdGF0aWMgdm9pZCBz ZF9jb25maWdfZGlzY2FyZChzdHJ1Y3Qgc2NzaV9kaXNrICpzZGtwLCB1bnNpZ25lZCBpbnQgbW9k ZSkKIAljYXNlIFNEX0xCUF9GVUxMOgogCWNhc2UgU0RfTEJQX0RJU0FCTEU6CiAJCWJsa19xdWV1 ZV9tYXhfZGlzY2FyZF9zZWN0b3JzKHEsIDApOwotCQlibGtfcXVldWVfZmxhZ19jbGVhcihRVUVV RV9GTEFHX0RJU0NBUkQsIHEpOwogCQlyZXR1cm47CiAKIAljYXNlIFNEX0xCUF9VTk1BUDoKQEAg LTgzMCw3ICs4MjksNiBAQCBzdGF0aWMgdm9pZCBzZF9jb25maWdfZGlzY2FyZChzdHJ1Y3Qgc2Nz aV9kaXNrICpzZGtwLCB1bnNpZ25lZCBpbnQgbW9kZSkKIAl9CiAKIAlibGtfcXVldWVfbWF4X2Rp c2NhcmRfc2VjdG9ycyhxLCBtYXhfYmxvY2tzICogKGxvZ2ljYWxfYmxvY2tfc2l6ZSA+PiA5KSk7 Ci0JYmxrX3F1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfRElTQ0FSRCwgcSk7CiB9CiAKIHN0YXRp YyBibGtfc3RhdHVzX3Qgc2Rfc2V0dXBfdW5tYXBfY21uZChzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQp CmRpZmYgLS1naXQgYS9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29yZV9kZXZpY2UuYyBiL2RyaXZl cnMvdGFyZ2V0L3RhcmdldF9jb3JlX2RldmljZS5jCmluZGV4IGMzZTI1YmFjOTBkNTkuLjZjYjlm ODc4NDMyNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2RldmljZS5j CisrKyBiL2RyaXZlcnMvdGFyZ2V0L3RhcmdldF9jb3JlX2RldmljZS5jCkBAIC04MzgsNyArODM4 LDcgQEAgYm9vbCB0YXJnZXRfY29uZmlndXJlX3VubWFwX2Zyb21fcXVldWUoc3RydWN0IHNlX2Rl dl9hdHRyaWIgKmF0dHJpYiwKIAlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1 ZXVlKGJkZXYpOwogCWludCBibG9ja19zaXplID0gYmRldl9sb2dpY2FsX2Jsb2NrX3NpemUoYmRl dik7CiAKLQlpZiAoIWJsa19xdWV1ZV9kaXNjYXJkKHEpKQorCWlmICghYmRldl9tYXhfZGlzY2Fy ZF9zZWN0b3JzKGJkZXYpKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlhdHRyaWItPm1heF91bm1hcF9s YmFfY291bnQgPQpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvZXh0ZW50LXRyZWUuYyBiL2ZzL2J0cmZz L2V4dGVudC10cmVlLmMKaW5kZXggZjQ3NzAzNWEyYWMyMy4uZWZkOGRlYjNhYjdlOCAxMDA2NDQK LS0tIGEvZnMvYnRyZnMvZXh0ZW50LXRyZWUuYworKysgYi9mcy9idHJmcy9leHRlbnQtdHJlZS5j CkBAIC0xMjkxLDcgKzEyOTEsNyBAQCBzdGF0aWMgaW50IGRvX2Rpc2NhcmRfZXh0ZW50KHN0cnVj dCBidHJmc19pb19zdHJpcGUgKnN0cmlwZSwgdTY0ICpieXRlcykKIAkJcmV0ID0gYnRyZnNfcmVz ZXRfZGV2aWNlX3pvbmUoZGV2X3JlcGxhY2UtPnRndGRldiwgcGh5cywgbGVuLAogCQkJCQkgICAg ICAmZGlzY2FyZGVkKTsKIAkJZGlzY2FyZGVkICs9IHNyY19kaXNjOwotCX0gZWxzZSBpZiAoYmxr X3F1ZXVlX2Rpc2NhcmQoYmRldl9nZXRfcXVldWUoc3RyaXBlLT5kZXYtPmJkZXYpKSkgeworCX0g ZWxzZSBpZiAoYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKHN0cmlwZS0+ZGV2LT5iZGV2KSkgewog CQlyZXQgPSBidHJmc19pc3N1ZV9kaXNjYXJkKGRldi0+YmRldiwgcGh5cywgbGVuLCAmZGlzY2Fy ZGVkKTsKIAl9IGVsc2UgewogCQlyZXQgPSAwOwpAQCAtNTk4Nyw3ICs1OTg3LDcgQEAgc3RhdGlj IGludCBidHJmc190cmltX2ZyZWVfZXh0ZW50cyhzdHJ1Y3QgYnRyZnNfZGV2aWNlICpkZXZpY2Us IHU2NCAqdHJpbW1lZCkKIAkqdHJpbW1lZCA9IDA7CiAKIAkvKiBEaXNjYXJkIG5vdCBzdXBwb3J0 ZWQgPSBub3RoaW5nIHRvIGRvLiAqLwotCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQoYmRldl9nZXRf cXVldWUoZGV2aWNlLT5iZGV2KSkpCisJaWYgKCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoZGV2 aWNlLT5iZGV2KSkKIAkJcmV0dXJuIDA7CiAKIAkvKiBOb3Qgd3JpdGFibGUgPSBub3RoaW5nIHRv IGRvLiAqLwpkaWZmIC0tZ2l0IGEvZnMvYnRyZnMvaW9jdGwuYyBiL2ZzL2J0cmZzL2lvY3RsLmMK aW5kZXggZjQ2ZTcxMDYxOTQyZC4uMDk2YmIwZGEwM2YxYyAxMDA2NDQKLS0tIGEvZnMvYnRyZnMv aW9jdGwuYworKysgYi9mcy9idHJmcy9pb2N0bC5jCkBAIC01MDEsNyArNTAxLDcgQEAgc3RhdGlj IG5vaW5saW5lIGludCBidHJmc19pb2N0bF9maXRyaW0oc3RydWN0IGJ0cmZzX2ZzX2luZm8gKmZz X2luZm8sCiAJCWlmICghZGV2aWNlLT5iZGV2KQogCQkJY29udGludWU7CiAJCXEgPSBiZGV2X2dl dF9xdWV1ZShkZXZpY2UtPmJkZXYpOwotCQlpZiAoYmxrX3F1ZXVlX2Rpc2NhcmQocSkpIHsKKwkJ aWYgKGJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhkZXZpY2UtPmJkZXYpKSB7CiAJCQludW1fZGV2 aWNlcysrOwogCQkJbWlubGVuID0gbWluX3QodTY0LCBxLT5saW1pdHMuZGlzY2FyZF9ncmFudWxh cml0eSwKIAkJCQkgICAgIG1pbmxlbik7CmRpZmYgLS1naXQgYS9mcy9leGZhdC9maWxlLmMgYi9m cy9leGZhdC9maWxlLmMKaW5kZXggMmY1MTMwMDU5MjM2Ni4uNzY1ZTRmNjNkZDE4ZCAxMDA2NDQK LS0tIGEvZnMvZXhmYXQvZmlsZS5jCisrKyBiL2ZzL2V4ZmF0L2ZpbGUuYwpAQCAtMzU4LDcgKzM1 OCw3IEBAIHN0YXRpYyBpbnQgZXhmYXRfaW9jdGxfZml0cmltKHN0cnVjdCBpbm9kZSAqaW5vZGUs IHVuc2lnbmVkIGxvbmcgYXJnKQogCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKIAkJcmV0 dXJuIC1FUEVSTTsKIAotCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQocSkpCisJaWYgKCFiZGV2X21h eF9kaXNjYXJkX3NlY3RvcnMoaW5vZGUtPmlfc2ItPnNfYmRldikpCiAJCXJldHVybiAtRU9QTk9U U1VQUDsKIAogCWlmIChjb3B5X2Zyb21fdXNlcigmcmFuZ2UsIChzdHJ1Y3QgZnN0cmltX3Jhbmdl IF9fdXNlciAqKWFyZywgc2l6ZW9mKHJhbmdlKSkpCmRpZmYgLS1naXQgYS9mcy9leGZhdC9zdXBl ci5jIGIvZnMvZXhmYXQvc3VwZXIuYwppbmRleCA4Y2EyMWU3OTE3ZDE2Li5iZTA3ODhlY2FmMjBl IDEwMDY0NAotLS0gYS9mcy9leGZhdC9zdXBlci5jCisrKyBiL2ZzL2V4ZmF0L3N1cGVyLmMKQEAg LTYyNywxMyArNjI3LDkgQEAgc3RhdGljIGludCBleGZhdF9maWxsX3N1cGVyKHN0cnVjdCBzdXBl cl9ibG9jayAqc2IsIHN0cnVjdCBmc19jb250ZXh0ICpmYykKIAlpZiAob3B0cy0+YWxsb3dfdXRp bWUgPT0gKHVuc2lnbmVkIHNob3J0KS0xKQogCQlvcHRzLT5hbGxvd191dGltZSA9IH5vcHRzLT5m c19kbWFzayAmIDAwMjI7CiAKLQlpZiAob3B0cy0+ZGlzY2FyZCkgewotCQlzdHJ1Y3QgcmVxdWVz dF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKHNiLT5zX2JkZXYpOwotCi0JCWlmICghYmxrX3F1 ZXVlX2Rpc2NhcmQocSkpIHsKLQkJCWV4ZmF0X3dhcm4oc2IsICJtb3VudGluZyB3aXRoIFwiZGlz Y2FyZFwiIG9wdGlvbiwgYnV0IHRoZSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBkaXNjYXJkIik7 Ci0JCQlvcHRzLT5kaXNjYXJkID0gMDsKLQkJfQorCWlmIChvcHRzLT5kaXNjYXJkICYmICFiZGV2 X21heF9kaXNjYXJkX3NlY3RvcnMoc2ItPnNfYmRldikpIHsKKwkJZXhmYXRfd2FybihzYiwgIm1v dW50aW5nIHdpdGggXCJkaXNjYXJkXCIgb3B0aW9uLCBidXQgdGhlIGRldmljZSBkb2VzIG5vdCBz dXBwb3J0IGRpc2NhcmQiKTsKKwkJb3B0cy0+ZGlzY2FyZCA9IDA7CiAJfQogCiAJc2ItPnNfZmxh Z3MgfD0gU0JfTk9ESVJBVElNRTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW9jdGwuYyBiL2ZzL2V4 dDQvaW9jdGwuYwppbmRleCA5OTIyMjljYTJkODMwLi42ZTNiOWVlYTEyNmY0IDEwMDY0NAotLS0g YS9mcy9leHQ0L2lvY3RsLmMKKysrIGIvZnMvZXh0NC9pb2N0bC5jCkBAIC0xMDQ0LDcgKzEwNDQs NiBAQCBzdGF0aWMgaW50IGV4dDRfaW9jdGxfY2hlY2twb2ludChzdHJ1Y3QgZmlsZSAqZmlscCwg dW5zaWduZWQgbG9uZyBhcmcpCiAJX191MzIgZmxhZ3MgPSAwOwogCXVuc2lnbmVkIGludCBmbHVz aF9mbGFncyA9IDA7CiAJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IGZpbGVfaW5vZGUoZmlscCkt Pmlfc2I7Ci0Jc3RydWN0IHJlcXVlc3RfcXVldWUgKnE7CiAKIAlpZiAoY29weV9mcm9tX3VzZXIo JmZsYWdzLCAoX191MzIgX191c2VyICopYXJnLAogCQkJCXNpemVvZihfX3UzMikpKQpAQCAtMTA2 NSwxMCArMTA2NCw4IEBAIHN0YXRpYyBpbnQgZXh0NF9pb2N0bF9jaGVja3BvaW50KHN0cnVjdCBm aWxlICpmaWxwLCB1bnNpZ25lZCBsb25nIGFyZykKIAlpZiAoZmxhZ3MgJiB+RVhUNF9JT0NfQ0hF Q0tQT0lOVF9GTEFHX1ZBTElEKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXEgPSBiZGV2X2dldF9x dWV1ZShFWFQ0X1NCKHNiKS0+c19qb3VybmFsLT5qX2Rldik7Ci0JaWYgKCFxKQotCQlyZXR1cm4g LUVOWElPOwotCWlmICgoZmxhZ3MgJiBKQkQyX0pPVVJOQUxfRkxVU0hfRElTQ0FSRCkgJiYgIWJs a19xdWV1ZV9kaXNjYXJkKHEpKQorCWlmICgoZmxhZ3MgJiBKQkQyX0pPVVJOQUxfRkxVU0hfRElT Q0FSRCkgJiYKKwkgICAgIWJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhFWFQ0X1NCKHNiKS0+c19q b3VybmFsLT5qX2RldikpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCWlmIChmbGFncyAmIEVY VDRfSU9DX0NIRUNLUE9JTlRfRkxBR19EUllfUlVOKQpAQCAtMTM5MywxNCArMTM5MCwxMyBAQCBz dGF0aWMgbG9uZyBfX2V4dDRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBj bWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogCiAJY2FzZSBGSVRSSU06CiAJewotCQlzdHJ1Y3QgcmVx dWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKHNiLT5zX2JkZXYpOwogCQlzdHJ1Y3QgZnN0 cmltX3JhbmdlIHJhbmdlOwogCQlpbnQgcmV0ID0gMDsKIAogCQlpZiAoIWNhcGFibGUoQ0FQX1NZ U19BRE1JTikpCiAJCQlyZXR1cm4gLUVQRVJNOwogCi0JCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQo cSkpCisJCWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKHNiLT5zX2JkZXYpKQogCQkJcmV0 dXJuIC1FT1BOT1RTVVBQOwogCiAJCS8qCmRpZmYgLS1naXQgYS9mcy9leHQ0L3N1cGVyLmMgYi9m cy9leHQ0L3N1cGVyLmMKaW5kZXggODE3NDllYWRkZjRjMS4uOTNmNGU0ZTllMjYzMSAxMDA2NDQK LS0tIGEvZnMvZXh0NC9zdXBlci5jCisrKyBiL2ZzL2V4dDQvc3VwZXIuYwpAQCAtNTQ1OCwxMyAr NTQ1OCw5IEBAIHN0YXRpYyBpbnQgX19leHQ0X2ZpbGxfc3VwZXIoc3RydWN0IGZzX2NvbnRleHQg KmZjLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCQkJZ290byBmYWlsZWRfbW91bnQ5OwogCX0K IAotCWlmICh0ZXN0X29wdChzYiwgRElTQ0FSRCkpIHsKLQkJc3RydWN0IHJlcXVlc3RfcXVldWUg KnEgPSBiZGV2X2dldF9xdWV1ZShzYi0+c19iZGV2KTsKLQkJaWYgKCFibGtfcXVldWVfZGlzY2Fy ZChxKSkKLQkJCWV4dDRfbXNnKHNiLCBLRVJOX1dBUk5JTkcsCi0JCQkJICJtb3VudGluZyB3aXRo IFwiZGlzY2FyZFwiIG9wdGlvbiwgYnV0ICIKLQkJCQkgInRoZSBkZXZpY2UgZG9lcyBub3Qgc3Vw cG9ydCBkaXNjYXJkIik7Ci0JfQorCWlmICh0ZXN0X29wdChzYiwgRElTQ0FSRCkgJiYgIWJkZXZf bWF4X2Rpc2NhcmRfc2VjdG9ycyhzYi0+c19iZGV2KSkKKwkJZXh0NF9tc2coc2IsIEtFUk5fV0FS TklORywKKwkJCSAibW91bnRpbmcgd2l0aCBcImRpc2NhcmRcIiBvcHRpb24sIGJ1dCB0aGUgZGV2 aWNlIGRvZXMgbm90IHN1cHBvcnQgZGlzY2FyZCIpOwogCiAJaWYgKGVzLT5zX2Vycm9yX2NvdW50 KQogCQltb2RfdGltZXIoJnNiaS0+c19lcnJfcmVwb3J0LCBqaWZmaWVzICsgMzAwKkhaKTsgLyog NSBtaW51dGVzICovCmRpZmYgLS1naXQgYS9mcy9mMmZzL2YyZnMuaCBiL2ZzL2YyZnMvZjJmcy5o CmluZGV4IGNkMWU2NWJjZjBiMDQuLjBlYTlhNWZhN2MxZGQgMTAwNjQ0Ci0tLSBhL2ZzL2YyZnMv ZjJmcy5oCisrKyBiL2ZzL2YyZnMvZjJmcy5oCkBAIC00MzgxLDggKzQzODEsNyBAQCBzdGF0aWMg aW5saW5lIGJvb2wgZjJmc19od19zaG91bGRfZGlzY2FyZChzdHJ1Y3QgZjJmc19zYl9pbmZvICpz YmkpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBmMmZzX2JkZXZfc3VwcG9ydF9kaXNjYXJkKHN0cnVj dCBibG9ja19kZXZpY2UgKmJkZXYpCiB7Ci0JcmV0dXJuIGJsa19xdWV1ZV9kaXNjYXJkKGJkZXZf Z2V0X3F1ZXVlKGJkZXYpKSB8fAotCSAgICAgICBiZGV2X2lzX3pvbmVkKGJkZXYpOworCXJldHVy biBiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoYmRldikgfHwgYmRldl9pc196b25lZChiZGV2KTsK IH0KIAogc3RhdGljIGlubGluZSBib29sIGYyZnNfaHdfc3VwcG9ydF9kaXNjYXJkKHN0cnVjdCBm MmZzX3NiX2luZm8gKnNiaSkKZGlmZiAtLWdpdCBhL2ZzL2ZhdC9maWxlLmMgYi9mcy9mYXQvZmls ZS5jCmluZGV4IGE1YTMwOWZjYzdmYWYuLmU0YzdkMTBlODAxMjkgMTAwNjQ0Ci0tLSBhL2ZzL2Zh dC9maWxlLmMKKysrIGIvZnMvZmF0L2ZpbGUuYwpAQCAtMTMzLDcgKzEzMyw3IEBAIHN0YXRpYyBp bnQgZmF0X2lvY3RsX2ZpdHJpbShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1bnNpZ25lZCBsb25nIGFy ZykKIAlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpCiAJCXJldHVybiAtRVBFUk07CiAKLQlp ZiAoIWJsa19xdWV1ZV9kaXNjYXJkKHEpKQorCWlmICghYmRldl9tYXhfZGlzY2FyZF9zZWN0b3Jz KHNiLT5zX2JkZXYpKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKIAl1c2VyX3JhbmdlID0gKHN0 cnVjdCBmc3RyaW1fcmFuZ2UgX191c2VyICopYXJnOwpkaWZmIC0tZ2l0IGEvZnMvZmF0L2lub2Rl LmMgYi9mcy9mYXQvaW5vZGUuYwppbmRleCBiZjYwNTFiZGYxZDFkLi4zZDFhZmI5NWE5MjVhIDEw MDY0NAotLS0gYS9mcy9mYXQvaW5vZGUuYworKysgYi9mcy9mYXQvaW5vZGUuYwpAQCAtMTg3Miwx MyArMTg3Miw5IEBAIGludCBmYXRfZmlsbF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2 b2lkICpkYXRhLCBpbnQgc2lsZW50LCBpbnQgaXN2ZmF0LAogCQlnb3RvIG91dF9mYWlsOwogCX0K IAotCWlmIChzYmktPm9wdGlvbnMuZGlzY2FyZCkgewotCQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAq cSA9IGJkZXZfZ2V0X3F1ZXVlKHNiLT5zX2JkZXYpOwotCQlpZiAoIWJsa19xdWV1ZV9kaXNjYXJk KHEpKQotCQkJZmF0X21zZyhzYiwgS0VSTl9XQVJOSU5HLAotCQkJCQkibW91bnRpbmcgd2l0aCBc ImRpc2NhcmRcIiBvcHRpb24sIGJ1dCAiCi0JCQkJCSJ0aGUgZGV2aWNlIGRvZXMgbm90IHN1cHBv cnQgZGlzY2FyZCIpOwotCX0KKwlpZiAoc2JpLT5vcHRpb25zLmRpc2NhcmQgJiYgIWJkZXZfbWF4 X2Rpc2NhcmRfc2VjdG9ycyhzYi0+c19iZGV2KSkKKwkJZmF0X21zZyhzYiwgS0VSTl9XQVJOSU5H LAorCQkJIm1vdW50aW5nIHdpdGggXCJkaXNjYXJkXCIgb3B0aW9uLCBidXQgdGhlIGRldmljZSBk b2VzIG5vdCBzdXBwb3J0IGRpc2NhcmQiKTsKIAogCWZhdF9zZXRfc3RhdGUoc2IsIDEsIDApOwog CXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZnMvZ2ZzMi9yZ3JwLmMgYi9mcy9nZnMyL3JncnAuYwpp bmRleCA4MDFhZDlmNGYyYmVmLi43ZjIwYWM5MTMzYmM2IDEwMDY0NAotLS0gYS9mcy9nZnMyL3Jn cnAuYworKysgYi9mcy9nZnMyL3JncnAuYwpAQCAtMTQwNSw3ICsxNDA1LDcgQEAgaW50IGdmczJf Zml0cmltKHN0cnVjdCBmaWxlICpmaWxwLCB2b2lkIF9fdXNlciAqYXJncCkKIAlpZiAoIXRlc3Rf Yml0KFNERl9KT1VSTkFMX0xJVkUsICZzZHAtPnNkX2ZsYWdzKSkKIAkJcmV0dXJuIC1FUk9GUzsK IAotCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQocSkpCisJaWYgKCFiZGV2X21heF9kaXNjYXJkX3Nl Y3RvcnMoc2RwLT5zZF92ZnMtPnNfYmRldikpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCWlm IChjb3B5X2Zyb21fdXNlcigmciwgYXJncCwgc2l6ZW9mKHIpKSkKZGlmZiAtLWdpdCBhL2ZzL2pi ZDIvam91cm5hbC5jIGIvZnMvamJkMi9qb3VybmFsLmMKaW5kZXggZmNhY2FmYTQ1MTBkMS4uMTlk MjI2Y2Q0ZmY0ZCAxMDA2NDQKLS0tIGEvZnMvamJkMi9qb3VybmFsLmMKKysrIGIvZnMvamJkMi9q b3VybmFsLmMKQEAgLTE3NjIsNyArMTc2Miw2IEBAIHN0YXRpYyBpbnQgX19qYmQyX2pvdXJuYWxf ZXJhc2Uoam91cm5hbF90ICpqb3VybmFsLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJdW5zaWduZWQg bG9uZyBibG9jaywgbG9nX29mZnNldDsgLyogbG9naWNhbCAqLwogCXVuc2lnbmVkIGxvbmcgbG9u ZyBwaHlzX2Jsb2NrLCBibG9ja19zdGFydCwgYmxvY2tfc3RvcDsgLyogcGh5c2ljYWwgKi8KIAls b2ZmX3QgYnl0ZV9zdGFydCwgYnl0ZV9zdG9wLCBieXRlX2NvdW50OwotCXN0cnVjdCByZXF1ZXN0 X3F1ZXVlICpxID0gYmRldl9nZXRfcXVldWUoam91cm5hbC0+al9kZXYpOwogCiAJLyogZmxhZ3Mg bXVzdCBiZSBzZXQgdG8gZWl0aGVyIGRpc2NhcmQgb3IgemVyb291dCAqLwogCWlmICgoZmxhZ3Mg JiB+SkJEMl9KT1VSTkFMX0ZMVVNIX1ZBTElEKSB8fCAhZmxhZ3MgfHwKQEAgLTE3NzAsMTAgKzE3 NjksOCBAQCBzdGF0aWMgaW50IF9famJkMl9qb3VybmFsX2VyYXNlKGpvdXJuYWxfdCAqam91cm5h bCwgdW5zaWduZWQgaW50IGZsYWdzKQogCQkJKGZsYWdzICYgSkJEMl9KT1VSTkFMX0ZMVVNIX1pF Uk9PVVQpKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoIXEpCi0JCXJldHVybiAtRU5YSU87 Ci0KLQlpZiAoKGZsYWdzICYgSkJEMl9KT1VSTkFMX0ZMVVNIX0RJU0NBUkQpICYmICFibGtfcXVl dWVfZGlzY2FyZChxKSkKKwlpZiAoKGZsYWdzICYgSkJEMl9KT1VSTkFMX0ZMVVNIX0RJU0NBUkQp ICYmCisJICAgICFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoam91cm5hbC0+al9kZXYpKQogCQly ZXR1cm4gLUVPUE5PVFNVUFA7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvZnMvamZzL2lvY3RsLmMgYi9m cy9qZnMvaW9jdGwuYwppbmRleCAwM2E4NDVhYjRmMDA5Li4zNTdhZTZlNWMzNmVjIDEwMDY0NAot LS0gYS9mcy9qZnMvaW9jdGwuYworKysgYi9mcy9qZnMvaW9jdGwuYwpAQCAtMTE3LDcgKzExNyw3 IEBAIGxvbmcgamZzX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1 bnNpZ25lZCBsb25nIGFyZykKIAkJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQogCQkJcmV0 dXJuIC1FUEVSTTsKIAotCQlpZiAoIWJsa19xdWV1ZV9kaXNjYXJkKHEpKSB7CisJCWlmICghYmRl dl9tYXhfZGlzY2FyZF9zZWN0b3JzKHNiLT5zX2JkZXYpKSB7CiAJCQlqZnNfd2FybigiRklUUklN IG5vdCBzdXBwb3J0ZWQgb24gZGV2aWNlIik7CiAJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJCX0K ZGlmZiAtLWdpdCBhL2ZzL2pmcy9zdXBlci5jIGIvZnMvamZzL3N1cGVyLmMKaW5kZXggZjFhMTNh NzRjZGRmMy4uODVkNGY0NGYyYWM0ZCAxMDA2NDQKLS0tIGEvZnMvamZzL3N1cGVyLmMKKysrIGIv ZnMvamZzL3N1cGVyLmMKQEAgLTM3MiwxOSArMzcyLDE2IEBAIHN0YXRpYyBpbnQgcGFyc2Vfb3B0 aW9ucyhjaGFyICpvcHRpb25zLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzNjQgKm5ld0xWU2l6 ZSwKIAkJfQogCiAJCWNhc2UgT3B0X2Rpc2NhcmQ6Ci0JCXsKLQkJCXN0cnVjdCByZXF1ZXN0X3F1 ZXVlICpxID0gYmRldl9nZXRfcXVldWUoc2ItPnNfYmRldik7CiAJCQkvKiBpZiBzZXQgdG8gMSwg ZXZlbiBjb3B5aW5nIGZpbGVzIHdpbGwgY2F1c2UKIAkJCSAqIHRyaW1taW5nIDpPCiAJCQkgKiAt PiB1c2VyIGhhcyBtb3JlIGNvbnRyb2wgb3ZlciB0aGUgb25saW5lIHRyaW1taW5nCiAJCQkgKi8K IAkJCXNiaS0+bWluYmxrc190cmltID0gNjQ7Ci0JCQlpZiAoYmxrX3F1ZXVlX2Rpc2NhcmQocSkp CisJCQlpZiAoYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKHNiLT5zX2JkZXYpKQogCQkJCSpmbGFn IHw9IEpGU19ESVNDQVJEOwogCQkJZWxzZQogCQkJCXByX2VycigiSkZTOiBkaXNjYXJkIG9wdGlv biBub3Qgc3VwcG9ydGVkIG9uIGRldmljZVxuIik7CiAJCQlicmVhazsKLQkJfQogCiAJCWNhc2Ug T3B0X25vZGlzY2FyZDoKIAkJCSpmbGFnICY9IH5KRlNfRElTQ0FSRDsKQEAgLTM5MiwxMCArMzg5 LDkgQEAgc3RhdGljIGludCBwYXJzZV9vcHRpb25zKGNoYXIgKm9wdGlvbnMsIHN0cnVjdCBzdXBl cl9ibG9jayAqc2IsIHM2NCAqbmV3TFZTaXplLAogCiAJCWNhc2UgT3B0X2Rpc2NhcmRfbWluYmxr OgogCQl7Ci0JCQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0X3F1ZXVlKHNiLT5z X2JkZXYpOwogCQkJY2hhciAqbWluYmxrc190cmltID0gYXJnc1swXS5mcm9tOwogCQkJaW50IHJj OwotCQkJaWYgKGJsa19xdWV1ZV9kaXNjYXJkKHEpKSB7CisJCQlpZiAoYmRldl9tYXhfZGlzY2Fy ZF9zZWN0b3JzKHNiLT5zX2JkZXYpKSB7CiAJCQkJKmZsYWcgfD0gSkZTX0RJU0NBUkQ7CiAJCQkJ cmMgPSBrc3RydG91aW50KG1pbmJsa3NfdHJpbSwgMCwKIAkJCQkJCSZzYmktPm1pbmJsa3NfdHJp bSk7CmRpZmYgLS1naXQgYS9mcy9uaWxmczIvaW9jdGwuYyBiL2ZzL25pbGZzMi9pb2N0bC5jCmlu ZGV4IGZlYzE5NGE2NjZmNGIuLjUyYjczZjU1OGZjYjEgMTAwNjQ0Ci0tLSBhL2ZzL25pbGZzMi9p b2N0bC5jCisrKyBiL2ZzL25pbGZzMi9pb2N0bC5jCkBAIC0xMDU5LDcgKzEwNTksNyBAQCBzdGF0 aWMgaW50IG5pbGZzX2lvY3RsX3RyaW1fZnMoc3RydWN0IGlub2RlICppbm9kZSwgdm9pZCBfX3Vz ZXIgKmFyZ3ApCiAJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQogCQlyZXR1cm4gLUVQRVJN OwogCi0JaWYgKCFibGtfcXVldWVfZGlzY2FyZChxKSkKKwlpZiAoIWJkZXZfbWF4X2Rpc2NhcmRf c2VjdG9ycyhuaWxmcy0+bnNfYmRldikpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCWlmIChj b3B5X2Zyb21fdXNlcigmcmFuZ2UsIGFyZ3AsIHNpemVvZihyYW5nZSkpKQpkaWZmIC0tZ2l0IGEv ZnMvbnRmczMvZmlsZS5jIGIvZnMvbnRmczMvZmlsZS5jCmluZGV4IDc4N2I1M2I5ODRlZTEuLmU3 NjMyMzYxNjkzMzEgMTAwNjQ0Ci0tLSBhL2ZzL250ZnMzL2ZpbGUuYworKysgYi9mcy9udGZzMy9m aWxlLmMKQEAgLTI4LDcgKzI4LDcgQEAgc3RhdGljIGludCBudGZzX2lvY3RsX2ZpdHJpbShzdHJ1 Y3QgbnRmc19zYl9pbmZvICpzYmksIHVuc2lnbmVkIGxvbmcgYXJnKQogCWlmICghY2FwYWJsZShD QVBfU1lTX0FETUlOKSkKIAkJcmV0dXJuIC1FUEVSTTsKIAotCWlmICghYmxrX3F1ZXVlX2Rpc2Nh cmQocSkpCisJaWYgKCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMoc2JpLT5zYi0+c19iZGV2KSkK IAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCiAJdXNlcl9yYW5nZSA9IChzdHJ1Y3QgZnN0cmltX3Jh bmdlIF9fdXNlciAqKWFyZzsKZGlmZiAtLWdpdCBhL2ZzL250ZnMzL3N1cGVyLmMgYi9mcy9udGZz My9zdXBlci5jCmluZGV4IGNkMzBlODFhYmJjZTAuLmM3MzQwODViY2NlNGEgMTAwNjQ0Ci0tLSBh L2ZzL250ZnMzL3N1cGVyLmMKKysrIGIvZnMvbnRmczMvc3VwZXIuYwpAQCAtOTEzLDcgKzkxMyw3 IEBAIHN0YXRpYyBpbnQgbnRmc19maWxsX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0 cnVjdCBmc19jb250ZXh0ICpmYykKIAl9CiAKIAlycSA9IGJkZXZfZ2V0X3F1ZXVlKGJkZXYpOwot CWlmIChibGtfcXVldWVfZGlzY2FyZChycSkgJiYgcnEtPmxpbWl0cy5kaXNjYXJkX2dyYW51bGFy aXR5KSB7CisJaWYgKGJkZXZfbWF4X2Rpc2NhcmRfc2VjdG9ycyhiZGV2KSAmJiBycS0+bGltaXRz LmRpc2NhcmRfZ3JhbnVsYXJpdHkpIHsKIAkJc2JpLT5kaXNjYXJkX2dyYW51bGFyaXR5ID0gcnEt PmxpbWl0cy5kaXNjYXJkX2dyYW51bGFyaXR5OwogCQlzYmktPmRpc2NhcmRfZ3JhbnVsYXJpdHlf bWFza19pbnYgPQogCQkJfih1NjQpKHNiaS0+ZGlzY2FyZF9ncmFudWxhcml0eSAtIDEpOwpkaWZm IC0tZ2l0IGEvZnMvb2NmczIvaW9jdGwuYyBiL2ZzL29jZnMyL2lvY3RsLmMKaW5kZXggZjU5NDYx ZDg1ZGE0NS4uOWI3OGVmMTAzYWRhNiAxMDA2NDQKLS0tIGEvZnMvb2NmczIvaW9jdGwuYworKysg Yi9mcy9vY2ZzMi9pb2N0bC5jCkBAIC05MTAsNyArOTEwLDcgQEAgbG9uZyBvY2ZzMl9pb2N0bChz dHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiAJ CWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKIAkJCXJldHVybiAtRVBFUk07CiAKLQkJaWYg KCFibGtfcXVldWVfZGlzY2FyZChxKSkKKwkJaWYgKCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMo c2ItPnNfYmRldikpCiAJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKIAkJaWYgKGNvcHlfZnJvbV91 c2VyKCZyYW5nZSwgYXJncCwgc2l6ZW9mKHJhbmdlKSkpCmRpZmYgLS1naXQgYS9mcy94ZnMveGZz X2Rpc2NhcmQuYyBiL2ZzL3hmcy94ZnNfZGlzY2FyZC5jCmluZGV4IDAxOTFkZThjZTljZWQuLmE0 ZTY2MDlkNjE2YjcgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfZGlzY2FyZC5jCisrKyBiL2ZzL3hm cy94ZnNfZGlzY2FyZC5jCkBAIC0xNjIsNyArMTYyLDcgQEAgeGZzX2lvY190cmltKAogCiAJaWYg KCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQogCQlyZXR1cm4gLUVQRVJNOwotCWlmICghYmxrX3F1 ZXVlX2Rpc2NhcmQocSkpCisJaWYgKCFiZGV2X21heF9kaXNjYXJkX3NlY3RvcnMobXAtPm1fZGRl dl90YXJncC0+YnRfYmRldikpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCS8qCmRpZmYgLS1n aXQgYS9mcy94ZnMveGZzX3N1cGVyLmMgYi9mcy94ZnMveGZzX3N1cGVyLmMKaW5kZXggNTRiZTlk NjQwOTNlZC4uYTI3NmI4MTExZjYzNiAxMDA2NDQKLS0tIGEvZnMveGZzL3hmc19zdXBlci5jCisr KyBiL2ZzL3hmcy94ZnNfc3VwZXIuYwpAQCAtMTYwOCwxNCArMTYwOCwxMCBAQCB4ZnNfZnNfZmls bF9zdXBlcigKIAkJCWdvdG8gb3V0X2ZpbGVzdHJlYW1fdW5tb3VudDsKIAl9CiAKLQlpZiAoeGZz X2hhc19kaXNjYXJkKG1wKSkgewotCQlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSA9IGJkZXZfZ2V0 X3F1ZXVlKHNiLT5zX2JkZXYpOwotCi0JCWlmICghYmxrX3F1ZXVlX2Rpc2NhcmQocSkpIHsKLQkJ CXhmc193YXJuKG1wLCAibW91bnRpbmcgd2l0aCBcImRpc2NhcmRcIiBvcHRpb24sIGJ1dCAiCi0J CQkJCSJ0aGUgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgZGlzY2FyZCIpOwotCQkJbXAtPm1fZmVh dHVyZXMgJj0gflhGU19GRUFUX0RJU0NBUkQ7Ci0JCX0KKwlpZiAoeGZzX2hhc19kaXNjYXJkKG1w KSAmJiAhYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKHNiLT5zX2JkZXYpKSB7CisJCXhmc193YXJu KG1wLAorCSJtb3VudGluZyB3aXRoIFwiZGlzY2FyZFwiIG9wdGlvbiwgYnV0IHRoZSBkZXZpY2Ug ZG9lcyBub3Qgc3VwcG9ydCBkaXNjYXJkIik7CisJCW1wLT5tX2ZlYXR1cmVzICY9IH5YRlNfRkVB VF9ESVNDQVJEOwogCX0KIAogCWlmICh4ZnNfaGFzX3JlZmxpbmsobXApKSB7CmRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oIGIvaW5jbHVkZS9saW51eC9ibGtkZXYuaAppbmRleCBj ZTE2MjQ3ZDNhZmFiLi43NjdhYjIyZTEwNTJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Js a2Rldi5oCisrKyBiL2luY2x1ZGUvbGludXgvYmxrZGV2LmgKQEAgLTU0MCw3ICs1NDAsNiBAQCBz dHJ1Y3QgcmVxdWVzdF9xdWV1ZSB7CiAjZGVmaW5lIFFVRVVFX0ZMQUdfTk9OUk9UCTYJLyogbm9u LXJvdGF0aW9uYWwgZGV2aWNlIChTU0QpICovCiAjZGVmaW5lIFFVRVVFX0ZMQUdfVklSVAkJUVVF VUVfRkxBR19OT05ST1QgLyogcGFyYXZpcnQgZGV2aWNlICovCiAjZGVmaW5lIFFVRVVFX0ZMQUdf SU9fU1RBVAk3CS8qIGRvIGRpc2svcGFydGl0aW9ucyBJTyBhY2NvdW50aW5nICovCi0jZGVmaW5l IFFVRVVFX0ZMQUdfRElTQ0FSRAk4CS8qIHN1cHBvcnRzIERJU0NBUkQgKi8KICNkZWZpbmUgUVVF VUVfRkxBR19OT1hNRVJHRVMJOQkvKiBObyBleHRlbmRlZCBtZXJnZXMgKi8KICNkZWZpbmUgUVVF VUVfRkxBR19BRERfUkFORE9NCTEwCS8qIENvbnRyaWJ1dGVzIHRvIHJhbmRvbSBwb29sICovCiAj ZGVmaW5lIFFVRVVFX0ZMQUdfU0VDRVJBU0UJMTEJLyogc3VwcG9ydHMgc2VjdXJlIGVyYXNlICov CkBAIC01ODIsNyArNTgxLDYgQEAgYm9vbCBibGtfcXVldWVfZmxhZ190ZXN0X2FuZF9zZXQodW5z aWduZWQgaW50IGZsYWcsIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxKTsKIAl0ZXN0X2JpdChRVUVV RV9GTEFHX1NUQUJMRV9XUklURVMsICYocSktPnF1ZXVlX2ZsYWdzKQogI2RlZmluZSBibGtfcXVl dWVfaW9fc3RhdChxKQl0ZXN0X2JpdChRVUVVRV9GTEFHX0lPX1NUQVQsICYocSktPnF1ZXVlX2Zs YWdzKQogI2RlZmluZSBibGtfcXVldWVfYWRkX3JhbmRvbShxKQl0ZXN0X2JpdChRVUVVRV9GTEFH X0FERF9SQU5ET00sICYocSktPnF1ZXVlX2ZsYWdzKQotI2RlZmluZSBibGtfcXVldWVfZGlzY2Fy ZChxKQl0ZXN0X2JpdChRVUVVRV9GTEFHX0RJU0NBUkQsICYocSktPnF1ZXVlX2ZsYWdzKQogI2Rl ZmluZSBibGtfcXVldWVfem9uZV9yZXNldGFsbChxKQlcCiAJdGVzdF9iaXQoUVVFVUVfRkxBR19a T05FX1JFU0VUQUxMLCAmKHEpLT5xdWV1ZV9mbGFncykKICNkZWZpbmUgYmxrX3F1ZXVlX3NlY3Vy ZV9lcmFzZShxKSBcCmRpZmYgLS1naXQgYS9tbS9zd2FwZmlsZS5jIGIvbW0vc3dhcGZpbGUuYwpp bmRleCA0MDY5ZjE3YTgyYzhlLi41ZDljZWRmOWU3Yjg0IDEwMDY0NAotLS0gYS9tbS9zd2FwZmls ZS5jCisrKyBiL21tL3N3YXBmaWxlLmMKQEAgLTI5NTcsMjAgKzI5NTcsNiBAQCBzdGF0aWMgaW50 IHNldHVwX3N3YXBfbWFwX2FuZF9leHRlbnRzKHN0cnVjdCBzd2FwX2luZm9fc3RydWN0ICpwLAog CXJldHVybiBucl9leHRlbnRzOwogfQogCi0vKgotICogSGVscGVyIHRvIHN5c19zd2Fwb24gZGV0 ZXJtaW5pbmcgaWYgYSBnaXZlbiBzd2FwCi0gKiBiYWNraW5nIGRldmljZSBxdWV1ZSBzdXBwb3J0 cyBESVNDQVJEIG9wZXJhdGlvbnMuCi0gKi8KLXN0YXRpYyBib29sIHN3YXBfZGlzY2FyZGFibGUo c3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnNpKQotewotCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpx ID0gYmRldl9nZXRfcXVldWUoc2ktPmJkZXYpOwotCi0JaWYgKCFibGtfcXVldWVfZGlzY2FyZChx KSkKLQkJcmV0dXJuIGZhbHNlOwotCi0JcmV0dXJuIHRydWU7Ci19Ci0KIFNZU0NBTExfREVGSU5F Mihzd2Fwb24sIGNvbnN0IGNoYXIgX191c2VyICosIHNwZWNpYWxmaWxlLCBpbnQsIHN3YXBfZmxh Z3MpCiB7CiAJc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3QgKnA7CkBAIC0zMTMyLDcgKzMxMTgsOCBA QCBTWVNDQUxMX0RFRklORTIoc3dhcG9uLCBjb25zdCBjaGFyIF9fdXNlciAqLCBzcGVjaWFsZmls ZSwgaW50LCBzd2FwX2ZsYWdzKQogCQkJCQkgc2l6ZW9mKGxvbmcpLAogCQkJCQkgR0ZQX0tFUk5F TCk7CiAKLQlpZiAocC0+YmRldiAmJiAoc3dhcF9mbGFncyAmIFNXQVBfRkxBR19ESVNDQVJEKSAm JiBzd2FwX2Rpc2NhcmRhYmxlKHApKSB7CisJaWYgKChzd2FwX2ZsYWdzICYgU1dBUF9GTEFHX0RJ U0NBUkQpICYmCisJICAgIHAtPmJkZXYgJiYgYmRldl9tYXhfZGlzY2FyZF9zZWN0b3JzKHAtPmJk ZXYpKSB7CiAJCS8qCiAJCSAqIFdoZW4gZGlzY2FyZCBpcyBlbmFibGVkIGZvciBzd2FwIHdpdGgg bm8gcGFydGljdWxhcgogCQkgKiBwb2xpY3kgZmxhZ2dlZCwgd2Ugc2V0IGFsbCBzd2FwIGRpc2Nh cmQgZmxhZ3MgaGVyZSBpbgotLSAKMi4zMC4yCgotLQpkbS1kZXZlbCBtYWlsaW5nIGxpc3QKZG0t ZGV2ZWxAcmVkaGF0LmNvbQpodHRwczovL2xpc3RtYW4ucmVkaGF0LmNvbS9tYWlsbWFuL2xpc3Rp bmZvL2RtLWRldmVsCg==