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,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 BF40DC43219 for ; Wed, 1 May 2019 21:55:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 77D5C2089E for ; Wed, 1 May 2019 21:55:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="R5PNedBA" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726407AbfEAVzS (ORCPT ); Wed, 1 May 2019 17:55:18 -0400 Received: from mail-eopbgr20059.outbound.protection.outlook.com ([40.107.2.59]:32576 "EHLO EUR02-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726303AbfEAVzQ (ORCPT ); Wed, 1 May 2019 17:55:16 -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=WVMKeI2+7DgVMgWQQMLHTdoMc8Uk8s9dc58hKh7Jc8o=; b=R5PNedBAq5cLV7mN8mPdt+9wy37uV49s9aYGd1XfdBPK+zXeMqQhgXwdAPPgccPhrt3M4Hx3HqNNO/QfzrmWJQeyPkHqZWd//R7rvS1BG8D7XIkYNDDJgaInmeG905qdwzto+ic2/jRGKG0MaOjfMmvF8Rc7B/cv5RMknFTGKwo= Received: from DB8PR05MB5898.eurprd05.prod.outlook.com (20.179.9.32) by DB8PR05MB5868.eurprd05.prod.outlook.com (20.179.8.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.11; Wed, 1 May 2019 21:55:04 +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.008; Wed, 1 May 2019 21:55:04 +0000 From: Saeed Mahameed To: "David S. Miller" CC: "netdev@vger.kernel.org" , Parav Pandit , Saeed Mahameed Subject: [net-next V2 11/15] net/mlx5: Reuse mlx5_esw_for_each_vf_vport macro in two files Thread-Topic: [net-next V2 11/15] net/mlx5: Reuse mlx5_esw_for_each_vf_vport macro in two files Thread-Index: AQHVAGiIPXOfBEAa+km3Tag/nw5fmg== Date: Wed, 1 May 2019 21:55:04 +0000 Message-ID: <20190501215433.24047-12-saeedm@mellanox.com> References: <20190501215433.24047-1-saeedm@mellanox.com> In-Reply-To: <20190501215433.24047-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: [209.116.155.178] x-clientproxiedby: BYAPR01CA0012.prod.exchangelabs.com (2603:10b6:a02:80::25) 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: 07032acc-1523-4128-e2ae-08d6ce7faab0 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:DB8PR05MB5868; x-ms-traffictypediagnostic: DB8PR05MB5868: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-forefront-prvs: 00246AB517 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(136003)(396003)(376002)(366004)(39860400002)(346002)(199004)(189003)(5660300002)(256004)(86362001)(6512007)(66066001)(71190400001)(71200400001)(316002)(478600001)(446003)(11346002)(476003)(2616005)(186003)(1076003)(6486002)(26005)(486006)(6436002)(2906002)(102836004)(52116002)(6506007)(36756003)(6916009)(4326008)(76176011)(50226002)(107886003)(66446008)(68736007)(7736002)(66946007)(66476007)(66556008)(64756008)(53936002)(54906003)(305945005)(8676002)(81156014)(3846002)(81166006)(386003)(25786009)(73956011)(8936002)(99286004)(6116002)(14454004);DIR:OUT;SFP:1101;SCL:1;SRVR:DB8PR05MB5868;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: L7wVWWZIAWinkXn7wPNY5TkXDKgVW9w4ZI+xQ3IBpJ1p8MZqEZoWoHp3PpXH/UtVKLf6pL0OZ8HpPqEGQ6Vh4bRRMBT5qSowq4RQ80QArTI06P2QNoXpRWti3YTjWK6RsTHsb8Q1cKaBCg8jqFFGj3YMr+0LhbpTC3/XbjAe5lLtWC9+PzkixQZbF+EPhiJ3XGtva1WAUUMPR8rFx7r6JppaIFhOUcFf0u9g2912osvSFHkVepH70/wriGCvxOaC3kdJ9ccXBBKzlUxKnOLPp9oZ8QjsQuM+CusjTtsW0CdIElEtNjVCIs1Fi0G+e3oU2B3cgWK5Xwn7r7kGdNpy1VSN0dTABWY0hidvwnaKOQ10fPZzO62SgYYl0Di+cqF6iACCrz43RxBTInU40peHZUDTsTYWde22+Pu69P4b6hc= 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: 07032acc-1523-4128-e2ae-08d6ce7faab0 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 May 2019 21:55:04.3634 (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: DB8PR05MB5868 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RnJvbTogUGFyYXYgUGFuZGl0IDxwYXJhdkBtZWxsYW5veC5jb20+DQoNCkN1cnJlbnRseSBtbHg1 X2Vzd19mb3JfZWFjaF92Zl92cG9ydCBpdGVyYXRlcyBvdmVyIG1seDVfdnBvcnQgZW50cmllcyBp bg0KZXN3aXRjaC5jDQpTYW1lIG1hY3JvIGluIGVzd2l0Y2hfb2ZmbG9hZHMuYyBpdGVyYXRlcyBv dmVyIHZwb3J0IG51bWJlciBpbg0KZXN3aXRjaF9vZmZsb2Fkcy5jDQoNCkluc3RlYWQgb2YgZHVw bGljYXRlIG1hY3JvIG5hbWVzLCB0byBhdm9pZCBjb25mdXNpb24gYW5kIHRvIHJldXNlIHRoZQ0K c2FtZSBtYWNybyBpbiBib3RoIGZpbGVzLCBtb3ZlIGl0IHRvIGVzd2l0Y2guaC4NCg0KVG8gaXRl cmF0ZSBvdmVyIHZwb3J0IG51bWJlcnMgd2hlcmUgdGhlcmUgaXMgbm8gbmVlZCB0byBpdGVyYXRl IG92ZXINCm1seDVfdnBvcnQsIGJ1dCBvbmx5IGEgdnBvcnQgbnVtYmVyIGlzIG5lZWRlZCwgcmVu YW1lIHRob3NlIG1hY3JvcyBpbg0KZXN3aXRjaF9vZmZsb2Fkcy5jIHRvIG1seDVfZXN3X2Zvcl9l YWNoX3ZmX251bV92cG9ydCouDQoNCldoaWxlIGF0IGl0LCBrZWVwIGFsbCB2cG9ydCBhbmQgdnBv cnQgcmVwIGl0ZXJhdG9ycyB0b2dldGhlci4NCg0KU2lnbmVkLW9mZi1ieTogUGFyYXYgUGFuZGl0 IDxwYXJhdkBtZWxsYW5veC5jb20+DQpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2Fl ZWRtQG1lbGxhbm94LmNvbT4NCi0tLQ0KIC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2Vzd2l0Y2guYyB8IDEzIC0tLS0tDQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZXN3aXRjaC5oIHwgNDIgKysrKysrKysrKysrKysNCiAuLi4vbWVsbGFub3gvbWx4NS9j b3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYyAgICAgfCA1NSArKysrKystLS0tLS0tLS0tLS0tDQogMyBm aWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMoLSkNCg0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jDQppbmRl eCBmMGVmNGFjNTFiNDUuLjAxZGM4OWU5ZjkxZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMNCkBAIC03MiwxOSArNzIsNiBAQCBz dGF0aWMgdm9pZCBlc3dfY2xlYW51cF92ZXBhX3J1bGVzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVz dyk7DQogCQkJICAgIE1DX0FERFJfQ0hBTkdFIHwgXA0KIAkJCSAgICBQUk9NSVNDX0NIQU5HRSkN CiANCi0vKiBUaGUgdnBvcnQgZ2V0dGVyL2l0ZXJhdG9yIGFyZSBvbmx5IHZhbGlkIGFmdGVyIGVz dy0+dG90YWxfdnBvcnRzDQotICogYW5kIHZwb3J0LT52cG9ydCBhcmUgaW5pdGlhbGl6ZWQgaW4g bWx4NV9lc3dpdGNoX2luaXQuDQotICovDQotI2RlZmluZSBtbHg1X2Vzd19mb3JfYWxsX3Zwb3J0 cyhlc3csIGksIHZwb3J0KQkJCVwNCi0JZm9yICgoaSkgPSBNTFg1X1ZQT1JUX1BGOwkJCQlcDQot CSAgICAgKHZwb3J0KSA9ICYoZXN3KS0+dnBvcnRzW2ldLAkJCVwNCi0JICAgICAoaSkgPCAoZXN3 KS0+dG90YWxfdnBvcnRzOyAoaSkrKykNCi0NCi0jZGVmaW5lIG1seDVfZXN3X2Zvcl9lYWNoX3Zm X3Zwb3J0KGVzdywgaSwgdnBvcnQsIG52ZnMpCVwNCi0JZm9yICgoaSkgPSBNTFg1X1ZQT1JUX0ZJ UlNUX1ZGOwkJCQlcDQotCSAgICAgKHZwb3J0KSA9ICYoZXN3KS0+dnBvcnRzW2ldLAkJCVwNCi0J ICAgICAoaSkgPD0gKG52ZnMpOyAoaSkrKykNCi0NCiBzdGF0aWMgc3RydWN0IG1seDVfdnBvcnQg Km1seDVfZXN3aXRjaF9nZXRfdnBvcnQoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LA0KIAkJCQkJ CSB1MTYgdnBvcnRfbnVtKQ0KIHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2Vzd2l0Y2guaA0KaW5kZXggNDI0ZDQ1Y2Y5NDU0Li5mYzUxMmE1ZDBjNGMg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3 aXRjaC5oDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3 aXRjaC5oDQpAQCAtNDQ2LDYgKzQ0Niw0OCBAQCBzdGF0aWMgaW5saW5lIGludCBtbHg1X2Vzd2l0 Y2hfaW5kZXhfdG9fdnBvcnRfbnVtKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywNCiAvKiBUT0RP OiBUaGlzIG1seDVlX3RjIGZ1bmN0aW9uIHNob3VsZG4ndCBiZSBjYWxsZWQgYnkgZXN3aXRjaCAq Lw0KIHZvaWQgbWx4NWVfdGNfY2xlYW5fZmRiX3BlZXJfZmxvd3Moc3RydWN0IG1seDVfZXN3aXRj aCAqZXN3KTsNCiANCisvKiBUaGUgdnBvcnQgZ2V0dGVyL2l0ZXJhdG9yIGFyZSBvbmx5IHZhbGlk IGFmdGVyIGVzdy0+dG90YWxfdnBvcnRzDQorICogYW5kIHZwb3J0LT52cG9ydCBhcmUgaW5pdGlh bGl6ZWQgaW4gbWx4NV9lc3dpdGNoX2luaXQuDQorICovDQorI2RlZmluZSBtbHg1X2Vzd19mb3Jf YWxsX3Zwb3J0cyhlc3csIGksIHZwb3J0KQkJXA0KKwlmb3IgKChpKSA9IE1MWDVfVlBPUlRfUEY7 CQkJXA0KKwkgICAgICh2cG9ydCkgPSAmKGVzdyktPnZwb3J0c1tpXSwJCVwNCisJICAgICAoaSkg PCAoZXN3KS0+dG90YWxfdnBvcnRzOyAoaSkrKykNCisNCisjZGVmaW5lIG1seDVfZXN3X2Zvcl9l YWNoX3ZmX3Zwb3J0KGVzdywgaSwgdnBvcnQsIG52ZnMpCVwNCisJZm9yICgoaSkgPSBNTFg1X1ZQ T1JUX0ZJUlNUX1ZGOwkJCVwNCisJICAgICAodnBvcnQpID0gJihlc3cpLT52cG9ydHNbKGkpXSwJ CVwNCisJICAgICAoaSkgPD0gKG52ZnMpOyAoaSkrKykNCisNCisjZGVmaW5lIG1seDVfZXN3X2Zv cl9lYWNoX3ZmX3Zwb3J0X3JldmVyc2UoZXN3LCBpLCB2cG9ydCwgbnZmcykJXA0KKwlmb3IgKChp KSA9IChudmZzKTsJCQkJCVwNCisJICAgICAodnBvcnQpID0gJihlc3cpLT52cG9ydHNbKGkpXSwJ CQlcDQorCSAgICAgKGkpID49IE1MWDVfVlBPUlRfRklSU1RfVkY7IChpKS0tKQ0KKw0KKy8qIFRo ZSByZXAgZ2V0dGVyL2l0ZXJhdG9yIGFyZSBvbmx5IHZhbGlkIGFmdGVyIGVzdy0+dG90YWxfdnBv cnRzDQorICogYW5kIHZwb3J0LT52cG9ydCBhcmUgaW5pdGlhbGl6ZWQgaW4gbWx4NV9lc3dpdGNo X2luaXQuDQorICovDQorI2RlZmluZSBtbHg1X2Vzd19mb3JfYWxsX3JlcHMoZXN3LCBpLCByZXAp CQkJXA0KKwlmb3IgKChpKSA9IE1MWDVfVlBPUlRfUEY7CQkJCVwNCisJICAgICAocmVwKSA9ICYo ZXN3KS0+b2ZmbG9hZHMudnBvcnRfcmVwc1tpXSwJCVwNCisJICAgICAoaSkgPCAoZXN3KS0+dG90 YWxfdnBvcnRzOyAoaSkrKykNCisNCisjZGVmaW5lIG1seDVfZXN3X2Zvcl9lYWNoX3ZmX3JlcChl c3csIGksIHJlcCwgbnZmcykJCVwNCisJZm9yICgoaSkgPSBNTFg1X1ZQT1JUX0ZJUlNUX1ZGOwkJ CQlcDQorCSAgICAgKHJlcCkgPSAmKGVzdyktPm9mZmxvYWRzLnZwb3J0X3JlcHNbaV0sCQlcDQor CSAgICAgKGkpIDw9IChudmZzKTsgKGkpKyspDQorDQorI2RlZmluZSBtbHg1X2Vzd19mb3JfZWFj aF92Zl9yZXBfcmV2ZXJzZShlc3csIGksIHJlcCwgbnZmcykJXA0KKwlmb3IgKChpKSA9IChudmZz KTsJCQkJCVwNCisJICAgICAocmVwKSA9ICYoZXN3KS0+b2ZmbG9hZHMudnBvcnRfcmVwc1tpXSwJ CVwNCisJICAgICAoaSkgPj0gTUxYNV9WUE9SVF9GSVJTVF9WRjsgKGkpLS0pDQorDQorI2RlZmlu ZSBtbHg1X2Vzd19mb3JfZWFjaF92Zl92cG9ydF9udW0oZXN3LCB2cG9ydCwgbnZmcykJXA0KKwlm b3IgKCh2cG9ydCkgPSBNTFg1X1ZQT1JUX0ZJUlNUX1ZGOyAodnBvcnQpIDw9IChudmZzKTsgKHZw b3J0KSsrKQ0KKw0KKyNkZWZpbmUgbWx4NV9lc3dfZm9yX2VhY2hfdmZfdnBvcnRfbnVtX3JldmVy c2UoZXN3LCB2cG9ydCwgbnZmcykJXA0KKwlmb3IgKCh2cG9ydCkgPSAobnZmcyk7ICh2cG9ydCkg Pj0gTUxYNV9WUE9SVF9GSVJTVF9WRjsgKHZwb3J0KS0tKQ0KKw0KICNlbHNlICAvKiBDT05GSUdf TUxYNV9FU1dJVENIICovDQogLyogZXN3aXRjaCBBUEkgc3R1YnMgKi8NCiBzdGF0aWMgaW5saW5l IGludCAgbWx4NV9lc3dpdGNoX2luaXQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikgeyByZXR1 cm4gMDsgfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lc3dpdGNoX29mZmxvYWRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jDQppbmRleCBmMzcxZTc5Y2JjOWYuLmU4OGZlYWEy OTNmNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lc3dpdGNoX29mZmxvYWRzLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMNCkBAIC01NCwzMiArNTQsNiBAQA0KIA0KICNk ZWZpbmUgVVBMSU5LX1JFUF9JTkRFWCAwDQogDQotLyogVGhlIHJlcCBnZXR0ZXIvaXRlcmF0b3Ig YXJlIG9ubHkgdmFsaWQgYWZ0ZXIgZXN3LT50b3RhbF92cG9ydHMNCi0gKiBhbmQgdnBvcnQtPnZw b3J0IGFyZSBpbml0aWFsaXplZCBpbiBtbHg1X2Vzd2l0Y2hfaW5pdC4NCi0gKi8NCi0jZGVmaW5l IG1seDVfZXN3X2Zvcl9hbGxfcmVwcyhlc3csIGksIHJlcCkJCQlcDQotCWZvciAoKGkpID0gTUxY NV9WUE9SVF9QRjsJCQkJXA0KLQkgICAgIChyZXApID0gJihlc3cpLT5vZmZsb2Fkcy52cG9ydF9y ZXBzW2ldLAkJXA0KLQkgICAgIChpKSA8IChlc3cpLT50b3RhbF92cG9ydHM7IChpKSsrKQ0KLQ0K LSNkZWZpbmUgbWx4NV9lc3dfZm9yX2VhY2hfdmZfcmVwKGVzdywgaSwgcmVwLCBudmZzKQkJXA0K LQlmb3IgKChpKSA9IE1MWDVfVlBPUlRfRklSU1RfVkY7CQkJCVwNCi0JICAgICAocmVwKSA9ICYo ZXN3KS0+b2ZmbG9hZHMudnBvcnRfcmVwc1tpXSwJCVwNCi0JICAgICAoaSkgPD0gKG52ZnMpOyAo aSkrKykNCi0NCi0jZGVmaW5lIG1seDVfZXN3X2Zvcl9lYWNoX3ZmX3JlcF9yZXZlcnNlKGVzdywg aSwgcmVwLCBudmZzKQlcDQotCWZvciAoKGkpID0gKG52ZnMpOwkJCQkJXA0KLQkgICAgIChyZXAp ID0gJihlc3cpLT5vZmZsb2Fkcy52cG9ydF9yZXBzW2ldLAkJXA0KLQkgICAgIChpKSA+PSBNTFg1 X1ZQT1JUX0ZJUlNUX1ZGOyAoaSktLSkNCi0NCi0jZGVmaW5lIG1seDVfZXN3X2Zvcl9lYWNoX3Zm X3Zwb3J0KGVzdywgdnBvcnQsIG52ZnMpCQlcDQotCWZvciAoKHZwb3J0KSA9IE1MWDVfVlBPUlRf RklSU1RfVkY7CQkJXA0KLQkgICAgICh2cG9ydCkgPD0gKG52ZnMpOyAodnBvcnQpKyspDQotDQot I2RlZmluZSBtbHg1X2Vzd19mb3JfZWFjaF92Zl92cG9ydF9yZXZlcnNlKGVzdywgdnBvcnQsIG52 ZnMpCVwNCi0JZm9yICgodnBvcnQpID0gKG52ZnMpOwkJCQkJXA0KLQkgICAgICh2cG9ydCkgPj0g TUxYNV9WUE9SVF9GSVJTVF9WRjsgKHZwb3J0KS0tKQ0KLQ0KIHN0YXRpYyBzdHJ1Y3QgbWx4NV9l c3dpdGNoX3JlcCAqbWx4NV9lc3dpdGNoX2dldF9yZXAoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3 LA0KIAkJCQkJCSAgICAgdTE2IHZwb3J0X251bSkNCiB7DQpAQCAtNjU5LDcgKzYzMyw3IEBAIHN0 YXRpYyBpbnQgZXN3X2FkZF9mZGJfcGVlcl9taXNzX3J1bGVzKHN0cnVjdCBtbHg1X2Vzd2l0Y2gg KmVzdywNCiAJCWZsb3dzW21seDVfZXN3aXRjaF9lY3BmX2lkeChlc3cpXSA9IGZsb3c7DQogCX0N CiANCi0JbWx4NV9lc3dfZm9yX2VhY2hfdmZfdnBvcnQoZXN3LCBpLCBtbHg1X2NvcmVfbWF4X3Zm cyhlc3ctPmRldikpIHsNCisJbWx4NV9lc3dfZm9yX2VhY2hfdmZfdnBvcnRfbnVtKGVzdywgaSwg bWx4NV9jb3JlX21heF92ZnMoZXN3LT5kZXYpKSB7DQogCQlNTFg1X1NFVChmdGVfbWF0Y2hfc2V0 X21pc2MsIG1pc2MsIHNvdXJjZV9wb3J0LCBpKTsNCiAJCWZsb3cgPSBtbHg1X2FkZF9mbG93X3J1 bGVzKGVzdy0+ZmRiX3RhYmxlLm9mZmxvYWRzLnNsb3dfZmRiLA0KIAkJCQkJICAgc3BlYywgJmZs b3dfYWN0LCAmZGVzdCwgMSk7DQpAQCAtNjc3LDcgKzY1MSw3IEBAIHN0YXRpYyBpbnQgZXN3X2Fk ZF9mZGJfcGVlcl9taXNzX3J1bGVzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywNCiANCiBhZGRf dmZfZmxvd19lcnI6DQogCW52cG9ydHMgPSAtLWk7DQotCW1seDVfZXN3X2Zvcl9lYWNoX3ZmX3Zw b3J0X3JldmVyc2UoZXN3LCBpLCBudnBvcnRzKQ0KKwltbHg1X2Vzd19mb3JfZWFjaF92Zl92cG9y dF9udW1fcmV2ZXJzZShlc3csIGksIG52cG9ydHMpDQogCQltbHg1X2RlbF9mbG93X3J1bGVzKGZs b3dzW2ldKTsNCiANCiAJaWYgKG1seDVfZWNwZl92cG9ydF9leGlzdHMoZXN3LT5kZXYpKQ0KQEAg LTcwMCw3ICs2NzQsOCBAQCBzdGF0aWMgdm9pZCBlc3dfZGVsX2ZkYl9wZWVyX21pc3NfcnVsZXMo c3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KQ0KIA0KIAlmbG93cyA9IGVzdy0+ZmRiX3RhYmxlLm9m ZmxvYWRzLnBlZXJfbWlzc19ydWxlczsNCiANCi0JbWx4NV9lc3dfZm9yX2VhY2hfdmZfdnBvcnRf cmV2ZXJzZShlc3csIGksIG1seDVfY29yZV9tYXhfdmZzKGVzdy0+ZGV2KSkNCisJbWx4NV9lc3df Zm9yX2VhY2hfdmZfdnBvcnRfbnVtX3JldmVyc2UoZXN3LCBpLA0KKwkJCQkJICAgICAgIG1seDVf Y29yZV9tYXhfdmZzKGVzdy0+ZGV2KSkNCiAJCW1seDVfZGVsX2Zsb3dfcnVsZXMoZmxvd3NbaV0p Ow0KIA0KIAlpZiAobWx4NV9lY3BmX3Zwb3J0X2V4aXN0cyhlc3ctPmRldikpDQpAQCAtMTcyNywx NCArMTcwMiwxNSBAQCBzdGF0aWMgaW50IGVzd192cG9ydF9lZ3Jlc3NfcHJpb190YWdfY29uZmln KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywNCiANCiBzdGF0aWMgaW50IGVzd19wcmlvX3RhZ19h Y2xzX2NvbmZpZyhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGludCBudnBvcnRzKQ0KIHsNCisJ c3RydWN0IG1seDVfdnBvcnQgKnZwb3J0ID0gTlVMTDsNCiAJaW50IGksIGo7DQogCWludCBlcnI7 DQogDQotCW1seDVfZXN3X2Zvcl9lYWNoX3ZmX3Zwb3J0KGVzdywgaSwgbnZwb3J0cykgew0KLQkJ ZXJyID0gZXN3X3Zwb3J0X2luZ3Jlc3NfcHJpb190YWdfY29uZmlnKGVzdywgJmVzdy0+dnBvcnRz W2ldKTsNCisJbWx4NV9lc3dfZm9yX2VhY2hfdmZfdnBvcnQoZXN3LCBpLCB2cG9ydCwgbnZwb3J0 cykgew0KKwkJZXJyID0gZXN3X3Zwb3J0X2luZ3Jlc3NfcHJpb190YWdfY29uZmlnKGVzdywgdnBv cnQpOw0KIAkJaWYgKGVycikNCiAJCQlnb3RvIGVycl9pbmdyZXNzOw0KLQkJZXJyID0gZXN3X3Zw b3J0X2VncmVzc19wcmlvX3RhZ19jb25maWcoZXN3LCAmZXN3LT52cG9ydHNbaV0pOw0KKwkJZXJy ID0gZXN3X3Zwb3J0X2VncmVzc19wcmlvX3RhZ19jb25maWcoZXN3LCB2cG9ydCk7DQogCQlpZiAo ZXJyKQ0KIAkJCWdvdG8gZXJyX2VncmVzczsNCiAJfQ0KQEAgLTE3NDIsMTEgKzE3MTgsMTEgQEAg c3RhdGljIGludCBlc3dfcHJpb190YWdfYWNsc19jb25maWcoc3RydWN0IG1seDVfZXN3aXRjaCAq ZXN3LCBpbnQgbnZwb3J0cykNCiAJcmV0dXJuIDA7DQogDQogZXJyX2VncmVzczoNCi0JZXN3X3Zw b3J0X2Rpc2FibGVfaW5ncmVzc19hY2woZXN3LCAmZXN3LT52cG9ydHNbaV0pOw0KKwllc3dfdnBv cnRfZGlzYWJsZV9pbmdyZXNzX2FjbChlc3csIHZwb3J0KTsNCiBlcnJfaW5ncmVzczoNCi0JbWx4 NV9lc3dfZm9yX2VhY2hfdmZfdnBvcnRfcmV2ZXJzZShlc3csIGosIGkgLSAxKSB7DQotCQllc3df dnBvcnRfZGlzYWJsZV9lZ3Jlc3NfYWNsKGVzdywgJmVzdy0+dnBvcnRzW2pdKTsNCi0JCWVzd192 cG9ydF9kaXNhYmxlX2luZ3Jlc3NfYWNsKGVzdywgJmVzdy0+dnBvcnRzW2pdKTsNCisJbWx4NV9l c3dfZm9yX2VhY2hfdmZfdnBvcnRfcmV2ZXJzZShlc3csIGosIHZwb3J0LCBpIC0gMSkgew0KKwkJ ZXN3X3Zwb3J0X2Rpc2FibGVfZWdyZXNzX2FjbChlc3csIHZwb3J0KTsNCisJCWVzd192cG9ydF9k aXNhYmxlX2luZ3Jlc3NfYWNsKGVzdywgdnBvcnQpOw0KIAl9DQogDQogCXJldHVybiBlcnI7DQpA QCAtMTc1NCwxMSArMTczMCwxMiBAQCBzdGF0aWMgaW50IGVzd19wcmlvX3RhZ19hY2xzX2NvbmZp ZyhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGludCBudnBvcnRzKQ0KIA0KIHN0YXRpYyB2b2lk IGVzd19wcmlvX3RhZ19hY2xzX2NsZWFudXAoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KQ0KIHsN CisJc3RydWN0IG1seDVfdnBvcnQgKnZwb3J0Ow0KIAlpbnQgaTsNCiANCi0JbWx4NV9lc3dfZm9y X2VhY2hfdmZfdnBvcnQoZXN3LCBpLCBlc3ctPm52cG9ydHMpIHsNCi0JCWVzd192cG9ydF9kaXNh YmxlX2VncmVzc19hY2woZXN3LCAmZXN3LT52cG9ydHNbaV0pOw0KLQkJZXN3X3Zwb3J0X2Rpc2Fi bGVfaW5ncmVzc19hY2woZXN3LCAmZXN3LT52cG9ydHNbaV0pOw0KKwltbHg1X2Vzd19mb3JfZWFj aF92Zl92cG9ydChlc3csIGksIHZwb3J0LCBlc3ctPm52cG9ydHMpIHsNCisJCWVzd192cG9ydF9k aXNhYmxlX2VncmVzc19hY2woZXN3LCB2cG9ydCk7DQorCQllc3dfdnBvcnRfZGlzYWJsZV9pbmdy ZXNzX2FjbChlc3csIHZwb3J0KTsNCiAJfQ0KIH0NCiANCi0tIA0KMi4yMC4xDQoNCg==