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=-8.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham 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 CD691C31E45 for ; Thu, 13 Jun 2019 20:39:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 80E062133D for ; Thu, 13 Jun 2019 20:39:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="X6P+Qlbk" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729551AbfFMUji (ORCPT ); Thu, 13 Jun 2019 16:39:38 -0400 Received: from mail-eopbgr80082.outbound.protection.outlook.com ([40.107.8.82]:2635 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727534AbfFMUji (ORCPT ); Thu, 13 Jun 2019 16:39:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1EZWO0EyJats4VX/ZVDWPUEI3eV+atV+UV3qykpmVlo=; b=X6P+Qlbkt46s1ncNf7VP1RJSn2u9IpwV6gtDgHZJlbFqKMb5AUf68AQ+cwsSDeBGNr8y8+BjgiHJ6Fvh2tEeN2J5H+FHAysc3T4p0JDs+yVs/pGtrI77FJvCmqa8MQPHkSpiOGaUTSflFw4nVuUlpTASd7z6d/Q5CaQNZWQ81og= Received: from DB6PR0501MB2759.eurprd05.prod.outlook.com (10.172.227.7) by DB6PR0501MB2629.eurprd05.prod.outlook.com (10.172.225.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1965.15; Thu, 13 Jun 2019 20:39:21 +0000 Received: from DB6PR0501MB2759.eurprd05.prod.outlook.com ([fe80::a901:6951:59de:3278]) by DB6PR0501MB2759.eurprd05.prod.outlook.com ([fe80::a901:6951:59de:3278%2]) with mapi id 15.20.1987.012; Thu, 13 Jun 2019 20:39:21 +0000 From: Saeed Mahameed To: "David S. Miller" CC: "netdev@vger.kernel.org" , Jiri Pirko , Alex Vesker , Feras Daoud , Saeed Mahameed Subject: [net-next v2 04/15] net/mlx5: Add Vendor Specific Capability access gateway Thread-Topic: [net-next v2 04/15] net/mlx5: Add Vendor Specific Capability access gateway Thread-Index: AQHVIigU4zH50MQWOU2KQoHhFF3vOg== Date: Thu, 13 Jun 2019 20:39:21 +0000 Message-ID: <20190613203825.31049-5-saeedm@mellanox.com> References: <20190613203825.31049-1-saeedm@mellanox.com> In-Reply-To: <20190613203825.31049-1-saeedm@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.21.0 x-originating-ip: [209.116.155.178] x-clientproxiedby: BYAPR02CA0020.namprd02.prod.outlook.com (2603:10b6:a02:ee::33) To DB6PR0501MB2759.eurprd05.prod.outlook.com (2603:10a6:4:84::7) authentication-results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7cf5ea82-4b4f-4950-a88d-08d6f03f36a6 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020);SRVR:DB6PR0501MB2629; x-ms-traffictypediagnostic: DB6PR0501MB2629: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2512; x-forefront-prvs: 0067A8BA2A x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(136003)(366004)(39860400002)(376002)(346002)(199004)(189003)(8676002)(6916009)(81156014)(81166006)(2616005)(316002)(11346002)(25786009)(4326008)(6512007)(86362001)(476003)(486006)(8936002)(6436002)(446003)(50226002)(6486002)(66066001)(36756003)(26005)(305945005)(7736002)(186003)(73956011)(66946007)(64756008)(66446008)(66556008)(66476007)(53936002)(6116002)(256004)(14444005)(3846002)(1076003)(71190400001)(71200400001)(2906002)(478600001)(99286004)(52116002)(14454004)(30864003)(102836004)(54906003)(76176011)(5660300002)(6506007)(107886003)(386003)(68736007)(309714004);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0501MB2629;H:DB6PR0501MB2759.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX: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: bYKtBkEH1YqTT/ValWzP7KctKeF7JReS41YNoHnjn3uLm0BG5k6YIC+/7JsKOcVQwoxBcnuldpYNgrfQzvJrft693ZgSj9zAO5gq65vDqgni163BnqtJgFy2c1eZN8qw4dJQfplGVnxZicg150sFCx91L13WW6bku0nx7yWKPaBN6sy4l1aGGUWk7JkYBc9GXTGm/PzEW2wupqERMS/96ZggqBGl3Ai0H32rRvxTNk806CICh3uuIoJ/YU7t3hj6Oove6gbzcHayZQ38ImpslRtZyqJvuGylFVmaXWYnjXZ8SCrY6eO5Pwknnzb9I2Nj+CznAZ8hvIFOw0SE+GLSKQhAkIhpG0LUYhZTUZ81xzUYAk08RcEvTfS+5doKqRe4VlIUvQRP8j5E6zDlxV7Bo2Fnyf71KXUOapXg0hvuSoE= 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: 7cf5ea82-4b4f-4950-a88d-08d6f03f36a6 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jun 2019 20:39:21.5295 (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-CrossTenant-userprincipalname: saeedm@mellanox.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0501MB2629 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RnJvbTogQWxleCBWZXNrZXIgPHZhbGV4QG1lbGxhbm94LmNvbT4NCg0KVGhlIFZlbmRvciBTcGVj aWZpYyBDYXBhYmlsaXR5IChWU0MpIGlzIHVzZWQgdG8gYWN0aXZhdGUgYSBnYXRld2F5DQppbnRl cmZhY2luZyB3aXRoIHRoZSBkZXZpY2UuIFRoZSBnYXRld2F5IGlzIHVzZWQgdG8gcmVhZCBvciB3 cml0ZQ0KZGV2aWNlIGNvbmZpZ3VyYXRpb25zLCB3aGljaCBhcmUgb3JnYW5pemVkIGluIGRpZmZl cmVudCBkb21haW5zIChzcGFjZXMpLg0KQSBjb25maWd1cmF0aW9uIGFjY2VzcyBtYXkgcmVzdWx0 IGluIG11bHRpcGxlIGFjdGlvbnMsIHJlYWRzLCB3cml0ZXMuDQoNCkV4YW1wbGUgdXNhZ2VzIGFy ZSBhY2Nlc3NpbmcgdGhlIENyc3BhY2UgZG9tYWluIHRvIHJlYWQgdGhlIGNyc3BhY2Ugb3INCmxv Y2tpbmcgYSBkZXZpY2Ugc2VtYXBob3JlIHVzaW5nIHRoZSBTZW1hcGhvcmUgZG9tYWluLg0KDQpU aGUgY29uZmlndXJhdGlvbiBhY2Nlc3MgdXNlIHBjaV9jZmdfYWNjZXNzIHRvIHByZXZlbnQgcGFy YWxsZWwgYWNjZXNzIHRvDQp0aGUgVlNDIHNwYWNlIGJ5IHRoZSBkcml2ZXIgYW5kIHVzZXJzcGFj ZSBjYWxscy4NCg0KU2lnbmVkLW9mZi1ieTogQWxleCBWZXNrZXIgPHZhbGV4QG1lbGxhbm94LmNv bT4NClNpZ25lZC1vZmYtYnk6IEZlcmFzIERhb3VkIDxmZXJhc2RhQG1lbGxhbm94LmNvbT4NClNp Z25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPg0KLS0tDQog Li4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUgIHwgICAzICstDQog Li4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvcGNpX3ZzYy5jIHwgMjg2ICsrKysr KysrKysrKysrKysrKw0KIC4uLi9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3BjaV92 c2MuaCB8ICAyNCArKw0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4u YyAgICB8ICAgMyArDQogaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oICAgICAgICAgICAgICAg ICAgIHwgICAxICsNCiA1IGZpbGVzIGNoYW5nZWQsIDMxNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9saWIvcGNpX3ZzYy5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvcGNpX3ZzYy5oDQoNCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUNCmluZGV4IDkwMDZm ZGE2YmQxMS4uOGUwNzM1NGZhZWExIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUNCkBAIC0xNSw3ICsxNSw4IEBAIG1seDVfY29yZS15 IDo9CW1haW4ubyBjbWQubyBkZWJ1Z2ZzLm8gZncubyBlcS5vIHVhci5vIHBhZ2VhbGxvYy5vIFwN CiAJCWhlYWx0aC5vIG1jZy5vIGNxLm8gYWxsb2MubyBxcC5vIHBvcnQubyBtci5vIHBkLm8gXA0K IAkJdHJhbnNvYmoubyB2cG9ydC5vIHNyaW92Lm8gZnNfY21kLm8gZnNfY29yZS5vIFwNCiAJCWZz X2NvdW50ZXJzLm8gcmwubyBsYWcubyBkZXYubyBldmVudHMubyB3cS5vIGxpYi9naWQubyBcDQot CQlsaWIvZGV2Y29tLm8gZGlhZy9mc190cmFjZXBvaW50Lm8gZGlhZy9md190cmFjZXIubyBkZXZs aW5rLm8NCisJCWxpYi9kZXZjb20ubyBsaWIvcGNpX3ZzYy5vIGRpYWcvZnNfdHJhY2Vwb2ludC5v IFwNCisJCWRpYWcvZndfdHJhY2VyLm8gZGV2bGluay5vDQogDQogIw0KICMgTmV0ZGV2IGJhc2lj DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xp Yi9wY2lfdnNjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGli L3BjaV92c2MuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uYTI3 YjAxMTliM2Q2DQotLS0gL2Rldi9udWxsDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvbGliL3BjaV92c2MuYw0KQEAgLTAsMCArMSwyODYgQEANCisvLyBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBMaW51eC1PcGVuSUINCisvKiBDb3B5cmln aHQgKGMpIDIwMTkgTWVsbGFub3ggVGVjaG5vbG9naWVzICovDQorDQorI2luY2x1ZGUgPGxpbnV4 L3BjaS5oPg0KKyNpbmNsdWRlICJtbHg1X2NvcmUuaCINCisjaW5jbHVkZSAicGNpX3ZzYy5oIg0K Kw0KKyNkZWZpbmUgTUxYNV9FWFRSQUNUX0Moc291cmNlLCBvZmZzZXQsIHNpemUpCVwNCisJKCgo KHUzMikoc291cmNlKSkgPj4gKG9mZnNldCkpICYgTUxYNV9PTkVTMzIoc2l6ZSkpDQorI2RlZmlu ZSBNTFg1X0VYVFJBQ1Qoc3JjLCBzdGFydCwgbGVuKQkJXA0KKwkoKChsZW4pID09IDMyKSA/IChz cmMpIDogTUxYNV9FWFRSQUNUX0Moc3JjLCBzdGFydCwgbGVuKSkNCisjZGVmaW5lIE1MWDVfT05F UzMyKHNpemUpCQkJXA0KKwkoKHNpemUpID8gKDB4ZmZmZmZmZmYgPj4gKDMyIC0gKHNpemUpKSkg OiAwKQ0KKyNkZWZpbmUgTUxYNV9NQVNLMzIob2Zmc2V0LCBzaXplKQkJXA0KKwkoTUxYNV9PTkVT MzIoc2l6ZSkgPDwgKG9mZnNldCkpDQorI2RlZmluZSBNTFg1X01FUkdFX0MocnNyYzEsIHJzcmMy LCBzdGFydCwgbGVuKSAgXA0KKwkoKCgocnNyYzIpIDw8IChzdGFydCkpICYgKE1MWDVfTUFTSzMy KChzdGFydCksIChsZW4pKSkpIHwgXA0KKwkoKHJzcmMxKSAmICh+TUxYNV9NQVNLMzIoKHN0YXJ0 KSwgKGxlbikpKSkpDQorI2RlZmluZSBNTFg1X01FUkdFKHJzcmMxLCByc3JjMiwgc3RhcnQsIGxl bikJXA0KKwkoKChsZW4pID09IDMyKSA/IChyc3JjMikgOiBNTFg1X01FUkdFX0MocnNyYzEsIHJz cmMyLCBzdGFydCwgbGVuKSkNCisjZGVmaW5lIHZzY19yZWFkKGRldiwgb2Zmc2V0LCB2YWwpIFwN CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKChkZXYpLT5wZGV2LCAoZGV2KS0+dnNjX2FkZHIgKyAo b2Zmc2V0KSwgKHZhbCkpDQorI2RlZmluZSB2c2Nfd3JpdGUoZGV2LCBvZmZzZXQsIHZhbCkgXA0K KwlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKChkZXYpLT5wZGV2LCAoZGV2KS0+dnNjX2FkZHIgKyAo b2Zmc2V0KSwgKHZhbCkpDQorI2RlZmluZSBWU0NfTUFYX1JFVFJJRVMgMjA0OA0KKw0KK2VudW0g bWx4NV92c2Nfc3RhdGUgew0KKwlNTFg1X1ZTQ19VTkxPQ0ssDQorCU1MWDVfVlNDX0xPQ0ssDQor fTsNCisNCitlbnVtIHsNCisJVlNDX0NUUkxfT0ZGU0VUID0gMHg0LA0KKwlWU0NfQ09VTlRFUl9P RkZTRVQgPSAweDgsDQorCVZTQ19TRU1BUEhPUkVfT0ZGU0VUID0gMHhjLA0KKwlWU0NfQUREUl9P RkZTRVQgPSAweDEwLA0KKwlWU0NfREFUQV9PRkZTRVQgPSAweDE0LA0KKw0KKwlWU0NfRkxBR19C SVRfT0ZGUyA9IDMxLA0KKwlWU0NfRkxBR19CSVRfTEVOID0gMSwNCisNCisJVlNDX1NZTkRfQklU X09GRlMgPSAzMCwNCisJVlNDX1NZTkRfQklUX0xFTiA9IDEsDQorDQorCVZTQ19BRERSX0JJVF9P RkZTID0gMCwNCisJVlNDX0FERFJfQklUX0xFTiA9IDMwLA0KKw0KKwlWU0NfU1BBQ0VfQklUX09G RlMgPSAwLA0KKwlWU0NfU1BBQ0VfQklUX0xFTiA9IDE2LA0KKw0KKwlWU0NfU0laRV9WTERfQklU X09GRlMgPSAyOCwNCisJVlNDX1NJWkVfVkxEX0JJVF9MRU4gPSAxLA0KKw0KKwlWU0NfU1RBVFVT X0JJVF9PRkZTID0gMjksDQorCVZTQ19TVEFUVVNfQklUX0xFTiA9IDMsDQorfTsNCisNCit2b2lk IG1seDVfcGNpX3ZzY19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQorew0KKwlpZiAo IW1seDVfY29yZV9pc19wZihkZXYpKQ0KKwkJcmV0dXJuOw0KKw0KKwlkZXYtPnZzY19hZGRyID0g cGNpX2ZpbmRfY2FwYWJpbGl0eShkZXYtPnBkZXYsDQorCQkJCQkgICAgUENJX0NBUF9JRF9WTkRS KTsNCisJaWYgKCFkZXYtPnZzY19hZGRyKQ0KKwkJbWx4NV9jb3JlX3dhcm4oZGV2LCAiRmFpbGVk IHRvIGdldCB2YWxpZCB2ZW5kb3Igc3BlY2lmaWMgSURcbiIpOw0KK30NCisNCitpbnQgbWx4NV92 c2NfZ3dfbG9jayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0KK3sNCisJdTMyIGNvdW50ZXIg PSAwOw0KKwlpbnQgcmV0cmllcyA9IDA7DQorCXUzMiBsb2NrX3ZhbDsNCisJaW50IHJldDsNCisN CisJcGNpX2NmZ19hY2Nlc3NfbG9jayhkZXYtPnBkZXYpOw0KKwlkbyB7DQorCQlpZiAocmV0cmll cyA+IFZTQ19NQVhfUkVUUklFUykgew0KKwkJCXJldCA9IC1FQlVTWTsNCisJCQlnb3RvIHBjaV91 bmxvY2s7DQorCQl9DQorDQorCQkvKiBDaGVjayBpZiBzZW1hcGhvcmUgaXMgYWxyZWFkeSBsb2Nr ZWQgKi8NCisJCXJldCA9IHZzY19yZWFkKGRldiwgVlNDX1NFTUFQSE9SRV9PRkZTRVQsICZsb2Nr X3ZhbCk7DQorCQlpZiAocmV0KQ0KKwkJCWdvdG8gcGNpX3VubG9jazsNCisNCisJCWlmIChsb2Nr X3ZhbCkgew0KKwkJCXJldHJpZXMrKzsNCisJCQl1c2xlZXBfcmFuZ2UoMTAwMCwgMjAwMCk7DQor CQkJY29udGludWU7DQorCQl9DQorDQorCQkvKiBSZWFkIGFuZCB3cml0ZSBjb3VudGVyIHZhbHVl LCBpZiB3cml0dGVuIHZhbHVlIGlzDQorCQkgKiB0aGUgc2FtZSwgc2VtYXBob3JlIHdhcyBhY3F1 aXJlZCBzdWNjZXNzZnVsbHkuDQorCQkgKi8NCisJCXJldCA9IHZzY19yZWFkKGRldiwgVlNDX0NP VU5URVJfT0ZGU0VULCAmY291bnRlcik7DQorCQlpZiAocmV0KQ0KKwkJCWdvdG8gcGNpX3VubG9j azsNCisNCisJCXJldCA9IHZzY193cml0ZShkZXYsIFZTQ19TRU1BUEhPUkVfT0ZGU0VULCBjb3Vu dGVyKTsNCisJCWlmIChyZXQpDQorCQkJZ290byBwY2lfdW5sb2NrOw0KKw0KKwkJcmV0ID0gdnNj X3JlYWQoZGV2LCBWU0NfU0VNQVBIT1JFX09GRlNFVCwgJmxvY2tfdmFsKTsNCisJCWlmIChyZXQp DQorCQkJZ290byBwY2lfdW5sb2NrOw0KKw0KKwkJcmV0cmllcysrOw0KKwl9IHdoaWxlIChjb3Vu dGVyICE9IGxvY2tfdmFsKTsNCisNCisJcmV0dXJuIDA7DQorDQorcGNpX3VubG9jazoNCisJcGNp X2NmZ19hY2Nlc3NfdW5sb2NrKGRldi0+cGRldik7DQorCXJldHVybiByZXQ7DQorfQ0KKw0KK2lu dCBtbHg1X3ZzY19nd191bmxvY2soc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikNCit7DQorCWlu dCByZXQ7DQorDQorCXJldCA9IHZzY193cml0ZShkZXYsIFZTQ19TRU1BUEhPUkVfT0ZGU0VULCBN TFg1X1ZTQ19VTkxPQ0spOw0KKwlwY2lfY2ZnX2FjY2Vzc191bmxvY2soZGV2LT5wZGV2KTsNCisJ cmV0dXJuIHJldDsNCit9DQorDQoraW50IG1seDVfdnNjX2d3X3NldF9zcGFjZShzdHJ1Y3QgbWx4 NV9jb3JlX2RldiAqZGV2LCB1MTYgc3BhY2UsDQorCQkJICB1MzIgKnJldF9zcGFjZV9zaXplKQ0K K3sNCisJaW50IHJldDsNCisJdTMyIHZhbCA9IDA7DQorDQorCWlmICghbWx4NV92c2NfYWNjZXNz aWJsZShkZXYpKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCWlmIChyZXRfc3BhY2Vfc2l6ZSkN CisJCSpyZXRfc3BhY2Vfc2l6ZSA9IDA7DQorDQorCS8qIEdldCBhIHVuaXF1ZSB2YWwgKi8NCisJ cmV0ID0gdnNjX3JlYWQoZGV2LCBWU0NfQ1RSTF9PRkZTRVQsICZ2YWwpOw0KKwlpZiAocmV0KQ0K KwkJZ290byBvdXQ7DQorDQorCS8qIFRyeSB0byBtb2RpZnkgdGhlIGxvY2sgKi8NCisJdmFsID0g TUxYNV9NRVJHRSh2YWwsIHNwYWNlLCBWU0NfU1BBQ0VfQklUX09GRlMsIFZTQ19TUEFDRV9CSVRf TEVOKTsNCisJcmV0ID0gdnNjX3dyaXRlKGRldiwgVlNDX0NUUkxfT0ZGU0VULCB2YWwpOw0KKwlp ZiAocmV0KQ0KKwkJZ290byBvdXQ7DQorDQorCS8qIFZlcmlmeSBsb2NrIHdhcyBtb2RpZmllZCAq Lw0KKwlyZXQgPSB2c2NfcmVhZChkZXYsIFZTQ19DVFJMX09GRlNFVCwgJnZhbCk7DQorCWlmIChy ZXQpDQorCQlnb3RvIG91dDsNCisNCisJaWYgKE1MWDVfRVhUUkFDVCh2YWwsIFZTQ19TVEFUVVNf QklUX09GRlMsIFZTQ19TVEFUVVNfQklUX0xFTikgPT0gMCkNCisJCXJldHVybiAtRUlOVkFMOw0K Kw0KKwkvKiBHZXQgc3BhY2UgbWF4IGFkZHJlc3MgaWYgaW5kaWNhdGVkIGJ5IHNpemUgdmFsaWQg Yml0ICovDQorCWlmIChyZXRfc3BhY2Vfc2l6ZSAmJg0KKwkgICAgTUxYNV9FWFRSQUNUKHZhbCwg VlNDX1NJWkVfVkxEX0JJVF9PRkZTLCBWU0NfU0laRV9WTERfQklUX0xFTikpIHsNCisJCXJldCA9 IHZzY19yZWFkKGRldiwgVlNDX0FERFJfT0ZGU0VULCAmdmFsKTsNCisJCWlmIChyZXQpIHsNCisJ CQltbHg1X2NvcmVfd2FybihkZXYsICJGYWlsZWQgdG8gZ2V0IG1heCBzcGFjZSBzaXplXG4iKTsN CisJCQlnb3RvIG91dDsNCisJCX0NCisJCSpyZXRfc3BhY2Vfc2l6ZSA9IE1MWDVfRVhUUkFDVCh2 YWwsIFZTQ19BRERSX0JJVF9PRkZTLA0KKwkJCQkJICAgICAgIFZTQ19BRERSX0JJVF9MRU4pOw0K Kwl9DQorCXJldHVybiAwOw0KKw0KK291dDoNCisJcmV0dXJuIHJldDsNCit9DQorDQorc3RhdGlj IGludCBtbHg1X3ZzY193YWl0X29uX2ZsYWcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTgg ZXhwZWN0ZWRfdmFsKQ0KK3sNCisJaW50IHJldHJpZXMgPSAwOw0KKwl1MzIgZmxhZzsNCisJaW50 IHJldDsNCisNCisJZG8gew0KKwkJaWYgKHJldHJpZXMgPiBWU0NfTUFYX1JFVFJJRVMpDQorCQkJ cmV0dXJuIC1FQlVTWTsNCisNCisJCXJldCA9IHZzY19yZWFkKGRldiwgVlNDX0FERFJfT0ZGU0VU LCAmZmxhZyk7DQorCQlpZiAocmV0KQ0KKwkJCXJldHVybiByZXQ7DQorCQlmbGFnID0gTUxYNV9F WFRSQUNUKGZsYWcsIFZTQ19GTEFHX0JJVF9PRkZTLCBWU0NfRkxBR19CSVRfTEVOKTsNCisJCXJl dHJpZXMrKzsNCisNCisJCWlmICgocmV0cmllcyAmIDB4ZikgPT0gMCkNCisJCQl1c2xlZXBfcmFu Z2UoMTAwMCwgMjAwMCk7DQorDQorCX0gd2hpbGUgKGZsYWcgIT0gZXhwZWN0ZWRfdmFsKTsNCisN CisJcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgbWx4NV92c2NfZ3dfd3JpdGUoc3RydWN0 IG1seDVfY29yZV9kZXYgKmRldiwgdW5zaWduZWQgaW50IGFkZHJlc3MsDQorCQkJICAgICB1MzIg ZGF0YSkNCit7DQorCWludCByZXQ7DQorDQorCWlmIChNTFg1X0VYVFJBQ1QoYWRkcmVzcywgVlND X1NZTkRfQklUX09GRlMsDQorCQkJIFZTQ19GTEFHX0JJVF9MRU4gKyBWU0NfU1lORF9CSVRfTEVO KSkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KKwkvKiBTZXQgZmxhZyB0byAweDEgKi8NCisJYWRk cmVzcyA9IE1MWDVfTUVSR0UoYWRkcmVzcywgMSwgVlNDX0ZMQUdfQklUX09GRlMsIDEpOw0KKwly ZXQgPSB2c2Nfd3JpdGUoZGV2LCBWU0NfREFUQV9PRkZTRVQsIGRhdGEpOw0KKwlpZiAocmV0KQ0K KwkJZ290byBvdXQ7DQorDQorCXJldCA9IHZzY193cml0ZShkZXYsIFZTQ19BRERSX09GRlNFVCwg YWRkcmVzcyk7DQorCWlmIChyZXQpDQorCQlnb3RvIG91dDsNCisNCisJLyogV2FpdCBmb3IgdGhl IGZsYWcgdG8gYmUgY2xlYXJlZCAqLw0KKwlyZXQgPSBtbHg1X3ZzY193YWl0X29uX2ZsYWcoZGV2 LCAwKTsNCisNCitvdXQ6DQorCXJldHVybiByZXQ7DQorfQ0KKw0KK3N0YXRpYyBpbnQgbWx4NV92 c2NfZ3dfcmVhZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgYWRkcmVz cywNCisJCQkgICAgdTMyICpkYXRhKQ0KK3sNCisJaW50IHJldDsNCisNCisJaWYgKE1MWDVfRVhU UkFDVChhZGRyZXNzLCBWU0NfU1lORF9CSVRfT0ZGUywNCisJCQkgVlNDX0ZMQUdfQklUX0xFTiAr IFZTQ19TWU5EX0JJVF9MRU4pKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCXJldCA9IHZzY193 cml0ZShkZXYsIFZTQ19BRERSX09GRlNFVCwgYWRkcmVzcyk7DQorCWlmIChyZXQpDQorCQlnb3Rv IG91dDsNCisNCisJcmV0ID0gbWx4NV92c2Nfd2FpdF9vbl9mbGFnKGRldiwgMSk7DQorCWlmIChy ZXQpDQorCQlnb3RvIG91dDsNCisNCisJcmV0ID0gdnNjX3JlYWQoZGV2LCBWU0NfREFUQV9PRkZT RVQsIGRhdGEpOw0KK291dDoNCisJcmV0dXJuIHJldDsNCit9DQorDQorc3RhdGljIGludCBtbHg1 X3ZzY19nd19yZWFkX2Zhc3Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwNCisJCQkJIHVuc2ln bmVkIGludCByZWFkX2FkZHIsDQorCQkJCSB1bnNpZ25lZCBpbnQgKm5leHRfcmVhZF9hZGRyLA0K KwkJCQkgdTMyICpkYXRhKQ0KK3sNCisJaW50IHJldDsNCisNCisJcmV0ID0gbWx4NV92c2NfZ3df cmVhZChkZXYsIHJlYWRfYWRkciwgZGF0YSk7DQorCWlmIChyZXQpDQorCQlnb3RvIG91dDsNCisN CisJcmV0ID0gdnNjX3JlYWQoZGV2LCBWU0NfQUREUl9PRkZTRVQsIG5leHRfcmVhZF9hZGRyKTsN CisJaWYgKHJldCkNCisJCWdvdG8gb3V0Ow0KKw0KKwkqbmV4dF9yZWFkX2FkZHIgPSBNTFg1X0VY VFJBQ1QoKm5leHRfcmVhZF9hZGRyLCBWU0NfQUREUl9CSVRfT0ZGUywNCisJCQkJICAgICAgIFZT Q19BRERSX0JJVF9MRU4pOw0KKw0KKwlpZiAoKm5leHRfcmVhZF9hZGRyIDw9IHJlYWRfYWRkcikN CisJCXJldCA9IC1FSU5WQUw7DQorb3V0Og0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCitpbnQgbWx4 NV92c2NfZ3dfcmVhZF9ibG9ja19mYXN0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiAq ZGF0YSwNCisJCQkJaW50IGxlbmd0aCkNCit7DQorCXVuc2lnbmVkIGludCBuZXh0X3JlYWRfYWRk ciA9IDA7DQorCXVuc2lnbmVkIGludCByZWFkX2FkZHIgPSAwOw0KKw0KKwl3aGlsZSAocmVhZF9h ZGRyIDwgbGVuZ3RoKSB7DQorCQlpZiAobWx4NV92c2NfZ3dfcmVhZF9mYXN0KGRldiwgcmVhZF9h ZGRyLCAmbmV4dF9yZWFkX2FkZHIsDQorCQkJCQkgICZkYXRhWyhyZWFkX2FkZHIgPj4gMildKSkN CisJCQlyZXR1cm4gcmVhZF9hZGRyOw0KKw0KKwkJcmVhZF9hZGRyID0gbmV4dF9yZWFkX2FkZHI7 DQorCX0NCisJcmV0dXJuIGxlbmd0aDsNCit9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9wY2lfdnNjLmggYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3BjaV92c2MuaA0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uMjhlYTZiZmE0MzlmDQotLS0gL2Rldi9udWxsDQorKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3BjaV92c2MuaA0K QEAgLTAsMCArMSwyNCBAQA0KKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9S IExpbnV4LU9wZW5JQiAqLw0KKy8qIENvcHlyaWdodCAoYykgMjAxOSBNZWxsYW5veCBUZWNobm9s b2dpZXMgKi8NCisNCisjaWZuZGVmIF9fTUxYNV9QQ0lfVlNDX0hfXw0KKyNkZWZpbmUgX19NTFg1 X1BDSV9WU0NfSF9fDQorDQorZW51bSB7DQorCU1MWDVfVlNDX1NQQUNFX1NDQU5fQ1JTUEFDRSA9 IDB4NywNCit9Ow0KKw0KK3ZvaWQgbWx4NV9wY2lfdnNjX2luaXQoc3RydWN0IG1seDVfY29yZV9k ZXYgKmRldik7DQoraW50IG1seDVfdnNjX2d3X2xvY2soc3RydWN0IG1seDVfY29yZV9kZXYgKmRl dik7DQoraW50IG1seDVfdnNjX2d3X3VubG9jayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KTsN CitpbnQgbWx4NV92c2NfZ3dfc2V0X3NwYWNlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUx NiBzcGFjZSwNCisJCQkgIHUzMiAqcmV0X3NwYWNlX3NpemUpOw0KK2ludCBtbHg1X3ZzY19nd19y ZWFkX2Jsb2NrX2Zhc3Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTMyICpkYXRhLA0KKwkJ CQlpbnQgbGVuZ3RoKTsNCisNCitzdGF0aWMgaW5saW5lIGJvb2wgbWx4NV92c2NfYWNjZXNzaWJs ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0KK3sNCisJcmV0dXJuICEhZGV2LT52c2NfYWRk cjsNCit9DQorDQorI2VuZGlmIC8qIF9fTUxYNV9QQ0lfVlNDX0hfXyAqLw0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jDQppbmRleCA1ZWExNDE4OTNi OTkuLjNhZGMwOWExYTMxMiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9tYWluLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9tYWluLmMNCkBAIC02Niw2ICs2Niw3IEBADQogI2luY2x1ZGUgImxpYi92eGxh bi5oIg0KICNpbmNsdWRlICJsaWIvZ2VuZXZlLmgiDQogI2luY2x1ZGUgImxpYi9kZXZjb20uaCIN CisjaW5jbHVkZSAibGliL3BjaV92c2MuaCINCiAjaW5jbHVkZSAiZGlhZy9md190cmFjZXIuaCIN CiAjaW5jbHVkZSAiZWNwZi5oIg0KIA0KQEAgLTc2Myw2ICs3NjQsOCBAQCBzdGF0aWMgaW50IG1s eDVfcGNpX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IHBjaV9kZXYgKnBk ZXYsDQogCQlnb3RvIGVycl9jbHJfbWFzdGVyOw0KIAl9DQogDQorCW1seDVfcGNpX3ZzY19pbml0 KGRldik7DQorDQogCXJldHVybiAwOw0KIA0KIGVycl9jbHJfbWFzdGVyOg0KZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIu aA0KaW5kZXggM2E4MTBiZjA0M2ZlLi5mNzMyNDQ1YmNiZGIgMTAwNjQ0DQotLS0gYS9pbmNsdWRl L2xpbnV4L21seDUvZHJpdmVyLmgNCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaA0K QEAgLTY5Myw2ICs2OTMsNyBAQCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiB7DQogCXN0cnVjdCBtbHg1 X2Nsb2NrICAgICAgICBjbG9jazsNCiAJc3RydWN0IG1seDVfaWJfY2xvY2tfaW5mbyAgKmNsb2Nr X2luZm87DQogCXN0cnVjdCBtbHg1X2Z3X3RyYWNlciAgICp0cmFjZXI7DQorCXUzMiAgICAgICAg ICAgICAgICAgICAgICB2c2NfYWRkcjsNCiB9Ow0KIA0KIHN0cnVjdCBtbHg1X2RiIHsNCi0tIA0K Mi4yMS4wDQoNCg==