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 2F676C49ED7 for ; Thu, 19 Sep 2019 10:54:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C3FC221929 for ; Thu, 19 Sep 2019 10:54:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.b="TZWbFpWJ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731357AbfISKxt (ORCPT ); Thu, 19 Sep 2019 06:53:49 -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 S2389558AbfISKxC (ORCPT ); Thu, 19 Sep 2019 06:53:02 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HoI/M7CYA39SjjnPRN3QxmkGTpH2/a7dDGnBDmTZX4Jho44jxAXbyTSOWfoWzKENcdPvGn8cfznYhlxOH4s2eIpxkDf7FDlPLCAcfzTihSFIqx0W9Vac8H58Wl1TLBRSQkrSH9FA9zHm8YngxDvIUWOPa/b669WfJ1v5x11PQRyhvERFQy/xmY84aPk5AqRqOeOGNfAxYIcIrBk4TEUbWUbwhT1dhocFL4mxBJIXvt3bkvjXfUoNcRea8X56lMtsrL9jrNdV8LG9IPCDBm7tQMXEhUraCAi5V/nM3fL2t81W1HNbMfOBohRbpaLidsLwAgnefBbv23mblyp7ofw0eA== 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=eMDXEIK0GajkaZmsT0bvqXY3S2T7rgTWgngOjQkXfgs=; b=MKj8iqFdV9PXDxUbqnddHKgQ88o11Dpzi72GMbbyUVbZ2w8Wg6aJqk1HOqnGbSnXaijlUGImjHLnXugYUY3Ue0nu1GWOCp6eQBEVJIKEEX/4wMG/4T8z+fuatcUJMa9X+624YqrZSpg3q88etCP2lpHkKYzU62krWOXKh2+3KMCWx0UNEosvx/Y1uITH5luXdaHjZJZuI0w+/R234/z9NAZ4JyRRYpsmuYL9iN5j2zlUtcV0PMrJaOT/5Xlr6K7r63qvMNayZ9mt/rXv4MLIfUXpIdZZOlfsGbSPaWtIcPuo4lJfU25PUEAKeMuN/LblIrRZwoKmvmUClgSoUHQ9wA== 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=eMDXEIK0GajkaZmsT0bvqXY3S2T7rgTWgngOjQkXfgs=; b=TZWbFpWJVUNRf8gdMQ9EXKwCLzwz/kXGVpKeVPWTEBcBx7wo2rdTsUiZvhAo4TzytSZT7Wf1hvjN598lOe+RcPMewx8vRV8c7U59I8660GQpMkeBsYvfJoCZGkwMlbbbQrH6r2Muz4oVVjl3/yP1f9vy6A8eW/XpltV+9DRq+Fs= 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:45 +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:45 +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 18/20] staging: wfx: allow to scan networks Thread-Topic: [PATCH 18/20] staging: wfx: allow to scan networks Thread-Index: AQHVbthdJ65Ee2NEtU+XaKoJWLw7Jg== Date: Thu, 19 Sep 2019 10:52:43 +0000 Message-ID: <20190919105153.15285-19-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: 8af426fe-f0a0-4efe-228d-08d73cef80d6 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:127; 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: djBpp9zFB2jT/2fPt8+noYc9k1qCNbH6iDa9qdAZ/+vWkJsBM0Bw2akd77tH1RKvECkD/Z383c2Gw3R8P3pO69ICWLFTbeOHkCtOJ69uYeduepz78KHltCwsCoJV+md/HO7Fp/wBoQCas6VE8UcoNuuowsiRwFXSHyTfj4gDtLrlgV9W30uAqr+/WzgeqJo/ZEIpFC0rPlcs25cA0yfYzU9JVi44bgommi4dd+lrL4l07V7wh42pzv8Iw4PwMYvFlKnNxTf4AcpmHqreJXBmcq4T/PkkZnkHP5TlPgeZj5QynW7lbKISvE3UFz2MdoQVtXrpDidxQeax5XhlITDoyvNO09Rkq74IHOGGsONUqJg4wcCQukD0ls4AVAhRdxLBwsZalhavfa7ilVFnjBgds59Mj7ZTusld+IQAMlqSqFA= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8af426fe-f0a0-4efe-228d-08d73cef80d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Sep 2019 10:52:43.7840 (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: K0PPiOyXWWdoIbDGJlLWdG16Y42NYz6H7Iq4GZKL3AFu2bw81RLIJmhPqDAVYJ+I+OHYnVM7VsWAceJWPqhcRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3775 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPg0KDQpT aWduZWQtb2ZmLWJ5OiBKw6lyw7RtZSBQb3VpbGxlciA8amVyb21lLnBvdWlsbGVyQHNpbGFicy5j b20+DQotLS0NCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L01ha2VmaWxlIHwgICAxICsNCiBkcml2ZXJz L3N0YWdpbmcvd2Z4L2JoLmMgICAgIHwgICAyICstDQogZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZf cnguYyB8ICAxMyArKw0KIGRyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5jICAgfCAgIDUgKw0KIGRy aXZlcnMvc3RhZ2luZy93Zngvc2Nhbi5jICAgfCAyNTggKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysNCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L3NjYW4uaCAgIHwgIDQyICsrKysrKw0K IGRyaXZlcnMvc3RhZ2luZy93Zngvc3RhLmMgICAgfCAgMjMgKysrLQ0KIGRyaXZlcnMvc3RhZ2lu Zy93Zngvc3RhLmggICAgfCAgIDQgKw0KIGRyaXZlcnMvc3RhZ2luZy93Zngvd2Z4LmggICAgfCAg MTEgKysNCiA5IGZpbGVzIGNoYW5nZWQsIDM1NyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3N0YWdpbmcvd2Z4L3NjYW4uYw0KIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3N0YWdpbmcvd2Z4L3NjYW4uaA0KDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zdGFnaW5nL3dmeC9NYWtlZmlsZSBiL2RyaXZlcnMvc3RhZ2luZy93ZngvTWFrZWZp bGUNCmluZGV4IGQ5ZTIxNTE1ZDA4ZS4uMmI4YTVmYTg2ZmFjIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9zdGFnaW5nL3dmeC9NYWtlZmlsZQ0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9NYWtlZmls ZQ0KQEAgLTEyLDYgKzEyLDcgQEAgd2Z4LXkgOj0gXA0KIAlxdWV1ZS5vIFwNCiAJZGF0YV90eC5v IFwNCiAJZGF0YV9yeC5vIFwNCisJc2Nhbi5vIFwNCiAJc3RhLm8gXA0KIAltYWluLm8gXA0KIAlz dGEubyBcDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9iaC5jIGIvZHJpdmVycy9z dGFnaW5nL3dmeC9iaC5jDQppbmRleCBlZDgxYzM5MjRkOTguLjYwMDBjMDNiYjY1OCAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvYmguYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3dm eC9iaC5jDQpAQCAtMjY4LDcgKzI2OCw3IEBAIHN0YXRpYyB2b2lkIGJoX3dvcmsoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQ0KIA0KIAlpZiAobGFzdF9vcF9pc19yeCkNCiAJCWFja19zZGlvX2Rh dGEod2Rldik7DQotCWlmICghd2Rldi0+aGlmLnR4X2J1ZmZlcnNfdXNlZCAmJiAhd29ya19wZW5k aW5nKHdvcmspKSB7DQorCWlmICghd2Rldi0+aGlmLnR4X2J1ZmZlcnNfdXNlZCAmJiAhd29ya19w ZW5kaW5nKHdvcmspICYmICFhdG9taWNfcmVhZCgmd2Rldi0+c2Nhbl9pbl9wcm9ncmVzcykpIHsN CiAJCWRldmljZV9yZWxlYXNlKHdkZXYpOw0KIAkJcmVsZWFzZV9jaGlwID0gdHJ1ZTsNCiAJfQ0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3J4LmMgYi9kcml2ZXJzL3N0YWdp bmcvd2Z4L2hpZl9yeC5jDQppbmRleCBjMDc5ODRiMDUzNWQuLmQzODZmYWIwYTkwZiAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3J4LmMNCisrKyBiL2RyaXZlcnMvc3RhZ2lu Zy93ZngvaGlmX3J4LmMNCkBAIC0xMSw2ICsxMSw3IEBADQogDQogI2luY2x1ZGUgImhpZl9yeC5o Ig0KICNpbmNsdWRlICJ3ZnguaCINCisjaW5jbHVkZSAic2Nhbi5oIg0KICNpbmNsdWRlICJkYXRh X3J4LmgiDQogI2luY2x1ZGUgInNlY3VyZV9saW5rLmgiDQogI2luY2x1ZGUgImhpZl9hcGlfY21k LmgiDQpAQCAtMTQzLDYgKzE0NCwxNyBAQCBzdGF0aWMgaW50IGhpZl9yZWNlaXZlX2luZGljYXRp b24oc3RydWN0IHdmeF9kZXYgKndkZXYsIHN0cnVjdCBoaWZfbXNnICpoaWYsIHZvaQ0KIAlyZXR1 cm4gMDsNCiB9DQogDQorc3RhdGljIGludCBoaWZfc2Nhbl9jb21wbGV0ZV9pbmRpY2F0aW9uKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2LCBzdHJ1Y3QgaGlmX21zZyAqaGlmLCB2b2lkICpidWYpDQorew0K KwlzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiA9IHdkZXZfdG9fd3ZpZih3ZGV2LCBoaWYtPmludGVyZmFj ZSk7DQorCXN0cnVjdCBoaWZfaW5kX3NjYW5fY21wbCAqYm9keSA9IGJ1ZjsNCisNCisJV0FSTl9P Tighd3ZpZik7DQorCXdmeF9zY2FuX2NvbXBsZXRlX2NiKHd2aWYsIGJvZHkpOw0KKw0KKwlyZXR1 cm4gMDsNCit9DQorDQogc3RhdGljIGludCBoaWZfam9pbl9jb21wbGV0ZV9pbmRpY2F0aW9uKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2LCBzdHJ1Y3QgaGlmX21zZyAqaGlmLCB2b2lkICpidWYpDQogew0K IAlzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiA9IHdkZXZfdG9fd3ZpZih3ZGV2LCBoaWYtPmludGVyZmFj ZSk7DQpAQCAtMjMwLDYgKzI0Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgew0KIAl7IEhJRl9J TkRfSURfU1RBUlRVUCwgICAgICAgICAgICAgIGhpZl9zdGFydHVwX2luZGljYXRpb24gfSwNCiAJ eyBISUZfSU5EX0lEX1dBS0VVUCwgICAgICAgICAgICAgICBoaWZfd2FrZXVwX2luZGljYXRpb24g fSwNCiAJeyBISUZfSU5EX0lEX0pPSU5fQ09NUExFVEUsICAgICAgICBoaWZfam9pbl9jb21wbGV0 ZV9pbmRpY2F0aW9uIH0sDQorCXsgSElGX0lORF9JRF9TQ0FOX0NNUEwsICAgICAgICAgICAgaGlm X3NjYW5fY29tcGxldGVfaW5kaWNhdGlvbiB9LA0KIAl7IEhJRl9JTkRfSURfU0xfRVhDSEFOR0Vf UFVCX0tFWVMsIGhpZl9rZXlzX2luZGljYXRpb24gfSwNCiAJeyBISUZfSU5EX0lEX0dFTkVSSUMs ICAgICAgICAgICAgICBoaWZfZ2VuZXJpY19pbmRpY2F0aW9uIH0sDQogCXsgSElGX0lORF9JRF9F UlJPUiwgICAgICAgICAgICAgICAgaGlmX2Vycm9yX2luZGljYXRpb24gfSwNCmRpZmYgLS1naXQg YS9kcml2ZXJzL3N0YWdpbmcvd2Z4L21haW4uYyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5j DQppbmRleCBjY2U0ZTMwZGQ5NGEuLjA2MjIwYmFjNWI3NSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv c3RhZ2luZy93ZngvbWFpbi5jDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L21haW4uYw0KQEAg LTU1LDYgKzU1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIHdmeF9vcHMg PSB7DQogCS5hZGRfaW50ZXJmYWNlCQk9IHdmeF9hZGRfaW50ZXJmYWNlLA0KIAkucmVtb3ZlX2lu dGVyZmFjZQk9IHdmeF9yZW1vdmVfaW50ZXJmYWNlLA0KIAkudHgJCQk9IHdmeF90eCwNCisJLmh3 X3NjYW4JCT0gd2Z4X2h3X3NjYW4sDQogfTsNCiANCiBib29sIHdmeF9hcGlfb2xkZXJfdGhhbihz dHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IG1ham9yLCBpbnQgbWlub3IpDQpAQCAtMjAzLDYgKzIw NCw4IEBAIHN0cnVjdCB3ZnhfZGV2ICp3ZnhfaW5pdF9jb21tb24oc3RydWN0IGRldmljZSAqZGV2 LA0KIAlody0+ZXh0cmFfdHhfaGVhZHJvb20gPSBzaXplb2Yoc3RydWN0IGhpZl9zbF9tc2dfaGRy KSArIHNpemVvZihzdHJ1Y3QgaGlmX21zZykNCiAJCQkJKyBzaXplb2Yoc3RydWN0IGhpZl9yZXFf dHgpDQogCQkJCSsgNCAvKiBhbGlnbm1lbnQgKi8gKyA4IC8qIFRLSVAgSVYgKi87DQorCWh3LT53 aXBoeS0+bWF4X3NjYW5fc3NpZHMgPSAyOw0KKwlody0+d2lwaHktPm1heF9zY2FuX2llX2xlbiA9 IElFRUU4MDIxMV9NQVhfREFUQV9MRU47DQogDQogCXdkZXYgPSBody0+cHJpdjsNCiAJd2Rldi0+ aHcgPSBodzsNCkBAIC0yMTQsNiArMjE3LDcgQEAgc3RydWN0IHdmeF9kZXYgKndmeF9pbml0X2Nv bW1vbihzdHJ1Y3QgZGV2aWNlICpkZXYsDQogCXdkZXYtPnBkYXRhLmdwaW9fd2FrZXVwID0gd2Z4 X2dldF9ncGlvKGRldiwgZ3Bpb193YWtldXAsICJ3YWtldXAiKTsNCiAJd2Z4X2ZpbGxfc2xfa2V5 KGRldiwgJndkZXYtPnBkYXRhKTsNCiANCisJbXV0ZXhfaW5pdCgmd2Rldi0+Y29uZl9tdXRleCk7 DQogCW11dGV4X2luaXQoJndkZXYtPnJ4X3N0YXRzX2xvY2spOw0KIAlpbml0X2NvbXBsZXRpb24o JndkZXYtPmZpcm13YXJlX3JlYWR5KTsNCiAJd2Z4X2luaXRfaGlmX2NtZCgmd2Rldi0+aGlmX2Nt ZCk7DQpAQCAtMjI1LDYgKzIyOSw3IEBAIHN0cnVjdCB3ZnhfZGV2ICp3ZnhfaW5pdF9jb21tb24o c3RydWN0IGRldmljZSAqZGV2LA0KIHZvaWQgd2Z4X2ZyZWVfY29tbW9uKHN0cnVjdCB3ZnhfZGV2 ICp3ZGV2KQ0KIHsNCiAJbXV0ZXhfZGVzdHJveSgmd2Rldi0+cnhfc3RhdHNfbG9jayk7DQorCW11 dGV4X2Rlc3Ryb3koJndkZXYtPmNvbmZfbXV0ZXgpOw0KIAl3ZnhfdHhfcXVldWVzX2RlaW5pdCh3 ZGV2KTsNCiAJaWVlZTgwMjExX2ZyZWVfaHcod2Rldi0+aHcpOw0KIH0NCmRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvd2Z4L3NjYW4uYyBiL2RyaXZlcnMvc3RhZ2luZy93Zngvc2Nhbi5jDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi44OWFmMjk0Y2YyM2QNCi0t LSAvZGV2L251bGwNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93Zngvc2Nhbi5jDQpAQCAtMCwwICsx LDI1OCBAQA0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkNCisvKg0K KyAqIFNjYW4gcmVsYXRlZCBmdW5jdGlvbnMuDQorICoNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTct MjAxOSwgU2lsaWNvbiBMYWJvcmF0b3JpZXMsIEluYy4NCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAs IFNULUVyaWNzc29uDQorICovDQorI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4NCisjaW5jbHVk ZSA8bmV0L21hYzgwMjExLmg+DQorDQorI2luY2x1ZGUgInNjYW4uaCINCisjaW5jbHVkZSAid2Z4 LmgiDQorI2luY2x1ZGUgInN0YS5oIg0KKyNpbmNsdWRlICJoaWZfdHhfbWliLmgiDQorDQorc3Rh dGljIHZvaWQgX19pZWVlODAyMTFfc2Nhbl9jb21wbGV0ZWRfY29tcGF0KHN0cnVjdCBpZWVlODAy MTFfaHcgKmh3LCBib29sIGFib3J0ZWQpDQorew0KKyNpZiAoS0VSTkVMX1ZFUlNJT04oNCwgOCwg MCkgPiBMSU5VWF9WRVJTSU9OX0NPREUpDQorCWllZWU4MDIxMV9zY2FuX2NvbXBsZXRlZChodywg YWJvcnRlZCk7DQorI2Vsc2UNCisJc3RydWN0IGNmZzgwMjExX3NjYW5faW5mbyBpbmZvID0gew0K KwkJLmFib3J0ZWQgPSBhYm9ydGVkID8gMSA6IDAsDQorCX07DQorDQorCWllZWU4MDIxMV9zY2Fu X2NvbXBsZXRlZChodywgJmluZm8pOw0KKyNlbmRpZg0KK30NCisNCitzdGF0aWMgaW50IHdmeF9z Y2FuX3N0YXJ0KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3Qgd2Z4X3NjYW5fcGFyYW1zICpz Y2FuKQ0KK3sNCisJaW50IHJldDsNCisJaW50IHRtbyA9IDUwMDsNCisNCisJdG1vICs9IHNjYW4t PnNjYW5fcmVxLm51bV9vZl9jaGFubmVscyAqDQorCSAgICAgICAoKDIwICogKHNjYW4tPnNjYW5f cmVxLm1heF9jaGFubmVsX3RpbWUpKSArIDEwKTsNCisJYXRvbWljX3NldCgmd3ZpZi0+c2Nhbi5p bl9wcm9ncmVzcywgMSk7DQorCWF0b21pY19zZXQoJnd2aWYtPndkZXYtPnNjYW5faW5fcHJvZ3Jl c3MsIDEpOw0KKw0KKwlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnd2aWYtPnNjYW4udGltZW91dCwg bXNlY3NfdG9famlmZmllcyh0bW8pKTsNCisJcmV0ID0gaGlmX3NjYW4od3ZpZiwgc2Nhbik7DQor CWlmIChyZXQpIHsNCisJCXdmeF9zY2FuX2ZhaWxlZF9jYih3dmlmKTsNCisJCWF0b21pY19zZXQo Jnd2aWYtPnNjYW4uaW5fcHJvZ3Jlc3MsIDApOw0KKwkJYXRvbWljX3NldCgmd3ZpZi0+d2Rldi0+ c2Nhbl9pbl9wcm9ncmVzcywgMCk7DQorCQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJnd2aWYt PnNjYW4udGltZW91dCk7DQorCX0NCisJcmV0dXJuIHJldDsNCit9DQorDQoraW50IHdmeF9od19z Y2FuKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KKwkJICAgc3RydWN0IGllZWU4MDIxMV92aWYg KnZpZiwNCisJCSAgIHN0cnVjdCBpZWVlODAyMTFfc2Nhbl9yZXF1ZXN0ICpod19yZXEpDQorew0K KwlzdHJ1Y3Qgd2Z4X2RldiAqd2RldiA9IGh3LT5wcml2Ow0KKwlzdHJ1Y3Qgd2Z4X3ZpZiAqd3Zp ZiA9IChzdHJ1Y3Qgd2Z4X3ZpZiAqKSB2aWYtPmRydl9wcml2Ow0KKwlzdHJ1Y3QgY2ZnODAyMTFf c2Nhbl9yZXF1ZXN0ICpyZXEgPSAmaHdfcmVxLT5yZXE7DQorCXN0cnVjdCBza19idWZmICpza2I7 DQorCWludCBpLCByZXQ7DQorCXN0cnVjdCBoaWZfbWliX3RlbXBsYXRlX2ZyYW1lICpwOw0KKw0K KwlpZiAoIXd2aWYpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJaWYgKHJlcS0+bl9zc2lkcyA9 PSAxICYmICFyZXEtPnNzaWRzWzBdLnNzaWRfbGVuKQ0KKwkJcmVxLT5uX3NzaWRzID0gMDsNCisN CisJaWYgKHJlcS0+bl9zc2lkcyA+IEhJRl9BUElfTUFYX05CX1NTSURTKQ0KKwkJcmV0dXJuIC1F SU5WQUw7DQorDQorI2lmIChLRVJORUxfVkVSU0lPTigzLCAxOSwgMCkgPiBMSU5VWF9WRVJTSU9O X0NPREUpDQorCXNrYiA9IGllZWU4MDIxMV9wcm9iZXJlcV9nZXQoaHcsIHd2aWYtPnZpZiwgTlVM TCwgMCwgcmVxLT5pZV9sZW4pOw0KKyNlbHNlDQorCXNrYiA9IGllZWU4MDIxMV9wcm9iZXJlcV9n ZXQoaHcsIHd2aWYtPnZpZi0+YWRkciwgTlVMTCwgMCwgcmVxLT5pZV9sZW4pOw0KKyNlbmRpZg0K KwlpZiAoIXNrYikNCisJCXJldHVybiAtRU5PTUVNOw0KKw0KKwlpZiAocmVxLT5pZV9sZW4pDQor CQltZW1jcHkoc2tiX3B1dChza2IsIHJlcS0+aWVfbGVuKSwgcmVxLT5pZSwgcmVxLT5pZV9sZW4p Ow0KKw0KKwltdXRleF9sb2NrKCZ3ZGV2LT5jb25mX211dGV4KTsNCisNCisJcCA9IChzdHJ1Y3Qg aGlmX21pYl90ZW1wbGF0ZV9mcmFtZSAqKXNrYl9wdXNoKHNrYiwgNCk7DQorCXAtPmZyYW1lX3R5 cGUgPSBISUZfVE1QTFRfUFJCUkVROw0KKwlwLT5mcmFtZV9sZW5ndGggPSBjcHVfdG9fbGUxNihz a2ItPmxlbiAtIDQpOw0KKwlyZXQgPSBoaWZfc2V0X3RlbXBsYXRlX2ZyYW1lKHd2aWYsIHApOw0K Kwlza2JfcHVsbChza2IsIDQpOw0KKw0KKwlpZiAoIXJldCkNCisJCS8qIEhvc3Qgd2FudCB0byBi ZSB0aGUgcHJvYmUgcmVzcG9uZGVyLiAqLw0KKwkJcmV0ID0gd2Z4X2Z3ZF9wcm9iZV9yZXEod3Zp ZiwgdHJ1ZSk7DQorCWlmIChyZXQpIHsNCisJCW11dGV4X3VubG9jaygmd2Rldi0+Y29uZl9tdXRl eCk7DQorCQlkZXZfa2ZyZWVfc2tiKHNrYik7DQorCQlyZXR1cm4gcmV0Ow0KKwl9DQorDQorCXdm eF90eF9sb2NrX2ZsdXNoKHdkZXYpOw0KKw0KKwlCVUdfT04od3ZpZi0+c2Nhbi5yZXEpOw0KKwl3 dmlmLT5zY2FuLnJlcSA9IHJlcTsNCisJd3ZpZi0+c2Nhbi5uX3NzaWRzID0gMDsNCisJd3ZpZi0+ c2Nhbi5zdGF0dXMgPSAwOw0KKwl3dmlmLT5zY2FuLmJlZ2luID0gJnJlcS0+Y2hhbm5lbHNbMF07 DQorCXd2aWYtPnNjYW4uY3VyciA9IHd2aWYtPnNjYW4uYmVnaW47DQorCXd2aWYtPnNjYW4uZW5k ID0gJnJlcS0+Y2hhbm5lbHNbcmVxLT5uX2NoYW5uZWxzXTsNCisJd3ZpZi0+c2Nhbi5vdXRwdXRf cG93ZXIgPSB3ZGV2LT5vdXRwdXRfcG93ZXI7DQorDQorCWZvciAoaSA9IDA7IGkgPCByZXEtPm5f c3NpZHM7ICsraSkgew0KKwkJc3RydWN0IGhpZl9zc2lkX2RlZiAqZHN0ID0gJnd2aWYtPnNjYW4u c3NpZHNbd3ZpZi0+c2Nhbi5uX3NzaWRzXTsNCisNCisJCW1lbWNweSgmZHN0LT5zc2lkWzBdLCBy ZXEtPnNzaWRzW2ldLnNzaWQsIHNpemVvZihkc3QtPnNzaWQpKTsNCisJCWRzdC0+c3NpZF9sZW5n dGggPSByZXEtPnNzaWRzW2ldLnNzaWRfbGVuOw0KKwkJKyt3dmlmLT5zY2FuLm5fc3NpZHM7DQor CX0NCisNCisJbXV0ZXhfdW5sb2NrKCZ3ZGV2LT5jb25mX211dGV4KTsNCisNCisJaWYgKHNrYikN CisJCWRldl9rZnJlZV9za2Ioc2tiKTsNCisJc2NoZWR1bGVfd29yaygmd3ZpZi0+c2Nhbi53b3Jr KTsNCisJcmV0dXJuIDA7DQorfQ0KKw0KK3ZvaWQgd2Z4X3NjYW5fd29yayhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspDQorew0KKwlzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiA9IGNvbnRhaW5lcl9vZih3 b3JrLCBzdHJ1Y3Qgd2Z4X3ZpZiwgc2Nhbi53b3JrKTsNCisJc3RydWN0IGllZWU4MDIxMV9jaGFu bmVsICoqaXQ7DQorCXN0cnVjdCB3Znhfc2Nhbl9wYXJhbXMgc2NhbiA9IHsNCisJCS5zY2FuX3Jl cS5zY2FuX3R5cGUudHlwZSA9IDAsICAgIC8qIEZvcmVncm91bmQgKi8NCisJfTsNCisJc3RydWN0 IGllZWU4MDIxMV9jaGFubmVsICpmaXJzdDsNCisJaW50IGk7DQorDQorCWRvd24oJnd2aWYtPnNj YW4ubG9jayk7DQorCW11dGV4X2xvY2soJnd2aWYtPndkZXYtPmNvbmZfbXV0ZXgpOw0KKw0KKwlp ZiAoIXd2aWYtPnNjYW4ucmVxIHx8IHd2aWYtPnNjYW4uY3VyciA9PSB3dmlmLT5zY2FuLmVuZCkg ew0KKwkJaWYgKHd2aWYtPnNjYW4ub3V0cHV0X3Bvd2VyICE9IHd2aWYtPndkZXYtPm91dHB1dF9w b3dlcikNCisJCQloaWZfc2V0X291dHB1dF9wb3dlcih3dmlmLCB3dmlmLT53ZGV2LT5vdXRwdXRf cG93ZXIgKiAxMCk7DQorDQorCQlpZiAod3ZpZi0+c2Nhbi5zdGF0dXMgPCAwKQ0KKwkJCWRldl93 YXJuKHd2aWYtPndkZXYtPmRldiwgInNjYW4gZmFpbGVkXG4iKTsNCisJCWVsc2UgaWYgKHd2aWYt PnNjYW4ucmVxKQ0KKwkJCWRldl9kYmcod3ZpZi0+d2Rldi0+ZGV2LCAic2NhbiBjb21wbGV0ZWRc biIpOw0KKwkJZWxzZQ0KKwkJCWRldl9kYmcod3ZpZi0+d2Rldi0+ZGV2LCAic2NhbiBjYW5jZWxl ZFxuIik7DQorDQorCQl3dmlmLT5zY2FuLnJlcSA9IE5VTEw7DQorCQl3ZnhfdHhfdW5sb2NrKHd2 aWYtPndkZXYpOw0KKwkJbXV0ZXhfdW5sb2NrKCZ3dmlmLT53ZGV2LT5jb25mX211dGV4KTsNCisJ CV9faWVlZTgwMjExX3NjYW5fY29tcGxldGVkX2NvbXBhdCh3dmlmLT53ZGV2LT5odywgd3ZpZi0+ c2Nhbi5zdGF0dXMgPyAxIDogMCk7DQorCQl1cCgmd3ZpZi0+c2Nhbi5sb2NrKTsNCisJCXJldHVy bjsNCisJfQ0KKwlmaXJzdCA9ICp3dmlmLT5zY2FuLmN1cnI7DQorDQorCWZvciAoaXQgPSB3dmlm LT5zY2FuLmN1cnIgKyAxLCBpID0gMTsNCisJICAgICBpdCAhPSB3dmlmLT5zY2FuLmVuZCAmJiBp IDwgSElGX0FQSV9NQVhfTkJfQ0hBTk5FTFM7DQorCSAgICAgKytpdCwgKytpKSB7DQorCQlpZiAo KCppdCktPmJhbmQgIT0gZmlyc3QtPmJhbmQpDQorCQkJYnJlYWs7DQorCQlpZiAoKCgqaXQpLT5m bGFncyBeIGZpcnN0LT5mbGFncykgJg0KKwkJCQlJRUVFODAyMTFfQ0hBTl9OT19JUikNCisJCQli cmVhazsNCisJCWlmICghKGZpcnN0LT5mbGFncyAmIElFRUU4MDIxMV9DSEFOX05PX0lSKSAmJg0K KwkJICAgICgqaXQpLT5tYXhfcG93ZXIgIT0gZmlyc3QtPm1heF9wb3dlcikNCisJCQlicmVhazsN CisJfQ0KKwlzY2FuLnNjYW5fcmVxLmJhbmQgPSBmaXJzdC0+YmFuZDsNCisNCisJaWYgKHd2aWYt PnNjYW4ucmVxLT5ub19jY2spDQorCQlzY2FuLnNjYW5fcmVxLm1heF90cmFuc21pdF9yYXRlID0g QVBJX1JBVEVfSU5ERVhfR182TUJQUzsNCisJZWxzZQ0KKwkJc2Nhbi5zY2FuX3JlcS5tYXhfdHJh bnNtaXRfcmF0ZSA9IEFQSV9SQVRFX0lOREVYX0JfMU1CUFM7DQorCXNjYW4uc2Nhbl9yZXEubnVt X29mX3Byb2JlX3JlcXVlc3RzID0NCisJCShmaXJzdC0+ZmxhZ3MgJiBJRUVFODAyMTFfQ0hBTl9O T19JUikgPyAwIDogMjsNCisJc2Nhbi5zY2FuX3JlcS5udW1fb2Zfc3NpX2RzID0gd3ZpZi0+c2Nh bi5uX3NzaWRzOw0KKwlzY2FuLnNzaWRzID0gJnd2aWYtPnNjYW4uc3NpZHNbMF07DQorCXNjYW4u c2Nhbl9yZXEubnVtX29mX2NoYW5uZWxzID0gaXQgLSB3dmlmLT5zY2FuLmN1cnI7DQorCXNjYW4u c2Nhbl9yZXEucHJvYmVfZGVsYXkgPSAxMDA7DQorDQorCXNjYW4uY2ggPSBrY2FsbG9jKHNjYW4u c2Nhbl9yZXEubnVtX29mX2NoYW5uZWxzLCBzaXplb2YodTgpLCBHRlBfS0VSTkVMKTsNCisNCisJ aWYgKCFzY2FuLmNoKSB7DQorCQl3dmlmLT5zY2FuLnN0YXR1cyA9IC1FTk9NRU07DQorCQlnb3Rv IGZhaWw7DQorCX0NCisJZm9yIChpID0gMDsgaSA8IHNjYW4uc2Nhbl9yZXEubnVtX29mX2NoYW5u ZWxzOyArK2kpDQorCQlzY2FuLmNoW2ldID0gd3ZpZi0+c2Nhbi5jdXJyW2ldLT5od192YWx1ZTsN CisNCisJaWYgKHd2aWYtPnNjYW4uY3VyclswXS0+ZmxhZ3MgJiBJRUVFODAyMTFfQ0hBTl9OT19J Uikgew0KKwkJc2Nhbi5zY2FuX3JlcS5taW5fY2hhbm5lbF90aW1lID0gNTA7DQorCQlzY2FuLnNj YW5fcmVxLm1heF9jaGFubmVsX3RpbWUgPSAxNTA7DQorCX0gZWxzZSB7DQorCQlzY2FuLnNjYW5f cmVxLm1pbl9jaGFubmVsX3RpbWUgPSAxMDsNCisJCXNjYW4uc2Nhbl9yZXEubWF4X2NoYW5uZWxf dGltZSA9IDUwOw0KKwl9DQorCWlmICghKGZpcnN0LT5mbGFncyAmIElFRUU4MDIxMV9DSEFOX05P X0lSKSAmJg0KKwkgICAgd3ZpZi0+c2Nhbi5vdXRwdXRfcG93ZXIgIT0gZmlyc3QtPm1heF9wb3dl cikgew0KKwkJd3ZpZi0+c2Nhbi5vdXRwdXRfcG93ZXIgPSBmaXJzdC0+bWF4X3Bvd2VyOw0KKwkJ aGlmX3NldF9vdXRwdXRfcG93ZXIod3ZpZiwgd3ZpZi0+c2Nhbi5vdXRwdXRfcG93ZXIgKiAxMCk7 DQorCX0NCisJd3ZpZi0+c2Nhbi5zdGF0dXMgPSB3Znhfc2Nhbl9zdGFydCh3dmlmLCAmc2Nhbik7 DQorCWtmcmVlKHNjYW4uY2gpOw0KKwlpZiAod3ZpZi0+c2Nhbi5zdGF0dXMpDQorCQlnb3RvIGZh aWw7DQorCXd2aWYtPnNjYW4uY3VyciA9IGl0Ow0KKwltdXRleF91bmxvY2soJnd2aWYtPndkZXYt PmNvbmZfbXV0ZXgpOw0KKwlyZXR1cm47DQorDQorZmFpbDoNCisJd3ZpZi0+c2Nhbi5jdXJyID0g d3ZpZi0+c2Nhbi5lbmQ7DQorCW11dGV4X3VubG9jaygmd3ZpZi0+d2Rldi0+Y29uZl9tdXRleCk7 DQorCXVwKCZ3dmlmLT5zY2FuLmxvY2spOw0KKwlzY2hlZHVsZV93b3JrKCZ3dmlmLT5zY2FuLndv cmspOw0KK30NCisNCitzdGF0aWMgdm9pZCB3Znhfc2Nhbl9jb21wbGV0ZShzdHJ1Y3Qgd2Z4X3Zp ZiAqd3ZpZikNCit7DQorCXVwKCZ3dmlmLT5zY2FuLmxvY2spOw0KKwlhdG9taWNfc2V0KCZ3dmlm LT53ZGV2LT5zY2FuX2luX3Byb2dyZXNzLCAwKTsNCisNCisJd2Z4X3NjYW5fd29yaygmd3ZpZi0+ c2Nhbi53b3JrKTsNCit9DQorDQordm9pZCB3Znhfc2Nhbl9mYWlsZWRfY2Ioc3RydWN0IHdmeF92 aWYgKnd2aWYpDQorew0KKwlpZiAoY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZ3dmlmLT5zY2Fu LnRpbWVvdXQpID4gMCkgew0KKwkJd3ZpZi0+c2Nhbi5zdGF0dXMgPSAtRUlPOw0KKwkJc2NoZWR1 bGVfd29yaygmd3ZpZi0+c2Nhbi50aW1lb3V0LndvcmspOw0KKwl9DQorfQ0KKw0KK3ZvaWQgd2Z4 X3NjYW5fY29tcGxldGVfY2Ioc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBoaWZfaW5kX3Nj YW5fY21wbCAqYXJnKQ0KK3sNCisJaWYgKGNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmd3ZpZi0+ c2Nhbi50aW1lb3V0KSA+IDApIHsNCisJCXd2aWYtPnNjYW4uc3RhdHVzID0gMTsNCisJCXNjaGVk dWxlX3dvcmsoJnd2aWYtPnNjYW4udGltZW91dC53b3JrKTsNCisJfQ0KK30NCisNCit2b2lkIHdm eF9zY2FuX3RpbWVvdXQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KK3sNCisJc3RydWN0IHdm eF92aWYgKnd2aWYgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHdmeF92aWYsIHNjYW4udGlt ZW91dC53b3JrKTsNCisNCisJaWYgKGF0b21pY194Y2hnKCZ3dmlmLT5zY2FuLmluX3Byb2dyZXNz LCAwKSkgew0KKwkJaWYgKHd2aWYtPnNjYW4uc3RhdHVzID4gMCkgew0KKwkJCXd2aWYtPnNjYW4u c3RhdHVzID0gMDsNCisJCX0gZWxzZSBpZiAoIXd2aWYtPnNjYW4uc3RhdHVzKSB7DQorCQkJZGV2 X3dhcm4od3ZpZi0+d2Rldi0+ZGV2LCAidGltZW91dCB3YWl0aW5nIGZvciBzY2FuIGNvbXBsZXRl IG5vdGlmaWNhdGlvblxuIik7DQorCQkJd3ZpZi0+c2Nhbi5zdGF0dXMgPSAtRVRJTUVET1VUOw0K KwkJCXd2aWYtPnNjYW4uY3VyciA9IHd2aWYtPnNjYW4uZW5kOw0KKwkJCWhpZl9zdG9wX3NjYW4o d3ZpZik7DQorCQl9DQorCQl3Znhfc2Nhbl9jb21wbGV0ZSh3dmlmKTsNCisJfQ0KK30NCmRpZmYg LS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3NjYW4uaCBiL2RyaXZlcnMvc3RhZ2luZy93Zngv c2Nhbi5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi5iNGRkZDA3 NzFhOWINCi0tLSAvZGV2L251bGwNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93Zngvc2Nhbi5oDQpA QCAtMCwwICsxLDQyIEBADQorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25s eSAqLw0KKy8qDQorICogU2NhbiByZWxhdGVkIGZ1bmN0aW9ucy4NCisgKg0KKyAqIENvcHlyaWdo dCAoYykgMjAxNy0yMDE5LCBTaWxpY29uIExhYm9yYXRvcmllcywgSW5jLg0KKyAqIENvcHlyaWdo dCAoYykgMjAxMCwgU1QtRXJpY3Nzb24NCisgKi8NCisjaWZuZGVmIFdGWF9TQ0FOX0gNCisjZGVm aW5lIFdGWF9TQ0FOX0gNCisNCisjaW5jbHVkZSA8bGludXgvc2VtYXBob3JlLmg+DQorI2luY2x1 ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPg0KKyNpbmNsdWRlIDxuZXQvbWFjODAyMTEuaD4NCisNCisj aW5jbHVkZSAiaGlmX2FwaV9jbWQuaCINCisNCitzdHJ1Y3Qgd2Z4X2RldjsNCitzdHJ1Y3Qgd2Z4 X3ZpZjsNCisNCitzdHJ1Y3Qgd2Z4X3NjYW4gew0KKwlzdHJ1Y3Qgc2VtYXBob3JlIGxvY2s7DQor CXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOw0KKwlzdHJ1Y3QgZGVsYXllZF93b3JrIHRpbWVvdXQ7 DQorCXN0cnVjdCBjZmc4MDIxMV9zY2FuX3JlcXVlc3QgKnJlcTsNCisJc3RydWN0IGllZWU4MDIx MV9jaGFubmVsICoqYmVnaW47DQorCXN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqKmN1cnI7DQor CXN0cnVjdCBpZWVlODAyMTFfY2hhbm5lbCAqKmVuZDsNCisJc3RydWN0IGhpZl9zc2lkX2RlZiBz c2lkc1tISUZfQVBJX01BWF9OQl9TU0lEU107DQorCWludCBvdXRwdXRfcG93ZXI7DQorCWludCBu X3NzaWRzOw0KKwlpbnQgc3RhdHVzOw0KKwlhdG9taWNfdCBpbl9wcm9ncmVzczsNCit9Ow0KKw0K K2ludCB3ZnhfaHdfc2NhbihzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIx MV92aWYgKnZpZiwNCisJCXN0cnVjdCBpZWVlODAyMTFfc2Nhbl9yZXF1ZXN0ICpyZXEpOw0KK3Zv aWQgd2Z4X3NjYW5fd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOw0KK3ZvaWQgd2Z4X3Nj YW5fdGltZW91dChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOw0KK3ZvaWQgd2Z4X3NjYW5fY29t cGxldGVfY2Ioc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBoaWZfaW5kX3NjYW5fY21wbCAq YXJnKTsNCit2b2lkIHdmeF9zY2FuX2ZhaWxlZF9jYihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZik7DQor DQorI2VuZGlmIC8qIFdGWF9TQ0FOX0ggKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcv d2Z4L3N0YS5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuYw0KaW5kZXggMWI0NWJlNTMwMDcw Li5jOWEzNWE1MzA3ZGQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3N0YS5jDQor KysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3N0YS5jDQpAQCAtMTAsOSArMTAsMTggQEANCiANCiAj aW5jbHVkZSAic3RhLmgiDQogI2luY2x1ZGUgIndmeC5oIg0KKyNpbmNsdWRlICJzY2FuLmgiDQor I2luY2x1ZGUgImhpZl90eF9taWIuaCINCiANCiAjZGVmaW5lIFRYT1BfVU5JVCAzMg0KIA0KK2lu dCB3ZnhfZndkX3Byb2JlX3JlcShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgYm9vbCBlbmFibGUpDQor ew0KKwl3dmlmLT5md2RfcHJvYmVfcmVxID0gZW5hYmxlOw0KKwlyZXR1cm4gaGlmX3NldF9yeF9m aWx0ZXIod3ZpZiwgd3ZpZi0+ZmlsdGVyX2Jzc2lkLA0KKwkJCQkgd3ZpZi0+ZndkX3Byb2JlX3Jl cSk7DQorfQ0KKw0KIHN0YXRpYyBpbnQgd2Z4X3NldF90aW1faW1wbChzdHJ1Y3Qgd2Z4X3ZpZiAq d3ZpZiwgYm9vbCBhaWQwX2JpdF9zZXQpDQogew0KIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOw0KQEAg LTEzNCw2ICsxNDMsOCBAQCBpbnQgd2Z4X2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9o dyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpDQogCQlkZWZhdWx0X2VkY2FfcGFyYW1z W0lFRUU4MDIxMV9BQ19CS10ucXVldWVfaWQgPSBISUZfUVVFVUVfSURfQkVTVEVGRk9SVDsNCiAJ fQ0KIA0KKwltdXRleF9sb2NrKCZ3ZGV2LT5jb25mX211dGV4KTsNCisNCiAJZm9yIChpID0gMDsg aSA8IEFSUkFZX1NJWkUod2Rldi0+dmlmKTsgaSsrKSB7DQogCQlpZiAoIXdkZXYtPnZpZltpXSkg ew0KIAkJCXdkZXYtPnZpZltpXSA9IHZpZjsNCkBAIC0xNDEsOCArMTUyLDEwIEBAIGludCB3Znhf YWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92 aWYgKnZpZikNCiAJCQlicmVhazsNCiAJCX0NCiAJfQ0KLQlpZiAoaSA9PSBBUlJBWV9TSVpFKHdk ZXYtPnZpZikpDQorCWlmIChpID09IEFSUkFZX1NJWkUod2Rldi0+dmlmKSkgew0KKwkJbXV0ZXhf dW5sb2NrKCZ3ZGV2LT5jb25mX211dGV4KTsNCiAJCXJldHVybiAtRU9QTk9UU1VQUDsNCisJfQ0K IAl3dmlmLT52aWYgPSB2aWY7DQogCXd2aWYtPndkZXYgPSB3ZGV2Ow0KIA0KQEAgLTE1OCw2ICsx NzEsMTIgQEAgaW50IHdmeF9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBz dHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKQ0KICNlbHNlDQogCXRpbWVyX3NldHVwKCZ3dmlmLT5t Y2FzdF90aW1lb3V0LCB3ZnhfbWNhc3RfdGltZW91dCwgMCk7DQogI2VuZGlmDQorDQorCXNlbWFf aW5pdCgmd3ZpZi0+c2Nhbi5sb2NrLCAxKTsNCisJSU5JVF9XT1JLKCZ3dmlmLT5zY2FuLndvcmss IHdmeF9zY2FuX3dvcmspOw0KKwlJTklUX0RFTEFZRURfV09SSygmd3ZpZi0+c2Nhbi50aW1lb3V0 LCB3Znhfc2Nhbl90aW1lb3V0KTsNCisNCisJbXV0ZXhfdW5sb2NrKCZ3ZGV2LT5jb25mX211dGV4 KTsNCiAJQlVHX09OKEFSUkFZX1NJWkUoZGVmYXVsdF9lZGNhX3BhcmFtcykgIT0gQVJSQVlfU0la RSh3dmlmLT5lZGNhLnBhcmFtcykpOw0KIAlmb3IgKGkgPSAwOyBpIDwgSUVFRTgwMjExX05VTV9B Q1M7IGkrKykNCiAJCW1lbWNweSgmd3ZpZi0+ZWRjYS5wYXJhbXNbaV0sICZkZWZhdWx0X2VkY2Ff cGFyYW1zW2ldLCBzaXplb2YoZGVmYXVsdF9lZGNhX3BhcmFtc1tpXSkpOw0KQEAgLTE4NSw3ICsy MDQsOSBAQCB2b2lkIHdmeF9zdG9wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KQ0KIAlzdHJ1Y3Qg d2Z4X2RldiAqd2RldiA9IGh3LT5wcml2Ow0KIA0KIAl3ZnhfdHhfbG9ja19mbHVzaCh3ZGV2KTsN CisJbXV0ZXhfbG9jaygmd2Rldi0+Y29uZl9tdXRleCk7DQogCXdmeF90eF9xdWV1ZXNfY2xlYXIo d2Rldik7DQorCW11dGV4X3VubG9jaygmd2Rldi0+Y29uZl9tdXRleCk7DQogCXdmeF90eF91bmxv Y2sod2Rldik7DQogCVdBUk4oYXRvbWljX3JlYWQoJndkZXYtPnR4X2xvY2spLCAidHhfbG9jayBp cyBsb2NrZWQiKTsNCiB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuaCBi L2RyaXZlcnMvc3RhZ2luZy93Zngvc3RhLmgNCmluZGV4IGYzNmQ5NGY5MDdjNy4uZGQxYjZiM2Zj MmYxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuaA0KKysrIGIvZHJpdmVy cy9zdGFnaW5nL3dmeC9zdGEuaA0KQEAgLTEyLDYgKzEyLDggQEANCiANCiAjaW5jbHVkZSAiaGlm X2FwaV9jbWQuaCINCiANCitzdHJ1Y3Qgd2Z4X3ZpZjsNCisNCiBzdHJ1Y3Qgd2Z4X2VkY2FfcGFy YW1zIHsNCiAJLyogTk9URTogaW5kZXggaXMgYSBsaW51eCBxdWV1ZSBpZC4gKi8NCiAJc3RydWN0 IGhpZl9yZXFfZWRjYV9xdWV1ZV9wYXJhbXMgcGFyYW1zW0lFRUU4MDIxMV9OVU1fQUNTXTsNCkBA IC0yOSw0ICszMSw2IEBAIHZvaWQgd2Z4X3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpOw0K IGludCB3ZnhfYWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGll ZWU4MDIxMV92aWYgKnZpZik7DQogdm9pZCB3ZnhfcmVtb3ZlX2ludGVyZmFjZShzdHJ1Y3QgaWVl ZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZik7DQogDQoraW50IHdmeF9m d2RfcHJvYmVfcmVxKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIGVuYWJsZSk7DQorDQogI2Vu ZGlmIC8qIFdGWF9TVEFfSCAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93Zngvd2Z4 LmggYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3dmeC5oDQppbmRleCAzMjJlNDZlMzQzZDUuLmE2YjQz MGVlN2NkZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy93Zngvd2Z4LmgNCisrKyBiL2Ry aXZlcnMvc3RhZ2luZy93Zngvd2Z4LmgNCkBAIC0yMCw2ICsyMCw3IEBADQogI2luY2x1ZGUgInF1 ZXVlLmgiDQogI2luY2x1ZGUgInNlY3VyZV9saW5rLmgiDQogI2luY2x1ZGUgInN0YS5oIg0KKyNp bmNsdWRlICJzY2FuLmgiDQogI2luY2x1ZGUgImhpZl90eC5oIg0KICNpbmNsdWRlICJoaWZfYXBp X2dlbmVyYWwuaCINCiANCkBAIC02MCw2ICs2MSw3IEBAIHN0cnVjdCB3ZnhfZGV2IHsNCiAJc3Ry dWN0IHdmeF9oaWYJCWhpZjsNCiAJc3RydWN0IHNsX2NvbnRleHQJc2w7DQogCWludAkJCWNoaXBf ZnJvemVuOw0KKwlzdHJ1Y3QgbXV0ZXgJCWNvbmZfbXV0ZXg7DQogDQogCXN0cnVjdCB3ZnhfaGlm X2NtZAloaWZfY21kOw0KIAlzdHJ1Y3Qgd2Z4X3F1ZXVlCXR4X3F1ZXVlWzRdOw0KQEAgLTY5LDYg KzcxLDkgQEAgc3RydWN0IHdmeF9kZXYgew0KIA0KIAlzdHJ1Y3QgaGlmX3J4X3N0YXRzCXJ4X3N0 YXRzOw0KIAlzdHJ1Y3QgbXV0ZXgJCXJ4X3N0YXRzX2xvY2s7DQorDQorCWludAkJCW91dHB1dF9w b3dlcjsNCisJYXRvbWljX3QJCXNjYW5faW5fcHJvZ3Jlc3M7DQogfTsNCiANCiBzdHJ1Y3Qgd2Z4 X3ZpZiB7DQpAQCAtOTIsMTEgKzk3LDE3IEBAIHN0cnVjdCB3ZnhfdmlmIHsNCiANCiAJc3RydWN0 IHR4X3BvbGljeV9jYWNoZQl0eF9wb2xpY3lfY2FjaGU7DQogCXN0cnVjdCB3b3JrX3N0cnVjdAl0 eF9wb2xpY3lfdXBsb2FkX3dvcms7DQorDQogCXUzMgkJCXN0YV9hc2xlZXBfbWFzazsNCiAJdTMy CQkJcHNwb2xsX21hc2s7DQogCXNwaW5sb2NrX3QJCXBzX3N0YXRlX2xvY2s7DQogDQorCWJvb2wJ CQlmaWx0ZXJfYnNzaWQ7DQorCWJvb2wJCQlmd2RfcHJvYmVfcmVxOw0KKw0KIAlzdHJ1Y3Qgd2Z4 X2VkY2FfcGFyYW1zCWVkY2E7DQorDQorCXN0cnVjdCB3Znhfc2NhbgkJc2NhbjsNCiB9Ow0KIA0K IHN0YXRpYyBpbmxpbmUgc3RydWN0IHdmeF92aWYgKndkZXZfdG9fd3ZpZihzdHJ1Y3Qgd2Z4X2Rl diAqd2RldiwgaW50IHZpZl9pZCkNCi0tIA0KMi4yMC4xDQo=