From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 49419C04AA8 for ; Tue, 30 Apr 2019 18:12:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 09D1321734 for ; Tue, 30 Apr 2019 18:12:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="QC0BcE8b" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727004AbfD3SM4 (ORCPT ); Tue, 30 Apr 2019 14:12:56 -0400 Received: from mail-eopbgr30059.outbound.protection.outlook.com ([40.107.3.59]:50702 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725950AbfD3SMz (ORCPT ); Tue, 30 Apr 2019 14:12:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7Ld+Bvmd8UlFtEgqTvTnmRYIKWBQK5/Wk2zcQ51eLxE=; b=QC0BcE8b4X8RzHe5yKWgwIBrVSIPoBuAn+KOEV+0D7nMxIVuk4VM0hyjpLwH5dLqYx03rCw2zZkQ9wRGSPTeA3hEOIclbApafYnfAWc0INt3wJyW+DQ9u2ER16sGLxqNCdN3h4qCaj096k63lDIvF704S1Jkht0ZeA9Vmdgfueo= Received: from AM6PR05MB5879.eurprd05.prod.outlook.com (20.179.0.76) by AM6PR05MB5553.eurprd05.prod.outlook.com (20.177.119.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.15; Tue, 30 Apr 2019 18:12:42 +0000 Received: from AM6PR05MB5879.eurprd05.prod.outlook.com ([fe80::cc18:150a:7740:1e2f]) by AM6PR05MB5879.eurprd05.prod.outlook.com ([fe80::cc18:150a:7740:1e2f%2]) with mapi id 15.20.1856.008; Tue, 30 Apr 2019 18:12:42 +0000 From: Maxim Mikityanskiy To: Alexei Starovoitov , Daniel Borkmann , =?utf-8?B?QmrDtnJuIFTDtnBlbA==?= , Magnus Karlsson CC: "bpf@vger.kernel.org" , "netdev@vger.kernel.org" , "David S. Miller" , Saeed Mahameed , Jonathan Lemon , Tariq Toukan , Martin KaFai Lau , Song Liu , Yonghong Song , Jakub Kicinski , Maciej Fijalkowski , Maxim Mikityanskiy Subject: [PATCH bpf-next v2 04/16] xsk: Extend channels to support combined XSK/non-XSK traffic Thread-Topic: [PATCH bpf-next v2 04/16] xsk: Extend channels to support combined XSK/non-XSK traffic Thread-Index: AQHU/4BNBZRhWiv6AkKYN9sYVKeCyw== Date: Tue, 30 Apr 2019 18:12:41 +0000 Message-ID: <20190430181215.15305-5-maximmi@mellanox.com> References: <20190430181215.15305-1-maximmi@mellanox.com> In-Reply-To: <20190430181215.15305-1-maximmi@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0250.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:8a::22) To AM6PR05MB5879.eurprd05.prod.outlook.com (2603:10a6:20b:a2::12) authentication-results: spf=none (sender IP is ) smtp.mailfrom=maximmi@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.19.1 x-originating-ip: [141.226.120.58] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e481743a-ca5c-4fb4-9dcb-08d6cd976fa9 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:AM6PR05MB5553; x-ms-traffictypediagnostic: AM6PR05MB5553: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3826; x-forefront-prvs: 00235A1EEF x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(396003)(136003)(346002)(376002)(39860400002)(189003)(199004)(6506007)(3846002)(26005)(478600001)(316002)(97736004)(6116002)(446003)(76176011)(4326008)(476003)(486006)(8676002)(110136005)(52116002)(81166006)(6436002)(50226002)(54906003)(8936002)(99286004)(11346002)(81156014)(2616005)(66946007)(66556008)(256004)(66476007)(64756008)(66446008)(73956011)(36756003)(305945005)(71200400001)(5024004)(71190400001)(30864003)(14444005)(107886003)(102836004)(68736007)(86362001)(7736002)(186003)(66066001)(6486002)(1076003)(386003)(5660300002)(53936002)(25786009)(6512007)(14454004)(7416002)(2906002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR05MB5553;H:AM6PR05MB5879.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: hVY0NyuYuW1r6r+79A1vEe5oa619pr9IPLxP9a7FIUbZLjzfV+74IEPZ2MNHyxh8XnbAY2kVVgXcknckFV7on9dmma1Kl40BQYoH1FCjOESA8wBNjxCAFWs1nWiROBwOZt9lSPBKn+l5RnPezQSpnpyiIOfZRarkCqfMHa5d1qYzCeJ+SmwWw9lDSFuCnuRmrU4RmHzwagSn1Q/CHLE2jjr9Za7GU/NDsVUP7ol6ifx9orlrKJV0QWT9nWy8svayiRr72m9HmI3axjTcf/HgwxjCjEbnTCM5rhKmlNa+pHFYHaGA1ZSpTazq8xMy2NpAc2R0w9IUZ4oOjf8r1XyXEn5PmW66Sqkh++OeBkUjdfrb0ig5ucOJRDVFR7afaFmg9OZ3i3AAxV59U9tNqJ1aDl4NGwbV/LwBPBev8aPlZi0= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: e481743a-ca5c-4fb4-9dcb-08d6cd976fa9 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2019 18:12:41.9938 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB5553 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Q3VycmVudGx5LCB0aGUgZHJpdmVycyB0aGF0IGltcGxlbWVudCBBRl9YRFAgemVyby1jb3B5IHN1 cHBvcnQgKGUuZy4sDQppNDBlKSBzd2l0Y2ggdGhlIGNoYW5uZWwgaW50byBhIGRpZmZlcmVudCBt b2RlIHdoZW4gYW4gWFNLIGlzIG9wZW5lZC4gSXQNCmNhdXNlcyBzb21lIGlzc3VlcyB0aGF0IGhh dmUgdG8gYmUgdGFrZW4gaW50byBhY2NvdW50LiBGb3IgZXhhbXBsZSwgUlNTDQpuZWVkcyB0byBi ZSByZWNvbmZpZ3VyZWQgdG8gc2tpcCB0aGUgWFNLLWVuYWJsZWQgY2hhbm5lbHMsIG9yIHRoZSBY RFANCnByb2dyYW0gc2hvdWxkIGZpbHRlciBvdXQgdHJhZmZpYyBub3QgaW50ZW5kZWQgZm9yIHRo YXQgc29ja2V0IGFuZA0KWERQX1BBU1MgaXQgd2l0aCBhbiBhZGRpdGlvbmFsIGNvcHkuIEFzIG5v dGhpbmcgdmFsaWRhdGVzIG9yIGZvcmNlcyB0aGUNCnByb3BlciBjb25maWd1cmF0aW9uLCBpdCdz IGVhc3kgdG8gaGF2ZSBwYWNrZXRzIGRyb3BzLCB3aGVuIHRoZXkgZ2V0DQppbnRvIGFuIFhTSyBi eSBtaXN0YWtlLCBhbmQsIGluIGZhY3QsIGl0J3MgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbi4N ClRoZXJlIGhhcyB0byBiZSBzb21lIHRvb2wgdG8gaGF2ZSBSU1MgcmVjb25maWd1cmVkIG9uIGVh Y2ggc29ja2V0IG9wZW4NCmFuZCBjbG9zZSBldmVudCwgYnV0IHN1Y2ggYSB0b29sIGlzIHByb2Js ZW1hdGljIHRvIGltcGxlbWVudCwgYmVjYXVzZSBubw0Kb25lIHJlcG9ydHMgdGhlc2UgZXZlbnRz LCBhbmQgaXQncyByYWNlLXByb25lLg0KDQpUaGlzIGNvbW1pdCBleHRlbmRzIFhTSyB0byBzdXBw b3J0IGJvdGgga2luZHMgb2YgdHJhZmZpYyAoWFNLIGFuZA0Kbm9uLVhTSykgaW4gdGhlIHNhbWUg Y2hhbm5lbC4gSXQgaW1wbGllcyBoYXZpbmcgdHdvIFJYIHF1ZXVlcyBpbg0KWFNLLWVuYWJsZWQg Y2hhbm5lbHM6IG9uZSBmb3IgdGhlIHJlZ3VsYXIgdHJhZmZpYywgYW5kIHRoZSBvdGhlciBmb3IN ClhTSy4gSXQgc29sdmVzIHRoZSBwcm9ibGVtIHdpdGggUlNTOiB0aGUgZGVmYXVsdCBjb25maWd1 cmF0aW9uIGp1c3QNCndvcmtzIHdpdGhvdXQgdGhlIG5lZWQgdG8gbWFudWFsbHkgcmVjb25maWd1 cmUgUlNTIG9yIHRvIHBlcmZvcm0gc29tZQ0KcG9zc2libHkgY29tcGxpY2F0ZWQgZmlsdGVyaW5n IGluIHRoZSBYRFAgbGF5ZXIuIEl0IG1ha2VzIGl0IGVhc3kgdG8gcnVuDQpib3RoIEFGX1hEUCBh bmQgcmVndWxhciBzb2NrZXRzIG9uIHRoZSBzYW1lIG1hY2hpbmUuIEluIHRoZSBYRFAgcHJvZ3Jh bSwNCnRoZSBRSUQncyBtb3N0IHNpZ25pZmljYW50IGJpdCB3aWxsIHNlcnZlIGFzIGEgZmxhZyB0 byBpbmRpY2F0ZSB3aGV0aGVyDQppdCdzIHRoZSBYU0sgcXVldWUgb3Igbm90LiBUaGUgZXh0ZW5z aW9uIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgbGVnYWN5DQpjb25maWd1cmF0aW9uLCBzbyBpZiBv bmUgd2FudHMgdG8gcnVuIHRoZSBsZWdhY3kgbW9kZSwgdGhleSBjYW4NCnJlY29uZmlndXJlIFJT UyBhbmQgaWdub3JlIHRoZSBmbGFnIGluIHRoZSBYRFAgcHJvZ3JhbSAoaW1wbGVtZW50ZWQgaW4N CnRoZSByZWZlcmVuY2UgWERQIHByb2dyYW0gaW4gbGliYnBmKS4gbWx4NWUgd2lsbCBzdXBwb3J0 IHRoaXMgZXh0ZW5zaW9uLg0KDQpBIHNpbmdsZSBYRFAgcHJvZ3JhbSBjYW4gcnVuIGJvdGggd2l0 aCBkcml2ZXJzIHN1cHBvcnRpbmcgb3Igbm90DQpzdXBwb3J0aW5nIHRoaXMgZXh0ZW5zaW9uLiBU aGUgeGRwc29jayBzYW1wbGUgYW5kIGxpYmJwZiBhcmUgdXBkYXRlZA0KYWNjb3JkaW5nbHkuDQoN ClNpZ25lZC1vZmYtYnk6IE1heGltIE1pa2l0eWFuc2tpeSA8bWF4aW1taUBtZWxsYW5veC5jb20+ DQpBY2tlZC1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+DQotLS0NCiBp bmNsdWRlL3VhcGkvbGludXgvaWZfeGRwLmggICAgICAgfCAgMTEgKysrDQogbmV0L3hkcC94c2su YyAgICAgICAgICAgICAgICAgICAgIHwgICA1ICstDQogc2FtcGxlcy9icGYveGRwc29ja191c2Vy LmMgICAgICAgIHwgIDEwICsrLQ0KIHRvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pZl94ZHAuaCB8 ICAxMSArKysNCiB0b29scy9saWIvYnBmL3hzay5jICAgICAgICAgICAgICAgfCAxMTYgKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tDQogdG9vbHMvbGliL2JwZi94c2suaCAgICAgICAgICAg ICAgIHwgICA0ICsrDQogNiBmaWxlcyBjaGFuZ2VkLCAxMjYgaW5zZXJ0aW9ucygrKSwgMzEgZGVs ZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvbGludXgvaWZfeGRwLmggYi9p bmNsdWRlL3VhcGkvbGludXgvaWZfeGRwLmgNCmluZGV4IDlhZTRiNGUwOGI2OC4uY2Y2ZmYxZWNj NmJkIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3hkcC5oDQorKysgYi9pbmNs dWRlL3VhcGkvbGludXgvaWZfeGRwLmgNCkBAIC04Miw0ICs4MiwxNSBAQCBzdHJ1Y3QgeGRwX2Rl c2Mgew0KIA0KIC8qIFVNRU0gZGVzY3JpcHRvciBpcyBfX3U2NCAqLw0KIA0KKy8qIFRoZSBkcml2 ZXIgbWF5IHJ1biBhIGRlZGljYXRlZCBYU0sgUlEgaW4gdGhlIGNoYW5uZWwuIFRoZSBYRFAgcHJv Z3JhbSB1c2VzDQorICogdGhpcyBmbGFnIGJpdCBpbiB0aGUgcXVldWUgaW5kZXggdG8gZGlzdGlu Z3Vpc2ggYmV0d2VlbiB0d28gUlFzIG9mIHRoZSBzYW1lDQorICogY2hhbm5lbC4NCisgKi8NCisj ZGVmaW5lIFhEUF9RSURfRkxBR19YU0tSUSAoMSA8PCAzMSkNCisNCitzdGF0aWMgaW5saW5lIF9f dTMyIHhkcF9xaWRfZ2V0X2NoYW5uZWwoX191MzIgcWlkKQ0KK3sNCisJcmV0dXJuIHFpZCAmIH5Y RFBfUUlEX0ZMQUdfWFNLUlE7DQorfQ0KKw0KICNlbmRpZiAvKiBfTElOVVhfSUZfWERQX0ggKi8N CmRpZmYgLS1naXQgYS9uZXQveGRwL3hzay5jIGIvbmV0L3hkcC94c2suYw0KaW5kZXggOTk4MTk5 MTA5ZDVjLi4xMTRiYTE3YWNiMDkgMTAwNjQ0DQotLS0gYS9uZXQveGRwL3hzay5jDQorKysgYi9u ZXQveGRwL3hzay5jDQpAQCAtMTA0LDkgKzEwNCwxMiBAQCBzdGF0aWMgaW50IF9feHNrX3Jjdl96 YyhzdHJ1Y3QgeGRwX3NvY2sgKnhzLCBzdHJ1Y3QgeGRwX2J1ZmYgKnhkcCwgdTMyIGxlbikNCiAN CiBpbnQgeHNrX3JjdihzdHJ1Y3QgeGRwX3NvY2sgKnhzLCBzdHJ1Y3QgeGRwX2J1ZmYgKnhkcCkN CiB7DQorCXN0cnVjdCB4ZHBfcnhxX2luZm8gKnJ4cSA9IHhkcC0+cnhxOw0KKwl1MzIgY2hhbm5l bCA9IHhkcF9xaWRfZ2V0X2NoYW5uZWwocnhxLT5xdWV1ZV9pbmRleCk7DQogCXUzMiBsZW47DQog DQotCWlmICh4cy0+ZGV2ICE9IHhkcC0+cnhxLT5kZXYgfHwgeHMtPnF1ZXVlX2lkICE9IHhkcC0+ cnhxLT5xdWV1ZV9pbmRleCkNCisJaWYgKHhzLT5kZXYgIT0gcnhxLT5kZXYgfHwgeHMtPnF1ZXVl X2lkICE9IGNoYW5uZWwgfHwNCisJICAgIHhzLT56YyAhPSAocnhxLT5tZW0udHlwZSA9PSBNRU1f VFlQRV9aRVJPX0NPUFkpKQ0KIAkJcmV0dXJuIC1FSU5WQUw7DQogDQogCWxlbiA9IHhkcC0+ZGF0 YV9lbmQgLSB4ZHAtPmRhdGE7DQpkaWZmIC0tZ2l0IGEvc2FtcGxlcy9icGYveGRwc29ja191c2Vy LmMgYi9zYW1wbGVzL2JwZi94ZHBzb2NrX3VzZXIuYw0KaW5kZXggZDA4ZWUxYWI3YmI0Li5hNmIx MzAyNWVlNzkgMTAwNjQ0DQotLS0gYS9zYW1wbGVzL2JwZi94ZHBzb2NrX3VzZXIuYw0KKysrIGIv c2FtcGxlcy9icGYveGRwc29ja191c2VyLmMNCkBAIC02Miw2ICs2Miw3IEBAIGVudW0gYmVuY2ht YXJrX3R5cGUgew0KIA0KIHN0YXRpYyBlbnVtIGJlbmNobWFya190eXBlIG9wdF9iZW5jaCA9IEJF TkNIX1JYRFJPUDsNCiBzdGF0aWMgdTMyIG9wdF94ZHBfZmxhZ3MgPSBYRFBfRkxBR1NfVVBEQVRF X0lGX05PRVhJU1Q7DQorc3RhdGljIHUzMiBvcHRfbGliYnBmX2ZsYWdzOw0KIHN0YXRpYyBjb25z dCBjaGFyICpvcHRfaWYgPSAiIjsNCiBzdGF0aWMgaW50IG9wdF9pZmluZGV4Ow0KIHN0YXRpYyBp bnQgb3B0X3F1ZXVlOw0KQEAgLTMwNiw3ICszMDcsNyBAQCBzdGF0aWMgc3RydWN0IHhza19zb2Nr ZXRfaW5mbyAqeHNrX2NvbmZpZ3VyZV9zb2NrZXQoc3RydWN0IHhza191bWVtX2luZm8gKnVtZW0p DQogCXhzay0+dW1lbSA9IHVtZW07DQogCWNmZy5yeF9zaXplID0gWFNLX1JJTkdfQ09OU19fREVG QVVMVF9OVU1fREVTQ1M7DQogCWNmZy50eF9zaXplID0gWFNLX1JJTkdfUFJPRF9fREVGQVVMVF9O VU1fREVTQ1M7DQotCWNmZy5saWJicGZfZmxhZ3MgPSAwOw0KKwljZmcubGliYnBmX2ZsYWdzID0g b3B0X2xpYmJwZl9mbGFnczsNCiAJY2ZnLnhkcF9mbGFncyA9IG9wdF94ZHBfZmxhZ3M7DQogCWNm Zy5iaW5kX2ZsYWdzID0gb3B0X3hkcF9iaW5kX2ZsYWdzOw0KIAlyZXQgPSB4c2tfc29ja2V0X19j cmVhdGUoJnhzay0+eHNrLCBvcHRfaWYsIG9wdF9xdWV1ZSwgdW1lbS0+dW1lbSwNCkBAIC0zNDYs NiArMzQ3LDcgQEAgc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ19vcHRpb25zW10gPSB7DQogCXsi aW50ZXJ2YWwiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ24nfSwNCiAJeyJ6ZXJvLWNvcHkiLCBu b19hcmd1bWVudCwgMCwgJ3onfSwNCiAJeyJjb3B5Iiwgbm9fYXJndW1lbnQsIDAsICdjJ30sDQor CXsiY29tYmluZWQiLCBub19hcmd1bWVudCwgMCwgJ0MnfSwNCiAJezAsIDAsIDAsIDB9DQogfTsN CiANCkBAIC0zNjUsNiArMzY3LDcgQEAgc3RhdGljIHZvaWQgdXNhZ2UoY29uc3QgY2hhciAqcHJv ZykNCiAJCSIgIC1uLCAtLWludGVydmFsPW4JU3BlY2lmeSBzdGF0aXN0aWNzIHVwZGF0ZSBpbnRl cnZhbCAoZGVmYXVsdCAxIHNlYykuXG4iDQogCQkiICAteiwgLS16ZXJvLWNvcHkgICAgICBGb3Jj ZSB6ZXJvLWNvcHkgbW9kZS5cbiINCiAJCSIgIC1jLCAtLWNvcHkgICAgICAgICAgIEZvcmNlIGNv cHkgbW9kZS5cbiINCisJCSIgIC1DLCAtLWNvbWJpbmVkICAgICAgIERyaXZlciBzdXBwb3J0cyBj b21iaW5lZCBYU0sgYW5kIG5vbi1YU0sgdHJhZmZpYyBpbiBhIGNoYW5uZWwuXG4iDQogCQkiXG4i Ow0KIAlmcHJpbnRmKHN0ZGVyciwgc3RyLCBwcm9nKTsNCiAJZXhpdChFWElUX0ZBSUxVUkUpOw0K QEAgLTM3Nyw3ICszODAsNyBAQCBzdGF0aWMgdm9pZCBwYXJzZV9jb21tYW5kX2xpbmUoaW50IGFy Z2MsIGNoYXIgKiphcmd2KQ0KIAlvcHRlcnIgPSAwOw0KIA0KIAlmb3IgKDs7KSB7DQotCQljID0g Z2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkZydGxpOnE6cHNTTm46Y3oiLCBsb25nX29wdGlvbnMs DQorCQljID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkZydGxpOnE6cHNTTm46Y3pDIiwgbG9u Z19vcHRpb25zLA0KIAkJCQkmb3B0aW9uX2luZGV4KTsNCiAJCWlmIChjID09IC0xKQ0KIAkJCWJy ZWFrOw0KQEAgLTQyMCw2ICs0MjMsOSBAQCBzdGF0aWMgdm9pZCBwYXJzZV9jb21tYW5kX2xpbmUo aW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KIAkJY2FzZSAnRic6DQogCQkJb3B0X3hkcF9mbGFncyAm PSB+WERQX0ZMQUdTX1VQREFURV9JRl9OT0VYSVNUOw0KIAkJCWJyZWFrOw0KKwkJY2FzZSAnQyc6 DQorCQkJb3B0X2xpYmJwZl9mbGFncyB8PSBYU0tfTElCQlBGX0ZMQUdTX19DT01CSU5FRF9DSEFO TkVMUzsNCisJCQlicmVhazsNCiAJCWRlZmF1bHQ6DQogCQkJdXNhZ2UoYmFzZW5hbWUoYXJndlsw XSkpOw0KIAkJfQ0KZGlmZiAtLWdpdCBhL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pZl94ZHAu aCBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pZl94ZHAuaA0KaW5kZXggOWFlNGI0ZTA4YjY4 Li5jZjZmZjFlY2M2YmQgMTAwNjQ0DQotLS0gYS90b29scy9pbmNsdWRlL3VhcGkvbGludXgvaWZf eGRwLmgNCisrKyBiL3Rvb2xzL2luY2x1ZGUvdWFwaS9saW51eC9pZl94ZHAuaA0KQEAgLTgyLDQg KzgyLDE1IEBAIHN0cnVjdCB4ZHBfZGVzYyB7DQogDQogLyogVU1FTSBkZXNjcmlwdG9yIGlzIF9f dTY0ICovDQogDQorLyogVGhlIGRyaXZlciBtYXkgcnVuIGEgZGVkaWNhdGVkIFhTSyBSUSBpbiB0 aGUgY2hhbm5lbC4gVGhlIFhEUCBwcm9ncmFtIHVzZXMNCisgKiB0aGlzIGZsYWcgYml0IGluIHRo ZSBxdWV1ZSBpbmRleCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHR3byBSUXMgb2YgdGhlIHNhbWUN CisgKiBjaGFubmVsLg0KKyAqLw0KKyNkZWZpbmUgWERQX1FJRF9GTEFHX1hTS1JRICgxIDw8IDMx KQ0KKw0KK3N0YXRpYyBpbmxpbmUgX191MzIgeGRwX3FpZF9nZXRfY2hhbm5lbChfX3UzMiBxaWQp DQorew0KKwlyZXR1cm4gcWlkICYgflhEUF9RSURfRkxBR19YU0tSUTsNCit9DQorDQogI2VuZGlm IC8qIF9MSU5VWF9JRl9YRFBfSCAqLw0KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYi9icGYveHNrLmMg Yi90b29scy9saWIvYnBmL3hzay5jDQppbmRleCBhOTViMDZkMWY4MWQuLjk2OWRmZDg1NjAzOSAx MDA2NDQNCi0tLSBhL3Rvb2xzL2xpYi9icGYveHNrLmMNCisrKyBiL3Rvb2xzL2xpYi9icGYveHNr LmMNCkBAIC03Niw2ICs3NiwxMiBAQCBzdHJ1Y3QgeHNrX25sX2luZm8gew0KIAlpbnQgZmQ7DQog fTsNCiANCitlbnVtIHFpZGNvbmYgew0KKwlRSURDT05GX1JFR1VMQVIsDQorCVFJRENPTkZfWFNL LA0KKwlRSURDT05GX1hTS19DT01CSU5FRCwNCit9Ow0KKw0KIC8qIEZvciAzMi1iaXQgc3lzdGVt cywgd2UgbmVlZCB0byB1c2UgbW1hcDIgYXMgdGhlIG9mZnNldHMgYXJlIDY0LWJpdC4NCiAgKiBV bmZvcnR1bmF0ZWx5LCBpdCBpcyBub3QgcGFydCBvZiBnbGliYy4NCiAgKi8NCkBAIC0xMzksNyAr MTQ1LDcgQEAgc3RhdGljIGludCB4c2tfc2V0X3hkcF9zb2NrZXRfY29uZmlnKHN0cnVjdCB4c2tf c29ja2V0X2NvbmZpZyAqY2ZnLA0KIAkJcmV0dXJuIDA7DQogCX0NCiANCi0JaWYgKHVzcl9jZmct PmxpYmJwZl9mbGFncyAmIH5YU0tfTElCQlBGX0ZMQUdTX19JTkhJQklUX1BST0dfTE9BRCkNCisJ aWYgKHVzcl9jZmctPmxpYmJwZl9mbGFncyAmIH5YU0tfTElCQlBGX0ZMQUdTX01BU0spDQogCQly ZXR1cm4gLUVJTlZBTDsNCiANCiAJY2ZnLT5yeF9zaXplID0gdXNyX2NmZy0+cnhfc2l6ZTsNCkBA IC0yNjcsNDQgKzI3Myw5MyBAQCBzdGF0aWMgaW50IHhza19sb2FkX3hkcF9wcm9nKHN0cnVjdCB4 c2tfc29ja2V0ICp4c2spDQogCS8qIFRoaXMgaXMgdGhlIEMtcHJvZ3JhbToNCiAJICogU0VDKCJ4 ZHBfc29jayIpIGludCB4ZHBfc29ja19wcm9nKHN0cnVjdCB4ZHBfbWQgKmN0eCkNCiAJICogew0K LQkgKiAgICAgaW50ICpxaWRjb25mLCBpbmRleCA9IGN0eC0+cnhfcXVldWVfaW5kZXg7DQorCSAq ICAgICBpbnQgKnFpZGNvbmYsIHFjOw0KKwkgKiAgICAgaW50IGluZGV4ID0gY3R4LT5yeF9xdWV1 ZV9pbmRleCAmIH4oMSA8PCAzMSk7DQorCSAqICAgICBib29sIGlzX3hza3JxID0gY3R4LT5yeF9x dWV1ZV9pbmRleCAmICgxIDw8IDMxKTsNCiAJICoNCi0JICogICAgIC8vIEEgc2V0IGVudHJ5IGhl cmUgbWVhbnMgdGhhdCB0aGUgY29ycmVzcG5kaW5nIHF1ZXVlX2lkDQotCSAqICAgICAvLyBoYXMg YW4gYWN0aXZlIEFGX1hEUCBzb2NrZXQgYm91bmQgdG8gaXQuDQorCSAqICAgICAvLyBBIHNldCBl bnRyeSBoZXJlIG1lYW5zIHRoYXQgdGhlIGNvcnJlc3BvbmRpbmcgcXVldWVfaWQNCisJICogICAg IC8vIGhhcyBhbiBhY3RpdmUgQUZfWERQIHNvY2tldCBib3VuZCB0byBpdC4gVmFsdWUgMiBtZWFu cw0KKwkgKiAgICAgLy8gaXQncyB6ZXJvLWNvcHkgbXVsdGktUlEgbW9kZS4NCiAJICogICAgIHFp ZGNvbmYgPSBicGZfbWFwX2xvb2t1cF9lbGVtKCZxaWRjb25mX21hcCwgJmluZGV4KTsNCiAJICog ICAgIGlmICghcWlkY29uZikNCiAJICogICAgICAgICByZXR1cm4gWERQX0FCT1JURUQ7DQogCSAq DQotCSAqICAgICBpZiAoKnFpZGNvbmYpDQorCSAqICAgICBxYyA9ICpxaWRjb25mOw0KKwkgKg0K KwkgKiAgICAgaWYgKHFjID09IDIpDQorCSAqICAgICAgICAgcWMgPSBpc194c2tycSA/IDEgOiAw Ow0KKwkgKg0KKwkgKiAgICAgc3dpdGNoIChxYykgew0KKwkgKiAgICAgY2FzZSAwOg0KKwkgKiAg ICAgICAgIHJldHVybiBYRFBfUEFTUzsNCisJICogICAgIGNhc2UgMToNCiAJICogICAgICAgICBy ZXR1cm4gYnBmX3JlZGlyZWN0X21hcCgmeHNrc19tYXAsIGluZGV4LCAwKTsNCisJICogICAgIH0N CiAJICoNCi0JICogICAgIHJldHVybiBYRFBfUEFTUzsNCisJICogICAgIHJldHVybiBYRFBfQUJP UlRFRDsNCiAJICogfQ0KIAkgKi8NCiAJc3RydWN0IGJwZl9pbnNuIHByb2dbXSA9IHsNCi0JCS8q IHIxID0gKih1MzIgKikocjEgKyAxNikgKi8NCi0JCUJQRl9MRFhfTUVNKEJQRl9XLCBCUEZfUkVH XzEsIEJQRl9SRUdfMSwgMTYpLA0KLQkJLyogKih1MzIgKikocjEwIC0gNCkgPSByMSAqLw0KLQkJ QlBGX1NUWF9NRU0oQlBGX1csIEJQRl9SRUdfMTAsIEJQRl9SRUdfMSwgLTQpLA0KLQkJQlBGX01P VjY0X1JFRyhCUEZfUkVHXzIsIEJQRl9SRUdfMTApLA0KLQkJQlBGX0FMVTY0X0lNTShCUEZfQURE LCBCUEZfUkVHXzIsIC00KSwNCi0JCUJQRl9MRF9NQVBfRkQoQlBGX1JFR18xLCB4c2stPnFpZGNv bmZfbWFwX2ZkKSwNCisJCS8qIExvYWQgaW5kZXguICovDQorCQkvKiByNiA9ICoodTMyICopKHIx ICsgMTYpICovDQorCQlCUEZfTERYX01FTShCUEZfVywgQlBGX1JFR182LCBCUEZfUkVHX0FSRzEs IDE2KSwNCisJCS8qIHc3ID0gdzYgKi8NCisJCUJQRl9NT1YzMl9SRUcoQlBGX1JFR183LCBCUEZf UkVHXzYpLA0KKwkJLyogdzcgJj0gMjE0NzQ4MzY0NyAqLw0KKwkJQlBGX0FMVTMyX0lNTShCUEZf QU5ELCBCUEZfUkVHXzcsIH5YRFBfUUlEX0ZMQUdfWFNLUlEpLA0KKwkJLyogKih1MzIgKikocjEw IC0gNCkgPSByNyAqLw0KKwkJQlBGX1NUWF9NRU0oQlBGX1csIEJQRl9SRUdfRlAsIEJQRl9SRUdf NywgLTQpLA0KKw0KKwkJLyogQ2FsbCBicGZfbWFwX2xvb2t1cF9lbGVtLiAqLw0KKwkJLyogcjIg PSByMTAgKi8NCisJCUJQRl9NT1Y2NF9SRUcoQlBGX1JFR19BUkcyLCBCUEZfUkVHX0ZQKSwNCisJ CS8qIHIyICs9IC00ICovDQorCQlCUEZfQUxVNjRfSU1NKEJQRl9BREQsIEJQRl9SRUdfQVJHMiwg LTQpLA0KKwkJLyogcjEgPSBxaWRjb25mX21hcCBsbCAqLw0KKwkJQlBGX0xEX01BUF9GRChCUEZf UkVHX0FSRzEsIHhzay0+cWlkY29uZl9tYXBfZmQpLA0KKwkJLyogY2FsbCAxICovDQogCQlCUEZf RU1JVF9DQUxMKEJQRl9GVU5DX21hcF9sb29rdXBfZWxlbSksDQotCQlCUEZfTU9WNjRfUkVHKEJQ Rl9SRUdfMSwgQlBGX1JFR18wKSwNCi0JCUJQRl9NT1YzMl9JTU0oQlBGX1JFR18wLCAwKSwNCi0J CS8qIGlmIHIxID09IDAgZ290byArOCAqLw0KLQkJQlBGX0pNUF9JTU0oQlBGX0pFUSwgQlBGX1JF R18xLCAwLCA4KSwNCi0JCUJQRl9NT1YzMl9JTU0oQlBGX1JFR18wLCAyKSwNCi0JCS8qIHIxID0g Kih1MzIgKikocjEgKyAwKSAqLw0KLQkJQlBGX0xEWF9NRU0oQlBGX1csIEJQRl9SRUdfMSwgQlBG X1JFR18xLCAwKSwNCi0JCS8qIGlmIHIxID09IDAgZ290byArNSAqLw0KLQkJQlBGX0pNUF9JTU0o QlBGX0pFUSwgQlBGX1JFR18xLCAwLCA1KSwNCi0JCS8qIHIyID0gKih1MzIgKikocjEwIC0gNCkg Ki8NCi0JCUJQRl9MRF9NQVBfRkQoQlBGX1JFR18xLCB4c2stPnhza3NfbWFwX2ZkKSwNCi0JCUJQ Rl9MRFhfTUVNKEJQRl9XLCBCUEZfUkVHXzIsIEJQRl9SRUdfMTAsIC00KSwNCisNCisJCS8qIENo ZWNrIHRoZSByZXR1cm4gdmFsdWUuICovDQorCQkvKiBpZiByMCA9PSAwIGdvdG8gKzE0ICovDQor CQlCUEZfSk1QX0lNTShCUEZfSkVRLCBCUEZfUkVHXzAsIDAsIDE0KSwNCisNCisJCS8qIENoZWNr IHFjID09IFFJRENPTkZfWFNLX0NPTUJJTkVELiAqLw0KKwkJLyogcjYgPj49IDMxICovDQorCQlC UEZfQUxVNjRfSU1NKEJQRl9SU0gsIEJQRl9SRUdfNiwgMzEpLA0KKwkJLyogcjEgPSAqKHUzMiAq KShyMCArIDApICovDQorCQlCUEZfTERYX01FTShCUEZfVywgQlBGX1JFR18xLCBCUEZfUkVHXzAs IDApLA0KKwkJLyogaWYgcjEgPT0gMiBnb3RvICsxICovDQorCQlCUEZfSk1QX0lNTShCUEZfSkVR LCBCUEZfUkVHXzEsIFFJRENPTkZfWFNLX0NPTUJJTkVELCAxKSwNCisNCisJCS8qIHFjICE9IFFJ RENPTkZfWFNLX0NPTUJJTkVEICovDQorCQkvKiByNiA9IHIxICovDQorCQlCUEZfTU9WNjRfUkVH KEJQRl9SRUdfNiwgQlBGX1JFR18xKSwNCisNCisJCS8qIHN3aXRjaCAocWMpICovDQorCQkvKiB3 MCA9IDIgKi8NCisJCUJQRl9NT1YzMl9JTU0oQlBGX1JFR18wLCBYRFBfUEFTUyksDQorCQkvKiBp ZiB3NiA9PSAwIGdvdG8gKzggKi8NCisJCUJQRl9KTVAzMl9JTU0oQlBGX0pFUSwgQlBGX1JFR182 LCBRSURDT05GX1JFR1VMQVIsIDgpLA0KKwkJLyogaWYgdzYgIT0gMSBnb3RvICs2ICovDQorCQlC UEZfSk1QMzJfSU1NKEJQRl9KTkUsIEJQRl9SRUdfNiwgUUlEQ09ORl9YU0ssIDYpLA0KKw0KKwkJ LyogQ2FsbCBicGZfcmVkaXJlY3RfbWFwLiAqLw0KKwkJLyogcjEgPSB4c2tzX21hcCBsbCAqLw0K KwkJQlBGX0xEX01BUF9GRChCUEZfUkVHX0FSRzEsIHhzay0+eHNrc19tYXBfZmQpLA0KKwkJLyog dzIgPSB3NyAqLw0KKwkJQlBGX01PVjMyX1JFRyhCUEZfUkVHX0FSRzIsIEJQRl9SRUdfNyksDQor CQkvKiB3MyA9IDAgKi8NCiAJCUJQRl9NT1YzMl9JTU0oQlBGX1JFR18zLCAwKSwNCisJCS8qIGNh bGwgNTEgKi8NCiAJCUJQRl9FTUlUX0NBTEwoQlBGX0ZVTkNfcmVkaXJlY3RfbWFwKSwNCi0JCS8q IFRoZSBqdW1wcyBhcmUgdG8gdGhpcyBpbnN0cnVjdGlvbiAqLw0KKwkJLyogZXhpdCAqLw0KKwkJ QlBGX0VYSVRfSU5TTigpLA0KKw0KKwkJLyogWERQX0FCT1JURUQgKi8NCisJCS8qIHcwID0gMCAq Lw0KKwkJQlBGX01PVjMyX0lNTShCUEZfUkVHXzAsIFhEUF9BQk9SVEVEKSwNCisJCS8qIGV4aXQg Ki8NCiAJCUJQRl9FWElUX0lOU04oKSwNCiAJfTsNCiAJc2l6ZV90IGluc25zX2NudCA9IHNpemVv Zihwcm9nKSAvIHNpemVvZihzdHJ1Y3QgYnBmX2luc24pOw0KQEAgLTQ4Myw2ICs1MzgsNyBAQCBz dGF0aWMgaW50IHhza191cGRhdGVfYnBmX21hcHMoc3RydWN0IHhza19zb2NrZXQgKnhzaywgaW50 IHFpZGNvbmZfdmFsdWUsDQogDQogc3RhdGljIGludCB4c2tfc2V0dXBfeGRwX3Byb2coc3RydWN0 IHhza19zb2NrZXQgKnhzaykNCiB7DQorCWludCBxaWRjb25mX3ZhbHVlID0gUUlEQ09ORl9YU0s7 DQogCWJvb2wgcHJvZ19hdHRhY2hlZCA9IGZhbHNlOw0KIAlfX3UzMiBwcm9nX2lkID0gMDsNCiAJ aW50IGVycjsNCkBAIC01MDUsNyArNTYxLDExIEBAIHN0YXRpYyBpbnQgeHNrX3NldHVwX3hkcF9w cm9nKHN0cnVjdCB4c2tfc29ja2V0ICp4c2spDQogCQl4c2stPnByb2dfZmQgPSBicGZfcHJvZ19n ZXRfZmRfYnlfaWQocHJvZ19pZCk7DQogCX0NCiANCi0JZXJyID0geHNrX3VwZGF0ZV9icGZfbWFw cyh4c2ssIHRydWUsIHhzay0+ZmQpOw0KKwlpZiAoeHNrLT5jb25maWcubGliYnBmX2ZsYWdzICYg WFNLX0xJQkJQRl9GTEFHU19fQ09NQklORURfQ0hBTk5FTFMpDQorCQlpZiAoeHNrLT56YykNCisJ CQlxaWRjb25mX3ZhbHVlID0gUUlEQ09ORl9YU0tfQ09NQklORUQ7DQorDQorCWVyciA9IHhza191 cGRhdGVfYnBmX21hcHMoeHNrLCBxaWRjb25mX3ZhbHVlLCB4c2stPmZkKTsNCiAJaWYgKGVycikN CiAJCWdvdG8gb3V0X2xvYWQ7DQogDQpAQCAtNzE3LDcgKzc3Nyw3IEBAIHZvaWQgeHNrX3NvY2tl dF9fZGVsZXRlKHN0cnVjdCB4c2tfc29ja2V0ICp4c2spDQogCWlmICgheHNrKQ0KIAkJcmV0dXJu Ow0KIA0KLQkodm9pZCl4c2tfdXBkYXRlX2JwZl9tYXBzKHhzaywgMCwgMCk7DQorCSh2b2lkKXhz a191cGRhdGVfYnBmX21hcHMoeHNrLCBRSURDT05GX1JFR1VMQVIsIDApOw0KIA0KIAlvcHRsZW4g PSBzaXplb2Yob2ZmKTsNCiAJZXJyID0gZ2V0c29ja29wdCh4c2stPmZkLCBTT0xfWERQLCBYRFBf TU1BUF9PRkZTRVRTLCAmb2ZmLCAmb3B0bGVuKTsNCmRpZmYgLS1naXQgYS90b29scy9saWIvYnBm L3hzay5oIGIvdG9vbHMvbGliL2JwZi94c2suaA0KaW5kZXggODJlYTcxYTBmM2VjLi5iZTI2YTI0 MjNjMDQgMTAwNjQ0DQotLS0gYS90b29scy9saWIvYnBmL3hzay5oDQorKysgYi90b29scy9saWIv YnBmL3hzay5oDQpAQCAtMTgwLDYgKzE4MCwxMCBAQCBzdHJ1Y3QgeHNrX3VtZW1fY29uZmlnIHsN CiANCiAvKiBGbGFncyBmb3IgdGhlIGxpYmJwZl9mbGFncyBmaWVsZC4gKi8NCiAjZGVmaW5lIFhT S19MSUJCUEZfRkxBR1NfX0lOSElCSVRfUFJPR19MT0FEICgxIDw8IDApDQorI2RlZmluZSBYU0tf TElCQlBGX0ZMQUdTX19DT01CSU5FRF9DSEFOTkVMUyAoMSA8PCAxKQ0KKyNkZWZpbmUgWFNLX0xJ QkJQRl9GTEFHU19NQVNLICggXA0KKwlYU0tfTElCQlBGX0ZMQUdTX19JTkhJQklUX1BST0dfTE9B RCB8IFwNCisJWFNLX0xJQkJQRl9GTEFHU19fQ09NQklORURfQ0hBTk5FTFMpDQogDQogc3RydWN0 IHhza19zb2NrZXRfY29uZmlnIHsNCiAJX191MzIgcnhfc2l6ZTsNCi0tIA0KMi4xOS4xDQoNCg==