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 051DAC49ED7 for ; Thu, 19 Sep 2019 13:53:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id B162621D6C for ; Thu, 19 Sep 2019 13:53:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.b="IfsNLz5h" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390592AbfISNxe (ORCPT ); Thu, 19 Sep 2019 09:53:34 -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 S2403855AbfISNwy (ORCPT ); Thu, 19 Sep 2019 09:52:54 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UnUXwM0keSxav1D8L1z8rmQjssjPk0RkRqrLbztJSd3YrpqYWSTVGS2IlysWd5mJws5g4Wkk0P70uMmF5kDlxlF04pZDfzKWHIThHE37aZGY0uy308YuHQdxtwkyTf8lBzEfueI31en2GV9lxD5Rdz8hJQskJBZWcJQHUrCD8wC59bUl/VOZKMszWl6a8BMsdw+NIYOOgoArqSZ9se105bK3Bb1qxruY1lGOTDZrrazUYgRoAO9okNkbKbZNOrpcbjB+qusHA66RlBUxF3CAZTDR8ZmFq2JJ89fj+vJctaysQigAxMiegKmc5712ygeFNxL/VrbozvYzWTM6WHywxg== 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=FuS2otXZYhv5vPjSXbr2OYHe4M5DwuNOKQpSQcbgvK4=; b=GXXQHeh9v821AB24o/mC5SZK5nuv7T1qiYnK5iWn67zKL03yteOoMBB1lp+WRcGv43EtcAMORHasC/q8LJY9whSwvPfDdMNX24lRhfpwTSrJY2z/I4c38xXa/yIoxinMmajnTU0HM9ZksH0r8lW3l2Z/PtzDfA/zPRLZsCxamkmNUNmusUeRKOnEBOxg+JJxFPbVgBZjnp2dnIn4MuSaFF/GILMka59OTavt4Ss+O5PWdNZIl2l5tMUUe6I8x3QUzYY/MqPWgEJrXr5DVW8s+ej8FcZL1wStBiHSNV5366UlgN1S9tV0scz1rrntC+h+kQfc/Cluhaw8j94ITOh1XA== 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=FuS2otXZYhv5vPjSXbr2OYHe4M5DwuNOKQpSQcbgvK4=; b=IfsNLz5hs8Dz2irWTxB/JUfKRUmwdgOzT6ciySKlY98uAcC/VpEJy0CX7v/ILnDZgm+3NZ317B+BTYJwqA9e+jnOds/xe+Iw4kdDXTxxVtP2cHt2QAfhZbxXQAp/GARSZWIAbEJ0iYxO0dVB04ahE/Ed6Fcs2rcZZG+vHYQFVE4= 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:41 +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:41 +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 17/20] staging: wfx: allow to receive 802.11 frames Thread-Topic: [PATCH v2 17/20] staging: wfx: allow to receive 802.11 frames Thread-Index: AQHVbvGABbymuPOZiU6PKG1f05FAww== Date: Thu, 19 Sep 2019 13:52:39 +0000 Message-ID: <20190919135220.30663-18-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: b87ba7e0-77c6-4c6c-9eec-08d73d08a3c0 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:608; x-forefront-prvs: 016572D96D x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(1496009)(376002)(39850400004)(136003)(366004)(396003)(346002)(189003)(43544003)(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)(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: xHWBeaxZIKLAehSNWPt3OIo8oqglIXTKC5ZowfuIEilDlmFV49EYf3AC+6Jj/x6UeuEqsaS3AwRPwZ0eAn9TfI6Ki+0W8YjCqkSYdA+RzsdJkVzLCoYZelJQgTraaAxTPAI+SyD+Eyc4WVOyjEQHRGMHIJpE3td1MDQzMyn9KJAW8j1KJuQY9RdFtPoYlSNIvFQwjwcPJWLRE1P2qrtWDfxnxVSEuUntKC3AGj9HTcJOPYfeAO4ymf12638AaINo2ccNaTCB0/MfWGbQmrev5XBLX2SQNo+waHQRO5fHMsySuxfEAupQcdVGo5OKGAk+qIaSbdYA/ItNbAMOusX9ld5DPBlDKj8W5WFSNEwvnl3Ok73SfkaJFKZIq2sNK28FiNYn9mxZ1QtJLtch9CcH0cdszoqoev56jAz+lZbjRxI= 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: b87ba7e0-77c6-4c6c-9eec-08d73d08a3c0 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Sep 2019 13:52:39.9904 (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: T/WbvipT0rC837PGxute3bYOBpihueklbikZ25NdbtR/457sgLGggS5gsBfLnLsSr1lzGK7zzPs0KlCjZdeJmw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4400 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPg0KDQpB Z2FpbiwgdGhpcyB0YXNrIGlzIG1vcmUgY29tcGxleCB0aGFuIGl0IHNob3VsZCBzaW5jZSBkcml2 ZXIgdHJ5IHRvDQpoYW5kbGUgaXRzZWxmIHBvd2VyIHNhdmluZyBvZiBzdGF0aW9ucy4NCg0KU2ln bmVkLW9mZi1ieTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29t Pg0KLS0tDQogZHJpdmVycy9zdGFnaW5nL3dmeC9NYWtlZmlsZSAgfCAgIDEgKw0KIGRyaXZlcnMv c3RhZ2luZy93ZngvZGF0YV9yeC5jIHwgMTgyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysNCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguaCB8ICAxOCArKysrDQogZHJpdmVy cy9zdGFnaW5nL3dmeC9oaWZfcnguYyAgfCAgMjMgKysrKysNCiA0IGZpbGVzIGNoYW5nZWQsIDIy NCBpbnNlcnRpb25zKCspDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvc3RhZ2luZy93Zngv ZGF0YV9yeC5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV9y eC5oDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L01ha2VmaWxlIGIvZHJpdmVy cy9zdGFnaW5nL3dmeC9NYWtlZmlsZQ0KaW5kZXggZDVhYzlmYWZkMWYxLi5kOWUyMTUxNWQwOGUg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L01ha2VmaWxlDQorKysgYi9kcml2ZXJz L3N0YWdpbmcvd2Z4L01ha2VmaWxlDQpAQCAtMTEsNiArMTEsNyBAQCB3ZngteSA6PSBcDQogCWhp Zl9yeC5vIFwNCiAJcXVldWUubyBcDQogCWRhdGFfdHgubyBcDQorCWRhdGFfcngubyBcDQogCXN0 YS5vIFwNCiAJbWFpbi5vIFwNCiAJc3RhLm8gXA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2lu Zy93ZngvZGF0YV9yeC5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRhX3J4LmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLjNiMzExN2IyZWRhYw0KLS0tIC9kZXYv bnVsbA0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRhX3J4LmMNCkBAIC0wLDAgKzEsMTgy IEBADQorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQ0KKy8qDQorICog RGF0YXBhdGggaW1wbGVtZW50YXRpb24uDQorICoNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTctMjAx OSwgU2lsaWNvbiBMYWJvcmF0b3JpZXMsIEluYy4NCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIFNU LUVyaWNzc29uDQorICovDQorI2luY2x1ZGUgPGxpbnV4L2V0aGVyZGV2aWNlLmg+DQorI2luY2x1 ZGUgPG5ldC9tYWM4MDIxMS5oPg0KKw0KKyNpbmNsdWRlICJkYXRhX3J4LmgiDQorI2luY2x1ZGUg IndmeC5oIg0KKyNpbmNsdWRlICJiaC5oIg0KKyNpbmNsdWRlICJzdGEuaCINCisNCitzdGF0aWMg aW50IHdmeF9oYW5kbGVfcHNwb2xsKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQ0KK3sNCisJc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YTsNCisJc3RydWN0IGllZWU4 MDIxMV9wc3BvbGwgKnBzcG9sbCA9IChzdHJ1Y3QgaWVlZTgwMjExX3BzcG9sbCAqKXNrYi0+ZGF0 YTsNCisJaW50IGxpbmtfaWQgPSAwOw0KKwl1MzIgcHNwb2xsX21hc2sgPSAwOw0KKwlpbnQgaTsN CisNCisJaWYgKCFldGhlcl9hZGRyX2VxdWFsKHd2aWYtPnZpZi0+YWRkciwgcHNwb2xsLT5ic3Np ZCkpDQorCQlyZXR1cm4gMTsNCisNCisJcmN1X3JlYWRfbG9jaygpOw0KKwlzdGEgPSBpZWVlODAy MTFfZmluZF9zdGEod3ZpZi0+dmlmLCBwc3BvbGwtPnRhKTsNCisJaWYgKHN0YSkNCisJCWxpbmtf aWQgPSAoKHN0cnVjdCB3Znhfc3RhX3ByaXYgKikgJnN0YS0+ZHJ2X3ByaXYpLT5saW5rX2lkOw0K KwlyY3VfcmVhZF91bmxvY2soKTsNCisJaWYgKGxpbmtfaWQpDQorCQlwc3BvbGxfbWFzayA9IEJJ VChsaW5rX2lkKTsNCisJZWxzZQ0KKwkJcmV0dXJuIDE7DQorDQorCXd2aWYtPnBzcG9sbF9tYXNr IHw9IHBzcG9sbF9tYXNrOw0KKwkvKiBEbyBub3QgcmVwb3J0IHBzcG9scyBpZiBkYXRhIGZvciBn aXZlbiBsaW5rIGlkIGlzIHF1ZXVlZCBhbHJlYWR5LiAqLw0KKwlmb3IgKGkgPSAwOyBpIDwgSUVF RTgwMjExX05VTV9BQ1M7ICsraSkgew0KKwkJaWYgKHdmeF90eF9xdWV1ZV9nZXRfbnVtX3F1ZXVl ZCgmd3ZpZi0+d2Rldi0+dHhfcXVldWVbaV0sDQorCQkJCQkJcHNwb2xsX21hc2spKSB7DQorCQkJ d2Z4X2JoX3JlcXVlc3RfdHgod3ZpZi0+d2Rldik7DQorCQkJcmV0dXJuIDE7DQorCQl9DQorCX0N CisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgd2Z4X2Ryb3BfZW5jcnlwdF9kYXRhKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2LCBzdHJ1Y3QgaGlmX2luZF9yeCAqYXJnLCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQ0KK3sNCisJc3RydWN0IGllZWU4MDIxMV9oZHIgKmZyYW1lID0gKHN0cnVjdCBpZWVl ODAyMTFfaGRyICopIHNrYi0+ZGF0YTsNCisJc2l6ZV90IGhkcmxlbiA9IGllZWU4MDIxMV9oZHJs ZW4oZnJhbWUtPmZyYW1lX2NvbnRyb2wpOw0KKwlzaXplX3QgaXZfbGVuLCBpY3ZfbGVuOw0KKw0K KwkvKiBPb3BzLi4uIFRoZXJlIGlzIG5vIGZhc3Qgd2F5IHRvIGFzayBtYWM4MDIxMSBhYm91dA0K KwkgKiBJVi9JQ1YgbGVuZ3Rocy4gRXZlbiBkZWZpbmVhcyBhcmUgbm90IGV4cG9zZWQuDQorCSAq Lw0KKwlzd2l0Y2ggKGFyZy0+cnhfZmxhZ3MuZW5jcnlwKSB7DQorCWNhc2UgSElGX1JJX0ZMQUdT X1dFUF9FTkNSWVBURUQ6DQorCQlpdl9sZW4gPSA0IC8qIFdFUF9JVl9MRU4gKi87DQorCQlpY3Zf bGVuID0gNCAvKiBXRVBfSUNWX0xFTiAqLzsNCisJCWJyZWFrOw0KKwljYXNlIEhJRl9SSV9GTEFH U19US0lQX0VOQ1JZUFRFRDoNCisJCWl2X2xlbiA9IDggLyogVEtJUF9JVl9MRU4gKi87DQorCQlp Y3ZfbGVuID0gNCAvKiBUS0lQX0lDVl9MRU4gKi8NCisJCQkrIDggLypNSUNIQUVMX01JQ19MRU4q LzsNCisJCWJyZWFrOw0KKwljYXNlIEhJRl9SSV9GTEFHU19BRVNfRU5DUllQVEVEOg0KKwkJaXZf bGVuID0gOCAvKiBDQ01QX0hEUl9MRU4gKi87DQorCQlpY3ZfbGVuID0gOCAvKiBDQ01QX01JQ19M RU4gKi87DQorCQlicmVhazsNCisJY2FzZSBISUZfUklfRkxBR1NfV0FQSV9FTkNSWVBURUQ6DQor CQlpdl9sZW4gPSAxOCAvKiBXQVBJX0hEUl9MRU4gKi87DQorCQlpY3ZfbGVuID0gMTYgLyogV0FQ SV9NSUNfTEVOICovOw0KKwkJYnJlYWs7DQorCWRlZmF1bHQ6DQorCQlkZXZfZXJyKHdkZXYtPmRl diwgInVua25vd24gZW5jcnlwdGlvbiB0eXBlICVkXG4iLA0KKwkJCSBhcmctPnJ4X2ZsYWdzLmVu Y3J5cCk7DQorCQlyZXR1cm4gLUVJTzsNCisJfQ0KKw0KKwkvKiBGaXJtd2FyZSBzdHJpcHMgSUNW IGluIGNhc2Ugb2YgTUlDIGZhaWx1cmUuICovDQorCWlmIChhcmctPnN0YXR1cyA9PSBISUZfU1RB VFVTX01JQ0ZBSUxVUkUpDQorCQlpY3ZfbGVuID0gMDsNCisNCisJaWYgKHNrYi0+bGVuIDwgaGRy bGVuICsgaXZfbGVuICsgaWN2X2xlbikgew0KKwkJZGV2X3dhcm4od2Rldi0+ZGV2LCAibWFsZm9y bWVkIFNEVSByZWNlaXZlZFxuIik7DQorCQlyZXR1cm4gLUVJTzsNCisJfQ0KKw0KKwkvKiBSZW1v dmUgSVYsIElDViBhbmQgTUlDICovDQorCXNrYl90cmltKHNrYiwgc2tiLT5sZW4gLSBpY3ZfbGVu KTsNCisJbWVtbW92ZShza2ItPmRhdGEgKyBpdl9sZW4sIHNrYi0+ZGF0YSwgaGRybGVuKTsNCisJ c2tiX3B1bGwoc2tiLCBpdl9sZW4pOw0KKwlyZXR1cm4gMDsNCisNCit9DQorDQordm9pZCB3Znhf cnhfY2Ioc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBoaWZfaW5kX3J4ICphcmcsIHN0cnVj dCBza19idWZmICpza2IpDQorew0KKwlpbnQgbGlua19pZCA9IGFyZy0+cnhfZmxhZ3MucGVlcl9z dGFfaWQ7DQorCXN0cnVjdCBpZWVlODAyMTFfcnhfc3RhdHVzICpoZHIgPSBJRUVFODAyMTFfU0tC X1JYQ0Ioc2tiKTsNCisJc3RydWN0IGllZWU4MDIxMV9oZHIgKmZyYW1lID0gKHN0cnVjdCBpZWVl ODAyMTFfaGRyICopIHNrYi0+ZGF0YTsNCisJc3RydWN0IGllZWU4MDIxMV9tZ210ICptZ210ID0g KHN0cnVjdCBpZWVlODAyMTFfbWdtdCAqKSBza2ItPmRhdGE7DQorCXN0cnVjdCB3ZnhfbGlua19l bnRyeSAqZW50cnkgPSBOVUxMOw0KKwlib29sIGVhcmx5X2RhdGEgPSBmYWxzZTsNCisNCisJbWVt c2V0KGhkciwgMCwgc2l6ZW9mKCpoZHIpKTsNCisNCisJLy8gRklYTUU6IFdoeSBkbyB3ZSBkcm9w IHRoZXNlIGZyYW1lcz8NCisJaWYgKCFhcmctPnJjcGlfcnNzaSAmJg0KKwkgICAgKGllZWU4MDIx MV9pc19wcm9iZV9yZXNwKGZyYW1lLT5mcmFtZV9jb250cm9sKSB8fA0KKwkgICAgIGllZWU4MDIx MV9pc19iZWFjb24oZnJhbWUtPmZyYW1lX2NvbnRyb2wpKSkNCisJCWdvdG8gZHJvcDsNCisNCisJ aWYgKGxpbmtfaWQgJiYgbGlua19pZCA8PSBXRlhfTUFYX1NUQV9JTl9BUF9NT0RFKSB7DQorCQll bnRyeSA9ICZ3dmlmLT5saW5rX2lkX2RiW2xpbmtfaWQgLSAxXTsNCisJCWVudHJ5LT50aW1lc3Rh bXAgPSBqaWZmaWVzOw0KKwkJaWYgKGVudHJ5LT5zdGF0dXMgPT0gV0ZYX0xJTktfU09GVCAmJiBp ZWVlODAyMTFfaXNfZGF0YShmcmFtZS0+ZnJhbWVfY29udHJvbCkpDQorCQkJZWFybHlfZGF0YSA9 IHRydWU7DQorCX0NCisNCisJaWYgKGFyZy0+c3RhdHVzID09IEhJRl9TVEFUVVNfTUlDRkFJTFVS RSkNCisJCWhkci0+ZmxhZyB8PSBSWF9GTEFHX01NSUNfRVJST1I7DQorCWVsc2UgaWYgKGFyZy0+ c3RhdHVzKQ0KKwkJZ290byBkcm9wOw0KKw0KKwlpZiAoc2tiLT5sZW4gPCBzaXplb2Yoc3RydWN0 IGllZWU4MDIxMV9wc3BvbGwpKSB7DQorCQlkZXZfd2Fybih3dmlmLT53ZGV2LT5kZXYsICJtYWxm b3JtZWQgU0RVIHJlY2VpdmVkXG4iKTsNCisJCWdvdG8gZHJvcDsNCisJfQ0KKw0KKwlpZiAoaWVl ZTgwMjExX2lzX3BzcG9sbChmcmFtZS0+ZnJhbWVfY29udHJvbCkpDQorCQlpZiAod2Z4X2hhbmRs ZV9wc3BvbGwod3ZpZiwgc2tiKSkNCisJCQlnb3RvIGRyb3A7DQorDQorCWhkci0+YmFuZCA9IE5M ODAyMTFfQkFORF8yR0haOw0KKwloZHItPmZyZXEgPSBpZWVlODAyMTFfY2hhbm5lbF90b19mcmVx dWVuY3koYXJnLT5jaGFubmVsX251bWJlciwgaGRyLT5iYW5kKTsNCisNCisJaWYgKGFyZy0+cnhl ZF9yYXRlID49IDE0KSB7DQorCQloZHItPmVuY29kaW5nID0gUlhfRU5DX0hUOw0KKwkJaGRyLT5y YXRlX2lkeCA9IGFyZy0+cnhlZF9yYXRlIC0gMTQ7DQorCX0gZWxzZSBpZiAoYXJnLT5yeGVkX3Jh dGUgPj0gNCkgew0KKwkJaGRyLT5yYXRlX2lkeCA9IGFyZy0+cnhlZF9yYXRlIC0gMjsNCisJfSBl bHNlIHsNCisJCWhkci0+cmF0ZV9pZHggPSBhcmctPnJ4ZWRfcmF0ZTsNCisJfQ0KKw0KKwloZHIt PnNpZ25hbCA9IGFyZy0+cmNwaV9yc3NpIC8gMiAtIDExMDsNCisJaGRyLT5hbnRlbm5hID0gMDsN CisNCisJaWYgKGFyZy0+cnhfZmxhZ3MuZW5jcnlwKSB7DQorCQlpZiAod2Z4X2Ryb3BfZW5jcnlw dF9kYXRhKHd2aWYtPndkZXYsIGFyZywgc2tiKSkNCisJCQlnb3RvIGRyb3A7DQorCQloZHItPmZs YWcgfD0gUlhfRkxBR19ERUNSWVBURUQgfCBSWF9GTEFHX0lWX1NUUklQUEVEOw0KKwkJaWYgKGFy Zy0+cnhfZmxhZ3MuZW5jcnlwID09IEhJRl9SSV9GTEFHU19US0lQX0VOQ1JZUFRFRCkNCisJCQlo ZHItPmZsYWcgfD0gUlhfRkxBR19NTUlDX1NUUklQUEVEOw0KKwl9DQorDQorCS8qIEZpbHRlciBi bG9jayBBQ0sgbmVnb3RpYXRpb246IGZ1bGx5IGNvbnRyb2xsZWQgYnkgZmlybXdhcmUgKi8NCisJ aWYgKGllZWU4MDIxMV9pc19hY3Rpb24oZnJhbWUtPmZyYW1lX2NvbnRyb2wpDQorCSAgICAmJiBh cmctPnJ4X2ZsYWdzLm1hdGNoX3VjX2FkZHINCisJICAgICYmIG1nbXQtPnUuYWN0aW9uLmNhdGVn b3J5ID09IFdMQU5fQ0FURUdPUllfQkFDSykNCisJCWdvdG8gZHJvcDsNCisNCisJaWYgKGVhcmx5 X2RhdGEpIHsNCisJCXNwaW5fbG9ja19iaCgmd3ZpZi0+cHNfc3RhdGVfbG9jayk7DQorCQkvKiBE b3VibGUtY2hlY2sgc3RhdHVzIHdpdGggbG9jayBoZWxkICovDQorCQlpZiAoZW50cnktPnN0YXR1 cyA9PSBXRlhfTElOS19TT0ZUKQ0KKwkJCXNrYl9xdWV1ZV90YWlsKCZlbnRyeS0+cnhfcXVldWUs IHNrYik7DQorCQllbHNlDQorCQkJaWVlZTgwMjExX3J4X2lycXNhZmUod3ZpZi0+d2Rldi0+aHcs IHNrYik7DQorCQlzcGluX3VubG9ja19iaCgmd3ZpZi0+cHNfc3RhdGVfbG9jayk7DQorCX0gZWxz ZSB7DQorCQlpZWVlODAyMTFfcnhfaXJxc2FmZSh3dmlmLT53ZGV2LT5odywgc2tiKTsNCisJfQ0K Kw0KKwlyZXR1cm47DQorDQorZHJvcDoNCisJZGV2X2tmcmVlX3NrYihza2IpOw0KK30NCmRpZmYg LS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguaCBiL2RyaXZlcnMvc3RhZ2luZy93 ZngvZGF0YV9yeC5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi5i NDRkMTUyNjhmODMNCi0tLSAvZGV2L251bGwNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvZGF0 YV9yeC5oDQpAQCAtMCwwICsxLDE4IEBADQorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAtb25seSAqLw0KKy8qDQorICogRGF0YXBhdGggaW1wbGVtZW50YXRpb24uDQorICoNCisg KiBDb3B5cmlnaHQgKGMpIDIwMTctMjAxOSwgU2lsaWNvbiBMYWJvcmF0b3JpZXMsIEluYy4NCisg KiBDb3B5cmlnaHQgKGMpIDIwMTAsIFNULUVyaWNzc29uDQorICovDQorI2lmbmRlZiBXRlhfREFU QV9SWF9IDQorI2RlZmluZSBXRlhfREFUQV9SWF9IDQorDQorI2luY2x1ZGUgImhpZl9hcGlfY21k LmgiDQorDQorc3RydWN0IHdmeF92aWY7DQorc3RydWN0IHNrX2J1ZmY7DQorDQordm9pZCB3Znhf cnhfY2Ioc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBoaWZfaW5kX3J4ICphcmcsIHN0cnVj dCBza19idWZmICpza2IpOw0KKw0KKyNlbmRpZiAvKiBXRlhfREFUQV9SWF9IICovDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfcnguYyBiL2RyaXZlcnMvc3RhZ2luZy93Zngv aGlmX3J4LmMNCmluZGV4IDk3YzRjMmYwODJmYi4uYzA3OTg0YjA1MzVkIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfcnguYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9o aWZfcnguYw0KQEAgLTExLDYgKzExLDcgQEANCiANCiAjaW5jbHVkZSAiaGlmX3J4LmgiDQogI2lu Y2x1ZGUgIndmeC5oIg0KKyNpbmNsdWRlICJkYXRhX3J4LmgiDQogI2luY2x1ZGUgInNlY3VyZV9s aW5rLmgiDQogI2luY2x1ZGUgImhpZl9hcGlfY21kLmgiDQogDQpAQCAtMTI3LDYgKzEyOCwyMSBA QCBzdGF0aWMgaW50IGhpZl9rZXlzX2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsIHN0 cnVjdCBoaWZfbXNnICpoaWYsIHZvaWQgKg0KIAlyZXR1cm4gMDsNCiB9DQogDQorc3RhdGljIGlu dCBoaWZfcmVjZWl2ZV9pbmRpY2F0aW9uKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBzdHJ1Y3QgaGlm X21zZyAqaGlmLCB2b2lkICpidWYsIHN0cnVjdCBza19idWZmICpza2IpDQorew0KKwlzdHJ1Y3Qg d2Z4X3ZpZiAqd3ZpZiA9IHdkZXZfdG9fd3ZpZih3ZGV2LCBoaWYtPmludGVyZmFjZSk7DQorCXN0 cnVjdCBoaWZfaW5kX3J4ICpib2R5ID0gYnVmOw0KKw0KKwlpZiAoIXd2aWYpIHsNCisJCWRldl93 YXJuKHdkZXYtPmRldiwgImlnbm9yZSByeCBkYXRhIGZvciBub24gZXhpc3RhbnQgdmlmICVkXG4i LCBoaWYtPmludGVyZmFjZSk7DQorCQlyZXR1cm4gMDsNCisJfQ0KKwlza2JfcHVsbChza2IsIHNp emVvZihzdHJ1Y3QgaGlmX21zZykgKyBzaXplb2Yoc3RydWN0IGhpZl9pbmRfcngpKTsNCisJd2Z4 X3J4X2NiKHd2aWYsIGJvZHksIHNrYik7DQorDQorCXJldHVybiAwOw0KK30NCisNCiBzdGF0aWMg aW50IGhpZl9qb2luX2NvbXBsZXRlX2luZGljYXRpb24oc3RydWN0IHdmeF9kZXYgKndkZXYsIHN0 cnVjdCBoaWZfbXNnICpoaWYsIHZvaWQgKmJ1ZikNCiB7DQogCXN0cnVjdCB3ZnhfdmlmICp3dmlm ID0gd2Rldl90b193dmlmKHdkZXYsIGhpZi0+aW50ZXJmYWNlKTsNCkBAIC0yMTgsNiArMjM0LDgg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7DQogCXsgSElGX0lORF9JRF9HRU5FUklDLCAgICAgICAg ICAgICAgaGlmX2dlbmVyaWNfaW5kaWNhdGlvbiB9LA0KIAl7IEhJRl9JTkRfSURfRVJST1IsICAg ICAgICAgICAgICAgIGhpZl9lcnJvcl9pbmRpY2F0aW9uIH0sDQogCXsgSElGX0lORF9JRF9FWENF UFRJT04sICAgICAgICAgICAgaGlmX2V4Y2VwdGlvbl9pbmRpY2F0aW9uIH0sDQorCS8vIEZJWE1F OiBhbGxvY2F0ZSBza2JfcCBmcm9tIGhpZl9yZWNlaXZlX2luZGljYXRpb24gYW5kIG1ha2UgaXQg Z2VuZXJpYw0KKwkvL3sgSElGX0lORF9JRF9SWCwgICAgICAgICAgICAgICAgIGhpZl9yZWNlaXZl X2luZGljYXRpb24gfSwNCiB9Ow0KIA0KIHZvaWQgd2Z4X2hhbmRsZV9yeChzdHJ1Y3Qgd2Z4X2Rl diAqd2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikNCkBAIC0yMjYsNiArMjQ0LDExIEBAIHZvaWQg d2Z4X2hhbmRsZV9yeChzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikN CiAJc3RydWN0IGhpZl9tc2cgKmhpZiA9IChzdHJ1Y3QgaGlmX21zZyAqKSBza2ItPmRhdGE7DQog CWludCBoaWZfaWQgPSBoaWYtPmlkOw0KIA0KKwlpZiAoaGlmX2lkID09IEhJRl9JTkRfSURfUlgp IHsNCisJCS8vIGhpZl9yZWNlaXZlX2luZGljYXRpb24gdGFrZSBjYXJlIG9mIHNrYiBsaWZldGlt ZQ0KKwkJaGlmX3JlY2VpdmVfaW5kaWNhdGlvbih3ZGV2LCBoaWYsIGhpZi0+Ym9keSwgc2tiKTsN CisJCXJldHVybjsNCisJfQ0KIAkvLyBOb3RlOiBtdXRleF9pc19sb2NrIGNhdXNlIGFuIGltcGxp Y2l0IG1lbW9yeSBiYXJyaWVyIHRoYXQgcHJvdGVjdA0KIAkvLyBidWZfc2VuZA0KIAlpZiAobXV0 ZXhfaXNfbG9ja2VkKCZ3ZGV2LT5oaWZfY21kLmxvY2spDQotLSANCjIuMjAuMQ0K