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=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 B36EAC43219 for ; Sun, 5 May 2019 00:33:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6EFB120651 for ; Sun, 5 May 2019 00:33:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="qAGhWxdJ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727314AbfEEAdN (ORCPT ); Sat, 4 May 2019 20:33:13 -0400 Received: from mail-eopbgr70082.outbound.protection.outlook.com ([40.107.7.82]:14048 "EHLO EUR04-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727176AbfEEAdM (ORCPT ); Sat, 4 May 2019 20:33:12 -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=BO11ggEmUuqV7sSE1Cp7j0kEhb8/QWJuYTKF+z6x3RE=; b=qAGhWxdJ3mLBe4A5ev43j2uQjfrliWlIlVRByJuxbdjp79X83ltG//hB57c7SelHnwUWESkWoKz+48O8s3kBIo9ripaznqpwFoi6cwzZTnR0p6zmDScXMDpMDmHRcbbvogp0VcOV9vlSatbSlde6s5qehJc7eLtlONDZo5MR3+o= Received: from DB8PR05MB5898.eurprd05.prod.outlook.com (20.179.9.32) by DB8PR05MB5881.eurprd05.prod.outlook.com (20.179.10.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.11; Sun, 5 May 2019 00:32:58 +0000 Received: from DB8PR05MB5898.eurprd05.prod.outlook.com ([fe80::ed24:8317:76e4:1a07]) by DB8PR05MB5898.eurprd05.prod.outlook.com ([fe80::ed24:8317:76e4:1a07%5]) with mapi id 15.20.1856.012; Sun, 5 May 2019 00:32:58 +0000 From: Saeed Mahameed To: "David S. Miller" CC: "netdev@vger.kernel.org" , Jiri Pirko , Alex Vesker , Feras Daoud , Saeed Mahameed Subject: [net-next 02/15] net/mlx5: Add Vendor Specific Capability access gateway Thread-Topic: [net-next 02/15] net/mlx5: Add Vendor Specific Capability access gateway Thread-Index: AQHVAtoWFv0FAO1zn0CrC5PGZDJH0A== Date: Sun, 5 May 2019 00:32:57 +0000 Message-ID: <20190505003207.1353-3-saeedm@mellanox.com> References: <20190505003207.1353-1-saeedm@mellanox.com> In-Reply-To: <20190505003207.1353-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.20.1 x-originating-ip: [73.15.39.150] x-clientproxiedby: BY5PR13CA0008.namprd13.prod.outlook.com (2603:10b6:a03:180::21) To DB8PR05MB5898.eurprd05.prod.outlook.com (2603:10a6:10:a4::32) 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: 0cec8efd-99e8-4f53-99d6-08d6d0f13875 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:DB8PR05MB5881; x-ms-traffictypediagnostic: DB8PR05MB5881: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2512; x-forefront-prvs: 00286C0CA6 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(346002)(376002)(366004)(39850400004)(136003)(396003)(199004)(189003)(305945005)(52116002)(76176011)(36756003)(316002)(25786009)(6486002)(478600001)(14454004)(446003)(50226002)(476003)(11346002)(2616005)(26005)(7736002)(4326008)(99286004)(86362001)(6916009)(53936002)(66476007)(186003)(68736007)(66446008)(64756008)(66556008)(6436002)(66946007)(73956011)(6512007)(14444005)(30864003)(1076003)(66066001)(71190400001)(71200400001)(54906003)(256004)(102836004)(81156014)(81166006)(8936002)(3846002)(6506007)(386003)(107886003)(2906002)(8676002)(5660300002)(6116002)(486006)(309714004);DIR:OUT;SFP:1101;SCL:1;SRVR:DB8PR05MB5881;H:DB8PR05MB5898.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: RJHZF9pHz/kwZo7oq9vgTUgTSKK3Sg6EC7vWVumaV34vvLg0YNjTUlAWUPeR83GZ/bKrHRKesVhJDifdtPmrdBP2W3hfwZ5VPBtnbKprtTBGTMZUhrzwJ3bI9TUrrFgTHaXL2p7eqzFHpd+QRZcOx56lIlflVtwx7y7CPcRtFxLxmDO1Jw8ITHew9Wio9I/t0af1Sbn/b2gkmMQIM4RWGbU1siQrErBDibZq9G8DWatdFassL3Mtmi0uoQjhwHtoS1kYY1A4Rhk2RTNYZkqQN+el/cpR8LCgO+1K3acllwDcHxzPAuY3rt1IHTijVGhCFqk2TIUJtZNByoHAfu1MIQxPyBPfSGZYAyi2aCe/o7xA0tKy7ShMllwzM1Ku56mqoyMjM6b+uDahCG5LdUPijOJUqPpMP46R+AwHCe2kIf4= 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: 0cec8efd-99e8-4f53-99d6-08d6d0f13875 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 May 2019 00:32:57.9816 (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: DB8PR05MB5881 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 Li4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvcGNpX3ZzYy5jIHwgMjgzICsrKysr KysrKysrKysrKysrKw0KIC4uLi9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3BjaV92 c2MuaCB8ICAyNSArKw0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4u YyAgICB8ICAgMyArDQogaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oICAgICAgICAgICAgICAg ICAgIHwgICAxICsNCiA1IGZpbGVzIGNoYW5nZWQsIDMxNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9saWIvcGNpX3ZzYy5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvcGNpX3ZzYy5oDQoNCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUNCmluZGV4IDAzODMx YTFjMDJmZC4uMzRkOWEwNzliNjA4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUNCkBAIC0xNSw3ICsxNSw4IEBAIG1seDVfY29yZS15 IDo9CW1haW4ubyBjbWQubyBkZWJ1Z2ZzLm8gZncubyBlcS5vIHVhci5vIHBhZ2VhbGxvYy5vIFwN CiAJCWhlYWx0aC5vIG1jZy5vIGNxLm8gYWxsb2MubyBxcC5vIHBvcnQubyBtci5vIHBkLm8gXA0K IAkJdHJhbnNvYmoubyB2cG9ydC5vIHNyaW92Lm8gZnNfY21kLm8gZnNfY29yZS5vIFwNCiAJCWZz X2NvdW50ZXJzLm8gcmwubyBsYWcubyBkZXYubyBldmVudHMubyB3cS5vIGxpYi9naWQubyBcDQot CQlsaWIvZGV2Y29tLm8gZGlhZy9mc190cmFjZXBvaW50Lm8gZGlhZy9md190cmFjZXIubyBkZXZs aW5rLm8NCisJCWxpYi9kZXZjb20ubyBsaWIvcGNpX3ZzYy5vIGRpYWcvZnNfdHJhY2Vwb2ludC5v IFwNCisJCWRpYWcvZndfdHJhY2VyLm8gZGV2bGluay5vDQogDQogIw0KICMgTmV0ZGV2IGJhc2lj DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xp Yi9wY2lfdnNjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGli L3BjaV92c2MuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uZjQy ODkwYmRkNmIxDQotLS0gL2Rldi9udWxsDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxs YW5veC9tbHg1L2NvcmUvbGliL3BjaV92c2MuYw0KQEAgLTAsMCArMSwyODMgQEANCisvLyBTUERY 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 IG1seDVfdnNjX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikNCit7DQorCWRldi0+dnNj X2FkZHIgPSBwY2lfZmluZF9jYXBhYmlsaXR5KGRldi0+cGRldiwNCisJCQkJCSAgICBQQ0lfQ0FQ X0lEX1ZORFIpOw0KKwlpZiAoIWRldi0+dnNjX2FkZHIpDQorCQltbHg1X2NvcmVfd2FybihkZXYs ICJGYWlsZWQgdG8gZ2V0IHZhbGlkIHZlbmRvciBzcGVjaWZpYyBJRFxuIik7DQorfQ0KKw0KK2lu dCBtbHg1X3ZzY19nd19sb2NrKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQorew0KKwl1MzIg Y291bnRlciA9IDA7DQorCWludCByZXRyaWVzID0gMDsNCisJdTMyIGxvY2tfdmFsOw0KKwlpbnQg cmV0Ow0KKw0KKwlwY2lfY2ZnX2FjY2Vzc19sb2NrKGRldi0+cGRldik7DQorCWRvIHsNCisJCWlm IChyZXRyaWVzID4gVlNDX01BWF9SRVRSSUVTKSB7DQorCQkJcmV0ID0gLUVCVVNZOw0KKwkJCWdv dG8gcGNpX3VubG9jazsNCisJCX0NCisNCisJCS8qIENoZWNrIGlmIHNlbWFwaG9yZSBpcyBhbHJl YWR5IGxvY2tlZCAqLw0KKwkJcmV0ID0gdnNjX3JlYWQoZGV2LCBWU0NfU0VNQVBIT1JFX09GRlNF VCwgJmxvY2tfdmFsKTsNCisJCWlmIChyZXQpDQorCQkJZ290byBwY2lfdW5sb2NrOw0KKw0KKwkJ aWYgKGxvY2tfdmFsKSB7DQorCQkJcmV0cmllcysrOw0KKwkJCXVzbGVlcF9yYW5nZSgxMDAwLCAy MDAwKTsNCisJCQljb250aW51ZTsNCisJCX0NCisNCisJCS8qIFJlYWQgYW5kIHdyaXRlIGNvdW50 ZXIgdmFsdWUsIGlmIHdyaXR0ZW4gdmFsdWUgaXMNCisJCSAqIHRoZSBzYW1lLCBzZW1hcGhvcmUg d2FzIGFjcXVpcmVkIHN1Y2Nlc3NmdWxseS4NCisJCSAqLw0KKwkJcmV0ID0gdnNjX3JlYWQoZGV2 LCBWU0NfQ09VTlRFUl9PRkZTRVQsICZjb3VudGVyKTsNCisJCWlmIChyZXQpDQorCQkJZ290byBw Y2lfdW5sb2NrOw0KKw0KKwkJcmV0ID0gdnNjX3dyaXRlKGRldiwgVlNDX1NFTUFQSE9SRV9PRkZT RVQsIGNvdW50ZXIpOw0KKwkJaWYgKHJldCkNCisJCQlnb3RvIHBjaV91bmxvY2s7DQorDQorCQly ZXQgPSB2c2NfcmVhZChkZXYsIFZTQ19TRU1BUEhPUkVfT0ZGU0VULCAmbG9ja192YWwpOw0KKwkJ aWYgKHJldCkNCisJCQlnb3RvIHBjaV91bmxvY2s7DQorDQorCQlyZXRyaWVzKys7DQorCX0gd2hp bGUgKGNvdW50ZXIgIT0gbG9ja192YWwpOw0KKw0KKwlyZXR1cm4gMDsNCisNCitwY2lfdW5sb2Nr Og0KKwlwY2lfY2ZnX2FjY2Vzc191bmxvY2soZGV2LT5wZGV2KTsNCisJcmV0dXJuIHJldDsNCit9 DQorDQoraW50IG1seDVfdnNjX2d3X3VubG9jayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KQ0K K3sNCisJaW50IHJldDsNCisNCisJcmV0ID0gdnNjX3dyaXRlKGRldiwgVlNDX1NFTUFQSE9SRV9P RkZTRVQsIE1MWDVfVlNDX1VOTE9DSyk7DQorCXBjaV9jZmdfYWNjZXNzX3VubG9jayhkZXYtPnBk ZXYpOw0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCitpbnQgbWx4NV92c2NfZ3dfc2V0X3NwYWNlKHN0 cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBzcGFjZSwNCisJCQkgIHUzMiAqcmV0X3NwYWNl X3NpemUpDQorew0KKwlpbnQgcmV0Ow0KKwl1MzIgdmFsID0gMDsNCisNCisJaWYgKCFtbHg1X3Zz Y19hY2Nlc3NpYmxlKGRldikpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJaWYgKHJldF9zcGFj ZV9zaXplKQ0KKwkJKnJldF9zcGFjZV9zaXplID0gMDsNCisNCisJLyogR2V0IGEgdW5pcXVlIHZh bCAqLw0KKwlyZXQgPSB2c2NfcmVhZChkZXYsIFZTQ19DVFJMX09GRlNFVCwgJnZhbCk7DQorCWlm IChyZXQpDQorCQlnb3RvIG91dDsNCisNCisJLyogVHJ5IHRvIG1vZGlmeSB0aGUgbG9jayAqLw0K Kwl2YWwgPSBNTFg1X01FUkdFKHZhbCwgc3BhY2UsIFZTQ19TUEFDRV9CSVRfT0ZGUywgVlNDX1NQ QUNFX0JJVF9MRU4pOw0KKwlyZXQgPSB2c2Nfd3JpdGUoZGV2LCBWU0NfQ1RSTF9PRkZTRVQsIHZh bCk7DQorCWlmIChyZXQpDQorCQlnb3RvIG91dDsNCisNCisJLyogVmVyaWZ5IGxvY2sgd2FzIG1v ZGlmaWVkICovDQorCXJldCA9IHZzY19yZWFkKGRldiwgVlNDX0NUUkxfT0ZGU0VULCAmdmFsKTsN CisJaWYgKHJldCkNCisJCWdvdG8gb3V0Ow0KKw0KKwlpZiAoTUxYNV9FWFRSQUNUKHZhbCwgVlND X1NUQVRVU19CSVRfT0ZGUywgVlNDX1NUQVRVU19CSVRfTEVOKSA9PSAwKQ0KKwkJcmV0dXJuIC1F SU5WQUw7DQorDQorCS8qIEdldCBzcGFjZSBtYXggYWRkcmVzcyBpZiBpbmRpY2F0ZWQgYnkgc2l6 ZSB2YWxpZCBiaXQgKi8NCisJaWYgKHJldF9zcGFjZV9zaXplICYmDQorCSAgICBNTFg1X0VYVFJB Q1QodmFsLCBWU0NfU0laRV9WTERfQklUX09GRlMsIFZTQ19TSVpFX1ZMRF9CSVRfTEVOKSkgew0K KwkJcmV0ID0gdnNjX3JlYWQoZGV2LCBWU0NfQUREUl9PRkZTRVQsICZ2YWwpOw0KKwkJaWYgKHJl dCkgew0KKwkJCW1seDVfY29yZV93YXJuKGRldiwgIkZhaWxlZCB0byBnZXQgbWF4IHNwYWNlIHNp emVcbiIpOw0KKwkJCWdvdG8gb3V0Ow0KKwkJfQ0KKwkJKnJldF9zcGFjZV9zaXplID0gTUxYNV9F WFRSQUNUKHZhbCwgVlNDX0FERFJfQklUX09GRlMsDQorCQkJCQkgICAgICAgVlNDX0FERFJfQklU X0xFTik7DQorCX0NCisJcmV0dXJuIDA7DQorDQorb3V0Og0KKwlyZXR1cm4gcmV0Ow0KK30NCisN CitzdGF0aWMgaW50IG1seDVfdnNjX3dhaXRfb25fZmxhZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAq ZGV2LCB1OCBleHBlY3RlZF92YWwpDQorew0KKwlpbnQgcmV0cmllcyA9IDA7DQorCXUzMiBmbGFn Ow0KKwlpbnQgcmV0Ow0KKw0KKwlkbyB7DQorCQlpZiAocmV0cmllcyA+IFZTQ19NQVhfUkVUUklF UykNCisJCQlyZXR1cm4gLUVCVVNZOw0KKw0KKwkJcmV0ID0gdnNjX3JlYWQoZGV2LCBWU0NfQURE Ul9PRkZTRVQsICZmbGFnKTsNCisJCWlmIChyZXQpDQorCQkJcmV0dXJuIHJldDsNCisJCWZsYWcg PSBNTFg1X0VYVFJBQ1QoZmxhZywgVlNDX0ZMQUdfQklUX09GRlMsIFZTQ19GTEFHX0JJVF9MRU4p Ow0KKwkJcmV0cmllcysrOw0KKw0KKwkJaWYgKChyZXRyaWVzICYgMHhmKSA9PSAwKQ0KKwkJCXVz bGVlcF9yYW5nZSgxMDAwLCAyMDAwKTsNCisNCisJfSB3aGlsZSAoZmxhZyAhPSBleHBlY3RlZF92 YWwpOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCBtbHg1X3ZzY19nd193cml0 ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgYWRkcmVzcywNCisJCQkg ICAgIHUzMiBkYXRhKQ0KK3sNCisJaW50IHJldDsNCisNCisJaWYgKE1MWDVfRVhUUkFDVChhZGRy ZXNzLCBWU0NfU1lORF9CSVRfT0ZGUywNCisJCQkgVlNDX0ZMQUdfQklUX0xFTiArIFZTQ19TWU5E X0JJVF9MRU4pKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQorCS8qIFNldCBmbGFnIHRvIDB4MSAq Lw0KKwlhZGRyZXNzID0gTUxYNV9NRVJHRShhZGRyZXNzLCAxLCBWU0NfRkxBR19CSVRfT0ZGUywg MSk7DQorCXJldCA9IHZzY193cml0ZShkZXYsIFZTQ19EQVRBX09GRlNFVCwgZGF0YSk7DQorCWlm IChyZXQpDQorCQlnb3RvIG91dDsNCisNCisJcmV0ID0gdnNjX3dyaXRlKGRldiwgVlNDX0FERFJf T0ZGU0VULCBhZGRyZXNzKTsNCisJaWYgKHJldCkNCisJCWdvdG8gb3V0Ow0KKw0KKwkvKiBXYWl0 IGZvciB0aGUgZmxhZyB0byBiZSBjbGVhcmVkICovDQorCXJldCA9IG1seDVfdnNjX3dhaXRfb25f ZmxhZyhkZXYsIDApOw0KKw0KK291dDoNCisJcmV0dXJuIHJldDsNCit9DQorDQorc3RhdGljIGlu dCBtbHg1X3ZzY19nd19yZWFkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHVuc2lnbmVkIGlu dCBhZGRyZXNzLA0KKwkJCSAgICB1MzIgKmRhdGEpDQorew0KKwlpbnQgcmV0Ow0KKw0KKwlpZiAo TUxYNV9FWFRSQUNUKGFkZHJlc3MsIFZTQ19TWU5EX0JJVF9PRkZTLA0KKwkJCSBWU0NfRkxBR19C SVRfTEVOICsgVlNDX1NZTkRfQklUX0xFTikpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJcmV0 ID0gdnNjX3dyaXRlKGRldiwgVlNDX0FERFJfT0ZGU0VULCBhZGRyZXNzKTsNCisJaWYgKHJldCkN CisJCWdvdG8gb3V0Ow0KKw0KKwlyZXQgPSBtbHg1X3ZzY193YWl0X29uX2ZsYWcoZGV2LCAxKTsN CisJaWYgKHJldCkNCisJCWdvdG8gb3V0Ow0KKw0KKwlyZXQgPSB2c2NfcmVhZChkZXYsIFZTQ19E QVRBX09GRlNFVCwgZGF0YSk7DQorb3V0Og0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCitzdGF0aWMg aW50IG1seDVfdnNjX2d3X3JlYWRfZmFzdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KKwkJ CQkgdW5zaWduZWQgaW50IHJlYWRfYWRkciwNCisJCQkJIHVuc2lnbmVkIGludCAqbmV4dF9yZWFk X2FkZHIsDQorCQkJCSB1MzIgKmRhdGEpDQorew0KKwlpbnQgcmV0Ow0KKw0KKwlyZXQgPSBtbHg1 X3ZzY19nd19yZWFkKGRldiwgcmVhZF9hZGRyLCBkYXRhKTsNCisJaWYgKHJldCkNCisJCWdvdG8g b3V0Ow0KKw0KKwlyZXQgPSB2c2NfcmVhZChkZXYsIFZTQ19BRERSX09GRlNFVCwgbmV4dF9yZWFk X2FkZHIpOw0KKwlpZiAocmV0KQ0KKwkJZ290byBvdXQ7DQorDQorCSpuZXh0X3JlYWRfYWRkciA9 IE1MWDVfRVhUUkFDVCgqbmV4dF9yZWFkX2FkZHIsIFZTQ19BRERSX0JJVF9PRkZTLA0KKwkJCQkg ICAgICAgVlNDX0FERFJfQklUX0xFTik7DQorDQorCWlmICgqbmV4dF9yZWFkX2FkZHIgPD0gcmVh ZF9hZGRyKQ0KKwkJcmV0ID0gLUVJTlZBTDsNCitvdXQ6DQorCXJldHVybiByZXQ7DQorfQ0KKw0K K2ludCBtbHg1X3ZzY19nd19yZWFkX2Jsb2NrX2Zhc3Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRl diwgdTMyICpkYXRhLA0KKwkJCQlpbnQgbGVuZ3RoKQ0KK3sNCisJdW5zaWduZWQgaW50IG5leHRf cmVhZF9hZGRyID0gMDsNCisJdW5zaWduZWQgaW50IHJlYWRfYWRkciA9IDA7DQorDQorCXdoaWxl IChyZWFkX2FkZHIgPCBsZW5ndGgpIHsNCisJCWlmIChtbHg1X3ZzY19nd19yZWFkX2Zhc3QoZGV2 LCByZWFkX2FkZHIsICZuZXh0X3JlYWRfYWRkciwNCisJCQkJCSAgJmRhdGFbKHJlYWRfYWRkciA+ PiAyKV0pKQ0KKwkJCXJldHVybiByZWFkX2FkZHI7DQorDQorCQlyZWFkX2FkZHIgPSBuZXh0X3Jl YWRfYWRkcjsNCisJfQ0KKwlyZXR1cm4gbGVuZ3RoOw0KK30NCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL3BjaV92c2MuaCBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvcGNpX3ZzYy5oDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi5jNmViZjU5MDA2YzUNCi0tLSAvZGV2L251 bGwNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvcGNp X3ZzYy5oDQpAQCAtMCwwICsxLDI1IEBADQorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAgT1IgTGludXgtT3BlbklCICovDQorLyogQ29weXJpZ2h0IChjKSAyMDE5IE1lbGxhbm94 IFRlY2hub2xvZ2llcyAqLw0KKw0KKyNpZm5kZWYgX19NTFg1X1BDSV9WU0NfSF9fDQorI2RlZmlu ZSBfX01MWDVfUENJX1ZTQ19IX18NCisNCitlbnVtIHsNCisJTUxYNV9WU0NfU1BBQ0VfU0NBTl9D UlNQQUNFID0gMHg3LA0KK307DQorDQordm9pZCBtbHg1X3ZzY19pbml0KHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYpOw0KK3ZvaWQgbWx4NV92c2NfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2Rl diAqZGV2KTsNCitpbnQgbWx4NV92c2NfZ3dfbG9jayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2 KTsNCitpbnQgbWx4NV92c2NfZ3dfdW5sb2NrKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpOw0K K2ludCBtbHg1X3ZzY19nd19zZXRfc3BhY2Uoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2 IHNwYWNlLA0KKwkJCSAgdTMyICpyZXRfc3BhY2Vfc2l6ZSk7DQoraW50IG1seDVfdnNjX2d3X3Jl YWRfYmxvY2tfZmFzdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MzIgKmRhdGEsDQorCQkJ CWludCBsZW5ndGgpOw0KKw0KK3N0YXRpYyBpbmxpbmUgYm9vbCBtbHg1X3ZzY19hY2Nlc3NpYmxl KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQorew0KKwlyZXR1cm4gISFkZXYtPnZzY19hZGRy Ow0KK30NCisNCisjZW5kaWYgLyogX19NTFg1X1BDSV9WU0NfSF9fICovDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMNCmluZGV4IDk2OTE3ZjQ0NGJl Zi4uNjRlYjJhNTU4YjMwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL21haW4uYw0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL21haW4uYw0KQEAgLTY1LDYgKzY1LDcgQEANCiAjaW5jbHVkZSAibGliL2Nsb2Nr LmgiDQogI2luY2x1ZGUgImxpYi92eGxhbi5oIg0KICNpbmNsdWRlICJsaWIvZGV2Y29tLmgiDQor I2luY2x1ZGUgImxpYi9wY2lfdnNjLmgiDQogI2luY2x1ZGUgImRpYWcvZndfdHJhY2VyLmgiDQog I2luY2x1ZGUgImVjcGYuaCINCiANCkBAIC0xMzEzLDYgKzEzMTQsOCBAQCBzdGF0aWMgaW50IGlu aXRfb25lKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAq aWQpDQogDQogCXJlcXVlc3RfbW9kdWxlX25vd2FpdChNTFg1X0lCX01PRCk7DQogDQorCW1seDVf dnNjX2luaXQoZGV2KTsNCisNCiAJZXJyID0gbWx4NV9kZXZsaW5rX3JlZ2lzdGVyKGRldmxpbmss ICZwZGV2LT5kZXYpOw0KIAlpZiAoZXJyKQ0KIAkJZ290byBjbGVhbl9sb2FkOw0KZGlmZiAtLWdp dCBhL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaCBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2 ZXIuaA0KaW5kZXggNWEzOWIzMjNjNTJlLi41NmQwYTExNmY1NzUgMTAwNjQ0DQotLS0gYS9pbmNs dWRlL2xpbnV4L21seDUvZHJpdmVyLmgNCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIu aA0KQEAgLTY5MSw2ICs2OTEsNyBAQCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiB7DQogCXN0cnVjdCBt bHg1X2liX2Nsb2NrX2luZm8gICpjbG9ja19pbmZvOw0KIAlzdHJ1Y3QgcGFnZSAgICAgICAgICAg ICAqY2xvY2tfaW5mb19wYWdlOw0KIAlzdHJ1Y3QgbWx4NV9md190cmFjZXIgICAqdHJhY2VyOw0K Kwl1MzIgICAgICAgICAgICAgICAgICAgICAgdnNjX2FkZHI7DQogfTsNCiANCiBzdHJ1Y3QgbWx4 NV9kYiB7DQotLSANCjIuMjAuMQ0KDQo=