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=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham 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 2457EC28CC3 for ; Fri, 7 Jun 2019 09:23:51 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 DF589208E3 for ; Fri, 7 Jun 2019 09:23:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DF589208E3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hZB5v-0002hD-Np; Fri, 07 Jun 2019 09:23:31 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hZB5t-0002g4-SS for xen-devel@lists.xenproject.org; Fri, 07 Jun 2019 09:23:29 +0000 X-Inumbo-ID: e7d89ca9-8905-11e9-8980-bc764e045a96 Received: from esa5.hc3370-68.iphmx.com (unknown [216.71.155.168]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id e7d89ca9-8905-11e9-8980-bc764e045a96; Fri, 07 Jun 2019 09:23:26 +0000 (UTC) Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@citrix.com; spf=SoftFail smtp.mailfrom=roger.pau@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of roger.pau@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: SoftFail (esa5.hc3370-68.iphmx.com: domain of roger.pau@citrix.com is inclined to not designate 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 include:spf.citrix.com include:spf2.citrix.com include:ironport.citrix.com exists:%{i}._spf.mta.salesforce.com ~all" Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: hOGrRIhHdZU8RXVCv9djnSv3sp05pZyPauuRfGvTPDr6i595FOa/9VdkKpWYQn/jkJTBNTY2vU VpmUUMwYww88yOKdxb5IVpCNXmXt7vidP8tvuN24qr++ehiFs/SkUIm7gMekK7V2yJ/who4VQb /u2k6Wyjm6+jh/oBMzgY7VBzVc2b2ECQK6E0OQvQiLLnZJiXmQRHFak7jos78i1GL2I2IexlPz hqf7ttKfPLNCQS0FWRIJlenVrtTqkLQXOoxHCuhcQbSQYhA6zn3Xxf/vr0+Z/HFZs0YX//tjo6 foM= X-SBRS: -0.9 X-MesageID: 1419216 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.63,562,1557201600"; d="scan'208";a="1419216" From: Roger Pau Monne To: Date: Fri, 7 Jun 2019 11:22:27 +0200 Message-ID: <20190607092232.83179-9-roger.pau@citrix.com> X-Mailer: git-send-email 2.20.1 (Apple Git-117) In-Reply-To: <20190607092232.83179-1-roger.pau@citrix.com> References: <20190607092232.83179-1-roger.pau@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v3 08/13] pci: switch pci_conf_read16 to use pci_sbdf_t X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Kevin Tian , Stefano Stabellini , Suravee Suthikulpanit , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , Brian Woods , Roger Pau Monne Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" VGhpcyByZWR1Y2VzIHRoZSBudW1iZXIgb2YgcGFyYW1ldGVycyBvZiB0aGUgZnVuY3Rpb24gdG8g dHdvLCBhbmQKc2ltcGxpZmllcyBzb21lIG9mIHRoZSBjYWxsaW5nIHNpdGVzLgoKU2lnbmVkLW9m Zi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0tLQpDYzogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNv b3BlcjNAY2l0cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdsQHhlbi5vcmc+CkNjOiBHZW9yZ2UgRHVu bGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmph Y2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5j b20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNj OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBUaW0gRGVl Z2FuIDx0aW1AeGVuLm9yZz4KQ2M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRo aWt1bHBhbml0QGFtZC5jb20+CkNjOiBCcmlhbiBXb29kcyA8YnJpYW4ud29vZHNAYW1kLmNvbT4K Q2M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9k bWlfc2Nhbi5jICAgICAgICAgICAgICAgICAgfCAgNiArLQogeGVuL2FyY2gveDg2L21zaS5jICAg ICAgICAgICAgICAgICAgICAgICB8IDczICsrKysrKysrKystLS0tLS0tLS0tLS0tLQogeGVuL2Fy Y2gveDg2L3g4Nl82NC9tbWNvbmZpZy1zaGFyZWQuYyAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYv eDg2XzY0L3BjaS5jICAgICAgICAgICAgICAgIHwgMjcgKysrKy0tLS0tCiB4ZW4vZHJpdmVycy9j aGFyL2VoY2ktZGJncC5jICAgICAgICAgICAgIHwgIDUgKy0KIHhlbi9kcml2ZXJzL2NoYXIvbnMx NjU1MC5jICAgICAgICAgICAgICAgfCAxNiArKysrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9pb21tdV9pbml0LmMgfCAgMyArLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXRzLmgg ICAgICAgICAgICB8ICA0ICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyAgICAgICAg ICAgIHwgNDAgKysrKystLS0tLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3F1aXJr cy5jICAgICB8ICA5ICsrLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2F0cy5jICAgICAg ICB8ICA5ICstLQogeGVuL2RyaXZlcnMvcGNpL3BjaS5jICAgICAgICAgICAgICAgICAgICB8ICA0 ICstCiB4ZW4vZHJpdmVycy92aWRlby92Z2EuYyAgICAgICAgICAgICAgICAgIHwgIDggKy0tCiB4 ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jICAgICAgICAgICAgICAgIHwgMTEgKystLQogeGVuL2Ry aXZlcnMvdnBjaS9tc2kuYyAgICAgICAgICAgICAgICAgICB8ICAzICstCiB4ZW4vZHJpdmVycy92 cGNpL21zaXguYyAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHhlbi9kcml2ZXJzL3ZwY2kvdnBj aS5jICAgICAgICAgICAgICAgICAgfCAxMSArKy0tCiB4ZW4vaW5jbHVkZS94ZW4vcGNpLmggICAg ICAgICAgICAgICAgICAgIHwgIDQgKy0KIDE4IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMo KyksIDEzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG1pX3NjYW4u YyBiL3hlbi9hcmNoL3g4Ni9kbWlfc2Nhbi5jCmluZGV4IGZjZGYyZDM5NTIuLjMxY2FhZDEzM2Ug MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kbWlfc2Nhbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9k bWlfc2Nhbi5jCkBAIC00NjksMTUgKzQ2OSwxNSBAQCBzdGF0aWMgaW50IF9faW5pdCBpY2gxMF9i aW9zX3F1aXJrKHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkKQogewogICAgIHUzMiBwb3J0LCBzbWlj dGw7CiAKLSAgICBpZiAoIHBjaV9jb25mX3JlYWQxNigwLCAwLCAweDFmLCAwLCBQQ0lfVkVORE9S X0lEKSAhPSAweDgwODYgKQorICAgIGlmICggcGNpX2NvbmZfcmVhZDE2KFBDSV9TQkRGKDAsIDAs IDB4MWYsIDApLCBQQ0lfVkVORE9SX0lEKSAhPSAweDgwODYgKQogICAgICAgICByZXR1cm4gMDsK IAotICAgIHN3aXRjaCAoIHBjaV9jb25mX3JlYWQxNigwLCAwLCAweDFmLCAwLCBQQ0lfREVWSUNF X0lEKSApIHsKKyAgICBzd2l0Y2ggKCBwY2lfY29uZl9yZWFkMTYoUENJX1NCREYoMCwgMCwgMHgx ZiwgMCksIFBDSV9ERVZJQ0VfSUQpICkgewogICAgIGNhc2UgMHgzYTE0OgogICAgIGNhc2UgMHgz YTE2OgogICAgIGNhc2UgMHgzYTE4OgogICAgIGNhc2UgMHgzYTFhOgotICAgICAgICBwb3J0ID0g KHBjaV9jb25mX3JlYWQxNigwLCAwLCAweDFmLCAwLCAweDQwKSAmIDB4ZmY4MCkgKyAweDMwOwor ICAgICAgICBwb3J0ID0gKHBjaV9jb25mX3JlYWQxNihQQ0lfU0JERigwLCAwLCAweDFmLCAwKSwg MHg0MCkgJiAweGZmODApICsgMHgzMDsKICAgICAgICAgc21pY3RsID0gaW5sKHBvcnQpOwogICAg ICAgICAvKiB0dXJuIG9mZiBMRUdBQ1lfVVNCeywyfV9FTiBpZiBlbmFibGVkICovCiAgICAgICAg IGlmICggc21pY3RsICYgMHgyMDAwOCApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbXNpLmMg Yi94ZW4vYXJjaC94ODYvbXNpLmMKaW5kZXggNjczMzllZGM2OC4uZWQ5ODYyNjFjMyAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L21zaS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tc2kuYwpAQCAtMTI0 LDI5ICsxMjQsMjAgQEAgc3RhdGljIHZvaWQgbXNpeF9wdXRfZml4bWFwKHN0cnVjdCBhcmNoX21z aXggKm1zaXgsIGludCBpZHgpCiAKIHN0YXRpYyBib29sIG1lbW9yeV9kZWNvZGVkKGNvbnN0IHN0 cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0gICAgdTggYnVzLCBzbG90LCBmdW5jOworICAgIHBjaV9z YmRmX3Qgc2JkZiA9IGRldi0+c2JkZjsKIAotICAgIGlmICggIWRldi0+aW5mby5pc192aXJ0Zm4g KQotICAgIHsKLSAgICAgICAgYnVzID0gZGV2LT5idXM7Ci0gICAgICAgIHNsb3QgPSBQQ0lfU0xP VChkZXYtPmRldmZuKTsKLSAgICAgICAgZnVuYyA9IFBDSV9GVU5DKGRldi0+ZGV2Zm4pOwotICAg IH0KLSAgICBlbHNlCisgICAgaWYgKCBkZXYtPmluZm8uaXNfdmlydGZuICkKICAgICB7Ci0gICAg ICAgIGJ1cyA9IGRldi0+aW5mby5waHlzZm4uYnVzOwotICAgICAgICBzbG90ID0gUENJX1NMT1Qo ZGV2LT5pbmZvLnBoeXNmbi5kZXZmbik7Ci0gICAgICAgIGZ1bmMgPSBQQ0lfRlVOQyhkZXYtPmlu Zm8ucGh5c2ZuLmRldmZuKTsKKyAgICAgICAgc2JkZi5idXMgPSBkZXYtPmluZm8ucGh5c2ZuLmJ1 czsKKyAgICAgICAgc2JkZi5kZXZmbiA9IGRldi0+aW5mby5waHlzZm4uZGV2Zm47CiAgICAgfQog Ci0gICAgcmV0dXJuICEhKHBjaV9jb25mX3JlYWQxNihkZXYtPnNlZywgYnVzLCBzbG90LCBmdW5j LCBQQ0lfQ09NTUFORCkgJgotICAgICAgICAgICAgICBQQ0lfQ09NTUFORF9NRU1PUlkpOworICAg IHJldHVybiBwY2lfY29uZl9yZWFkMTYoc2JkZiwgUENJX0NPTU1BTkQpICYgUENJX0NPTU1BTkRf TUVNT1JZOwogfQogCiBzdGF0aWMgYm9vbCBtc2l4X21lbW9yeV9kZWNvZGVkKGNvbnN0IHN0cnVj dCBwY2lfZGV2ICpkZXYsIHVuc2lnbmVkIGludCBwb3MpCiB7Ci0gICAgdTE2IGNvbnRyb2wgPSBw Y2lfY29uZl9yZWFkMTYoZGV2LT5zZWcsIGRldi0+YnVzLCBQQ0lfU0xPVChkZXYtPmRldmZuKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRlVOQyhkZXYtPmRldmZuKSwg bXNpeF9jb250cm9sX3JlZyhwb3MpKTsKKyAgICB1aW50MTZfdCBjb250cm9sID0gcGNpX2NvbmZf cmVhZDE2KGRldi0+c2JkZiwgbXNpeF9jb250cm9sX3JlZyhwb3MpKTsKIAogICAgIGlmICggIShj b250cm9sICYgUENJX01TSVhfRkxBR1NfRU5BQkxFKSApCiAgICAgICAgIHJldHVybiBmYWxzZTsK QEAgLTIxMSwxNCArMjAyLDEyIEBAIHN0YXRpYyBib29sIHJlYWRfbXNpX21zZyhzdHJ1Y3QgbXNp X2Rlc2MgKmVudHJ5LCBzdHJ1Y3QgbXNpX21zZyAqbXNnKQogICAgICAgICB7CiAgICAgICAgICAg ICBtc2ctPmFkZHJlc3NfaGkgPSBwY2lfY29uZl9yZWFkMzIoc2VnLCBidXMsIHNsb3QsIGZ1bmMs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNpX3VwcGVy X2FkZHJlc3NfcmVnKHBvcykpOwotICAgICAgICAgICAgZGF0YSA9IHBjaV9jb25mX3JlYWQxNihz ZWcsIGJ1cywgc2xvdCwgZnVuYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bXNpX2RhdGFfcmVnKHBvcywgMSkpOworICAgICAgICAgICAgZGF0YSA9IHBjaV9jb25mX3JlYWQx NihkZXYtPnNiZGYsIG1zaV9kYXRhX3JlZyhwb3MsIDEpKTsKICAgICAgICAgfQogICAgICAgICBl bHNlCiAgICAgICAgIHsKICAgICAgICAgICAgIG1zZy0+YWRkcmVzc19oaSA9IDA7Ci0gICAgICAg ICAgICBkYXRhID0gcGNpX2NvbmZfcmVhZDE2KHNlZywgYnVzLCBzbG90LCBmdW5jLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2lfZGF0YV9yZWcocG9zLCAwKSk7CisgICAg ICAgICAgICBkYXRhID0gcGNpX2NvbmZfcmVhZDE2KGRldi0+c2JkZiwgbXNpX2RhdGFfcmVnKHBv cywgMCkpOwogICAgICAgICB9CiAgICAgICAgIG1zZy0+ZGF0YSA9IGRhdGE7CiAgICAgICAgIGJy ZWFrOwpAQCAtMzM3LDcgKzMyNiw4IEBAIHZvaWQgc2V0X21zaV9hZmZpbml0eShzdHJ1Y3QgaXJx X2Rlc2MgKmRlc2MsIGNvbnN0IGNwdW1hc2tfdCAqbWFzaykKIAogdm9pZCBfX21zaV9zZXRfZW5h YmxlKHUxNiBzZWcsIHU4IGJ1cywgdTggc2xvdCwgdTggZnVuYywgaW50IHBvcywgaW50IGVuYWJs ZSkKIHsKLSAgICB1MTYgY29udHJvbCA9IHBjaV9jb25mX3JlYWQxNihzZWcsIGJ1cywgc2xvdCwg ZnVuYywgcG9zICsgUENJX01TSV9GTEFHUyk7CisgICAgdWludDE2X3QgY29udHJvbCA9IHBjaV9j b25mX3JlYWQxNihQQ0lfU0JERihzZWcsIGJ1cywgc2xvdCwgZnVuYyksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgKyBQQ0lfTVNJX0ZMQUdTKTsKIAogICAgIGNv bnRyb2wgJj0gflBDSV9NU0lfRkxBR1NfRU5BQkxFOwogICAgIGlmICggZW5hYmxlICkKQEAgLTM2 OSw3ICszNTksNyBAQCBzdGF0aWMgdm9pZCBtc2l4X3NldF9lbmFibGUoc3RydWN0IHBjaV9kZXYg KmRldiwgaW50IGVuYWJsZSkKICAgICBwb3MgPSBwY2lfZmluZF9jYXBfb2Zmc2V0KHNlZywgYnVz LCBzbG90LCBmdW5jLCBQQ0lfQ0FQX0lEX01TSVgpOwogICAgIGlmICggcG9zICkKICAgICB7Ci0g ICAgICAgIGNvbnRyb2wgPSBwY2lfY29uZl9yZWFkMTYoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIG1z aXhfY29udHJvbF9yZWcocG9zKSk7CisgICAgICAgIGNvbnRyb2wgPSBwY2lfY29uZl9yZWFkMTYo ZGV2LT5zYmRmLCBtc2l4X2NvbnRyb2xfcmVnKHBvcykpOwogICAgICAgICBjb250cm9sICY9IH5Q Q0lfTVNJWF9GTEFHU19FTkFCTEU7CiAgICAgICAgIGlmICggZW5hYmxlICkKICAgICAgICAgICAg IGNvbnRyb2wgfD0gUENJX01TSVhfRkxBR1NfRU5BQkxFOwpAQCAtNDE0LDcgKzQwNCw3IEBAIHN0 YXRpYyBib29sIG1zaV9zZXRfbWFza19iaXQoc3RydWN0IGlycV9kZXNjICpkZXNjLCBib29sIGhv c3QsIGJvb2wgZ3Vlc3QpCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUENJX0NBUF9JRF9NU0lY OgogICAgICAgICBtYXNrYWxsID0gcGRldi0+bXNpeC0+aG9zdF9tYXNrYWxsOwotICAgICAgICBj b250cm9sID0gcGNpX2NvbmZfcmVhZDE2KHNlZywgYnVzLCBzbG90LCBmdW5jLAorICAgICAgICBj b250cm9sID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbXNpeF9jb250cm9sX3JlZyhlbnRyeS0+bXNpX2F0dHJpYi5wb3MpKTsK ICAgICAgICAgaWYgKCB1bmxpa2VseSghKGNvbnRyb2wgJiBQQ0lfTVNJWF9GTEFHU19FTkFCTEUp KSApCiAgICAgICAgIHsKQEAgLTU5NCw4ICs1ODQsNyBAQCBpbnQgc2V0dXBfbXNpX2lycShzdHJ1 Y3QgaXJxX2Rlc2MgKmRlc2MsIHN0cnVjdCBtc2lfZGVzYyAqbXNpZGVzYykKIAogICAgIGlmICgg bXNpZGVzYy0+bXNpX2F0dHJpYi50eXBlID09IFBDSV9DQVBfSURfTVNJWCApCiAgICAgewotICAg ICAgICBjb250cm9sID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lf U0xPVChwZGV2LT5kZXZmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJ X0ZVTkMocGRldi0+ZGV2Zm4pLCBjcG9zKTsKKyAgICAgICAgY29udHJvbCA9IHBjaV9jb25mX3Jl YWQxNihwZGV2LT5zYmRmLCBjcG9zKTsKICAgICAgICAgaWYgKCAhKGNvbnRyb2wgJiBQQ0lfTVNJ WF9GTEFHU19FTkFCTEUpICkKICAgICAgICAgICAgIHBjaV9jb25mX3dyaXRlMTYocGRldi0+c2Vn LCBwZGV2LT5idXMsIFBDSV9TTE9UKHBkZXYtPmRldmZuKSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUENJX0ZVTkMocGRldi0+ZGV2Zm4pLCBjcG9zLApAQCAtNjk4LDcgKzY4Nyw3IEBA IHN0YXRpYyBpbnQgbXNpX2NhcGFiaWxpdHlfaW5pdChzdHJ1Y3QgcGNpX2RldiAqZGV2LAogICAg IHBvcyA9IHBjaV9maW5kX2NhcF9vZmZzZXQoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIFBDSV9DQVBf SURfTVNJKTsKICAgICBpZiAoICFwb3MgKQogICAgICAgICByZXR1cm4gLUVOT0RFVjsKLSAgICBj b250cm9sID0gcGNpX2NvbmZfcmVhZDE2KHNlZywgYnVzLCBzbG90LCBmdW5jLCBtc2lfY29udHJv bF9yZWcocG9zKSk7CisgICAgY29udHJvbCA9IHBjaV9jb25mX3JlYWQxNihkZXYtPnNiZGYsIG1z aV9jb250cm9sX3JlZyhwb3MpKTsKICAgICBtYXh2ZWMgPSBtdWx0aV9tc2lfY2FwYWJsZShjb250 cm9sKTsKICAgICBpZiAoIG52ZWMgPiBtYXh2ZWMgKQogICAgICAgICByZXR1cm4gbWF4dmVjOwpA QCAtNzY5LDEzICs3NTgsMTQgQEAgc3RhdGljIHU2NCByZWFkX3BjaV9tZW1fYmFyKHUxNiBzZWcs IHU4IGJ1cywgdTggc2xvdCwgdTggZnVuYywgdTggYmlyLCBpbnQgdmYpCiAgICAgICAgIHVuc2ln bmVkIGludCBwb3MgPSBwY2lfZmluZF9leHRfY2FwYWJpbGl0eShzZWcsIGJ1cywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9ERVZGTihzbG90 LCBmdW5jKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBDSV9FWFRfQ0FQX0lEX1NSSU9WKTsKLSAgICAgICAgdTE2IGN0cmwgPSBwY2lfY29uZl9y ZWFkMTYoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIHBvcyArIFBDSV9TUklPVl9DVFJMKTsKLSAgICAg ICAgdTE2IG51bV92ZiA9IHBjaV9jb25mX3JlYWQxNihzZWcsIGJ1cywgc2xvdCwgZnVuYywKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgKyBQQ0lfU1JJT1ZfTlVNX1ZG KTsKLSAgICAgICAgdTE2IG9mZnNldCA9IHBjaV9jb25mX3JlYWQxNihzZWcsIGJ1cywgc2xvdCwg ZnVuYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgKyBQQ0lfU1JJ T1ZfVkZfT0ZGU0VUKTsKLSAgICAgICAgdTE2IHN0cmlkZSA9IHBjaV9jb25mX3JlYWQxNihzZWcs IGJ1cywgc2xvdCwgZnVuYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw b3MgKyBQQ0lfU1JJT1ZfVkZfU1RSSURFKTsKKyAgICAgICAgdWludDE2X3QgY3RybCA9IHBjaV9j b25mX3JlYWQxNihQQ0lfU0JERihzZWcsIGJ1cywgc2xvdCwgZnVuYyksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zICsgUENJX1NSSU9WX0NUUkwpOworICAgICAg ICB1aW50MTZfdCBudW1fdmYgPSBwY2lfY29uZl9yZWFkMTYoUENJX1NCREYoc2VnLCBidXMsIHNs b3QsIGZ1bmMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9z ICsgUENJX1NSSU9WX05VTV9WRik7CisgICAgICAgIHVpbnQxNl90IG9mZnNldCA9IHBjaV9jb25m X3JlYWQxNihQQ0lfU0JERihzZWcsIGJ1cywgc2xvdCwgZnVuYyksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MgKyBQQ0lfU1JJT1ZfVkZfT0ZGU0VUKTsKKyAg ICAgICAgdWludDE2X3Qgc3RyaWRlID0gcGNpX2NvbmZfcmVhZDE2KFBDSV9TQkRGKHNlZywgYnVz LCBzbG90LCBmdW5jKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBvcyArIFBDSV9TUklPVl9WRl9TVFJJREUpOwogCiAgICAgICAgIGlmICggIXBkZXYgfHwgIXBv cyB8fAogICAgICAgICAgICAgICEoY3RybCAmIFBDSV9TUklPVl9DVFJMX1ZGRSkgfHwKQEAgLTg2 NCw3ICs4NTQsNyBAQCBzdGF0aWMgaW50IG1zaXhfY2FwYWJpbGl0eV9pbml0KHN0cnVjdCBwY2lf ZGV2ICpkZXYsCiAKICAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CiAKLSAgICBjb250cm9s ID0gcGNpX2NvbmZfcmVhZDE2KHNlZywgYnVzLCBzbG90LCBmdW5jLCBtc2l4X2NvbnRyb2xfcmVn KHBvcykpOworICAgIGNvbnRyb2wgPSBwY2lfY29uZl9yZWFkMTYoZGV2LT5zYmRmLCBtc2l4X2Nv bnRyb2xfcmVnKHBvcykpOwogICAgIC8qCiAgICAgICogRW5zdXJlIE1TSS1YIGludGVycnVwdHMg YXJlIG1hc2tlZCBkdXJpbmcgc2V0dXAuIFNvbWUgZGV2aWNlcyByZXF1aXJlCiAgICAgICogTVNJ LVggdG8gYmUgZW5hYmxlZCBiZWZvcmUgd2UgY2FuIHRvdWNoIHRoZSBNU0ktWCByZWdpc3RlcnMu IFdlIG5lZWQKQEAgLTExMzEsOCArMTEyMSw3IEBAIHN0YXRpYyBpbnQgX19wY2lfZW5hYmxlX21z aXgoc3RydWN0IG1zaV9pbmZvICptc2ksIHN0cnVjdCBtc2lfZGVzYyAqKmRlc2MpCiAgICAgaWYg KCAhcGRldiB8fCAhcG9zICkKICAgICAgICAgcmV0dXJuIC1FTk9ERVY7CiAKLSAgICBjb250cm9s ID0gcGNpX2NvbmZfcmVhZDE2KG1zaS0+c2VnLCBtc2ktPmJ1cywgc2xvdCwgZnVuYywKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1zaXhfY29udHJvbF9yZWcocG9zKSk7CisgICAgY29u dHJvbCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBtc2l4X2NvbnRyb2xfcmVnKHBvcykp OwogICAgIG5yX2VudHJpZXMgPSBtdWx0aV9tc2l4X2NhcGFibGUoY29udHJvbCk7CiAgICAgaWYg KCBtc2ktPmVudHJ5X25yID49IG5yX2VudHJpZXMgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsK QEAgLTExNzgsNyArMTE2Nyw3IEBAIHN0YXRpYyB2b2lkIF9fcGNpX2Rpc2FibGVfbXNpeChzdHJ1 Y3QgbXNpX2Rlc2MgKmVudHJ5KQogICAgIHU4IGZ1bmMgPSBQQ0lfRlVOQyhkZXYtPmRldmZuKTsK ICAgICB1bnNpZ25lZCBpbnQgcG9zID0gcGNpX2ZpbmRfY2FwX29mZnNldChzZWcsIGJ1cywgc2xv dCwgZnVuYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lf Q0FQX0lEX01TSVgpOwotICAgIHUxNiBjb250cm9sID0gcGNpX2NvbmZfcmVhZDE2KHNlZywgYnVz LCBzbG90LCBmdW5jLAorICAgIHUxNiBjb250cm9sID0gcGNpX2NvbmZfcmVhZDE2KGRldi0+c2Jk ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2l4X2NvbnRyb2xfcmVnKGVu dHJ5LT5tc2lfYXR0cmliLnBvcykpOwogICAgIGJvb2wgbWFza2FsbCA9IGRldi0+bXNpeC0+aG9z dF9tYXNrYWxsOwogCkBAIC0xMjM2LDggKzEyMjUsOCBAQCBpbnQgcGNpX3ByZXBhcmVfbXNpeCh1 MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuLCBib29sIG9mZikKICAgICB9CiAgICAgZWxzZQogICAg IHsKLSAgICAgICAgdTE2IGNvbnRyb2wgPSBwY2lfY29uZl9yZWFkMTYoc2VnLCBidXMsIHNsb3Qs IGZ1bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zaXhfY29udHJv bF9yZWcocG9zKSk7CisgICAgICAgIHVpbnQxNl90IGNvbnRyb2wgPSBwY2lfY29uZl9yZWFkMTYo UENJX1NCREYzKHNlZywgYnVzLCBkZXZmbiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbXNpeF9jb250cm9sX3JlZyhwb3MpKTsKIAogICAgICAgICByYyA9IG1z aXhfY2FwYWJpbGl0eV9pbml0KHBkZXYsIHBvcywgTlVMTCwgTlVMTCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtdWx0aV9tc2l4X2NhcGFibGUoY29udHJvbCkpOwpAQCAtMTMz OCw3ICsxMzI3LDcgQEAgaW50IHBjaV9tc2lfY29uZl93cml0ZV9pbnRlcmNlcHQoc3RydWN0IHBj aV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsCiAgICAgICAgIGlmICggcmVnIDwgZW50cnkt Pm1zaS5tcG9zIHx8IHJlZyA+PSBlbnRyeS0+bXNpLm1wb3MgKyA0IHx8IHNpemUgIT0gNCApCiAg ICAgICAgICAgICByZXR1cm4gLUVBQ0NFUzsKIAotICAgICAgICBjbnRsID0gcGNpX2NvbmZfcmVh ZDE2KHNlZywgYnVzLCBzbG90LCBmdW5jLCBtc2lfY29udHJvbF9yZWcocG9zKSk7CisgICAgICAg IGNudGwgPSBwY2lfY29uZl9yZWFkMTYocGRldi0+c2JkZiwgbXNpX2NvbnRyb2xfcmVnKHBvcykp OwogICAgICAgICB1bnVzZWQgPSB+KHVpbnQzMl90KTAgPj4gKDMyIC0gbXVsdGlfbXNpX2NhcGFi bGUoY250bCkpOwogICAgICAgICBmb3IgKCBwb3MgPSAwOyBwb3MgPCBlbnRyeS0+bXNpLm52ZWM7 ICsrcG9zLCArK2VudHJ5ICkKICAgICAgICAgewpAQCAtMTQxNCw4ICsxNDAzLDcgQEAgaW50IHBj aV9yZXN0b3JlX21zaV9zdGF0ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKICAgICAgICAgfQogICAg ICAgICBlbHNlIGlmICggIXR5cGUgJiYgZW50cnktPm1zaV9hdHRyaWIudHlwZSA9PSBQQ0lfQ0FQ X0lEX01TSVggKQogICAgICAgICB7Ci0gICAgICAgICAgICBjb250cm9sID0gcGNpX2NvbmZfcmVh ZDE2KHBkZXYtPnNlZywgcGRldi0+YnVzLCBzbG90LCBmdW5jLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtc2l4X2NvbnRyb2xfcmVnKHBvcykpOworICAgICAgICAgICAg Y29udHJvbCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBtc2l4X2NvbnRyb2xfcmVnKHBv cykpOwogICAgICAgICAgICAgcGNpX2NvbmZfd3JpdGUxNihwZGV2LT5zZWcsIHBkZXYtPmJ1cywg c2xvdCwgZnVuYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNpeF9jb250cm9sX3Jl Zyhwb3MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sIHwgKFBDSV9NU0lY X0ZMQUdTX0VOQUJMRSB8CkBAIC0xNDU3LDggKzE0NDUsNyBAQCBpbnQgcGNpX3Jlc3RvcmVfbXNp X3N0YXRlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogICAgICAgICB7CiAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgY3BvcyA9IG1zaV9jb250cm9sX3JlZyhwb3MpOwogCi0gICAgICAgICAgICBjb250 cm9sID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNlZywgcGRldi0+YnVzLCBzbG90LCBmdW5jLCBj cG9zKSAmCi0gICAgICAgICAgICAgICAgICAgICAgflBDSV9NU0lfRkxBR1NfUVNJWkU7CisgICAg ICAgICAgICBjb250cm9sID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIGNwb3MpICYgflBD SV9NU0lfRkxBR1NfUVNJWkU7CiAgICAgICAgICAgICBtdWx0aV9tc2lfZW5hYmxlKGNvbnRyb2ws IGVudHJ5LT5tc2kubnZlYyk7CiAgICAgICAgICAgICBwY2lfY29uZl93cml0ZTE2KHBkZXYtPnNl ZywgcGRldi0+YnVzLCBzbG90LCBmdW5jLCBjcG9zLCBjb250cm9sKTsKIApkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L3g4Nl82NC9tbWNvbmZpZy1zaGFyZWQuYyBiL3hlbi9hcmNoL3g4Ni94ODZf NjQvbW1jb25maWctc2hhcmVkLmMKaW5kZXggOWUxYzgxZGNkMi4uOWQxZGI1OTBkOSAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbWNvbmZpZy1zaGFyZWQuYworKysgYi94ZW4vYXJj aC94ODYveDg2XzY0L21tY29uZmlnLXNoYXJlZC5jCkBAIC02NCw3ICs2NCw3IEBAIGN1c3RvbV9w YXJhbSgibW1jZmciLCBwYXJzZV9tbWNmZyk7CiBzdGF0aWMgY29uc3QgY2hhciBfX2luaXQgKnBj aV9tbWNmZ19lNzUyMCh2b2lkKQogewogICAgIHUzMiB3aW47Ci0gICAgd2luID0gcGNpX2NvbmZf cmVhZDE2KDAsIDAsIDAsIDAsIDB4Y2UpOworICAgIHdpbiA9IHBjaV9jb25mX3JlYWQxNihQQ0lf U0JERigwLCAwLCAwLCAwKSwgMHhjZSk7CiAKICAgICB3aW4gPSB3aW4gJiAweGYwMDA7CiAgICAg aWYod2luID09IDB4MDAwMCB8fCB3aW4gPT0gMHhmMDAwKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3g4Nl82NC9wY2kuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvcGNpLmMKaW5kZXggYjcwMzgz ZmIwMy4uZmUzNmI2MGM1MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9wY2kuYwor KysgYi94ZW4vYXJjaC94ODYveDg2XzY0L3BjaS5jCkBAIC0yNCwyOCArMjQsMjMgQEAgdWludDhf dCBwY2lfY29uZl9yZWFkOChwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVkIGludCByZWcpCiAgICAg cmV0dXJuIHBjaV9jb25mX3JlYWQoUENJX0NPTkZfQUREUkVTUyhzYmRmLCByZWcpLCByZWcgJiAz LCAxKTsKIH0KIAotI3VuZGVmIFBDSV9DT05GX0FERFJFU1MKLSNkZWZpbmUgUENJX0NPTkZfQURE UkVTUyhidXMsIGRldiwgZnVuYywgcmVnKSBcCi0gICAgKDB4ODAwMDAwMDAgfCAoYnVzIDw8IDE2 KSB8IChkZXYgPDwgMTEpIHwgKGZ1bmMgPDwgOCkgfCAocmVnICYgfjMpKQotCi11aW50MTZfdCBw Y2lfY29uZl9yZWFkMTYoCi0gICAgdW5zaWduZWQgaW50IHNlZywgdW5zaWduZWQgaW50IGJ1cywg dW5zaWduZWQgaW50IGRldiwgdW5zaWduZWQgaW50IGZ1bmMsCi0gICAgdW5zaWduZWQgaW50IHJl ZykKK3VpbnQxNl90IHBjaV9jb25mX3JlYWQxNihwY2lfc2JkZl90IHNiZGYsIHVuc2lnbmVkIGlu dCByZWcpCiB7Ci0gICAgdTMyIHZhbHVlOwotCi0gICAgaWYgKCBzZWcgfHwgcmVnID4gMjU1ICkK KyAgICBpZiAoIHNiZGYuc2VnIHx8IHJlZyA+IDI1NSApCiAgICAgewotICAgICAgICBwY2lfbW1j ZmdfcmVhZChzZWcsIGJ1cywgUENJX0RFVkZOKGRldiwgZnVuYyksIHJlZywgMiwgJnZhbHVlKTsK KyAgICAgICAgdWludDMyX3QgdmFsdWU7CisKKyAgICAgICAgcGNpX21tY2ZnX3JlYWQoc2JkZi5z ZWcsIHNiZGYuYnVzLCBzYmRmLmRldmZuLCByZWcsIDIsICZ2YWx1ZSk7CiAgICAgICAgIHJldHVy biB2YWx1ZTsKICAgICB9Ci0gICAgZWxzZQotICAgIHsKLSAgICAgICAgQlVHX09OKChidXMgPiAy NTUpIHx8IChkZXYgPiAzMSkgfHwgKGZ1bmMgPiA3KSk7Ci0gICAgICAgIHJldHVybiBwY2lfY29u Zl9yZWFkKFBDSV9DT05GX0FERFJFU1MoYnVzLCBkZXYsIGZ1bmMsIHJlZyksIHJlZyAmIDIsIDIp OwotICAgIH0KKworICAgIHJldHVybiBwY2lfY29uZl9yZWFkKFBDSV9DT05GX0FERFJFU1Moc2Jk ZiwgcmVnKSwgcmVnICYgMiwgMik7CiB9CiAKKyN1bmRlZiBQQ0lfQ09ORl9BRERSRVNTCisjZGVm aW5lIFBDSV9DT05GX0FERFJFU1MoYnVzLCBkZXYsIGZ1bmMsIHJlZykgXAorICAgICgweDgwMDAw MDAwIHwgKGJ1cyA8PCAxNikgfCAoZGV2IDw8IDExKSB8IChmdW5jIDw8IDgpIHwgKHJlZyAmIH4z KSkKKwogdWludDMyX3QgcGNpX2NvbmZfcmVhZDMyKAogICAgIHVuc2lnbmVkIGludCBzZWcsIHVu c2lnbmVkIGludCBidXMsIHVuc2lnbmVkIGludCBkZXYsIHVuc2lnbmVkIGludCBmdW5jLAogICAg IHVuc2lnbmVkIGludCByZWcpCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9jaGFyL2VoY2ktZGJn cC5jIGIveGVuL2RyaXZlcnMvY2hhci9laGNpLWRiZ3AuYwppbmRleCA3MWYwYWFhNmFjLi42NDI1 OGRhMmRjIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9jaGFyL2VoY2ktZGJncC5jCisrKyBiL3hl bi9kcml2ZXJzL2NoYXIvZWhjaS1kYmdwLmMKQEAgLTEwMTYsNyArMTAxNiw3IEBAIHN0YXRpYyB2 b2lkIG52aWRpYV9zZXRfZGVidWdfcG9ydChzdHJ1Y3QgZWhjaV9kYmdwICpkYmdwLCB1bnNpZ25l ZCBpbnQgcG9ydCkKIAogc3RhdGljIHZvaWQgX19pbml0IGRldGVjdF9zZXRfZGVidWdfcG9ydChz dHJ1Y3QgZWhjaV9kYmdwICpkYmdwKQogewotICAgIGlmICggcGNpX2NvbmZfcmVhZDE2KDAsIGRi Z3AtPmJ1cywgZGJncC0+c2xvdCwgZGJncC0+ZnVuYywKKyAgICBpZiAoIHBjaV9jb25mX3JlYWQx NihQQ0lfU0JERigwLCBkYmdwLT5idXMsIGRiZ3AtPnNsb3QsIGRiZ3AtPmZ1bmMpLAogICAgICAg ICAgICAgICAgICAgICAgICAgIFBDSV9WRU5ET1JfSUQpID09IDB4MTBkZSApCiAgICAgewogICAg ICAgICBkYmdwX3ByaW50aygidXNpbmcgbnZpZGlhIHNldF9kZWJ1Z19wb3J0XG4iKTsKQEAgLTE0 MTYsNyArMTQxNiw4IEBAIHN0YXRpYyB2b2lkIGVoY2lfZGJncF9zdXNwZW5kKHN0cnVjdCBzZXJp YWxfcG9ydCAqcG9ydCkKICAgICBzdG9wX3RpbWVyKCZkYmdwLT50aW1lcik7CiAgICAgZGJncC0+ dGltZXIuZXhwaXJlcyA9IDA7CiAKLSAgICBkYmdwLT5wY2lfY3IgPSBwY2lfY29uZl9yZWFkMTYo MCwgZGJncC0+YnVzLCBkYmdwLT5zbG90LCBkYmdwLT5mdW5jLAorICAgIGRiZ3AtPnBjaV9jciA9 IHBjaV9jb25mX3JlYWQxNihQQ0lfU0JERigwLCBkYmdwLT5idXMsIGRiZ3AtPnNsb3QsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiZ3AtPmZ1bmMpLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQ09NTUFORCk7CiAKICAgICBkYmdw LT5zdGF0ZSA9IGRiZ3BfdW5zYWZlOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvY2hhci9uczE2 NTUwLmMgYi94ZW4vZHJpdmVycy9jaGFyL25zMTY1NTAuYwppbmRleCA1NDcyNzBkMGUxLi45OWMx MjU0Y2FjIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9jaGFyL25zMTY1NTAuYworKysgYi94ZW4v ZHJpdmVycy9jaGFyL25zMTY1NTAuYwpAQCAtODQ2LDggKzg0Niw4IEBAIHN0YXRpYyB2b2lkIG5z MTY1NTBfc3VzcGVuZChzdHJ1Y3Qgc2VyaWFsX3BvcnQgKnBvcnQpCiAKICNpZmRlZiBDT05GSUdf SEFTX1BDSQogICAgIGlmICggdWFydC0+YmFyICkKLSAgICAgICB1YXJ0LT5jciA9IHBjaV9jb25m X3JlYWQxNigwLCB1YXJ0LT5wc19iZGZbMF0sIHVhcnQtPnBzX2JkZlsxXSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1YXJ0LT5wc19iZGZbMl0sIFBDSV9DT01NQU5EKTsKKyAg ICAgICB1YXJ0LT5jciA9IHBjaV9jb25mX3JlYWQxNihQQ0lfU0JERigwLCB1YXJ0LT5wc19iZGZb MF0sIHVhcnQtPnBzX2JkZlsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 YXJ0LT5wc19iZGZbMl0pLCBQQ0lfQ09NTUFORCk7CiAjZW5kaWYKIH0KIApAQCAtMTA2NCwxMCAr MTA2NCwxMiBAQCBwY2lfdWFydF9jb25maWcoc3RydWN0IG5zMTY1NTAgKnVhcnQsIGJvb2xfdCBz a2lwX2FtdCwgdW5zaWduZWQgaW50IGlkeCkKICAgICAgICAgICAgICAgICB1NjQgc2l6ZSA9IDA7 CiAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IG5zMTY1NTBfY29uZmlnX3BhcmFtICpwYXJh bSA9IHVhcnRfcGFyYW07CiAKLSAgICAgICAgICAgICAgICBuZXh0ZiA9IChmIHx8IChwY2lfY29u Zl9yZWFkMTYoMCwgYiwgZCwgZiwgUENJX0hFQURFUl9UWVBFKSAmCisgICAgICAgICAgICAgICAg bmV4dGYgPSAoZiB8fCAocGNpX2NvbmZfcmVhZDE2KFBDSV9TQkRGKDAsIGIsIGQsIGYpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfSEVBREVSX1RZ UEUpICYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwKSkgPyBmICsgMSA6IDg7 CiAKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKCBwY2lfY29uZl9yZWFkMTYoMCwgYiwgZCwgZiwg UENJX0NMQVNTX0RFVklDRSkgKQorICAgICAgICAgICAgICAgIHN3aXRjaCAoIHBjaV9jb25mX3Jl YWQxNihQQ0lfU0JERigwLCBiLCBkLCBmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUENJX0NMQVNTX0RFVklDRSkgKQogICAgICAgICAgICAgICAgIHsKICAgICAg ICAgICAgICAgICBjYXNlIDB4MDcwMDogLyogc2luZ2xlIHBvcnQgc2VyaWFsICovCiAgICAgICAg ICAgICAgICAgY2FzZSAweDA3MDI6IC8qIG11bHRpIHBvcnQgc2VyaWFsICovCkBAIC0xMDg0LDgg KzEwODYsMTAgQEAgcGNpX3VhcnRfY29uZmlnKHN0cnVjdCBuczE2NTUwICp1YXJ0LCBib29sX3Qg c2tpcF9hbXQsIHVuc2lnbmVkIGludCBpZHgpCiAgICAgICAgICAgICAgICAgLyogQ2hlY2sgZm9y IHBhcmFtcyBpbiB1YXJ0X2NvbmZpZyBsb29rdXAgdGFibGUgKi8KICAgICAgICAgICAgICAgICBm b3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUodWFydF9jb25maWcpOyBpKysgKQogICAgICAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgdTE2IHZlbmRvciA9IHBjaV9jb25mX3JlYWQx NigwLCBiLCBkLCBmLCBQQ0lfVkVORE9SX0lEKTsKLSAgICAgICAgICAgICAgICAgICAgdTE2IGRl dmljZSA9IHBjaV9jb25mX3JlYWQxNigwLCBiLCBkLCBmLCBQQ0lfREVWSUNFX0lEKTsKKyAgICAg ICAgICAgICAgICAgICAgdTE2IHZlbmRvciA9IHBjaV9jb25mX3JlYWQxNihQQ0lfU0JERigwLCBi LCBkLCBmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQ0lfVkVORE9SX0lEKTsKKyAgICAgICAgICAgICAgICAgICAgdTE2IGRldmljZSA9IHBjaV9j b25mX3JlYWQxNihQQ0lfU0JERigwLCBiLCBkLCBmKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfREVWSUNFX0lEKTsKIAogICAgICAgICAgICAg ICAgICAgICBpZiAoIHVhcnRfY29uZmlnW2ldLnZlbmRvcl9pZCA9PSB2ZW5kb3IgJiYKICAgICAg ICAgICAgICAgICAgICAgICAgICB1YXJ0X2NvbmZpZ1tpXS5kZXZfaWQgPT0gZGV2aWNlICkKZGlm ZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jCmluZGV4IDMwZGU2ODRmNmQuLjFi M2U3ZGUxMGQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9p bml0LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYwpAQCAt Nzk4LDggKzc5OCw3IEBAIHN0YXRpYyBib29sX3QgX19pbml0IHNldF9pb21tdV9pbnRlcnJ1cHRf aGFuZGxlcihzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKICAgICAgICAgICAgICAgICAgICAgICAg IFBDSV9TTE9UKGlvbW11LT5iZGYpLCBQQ0lfRlVOQyhpb21tdS0+YmRmKSk7CiAgICAgICAgIHJl dHVybiAwOwogICAgIH0KLSAgICBjb250cm9sID0gcGNpX2NvbmZfcmVhZDE2KGlvbW11LT5zZWcs IFBDSV9CVVMoaW9tbXUtPmJkZiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lf U0xPVChpb21tdS0+YmRmKSwgUENJX0ZVTkMoaW9tbXUtPmJkZiksCisgICAgY29udHJvbCA9IHBj aV9jb25mX3JlYWQxNihQQ0lfU0JERjIoaW9tbXUtPnNlZywgaW9tbXUtPmJkZiksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpb21tdS0+bXNpLm1zaV9hdHRyaWIucG9zICsgUENJX01T SV9GTEFHUyk7CiAgICAgaW9tbXUtPm1zaS5tc2kubnZlYyA9IDE7CiAgICAgaWYgKCBpc19tYXNr X2JpdF9zdXBwb3J0KGNvbnRyb2wpICkKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2F0cy5oIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXRzLmgKaW5kZXggYmVlMTM5MTFj MC4uMjJhZTIwOWIzNyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXRzLmgK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXRzLmgKQEAgLTM1LDggKzM1LDggQEAgc3Rh dGljIGlubGluZSBpbnQgcGNpX2F0c19lbmFibGVkKGludCBzZWcsIGludCBidXMsIGludCBkZXZm bikKICAgICBwb3MgPSBwY2lfZmluZF9leHRfY2FwYWJpbGl0eShzZWcsIGJ1cywgZGV2Zm4sIFBD SV9FWFRfQ0FQX0lEX0FUUyk7CiAgICAgQlVHX09OKCFwb3MpOwogCi0gICAgdmFsdWUgPSBwY2lf Y29uZl9yZWFkMTYoc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyArIEFUU19SRUdfQ1RMKTsKKyAgICB2YWx1 ZSA9IHBjaV9jb25mX3JlYWQxNihQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSwgcG9zICsgQVRT X1JFR19DVEwpOworCiAgICAgcmV0dXJuIHZhbHVlICYgQVRTX0VOQUJMRTsKIH0KIApkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9wY2kuYwppbmRleCAzNDBlOTU3OTU0Li43MDMwNTZmN2I5IDEwMDY0NAotLS0gYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9w Y2kuYwpAQCAtMjQ2LDExICsyNDYsMTEgQEAgc3RhdGljIHZvaWQgY2hlY2tfcGRldihjb25zdCBz dHJ1Y3QgcGNpX2RldiAqcGRldikKIAogICAgIGlmICggY29tbWFuZF9tYXNrICkKICAgICB7Ci0g ICAgICAgIHZhbCA9IHBjaV9jb25mX3JlYWQxNihzZWcsIGJ1cywgZGV2LCBmdW5jLCBQQ0lfQ09N TUFORCk7CisgICAgICAgIHZhbCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBQQ0lfQ09N TUFORCk7CiAgICAgICAgIGlmICggdmFsICYgY29tbWFuZF9tYXNrICkKICAgICAgICAgICAgIHBj aV9jb25mX3dyaXRlMTYoc2VnLCBidXMsIGRldiwgZnVuYywgUENJX0NPTU1BTkQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZhbCAmIH5jb21tYW5kX21hc2spOwotICAgICAgICB2YWwg PSBwY2lfY29uZl9yZWFkMTYoc2VnLCBidXMsIGRldiwgZnVuYywgUENJX1NUQVRVUyk7CisgICAg ICAgIHZhbCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBQQ0lfU1RBVFVTKTsKICAgICAg ICAgaWYgKCB2YWwgJiBQQ0lfU1RBVFVTX0NIRUNLICkKICAgICAgICAgewogICAgICAgICAgICAg cHJpbnRrKFhFTkxPR19JTkZPICIlMDR4OiUwMng6JTAyeC4ldSBzdGF0dXMgJTA0eCAtPiAlMDR4 XG4iLApAQCAtMjY1LDExICsyNjUsMTEgQEAgc3RhdGljIHZvaWQgY2hlY2tfcGRldihjb25zdCBz dHJ1Y3QgcGNpX2RldiAqcGRldikKICAgICBjYXNlIFBDSV9IRUFERVJfVFlQRV9CUklER0U6CiAg ICAgICAgIGlmICggIWJyaWRnZV9jdGxfbWFzayApCiAgICAgICAgICAgICBicmVhazsKLSAgICAg ICAgdmFsID0gcGNpX2NvbmZfcmVhZDE2KHNlZywgYnVzLCBkZXYsIGZ1bmMsIFBDSV9CUklER0Vf Q09OVFJPTCk7CisgICAgICAgIHZhbCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBQQ0lf QlJJREdFX0NPTlRST0wpOwogICAgICAgICBpZiAoIHZhbCAmIGJyaWRnZV9jdGxfbWFzayApCiAg ICAgICAgICAgICBwY2lfY29uZl93cml0ZTE2KHNlZywgYnVzLCBkZXYsIGZ1bmMsIFBDSV9CUklE R0VfQ09OVFJPTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsICYgfmJyaWRnZV9j dGxfbWFzayk7Ci0gICAgICAgIHZhbCA9IHBjaV9jb25mX3JlYWQxNihzZWcsIGJ1cywgZGV2LCBm dW5jLCBQQ0lfU0VDX1NUQVRVUyk7CisgICAgICAgIHZhbCA9IHBjaV9jb25mX3JlYWQxNihwZGV2 LT5zYmRmLCBQQ0lfU0VDX1NUQVRVUyk7CiAgICAgICAgIGlmICggdmFsICYgUENJX1NUQVRVU19D SEVDSyApCiAgICAgICAgIHsKICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTwpAQCAtMjg5 LDEyICsyODksOCBAQCBzdGF0aWMgdm9pZCBjaGVja19wZGV2KGNvbnN0IHN0cnVjdCBwY2lfZGV2 ICpwZGV2KQogCiBzdGF0aWMgdm9pZCBhcHBseV9xdWlya3Moc3RydWN0IHBjaV9kZXYgKnBkZXYp CiB7Ci0gICAgdWludDE2X3QgdmVuZG9yID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNlZywgcGRl di0+YnVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChw ZGV2LT5kZXZmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9G VU5DKHBkZXYtPmRldmZuKSwgUENJX1ZFTkRPUl9JRCk7Ci0gICAgdWludDE2X3QgZGV2aWNlID0g cGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNlZywgcGRldi0+YnVzLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChwZGV2LT5kZXZmbiksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBkZXYtPmRldmZuKSwgUENJX0RFVklD RV9JRCk7CisgICAgdWludDE2X3QgdmVuZG9yID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYs IFBDSV9WRU5ET1JfSUQpOworICAgIHVpbnQxNl90IGRldmljZSA9IHBjaV9jb25mX3JlYWQxNihw ZGV2LT5zYmRmLCBQQ0lfREVWSUNFX0lEKTsKICAgICBzdGF0aWMgY29uc3Qgc3RydWN0IHsKICAg ICAgICAgdWludDE2X3QgdmVuZG9yLCBkZXZpY2U7CiAgICAgfSBpZ25vcmVfYmFyc1tdID0gewpA QCAtMzg3LDggKzM4Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX2RldiAqYWxsb2NfcGRldihzdHJ1 Y3QgcGNpX3NlZyAqcHNlZywgdTggYnVzLCB1OCBkZXZmbikKICAgICAgICAgICAgIHBvcyA9IHBj aV9maW5kX2NhcF9vZmZzZXQocHNlZy0+bnIsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRlVOQyhkZXZmbiksIFBDSV9DQVBf SURfRVhQKTsKICAgICAgICAgICAgIEJVR19PTighcG9zKTsKLSAgICAgICAgICAgIGNhcCA9IHBj aV9jb25mX3JlYWQxNihwc2VnLT5uciwgYnVzLCBQQ0lfU0xPVChkZXZmbiksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUENJX0ZVTkMoZGV2Zm4pLCBwb3MgKyBQQ0lfRVhQX0RF VkNBUCk7CisgICAgICAgICAgICBjYXAgPSBwY2lfY29uZl9yZWFkMTYocGRldi0+c2JkZiwgcG9z ICsgUENJX0VYUF9ERVZDQVApOwogICAgICAgICAgICAgaWYgKCBjYXAgJiBQQ0lfRVhQX0RFVkNB UF9QSEFOVE9NICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBwZGV2LT5waGFudG9t X3N0cmlkZSA9IDggPj4gTUFTS19FWFRSKGNhcCwKQEAgLTYxMSw4ICs2MDYsOCBAQCBzdGF0aWMg dm9pZCBwY2lfZW5hYmxlX2FjcyhzdHJ1Y3QgcGNpX2RldiAqcGRldikKICAgICBpZiAoIXBvcykK ICAgICAgICAgcmV0dXJuOwogCi0gICAgY2FwID0gcGNpX2NvbmZfcmVhZDE2KHNlZywgYnVzLCBk ZXYsIGZ1bmMsIHBvcyArIFBDSV9BQ1NfQ0FQKTsKLSAgICBjdHJsID0gcGNpX2NvbmZfcmVhZDE2 KHNlZywgYnVzLCBkZXYsIGZ1bmMsIHBvcyArIFBDSV9BQ1NfQ1RSTCk7CisgICAgY2FwID0gcGNp X2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIHBvcyArIFBDSV9BQ1NfQ0FQKTsKKyAgICBjdHJsID0g cGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIHBvcyArIFBDSV9BQ1NfQ1RSTCk7CiAKICAgICAv KiBTb3VyY2UgVmFsaWRhdGlvbiAqLwogICAgIGN0cmwgfD0gKGNhcCAmIFBDSV9BQ1NfU1YpOwpA QCAtNzQzLDcgKzczOCw3IEBAIGludCBwY2lfYWRkX2RldmljZSh1MTYgc2VnLCB1OCBidXMsIHU4 IGRldmZuLAogICAgIHsKICAgICAgICAgdW5zaWduZWQgaW50IHBvcyA9IHBjaV9maW5kX2V4dF9j YXBhYmlsaXR5KHNlZywgYnVzLCBkZXZmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBDSV9FWFRfQ0FQX0lEX1NSSU9WKTsKLSAgICAgICAgdTE2 IGN0cmwgPSBwY2lfY29uZl9yZWFkMTYoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIHBvcyArIFBDSV9T UklPVl9DVFJMKTsKKyAgICAgICAgdTE2IGN0cmwgPSBwY2lfY29uZl9yZWFkMTYocGRldi0+c2Jk ZiwgcG9zICsgUENJX1NSSU9WX0NUUkwpOwogCiAgICAgICAgIGlmICggIXBvcyApCiAgICAgICAg ICAgICAvKiBOb3RoaW5nICovOwpAQCAtOTM3LDEzICs5MzIsMTMgQEAgZW51bSBwZGV2X3R5cGUg cGRldl90eXBlKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCiAgICAgdTggZCA9IFBDSV9TTE9U KGRldmZuKSwgZiA9IFBDSV9GVU5DKGRldmZuKTsKICAgICBpbnQgcG9zID0gcGNpX2ZpbmRfY2Fw X29mZnNldChzZWcsIGJ1cywgZCwgZiwgUENJX0NBUF9JRF9FWFApOwogCi0gICAgY2xhc3NfZGV2 aWNlID0gcGNpX2NvbmZfcmVhZDE2KHNlZywgYnVzLCBkLCBmLCBQQ0lfQ0xBU1NfREVWSUNFKTsK KyAgICBjbGFzc19kZXZpY2UgPSBwY2lfY29uZl9yZWFkMTYoUENJX1NCREYoc2VnLCBidXMsIGQs IGYpLCBQQ0lfQ0xBU1NfREVWSUNFKTsKICAgICBzd2l0Y2ggKCBjbGFzc19kZXZpY2UgKQogICAg IHsKICAgICBjYXNlIFBDSV9DTEFTU19CUklER0VfUENJOgogICAgICAgICBpZiAoICFwb3MgKQog ICAgICAgICAgICAgcmV0dXJuIERFVl9UWVBFX0xFR0FDWV9QQ0lfQlJJREdFOwotICAgICAgICBj cmVnID0gcGNpX2NvbmZfcmVhZDE2KHNlZywgYnVzLCBkLCBmLCBwb3MgKyBQQ0lfRVhQX0ZMQUdT KTsKKyAgICAgICAgY3JlZyA9IHBjaV9jb25mX3JlYWQxNihQQ0lfU0JERihzZWcsIGJ1cywgZCwg ZiksIHBvcyArIFBDSV9FWFBfRkxBR1MpOwogICAgICAgICBzd2l0Y2ggKCAoY3JlZyAmIFBDSV9F WFBfRkxBR1NfVFlQRSkgPj4gNCApCiAgICAgICAgIHsKICAgICAgICAgY2FzZSBQQ0lfRVhQX1RZ UEVfUENJX0JSSURHRToKQEAgLTEwNDAsOCArMTAzNSw3IEBAIHZvaWQgcGNpX2NoZWNrX2Rpc2Fi bGVfZGV2aWNlKHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCiAgICAgLyogVGVsbCB0aGUgZGV2 aWNlIHRvIHN0b3AgRE1BaW5nOyB3ZSBjYW4ndCByZWx5IG9uIHRoZSBndWVzdCB0bwogICAgICAq IGNvbnRyb2wgaXQgZm9yIHVzLiAqLwogICAgIGRldmZuID0gcGRldi0+ZGV2Zm47Ci0gICAgY3dv cmQgPSBwY2lfY29uZl9yZWFkMTYoc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMo ZGV2Zm4pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9DT01NQU5EKTsKKyAgICBj d29yZCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBQQ0lfQ09NTUFORCk7CiAgICAgcGNp X2NvbmZfd3JpdGUxNihzZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiks CiAgICAgICAgICAgICAgICAgICAgICBQQ0lfQ09NTUFORCwgY3dvcmQgJiB+UENJX0NPTU1BTkRf TUFTVEVSKTsKIH0KQEAgLTEyMDksMTAgKzEyMDMsNyBAQCBzdGF0aWMgYm9vbF90IGhlc3RfbWF0 Y2hfdHlwZShjb25zdCBzdHJ1Y3QgYWNwaV9oZXN0X2hlYWRlciAqaGVzdF9oZHIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QocGRldi0+ZGV2Zm4p LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKHBk ZXYtPmRldmZuKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ Q0lfQ0FQX0lEX0VYUCk7Ci0gICAgdTggcGNpZSA9IE1BU0tfRVhUUihwY2lfY29uZl9yZWFkMTYo cGRldi0+c2VnLCBwZGV2LT5idXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUENJX1NMT1QocGRldi0+ZGV2Zm4pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBDSV9GVU5DKHBkZXYtPmRldmZuKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwb3MgKyBQQ0lfRVhQX0ZMQUdTKSwKKyAgICB1OCBwY2llID0g TUFTS19FWFRSKHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBwb3MgKyBQQ0lfRVhQX0ZMQUdT KSwKICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9FWFBfRkxBR1NfVFlQRSk7CiAKICAgICBz d2l0Y2ggKCBoZXN0X2hkci0+dHlwZSApCkBAIC0xMjIyLDggKzEyMTMsNyBAQCBzdGF0aWMgYm9v bF90IGhlc3RfbWF0Y2hfdHlwZShjb25zdCBzdHJ1Y3QgYWNwaV9oZXN0X2hlYWRlciAqaGVzdF9o ZHIsCiAgICAgY2FzZSBBQ1BJX0hFU1RfVFlQRV9BRVJfRU5EUE9JTlQ6CiAgICAgICAgIHJldHVy biBwY2llID09IFBDSV9FWFBfVFlQRV9FTkRQT0lOVDsKICAgICBjYXNlIEFDUElfSEVTVF9UWVBF X0FFUl9CUklER0U6Ci0gICAgICAgIHJldHVybiBwY2lfY29uZl9yZWFkMTYocGRldi0+c2VnLCBw ZGV2LT5idXMsIFBDSV9TTE9UKHBkZXYtPmRldmZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQQ0lfRlVOQyhwZGV2LT5kZXZmbiksIFBDSV9DTEFTU19ERVZJQ0UpID09CisgICAg ICAgIHJldHVybiBwY2lfY29uZl9yZWFkMTYocGRldi0+c2JkZiwgUENJX0NMQVNTX0RFVklDRSkg PT0KICAgICAgICAgICAgICAgIFBDSV9DTEFTU19CUklER0VfUENJOwogICAgIH0KIApkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3F1aXJrcy5jIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL3F1aXJrcy5jCmluZGV4IGZmNzNiMGU3ZjQuLjQ3NTk3Yzk2MDAgMTAw NjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWlya3MuYworKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMKQEAgLTc0LDcgKzc0LDcgQEAgaW50IGlz X2lnZF92dF9lbmFibGVkX3F1aXJrKHZvaWQpCiAgICAgICAgIHJldHVybiAxOwogCiAgICAgLyog aW50ZWdyYXRlZCBncmFwaGljcyBvbiBJbnRlbCBwbGF0Zm9ybXMgaXMgbG9jYXRlZCBhdCAwOjIu MCAqLwotICAgIGdnYyA9IHBjaV9jb25mX3JlYWQxNigwLCAwLCBJR0RfREVWLCAwLCBHR0MpOwor ICAgIGdnYyA9IHBjaV9jb25mX3JlYWQxNihQQ0lfU0JERigwLCAwLCBJR0RfREVWLCAwKSwgR0dD KTsKICAgICByZXR1cm4gKCBnZ2MgJiBHR0NfTUVNT1JZX1ZUX0VOQUJMRUQgPyAxIDogMCApOwog fQogCkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBjYW50aWdhX2IzX2VycmF0 YV9pbml0KHZvaWQpCiAgICAgdTE2IHZpZDsKICAgICB1OCBkaWRfaGksIHJpZDsKIAotICAgIHZp ZCA9IHBjaV9jb25mX3JlYWQxNigwLCAwLCBJR0RfREVWLCAwLCAwKTsKKyAgICB2aWQgPSBwY2lf Y29uZl9yZWFkMTYoUENJX1NCREYoMCwgMCwgSUdEX0RFViwgMCksIDApOwogICAgIGlmICggdmlk ICE9IDB4ODA4NiApCiAgICAgICAgIHJldHVybjsKIApAQCAtNDI0LDExICs0MjQsMTAgQEAgdm9p ZCBwY2lfdnRkX3F1aXJrKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogICAgIHBhZGRyX3Qg cGE7CiAgICAgY29uc3QgY2hhciAqYWN0aW9uOwogCi0gICAgaWYgKCBwY2lfY29uZl9yZWFkMTYo c2VnLCBidXMsIGRldiwgZnVuYywgUENJX1ZFTkRPUl9JRCkgIT0KLSAgICAgICAgIFBDSV9WRU5E T1JfSURfSU5URUwgKQorICAgIGlmICggcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIFBDSV9W RU5ET1JfSUQpICE9IFBDSV9WRU5ET1JfSURfSU5URUwgKQogICAgICAgICByZXR1cm47CiAKLSAg ICBzd2l0Y2ggKCBwY2lfY29uZl9yZWFkMTYoc2VnLCBidXMsIGRldiwgZnVuYywgUENJX0RFVklD RV9JRCkgKQorICAgIHN3aXRjaCAoIHBjaV9jb25mX3JlYWQxNihwZGV2LT5zYmRmLCBQQ0lfREVW SUNFX0lEKSApCiAgICAgewogICAgIC8qCiAgICAgICogTWFzayByZXBvcnRpbmcgSW50ZWwgVlQt ZCBmYXVsdHMgdG8gSU9IIGNvcmUgbG9naWM6CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC94ODYvYXRzLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvYXRzLmMKaW5k ZXggNTljMTYzNDU5YS4uY2IwMjJjNTk4YSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gveDg2L2F0cy5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9hdHMuYwpA QCAtMzQsOCArMzQsNyBAQCBpbnQgZW5hYmxlX2F0c19kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBk ZXYsIHN0cnVjdCBsaXN0X2hlYWQgKmF0c19saXN0KQogICAgICAgICBkcHJpbnRrKFhFTkxPR19J TkZPLCAiJTA0eDolMDJ4OiUwMnguJXU6IEFUUyBjYXBhYmlsaXR5IGZvdW5kXG4iLAogICAgICAg ICAgICAgICAgIHNlZywgYnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7CiAK LSAgICB2YWx1ZSA9IHBjaV9jb25mX3JlYWQxNihzZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKGRldmZuKSwgcG9zICsgQVRTX1JF R19DVEwpOworICAgIHZhbHVlID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIHBvcyArIEFU U19SRUdfQ1RMKTsKICAgICBpZiAoIHZhbHVlICYgQVRTX0VOQUJMRSApCiAgICAgewogICAgICAg ICBzdHJ1Y3QgcGNpX2RldiAqb3RoZXI7CkBAIC01OCw4ICs1Nyw3IEBAIGludCBlbmFibGVfYXRz X2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgc3RydWN0IGxpc3RfaGVhZCAqYXRzX2xpc3Qp CiAgICAgaWYgKCBwb3MgKQogICAgIHsKICAgICAgICAgcGRldi0+YXRzLmNhcF9wb3MgPSBwb3M7 Ci0gICAgICAgIHZhbHVlID0gcGNpX2NvbmZfcmVhZDE2KHNlZywgYnVzLCBQQ0lfU0xPVChkZXZm biksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKGRldmZuKSwgcG9z ICsgQVRTX1JFR19DQVApOworICAgICAgICB2YWx1ZSA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5z YmRmLCBwb3MgKyBBVFNfUkVHX0NBUCk7CiAgICAgICAgIHBkZXYtPmF0cy5xdWV1ZV9kZXB0aCA9 IHZhbHVlICYgQVRTX1FVRVVFX0RFUFRIX01BU0sgPzoKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQVRTX1FVRVVFX0RFUFRIX01BU0sgKyAxOwogICAgICAgICBsaXN0X2FkZCgmcGRl di0+YXRzLmxpc3QsIGF0c19saXN0KTsKQEAgLTgxLDggKzc5LDcgQEAgdm9pZCBkaXNhYmxlX2F0 c19kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAKICAgICBCVUdfT04oIXBkZXYtPmF0cy5j YXBfcG9zKTsKIAotICAgIHZhbHVlID0gcGNpX2NvbmZfcmVhZDE2KHNlZywgYnVzLCBQQ0lfU0xP VChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBw ZGV2LT5hdHMuY2FwX3BvcyArIEFUU19SRUdfQ1RMKTsKKyAgICB2YWx1ZSA9IHBjaV9jb25mX3Jl YWQxNihwZGV2LT5zYmRmLCBwZGV2LT5hdHMuY2FwX3BvcyArIEFUU19SRUdfQ1RMKTsKICAgICB2 YWx1ZSAmPSB+QVRTX0VOQUJMRTsKICAgICBwY2lfY29uZl93cml0ZTE2KHNlZywgYnVzLCBQQ0lf U0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwKICAgICAgICAgICAgICAgICAgICAgIHBkZXYt PmF0cy5jYXBfcG9zICsgQVRTX1JFR19DVEwsIHZhbHVlKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2 ZXJzL3BjaS9wY2kuYyBiL3hlbi9kcml2ZXJzL3BjaS9wY2kuYwppbmRleCBlM2Y4ODNmYzVjLi41 ZTVlMGYwNTM4IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wY2kvcGNpLmMKKysrIGIveGVuL2Ry aXZlcnMvcGNpL3BjaS5jCkBAIC0xNSw3ICsxNSw3IEBAIGludCBwY2lfZmluZF9jYXBfb2Zmc2V0 KHUxNiBzZWcsIHU4IGJ1cywgdTggZGV2LCB1OCBmdW5jLCB1OCBjYXApCiAgICAgdTggcG9zID0g UENJX0NBUEFCSUxJVFlfTElTVDsKICAgICB1MTYgc3RhdHVzOwogCi0gICAgc3RhdHVzID0gcGNp X2NvbmZfcmVhZDE2KHNlZywgYnVzLCBkZXYsIGZ1bmMsIFBDSV9TVEFUVVMpOworICAgIHN0YXR1 cyA9IHBjaV9jb25mX3JlYWQxNihQQ0lfU0JERihzZWcsIGJ1cywgZGV2LCBmdW5jKSwgUENJX1NU QVRVUyk7CiAgICAgaWYgKCAoc3RhdHVzICYgUENJX1NUQVRVU19DQVBfTElTVCkgPT0gMCApCiAg ICAgICAgIHJldHVybiAwOwogCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBwY2lfaW50eChjb25z dCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgYm9vbCBlbmFibGUpCiAgICAgdWludDhfdCBidXMgPSBw ZGV2LT5idXM7CiAgICAgdWludDhfdCBzbG90ID0gUENJX1NMT1QocGRldi0+ZGV2Zm4pOwogICAg IHVpbnQ4X3QgZnVuYyA9IFBDSV9GVU5DKHBkZXYtPmRldmZuKTsKLSAgICB1aW50MTZfdCBjbWQg PSBwY2lfY29uZl9yZWFkMTYoc2VnLCBidXMsIHNsb3QsIGZ1bmMsIFBDSV9DT01NQU5EKTsKKyAg ICB1aW50MTZfdCBjbWQgPSBwY2lfY29uZl9yZWFkMTYocGRldi0+c2JkZiwgUENJX0NPTU1BTkQp OwogCiAgICAgaWYgKCBlbmFibGUgKQogICAgICAgICBjbWQgJj0gflBDSV9DT01NQU5EX0lOVFhf RElTQUJMRTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZpZGVvL3ZnYS5jIGIveGVuL2RyaXZl cnMvdmlkZW8vdmdhLmMKaW5kZXggNzg1MzNhZDBiMS4uNDU0NDU3YWRlOCAxMDA2NDQKLS0tIGEv eGVuL2RyaXZlcnMvdmlkZW8vdmdhLmMKKysrIGIveGVuL2RyaXZlcnMvdmlkZW8vdmdhLmMKQEAg LTEyMSwxMCArMTIxLDkgQEAgdm9pZCBfX2luaXQgdmlkZW9fZW5kYm9vdCh2b2lkKQogICAgICAg ICAgICAgICAgIHBjaWRldnNfdW5sb2NrKCk7CiAKICAgICAgICAgICAgICAgICBpZiAoICFwZGV2 IHx8Ci0gICAgICAgICAgICAgICAgICAgICBwY2lfY29uZl9yZWFkMTYoMCwgYnVzLCBQQ0lfU0xP VChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwKKyAgICAgICAgICAgICAgICAgICAgIHBjaV9jb25m X3JlYWQxNihQQ0lfU0JERjMoMCwgYnVzLCBkZXZmbiksCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUENJX0NMQVNTX0RFVklDRSkgIT0gMHgwMzAwIHx8Ci0gICAgICAgICAg ICAgICAgICAgICAhKHBjaV9jb25mX3JlYWQxNigwLCBidXMsIFBDSV9TTE9UKGRldmZuKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKGRldmZuKSwgUENJ X0NPTU1BTkQpICYKKyAgICAgICAgICAgICAgICAgICAgICEocGNpX2NvbmZfcmVhZDE2KFBDSV9T QkRGMygwLCBidXMsIGRldmZuKSwgUENJX0NPTU1BTkQpICYKICAgICAgICAgICAgICAgICAgICAg ICAgKFBDSV9DT01NQU5EX0lPIHwgUENJX0NPTU1BTkRfTUVNT1JZKSkgKQogICAgICAgICAgICAg ICAgICAgICBjb250aW51ZTsKIApAQCAtMTQxLDggKzE0MCw3IEBAIHZvaWQgX19pbml0IHZpZGVv X2VuZGJvb3Qodm9pZCkKICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICAgICAgICAgIGNhc2UgUENJX0hFQURFUl9UWVBFX0JSSURHRToKICAgICAgICAgICAgICAgICAg ICAgICAgIGNhc2UgUENJX0hFQURFUl9UWVBFX0NBUkRCVVM6Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgKCBwY2lfY29uZl9yZWFkMTYoMCwgYiwgUENJX1NMT1QoZGYpLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9GVU5DKGRmKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIHBjaV9jb25mX3JlYWQxNihQQ0lfU0JE RjMoMCwgYiwgZGYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBDSV9CUklER0VfQ09OVFJPTCkgJgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUENJX0JSSURHRV9DVExfVkdBICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udGludWU7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jIGIveGVu L2RyaXZlcnMvdnBjaS9oZWFkZXIuYwppbmRleCA1NjRjN2I2YTdkLi4wYjE3NmI0OTBhIDEwMDY0 NAotLS0gYS94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jCisrKyBiL3hlbi9kcml2ZXJzL3ZwY2kv aGVhZGVyLmMKQEAgLTMzNiw4ICszMzYsNyBAQCBzdGF0aWMgdm9pZCBjbWRfd3JpdGUoY29uc3Qg c3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsCiAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3QgY21kLCB2b2lkICpkYXRhKQogewogICAgIHVpbnQ4X3Qgc2xvdCA9IFBD SV9TTE9UKHBkZXYtPmRldmZuKSwgZnVuYyA9IFBDSV9GVU5DKHBkZXYtPmRldmZuKTsKLSAgICB1 aW50MTZfdCBjdXJyZW50X2NtZCA9IHBjaV9jb25mX3JlYWQxNihwZGV2LT5zZWcsIHBkZXYtPmJ1 cywgc2xvdCwgZnVuYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZWcpOworICAgIHVpbnQxNl90IGN1cnJlbnRfY21kID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYt PnNiZGYsIHJlZyk7CiAKICAgICAvKgogICAgICAqIExldCBEb20wIHBsYXkgd2l0aCBhbGwgdGhl IGJpdHMgZGlyZWN0bHkgZXhjZXB0IGZvciB0aGUgbWVtb3J5CkBAIC0zNzEsOCArMzcwLDcgQEAg c3RhdGljIHZvaWQgYmFyX3dyaXRlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25l ZCBpbnQgcmVnLAogICAgIGVsc2UKICAgICAgICAgdmFsICY9IFBDSV9CQVNFX0FERFJFU1NfTUVN X01BU0s7CiAKLSAgICBpZiAoIHBjaV9jb25mX3JlYWQxNihwZGV2LT5zZWcsIHBkZXYtPmJ1cywg c2xvdCwgZnVuYywgUENJX0NPTU1BTkQpICYKLSAgICAgICAgIFBDSV9DT01NQU5EX01FTU9SWSAp CisgICAgaWYgKCBwY2lfY29uZl9yZWFkMTYocGRldi0+c2JkZiwgUENJX0NPTU1BTkQpICYgUENJ X0NPTU1BTkRfTUVNT1JZICkKICAgICB7CiAgICAgICAgIC8qIElmIHRoZSB2YWx1ZSB3cml0dGVu IGlzIHRoZSBjdXJyZW50IG9uZSBhdm9pZCBwcmludGluZyBhIHdhcm5pbmcuICovCiAgICAgICAg IGlmICggdmFsICE9ICh1aW50MzJfdCkoYmFyLT5hZGRyID4+IChoaSA/IDMyIDogMCkpICkKQEAg LTQwOSw4ICs0MDcsNyBAQCBzdGF0aWMgdm9pZCByb21fd3JpdGUoY29uc3Qgc3RydWN0IHBjaV9k ZXYgKnBkZXYsIHVuc2lnbmVkIGludCByZWcsCiAgICAgc3RydWN0IHZwY2lfaGVhZGVyICpoZWFk ZXIgPSAmcGRldi0+dnBjaS0+aGVhZGVyOwogICAgIHN0cnVjdCB2cGNpX2JhciAqcm9tID0gZGF0 YTsKICAgICB1aW50OF90IHNsb3QgPSBQQ0lfU0xPVChwZGV2LT5kZXZmbiksIGZ1bmMgPSBQQ0lf RlVOQyhwZGV2LT5kZXZmbik7Ci0gICAgdWludDE2X3QgY21kID0gcGNpX2NvbmZfcmVhZDE2KHBk ZXYtPnNlZywgcGRldi0+YnVzLCBzbG90LCBmdW5jLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQQ0lfQ09NTUFORCk7CisgICAgdWludDE2X3QgY21kID0gcGNpX2NvbmZfcmVh ZDE2KHBkZXYtPnNiZGYsIFBDSV9DT01NQU5EKTsKICAgICBib29sIG5ld19lbmFibGVkID0gdmFs ICYgUENJX1JPTV9BRERSRVNTX0VOQUJMRTsKIAogICAgIGlmICggKGNtZCAmIFBDSV9DT01NQU5E X01FTU9SWSkgJiYgaGVhZGVyLT5yb21fZW5hYmxlZCAmJiBuZXdfZW5hYmxlZCApCkBAIC00ODks NyArNDg2LDcgQEAgc3RhdGljIGludCBpbml0X2JhcnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAg ICAgICAgIHJldHVybiAwOwogCiAgICAgLyogRGlzYWJsZSBtZW1vcnkgZGVjb2RpbmcgYmVmb3Jl IHNpemluZy4gKi8KLSAgICBjbWQgPSBwY2lfY29uZl9yZWFkMTYocGRldi0+c2VnLCBwZGV2LT5i dXMsIHNsb3QsIGZ1bmMsIFBDSV9DT01NQU5EKTsKKyAgICBjbWQgPSBwY2lfY29uZl9yZWFkMTYo cGRldi0+c2JkZiwgUENJX0NPTU1BTkQpOwogICAgIGlmICggY21kICYgUENJX0NPTU1BTkRfTUVN T1JZICkKICAgICAgICAgcGNpX2NvbmZfd3JpdGUxNihwZGV2LT5zZWcsIHBkZXYtPmJ1cywgc2xv dCwgZnVuYywgUENJX0NPTU1BTkQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY21kICYgflBD SV9DT01NQU5EX01FTU9SWSk7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL21zaS5jIGIv eGVuL2RyaXZlcnMvdnBjaS9tc2kuYwppbmRleCBjNGUxZDJhNDExLi44ZmU4OWZjOTEyIDEwMDY0 NAotLS0gYS94ZW4vZHJpdmVycy92cGNpL21zaS5jCisrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvbXNp LmMKQEAgLTIxMSw4ICsyMTEsNyBAQCBzdGF0aWMgaW50IGluaXRfbXNpKHN0cnVjdCBwY2lfZGV2 ICpwZGV2KQogICAgICAgICByZXR1cm4gcmV0OwogCiAgICAgLyogR2V0IHRoZSBtYXhpbXVtIG51 bWJlciBvZiB2ZWN0b3JzIHRoZSBkZXZpY2Ugc3VwcG9ydHMuICovCi0gICAgY29udHJvbCA9IHBj aV9jb25mX3JlYWQxNihwZGV2LT5zZWcsIHBkZXYtPmJ1cywgc2xvdCwgZnVuYywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1zaV9jb250cm9sX3JlZyhwb3MpKTsKKyAgICBjb250cm9s ID0gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNiZGYsIG1zaV9jb250cm9sX3JlZyhwb3MpKTsKIAog ICAgIC8qCiAgICAgICogRklYTUU6IEkndmUgb25seSBiZWVuIGFibGUgdG8gdGVzdCB0aGlzIGNv ZGUgd2l0aCBkZXZpY2VzIHVzaW5nIGEgc2luZ2xlCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92 cGNpL21zaXguYyBiL3hlbi9kcml2ZXJzL3ZwY2kvbXNpeC5jCmluZGV4IGFmM2ZmYTA4N2QuLjhl NmNkMDcwZDAgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvbXNpeC5jCisrKyBiL3hlbi9k cml2ZXJzL3ZwY2kvbXNpeC5jCkBAIC00NTcsOCArNDU3LDcgQEAgc3RhdGljIGludCBpbml0X21z aXgoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAgICAgaWYgKCAhbXNpeF9vZmZzZXQgKQogICAgICAg ICByZXR1cm4gMDsKIAotICAgIGNvbnRyb2wgPSBwY2lfY29uZl9yZWFkMTYocGRldi0+c2VnLCBw ZGV2LT5idXMsIHNsb3QsIGZ1bmMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2l4 X2NvbnRyb2xfcmVnKG1zaXhfb2Zmc2V0KSk7CisgICAgY29udHJvbCA9IHBjaV9jb25mX3JlYWQx NihwZGV2LT5zYmRmLCBtc2l4X2NvbnRyb2xfcmVnKG1zaXhfb2Zmc2V0KSk7CiAKICAgICBtYXhf ZW50cmllcyA9IG1zaXhfdGFibGVfc2l6ZShjb250cm9sKTsKIApkaWZmIC0tZ2l0IGEveGVuL2Ry aXZlcnMvdnBjaS92cGNpLmMgYi94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYwppbmRleCBjNDAzMDMz M2E1Li4xYTRjMmVlNGYxIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYworKysg Yi94ZW4vZHJpdmVycy92cGNpL3ZwY2kuYwpAQCAtMTE0LDggKzExNCw3IEBAIHN0YXRpYyB2b2lk IHZwY2lfaWdub3JlZF93cml0ZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQg aW50IHJlZywKIHVpbnQzMl90IHZwY2lfaHdfcmVhZDE2KGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpw ZGV2LCB1bnNpZ25lZCBpbnQgcmVnLAogICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGF0 YSkKIHsKLSAgICByZXR1cm4gcGNpX2NvbmZfcmVhZDE2KHBkZXYtPnNlZywgcGRldi0+YnVzLCBQ Q0lfU0xPVChwZGV2LT5kZXZmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfRlVO QyhwZGV2LT5kZXZmbiksIHJlZyk7CisgICAgcmV0dXJuIHBjaV9jb25mX3JlYWQxNihwZGV2LT5z YmRmLCByZWcpOwogfQogCiB1aW50MzJfdCB2cGNpX2h3X3JlYWQzMihjb25zdCBzdHJ1Y3QgcGNp X2RldiAqcGRldiwgdW5zaWduZWQgaW50IHJlZywKQEAgLTIyMywxOSArMjIyLDE3IEBAIHN0YXRp YyB1aW50MzJfdCB2cGNpX3JlYWRfaHcocGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQgcmVn LAogICAgICAgICBpZiAoIHJlZyAmIDEgKQogICAgICAgICB7CiAgICAgICAgICAgICBkYXRhID0g cGNpX2NvbmZfcmVhZDgoc2JkZiwgcmVnKTsKLSAgICAgICAgICAgIGRhdGEgfD0gcGNpX2NvbmZf cmVhZDE2KHNiZGYuc2VnLCBzYmRmLmJ1cywgc2JkZi5kZXYsIHNiZGYuZm4sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZWcgKyAxKSA8PCA4OworICAgICAgICAgICAgZGF0 YSB8PSBwY2lfY29uZl9yZWFkMTYoc2JkZiwgcmVnICsgMSkgPDwgODsKICAgICAgICAgfQogICAg ICAgICBlbHNlCiAgICAgICAgIHsKLSAgICAgICAgICAgIGRhdGEgPSBwY2lfY29uZl9yZWFkMTYo c2JkZi5zZWcsIHNiZGYuYnVzLCBzYmRmLmRldiwgc2JkZi5mbiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVnKTsKKyAgICAgICAgICAgIGRhdGEgPSBwY2lfY29uZl9yZWFk MTYoc2JkZiwgcmVnKTsKICAgICAgICAgICAgIGRhdGEgfD0gcGNpX2NvbmZfcmVhZDgoc2JkZiwg cmVnICsgMikgPDwgMTY7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIDI6 Ci0gICAgICAgIGRhdGEgPSBwY2lfY29uZl9yZWFkMTYoc2JkZi5zZWcsIHNiZGYuYnVzLCBzYmRm LmRldiwgc2JkZi5mbiwgcmVnKTsKKyAgICAgICAgZGF0YSA9IHBjaV9jb25mX3JlYWQxNihzYmRm LCByZWcpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgMToKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3hlbi9wY2kuaCBiL3hlbi9pbmNsdWRlL3hlbi9wY2kuaAppbmRleCBiMmE2MmNiMzY2 Li5jZjRjMjIzZjdjIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vcGNpLmgKKysrIGIveGVu L2luY2x1ZGUveGVuL3BjaS5oCkBAIC0xNzMsOSArMTczLDcgQEAgc3RydWN0IHBjaV9kZXYgKnBj aV9nZXRfcGRldl9ieV9kb21haW4oY29uc3Qgc3RydWN0IGRvbWFpbiAqLCBpbnQgc2VnLAogdm9p ZCBwY2lfY2hlY2tfZGlzYWJsZV9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBkZXZmbik7CiAK IHVpbnQ4X3QgcGNpX2NvbmZfcmVhZDgocGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQgcmVn KTsKLXVpbnQxNl90IHBjaV9jb25mX3JlYWQxNigKLSAgICB1bnNpZ25lZCBpbnQgc2VnLCB1bnNp Z25lZCBpbnQgYnVzLCB1bnNpZ25lZCBpbnQgZGV2LCB1bnNpZ25lZCBpbnQgZnVuYywKLSAgICB1 bnNpZ25lZCBpbnQgcmVnKTsKK3VpbnQxNl90IHBjaV9jb25mX3JlYWQxNihwY2lfc2JkZl90IHNi ZGYsIHVuc2lnbmVkIGludCByZWcpOwogdWludDMyX3QgcGNpX2NvbmZfcmVhZDMyKAogICAgIHVu c2lnbmVkIGludCBzZWcsIHVuc2lnbmVkIGludCBidXMsIHVuc2lnbmVkIGludCBkZXYsIHVuc2ln bmVkIGludCBmdW5jLAogICAgIHVuc2lnbmVkIGludCByZWcpOwotLSAKMi4yMC4xIChBcHBsZSBH aXQtMTE3KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=