From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1E8DBC3A5A6 for ; Thu, 19 Sep 2019 13:54:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C3AC221D7C for ; Thu, 19 Sep 2019 13:54:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.b="GZM81850" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390713AbfISNy1 (ORCPT ); Thu, 19 Sep 2019 09:54:27 -0400 Received: from mail-eopbgr700050.outbound.protection.outlook.com ([40.107.70.50]:52064 "EHLO NAM04-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2390567AbfISNwr (ORCPT ); Thu, 19 Sep 2019 09:52:47 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kktFHdc/d3D3BNiR2LvxNtIiyFYzaxXtDZB7wXyLY780bzWM+U/YBrMiTX7PRyESHbUHdnK0tXjptcVmaVMZMTJ1HjNtezaqHEpODMSmFguM9Qg+Cpx1jZoNOmvZgRoM3bMLyZFHhMbwFM2Fa4jfvK/6ZDrAR2SXYUDKYfQzj9bZpLT43fCKTh+ztSKIPdu0AvGsXx/jRZOYFHrL/9RG7LpmOwcZSlLl4xmFv4kyOdV0JvmozVytZfqN0K0wwJCv0tGrSOXV8X8ZnV/gWa7Zawsv9H/TOmGYn9BMEMcFtQLkLSy1qV177t6h7AduWNzqFm037fjnG5qf7bbakaWyyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EIDQcH6DbM0QXS6CqIU1Q3/ZqGTdgq3XmnlkuLoqSjY=; b=jrKNjSmUec4v6aO34zGm+kl1u9dEyUKxKeH1wxbc4tRh/DVITLFg0qC5sDwZRBrIDKK9WW80/XSzqYyRAIl5u17JH2MLWOdFAP9jA9C23hgDrHJlDhRIvhGTCE4KypzgA2NUiEmeoz7obtocE047ohk0++gQgrCL/nVvUfEN1wW7l0aKd+afD+bmrXwiBoT5boU8WfGJ2inuYc0l5238ePpJWW5MajV3pVLaUIBLDRl1m8iMWq29DYXW+Bzz+SgpOCoAQ0L8STlXbrob7te1DcvlxhxB5LEjts1NnZvYBhpk/qQ+KlavQNKwrkaEw9UzTw9Ku/CjKldGuoZ4gKa8aw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EIDQcH6DbM0QXS6CqIU1Q3/ZqGTdgq3XmnlkuLoqSjY=; b=GZM81850vJCQPcTDoTxCd90JF6RA6IEUSkolYgzYYO6ciRpLfE+/BpOg12hWCfteTfdbzvI4h+kaX8T/FXnP/XGwOFxAD6Ljf7wNSxl1UfZFQu1Fjgz8i5vzygNPqWm632lImC2fiwE9Agl5iBYFRN42gHNkqwlMDoicpy69wwU= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (20.179.149.217) by MN2PR11MB4400.namprd11.prod.outlook.com (52.135.37.204) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2263.20; Thu, 19 Sep 2019 13:52:34 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::45dc:e073:4446:4bf8]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::45dc:e073:4446:4bf8%3]) with mapi id 15.20.2263.023; Thu, 19 Sep 2019 13:52:34 +0000 From: Jerome Pouiller To: "devel@driverdev.osuosl.org" , "linux-wireless@vger.kernel.org" CC: "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , David Le Goff , Jerome Pouiller Subject: [PATCH v2 07/20] staging: wfx: add IRQ handling Thread-Topic: [PATCH v2 07/20] staging: wfx: add IRQ handling Thread-Index: AQHVbvF8jPFaoPHBs0yyYTLcDYGfRw== Date: Thu, 19 Sep 2019 13:52:33 +0000 Message-ID: <20190919135220.30663-8-Jerome.Pouiller@silabs.com> References: <20190919135220.30663-1-Jerome.Pouiller@silabs.com> In-Reply-To: <20190919135220.30663-1-Jerome.Pouiller@silabs.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Jerome.Pouiller@silabs.com; x-originating-ip: [37.71.187.125] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1d665491-1ab7-4df4-5106-08d73d089fd5 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600167)(711020)(4605104)(1401327)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:MN2PR11MB4400; x-ms-traffictypediagnostic: MN2PR11MB4400: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 016572D96D x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(1496009)(376002)(39850400004)(136003)(366004)(396003)(346002)(189003)(199004)(3846002)(76176011)(8676002)(76116006)(476003)(25786009)(2616005)(6116002)(54906003)(71190400001)(6436002)(102836004)(6486002)(36756003)(186003)(71200400001)(26005)(305945005)(6512007)(99286004)(6506007)(91956017)(7736002)(446003)(8936002)(256004)(81156014)(14444005)(2906002)(66066001)(30864003)(107886003)(4326008)(86362001)(14454004)(478600001)(64756008)(81166006)(2501003)(486006)(66574012)(316002)(66946007)(66446008)(66556008)(5660300002)(11346002)(66476007)(1076003)(110136005);DIR:OUT;SFP:1101;SCL:1;SRVR:MN2PR11MB4400;H:MN2PR11MB4063.namprd11.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: silabs.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 5MNq0GttVdFsdb8z3K81mX/usrVpjSr7cgVUu3uJg2euyREr1elke6Jlw/lRSSe/vt6BFlAaVwWlIYoAb0t7k2OsmTjxpRX+mVMvNGN7ZBc0tXZz+sz0O+F9N4XZhBgxTbggY1TPekPcVsUpU8pUaEXUqbKlhLUZlHKKv/CHx5uPWK+oOpmQvCP+slxUTQ+sWmZyItyCT21PVxwh3B6Bnsq55jlrqXI4Kka3vcr6LJMO+v+aUd6h3iElFUnpuog4cxhJ3mB4bnUFYnfjapfQa13L5+VZx03VpALqVyZ5EsNCZDk63E8Xl6/hnbThhDegRTeoOIRunzOvJcNhF7gjR6+7o4d0/o2ND2HTsVIOjHYO/zSKBh4RMVUQwVBnO5uz3UOO4ZYgMpQ/PYrPKegWN7TVi5OG77gc/Qzqj+cuSFk= Content-Type: text/plain; charset="utf-8" Content-ID: <32752602B55EDB4AB1DAEC61977EFA07@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d665491-1ab7-4df4-5106-08d73d089fd5 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Sep 2019 13:52:34.0058 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: f2XqmIMzKUPCqGAdR+5BvL+zl+vrtkLRVhuxwc8rduXSfcOblThMKBED07jfOr/oHpCwAxBEnP8b2wQaxyNpqw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4400 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPg0KDQpi aF93b3JrKCkgaXMgaW4gY2hhcmdlIHRvIHNjaGVkdWxlIGFsbCBISUYgbWVzc2FnZSBmcm9tL3Rv IGNoaXAuDQoNCk9uIG5vcm1hbCBvcGVyYXRpb24sIHdoZW4gYW4gSVJRIGlzIHJlY2VpdmVkLCBk cml2ZXIgY2FuIGdldCBzaXplIG9mDQpuZXh0IG1lc3NhZ2UgaW4gY29udHJvbCByZWdpc3Rlci4g SW4gb3JkZXIgdG8gc2F2ZSBjb250cm9sIHJlZ2lzdGVyDQphY2Nlc3MsIHdoZW4gY2hpcCBzZW5k IGEgbWVzc2FnZSwgaXQgYWxzbyBhcHBlbmRzIGEgY29weSBvZiBjb250cm9sDQpyZWdpc3RlciBh ZnRlciB0aGUgbWVzc2FnZSAodGhpcyByZWdpc3RlciBpcyBub3QgYWNjb3VudGVkIGluIG1lc3Nh Z2UNCmxlbmd0aCBkZWNsYXJlZCBpbiBtZXNzYWdlIGhlYWRlciwgYnV0IG11c3QgYWNjb3VudGVk IGluIGJ1cyByZXF1ZXN0KS4NClRoaXMgY29weSBvZiBjb250cm9sIHJlZ2lzdGVyIGlzIGNhbGxl ZCAicGlnZ3liYWNrIi4NCg0KSXQgYWxzbyBoYW5kbGVzIGEgcG93ZXIgc2F2aW5nIG1lY2hhbmlz bSBzcGVjaWZpYyB0byBXRnh4eCBzZXJpZXMuIFRoaXMNCm1lY2hhbmlzbSBpcyBiYXNlZCBvbiBh IEdQSU8gY2FsbGVkICJ3YWtldXAiIEdQSU8uIE9idmlvdXNseSwgdGhpcyBncGlvDQppcyBub3Qg cGFydCBvZiBTUEkvU0RJTyBzdGFuZGFyZCBidXNlcyBhbmQgbXVzdCBiZSBkZWNsYXJlZA0KaW5k ZXBlbmRlbnRseSAodGhpcyBpcyB0aGUgbWFpbiByZWFzb24gZm9yIHdoeSBTRElPIG1vZGUgdHJ5 IHRvIGdldA0KcGFyYW1ldGVycyBmcm9tIERUKS4NCg0KV2hlbiB3YWtldXAgaXMgZW5hYmxlZCwg aG9zdCBjYW4gY29tbXVuaWNhdGUgd2l0aCBjaGlwIG9ubHkgaWYgaXQgaXMNCmF3YWtlLiBUbyB3 YWtlIHVwIGNoaXAsIHRoZXJlIGFyZSB0d28gY2FzZXM6DQogICAgLSBob3N0IHJlY2VpdmUgYW4g SVJRIGZyb20gY2hpcCAoY2hpcCBpbml0aWF0ZSBjb21tdW5pY2F0aW9uKTogaG9zdA0KICAgICAg anVzdCBoYXZlIHRvIHNldCB3YWtldXAgR1BJTyBiZWZvcmUgcmVhZGluZyBkYXRhDQogICAgLSBo b3N0IHdhbnQgdG8gc2VuZCBkYXRhIHRvIGNoaXA6IGhvc3Qgc2V0IHdha2V1cCBHUElPLCB0aGVu IHdhaXQNCiAgICAgIGZvciBhbiBJUlEgKGluIGZhY3QsIHdhaXQgZm9yIGFuIGVtcHR5IG1lc3Nh Z2UpIGFuZCBmaW5hbGx5IHNlbmQgZGF0YQ0KDQpiaF93b3JrKCkgaXMgYWxzbyBpbiBjaGFyZ2Ug dG8gdHJhY2sgdXNhZ2Ugb2YgY2hpcCBidWZmZXJzLiBOb3JtYWxseQ0KZWFjaCByZXF1ZXN0IGV4 cGVjdCBhIGNvbmZpcm1hdGlvbi4gSG93ZXZlciwgeW91IGNhbiBub3RpY2UgdGhhdCBzcGVjaWFs DQoibXVsdGkgdHgiIGNvbmZpcm1hdGlvbiBjYW4gYWNrbm93bGVkZ2UgbXVsdGlwbGUgcmVxdWVz dHMgYXQgdGltZS4NCg0KRmluYWxseSwgbm90ZSB0aGF0IHdmeF9iaF9yZXF1ZXN0X3J4KCkgaXMg bm90IGF0b21pYyAoYmVjYXVzZSBvZg0KY29udHJvbF9yZWdfcmVhZCgpKS4gU28sIGluIFNQSSBt b2RlLCBoYXJkLWlycSBoYW5kbGVyIG9ubHkgcG9zdHBvbmUgYWxsDQpwcm9jZXNzaW5nIHRvIHdm eF9zcGlfcmVxdWVzdF9yeCgpLg0KDQpTaWduZWQtb2ZmLWJ5OiBKw6lyw7RtZSBQb3VpbGxlciA8 amVyb21lLnBvdWlsbGVyQHNpbGFicy5jb20+DQotLS0NCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L01h a2VmaWxlICAgfCAgIDEgKw0KIGRyaXZlcnMvc3RhZ2luZy93ZngvYmguYyAgICAgICB8IDI3NyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2Jo LmggICAgICAgfCAgMzIgKysrKw0KIGRyaXZlcnMvc3RhZ2luZy93ZngvYnVzX3NkaW8uYyB8ICAg NCArLQ0KIGRyaXZlcnMvc3RhZ2luZy93ZngvYnVzX3NwaS5jICB8ICAgNSArDQogZHJpdmVycy9z dGFnaW5nL3dmeC9tYWluLmMgICAgIHwgIDIxICsrKw0KIGRyaXZlcnMvc3RhZ2luZy93ZngvbWFp bi5oICAgICB8ICAgMiArDQogZHJpdmVycy9zdGFnaW5nL3dmeC93ZnguaCAgICAgIHwgICA0ICsN CiA4IGZpbGVzIGNoYW5nZWQsIDM0NSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvc3RhZ2luZy93ZngvYmguYw0KIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL3N0YWdpbmcvd2Z4L2JoLmgNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Rh Z2luZy93ZngvTWFrZWZpbGUgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L01ha2VmaWxlDQppbmRleCBl NTY4ZDdhNmZiMDYuLjFhYmQzMTE1ZjExZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy93 ZngvTWFrZWZpbGUNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvTWFrZWZpbGUNCkBAIC00LDYg KzQsNyBAQA0KIENGTEFHU19kZWJ1Zy5vID0gLUkkKHNyYykNCiANCiB3ZngteSA6PSBcDQorCWJo Lm8gXA0KIAlod2lvLm8gXA0KIAlmd2lvLm8gXA0KIAltYWluLm8gXA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3RhZ2luZy93ZngvYmguYyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvYmguYw0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uMDJhNDJlNWMxZTEwDQotLS0gL2Rl di9udWxsDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2JoLmMNCkBAIC0wLDAgKzEsMjc3IEBA DQorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQ0KKy8qDQorICogSW50 ZXJydXB0IGJvdHRvbSBoYWxmIChCSCkuDQorICoNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTctMjAx OSwgU2lsaWNvbiBMYWJvcmF0b3JpZXMsIEluYy4NCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIFNU LUVyaWNzc29uDQorICovDQorI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4NCisjaW5j bHVkZSA8bmV0L21hYzgwMjExLmg+DQorDQorI2luY2x1ZGUgImJoLmgiDQorI2luY2x1ZGUgIndm eC5oIg0KKyNpbmNsdWRlICJod2lvLmgiDQorI2luY2x1ZGUgImhpZl9hcGlfY21kLmgiDQorDQor c3RhdGljIHZvaWQgZGV2aWNlX3dha2V1cChzdHJ1Y3Qgd2Z4X2RldiAqd2RldikNCit7DQorCWlm ICghd2Rldi0+cGRhdGEuZ3Bpb193YWtldXApDQorCQlyZXR1cm47DQorCWlmIChncGlvZF9nZXRf dmFsdWUod2Rldi0+cGRhdGEuZ3Bpb193YWtldXApKQ0KKwkJcmV0dXJuOw0KKw0KKwlncGlvZF9z ZXRfdmFsdWUod2Rldi0+cGRhdGEuZ3Bpb193YWtldXAsIDEpOw0KKwlpZiAod2Z4X2FwaV9vbGRl cl90aGFuKHdkZXYsIDEsIDQpKSB7DQorCQlpZiAoIWNvbXBsZXRpb25fZG9uZSgmd2Rldi0+aGlm LmN0cmxfcmVhZHkpKQ0KKwkJCXVkZWxheSgyMDAwKTsNCisJfSBlbHNlIHsNCisJCS8vIGNvbXBs ZXRpb24uaCBkb2VzIG5vdCBwcm92aWRlIGFueSBmdW5jdGlvbiB0byB3YWl0DQorCQkvLyBjb21w bGV0aW9uIHdpdGhvdXQgY29uc3VtZSBpdCAoYSBraW5kIG9mDQorCQkvLyB3YWl0X2Zvcl9jb21w bGV0aW9uX2RvbmVfdGltZW91dCgpKS4gU28gd2UgaGF2ZSB0byBlbXVsYXRlDQorCQkvLyBpdC4N CisJCWlmICh3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJndkZXYtPmhpZi5jdHJsX3JlYWR5 LCBtc2Vjc190b19qaWZmaWVzKDIpICsgMSkpDQorCQkJY29tcGxldGUoJndkZXYtPmhpZi5jdHJs X3JlYWR5KTsNCisJCWVsc2UNCisJCQlkZXZfZXJyKHdkZXYtPmRldiwgInRpbWVvdXQgd2hpbGUg d2FrZSB1cCBjaGlwXG4iKTsNCisJfQ0KK30NCisNCitzdGF0aWMgdm9pZCBkZXZpY2VfcmVsZWFz ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldikNCit7DQorCWlmICghd2Rldi0+cGRhdGEuZ3Bpb193YWtl dXApDQorCQlyZXR1cm47DQorDQorCWdwaW9kX3NldF92YWx1ZSh3ZGV2LT5wZGF0YS5ncGlvX3dh a2V1cCwgMCk7DQorfQ0KKw0KK3N0YXRpYyBpbnQgcnhfaGVscGVyKHN0cnVjdCB3ZnhfZGV2ICp3 ZGV2LCBzaXplX3QgcmVhZF9sZW4sIGludCAqaXNfY25mKQ0KK3sNCisJc3RydWN0IHNrX2J1ZmYg KnNrYjsNCisJc3RydWN0IGhpZl9tc2cgKmhpZjsNCisJc2l6ZV90IGFsbG9jX2xlbjsNCisJc2l6 ZV90IGNvbXB1dGVkX2xlbjsNCisJaW50IHJlbGVhc2VfY291bnQ7DQorCWludCBwaWdneWJhY2sg PSAwOw0KKw0KKwlXQVJOX09OKHJlYWRfbGVuIDwgNCk7DQorCVdBUk4ocmVhZF9sZW4gPiByb3Vu ZF9kb3duKDB4RkZGLCAyKSAqIHNpemVvZih1MTYpLA0KKwkgICAgICIlczogcmVxdWVzdCBleGNl ZWQgV0Z4IGNhcGFiaWxpdHkiLCBfX2Z1bmNfXyk7DQorDQorCS8vIEFkZCAyIHRvIHRha2UgaW50 byBhY2NvdW50IHBpZ2d5YmFjayBzaXplDQorCWFsbG9jX2xlbiA9IHdkZXYtPmh3YnVzX29wcy0+ YWxpZ25fc2l6ZSh3ZGV2LT5od2J1c19wcml2LCByZWFkX2xlbiArIDIpOw0KKwlza2IgPSBkZXZf YWxsb2Nfc2tiKGFsbG9jX2xlbik7DQorCWlmICghc2tiKQ0KKwkJcmV0dXJuIC1FTk9NRU07DQor DQorCWlmICh3ZnhfZGF0YV9yZWFkKHdkZXYsIHNrYi0+ZGF0YSwgYWxsb2NfbGVuKSkNCisJCWdv dG8gZXJyOw0KKw0KKwlwaWdneWJhY2sgPSBsZTE2X3RvX2NwdXAoKHUxNiAqKSAoc2tiLT5kYXRh ICsgYWxsb2NfbGVuIC0gMikpOw0KKw0KKwloaWYgPSAoc3RydWN0IGhpZl9tc2cgKikgc2tiLT5k YXRhOw0KKwlXQVJOKGhpZi0+ZW5jcnlwdGVkICYgMHgxLCAidW5zdXBwb3J0ZWQgZW5jcnlwdGlv biB0eXBlIik7DQorCWlmIChoaWYtPmVuY3J5cHRlZCA9PSAweDIpIHsNCisJCUJVRygpOyAvLyBO b3QgeWV0IGltcGxlbWVudGVkDQorCX0gZWxzZSB7DQorCQlsZTE2X3RvX2NwdXMoaGlmLT5sZW4p Ow0KKwkJY29tcHV0ZWRfbGVuID0gcm91bmRfdXAoaGlmLT5sZW4sIDIpOw0KKwl9DQorCWlmIChj b21wdXRlZF9sZW4gIT0gcmVhZF9sZW4pIHsNCisJCWRldl9lcnIod2Rldi0+ZGV2LCAiaW5jb25z aXN0ZW50IG1lc3NhZ2UgbGVuZ3RoOiAlenUgIT0gJXp1XG4iLA0KKwkJCWNvbXB1dGVkX2xlbiwg cmVhZF9sZW4pOw0KKwkJcHJpbnRfaGV4X2R1bXAoS0VSTl9JTkZPLCAiaGlmOiAiLCBEVU1QX1BS RUZJWF9PRkZTRVQsIDE2LCAxLA0KKwkJCSAgICAgICBoaWYsIHJlYWRfbGVuLCB0cnVlKTsNCisJ CWdvdG8gZXJyOw0KKwl9DQorDQorCWlmICghKGhpZi0+aWQgJiBISUZfSURfSVNfSU5ESUNBVElP TikpIHsNCisJCSgqaXNfY25mKSsrOw0KKwkJaWYgKGhpZi0+aWQgPT0gSElGX0NORl9JRF9NVUxU SV9UUkFOU01JVCkNCisJCQlyZWxlYXNlX2NvdW50ID0gbGUzMl90b19jcHUoKChzdHJ1Y3QgaGlm X2NuZl9tdWx0aV90cmFuc21pdCAqKSBoaWYtPmJvZHkpLT5udW1fdHhfY29uZnMpOw0KKwkJZWxz ZQ0KKwkJCXJlbGVhc2VfY291bnQgPSAxOw0KKwkJV0FSTih3ZGV2LT5oaWYudHhfYnVmZmVyc191 c2VkIDwgcmVsZWFzZV9jb3VudCwgImNvcnJ1cHRlZCBidWZmZXIgY291bnRlciIpOw0KKwkJd2Rl di0+aGlmLnR4X2J1ZmZlcnNfdXNlZCAtPSByZWxlYXNlX2NvdW50Ow0KKwkJaWYgKCF3ZGV2LT5o aWYudHhfYnVmZmVyc191c2VkKQ0KKwkJCXdha2VfdXAoJndkZXYtPmhpZi50eF9idWZmZXJzX2Vt cHR5KTsNCisJfQ0KKw0KKwlpZiAoaGlmLT5pZCAhPSBISUZfSU5EX0lEX0VYQ0VQVElPTiAmJiBo aWYtPmlkICE9IEhJRl9JTkRfSURfRVJST1IpIHsNCisJCWlmIChoaWYtPnNlcW51bSAhPSB3ZGV2 LT5oaWYucnhfc2VxbnVtKQ0KKwkJCWRldl93YXJuKHdkZXYtPmRldiwgIndyb25nIG1lc3NhZ2Ug c2VxdWVuY2U6ICVkICE9ICVkXG4iLA0KKwkJCQkgaGlmLT5zZXFudW0sIHdkZXYtPmhpZi5yeF9z ZXFudW0pOw0KKwkJd2Rldi0+aGlmLnJ4X3NlcW51bSA9IChoaWYtPnNlcW51bSArIDEpICUgKEhJ Rl9DT1VOVEVSX01BWCArIDEpOw0KKwl9DQorDQorCXNrYl9wdXQoc2tiLCBoaWYtPmxlbik7DQor CWRldl9rZnJlZV9za2Ioc2tiKTsgLyogRklYTUU6IGhhbmRsZSByZWNlaXZlZCBkYXRhICovDQor DQorCXJldHVybiBwaWdneWJhY2s7DQorDQorZXJyOg0KKwlpZiAoc2tiKQ0KKwkJZGV2X2tmcmVl X3NrYihza2IpOw0KKwlyZXR1cm4gLUVJTzsNCit9DQorDQorc3RhdGljIGludCBiaF93b3JrX3J4 KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgbWF4X21zZywgaW50ICpudW1fY25mKQ0KK3sNCisJ c2l6ZV90IGxlbjsNCisJaW50IGk7DQorCWludCBjdHJsX3JlZywgcGlnZ3liYWNrOw0KKw0KKwlw aWdneWJhY2sgPSAwOw0KKwlmb3IgKGkgPSAwOyBpIDwgbWF4X21zZzsgaSsrKSB7DQorCQlpZiAo cGlnZ3liYWNrICYgQ1RSTF9ORVhUX0xFTl9NQVNLKQ0KKwkJCWN0cmxfcmVnID0gcGlnZ3liYWNr Ow0KKwkJZWxzZSBpZiAodHJ5X3dhaXRfZm9yX2NvbXBsZXRpb24oJndkZXYtPmhpZi5jdHJsX3Jl YWR5KSkNCisJCQljdHJsX3JlZyA9IGF0b21pY194Y2hnKCZ3ZGV2LT5oaWYuY3RybF9yZWcsIDAp Ow0KKwkJZWxzZQ0KKwkJCWN0cmxfcmVnID0gMDsNCisJCWlmICghKGN0cmxfcmVnICYgQ1RSTF9O RVhUX0xFTl9NQVNLKSkNCisJCQlyZXR1cm4gaTsNCisJCS8vIGN0cmxfcmVnIHVuaXRzIGFyZSAx NmJpdHMgd29yZHMNCisJCWxlbiA9IChjdHJsX3JlZyAmIENUUkxfTkVYVF9MRU5fTUFTSykgKiAy Ow0KKwkJcGlnZ3liYWNrID0gcnhfaGVscGVyKHdkZXYsIGxlbiwgbnVtX2NuZik7DQorCQlpZiAo cGlnZ3liYWNrIDwgMCkNCisJCQlyZXR1cm4gaTsNCisJCWlmICghKHBpZ2d5YmFjayAmIENUUkxf V0xBTl9SRUFEWSkpDQorCQkJZGV2X2Vycih3ZGV2LT5kZXYsICJ1bmV4cGVjdGVkIHBpZ2d5YmFj ayB2YWx1ZTogcmVhZHkgYml0IG5vdCBzZXQ6ICUwNHhcbiIsDQorCQkJCXBpZ2d5YmFjayk7DQor CX0NCisJaWYgKHBpZ2d5YmFjayAmIENUUkxfTkVYVF9MRU5fTUFTSykgew0KKwkJY3RybF9yZWcg PSBhdG9taWNfeGNoZygmd2Rldi0+aGlmLmN0cmxfcmVnLCBwaWdneWJhY2spOw0KKwkJY29tcGxl dGUoJndkZXYtPmhpZi5jdHJsX3JlYWR5KTsNCisJCWlmIChjdHJsX3JlZykNCisJCQlkZXZfZXJy KHdkZXYtPmRldiwgInVuZXhwZWN0ZWQgSVJRIGhhcHBlbmVkOiAlMDR4LyUwNHhcbiIsDQorCQkJ CWN0cmxfcmVnLCBwaWdneWJhY2spOw0KKwl9DQorCXJldHVybiBpOw0KK30NCisNCitzdGF0aWMg dm9pZCB0eF9oZWxwZXIoc3RydWN0IHdmeF9kZXYgKndkZXYsIHN0cnVjdCBoaWZfbXNnICpoaWYp DQorew0KKwlpbnQgcmV0Ow0KKwl2b2lkICpkYXRhOw0KKwlib29sIGlzX2VuY3J5cHRlZCA9IGZh bHNlOw0KKwlzaXplX3QgbGVuID0gbGUxNl90b19jcHUoaGlmLT5sZW4pOw0KKw0KKwlCVUdfT04o bGVuIDwgc2l6ZW9mKCpoaWYpKTsNCisNCisJaGlmLT5zZXFudW0gPSB3ZGV2LT5oaWYudHhfc2Vx bnVtOw0KKwl3ZGV2LT5oaWYudHhfc2VxbnVtID0gKHdkZXYtPmhpZi50eF9zZXFudW0gKyAxKSAl IChISUZfQ09VTlRFUl9NQVggKyAxKTsNCisNCisJZGF0YSA9IGhpZjsNCisJV0FSTihsZW4gPiB3 ZGV2LT5od19jYXBzLnNpemVfaW5wX2NoX2J1ZiwNCisJICAgICAiJXM6IHJlcXVlc3QgZXhjZWVk IFdGeCBjYXBhYmlsaXR5OiAlenUgPiAlZFxuIiwgX19mdW5jX18sDQorCSAgICAgbGVuLCB3ZGV2 LT5od19jYXBzLnNpemVfaW5wX2NoX2J1Zik7DQorCWxlbiA9IHdkZXYtPmh3YnVzX29wcy0+YWxp Z25fc2l6ZSh3ZGV2LT5od2J1c19wcml2LCBsZW4pOw0KKwlyZXQgPSB3ZnhfZGF0YV93cml0ZSh3 ZGV2LCBkYXRhLCBsZW4pOw0KKwlpZiAocmV0KQ0KKwkJZ290byBlbmQ7DQorDQorCXdkZXYtPmhp Zi50eF9idWZmZXJzX3VzZWQrKzsNCitlbmQ6DQorCWlmIChpc19lbmNyeXB0ZWQpDQorCQlrZnJl ZShkYXRhKTsNCit9DQorDQorc3RhdGljIGludCBiaF93b3JrX3R4KHN0cnVjdCB3ZnhfZGV2ICp3 ZGV2LCBpbnQgbWF4X21zZykNCit7DQorCXN0cnVjdCBoaWZfbXNnICpoaWY7DQorCWludCBpOw0K Kw0KKwlmb3IgKGkgPSAwOyBpIDwgbWF4X21zZzsgaSsrKSB7DQorCQloaWYgPSBOVUxMOw0KKwkJ aWYgKHdkZXYtPmhpZi50eF9idWZmZXJzX3VzZWQgPCB3ZGV2LT5od19jYXBzLm51bV9pbnBfY2hf YnVmcykgew0KKwkJCS8qIEZJWE1FOiBnZXQgcXVldWVkIGRhdGEgKi8NCisJCX0NCisJCWlmICgh aGlmKQ0KKwkJCXJldHVybiBpOw0KKwkJdHhfaGVscGVyKHdkZXYsIGhpZik7DQorCX0NCisJcmV0 dXJuIGk7DQorfQ0KKw0KKy8qIEluIFNESU8gbW9kZSwgaXQgaXMgbmVjZXNzYXJ5IHRvIG1ha2Ug YW4gYWNjZXNzIHRvIGEgcmVnaXN0ZXIgdG8gYWNrbm93bGVkZ2UNCisgKiBsYXN0IHJlY2VpdmVk IG1lc3NhZ2UuIEl0IGNvdWxkIGJlIHBvc3NpYmxlIHRvIHJlc3RyaWN0IHRoaXMgYWNrbm93bGVk Z2UgdG8NCisgKiBTRElPIG1vZGUgYW5kIG9ubHkgaWYgbGFzdCBvcGVyYXRpb24gd2FzIHJ4Lg0K KyAqLw0KK3N0YXRpYyB2b2lkIGFja19zZGlvX2RhdGEoc3RydWN0IHdmeF9kZXYgKndkZXYpDQor ew0KKwl1aW50MzJfdCBjZmdfcmVnOw0KKw0KKwljb25maWdfcmVnX3JlYWQod2RldiwgJmNmZ19y ZWcpOw0KKwlpZiAoY2ZnX3JlZyAmIDB4RkYpIHsNCisJCWRldl93YXJuKHdkZXYtPmRldiwgImNo aXAgcmVwb3J0cyBlcnJvcnM6ICUwMnhcbiIsIGNmZ19yZWcgJiAweEZGKTsNCisJCWNvbmZpZ19y ZWdfd3JpdGVfYml0cyh3ZGV2LCAweEZGLCAweDAwKTsNCisJfQ0KK30NCisNCitzdGF0aWMgdm9p ZCBiaF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCit7DQorCXN0cnVjdCB3ZnhfZGV2 ICp3ZGV2ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCB3ZnhfZGV2LCBoaWYuYmgpOw0KKwlp bnQgc3RhdHNfcmVxID0gMCwgc3RhdHNfY25mID0gMCwgc3RhdHNfaW5kID0gMDsNCisJYm9vbCBy ZWxlYXNlX2NoaXAgPSBmYWxzZSwgbGFzdF9vcF9pc19yeCA9IGZhbHNlOw0KKwlpbnQgbnVtX3R4 LCBudW1fcng7DQorDQorCWRldmljZV93YWtldXAod2Rldik7DQorCWRvIHsNCisJCW51bV90eCA9 IGJoX3dvcmtfdHgod2RldiwgMzIpOw0KKwkJc3RhdHNfcmVxICs9IG51bV90eDsNCisJCWlmIChu dW1fdHgpDQorCQkJbGFzdF9vcF9pc19yeCA9IGZhbHNlOw0KKwkJbnVtX3J4ID0gYmhfd29ya19y eCh3ZGV2LCAzMiwgJnN0YXRzX2NuZik7DQorCQlzdGF0c19pbmQgKz0gbnVtX3J4Ow0KKwkJaWYg KG51bV9yeCkNCisJCQlsYXN0X29wX2lzX3J4ID0gdHJ1ZTsNCisJfSB3aGlsZSAobnVtX3J4IHx8 IG51bV90eCk7DQorCXN0YXRzX2luZCAtPSBzdGF0c19jbmY7DQorDQorCWlmIChsYXN0X29wX2lz X3J4KQ0KKwkJYWNrX3NkaW9fZGF0YSh3ZGV2KTsNCisJaWYgKCF3ZGV2LT5oaWYudHhfYnVmZmVy c191c2VkICYmICF3b3JrX3BlbmRpbmcod29yaykpIHsNCisJCWRldmljZV9yZWxlYXNlKHdkZXYp Ow0KKwkJcmVsZWFzZV9jaGlwID0gdHJ1ZTsNCisJfQ0KK30NCisNCisvKg0KKyAqIEFuIElSUSBm cm9tIGNoaXAgZGlkIG9jY3VyDQorICovDQordm9pZCB3ZnhfYmhfcmVxdWVzdF9yeChzdHJ1Y3Qg d2Z4X2RldiAqd2RldikNCit7DQorCXUzMiBjdXIsIHByZXY7DQorDQorCWNvbnRyb2xfcmVnX3Jl YWQod2RldiwgJmN1cik7DQorCXByZXYgPSBhdG9taWNfeGNoZygmd2Rldi0+aGlmLmN0cmxfcmVn LCBjdXIpOw0KKwljb21wbGV0ZSgmd2Rldi0+aGlmLmN0cmxfcmVhZHkpOw0KKwlxdWV1ZV93b3Jr KHN5c3RlbV9oaWdocHJpX3dxLCAmd2Rldi0+aGlmLmJoKTsNCisNCisJaWYgKCEoY3VyICYgQ1RS TF9ORVhUX0xFTl9NQVNLKSkNCisJCWRldl9lcnIod2Rldi0+ZGV2LCAidW5leHBlY3RlZCBjb250 cm9sIHJlZ2lzdGVyIHZhbHVlOiBsZW5ndGggZmllbGQgaXMgMDogJTA0eFxuIiwNCisJCQljdXIp Ow0KKwlpZiAocHJldiAhPSAwKQ0KKwkJZGV2X2Vycih3ZGV2LT5kZXYsICJyZWNlaXZlZCBJUlEg YnV0IHByZXZpb3VzIGRhdGEgd2FzIG5vdCAoeWV0KSByZWFkOiAlMDR4LyUwNHhcbiIsDQorCQkJ cHJldiwgY3VyKTsNCit9DQorDQorLyoNCisgKiBEcml2ZXIgd2FudCB0byBzZW5kIGRhdGENCisg Ki8NCit2b2lkIHdmeF9iaF9yZXF1ZXN0X3R4KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQ0KK3sNCisJ cXVldWVfd29yayhzeXN0ZW1faGlnaHByaV93cSwgJndkZXYtPmhpZi5iaCk7DQorfQ0KKw0KK3Zv aWQgd2Z4X2JoX3JlZ2lzdGVyKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQ0KK3sNCisJSU5JVF9XT1JL KCZ3ZGV2LT5oaWYuYmgsIGJoX3dvcmspOw0KKwlpbml0X2NvbXBsZXRpb24oJndkZXYtPmhpZi5j dHJsX3JlYWR5KTsNCisJaW5pdF93YWl0cXVldWVfaGVhZCgmd2Rldi0+aGlmLnR4X2J1ZmZlcnNf ZW1wdHkpOw0KK30NCisNCit2b2lkIHdmeF9iaF91bnJlZ2lzdGVyKHN0cnVjdCB3ZnhfZGV2ICp3 ZGV2KQ0KK3sNCisJZmx1c2hfd29yaygmd2Rldi0+aGlmLmJoKTsNCit9DQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zdGFnaW5nL3dmeC9iaC5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9iaC5oDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi45M2NhOTg0MjRlMGINCi0tLSAv ZGV2L251bGwNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvYmguaA0KQEAgLTAsMCArMSwzMiBA QA0KKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8NCisvKg0KKyAq IEludGVycnVwdCBib3R0b20gaGFsZi4NCisgKg0KKyAqIENvcHlyaWdodCAoYykgMjAxNy0yMDE5 LCBTaWxpY29uIExhYm9yYXRvcmllcywgSW5jLg0KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgU1Qt RXJpY3Nzb24NCisgKi8NCisjaWZuZGVmIFdGWF9CSF9IDQorI2RlZmluZSBXRlhfQkhfSA0KKw0K KyNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4NCisjaW5jbHVkZSA8bGludXgvd2FpdC5oPg0KKyNp bmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4NCisNCitzdHJ1Y3Qgd2Z4X2RldjsNCisNCitzdHJ1 Y3Qgd2Z4X2hpZiB7DQorCXN0cnVjdCB3b3JrX3N0cnVjdCBiaDsNCisJc3RydWN0IGNvbXBsZXRp b24gY3RybF9yZWFkeTsNCisJd2FpdF9xdWV1ZV9oZWFkX3QgdHhfYnVmZmVyc19lbXB0eTsNCisJ YXRvbWljX3QgY3RybF9yZWc7DQorCWludCByeF9zZXFudW07DQorCWludCB0eF9zZXFudW07DQor CWludCB0eF9idWZmZXJzX3VzZWQ7DQorfTsNCisNCit2b2lkIHdmeF9iaF9yZWdpc3RlcihzdHJ1 Y3Qgd2Z4X2RldiAqd2Rldik7DQordm9pZCB3ZnhfYmhfdW5yZWdpc3RlcihzdHJ1Y3Qgd2Z4X2Rl diAqd2Rldik7DQordm9pZCB3ZnhfYmhfcmVxdWVzdF9yeChzdHJ1Y3Qgd2Z4X2RldiAqd2Rldik7 DQordm9pZCB3ZnhfYmhfcmVxdWVzdF90eChzdHJ1Y3Qgd2Z4X2RldiAqd2Rldik7DQorDQorI2Vu ZGlmIC8qIFdGWF9CSF9IICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9idXNf c2Rpby5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9idXNfc2Rpby5jDQppbmRleCAyNWM1ODdmZTIx NDEuLmMwYzA2M2MzY2ZjOSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvYnVzX3Nk aW8uYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9idXNfc2Rpby5jDQpAQCAtMTUsNiArMTUs NyBAQA0KICNpbmNsdWRlICJ3ZnguaCINCiAjaW5jbHVkZSAiaHdpby5oIg0KICNpbmNsdWRlICJt YWluLmgiDQorI2luY2x1ZGUgImJoLmgiDQogDQogc3RhdGljIGNvbnN0IHN0cnVjdCB3ZnhfcGxh dGZvcm1fZGF0YSB3Znhfc2Rpb19wZGF0YSA9IHsNCiAJLmZpbGVfZncgPSAid2ZtX3dmMjAwIiwN CkBAIC05MCw3ICs5MSw3IEBAIHN0YXRpYyB2b2lkIHdmeF9zZGlvX2lycV9oYW5kbGVyKHN0cnVj dCBzZGlvX2Z1bmMgKmZ1bmMpDQogCXN0cnVjdCB3Znhfc2Rpb19wcml2ICpidXMgPSBzZGlvX2dl dF9kcnZkYXRhKGZ1bmMpOw0KIA0KIAlpZiAoYnVzLT5jb3JlKQ0KLQkJLyogZW1wdHkgKi87DQor CQl3ZnhfYmhfcmVxdWVzdF9yeChidXMtPmNvcmUpOw0KIAllbHNlDQogCQlXQVJOKCFidXMtPmNv cmUsICJyYWNlIGNvbmRpdGlvbiBpbiBkcml2ZXIgaW5pdC9kZWluaXQiKTsNCiB9DQpAQCAtMTA0 LDYgKzEwNSw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB3Znhfc2Rpb19pcnFfaGFuZGxlcl9leHQo aW50IGlycSwgdm9pZCAqcHJpdikNCiAJCXJldHVybiBJUlFfTk9ORTsNCiAJfQ0KIAlzZGlvX2Ns YWltX2hvc3QoYnVzLT5mdW5jKTsNCisJd2Z4X2JoX3JlcXVlc3RfcngoYnVzLT5jb3JlKTsNCiAJ c2Rpb19yZWxlYXNlX2hvc3QoYnVzLT5mdW5jKTsNCiAJcmV0dXJuIElSUV9IQU5ETEVEOw0KIH0N CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2J1c19zcGkuYyBiL2RyaXZlcnMvc3Rh Z2luZy93ZngvYnVzX3NwaS5jDQppbmRleCBiNzNiOTQxNjI3M2YuLmI3Y2Q4MmI0ZTVlNyAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvYnVzX3NwaS5jDQorKysgYi9kcml2ZXJzL3N0 YWdpbmcvd2Z4L2J1c19zcGkuYw0KQEAgLTE4LDYgKzE4LDcgQEANCiAjaW5jbHVkZSAid2Z4Lmgi DQogI2luY2x1ZGUgImh3aW8uaCINCiAjaW5jbHVkZSAibWFpbi5oIg0KKyNpbmNsdWRlICJiaC5o Ig0KIA0KIHN0YXRpYyBpbnQgZ3Bpb19yZXNldCA9IC0yOw0KIG1vZHVsZV9wYXJhbShncGlvX3Jl c2V0LCBpbnQsIDA2NDQpOw0KQEAgLTE0NCw2ICsxNDUsMTAgQEAgc3RhdGljIGlycXJldHVybl90 IHdmeF9zcGlfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqcHJpdikNCiANCiBzdGF0aWMgdm9p ZCB3Znhfc3BpX3JlcXVlc3Rfcngoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KIHsNCisJc3Ry dWN0IHdmeF9zcGlfcHJpdiAqYnVzID0NCisJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3Qgd2Z4 X3NwaV9wcml2LCByZXF1ZXN0X3J4KTsNCisNCisJd2Z4X2JoX3JlcXVlc3RfcngoYnVzLT5jb3Jl KTsNCiB9DQogDQogc3RhdGljIHNpemVfdCB3Znhfc3BpX2FsaWduX3NpemUodm9pZCAqcHJpdiwg c2l6ZV90IHNpemUpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9tYWluLmMgYi9k cml2ZXJzL3N0YWdpbmcvd2Z4L21haW4uYw0KaW5kZXggYThlZjI5MTc0MjMyLi5mMGJlYTA1M2Ew ZDkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L21haW4uYw0KKysrIGIvZHJpdmVy cy9zdGFnaW5nL3dmeC9tYWluLmMNCkBAIC0yMyw2ICsyMyw3IEBADQogI2luY2x1ZGUgImZ3aW8u aCINCiAjaW5jbHVkZSAiaHdpby5oIg0KICNpbmNsdWRlICJidXMuaCINCisjaW5jbHVkZSAiYmgu aCINCiAjaW5jbHVkZSAid2Z4X3ZlcnNpb24uaCINCiANCiBNT0RVTEVfREVTQ1JJUFRJT04oIlNp bGljb24gTGFicyA4MDIuMTEgV2lyZWxlc3MgTEFOIGRyaXZlciBmb3IgV0Z4Iik7DQpAQCAtMzAs NiArMzEsMjEgQEAgTU9EVUxFX0FVVEhPUigiSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3Vp bGxlckBzaWxhYnMuY29tPiIpOw0KIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCiBNT0RVTEVfVkVS U0lPTihXRlhfTEFCRUwpOw0KIA0KK3N0YXRpYyBpbnQgZ3Bpb193YWtldXAgPSAtMjsNCittb2R1 bGVfcGFyYW0oZ3Bpb193YWtldXAsIGludCwgMDY0NCk7DQorTU9EVUxFX1BBUk1fREVTQyhncGlv X3dha2V1cCwgImdwaW8gbnVtYmVyIGZvciB3YWtldXAuIC0xIGZvciBub25lLiIpOw0KKw0KK2Jv b2wgd2Z4X2FwaV9vbGRlcl90aGFuKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgbWFqb3IsIGlu dCBtaW5vcikNCit7DQorCWlmICh3ZGV2LT5od19jYXBzLmFwaV92ZXJzaW9uX21ham9yIDwgbWFq b3IpDQorCQlyZXR1cm4gdHJ1ZTsNCisJaWYgKHdkZXYtPmh3X2NhcHMuYXBpX3ZlcnNpb25fbWFq b3IgPiBtYWpvcikNCisJCXJldHVybiBmYWxzZTsNCisJaWYgKHdkZXYtPmh3X2NhcHMuYXBpX3Zl cnNpb25fbWlub3IgPCBtaW5vcikNCisJCXJldHVybiB0cnVlOw0KKwlyZXR1cm4gZmFsc2U7DQor fQ0KKw0KIHN0cnVjdCBncGlvX2Rlc2MgKndmeF9nZXRfZ3BpbyhzdHJ1Y3QgZGV2aWNlICpkZXYs IGludCBvdmVycmlkZSwgY29uc3QgY2hhciAqbGFiZWwpDQogew0KIAlzdHJ1Y3QgZ3Bpb19kZXNj ICpyZXQ7DQpAQCAtODIsMTggKzk4LDIzIEBAIGludCB3ZnhfcHJvYmUoc3RydWN0IHdmeF9kZXYg KndkZXYpDQogew0KIAlpbnQgZXJyOw0KIA0KKwl3ZnhfYmhfcmVnaXN0ZXIod2Rldik7DQorDQog CWVyciA9IHdmeF9pbml0X2RldmljZSh3ZGV2KTsNCiAJaWYgKGVycikNCiAJCWdvdG8gZXJyMTsN CiANCisNCiAJcmV0dXJuIDA7DQogDQogZXJyMToNCisJd2Z4X2JoX3VucmVnaXN0ZXIod2Rldik7 DQogCXJldHVybiBlcnI7DQogfQ0KIA0KIHZvaWQgd2Z4X3JlbGVhc2Uoc3RydWN0IHdmeF9kZXYg KndkZXYpDQogew0KKwl3ZnhfYmhfdW5yZWdpc3Rlcih3ZGV2KTsNCiB9DQogDQogc3RhdGljIGlu dCBfX2luaXQgd2Z4X2NvcmVfaW5pdCh2b2lkKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2lu Zy93ZngvbWFpbi5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9tYWluLmgNCmluZGV4IDhiMjUyNmQ4 MTk4NC4uZjdjNjU5OTlhNDkzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9tYWlu LmgNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5oDQpAQCAtMjAsNiArMjAsNyBAQCBz dHJ1Y3Qgd2Z4X2RldjsNCiBzdHJ1Y3Qgd2Z4X3BsYXRmb3JtX2RhdGEgew0KIAkvKiBLZXlzZXQg YW5kICIuc2VjIiBleHRlbnRpb24gd2lsbCBhcHBlbmRlZCB0byB0aGlzIHN0cmluZyAqLw0KIAlj b25zdCBjaGFyICpmaWxlX2Z3Ow0KKwlzdHJ1Y3QgZ3Bpb19kZXNjICpncGlvX3dha2V1cDsNCiAJ LyoNCiAJICogaWYgdHJ1ZSBISUYgRF9vdXQgaXMgc2FtcGxlZCBvbiB0aGUgcmlzaW5nIGVkZ2Ug b2YgdGhlIGNsb2NrDQogCSAqIChpbnRlbmRlZCB0byBiZSB1c2VkIGluIDUwTWh6IFNESU8pDQpA QCAtMzgsNSArMzksNiBAQCB2b2lkIHdmeF9yZWxlYXNlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KTsN CiANCiBzdHJ1Y3QgZ3Bpb19kZXNjICp3ZnhfZ2V0X2dwaW8oc3RydWN0IGRldmljZSAqZGV2LCBp bnQgb3ZlcnJpZGUsDQogCQkJICAgICAgIGNvbnN0IGNoYXIgKmxhYmVsKTsNCitib29sIHdmeF9h cGlfb2xkZXJfdGhhbihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IG1ham9yLCBpbnQgbWlub3Ip Ow0KIA0KICNlbmRpZg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93Zngvd2Z4LmggYi9k cml2ZXJzL3N0YWdpbmcvd2Z4L3dmeC5oDQppbmRleCA1NmFlZDMzMjkxYWUuLjRmMjg5MzhmYTNh NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy93Zngvd2Z4LmgNCisrKyBiL2RyaXZlcnMv c3RhZ2luZy93Zngvd2Z4LmgNCkBAIC0xMCw3ICsxMCw5IEBADQogI2lmbmRlZiBXRlhfSA0KICNk ZWZpbmUgV0ZYX0gNCiANCisjaW5jbHVkZSAiYmguaCINCiAjaW5jbHVkZSAibWFpbi5oIg0KKyNp bmNsdWRlICJoaWZfYXBpX2dlbmVyYWwuaCINCiANCiBzdHJ1Y3QgaHdidXNfb3BzOw0KIA0KQEAg LTIxLDYgKzIzLDggQEAgc3RydWN0IHdmeF9kZXYgew0KIAl2b2lkCQkJKmh3YnVzX3ByaXY7DQog DQogCXU4CQkJa2V5c2V0Ow0KKwlzdHJ1Y3QgaGlmX2luZF9zdGFydHVwCWh3X2NhcHM7DQorCXN0 cnVjdCB3ZnhfaGlmCQloaWY7DQogfTsNCiANCiAjZW5kaWYgLyogV0ZYX0ggKi8NCi0tIA0KMi4y MC4xDQo=