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_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 C234BC004C9 for ; Sun, 5 May 2019 14:41:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 726C4208C0 for ; Sun, 5 May 2019 14:41:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727615AbfEEOlt (ORCPT ); Sun, 5 May 2019 10:41:49 -0400 Received: from mail-oln040092255089.outbound.protection.outlook.com ([40.92.255.89]:57797 "EHLO APC01-HK2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727325AbfEEOlt (ORCPT ); Sun, 5 May 2019 10:41:49 -0400 Received: from HK2APC01FT045.eop-APC01.prod.protection.outlook.com (10.152.248.54) by HK2APC01HT126.eop-APC01.prod.protection.outlook.com (10.152.249.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1856.11; Sun, 5 May 2019 14:41:29 +0000 Received: from PS2P216MB0642.KORP216.PROD.OUTLOOK.COM (10.152.248.52) by HK2APC01FT045.mail.protection.outlook.com (10.152.249.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1856.11 via Frontend Transport; Sun, 5 May 2019 14:41:29 +0000 Received: from PS2P216MB0642.KORP216.PROD.OUTLOOK.COM ([fe80::adb3:4c16:60fd:65]) by PS2P216MB0642.KORP216.PROD.OUTLOOK.COM ([fe80::adb3:4c16:60fd:65%5]) with mapi id 15.20.1856.012; Sun, 5 May 2019 14:41:29 +0000 From: Nicholas Johnson To: "linux-kernel@vger.kernel.org" CC: "linux-pci@vger.kernel.org" , "bhelgaas@google.com" , "mika.westerberg@linux.intel.com" , "corbet@lwn.net" , Nicholas Johnson Subject: [PATCH v5 5/5] PCI: Cleanup block comments in setup-bus.c to match kernel style Thread-Topic: [PATCH v5 5/5] PCI: Cleanup block comments in setup-bus.c to match kernel style Thread-Index: AQHVA1CfuLnwYSt8h06V0huHooNGMw== Date: Sun, 5 May 2019 14:41:29 +0000 Message-ID: References: <20190505144001.8106-1-nicholas.johnson-opensource@outlook.com.au> In-Reply-To: <20190505144001.8106-1-nicholas.johnson-opensource@outlook.com.au> Accept-Language: en-AU, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SG2PR03CA0103.apcprd03.prod.outlook.com (2603:1096:4:7c::31) To PS2P216MB0642.KORP216.PROD.OUTLOOK.COM (2603:1096:300:1c::16) x-incomingtopheadermarker: OriginalChecksum:65CFE924F69207ED0A3390DE0609BD3229303A0C8D5A430D9DD04B85AA53A486;UpperCasedChecksum:DD17B1BF440038EB382E03466678DD46F2A195BE95170DD2164F98CC84F7A386;SizeAsReceived:7911;Count:50 x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.19.1 x-tmn: [FiE0ihmzhZovYE44nI68EkptCSO1r+RpdQ4ylP5jXBORtWwyx9j9LEqdnLGxpPLJK6+MFW+P6Ws=] x-microsoft-original-message-id: <20190505144001.8106-6-nicholas.johnson-opensource@outlook.com.au> x-ms-publictraffictype: Email x-incomingheadercount: 50 x-eopattributedmessage: 0 x-ms-exchange-slblob-mailprops: Zv/SX2iM+5UOP9xLBY1wiYVDfIglAXm54bCukAadyIrf/RakPbp0MZfmjQMoui6BhPyykNHJpoCTE4MfXKPZFF37GWx72AWgKigbuygcG361lEK3nB9miU00jZ2IS0z1sIqeLJ1J8S3HCDZsPEDrEQAaM8rxs8UYEMmqGhxAUJC2KUhhYLx/ZoEdqhmSmxXTSu092u4CTw8S4B7DOEEE75nSYAcrEDx73dHqCvRF1PUjCdguWnZ2hKNKbc1smDn3MO0Xx8qmAS3sN2RiXGyGvsWOOAx+Eoq9zQQ0WhPdFtCVrfZiKTFcfZjKxDyr+SE35S1oAndsu2g76WhOPcTvQCu91jAUj6286XpUe10v71qK6gC4aweBbo7Z6nzqvTlXwlElfxtGEYcKRAeKyuGDVEW59R/BABpucIUia8WaniEdkOPXSKyE5+EUQ1m+o6yRL1pifbe1xpRf/EB3XcSb2cg2KPwkyM0PX1J02jFQg60dNip2ScY5mL0fxRxShX/jFJTHH6Q8jwVx0O2IOs7d3XCiYjRoLrMF6oumYNv2wkJqZp+H7kLHrUDWpgZl76OPkJnTImc6TjfPfwOs59crPgT28pr9mx0pCymk1FycJ7fas66s1t2UzKJMIZAHa8ChSlcOT0IDEyyvAZIki8j6CWgJ/V4Ew78bSfTejknmMTGyi4N3ku8oa7hP/cVFcgafPDZEG3H9dBI= x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(5050001)(7020095)(20181119110)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(201702181274)(2017031323274)(2017031324274)(2017031322404)(1601125500)(1603101475)(1701031045);SRVR:HK2APC01HT126; x-ms-traffictypediagnostic: HK2APC01HT126: x-microsoft-antispam-message-info: STorP1drXwBz4JNBrUno+Ly7zCmWOwPeZAT60VESIizX4QqjP6VfNHoShSHDAq7Rusnk1Rr0bk0HplnKC8JO3k2KKqS4FdVtx3+Ob5cB0TGpxw+Dih+Wrhzu7EGLCDLV9bkY57ThXUzTEx9b1aVKXxbsTJumBQRNxgZOP7QcdYVnoSI6htrrW6JcZNdzkGfJ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: b2897312-2d88-4353-5df6-08d6d167c21c X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 May 2019 14:41:29.2423 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2APC01HT126 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org Q2hhbmdlIGJsb2NrIGNvbW1lbnRzIHRvIGFjY2VwdGVkIHN0eWxlIHdpdGggYXN0ZXJpc2tzIG9u IGVhY2ggbGluZS4NCg0KSnVzdGlmeSBibG9jayBjb21tZW50cyB0byA4MC1jaGFyYWN0ZXIgbGlt aXQgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YNCmxpbmVzIHdoZXJlIHBvc3NpYmxlLg0KDQpDaGFu Z2UgYmVnaW5uaW5ncyBvZiBzZW50ZW5jZXMgdG8gaGF2ZSBjYXBpdGFsIGxldHRlci4NCg0KUGxh Y2UgcGVyaW9kcyBhdCB0aGUgZW5kcyBvZiBzZW50ZW5jZXMgdGhhdCBhcmUgb25seSBzZXBhcmF0 ZWQgYnkNCm5ld2xpbmVzLg0KDQpTaWduZWQtb2ZmLWJ5OiBOaWNob2xhcyBKb2huc29uIDxuaWNo b2xhcy5qb2huc29uLW9wZW5zb3VyY2VAb3V0bG9vay5jb20uYXU+DQotLS0NCiBkcml2ZXJzL3Bj aS9zZXR1cC1idXMuYyB8IDMxMCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQogMSBmaWxlIGNoYW5nZWQsIDE1MSBpbnNlcnRpb25zKCspLCAxNTkgZGVsZXRpb25zKC0p DQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9zZXR1cC1idXMuYyBiL2RyaXZlcnMvcGNpL3Nl dHVwLWJ1cy5jDQppbmRleCA0Mzg2Y2E5NDEuLjQwMGNmNjE2YyAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvcGNpL3NldHVwLWJ1cy5jDQorKysgYi9kcml2ZXJzL3BjaS9zZXR1cC1idXMuYw0KQEAgLTUx LDExICs1MSw5IEBAIHN0YXRpYyB2b2lkIGZyZWVfbGlzdChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFk KQ0KIC8qKg0KICAqIGFkZF90b19saXN0KCkgLSBhZGQgYSBuZXcgcmVzb3VyY2UgdHJhY2tlciB0 byB0aGUgbGlzdA0KICAqIEBoZWFkOglIZWFkIG9mIHRoZSBsaXN0DQotICogQGRldjoJZGV2aWNl IGNvcnJlc3BvbmRpbmcgdG8gd2hpY2ggdGhlIHJlc291cmNlDQotICoJCWJlbG9uZ3MNCisgKiBA ZGV2OglkZXZpY2UgY29ycmVzcG9uZGluZyB0byB3aGljaCB0aGUgcmVzb3VyY2UgYmVsb25ncw0K ICAqIEByZXM6CVRoZSByZXNvdXJjZSB0byBiZSB0cmFja2VkDQotICogQGFkZF9zaXplOglhZGRp dGlvbmFsIHNpemUgdG8gYmUgb3B0aW9uYWxseSBhZGRlZA0KLSAqICAgICAgICAgICAgICB0byB0 aGUgcmVzb3VyY2UNCisgKiBAYWRkX3NpemU6CWFkZGl0aW9uYWwgc2l6ZSB0byBiZSBvcHRpb25h bGx5IGFkZGVkIHRvIHRoZSByZXNvdXJjZQ0KICAqLw0KIHN0YXRpYyBpbnQgYWRkX3RvX2xpc3Qo c3RydWN0IGxpc3RfaGVhZCAqaGVhZCwNCiAJCSBzdHJ1Y3QgcGNpX2RldiAqZGV2LCBzdHJ1Y3Qg cmVzb3VyY2UgKnJlcywNCkBAIC0xNTgsNyArMTU2LDcgQEAgc3RhdGljIHZvaWQgcGRldl9zb3J0 X3Jlc291cmNlcyhzdHJ1Y3QgcGNpX2RldiAqZGV2LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQ0K IAkJdG1wLT5yZXMgPSByOw0KIAkJdG1wLT5kZXYgPSBkZXY7DQogDQotCQkvKiBmYWxsYmFjayBp cyBzbWFsbGVzdCBvbmUgb3IgbGlzdCBpcyBlbXB0eSovDQorCQkvKiBmYWxsYmFjayBpcyBzbWFs bGVzdCBvbmUgb3IgbGlzdCBpcyBlbXB0eSAqLw0KIAkJbiA9IGhlYWQ7DQogCQlsaXN0X2Zvcl9l YWNoX2VudHJ5KGRldl9yZXMsIGhlYWQsIGxpc3QpIHsNCiAJCQlyZXNvdXJjZV9zaXplX3QgYWxp Z247DQpAQCAtMTcxLDcgKzE2OSw3IEBAIHN0YXRpYyB2b2lkIHBkZXZfc29ydF9yZXNvdXJjZXMo c3RydWN0IHBjaV9kZXYgKmRldiwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkNCiAJCQkJYnJlYWs7 DQogCQkJfQ0KIAkJfQ0KLQkJLyogSW5zZXJ0IGl0IGp1c3QgYmVmb3JlIG4qLw0KKwkJLyogSW5z ZXJ0IGl0IGp1c3QgYmVmb3JlIG4gKi8NCiAJCWxpc3RfYWRkX3RhaWwoJnRtcC0+bGlzdCwgbik7 DQogCX0NCiB9DQpAQCAtMTgxLDcgKzE3OSw3IEBAIHN0YXRpYyB2b2lkIF9fZGV2X3NvcnRfcmVz b3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpkZXYsDQogew0KIAl1MTYgY2xhc3MgPSBkZXYtPmNsYXNz ID4+IDg7DQogDQotCS8qIERvbid0IHRvdWNoIGNsYXNzbGVzcyBkZXZpY2VzIG9yIGhvc3QgYnJp ZGdlcyBvciBpb2FwaWNzLiAgKi8NCisJLyogRG9uJ3QgdG91Y2ggY2xhc3NsZXNzIGRldmljZXMg b3IgaG9zdCBicmlkZ2VzIG9yIGlvYXBpY3MgKi8NCiAJaWYgKGNsYXNzID09IFBDSV9DTEFTU19O T1RfREVGSU5FRCB8fCBjbGFzcyA9PSBQQ0lfQ0xBU1NfQlJJREdFX0hPU1QpDQogCQlyZXR1cm47 DQogDQpAQCAtMjA4LDEyICsyMDYsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIHJlc2V0X3Jlc291 cmNlKHN0cnVjdCByZXNvdXJjZSAqcmVzKQ0KICAqDQogICogQHJlYWxsb2NfaGVhZCA6IGhlYWQg b2YgdGhlIGxpc3QgdHJhY2tpbmcgcmVxdWVzdHMgcmVxdWlyaW5nIGFkZGl0aW9uYWwNCiAgKiAg ICAgICAgICAgICByZXNvdXJjZXMNCi0gKiBAaGVhZCAgICAgOiBoZWFkIG9mIHRoZSBsaXN0IHRy YWNraW5nIHJlcXVlc3RzIHdpdGggYWxsb2NhdGVkDQotICogICAgICAgICAgICAgcmVzb3VyY2Vz DQorICogQGhlYWQgICAgIDogaGVhZCBvZiB0aGUgbGlzdCB0cmFja2luZyByZXF1ZXN0cyB3aXRo IGFsbG9jYXRlZCByZXNvdXJjZXMNCiAgKg0KLSAqIFdhbGsgdGhyb3VnaCBlYWNoIGVsZW1lbnQg b2YgdGhlIHJlYWxsb2NfaGVhZCBhbmQgdHJ5IHRvIHByb2N1cmUNCi0gKiBhZGRpdGlvbmFsIHJl c291cmNlcyBmb3IgdGhlIGVsZW1lbnQsIHByb3ZpZGVkIHRoZSBlbGVtZW50DQotICogaXMgaW4g dGhlIGhlYWQgbGlzdC4NCisgKiBXYWxrIHRocm91Z2ggZWFjaCBlbGVtZW50IG9mIHRoZSByZWFs bG9jX2hlYWQgYW5kIHRyeSB0byBwcm9jdXJlIGFkZGl0aW9uYWwNCisgKiByZXNvdXJjZXMgZm9y IHRoZSBlbGVtZW50LCBwcm92aWRlZCB0aGUgZWxlbWVudCBpcyBpbiB0aGUgaGVhZCBsaXN0Lg0K ICAqLw0KIHN0YXRpYyB2b2lkIHJlYXNzaWduX3Jlc291cmNlc19zb3J0ZWQoc3RydWN0IGxpc3Rf aGVhZCAqcmVhbGxvY19oZWFkLA0KIAkJc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkNCkBAIC0yMzks NyArMjM1LDcgQEAgc3RhdGljIHZvaWQgcmVhc3NpZ25fcmVzb3VyY2VzX3NvcnRlZChzdHJ1Y3Qg bGlzdF9oZWFkICpyZWFsbG9jX2hlYWQsDQogCQkJCWJyZWFrOw0KIAkJCX0NCiAJCX0NCi0JCWlm ICghZm91bmRfbWF0Y2gpLyoganVzdCBza2lwICovDQorCQlpZiAoIWZvdW5kX21hdGNoKSAvKiBq dXN0IHNraXAgKi8NCiAJCQljb250aW51ZTsNCiANCiAJCWlkeCA9IHJlcyAtICZhZGRfcmVzLT5k ZXYtPnJlc291cmNlWzBdOw0KQEAgLTMxMCwxNSArMzA2LDE0IEBAIHN0YXRpYyB1bnNpZ25lZCBs b25nIHBjaV9mYWlsX3Jlc190eXBlX21hc2soc3RydWN0IGxpc3RfaGVhZCAqZmFpbF9oZWFkKQ0K IAlzdHJ1Y3QgcGNpX2Rldl9yZXNvdXJjZSAqZmFpbF9yZXM7DQogCXVuc2lnbmVkIGxvbmcgbWFz ayA9IDA7DQogDQotCS8qIGNoZWNrIGZhaWxlZCB0eXBlICovDQorCS8qIENoZWNrIGZhaWxlZCB0 eXBlICovDQogCWxpc3RfZm9yX2VhY2hfZW50cnkoZmFpbF9yZXMsIGZhaWxfaGVhZCwgbGlzdCkN CiAJCW1hc2sgfD0gZmFpbF9yZXMtPmZsYWdzOw0KIA0KIAkvKg0KLQkgKiBvbmUgcHJlZiBmYWls ZWQgcmVzb3VyY2Ugd2lsbCBzZXQgSU9SRVNPVVJDRV9NRU0sDQotCSAqIGFzIHdlIGNhbiBhbGxv Y2F0ZSBwcmVmIGluIG5vbi1wcmVmIHJhbmdlLg0KLQkgKiBXaWxsIHJlbGVhc2UgYWxsIGFzc2ln bmVkIG5vbi1wcmVmIHNpYmxpbmcgcmVzb3VyY2VzDQotCSAqIGFjY29yZGluZyB0byB0aGF0IGJp dC4NCisJICogT25lIHByZWYgZmFpbGVkIHJlc291cmNlIHdpbGwgc2V0IElPUkVTT1VSQ0VfTUVN LCBhcyB3ZSBjYW4gYWxsb2NhdGUNCisJICogcHJlZiBpbiBub24tcHJlZiByYW5nZS4gV2lsbCBy ZWxlYXNlIGFsbCBhc3NpZ25lZCBub24tcHJlZiBzaWJsaW5nDQorCSAqIHJlc291cmNlcyBhY2Nv cmRpbmcgdG8gdGhhdCBiaXQuDQogCSAqLw0KIAlyZXR1cm4gbWFzayAmIChJT1JFU09VUkNFX0lP IHwgSU9SRVNPVVJDRV9NRU0gfCBJT1JFU09VUkNFX1BSRUZFVENIKTsNCiB9DQpAQCAtMzI4LDEx ICszMjMsMTEgQEAgc3RhdGljIGJvb2wgcGNpX25lZWRfdG9fcmVsZWFzZSh1bnNpZ25lZCBsb25n IG1hc2ssIHN0cnVjdCByZXNvdXJjZSAqcmVzKQ0KIAlpZiAocmVzLT5mbGFncyAmIElPUkVTT1VS Q0VfSU8pDQogCQlyZXR1cm4gISEobWFzayAmIElPUkVTT1VSQ0VfSU8pOw0KIA0KLQkvKiBjaGVj ayBwcmVmIGF0IGZpcnN0ICovDQorCS8qIENoZWNrIHByZWYgYXQgZmlyc3QgKi8NCiAJaWYgKHJl cy0+ZmxhZ3MgJiBJT1JFU09VUkNFX1BSRUZFVENIKSB7DQogCQlpZiAobWFzayAmIElPUkVTT1VS Q0VfUFJFRkVUQ0gpDQogCQkJcmV0dXJuIHRydWU7DQotCQkvKiBjb3VudCBwcmVmIGlmIGl0cyBw YXJlbnQgaXMgbm9uLXByZWYgKi8NCisJCS8qIENvdW50IHByZWYgaWYgaXRzIHBhcmVudCBpcyBu b24tcHJlZiAqLw0KIAkJZWxzZSBpZiAoKG1hc2sgJiBJT1JFU09VUkNFX01FTSkgJiYNCiAJCQkg IShyZXMtPnBhcmVudC0+ZmxhZ3MgJiBJT1JFU09VUkNFX1BSRUZFVENIKSkNCiAJCQlyZXR1cm4g dHJ1ZTsNCkBAIC0zNDMsNyArMzM4LDcgQEAgc3RhdGljIGJvb2wgcGNpX25lZWRfdG9fcmVsZWFz ZSh1bnNpZ25lZCBsb25nIG1hc2ssIHN0cnVjdCByZXNvdXJjZSAqcmVzKQ0KIAlpZiAocmVzLT5m bGFncyAmIElPUkVTT1VSQ0VfTUVNKQ0KIAkJcmV0dXJuICEhKG1hc2sgJiBJT1JFU09VUkNFX01F TSk7DQogDQotCXJldHVybiBmYWxzZTsJLyogc2hvdWxkIG5vdCBnZXQgaGVyZSAqLw0KKwlyZXR1 cm4gZmFsc2U7CS8qIFNob3VsZCBub3QgZ2V0IGhlcmUgKi8NCiB9DQogDQogc3RhdGljIHZvaWQg X19hc3NpZ25fcmVzb3VyY2VzX3NvcnRlZChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLA0KQEAgLTM1 MSwyNSArMzQ2LDI0IEBAIHN0YXRpYyB2b2lkIF9fYXNzaWduX3Jlc291cmNlc19zb3J0ZWQoc3Ry dWN0IGxpc3RfaGVhZCAqaGVhZCwNCiAJCQkJIHN0cnVjdCBsaXN0X2hlYWQgKmZhaWxfaGVhZCkN CiB7DQogCS8qDQotCSAqIFNob3VsZCBub3QgYXNzaWduIHJlcXVlc3RlZCByZXNvdXJjZXMgYXQg Zmlyc3QuDQotCSAqICAgdGhleSBjb3VsZCBiZSBhZGphY2VudCwgc28gbGF0ZXIgcmVhc3NpZ24g Y2FuIG5vdCByZWFsbG9jYXRlDQotCSAqICAgdGhlbSBvbmUgYnkgb25lIGluIHBhcmVudCByZXNv dXJjZSB3aW5kb3cuDQotCSAqIFRyeSB0byBhc3NpZ24gcmVxdWVzdGVkICsgYWRkX3NpemUgYXQg YmVnaW5uaW5nDQotCSAqICBpZiBjb3VsZCBkbyB0aGF0LCBjb3VsZCBnZXQgb3V0IGVhcmx5Lg0K LQkgKiAgaWYgY291bGQgbm90IGRvIHRoYXQsIHdlIHN0aWxsIHRyeSB0byBhc3NpZ24gcmVxdWVz dGVkIGF0IGZpcnN0LA0KLQkgKiAgICB0aGVuIHRyeSB0byByZWFzc2lnbiBhZGRfc2l6ZSBmb3Ig c29tZSByZXNvdXJjZXMuDQorCSAqIFNob3VsZCBub3QgYXNzaWduIHJlcXVlc3RlZCByZXNvdXJj ZXMgYXQgZmlyc3QuIFRoZXkgY291bGQgYmUNCisJICogYWRqYWNlbnQsIHNvIGxhdGVyIHJlYXNz aWduIGNhbiBub3QgcmVhbGxvY2F0ZSB0aGVtIG9uZSBieSBvbmUgaW4NCisJICogcGFyZW50IHJl c291cmNlIHdpbmRvdy4NCisJICoNCisJICogVHJ5IHRvIGFzc2lnbiByZXF1ZXN0ZWQgKyBhZGRf c2l6ZSBhdCBiZWdpbm5pbmcuIElmIGNvdWxkIGRvIHRoYXQsDQorCSAqIGNvdWxkIGdldCBvdXQg ZWFybHkuIElmIGNvdWxkIG5vdCBkbyB0aGF0LCB3ZSBzdGlsbCB0cnkgdG8gYXNzaWduDQorCSAq IHJlcXVlc3RlZCBhdCBmaXJzdCwgdGhlbiB0cnkgdG8gcmVhc3NpZ24gYWRkX3NpemUgZm9yIHNv bWUgcmVzb3VyY2VzLg0KIAkgKg0KIAkgKiBTZXBhcmF0ZSB0aHJlZSByZXNvdXJjZSB0eXBlIGNo ZWNraW5nIGlmIHdlIG5lZWQgdG8gcmVsZWFzZQ0KIAkgKiBhc3NpZ25lZCByZXNvdXJjZSBhZnRl ciByZXF1ZXN0ZWQgKyBhZGRfc2l6ZSB0cnkuDQotCSAqCTEuIGlmIHRoZXJlIGlzIGlvIHBvcnQg YXNzaWduIGZhaWwsIHdpbGwgcmVsZWFzZSBhc3NpZ25lZA0KLQkgKgkgICBpbyBwb3J0Lg0KLQkg KgkyLiBpZiB0aGVyZSBpcyBwcmVmIG1taW8gYXNzaWduIGZhaWwsIHJlbGVhc2UgYXNzaWduZWQN Ci0JICoJICAgcHJlZiBtbWlvLg0KLQkgKgkgICBpZiBhc3NpZ25lZCBwcmVmIG1taW8ncyBwYXJl bnQgaXMgbm9uLXByZWYgbW1pbyBhbmQgdGhlcmUNCi0JICoJICAgaXMgbm9uLXByZWYgbW1pbyBh c3NpZ24gZmFpbCwgd2lsbCByZWxlYXNlIHRoYXQgYXNzaWduZWQNCi0JICoJICAgcHJlZiBtbWlv Lg0KLQkgKgkzLiBpZiB0aGVyZSBpcyBub24tcHJlZiBtbWlvIGFzc2lnbiBmYWlsIG9yIHByZWYg bW1pbw0KLQkgKgkgICBhc3NpZ25lZCBmYWlsLCB3aWxsIHJlbGVhc2UgYXNzaWduZWQgbm9uLXBy ZWYgbW1pby4NCisJICoJMS4gaWYgdGhlcmUgaXMgaW8gcG9ydCBhc3NpZ24gZmFpbCwgd2lsbCBy ZWxlYXNlIGFzc2lnbmVkIGlvDQorCSAqCSAgIHBvcnQuDQorCSAqCTIuIGlmIHRoZXJlIGlzIHBy ZWYgbW1pbyBhc3NpZ24gZmFpbCwgcmVsZWFzZSBhc3NpZ25lZCBwcmVmDQorCSAqCSAgIG1taW8u IElmIGFzc2lnbmVkIHByZWYgbW1pbydzIHBhcmVudCBpcyBub24tcHJlZiBtbWlvDQorCSAqCSAg IGFuZCB0aGVyZSBpcyBub24tcHJlZiBtbWlvIGFzc2lnbiBmYWlsLCB3aWxsIHJlbGVhc2UgdGhh dA0KKwkgKgkgICBhc3NpZ25lZCBwcmVmIG1taW8uDQorCSAqCTMuIGlmIHRoZXJlIGlzIG5vbi1w cmVmIG1taW8gYXNzaWduIGZhaWwgb3IgcHJlZiBtbWlvIGFzc2lnbmVkDQorCSAqCSAgIGZhaWws IHdpbGwgcmVsZWFzZSBhc3NpZ25lZCBub24tcHJlZiBtbWlvLg0KIAkgKi8NCiAJTElTVF9IRUFE KHNhdmVfaGVhZCk7DQogCUxJU1RfSEVBRChsb2NhbF9mYWlsX2hlYWQpOw0KQEAgLTM5OCw3ICsz OTIsNyBAQCBzdGF0aWMgdm9pZCBfX2Fzc2lnbl9yZXNvdXJjZXNfc29ydGVkKHN0cnVjdCBsaXN0 X2hlYWQgKmhlYWQsDQogCQkvKg0KIAkJICogVGhlcmUgYXJlIHR3byBraW5kcyBvZiBhZGRpdGlv bmFsIHJlc291cmNlcyBpbiB0aGUgbGlzdDoNCiAJCSAqIDEuIGJyaWRnZSByZXNvdXJjZSAgLS0g SU9SRVNPVVJDRV9TVEFSVEFMSUdODQotCQkgKiAyLiBTUi1JT1YgcmVzb3VyY2UgICAtLSBJT1JF U09VUkNFX1NJWkVBTElHTg0KKwkJICogMi4gU1ItSU9WIHJlc291cmNlICAtLSBJT1JFU09VUkNF X1NJWkVBTElHTg0KIAkJICogSGVyZSBqdXN0IGZpeCB0aGUgYWRkaXRpb25hbCBhbGlnbm1lbnQg Zm9yIGJyaWRnZQ0KIAkJICovDQogCQlpZiAoIShkZXZfcmVzLT5yZXMtPmZsYWdzICYgSU9SRVNP VVJDRV9TVEFSVEFMSUdOKSkNCkBAIC00MzUsNyArNDI5LDcgQEAgc3RhdGljIHZvaWQgX19hc3Np Z25fcmVzb3VyY2VzX3NvcnRlZChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLA0KIAkvKiBUcnkgdXBk YXRlZCBoZWFkIGxpc3Qgd2l0aCBhZGRfc2l6ZSBhZGRlZCAqLw0KIAlhc3NpZ25fcmVxdWVzdGVk X3Jlc291cmNlc19zb3J0ZWQoaGVhZCwgJmxvY2FsX2ZhaWxfaGVhZCk7DQogDQotCS8qIGFsbCBh c3NpZ25lZCB3aXRoIGFkZF9zaXplID8gKi8NCisJLyogQWxsIGFzc2lnbmVkIHdpdGggYWRkX3Np emUgPyAqLw0KIAlpZiAobGlzdF9lbXB0eSgmbG9jYWxfZmFpbF9oZWFkKSkgew0KIAkJLyogUmVt b3ZlIGhlYWQgbGlzdCBmcm9tIHJlYWxsb2NfaGVhZCBsaXN0ICovDQogCQlsaXN0X2Zvcl9lYWNo X2VudHJ5KGRldl9yZXMsIGhlYWQsIGxpc3QpDQpAQCAtNDQ1LDEzICs0MzksMTMgQEAgc3RhdGlj IHZvaWQgX19hc3NpZ25fcmVzb3VyY2VzX3NvcnRlZChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLA0K IAkJcmV0dXJuOw0KIAl9DQogDQotCS8qIGNoZWNrIGZhaWxlZCB0eXBlICovDQorCS8qIENoZWNr IGZhaWxlZCB0eXBlICovDQogCWZhaWxfdHlwZSA9IHBjaV9mYWlsX3Jlc190eXBlX21hc2soJmxv Y2FsX2ZhaWxfaGVhZCk7DQotCS8qIHJlbW92ZSBub3QgbmVlZCB0byBiZSByZWxlYXNlZCBhc3Np Z25lZCByZXMgZnJvbSBoZWFkIGxpc3QgZXRjICovDQorCS8qIFJlbW92ZSBub3QgbmVlZCB0byBi ZSByZWxlYXNlZCBhc3NpZ25lZCByZXMgZnJvbSBoZWFkIGxpc3QgZXRjICovDQogCWxpc3RfZm9y X2VhY2hfZW50cnlfc2FmZShkZXZfcmVzLCB0bXBfcmVzLCBoZWFkLCBsaXN0KQ0KIAkJaWYgKGRl dl9yZXMtPnJlcy0+cGFyZW50ICYmDQogCQkgICAgIXBjaV9uZWVkX3RvX3JlbGVhc2UoZmFpbF90 eXBlLCBkZXZfcmVzLT5yZXMpKSB7DQotCQkJLyogcmVtb3ZlIGl0IGZyb20gcmVhbGxvY19oZWFk IGxpc3QgKi8NCisJCQkvKiBSZW1vdmUgaXQgZnJvbSByZWFsbG9jX2hlYWQgbGlzdCAqLw0KIAkJ CXJlbW92ZV9mcm9tX2xpc3QocmVhbGxvY19oZWFkLCBkZXZfcmVzLT5yZXMpOw0KIAkJCXJlbW92 ZV9mcm9tX2xpc3QoJnNhdmVfaGVhZCwgZGV2X3Jlcy0+cmVzKTsNCiAJCQlsaXN0X2RlbCgmZGV2 X3Jlcy0+bGlzdCk7DQpAQCAtNDc3LDggKzQ3MSw3IEBAIHN0YXRpYyB2b2lkIF9fYXNzaWduX3Jl c291cmNlc19zb3J0ZWQoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwNCiAJLyogU2F0aXNmeSB0aGUg bXVzdC1oYXZlIHJlc291cmNlIHJlcXVlc3RzICovDQogCWFzc2lnbl9yZXF1ZXN0ZWRfcmVzb3Vy Y2VzX3NvcnRlZChoZWFkLCBmYWlsX2hlYWQpOw0KIA0KLQkvKiBUcnkgdG8gc2F0aXNmeSBhbnkg YWRkaXRpb25hbCBvcHRpb25hbCByZXNvdXJjZQ0KLQkJcmVxdWVzdHMgKi8NCisJLyogVHJ5IHRv IHNhdGlzZnkgYW55IGFkZGl0aW9uYWwgb3B0aW9uYWwgcmVzb3VyY2UgcmVxdWVzdHMgKi8NCiAJ aWYgKHJlYWxsb2NfaGVhZCkNCiAJCXJlYXNzaWduX3Jlc291cmNlc19zb3J0ZWQocmVhbGxvY19o ZWFkLCBoZWFkKTsNCiAJZnJlZV9saXN0KGhlYWQpOw0KQEAgLTU2MywxNyArNTU2LDE5IEBAIHZv aWQgcGNpX3NldHVwX2NhcmRidXMoc3RydWN0IHBjaV9idXMgKmJ1cykNCiB9DQogRVhQT1JUX1NZ TUJPTChwY2lfc2V0dXBfY2FyZGJ1cyk7DQogDQotLyogSW5pdGlhbGl6ZSBicmlkZ2VzIHdpdGgg YmFzZS9saW1pdCB2YWx1ZXMgd2UgaGF2ZSBjb2xsZWN0ZWQuDQotICAgUENJLXRvLVBDSSBCcmlk Z2UgQXJjaGl0ZWN0dXJlIFNwZWNpZmljYXRpb24gcmV2LiAxLjEgKDE5OTgpDQotICAgcmVxdWly ZXMgdGhhdCBpZiB0aGVyZSBpcyBubyBJL08gcG9ydHMgb3IgbWVtb3J5IGJlaGluZCB0aGUNCi0g ICBicmlkZ2UsIGNvcnJlc3BvbmRpbmcgcmFuZ2UgbXVzdCBiZSB0dXJuZWQgb2ZmIGJ5IHdyaXRp bmcgYmFzZQ0KLSAgIHZhbHVlIGdyZWF0ZXIgdGhhbiBsaW1pdCB0byB0aGUgYnJpZGdlJ3MgYmFz ZS9saW1pdCByZWdpc3RlcnMuDQotDQotICAgTm90ZTogY2FyZSBtdXN0IGJlIHRha2VuIHdoZW4g dXBkYXRpbmcgSS9PIGJhc2UvbGltaXQgcmVnaXN0ZXJzDQotICAgb2YgYnJpZGdlcyB3aGljaCBz dXBwb3J0IDMyLWJpdCBJL08uIFRoaXMgdXBkYXRlIHJlcXVpcmVzIHR3bw0KLSAgIGNvbmZpZyBz cGFjZSB3cml0ZXMsIHNvIGl0J3MgcXVpdGUgcG9zc2libGUgdGhhdCBhbiBJL08gd2luZG93IG9m DQotICAgdGhlIGJyaWRnZSB3aWxsIGhhdmUgc29tZSB1bmRlc2lyYWJsZSBhZGRyZXNzIChlLmcu IDApIGFmdGVyIHRoZQ0KLSAgIGZpcnN0IHdyaXRlLiBEaXR0byA2NC1iaXQgcHJlZmV0Y2hhYmxl IE1NSU8uICAqLw0KKy8qDQorICogSW5pdGlhbGl6ZSBicmlkZ2VzIHdpdGggYmFzZS9saW1pdCB2 YWx1ZXMgd2UgaGF2ZSBjb2xsZWN0ZWQuIFBDSS10by1QQ0kNCisgKiBCcmlkZ2UgQXJjaGl0ZWN0 dXJlIFNwZWNpZmljYXRpb24gcmV2LiAxLjEgKDE5OTgpIHJlcXVpcmVzIHRoYXQgaWYgdGhlcmUg aXMNCisgKiBubyBJL08gcG9ydHMgb3IgbWVtb3J5IGJlaGluZCB0aGUgYnJpZGdlLCBjb3JyZXNw b25kaW5nIHJhbmdlIG11c3QgYmUgdHVybmVkDQorICogb2ZmIGJ5IHdyaXRpbmcgYmFzZSB2YWx1 ZSBncmVhdGVyIHRoYW4gbGltaXQgdG8gdGhlIGJyaWRnZSdzIGJhc2UvbGltaXQNCisgKiByZWdp c3RlcnMuDQorICoNCisgKiBOb3RlOiBjYXJlIG11c3QgYmUgdGFrZW4gd2hlbiB1cGRhdGluZyBJ L08gYmFzZS9saW1pdCByZWdpc3RlcnMgb2YgYnJpZGdlcw0KKyAqIHdoaWNoIHN1cHBvcnQgMzIt Yml0IEkvTy4gVGhpcyB1cGRhdGUgcmVxdWlyZXMgdHdvIGNvbmZpZyBzcGFjZSB3cml0ZXMsIHNv DQorICogaXQncyBxdWl0ZSBwb3NzaWJsZSB0aGF0IGFuIEkvTyB3aW5kb3cgb2YgdGhlIGJyaWRn ZSB3aWxsIGhhdmUgc29tZQ0KKyAqIHVuZGVzaXJhYmxlIGFkZHJlc3MgKGUuZy4gMCkgYWZ0ZXIg dGhlIGZpcnN0IHdyaXRlLiBEaXR0byA2NC1iaXQgcHJlZmV0Y2hhYmxlDQorICogIE1NSU8uDQor ICovDQogc3RhdGljIHZvaWQgcGNpX3NldHVwX2JyaWRnZV9pbyhzdHJ1Y3QgcGNpX2RldiAqYnJp ZGdlKQ0KIHsNCiAJc3RydWN0IHJlc291cmNlICpyZXM7DQpAQCAtNjM2LDkgKzYzMSwxMSBAQCBz dGF0aWMgdm9pZCBwY2lfc2V0dXBfYnJpZGdlX21taW9fcHJlZihzdHJ1Y3QgcGNpX2RldiAqYnJp ZGdlKQ0KIAlzdHJ1Y3QgcGNpX2J1c19yZWdpb24gcmVnaW9uOw0KIAl1MzIgbCwgYnUsIGx1Ow0K IA0KLQkvKiBDbGVhciBvdXQgdGhlIHVwcGVyIDMyIGJpdHMgb2YgUFJFRiBsaW1pdC4NCi0JICAg SWYgUENJX1BSRUZfQkFTRV9VUFBFUjMyIHdhcyBub24temVybywgdGhpcyB0ZW1wb3JhcmlseQ0K LQkgICBkaXNhYmxlcyBQUkVGIHJhbmdlLCB3aGljaCBpcyBvay4gKi8NCisJLyoNCisJICogQ2xl YXIgb3V0IHRoZSB1cHBlciAzMiBiaXRzIG9mIFBSRUYgbGltaXQuDQorCSAqIElmIFBDSV9QUkVG X0JBU0VfVVBQRVIzMiB3YXMgbm9uLXplcm8sIHRoaXMgdGVtcG9yYXJpbHkNCisJICogZGlzYWJs ZXMgUFJFRiByYW5nZSwgd2hpY2ggaXMgb2suDQorCSAqLw0KIAlwY2lfd3JpdGVfY29uZmlnX2R3 b3JkKGJyaWRnZSwgUENJX1BSRUZfTElNSVRfVVBQRVIzMiwgMCk7DQogDQogCS8qIFNldCB1cCBQ UkVGIGJhc2UvbGltaXQuICovDQpAQCAtNzAyLDEzICs2OTksMTMgQEAgaW50IHBjaV9jbGFpbV9i cmlkZ2VfcmVzb3VyY2Uoc3RydWN0IHBjaV9kZXYgKmJyaWRnZSwgaW50IGkpDQogCQlyZXR1cm4g MDsNCiANCiAJaWYgKHBjaV9jbGFpbV9yZXNvdXJjZShicmlkZ2UsIGkpID09IDApDQotCQlyZXR1 cm4gMDsJLyogY2xhaW1lZCB0aGUgd2luZG93ICovDQorCQlyZXR1cm4gMDsJLyogQ2xhaW1lZCB0 aGUgd2luZG93ICovDQogDQogCWlmICgoYnJpZGdlLT5jbGFzcyA+PiA4KSAhPSBQQ0lfQ0xBU1Nf QlJJREdFX1BDSSkNCiAJCXJldHVybiAwOw0KIA0KIAlpZiAoIXBjaV9idXNfY2xpcF9yZXNvdXJj ZShicmlkZ2UsIGkpKQ0KLQkJcmV0dXJuIC1FSU5WQUw7CS8qIGNsaXBwaW5nIGRpZG4ndCBjaGFu Z2UgYW55dGhpbmcgKi8NCisJCXJldHVybiAtRUlOVkFMOwkvKiBDbGlwcGluZyBkaWRuJ3QgY2hh bmdlIGFueXRoaW5nICovDQogDQogCXN3aXRjaCAoaSAtIFBDSV9CUklER0VfUkVTT1VSQ0VTKSB7 DQogCWNhc2UgMDoNCkBAIC03MjUsMTQgKzcyMiwxNiBAQCBpbnQgcGNpX2NsYWltX2JyaWRnZV9y ZXNvdXJjZShzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlLCBpbnQgaSkNCiAJfQ0KIA0KIAlpZiAocGNp X2NsYWltX3Jlc291cmNlKGJyaWRnZSwgaSkgPT0gMCkNCi0JCXJldHVybiAwOwkvKiBjbGFpbWVk IGEgc21hbGxlciB3aW5kb3cgKi8NCisJCXJldHVybiAwOwkvKiBDbGFpbWVkIGEgc21hbGxlciB3 aW5kb3cgKi8NCiANCiAJcmV0dXJuIC1FSU5WQUw7DQogfQ0KIA0KLS8qIENoZWNrIHdoZXRoZXIg dGhlIGJyaWRnZSBzdXBwb3J0cyBvcHRpb25hbCBJL08gYW5kDQotICAgcHJlZmV0Y2hhYmxlIG1l bW9yeSByYW5nZXMuIElmIG5vdCwgdGhlIHJlc3BlY3RpdmUNCi0gICBiYXNlL2xpbWl0IHJlZ2lz dGVycyBtdXN0IGJlIHJlYWQtb25seSBhbmQgcmVhZCBhcyAwLiAqLw0KKy8qDQorICogQ2hlY2sg d2hldGhlciB0aGUgYnJpZGdlIHN1cHBvcnRzIG9wdGlvbmFsIEkvTyBhbmQgcHJlZmV0Y2hhYmxl IG1lbW9yeQ0KKyAqIHJhbmdlcy4gSWYgbm90LCB0aGUgcmVzcGVjdGl2ZSBiYXNlL2xpbWl0IHJl Z2lzdGVycyBtdXN0IGJlIHJlYWQtb25seSBhbmQNCisgKiByZWFkIGFzIDAuDQorICovDQogc3Rh dGljIHZvaWQgcGNpX2JyaWRnZV9jaGVja19yYW5nZXMoc3RydWN0IHBjaV9idXMgKmJ1cykNCiB7 DQogCXN0cnVjdCBwY2lfZGV2ICpicmlkZ2UgPSBidXMtPnNlbGY7DQpAQCAtNzg5LDggKzc4OCwx MCBAQCBzdGF0aWMgcmVzb3VyY2Vfc2l6ZV90IGNhbGN1bGF0ZV9pb3NpemUocmVzb3VyY2Vfc2l6 ZV90IHNpemUsDQogCQlzaXplID0gbWluX3NpemU7DQogCWlmIChvbGRfc2l6ZSA9PSAxKQ0KIAkJ b2xkX3NpemUgPSAwOw0KLQkvKiBUbyBiZSBmaXhlZCBpbiAyLjU6IHdlIHNob3VsZCBoYXZlIHNv cnQgb2YgSEFWRV9JU0ENCi0JICAgZmxhZyBpbiB0aGUgc3RydWN0IHBjaV9idXMuICovDQorCS8q DQorCSAqIFRvIGJlIGZpeGVkIGluIDIuNTogd2Ugc2hvdWxkIGhhdmUgc29ydCBvZiBIQVZFX0lT QSBmbGFnIGluIHRoZQ0KKwkgKiBzdHJ1Y3QgcGNpX2J1cy4NCisJICovDQogI2lmIGRlZmluZWQo Q09ORklHX0lTQSkgfHwgZGVmaW5lZChDT05GSUdfRUlTQSkNCiAJc2l6ZSA9IChzaXplICYgMHhm ZikgKyAoKHNpemUgJiB+MHhmZlVMKSA8PCAyKTsNCiAjZW5kaWYNCkBAIC04MzksOCArODQwLDgg QEAgc3RhdGljIHJlc291cmNlX3NpemVfdCB3aW5kb3dfYWxpZ25tZW50KHN0cnVjdCBwY2lfYnVz ICpidXMsDQogCQlhbGlnbiA9IFBDSV9QMlBfREVGQVVMVF9NRU1fQUxJR047DQogCWVsc2UgaWYg KHR5cGUgJiBJT1JFU09VUkNFX0lPKSB7DQogCQkvKg0KLQkJICogUGVyIHNwZWMsIEkvTyB3aW5k b3dzIGFyZSA0Sy1hbGlnbmVkLCBidXQgc29tZQ0KLQkJICogYnJpZGdlcyBoYXZlIGFuIGV4dGVu c2lvbiB0byBzdXBwb3J0IDFLIGFsaWdubWVudC4NCisJCSAqIFBlciBzcGVjLCBJL08gd2luZG93 cyBhcmUgNEstYWxpZ25lZCwgYnV0IHNvbWUgYnJpZGdlcyBoYXZlDQorCQkgKiBhbiBleHRlbnNp b24gdG8gc3VwcG9ydCAxSyBhbGlnbm1lbnQuDQogCQkgKi8NCiAJCWlmIChidXMtPnNlbGYtPmlv X3dpbmRvd18xaykNCiAJCQlhbGlnbiA9IFBDSV9QMlBfREVGQVVMVF9JT19BTElHTl8xSzsNCkBA IC04NjAsMTAgKzg2MSw5IEBAIHN0YXRpYyByZXNvdXJjZV9zaXplX3Qgd2luZG93X2FsaWdubWVu dChzdHJ1Y3QgcGNpX2J1cyAqYnVzLA0KICAqIEBhZGRfc2l6ZSA6IGFkZGl0aW9uYWwgb3B0aW9u YWwgaW8gd2luZG93DQogICogQHJlYWxsb2NfaGVhZCA6IHRyYWNrIHRoZSBhZGRpdGlvbmFsIGlv IHdpbmRvdyBvbiB0aGlzIGxpc3QNCiAgKg0KLSAqIFNpemluZyB0aGUgSU8gd2luZG93cyBvZiB0 aGUgUENJLVBDSSBicmlkZ2UgaXMgdHJpdmlhbCwNCi0gKiBzaW5jZSB0aGVzZSB3aW5kb3dzIGhh dmUgMUsgb3IgNEsgZ3JhbnVsYXJpdHkgYW5kIHRoZSBJTyByYW5nZXMNCi0gKiBvZiBub24tYnJp ZGdlIFBDSSBkZXZpY2VzIGFyZSBsaW1pdGVkIHRvIDI1NiBieXRlcy4NCi0gKiBXZSBtdXN0IGJl IGNhcmVmdWwgd2l0aCB0aGUgSVNBIGFsaWFzaW5nIHRob3VnaC4NCisgKiBTaXppbmcgdGhlIElP IHdpbmRvd3Mgb2YgdGhlIFBDSS1QQ0kgYnJpZGdlIGlzIHRyaXZpYWwsIHNpbmNlIHRoZXNlIHdp bmRvd3MNCisgKiBoYXZlIDFLIG9yIDRLIGdyYW51bGFyaXR5IGFuZCB0aGUgSU8gcmFuZ2VzIG9m IG5vbi1icmlkZ2UgUENJIGRldmljZXMgYXJlDQorICogbGltaXRlZCB0byAyNTYgYnl0ZXMuIFdl IG11c3QgYmUgY2FyZWZ1bCB3aXRoIHRoZSBJU0EgYWxpYXNpbmcgdGhvdWdoLg0KICAqLw0KIHN0 YXRpYyB2b2lkIHBidXNfc2l6ZV9pbyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCByZXNvdXJjZV9zaXpl X3QgbWluX3NpemUsDQogCQlyZXNvdXJjZV9zaXplX3QgYWRkX3NpemUsIHN0cnVjdCBsaXN0X2hl YWQgKnJlYWxsb2NfaGVhZCkNCkBAIC05NjYsMTIgKzk2NiwxMiBAQCBzdGF0aWMgaW5saW5lIHJl c291cmNlX3NpemVfdCBjYWxjdWxhdGVfbWVtX2FsaWduKHJlc291cmNlX3NpemVfdCAqYWxpZ25z LA0KICAqIEBhZGRfc2l6ZSA6IGFkZGl0aW9uYWwgb3B0aW9uYWwgbWVtb3J5IHdpbmRvdw0KICAq IEByZWFsbG9jX2hlYWQgOiB0cmFjayB0aGUgYWRkaXRpb25hbCBtZW1vcnkgd2luZG93IG9uIHRo aXMgbGlzdA0KICAqDQotICogQ2FsY3VsYXRlIHRoZSBzaXplIG9mIHRoZSBidXMgYW5kIG1pbmlt YWwgYWxpZ25tZW50IHdoaWNoDQotICogZ3VhcmFudGVlcyB0aGF0IGFsbCBjaGlsZCByZXNvdXJj ZXMgZml0IGluIHRoaXMgc2l6ZS4NCisgKiBDYWxjdWxhdGUgdGhlIHNpemUgb2YgdGhlIGJ1cyBh bmQgbWluaW1hbCBhbGlnbm1lbnQgd2hpY2ggZ3VhcmFudGVlcyB0aGF0IGFsbA0KKyAqIGNoaWxk IHJlc291cmNlcyBmaXQgaW4gdGhpcyBzaXplLg0KICAqDQogICogUmV0dXJucyAtRU5PU1BDIGlm IHRoZXJlJ3Mgbm8gYXZhaWxhYmxlIGJ1cyByZXNvdXJjZSBvZiB0aGUgZGVzaXJlZCB0eXBlLg0K LSAqIE90aGVyd2lzZSwgc2V0cyB0aGUgYnVzIHJlc291cmNlIHN0YXJ0L2VuZCB0byBpbmRpY2F0 ZSB0aGUgcmVxdWlyZWQNCi0gKiBzaXplLCBhZGRzIHRoaW5ncyB0byByZWFsbG9jX2hlYWQgKGlm IHN1cHBsaWVkKSwgYW5kIHJldHVybnMgMC4NCisgKiBPdGhlcndpc2UsIHNldHMgdGhlIGJ1cyBy ZXNvdXJjZSBzdGFydC9lbmQgdG8gaW5kaWNhdGUgdGhlIHJlcXVpcmVkIHNpemUsDQorICogYWRk cyB0aGluZ3MgdG8gcmVhbGxvY19oZWFkIChpZiBzdXBwbGllZCksIGFuZCByZXR1cm5zIDAuDQog ICovDQogc3RhdGljIGludCBwYnVzX3NpemVfbWVtKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2ln bmVkIGxvbmcgbWFzaywNCiAJCQkgdW5zaWduZWQgbG9uZyB0eXBlLCB1bnNpZ25lZCBsb25nIHR5 cGUyLA0KQEAgLTk4MSw3ICs5ODEsNyBAQCBzdGF0aWMgaW50IHBidXNfc2l6ZV9tZW0oc3RydWN0 IHBjaV9idXMgKmJ1cywgdW5zaWduZWQgbG9uZyBtYXNrLA0KIHsNCiAJc3RydWN0IHBjaV9kZXYg KmRldjsNCiAJcmVzb3VyY2Vfc2l6ZV90IG1pbl9hbGlnbiwgYWxpZ24sIHNpemUsIHNpemUwLCBz aXplMTsNCi0JcmVzb3VyY2Vfc2l6ZV90IGFsaWduc1sxOF07CS8qIEFsaWdubWVudHMgZnJvbSAx TWIgdG8gMTI4R2IgKi8NCisJcmVzb3VyY2Vfc2l6ZV90IGFsaWduc1sxOF07IC8qIEFsaWdubWVu dHMgZnJvbSAxTWIgdG8gMTI4R2IgKi8NCiAJaW50IG9yZGVyLCBtYXhfb3JkZXI7DQogCXN0cnVj dCByZXNvdXJjZSAqYl9yZXMgPSBmaW5kX2J1c19yZXNvdXJjZV9vZl90eXBlKGJ1cywNCiAJCQkJ CW1hc2sgfCBJT1JFU09VUkNFX1BSRUZFVENILCB0eXBlKTsNCkBAIC0xMDEyLDIxICsxMDEyLDIw IEBAIHN0YXRpYyBpbnQgcGJ1c19zaXplX21lbShzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25l ZCBsb25nIG1hc2ssDQogCQkJCWNvbnRpbnVlOw0KIAkJCXJfc2l6ZSA9IHJlc291cmNlX3NpemUo cik7DQogI2lmZGVmIENPTkZJR19QQ0lfSU9WDQotCQkJLyogcHV0IFNSSU9WIHJlcXVlc3RlZCBy ZXMgdG8gdGhlIG9wdGlvbmFsIGxpc3QgKi8NCisJCQkvKiBQdXQgU1JJT1YgcmVxdWVzdGVkIHJl cyB0byB0aGUgb3B0aW9uYWwgbGlzdCAqLw0KIAkJCWlmIChyZWFsbG9jX2hlYWQgJiYgaSA+PSBQ Q0lfSU9WX1JFU09VUkNFUyAmJg0KIAkJCQkJaSA8PSBQQ0lfSU9WX1JFU09VUkNFX0VORCkgew0K IAkJCQlhZGRfYWxpZ24gPSBtYXgocGNpX3Jlc291cmNlX2FsaWdubWVudChkZXYsIHIpLCBhZGRf YWxpZ24pOw0KIAkJCQlyLT5lbmQgPSByLT5zdGFydCAtIDE7DQotCQkJCWFkZF90b19saXN0KHJl YWxsb2NfaGVhZCwgZGV2LCByLCByX3NpemUsIDAvKiBkb24ndCBjYXJlICovKTsNCisJCQkJYWRk X3RvX2xpc3QocmVhbGxvY19oZWFkLCBkZXYsIHIsIHJfc2l6ZSwgMCAvKiBEb24ndCBjYXJlICov KTsNCiAJCQkJY2hpbGRyZW5fYWRkX3NpemUgKz0gcl9zaXplOw0KIAkJCQljb250aW51ZTsNCiAJ CQl9DQogI2VuZGlmDQogCQkJLyoNCi0JCQkgKiBhbGlnbnNbMF0gaXMgZm9yIDFNQiAoc2luY2Ug YnJpZGdlIG1lbW9yeQ0KLQkJCSAqIHdpbmRvd3MgYXJlIGFsd2F5cyBhdCBsZWFzdCAxTUIgYWxp Z25lZCksIHNvDQotCQkJICoga2VlcCAib3JkZXIiIGZyb20gYmVpbmcgbmVnYXRpdmUgZm9yIHNt YWxsZXINCi0JCQkgKiByZXNvdXJjZXMuDQorCQkJICogYWxpZ25zWzBdIGlzIGZvciAxTUIgKHNp bmNlIGJyaWRnZSBtZW1vcnkgd2luZG93cyBhcmUNCisJCQkgKiBhbHdheXMgYXQgbGVhc3QgMU1C IGFsaWduZWQpLCBzbyBrZWVwICJvcmRlciIgZnJvbQ0KKwkJCSAqIGJlaW5nIG5lZ2F0aXZlIGZv ciBzbWFsbGVyIHJlc291cmNlcy4NCiAJCQkgKi8NCiAJCQlhbGlnbiA9IHBjaV9yZXNvdXJjZV9h bGlnbm1lbnQoZGV2LCByKTsNCiAJCQlvcmRlciA9IF9fZmZzKGFsaWduKSAtIDIwOw0KQEAgLTEw MzksOCArMTAzOCwxMCBAQCBzdGF0aWMgaW50IHBidXNfc2l6ZV9tZW0oc3RydWN0IHBjaV9idXMg KmJ1cywgdW5zaWduZWQgbG9uZyBtYXNrLA0KIAkJCQljb250aW51ZTsNCiAJCQl9DQogCQkJc2l6 ZSArPSBtYXgocl9zaXplLCBhbGlnbik7DQotCQkJLyogRXhjbHVkZSByYW5nZXMgd2l0aCBzaXpl ID4gYWxpZ24gZnJvbQ0KLQkJCSAgIGNhbGN1bGF0aW9uIG9mIHRoZSBhbGlnbm1lbnQuICovDQor CQkJLyoNCisJCQkgKiBFeGNsdWRlIHJhbmdlcyB3aXRoIHNpemUgPiBhbGlnbiBmcm9tIGNhbGN1 bGF0aW9uIG9mDQorCQkJICogdGhlIGFsaWdubWVudC4NCisJCQkgKi8NCiAJCQlpZiAocl9zaXpl IDw9IGFsaWduKQ0KIAkJCQlhbGlnbnNbb3JkZXJdICs9IGFsaWduOw0KIAkJCWlmIChvcmRlciA+ IG1heF9vcmRlcikNCkBAIC0xMTAxLDggKzExMDIsOCBAQCBzdGF0aWMgdm9pZCBwY2lfYnVzX3Np emVfY2FyZGJ1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLA0KIAlpZiAoYl9yZXNbMF0ucGFyZW50KQ0K IAkJZ290byBoYW5kbGVfYl9yZXNfMTsNCiAJLyoNCi0JICogUmVzZXJ2ZSBzb21lIHJlc291cmNl cyBmb3IgQ2FyZEJ1cy4gIFdlIHJlc2VydmUNCi0JICogYSBmaXhlZCBhbW91bnQgb2YgYnVzIHNw YWNlIGZvciBDYXJkQnVzIGJyaWRnZXMuDQorCSAqIFJlc2VydmUgc29tZSByZXNvdXJjZXMgZm9y IENhcmRCdXMuICBXZSByZXNlcnZlIGEgZml4ZWQgYW1vdW50IG9mIGJ1cw0KKwkgKiBzcGFjZSBm b3IgQ2FyZEJ1cyBicmlkZ2VzLg0KIAkgKi8NCiAJYl9yZXNbMF0uc3RhcnQgPSBwY2lfY2FyZGJ1 c19pb19zaXplOw0KIAliX3Jlc1swXS5lbmQgPSBiX3Jlc1swXS5zdGFydCArIHBjaV9jYXJkYnVz X2lvX3NpemUgLSAxOw0KQEAgLTExMzQsMTAgKzExMzUsNyBAQCBzdGF0aWMgdm9pZCBwY2lfYnVz X3NpemVfY2FyZGJ1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLA0KIAkJcGNpX3JlYWRfY29uZmlnX3dv cmQoYnJpZGdlLCBQQ0lfQ0JfQlJJREdFX0NPTlRST0wsICZjdHJsKTsNCiAJfQ0KIA0KLQkvKg0K LQkgKiBDaGVjayB3aGV0aGVyIHByZWZldGNoYWJsZSBtZW1vcnkgaXMgc3VwcG9ydGVkDQotCSAq IGJ5IHRoaXMgYnJpZGdlLg0KLQkgKi8NCisJLyogQ2hlY2sgd2hldGhlciBwcmVmZXRjaGFibGUg bWVtb3J5IGlzIHN1cHBvcnRlZCBieSB0aGlzIGJyaWRnZS4gKi8NCiAJcGNpX3JlYWRfY29uZmln X3dvcmQoYnJpZGdlLCBQQ0lfQ0JfQlJJREdFX0NPTlRST0wsICZjdHJsKTsNCiAJaWYgKCEoY3Ry bCAmIFBDSV9DQl9CUklER0VfQ1RMX1BSRUZFVENIX01FTTApKSB7DQogCQljdHJsIHw9IFBDSV9D Ql9CUklER0VfQ1RMX1BSRUZFVENIX01FTTA7DQpAQCAtMTE0OCw5ICsxMTQ2LDggQEAgc3RhdGlj IHZvaWQgcGNpX2J1c19zaXplX2NhcmRidXMoc3RydWN0IHBjaV9idXMgKmJ1cywNCiAJaWYgKGJf cmVzWzJdLnBhcmVudCkNCiAJCWdvdG8gaGFuZGxlX2JfcmVzXzM7DQogCS8qDQotCSAqIElmIHdl IGhhdmUgcHJlZmV0Y2hhYmxlIG1lbW9yeSBzdXBwb3J0LCBhbGxvY2F0ZQ0KLQkgKiB0d28gcmVn aW9ucy4gIE90aGVyd2lzZSwgYWxsb2NhdGUgb25lIHJlZ2lvbiBvZg0KLQkgKiB0d2ljZSB0aGUg c2l6ZS4NCisJICogSWYgd2UgaGF2ZSBwcmVmZXRjaGFibGUgbWVtb3J5IHN1cHBvcnQsIGFsbG9j YXRlIHR3byByZWdpb25zLg0KKwkgKiBPdGhlcndpc2UsIGFsbG9jYXRlIG9uZSByZWdpb24gb2Yg dHdpY2UgdGhlIHNpemUuDQogCSAqLw0KIAlpZiAoY3RybCAmIFBDSV9DQl9CUklER0VfQ1RMX1BS RUZFVENIX01FTTApIHsNCiAJCWJfcmVzWzJdLnN0YXJ0ID0gcGNpX2NhcmRidXNfbWVtX3NpemU7 DQpAQCAtMTE2Myw3ICsxMTYwLDcgQEAgc3RhdGljIHZvaWQgcGNpX2J1c19zaXplX2NhcmRidXMo c3RydWN0IHBjaV9idXMgKmJ1cywNCiAJCQkJIHBjaV9jYXJkYnVzX21lbV9zaXplLCBwY2lfY2Fy ZGJ1c19tZW1fc2l6ZSk7DQogCQl9DQogDQotCQkvKiByZWR1Y2UgdGhhdCB0byBoYWxmICovDQor CQkvKiBSZWR1Y2UgdGhhdCB0byBoYWxmICovDQogCQliX3Jlc18zX3NpemUgPSBwY2lfY2FyZGJ1 c19tZW1fc2l6ZTsNCiAJfQ0KIA0KQEAgLTEyMTUsNyArMTIxMiw3IEBAIHZvaWQgX19wY2lfYnVz X3NpemVfYnJpZGdlcyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCBzdHJ1Y3QgbGlzdF9oZWFkICpyZWFs bG9jX2hlYWQpDQogDQogCXN3aXRjaCAoYnVzLT5zZWxmLT5oZHJfdHlwZSkgew0KIAljYXNlIFBD SV9IRUFERVJfVFlQRV9DQVJEQlVTOg0KLQkJLyogZG9uJ3Qgc2l6ZSBjYXJkYnVzZXMgeWV0LiAq Lw0KKwkJLyogRG9uJ3Qgc2l6ZSBjYXJkYnVzZXMgeWV0LiAqLw0KIAkJYnJlYWs7DQogDQogCWNh c2UgUENJX0hFQURFUl9UWVBFX0JSSURHRToNCkBAIC0xMjMxLDkgKzEyMjgsOCBAQCB2b2lkIF9f cGNpX2J1c19zaXplX2JyaWRnZXMoc3RydWN0IHBjaV9idXMgKmJ1cywgc3RydWN0IGxpc3RfaGVh ZCAqcmVhbGxvY19oZWFkKQ0KIAkJCSAgICAgYWRkaXRpb25hbF9pb19zaXplLCByZWFsbG9jX2hl YWQpOw0KIA0KIAkJLyoNCi0JCSAqIElmIHRoZXJlJ3MgYSA2NC1iaXQgcHJlZmV0Y2hhYmxlIE1N SU8gd2luZG93LCBjb21wdXRlDQotCQkgKiB0aGUgc2l6ZSByZXF1aXJlZCB0byBwdXQgYWxsIDY0 LWJpdCBwcmVmZXRjaGFibGUNCi0JCSAqIHJlc291cmNlcyBpbiBpdC4NCisJCSAqIElmIHRoZXJl J3MgYSA2NC1iaXQgcHJlZmV0Y2hhYmxlIE1NSU8gd2luZG93LCBjb21wdXRlIHRoZQ0KKwkJICog c2l6ZSByZXF1aXJlZCB0byBwdXQgYWxsIDY0LWJpdCBwcmVmZXRjaGFibGUgcmVzb3VyY2VzIGlu IGl0Lg0KIAkJICovDQogCQliX3JlcyA9ICZidXMtPnNlbGYtPnJlc291cmNlW1BDSV9CUklER0Vf UkVTT1VSQ0VTXTsNCiAJCW1hc2sgPSBJT1JFU09VUkNFX01FTTsNCkBAIC0xMjQ2LDkgKzEyNDIs OSBAQCB2b2lkIF9fcGNpX2J1c19zaXplX2JyaWRnZXMoc3RydWN0IHBjaV9idXMgKmJ1cywgc3Ry dWN0IGxpc3RfaGVhZCAqcmVhbGxvY19oZWFkKQ0KIAkJCQlhZGRpdGlvbmFsX21taW9fcHJlZl9z aXplLCByZWFsbG9jX2hlYWQpOw0KIA0KIAkJCS8qDQotCQkJICogSWYgc3VjY2Vzc2Z1bCwgYWxs IG5vbi1wcmVmZXRjaGFibGUgcmVzb3VyY2VzDQotCQkJICogYW5kIGFueSAzMi1iaXQgcHJlZmV0 Y2hhYmxlIHJlc291cmNlcyB3aWxsIGdvIGluDQotCQkJICogdGhlIG5vbi1wcmVmZXRjaGFibGUg d2luZG93Lg0KKwkJCSAqIElmIHN1Y2Nlc3NmdWwsIGFsbCBub24tcHJlZmV0Y2hhYmxlIHJlc291 cmNlcyBhbmQgYW55DQorCQkJICogMzItYml0IHByZWZldGNoYWJsZSByZXNvdXJjZXMgd2lsbCBn byBpbiB0aGUNCisJCQkgKiBub24tcHJlZmV0Y2hhYmxlIHdpbmRvdy4NCiAJCQkgKi8NCiAJCQlp ZiAocmV0ID09IDApIHsNCiAJCQkJbWFzayA9IHByZWZtYXNrOw0KQEAgLTEyODQsMTggKzEyODAs MTcgQEAgdm9pZCBfX3BjaV9idXNfc2l6ZV9icmlkZ2VzKHN0cnVjdCBwY2lfYnVzICpidXMsIHN0 cnVjdCBsaXN0X2hlYWQgKnJlYWxsb2NfaGVhZCkNCiANCiAJCS8qDQogCQkgKiBDb21wdXRlIHRo ZSBzaXplIHJlcXVpcmVkIHRvIHB1dCBldmVyeXRoaW5nIGVsc2UgaW4gdGhlDQotCQkgKiBub24t cHJlZmV0Y2hhYmxlIHdpbmRvdy4gIFRoaXMgaW5jbHVkZXM6DQorCQkgKiBub24tcHJlZmV0Y2hh YmxlIHdpbmRvdy4gVGhpcyBpbmNsdWRlczoNCiAJCSAqDQogCQkgKiAgIC0gYWxsIG5vbi1wcmVm ZXRjaGFibGUgcmVzb3VyY2VzDQogCQkgKiAgIC0gMzItYml0IHByZWZldGNoYWJsZSByZXNvdXJj ZXMgaWYgdGhlcmUncyBhIDY0LWJpdA0KIAkJICogICAgIHByZWZldGNoYWJsZSB3aW5kb3cgb3Ig bm8gcHJlZmV0Y2hhYmxlIHdpbmRvdyBhdCBhbGwNCi0JCSAqICAgLSA2NC1iaXQgcHJlZmV0Y2hh YmxlIHJlc291cmNlcyBpZiB0aGVyZSdzIG5vDQotCQkgKiAgICAgcHJlZmV0Y2hhYmxlIHdpbmRv dyBhdCBhbGwNCisJCSAqICAgLSA2NC1iaXQgcHJlZmV0Y2hhYmxlIHJlc291cmNlcyBpZiB0aGVy ZSdzIG5vIHByZWZldGNoYWJsZQ0KKwkJICogICAgIHdpbmRvdyBhdCBhbGwNCiAJCSAqDQotCQkg KiBOb3RlIHRoYXQgdGhlIHN0cmF0ZWd5IGluIF9fcGNpX2Fzc2lnbl9yZXNvdXJjZSgpIG11c3QN Ci0JCSAqIG1hdGNoIHRoYXQgdXNlZCBoZXJlLiAgU3BlY2lmaWNhbGx5LCB3ZSBjYW5ub3QgcHV0 IGENCi0JCSAqIDMyLWJpdCBwcmVmZXRjaGFibGUgcmVzb3VyY2UgaW4gYSA2NC1iaXQgcHJlZmV0 Y2hhYmxlDQotCQkgKiB3aW5kb3cuDQorCQkgKiBOb3RlIHRoYXQgdGhlIHN0cmF0ZWd5IGluIF9f cGNpX2Fzc2lnbl9yZXNvdXJjZSgpIG11c3QgbWF0Y2gNCisJCSAqIHRoYXQgdXNlZCBoZXJlLiBT cGVjaWZpY2FsbHksIHdlIGNhbm5vdCBwdXQgYSAzMi1iaXQNCisJCSAqIHByZWZldGNoYWJsZSBy ZXNvdXJjZSBpbiBhIDY0LWJpdCBwcmVmZXRjaGFibGUgd2luZG93Lg0KIAkJICovDQogCQlwYnVz X3NpemVfbWVtKGJ1cywgbWFzaywgSU9SRVNPVVJDRV9NRU0sIHR5cGUyLCB0eXBlMywNCiAJCQly ZWFsbG9jX2hlYWQgPyAwIDogYWRkaXRpb25hbF9tbWlvX3NpemUsDQpAQCAtMTMyOCw4ICsxMzIz LDggQEAgc3RhdGljIHZvaWQgYXNzaWduX2ZpeGVkX3Jlc291cmNlX29uX2J1cyhzdHJ1Y3QgcGNp X2J1cyAqYiwgc3RydWN0IHJlc291cmNlICpyKQ0KIH0NCiANCiAvKg0KLSAqIFRyeSB0byBhc3Np Z24gYW55IHJlc291cmNlcyBtYXJrZWQgYXMgSU9SRVNPVVJDRV9QQ0lfRklYRUQsIGFzIHRoZXkN Ci0gKiBhcmUgc2tpcHBlZCBieSBwYnVzX2Fzc2lnbl9yZXNvdXJjZXNfc29ydGVkKCkuDQorICog VHJ5IHRvIGFzc2lnbiBhbnkgcmVzb3VyY2VzIG1hcmtlZCBhcyBJT1JFU09VUkNFX1BDSV9GSVhF RCwgYXMgdGhleSBhcmUNCisgKiBza2lwcGVkIGJ5IHBidXNfYXNzaWduX3Jlc291cmNlc19zb3J0 ZWQoKS4NCiAgKi8NCiBzdGF0aWMgdm9pZCBwZGV2X2Fzc2lnbl9maXhlZF9yZXNvdXJjZXMoc3Ry dWN0IHBjaV9kZXYgKmRldikNCiB7DQpAQCAtMTQ0MCwxMCArMTQzNSw5IEBAIHN0YXRpYyB2b2lk IHBjaV9idXNfYWxsb2NhdGVfcmVzb3VyY2VzKHN0cnVjdCBwY2lfYnVzICpiKQ0KIAlzdHJ1Y3Qg cGNpX2J1cyAqY2hpbGQ7DQogDQogCS8qDQotCSAqIENhcnJ5IG91dCBhIGRlcHRoLWZpcnN0IHNl YXJjaCBvbiB0aGUgUENJIGJ1cw0KLQkgKiB0cmVlIHRvIGFsbG9jYXRlIGJyaWRnZSBhcGVydHVy ZXMuIFJlYWQgdGhlDQotCSAqIHByb2dyYW1tZWQgYnJpZGdlIGJhc2VzIGFuZCByZWN1cnNpdmVs eSBjbGFpbQ0KLQkgKiB0aGUgcmVzcGVjdGl2ZSBicmlkZ2UgcmVzb3VyY2VzLg0KKwkgKiBDYXJy eSBvdXQgYSBkZXB0aC1maXJzdCBzZWFyY2ggb24gdGhlIFBDSSBidXMgdHJlZSB0byBhbGxvY2F0 ZSBicmlkZ2UNCisJICogYXBlcnR1cmVzLiBSZWFkIHRoZSBwcm9ncmFtbWVkIGJyaWRnZSBiYXNl cyBhbmQgcmVjdXJzaXZlbHkgY2xhaW0gdGhlDQorCSAqIHJlc3BlY3RpdmUgYnJpZGdlIHJlc291 cmNlcy4NCiAJICovDQogCWlmIChiLT5zZWxmKSB7DQogCQlwY2lfcmVhZF9icmlkZ2VfYmFzZXMo Yik7DQpAQCAtMTUwOCwxNiArMTUwMiwxNSBAQCBzdGF0aWMgdm9pZCBwY2lfYnJpZGdlX3JlbGVh c2VfcmVzb3VyY2VzKHN0cnVjdCBwY2lfYnVzICpidXMsDQogCWJfcmVzID0gJmRldi0+cmVzb3Vy Y2VbUENJX0JSSURHRV9SRVNPVVJDRVNdOw0KIA0KIAkvKg0KLQkgKiAgICAgMS4gaWYgdGhlcmUg aXMgaW8gcG9ydCBhc3NpZ24gZmFpbCwgd2lsbCByZWxlYXNlIGJyaWRnZQ0KLQkgKgkgIGlvIHBv cnQuDQotCSAqICAgICAyLiBpZiB0aGVyZSBpcyBub24gcHJlZiBtbWlvIGFzc2lnbiBmYWlsLCBy ZWxlYXNlIGJyaWRnZQ0KLQkgKgkgIG5vbnByZWYgbW1pby4NCi0JICogICAgIDMuIGlmIHRoZXJl IGlzIDY0Yml0IHByZWYgbW1pbyBhc3NpZ24gZmFpbCwgYW5kIGJyaWRnZSBwcmVmDQotCSAqCSAg aXMgNjRiaXQsIHJlbGVhc2UgYnJpZGdlIHByZWYgbW1pby4NCi0JICogICAgIDQuIGlmIHRoZXJl IGlzIHByZWYgbW1pbyBhc3NpZ24gZmFpbCwgYW5kIGJyaWRnZSBwcmVmIGlzDQotCSAqCSAgMzJi aXQgbW1pbywgcmVsZWFzZSBicmlkZ2UgcHJlZiBtbWlvDQotCSAqICAgICA1LiBpZiB0aGVyZSBp cyBwcmVmIG1taW8gYXNzaWduIGZhaWwsIGFuZCBicmlkZ2UgcHJlZiBpcyBub3QNCi0JICoJICBh c3NpZ25lZCwgcmVsZWFzZSBicmlkZ2Ugbm9ucHJlZiBtbWlvLg0KKwkgKiAxLiBJZiB0aGVyZSBp cyBpbyBwb3J0IGFzc2lnbiBmYWlsLCB3aWxsIHJlbGVhc2UgYnJpZGdlIGlvIHBvcnQuDQorCSAq IDIuIElmIHRoZXJlIGlzIG5vbiBwcmVmIG1taW8gYXNzaWduIGZhaWwsIHJlbGVhc2UgYnJpZGdl IG5vbnByZWYNCisJICogICAgbW1pby4NCisJICogMy4gSWYgdGhlcmUgaXMgNjRiaXQgcHJlZiBt bWlvIGFzc2lnbiBmYWlsLCBhbmQgYnJpZGdlIHByZWYgaXMgNjRiaXQsDQorCSAqICAgIHJlbGVh c2UgYnJpZGdlIHByZWYgbW1pby4NCisJICogNC4gSWYgdGhlcmUgaXMgcHJlZiBtbWlvIGFzc2ln biBmYWlsLCBhbmQgYnJpZGdlIHByZWYgaXMgMzJiaXQgbW1pbywNCisJICogICAgcmVsZWFzZSBi cmlkZ2UgcHJlZiBtbWlvDQorCSAqIDUuIElmIHRoZXJlIGlzIHByZWYgbW1pbyBhc3NpZ24gZmFp bCwgYW5kIGJyaWRnZSBwcmVmIGlzIG5vdA0KKwkgKiAgICBhc3NpZ25lZCwgcmVsZWFzZSBicmlk Z2Ugbm9ucHJlZiBtbWlvLg0KIAkgKi8NCiAJaWYgKHR5cGUgJiBJT1JFU09VUkNFX0lPKQ0KIAkJ aWR4ID0gMDsNCkBAIC0xNTM3LDI1ICsxNTMwLDIyIEBAIHN0YXRpYyB2b2lkIHBjaV9icmlkZ2Vf cmVsZWFzZV9yZXNvdXJjZXMoc3RydWN0IHBjaV9idXMgKmJ1cywNCiAJaWYgKCFyLT5wYXJlbnQp DQogCQlyZXR1cm47DQogDQotCS8qDQotCSAqIGlmIHRoZXJlIGFyZSBjaGlsZHJlbiB1bmRlciB0 aGF0LCB3ZSBzaG91bGQgcmVsZWFzZSB0aGVtDQotCSAqICBhbGwNCi0JICovDQorCS8qIElmIHRo ZXJlIGFyZSBjaGlsZHJlbiB1bmRlciB0aGF0LCB3ZSBzaG91bGQgcmVsZWFzZSB0aGVtIGFsbCAq Lw0KIAlyZWxlYXNlX2NoaWxkX3Jlc291cmNlcyhyKTsNCiAJaWYgKCFyZWxlYXNlX3Jlc291cmNl KHIpKSB7DQogCQl0eXBlID0gb2xkX2ZsYWdzID0gci0+ZmxhZ3MgJiBQQ0lfUkVTX1RZUEVfTUFT SzsNCiAJCXBjaV9wcmludGsoS0VSTl9ERUJVRywgZGV2LCAicmVzb3VyY2UgJWQgJXBSIHJlbGVh c2VkXG4iLA0KIAkJCQkJUENJX0JSSURHRV9SRVNPVVJDRVMgKyBpZHgsIHIpOw0KLQkJLyoga2Vl cCB0aGUgb2xkIHNpemUgKi8NCisJCS8qIEtlZXAgdGhlIG9sZCBzaXplICovDQogCQlyLT5lbmQg PSByZXNvdXJjZV9zaXplKHIpIC0gMTsNCiAJCXItPnN0YXJ0ID0gMDsNCiAJCXItPmZsYWdzID0g MDsNCiANCi0JCS8qIGF2b2lkaW5nIHRvdWNoIHRoZSBvbmUgd2l0aG91dCBQUkVGICovDQorCQkv KiBBdm9pZGluZyB0b3VjaCB0aGUgb25lIHdpdGhvdXQgUFJFRiAqLw0KIAkJaWYgKHR5cGUgJiBJ T1JFU09VUkNFX1BSRUZFVENIKQ0KIAkJCXR5cGUgPSBJT1JFU09VUkNFX1BSRUZFVENIOw0KIAkJ X19wY2lfc2V0dXBfYnJpZGdlKGJ1cywgdHlwZSk7DQotCQkvKiBmb3IgbmV4dCBjaGlsZCByZXMg dW5kZXIgc2FtZSBicmlkZ2UgKi8NCisJCS8qIEZvciBuZXh0IGNoaWxkIHJlcyB1bmRlciBzYW1l IGJyaWRnZSAqLw0KIAkJci0+ZmxhZ3MgPSBvbGRfZmxhZ3M7DQogCX0NCiB9DQpAQCAtMTU2NSw4 ICsxNTU1LDggQEAgZW51bSByZWxlYXNlX3R5cGUgew0KIAl3aG9sZV9zdWJ0cmVlLA0KIH07DQog LyoNCi0gKiB0cnkgdG8gcmVsZWFzZSBwY2kgYnJpZGdlIHJlc291cmNlcyB0aGF0IGlzIGZyb20g bGVhZiBicmlkZ2UsDQotICogc28gd2UgY2FuIGFsbG9jYXRlIGJpZyBuZXcgb25lIGxhdGVyDQor ICogVHJ5IHRvIHJlbGVhc2UgcGNpIGJyaWRnZSByZXNvdXJjZXMgdGhhdCBpcyBmcm9tIGxlYWYg YnJpZGdlLCBzbyB3ZSBjYW4NCisgKiBhbGxvY2F0ZSBiaWcgbmV3IG9uZSBsYXRlcg0KICAqLw0K IHN0YXRpYyB2b2lkIHBjaV9idXNfcmVsZWFzZV9icmlkZ2VfcmVzb3VyY2VzKHN0cnVjdCBwY2lf YnVzICpidXMsDQogCQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgdHlwZSwNCkBAIC0xNjkxLDcgKzE2 ODEsNyBAQCBzdGF0aWMgaW50IGlvdl9yZXNvdXJjZXNfdW5hc3NpZ25lZChzdHJ1Y3QgcGNpX2Rl diAqZGV2LCB2b2lkICpkYXRhKQ0KIAkJcGNpYmlvc19yZXNvdXJjZV90b19idXMoZGV2LT5idXMs ICZyZWdpb24sIHIpOw0KIAkJaWYgKCFyZWdpb24uc3RhcnQpIHsNCiAJCQkqdW5hc3NpZ25lZCA9 IHRydWU7DQotCQkJcmV0dXJuIDE7IC8qIHJldHVybiBlYXJseSBmcm9tIHBjaV93YWxrX2J1cygp ICovDQorCQkJcmV0dXJuIDE7IC8qIFJldHVybiBlYXJseSBmcm9tIHBjaV93YWxrX2J1cygpICov DQogCQl9DQogCX0NCiANCkBAIC0xNzIxLDE0ICsxNzExLDE0IEBAIHN0YXRpYyBlbnVtIGVuYWJs ZV90eXBlIHBjaV9yZWFsbG9jX2RldGVjdChzdHJ1Y3QgcGNpX2J1cyAqYnVzLA0KICNlbmRpZg0K IA0KIC8qDQotICogZmlyc3QgdHJ5IHdpbGwgbm90IHRvdWNoIHBjaSBicmlkZ2UgcmVzDQotICog c2Vjb25kIGFuZCBsYXRlciB0cnkgd2lsbCBjbGVhciBzbWFsbCBsZWFmIGJyaWRnZSByZXMNCi0g KiB3aWxsIHN0b3AgdGlsbCB0byB0aGUgbWF4IGRlcHRoIGlmIGNhbiBub3QgZmluZCBnb29kIG9u ZQ0KKyAqIEZpcnN0IHRyeSB3aWxsIG5vdCB0b3VjaCBwY2kgYnJpZGdlIHJlcy4NCisgKiBTZWNv bmQgYW5kIGxhdGVyIHRyeSB3aWxsIGNsZWFyIHNtYWxsIGxlYWYgYnJpZGdlIHJlcy4NCisgKiBX aWxsIHN0b3AgdGlsbCB0byB0aGUgbWF4IGRlcHRoIGlmIGNhbiBub3QgZmluZCBnb29kIG9uZS4N CiAgKi8NCiB2b2lkIHBjaV9hc3NpZ25fdW5hc3NpZ25lZF9yb290X2J1c19yZXNvdXJjZXMoc3Ry dWN0IHBjaV9idXMgKmJ1cykNCiB7DQotCUxJU1RfSEVBRChyZWFsbG9jX2hlYWQpOyAvKiBsaXN0 IG9mIHJlc291cmNlcyB0aGF0DQotCQkJCQl3YW50IGFkZGl0aW9uYWwgcmVzb3VyY2VzICovDQor CUxJU1RfSEVBRChyZWFsbG9jX2hlYWQpOw0KKwkvKiBMaXN0IG9mIHJlc291cmNlcyB0aGF0IHdh bnQgYWRkaXRpb25hbCByZXNvdXJjZXMgKi8NCiAJc3RydWN0IGxpc3RfaGVhZCAqYWRkX2xpc3Qg PSBOVUxMOw0KIAlpbnQgdHJpZWRfdGltZXMgPSAwOw0KIAllbnVtIHJlbGVhc2VfdHlwZSByZWxf dHlwZSA9IGxlYWZfb25seTsNCkBAIC0xNzM3LDcgKzE3MjcsNyBAQCB2b2lkIHBjaV9hc3NpZ25f dW5hc3NpZ25lZF9yb290X2J1c19yZXNvdXJjZXMoc3RydWN0IHBjaV9idXMgKmJ1cykNCiAJaW50 IHBjaV90cnlfbnVtID0gMTsNCiAJZW51bSBlbmFibGVfdHlwZSBlbmFibGVfbG9jYWw7DQogDQot CS8qIGRvbid0IHJlYWxsb2MgaWYgYXNrZWQgdG8gZG8gc28gKi8NCisJLyogRG9uJ3QgcmVhbGxv YyBpZiBhc2tlZCB0byBkbyBzbyAqLw0KIAllbmFibGVfbG9jYWwgPSBwY2lfcmVhbGxvY19kZXRl Y3QoYnVzLCBwY2lfcmVhbGxvY19lbmFibGUpOw0KIAlpZiAocGNpX3JlYWxsb2NfZW5hYmxlZChl bmFibGVfbG9jYWwpKSB7DQogCQlpbnQgbWF4X2RlcHRoID0gcGNpX2J1c19nZXRfZGVwdGgoYnVz KTsNCkBAIC0xNzUwLDEzICsxNzQwLDE0IEBAIHZvaWQgcGNpX2Fzc2lnbl91bmFzc2lnbmVkX3Jv b3RfYnVzX3Jlc291cmNlcyhzdHJ1Y3QgcGNpX2J1cyAqYnVzKQ0KIA0KIGFnYWluOg0KIAkvKg0K LQkgKiBsYXN0IHRyeSB3aWxsIHVzZSBhZGRfbGlzdCwgb3RoZXJ3aXNlIHdpbGwgdHJ5IGdvb2Qg dG8gaGF2ZSBhcw0KLQkgKiBtdXN0IGhhdmUsIHNvIGNhbiByZWFsbG9jIHBhcmVudCBicmlkZ2Ug cmVzb3VyY2UNCisJICogTGFzdCB0cnkgd2lsbCB1c2UgYWRkX2xpc3QsIG90aGVyd2lzZSB3aWxs IHRyeSBnb29kIHRvIGhhdmUgYXMgbXVzdA0KKwkgKiBoYXZlLCBzbyBjYW4gcmVhbGxvYyBwYXJl bnQgYnJpZGdlIHJlc291cmNlDQogCSAqLw0KIAlpZiAodHJpZWRfdGltZXMgKyAxID09IHBjaV90 cnlfbnVtKQ0KIAkJYWRkX2xpc3QgPSAmcmVhbGxvY19oZWFkOw0KLQkvKiBEZXB0aCBmaXJzdCwg Y2FsY3VsYXRlIHNpemVzIGFuZCBhbGlnbm1lbnRzIG9mIGFsbA0KLQkgICBzdWJvcmRpbmF0ZSBi dXNlcy4gKi8NCisJLyoNCisJICogRGVwdGggZmlyc3QsIGNhbGN1bGF0ZSBzaXplcyBhbmQgYWxp Z25tZW50cyBvZiBhbGwgc3Vib3JkaW5hdGUgYnVzZXMuDQorCSAqLw0KIAlfX3BjaV9idXNfc2l6 ZV9icmlkZ2VzKGJ1cywgYWRkX2xpc3QpOw0KIA0KIAkvKiBEZXB0aCBsYXN0LCBhbGxvY2F0ZSBy ZXNvdXJjZXMgYW5kIHVwZGF0ZSB0aGUgaGFyZHdhcmUuICovDQpAQCAtMTc2NSw3ICsxNzU2LDcg QEAgdm9pZCBwY2lfYXNzaWduX3VuYXNzaWduZWRfcm9vdF9idXNfcmVzb3VyY2VzKHN0cnVjdCBw Y2lfYnVzICpidXMpDQogCQlCVUdfT04oIWxpc3RfZW1wdHkoYWRkX2xpc3QpKTsNCiAJdHJpZWRf dGltZXMrKzsNCiANCi0JLyogYW55IGRldmljZSBjb21wbGFpbj8gKi8NCisJLyogQW55IGRldmlj ZSBjb21wbGFpbj8gKi8NCiAJaWYgKGxpc3RfZW1wdHkoJmZhaWxfaGVhZCkpDQogCQlnb3RvIGR1 bXA7DQogDQpAQCAtMTc4Miw3ICsxNzczLDcgQEAgdm9pZCBwY2lfYXNzaWduX3VuYXNzaWduZWRf cm9vdF9idXNfcmVzb3VyY2VzKHN0cnVjdCBwY2lfYnVzICpidXMpDQogCWRldl9wcmludGsoS0VS Tl9ERUJVRywgJmJ1cy0+ZGV2LA0KIAkJICAgIk5vLiAlZCB0cnkgdG8gYXNzaWduIHVuYXNzaWdu ZWQgcmVzXG4iLCB0cmllZF90aW1lcyArIDEpOw0KIA0KLQkvKiB0aGlyZCB0aW1lcyBhbmQgbGF0 ZXIgd2lsbCBub3QgY2hlY2sgaWYgaXQgaXMgbGVhZiAqLw0KKwkvKiBUaGlyZCB0aW1lcyBhbmQg bGF0ZXIgd2lsbCBub3QgY2hlY2sgaWYgaXQgaXMgbGVhZiAqLw0KIAlpZiAoKHRyaWVkX3RpbWVz ICsgMSkgPiAyKQ0KIAkJcmVsX3R5cGUgPSB3aG9sZV9zdWJ0cmVlOw0KIA0KQEAgLTE3OTUsNyAr MTc4Niw3IEBAIHZvaWQgcGNpX2Fzc2lnbl91bmFzc2lnbmVkX3Jvb3RfYnVzX3Jlc291cmNlcyhz dHJ1Y3QgcGNpX2J1cyAqYnVzKQ0KIAkJCQkJCSBmYWlsX3Jlcy0+ZmxhZ3MgJiBQQ0lfUkVTX1RZ UEVfTUFTSywNCiAJCQkJCQkgcmVsX3R5cGUpOw0KIA0KLQkvKiByZXN0b3JlIHNpemUgYW5kIGZs YWdzICovDQorCS8qIFJlc3RvcmUgc2l6ZSBhbmQgZmxhZ3MgKi8NCiAJbGlzdF9mb3JfZWFjaF9l bnRyeShmYWlsX3JlcywgJmZhaWxfaGVhZCwgbGlzdCkgew0KIAkJc3RydWN0IHJlc291cmNlICpy ZXMgPSBmYWlsX3Jlcy0+cmVzOw0KIA0KQEAgLTE4MTAsNyArMTgwMSw3IEBAIHZvaWQgcGNpX2Fz c2lnbl91bmFzc2lnbmVkX3Jvb3RfYnVzX3Jlc291cmNlcyhzdHJ1Y3QgcGNpX2J1cyAqYnVzKQ0K IAlnb3RvIGFnYWluOw0KIA0KIGR1bXA6DQotCS8qIGR1bXAgdGhlIHJlc291cmNlIG9uIGJ1c2Vz ICovDQorCS8qIER1bXAgdGhlIHJlc291cmNlIG9uIGJ1c2VzICovDQogCXBjaV9idXNfZHVtcF9y ZXNvdXJjZXMoYnVzKTsNCiB9DQogDQpAQCAtMjAxNCw4ICsyMDA1LDkgQEAgcGNpX2JyaWRnZV9k aXN0cmlidXRlX2F2YWlsYWJsZV9yZXNvdXJjZXMoc3RydWN0IHBjaV9kZXYgKmJyaWRnZSwNCiB2 b2lkIHBjaV9hc3NpZ25fdW5hc3NpZ25lZF9icmlkZ2VfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2 ICpicmlkZ2UpDQogew0KIAlzdHJ1Y3QgcGNpX2J1cyAqcGFyZW50ID0gYnJpZGdlLT5zdWJvcmRp bmF0ZTsNCi0JTElTVF9IRUFEKGFkZF9saXN0KTsgLyogbGlzdCBvZiByZXNvdXJjZXMgdGhhdA0K LQkJCQkJd2FudCBhZGRpdGlvbmFsIHJlc291cmNlcyAqLw0KKwkvKiBMaXN0IG9mIHJlc291cmNl cyB0aGF0IHdhbnQgYWRkaXRpb25hbCByZXNvdXJjZXMgKi8NCisJTElTVF9IRUFEKGFkZF9saXN0 KTsNCisNCiAJaW50IHRyaWVkX3RpbWVzID0gMDsNCiAJTElTVF9IRUFEKGZhaWxfaGVhZCk7DQog CXN0cnVjdCBwY2lfZGV2X3Jlc291cmNlICpmYWlsX3JlczsNCkBAIC0yMDI1LDkgKzIwMTcsOSBA QCB2b2lkIHBjaV9hc3NpZ25fdW5hc3NpZ25lZF9icmlkZ2VfcmVzb3VyY2VzKHN0cnVjdCBwY2lf ZGV2ICpicmlkZ2UpDQogCV9fcGNpX2J1c19zaXplX2JyaWRnZXMocGFyZW50LCAmYWRkX2xpc3Qp Ow0KIA0KIAkvKg0KLQkgKiBEaXN0cmlidXRlIHJlbWFpbmluZyByZXNvdXJjZXMgKGlmIGFueSkg ZXF1YWxseSBiZXR3ZWVuDQotCSAqIGhvdHBsdWcgYnJpZGdlcyBiZWxvdy4gVGhpcyBtYWtlcyBp dCBwb3NzaWJsZSB0byBleHRlbmQgdGhlDQotCSAqIGhpZXJhcmNoeSBsYXRlciB3aXRob3V0IHJ1 bm5pbmcgb3V0IG9mIHJlc291cmNlcy4NCisJICogRGlzdHJpYnV0ZSByZW1haW5pbmcgcmVzb3Vy Y2VzIChpZiBhbnkpIGVxdWFsbHkgYmV0d2VlbiBob3RwbHVnDQorCSAqIGJyaWRnZXMgYmVsb3cu IFRoaXMgbWFrZXMgaXQgcG9zc2libGUgdG8gZXh0ZW5kIHRoZSBoaWVyYXJjaHkNCisJICogbGF0 ZXIgd2l0aG91dCBydW5uaW5nIG91dCBvZiByZXNvdXJjZXMuDQogCSAqLw0KIAlwY2lfYnJpZGdl X2Rpc3RyaWJ1dGVfYXZhaWxhYmxlX3Jlc291cmNlcyhicmlkZ2UsICZhZGRfbGlzdCk7DQogDQpA QCAtMjAzOSw3ICsyMDMxLDcgQEAgdm9pZCBwY2lfYXNzaWduX3VuYXNzaWduZWRfYnJpZGdlX3Jl c291cmNlcyhzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlKQ0KIAkJZ290byBlbmFibGVfYWxsOw0KIA0K IAlpZiAodHJpZWRfdGltZXMgPj0gMikgew0KLQkJLyogc3RpbGwgZmFpbCwgZG9uJ3QgbmVlZCB0 byB0cnkgbW9yZSAqLw0KKwkJLyogU3RpbGwgZmFpbCwgZG9uJ3QgbmVlZCB0byB0cnkgbW9yZSAq Lw0KIAkJZnJlZV9saXN0KCZmYWlsX2hlYWQpOw0KIAkJZ290byBlbmFibGVfYWxsOw0KIAl9DQpA QCAtMjA1Niw3ICsyMDQ4LDcgQEAgdm9pZCBwY2lfYXNzaWduX3VuYXNzaWduZWRfYnJpZGdlX3Jl c291cmNlcyhzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlKQ0KIAkJCQkJCSBmYWlsX3Jlcy0+ZmxhZ3Mg JiBQQ0lfUkVTX1RZUEVfTUFTSywNCiAJCQkJCQkgd2hvbGVfc3VidHJlZSk7DQogDQotCS8qIHJl c3RvcmUgc2l6ZSBhbmQgZmxhZ3MgKi8NCisJLyogUmVzdG9yZSBzaXplIGFuZCBmbGFncyAqLw0K IAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGZhaWxfcmVzLCAmZmFpbF9oZWFkLCBsaXN0KSB7DQogCQlz dHJ1Y3QgcmVzb3VyY2UgKnJlcyA9IGZhaWxfcmVzLT5yZXM7DQogDQpAQCAtMjE0Nyw3ICsyMTM5 LDcgQEAgaW50IHBjaV9yZWFzc2lnbl9icmlkZ2VfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpi cmlkZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSkNCiAJcmV0dXJuIDA7DQogDQogY2xlYW51cDoNCi0J LyogcmVzdG9yZSBzaXplIGFuZCBmbGFncyAqLw0KKwkvKiBSZXN0b3JlIHNpemUgYW5kIGZsYWdz ICovDQogCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2X3JlcywgJmZhaWxlZCwgbGlzdCkgew0KIAkJ c3RydWN0IHJlc291cmNlICpyZXMgPSBkZXZfcmVzLT5yZXM7DQogDQpAQCAtMjE3OSw4ICsyMTcx LDggQEAgaW50IHBjaV9yZWFzc2lnbl9icmlkZ2VfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpi cmlkZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSkNCiB2b2lkIHBjaV9hc3NpZ25fdW5hc3NpZ25lZF9i dXNfcmVzb3VyY2VzKHN0cnVjdCBwY2lfYnVzICpidXMpDQogew0KIAlzdHJ1Y3QgcGNpX2RldiAq ZGV2Ow0KLQlMSVNUX0hFQUQoYWRkX2xpc3QpOyAvKiBsaXN0IG9mIHJlc291cmNlcyB0aGF0DQot CQkJCQl3YW50IGFkZGl0aW9uYWwgcmVzb3VyY2VzICovDQorCS8qIExpc3Qgb2YgcmVzb3VyY2Vz IHRoYXQgd2FudCBhZGRpdGlvbmFsIHJlc291cmNlcyAqLw0KKwlMSVNUX0hFQUQoYWRkX2xpc3Qp Ow0KIA0KIAlkb3duX3JlYWQoJnBjaV9idXNfc2VtKTsNCiAJZm9yX2VhY2hfcGNpX2JyaWRnZShk ZXYsIGJ1cykNCi0tIA0KMi4xOS4xDQoNCg==