Received: by 2002:a25:c593:0:0:0:0:0 with SMTP id v141csp912605ybe; Thu, 19 Sep 2019 05:58:42 -0700 (PDT) X-Google-Smtp-Source: APXvYqwZW0bYYPeMqJgj5sUutxej19SkPoS8MfimyPzJ09x6kYZRquSGapzsq7Q6s1muhektSoe7 X-Received: by 2002:a17:906:19d9:: with SMTP id h25mr14041450ejd.43.1568897922298; Thu, 19 Sep 2019 05:58:42 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1568897922; cv=pass; d=google.com; s=arc-20160816; b=MwXE1mTC6l3c3hkvrcXk4hTVGeM2u9UMmtEW8aN6nMGoaZNvzZo818U9s8Gf+vnsN+ 8EekAkZODPdflOU3R3sT8AtkDE7imyeNVtvr0HlxVlEQbtN6CsoolrfVeeVz5rpSMy/l 1JzUK0+nnsl68qUg8oxd6c1ikTMzIwm6oZfdqdF9Rb5k+rgXpeAbNXvjOBNqrQbHR797 cOkgEPvjzqjiFkZ2vw0QU8YRL+tYn7khQ5j6Bwwtxv5IWSc27oGsg4tAmuIMGOUdYGyr zeP6vsq5AxUOQZGnBjW4CcGhYOeXqGJBdPp0vEJbY9aAi3NvZBQ01KUg3UWI1i8Peajs 07xw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=FNetZ1+im1b4m13t59Ec9MWVOz7kGu89CmnRsIgi600=; b=ubB8FmuYXyZUUc8Tv3gjCZeTWFSDd+Jl2xGC1rQ377ZmfrjkCSfsRVria6xrmk4z1C 1qpXY5RD9HKpHwEJYH85WuypvjiPVlkXfuTv4haJE6hUv1LJeQq/XqSAQfsQnYg5CcZn t8hGiC3dgZRHzXD4k0JGSNy6iP7CDZRlOmP5N9aDDEaldb0twh1UtdOTYQYMeY/ZeFYL pyjJP+jp82N+kwSuOAO7wfP6//PDeIVb2oIAB0ruNyXGVTzuM0UAJ8dLyf/r4wPTP2v7 +uleS9OopxWrKaoKoQJfThAAya/S6BIH4i6KtLrKvO5Ek9tLKu/ARDAIXtIhBmKFJdb4 szFA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b=azlZK24m; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d27si5512143ede.381.2019.09.19.05.58.17; Thu, 19 Sep 2019 05:58:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@silabs.onmicrosoft.com header.s=selector2-silabs-onmicrosoft-com header.b=azlZK24m; arc=pass (i=1 spf=pass spfdomain=silabs.com dkim=pass dkdomain=silabs.com dmarc=pass fromdomain=silabs.com); spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389384AbfISKyu (ORCPT + 99 others); Thu, 19 Sep 2019 06:54:50 -0400 Received: from mail-eopbgr700049.outbound.protection.outlook.com ([40.107.70.49]:8577 "EHLO NAM04-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2389438AbfISKwu (ORCPT ); Thu, 19 Sep 2019 06:52:50 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MZPXAMGU3WrOcePGtY4dvZdhnS3eU1SjIKuDXjPd6OBpITTTWa6qGtY/vGzlSEWUNDrbrzlyerO+o4Ix+672csg2FhZz78rwDKq/e5DBwhpWmVQIl8JlOcrZxktlZ9SrhhVS5H2LAdQU4VKkxLlW5EJEkcozgKkRgx8S5biv7+5yvcXv8n+Xeu3LaZSzdJM8QxzyDnR8lCNrCsrsbWbJxGV2H/LVLN12rR6v+3Da6CyYsSJafR5wK8WYcswRiMoXLa/7zVm7xCQYHjN3gU7PZoQMG9tCwOWmNwFi5yHaGQ6G/+mh+GmPdRJFMZV3J28zz5F0Vp6bYGCAxfT8y5ELTg== 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=FNetZ1+im1b4m13t59Ec9MWVOz7kGu89CmnRsIgi600=; b=ZjcUbLGNSf27bIURJ4lmjhdC1oHRPucRH5b0+EErozBfIzbCIWGgaz4NBjRveBk+kx6MAFTu7bk58+Cw3TfuLha9M9x70pp5EgG5jhHAd+ZFiBMyqhJOFyY3Cf37zQgO8Fv4bUa0ZBQ3gYVgxLUbsAAdDMk1Yi539OToEVcuHLM+duPD6ox4LXteA0NK4w9JekHx+xRp6qT33WHOAylvZ5Q0wpxL2eexaKvLNZ5kFd+fvQsBGaLZX2WKlCrRqMd5jMb9K7Qv2N5TyMjRup5OSQZ9M5vtimQhthKh2g717cVHmF1an9HCKdzP89YUHpBHbSmezLF74//wmY4tKRK5eg== 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=FNetZ1+im1b4m13t59Ec9MWVOz7kGu89CmnRsIgi600=; b=azlZK24med+NenlspmnLIhnbJBxas/gsEJwQmCfE8mHtUud7gxDtQIkFVkxZHH0Ds+h7N7veyRfAvLCy5BpVzhK+sRekUi2cfFKC2sfOCnHJGFQEDyXT318u6weMbDhJiSxEdszDBuNOTcR9fix+sjxZ+sbsjzueqkFZ2uv9u9s= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (20.179.149.217) by MN2PR11MB3775.namprd11.prod.outlook.com (20.178.253.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2263.17; Thu, 19 Sep 2019 10:52:38 +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 10:52:38 +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 07/20] staging: wfx: add IRQ handling Thread-Topic: [PATCH 07/20] staging: wfx: add IRQ handling Thread-Index: AQHVbthZSqAgZ+UjRkKZkCdHQwf+3Q== Date: Thu, 19 Sep 2019 10:52:37 +0000 Message-ID: <20190919105153.15285-8-Jerome.Pouiller@silabs.com> References: <20190919105153.15285-1-Jerome.Pouiller@silabs.com> In-Reply-To: <20190919105153.15285-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: 39e1c97d-04f4-4b51-eb9c-08d73cef7cce x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600167)(711020)(4605104)(1401327)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:MN2PR11MB3775; x-ms-traffictypediagnostic: MN2PR11MB3775: 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)(366004)(376002)(346002)(39850400004)(136003)(396003)(199004)(189003)(86362001)(256004)(14444005)(8936002)(4326008)(66066001)(36756003)(14454004)(305945005)(64756008)(5660300002)(66476007)(66556008)(66446008)(316002)(476003)(446003)(11346002)(110136005)(2616005)(66946007)(478600001)(91956017)(25786009)(76116006)(7736002)(71190400001)(81166006)(1076003)(30864003)(2501003)(6506007)(186003)(6436002)(486006)(81156014)(3846002)(6116002)(8676002)(102836004)(107886003)(54906003)(76176011)(2906002)(26005)(66574012)(99286004)(6486002)(71200400001)(6512007);DIR:OUT;SFP:1101;SCL:1;SRVR:MN2PR11MB3775;H:MN2PR11MB4063.namprd11.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX: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: uxnj9qqAs3HQ0PyQn4sY+UfY/G71eQngeVL3OA+JcVMYeyH/4zS58GE5GKJGSWpRcuFtrgDjVALsNfaNZN9c+4MQdFIx0yrQiVc0HgWtapnGDE1K5wmUmAz2cPX+ioh2My83poMtXKbLt/YMnvd2/keBBG0L0Op9QJv11YeYsvX2QFp/BiPorqqxA8UEO1Pjro82IyKlstKJKj6faTY2c/okUcxgJo6WbkJfwtlXTJ4Lt1t5moa9o5cLcZ0r7JGU0DorkoT1yM/1ftaJ4J0tiYeAC/2s73+4QwntMaED/GqxzM1v5v7lgw2YcQx6SITQz+f11b6dBGWC85FhETKO/+kZ271IAXeJMHTNg4k7sLR5pVMimSccEkM9Bi+o14nf11gLOzrzzgklBG7iVhc8hzZY/KuUc+C60a7/f1zDP7Q= Content-Type: text/plain; charset="utf-8" Content-ID: <036F09717650BC439F89A1F23AB1BF82@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39e1c97d-04f4-4b51-eb9c-08d73cef7cce X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Sep 2019 10:52:37.7664 (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: iqQBIPDrflc29tKbq8GUdIKowrgQDG6VSz9PLBVanM2+E/K028jrVNm/lPy3WD81W+cly8FD1BxZ/5OxZtNM4w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3775 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@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 Z2luZy93ZngvYnVzX3NwaS5jDQppbmRleCBjNDc0OTQ5YTMyZGQuLjhhOWFhYjNlNzM4NCAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvYnVzX3NwaS5jDQorKysgYi9kcml2ZXJzL3N0 YWdpbmcvd2Z4L2J1c19zcGkuYw0KQEAgLTE5LDYgKzE5LDcgQEANCiAjaW5jbHVkZSAid2Z4Lmgi DQogI2luY2x1ZGUgImh3aW8uaCINCiAjaW5jbHVkZSAibWFpbi5oIg0KKyNpbmNsdWRlICJiaC5o Ig0KIA0KICNkZWZpbmUgREVURUNUX0lOVkFMSURfQ1RSTF9BQ0NFU1MNCiANCkBAIC0yMTUsNiAr MjE2LDEwIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB3Znhfc3BpX2lycV9oYW5kbGVyKGludCBpcnEs IHZvaWQgKnByaXYpDQogDQogc3RhdGljIHZvaWQgd2Z4X3NwaV9yZXF1ZXN0X3J4KHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykNCiB7DQorCXN0cnVjdCB3Znhfc3BpX3ByaXYgKmJ1cyA9DQorCQlj b250YWluZXJfb2Yod29yaywgc3RydWN0IHdmeF9zcGlfcHJpdiwgcmVxdWVzdF9yeCk7DQorDQor CXdmeF9iaF9yZXF1ZXN0X3J4KGJ1cy0+Y29yZSk7DQogfQ0KIA0KIHN0YXRpYyBzaXplX3Qgd2Z4 X3NwaV9hbGlnbl9zaXplKHZvaWQgKnByaXYsIHNpemVfdCBzaXplKQ0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3RhZ2luZy93ZngvbWFpbi5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9tYWluLmMNCmlu ZGV4IGE4ZWYyOTE3NDIzMi4uZjBiZWEwNTNhMGQ5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFn aW5nL3dmeC9tYWluLmMNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5jDQpAQCAtMjMs NiArMjMsNyBAQA0KICNpbmNsdWRlICJmd2lvLmgiDQogI2luY2x1ZGUgImh3aW8uaCINCiAjaW5j bHVkZSAiYnVzLmgiDQorI2luY2x1ZGUgImJoLmgiDQogI2luY2x1ZGUgIndmeF92ZXJzaW9uLmgi DQogDQogTU9EVUxFX0RFU0NSSVBUSU9OKCJTaWxpY29uIExhYnMgODAyLjExIFdpcmVsZXNzIExB TiBkcml2ZXIgZm9yIFdGeCIpOw0KQEAgLTMwLDYgKzMxLDIxIEBAIE1PRFVMRV9BVVRIT1IoIkrD qXLDtG1lIFBvdWlsbGVyIDxqZXJvbWUucG91aWxsZXJAc2lsYWJzLmNvbT4iKTsNCiBNT0RVTEVf TElDRU5TRSgiR1BMIik7DQogTU9EVUxFX1ZFUlNJT04oV0ZYX0xBQkVMKTsNCiANCitzdGF0aWMg aW50IGdwaW9fd2FrZXVwID0gLTI7DQorbW9kdWxlX3BhcmFtKGdwaW9fd2FrZXVwLCBpbnQsIDA2 NDQpOw0KK01PRFVMRV9QQVJNX0RFU0MoZ3Bpb193YWtldXAsICJncGlvIG51bWJlciBmb3Igd2Fr ZXVwLiAtMSBmb3Igbm9uZS4iKTsNCisNCitib29sIHdmeF9hcGlfb2xkZXJfdGhhbihzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgaW50IG1ham9yLCBpbnQgbWlub3IpDQorew0KKwlpZiAod2Rldi0+aHdf Y2Fwcy5hcGlfdmVyc2lvbl9tYWpvciA8IG1ham9yKQ0KKwkJcmV0dXJuIHRydWU7DQorCWlmICh3 ZGV2LT5od19jYXBzLmFwaV92ZXJzaW9uX21ham9yID4gbWFqb3IpDQorCQlyZXR1cm4gZmFsc2U7 DQorCWlmICh3ZGV2LT5od19jYXBzLmFwaV92ZXJzaW9uX21pbm9yIDwgbWlub3IpDQorCQlyZXR1 cm4gdHJ1ZTsNCisJcmV0dXJuIGZhbHNlOw0KK30NCisNCiBzdHJ1Y3QgZ3Bpb19kZXNjICp3Znhf Z2V0X2dwaW8oc3RydWN0IGRldmljZSAqZGV2LCBpbnQgb3ZlcnJpZGUsIGNvbnN0IGNoYXIgKmxh YmVsKQ0KIHsNCiAJc3RydWN0IGdwaW9fZGVzYyAqcmV0Ow0KQEAgLTgyLDE4ICs5OCwyMyBAQCBp bnQgd2Z4X3Byb2JlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQ0KIHsNCiAJaW50IGVycjsNCiANCisJ d2Z4X2JoX3JlZ2lzdGVyKHdkZXYpOw0KKw0KIAllcnIgPSB3ZnhfaW5pdF9kZXZpY2Uod2Rldik7 DQogCWlmIChlcnIpDQogCQlnb3RvIGVycjE7DQogDQorDQogCXJldHVybiAwOw0KIA0KIGVycjE6 DQorCXdmeF9iaF91bnJlZ2lzdGVyKHdkZXYpOw0KIAlyZXR1cm4gZXJyOw0KIH0NCiANCiB2b2lk IHdmeF9yZWxlYXNlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQ0KIHsNCisJd2Z4X2JoX3VucmVnaXN0 ZXIod2Rldik7DQogfQ0KIA0KIHN0YXRpYyBpbnQgX19pbml0IHdmeF9jb3JlX2luaXQodm9pZCkN CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L21haW4uaCBiL2RyaXZlcnMvc3RhZ2lu Zy93ZngvbWFpbi5oDQppbmRleCA4YjI1MjZkODE5ODQuLmY3YzY1OTk5YTQ5MyAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5oDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4 L21haW4uaA0KQEAgLTIwLDYgKzIwLDcgQEAgc3RydWN0IHdmeF9kZXY7DQogc3RydWN0IHdmeF9w bGF0Zm9ybV9kYXRhIHsNCiAJLyogS2V5c2V0IGFuZCAiLnNlYyIgZXh0ZW50aW9uIHdpbGwgYXBw ZW5kZWQgdG8gdGhpcyBzdHJpbmcgKi8NCiAJY29uc3QgY2hhciAqZmlsZV9mdzsNCisJc3RydWN0 IGdwaW9fZGVzYyAqZ3Bpb193YWtldXA7DQogCS8qDQogCSAqIGlmIHRydWUgSElGIERfb3V0IGlz IHNhbXBsZWQgb24gdGhlIHJpc2luZyBlZGdlIG9mIHRoZSBjbG9jaw0KIAkgKiAoaW50ZW5kZWQg dG8gYmUgdXNlZCBpbiA1ME1oeiBTRElPKQ0KQEAgLTM4LDUgKzM5LDYgQEAgdm9pZCB3ZnhfcmVs ZWFzZShzdHJ1Y3Qgd2Z4X2RldiAqd2Rldik7DQogDQogc3RydWN0IGdwaW9fZGVzYyAqd2Z4X2dl dF9ncGlvKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IG92ZXJyaWRlLA0KIAkJCSAgICAgICBjb25z dCBjaGFyICpsYWJlbCk7DQorYm9vbCB3ZnhfYXBpX29sZGVyX3RoYW4oc3RydWN0IHdmeF9kZXYg KndkZXYsIGludCBtYWpvciwgaW50IG1pbm9yKTsNCiANCiAjZW5kaWYNCmRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvd2Z4L3dmeC5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC93ZnguaA0KaW5k ZXggNTZhZWQzMzI5MWFlLi40ZjI4OTM4ZmEzYTYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdp bmcvd2Z4L3dmeC5oDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3dmeC5oDQpAQCAtMTAsNyAr MTAsOSBAQA0KICNpZm5kZWYgV0ZYX0gNCiAjZGVmaW5lIFdGWF9IDQogDQorI2luY2x1ZGUgImJo LmgiDQogI2luY2x1ZGUgIm1haW4uaCINCisjaW5jbHVkZSAiaGlmX2FwaV9nZW5lcmFsLmgiDQog DQogc3RydWN0IGh3YnVzX29wczsNCiANCkBAIC0yMSw2ICsyMyw4IEBAIHN0cnVjdCB3ZnhfZGV2 IHsNCiAJdm9pZAkJCSpod2J1c19wcml2Ow0KIA0KIAl1OAkJCWtleXNldDsNCisJc3RydWN0IGhp Zl9pbmRfc3RhcnR1cAlod19jYXBzOw0KKwlzdHJ1Y3Qgd2Z4X2hpZgkJaGlmOw0KIH07DQogDQog I2VuZGlmIC8qIFdGWF9IICovDQotLSANCjIuMjAuMQ0K