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.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 35F65C4321A for ; Fri, 28 Jun 2019 22:36:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E1CA5208CB for ; Fri, 28 Jun 2019 22:36:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="XU3WhAWm" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727054AbfF1Wgk (ORCPT ); Fri, 28 Jun 2019 18:36:40 -0400 Received: from mail-eopbgr70049.outbound.protection.outlook.com ([40.107.7.49]:23750 "EHLO EUR04-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726962AbfF1Wgj (ORCPT ); Fri, 28 Jun 2019 18:36:39 -0400 ARC-Seal: i=1; a=rsa-sha256; s=testarcselector01; d=microsoft.com; cv=none; b=C866v5h4pYMM81FL98EQrfIS1DiVwJbOsvlz5p9kr37+hzxezlz2KWKvabddXHEXcEhiTYgYXM2TBBBi7WLZ6TXLbU5lN49HHYjsfFlkzsi4vHWr6MrVPNVs62k9kU/W6VXAOPuen5oRw0pIzoixteHP1DWMlpTc5YS21G3zbIU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=testarcselector01; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h9jDm7SXUymSMpZShDggFbRVSL6C/0GH4dcWie/J8oY=; b=bNDag0y2xG3ozjnEsfpgRFXXh+hDsgqED09GOk/MJMJVIvM4yAwC7DdW6srkghVW6A1ESMlFRAkFeOi//zdNBil5hzd9IpsfESdKSzR3s5YmnphKfVtCQ/5HUh4dwpmhXWH+9Ax6OxNfQS/FyFIOuHxlFPyddyUto8ZK/n2q87U= ARC-Authentication-Results: i=1; test.office365.com 1;spf=none;dmarc=none;dkim=none;arc=none 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=h9jDm7SXUymSMpZShDggFbRVSL6C/0GH4dcWie/J8oY=; b=XU3WhAWm1QjNl7YfWysFRBxHHpc6mSfpQ2mONRtN4MSFAw2eNK2lII0p0FrRbFbam9XcdWatn5BOqJuzygTreYfxurIwa0tnlerOi4iPLog2LC3nG5zZXk08vZrJ7fV6TRVwJo+eK7Rp5p3ytgrJtv0ZaOGpcDpy+lvbrPAuaUg= Received: from DB6PR0501MB2759.eurprd05.prod.outlook.com (10.172.227.7) by DB6PR0501MB2357.eurprd05.prod.outlook.com (10.168.56.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2008.17; Fri, 28 Jun 2019 22:36:17 +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.2008.014; Fri, 28 Jun 2019 22:36:17 +0000 From: Saeed Mahameed To: Saeed Mahameed , Leon Romanovsky CC: "netdev@vger.kernel.org" , "linux-rdma@vger.kernel.org" , Bodong Wang Subject: [PATCH mlx5-next 14/18] net/mlx5: E-Switch, Consolidate eswitch function number of VFs Thread-Topic: [PATCH mlx5-next 14/18] net/mlx5: E-Switch, Consolidate eswitch function number of VFs Thread-Index: AQHVLgHmfNnbAzt/7EWh2kv3GSCk3g== Date: Fri, 28 Jun 2019 22:36:16 +0000 Message-ID: <20190628223516.9368-15-saeedm@mellanox.com> References: <20190628223516.9368-1-saeedm@mellanox.com> In-Reply-To: <20190628223516.9368-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: BY5PR13CA0035.namprd13.prod.outlook.com (2603:10b6:a03:180::48) 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: 0dc180b0-3adf-406e-5ed4-08d6fc19086f 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:DB6PR0501MB2357; x-ms-traffictypediagnostic: DB6PR0501MB2357: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1332; x-forefront-prvs: 00826B6158 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(39860400002)(396003)(346002)(366004)(136003)(376002)(189003)(199004)(107886003)(6436002)(1076003)(3846002)(6116002)(256004)(30864003)(66446008)(50226002)(6636002)(66066001)(53936002)(36756003)(71200400001)(71190400001)(186003)(8676002)(52116002)(4326008)(5660300002)(14444005)(26005)(6506007)(305945005)(450100002)(11346002)(446003)(478600001)(76176011)(64756008)(99286004)(386003)(102836004)(6512007)(110136005)(2906002)(316002)(66476007)(53946003)(68736007)(14454004)(81166006)(486006)(86362001)(81156014)(73956011)(66946007)(2616005)(6486002)(476003)(66556008)(8936002)(25786009)(54906003)(7736002);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0501MB2357;H:DB6PR0501MB2759.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: dXqD1mbm3hMU66l653Qh7vgp234bdwGqQJUuAU4tpZfs72a0dcrFM37PDdQ3TKT9SFcL9W4/fgeS5QnbZo2VuPDlvNoiP3HyN7Pdeeu2jG6E/c5Yf/hoRrx3GG1JF+Em/EfoR72I3jm9yDeVCxMgTMMhe8WgqLsqPU3G4aIBk7f3809yDwh0r8JZeNZEEE952koEi56rmyqF1TlWopkFqGLjQOXzs8sZeBt6gx0Cuj+93l0JhLPad9/9vBK7dzua9e2g6dj/ahyGf0bvvA6hXleQ8oaqMszqQVymF9Lslz8Ekds5mlFyEmpkBWE3v1h8zbwYPXwON0BYU+DGSZn2sJlnEQiFr6KU5aakqzxyvBSP6WWgBQAy/cYrdaUkDkGmCypOhSRRbMGjETOjInSwDN77EF+kZmnaYwXfiROnzhk= 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: 0dc180b0-3adf-406e-5ed4-08d6fc19086f X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jun 2019 22:36:16.9645 (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: DB6PR0501MB2357 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RnJvbTogQm9kb25nIFdhbmcgPGJvZG9uZ0BtZWxsYW5veC5jb20+DQoNCkVuYWJsZWQgbnVtYmVy IG9mIFZGcyBpcyBrZXkgZm9yIGVzd2ljaCBtYW5hZ2VyIHRvIGRvIGZsb3cgc3RlZXJpbmcNCmlu aXRpYWxpemF0aW9uIGFuZCB2cG9ydCBjb25maWd1cmF0aW9ucy4gSG93ZXZlciwgdGhlIG51bWJl ciBvZg0KZW5hYmxlZCBWRnMgbWF5IGNvbWUgZnJvbSB0d28gc291cmNlcyBhcyBiZWxvdy4NCg0K UEY6IG51bSBvZiBWRnMgaXMgcHJvdmlkZWQgYnkgZW5hYmxlZCBTUi1JT1Ygb2YgaXRzZWxmLg0K RUNQRjogbnVtIG9mIFZGcyBpcyBwcm92aWRlZCBieSBlbmFibGVkIFNSLUlPViBmcm9tIGl0cyBw ZWVyIFBGLiBBbmQNCiAgICAgIFNSLUlPViBjYW4ndCBiZSBlbmFibGVkIGZyb20gRUNQRiBpdHNl bGYuDQoNCkN1cnJlbnQgZHJpdmVyIGhhbmRsZXMgdGhlIHR3byBjYXNlcyBpbiBkaWZmZXJlbnQg c3RhZ2VzIGFuZCBwYXNzaW5nDQp0aGUgbnVtYmVyIG9mIGVuYWJsZWQgVkZzIGFtb25nIGEgbGFy Z2Ugc2NvcGUgb2YgaW50ZXJuYWwgZnVuY3Rpb25zLg0KSXQgaXMgdXN1YWxseSBoYXJkIHRvIGZp bmQgb3V0IHdoZXJlIGlzIHRoZSByZWFsIG51bWJlciBvZiBWRnMgZnJvbQ0KZHVlIHRvIGxheWVy cyBvZiBhcmd1bWVudCBwYXNzLWluLg0KDQpUaGlzIHBhdGNoIGNvbnNvbGlkYXRlZCB0aGF0IG51 bWJlciBmcm9tIHRoZSBlbnRyeSBwb2ludCBvZiBkb2luZw0KZXN3aXRjaCBzZXR1cCwgYW5kIG1h aW50YWluZWQgYSBjb3B5IHNvIHRoYXQgZXN3aXRjaCBmdW5jdGlvbnMgY2FuDQpyZWZlciB0byBp dCBkaXJlY3RseS4NCg0KRXN3aXRjaCBkcml2ZXIgc2hhbGwgYWx3YXlzIHVzZSB0aGlzIG51bWJl ciB3aGVuIHJlZmVycmluZyB0byBlbmFibGVkDQpudW1iZXIgb2YgVkZzLCBkb24ndCB1c2Ugb3Ro ZXIgbnVtYmVycyBzdWNoIGFzIGZyb20gU1ItSU9WLg0KDQpTaWduZWQtb2ZmLWJ5OiBCb2Rvbmcg V2FuZyA8Ym9kb25nQG1lbGxhbm94LmNvbT4NClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVk IDxzYWVlZG1AbWVsbGFub3guY29tPg0KLS0tDQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZXN3aXRjaC5jIHwgIDM2ICsrKy0tDQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZXN3aXRjaC5oIHwgIDEzICstDQogLi4uL21lbGxhbm94L21seDUvY29yZS9l c3dpdGNoX29mZmxvYWRzLmMgICAgIHwgMTI2ICsrKysrKysrLS0tLS0tLS0tLQ0KIC4uLi9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3NyaW92LmMgICB8ICAgMyArLQ0KIDQgZmlsZXMg Y2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgODggZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guYw0KaW5kZXggYjQy NTQwZTFiYTZlLi5iNGY5NmYwNGExOGIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5jDQpAQCAtMTcyOCwxMCArMTcyOCw5IEBAIGlu dCBtbHg1X2Vzd19xdWVyeV9mdW5jdGlvbnMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTMy ICpvdXQsIGludCBvdXRsZW4pDQogLyogUHVibGljIEUtU3dpdGNoIEFQSSAqLw0KICNkZWZpbmUg RVNXX0FMTE9XRUQoZXN3KSAoKGVzdykgJiYgTUxYNV9FU1dJVENIX01BTkFHRVIoKGVzdyktPmRl dikpDQogDQotaW50IG1seDVfZXN3aXRjaF9lbmFibGUoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3 LCBpbnQgbnZmcywgaW50IG1vZGUpDQoraW50IG1seDVfZXN3aXRjaF9lbmFibGUoc3RydWN0IG1s eDVfZXN3aXRjaCAqZXN3LCBpbnQgbW9kZSkNCiB7DQogCXN0cnVjdCBtbHg1X3Zwb3J0ICp2cG9y dDsNCi0JaW50IHRvdGFsX252cG9ydHMgPSAwOw0KIAlpbnQgZXJyOw0KIAlpbnQgaSwgZW5hYmxl ZF9ldmVudHM7DQogDQpAQCAtMTc0NywxMyArMTc0Niw2IEBAIGludCBtbHg1X2Vzd2l0Y2hfZW5h YmxlKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgaW50IG52ZnMsIGludCBtb2RlKQ0KIAlpZiAo IU1MWDVfQ0FQX0VTV19FR1JFU1NfQUNMKGVzdy0+ZGV2LCBmdF9zdXBwb3J0KSkNCiAJCWVzd193 YXJuKGVzdy0+ZGV2LCAiZW5ncmVzcyBBQ0wgaXMgbm90IHN1cHBvcnRlZCBieSBGV1xuIik7DQog DQotCWlmIChtb2RlID09IE1MWDVfRVNXSVRDSF9PRkZMT0FEUykgew0KLQkJaWYgKG1seDVfY29y ZV9pc19lY3BmX2Vzd19tYW5hZ2VyKGVzdy0+ZGV2KSkNCi0JCQl0b3RhbF9udnBvcnRzID0gZXN3 LT50b3RhbF92cG9ydHM7DQotCQllbHNlDQotCQkJdG90YWxfbnZwb3J0cyA9IG52ZnMgKyBNTFg1 X1NQRUNJQUxfVlBPUlRTKGVzdy0+ZGV2KTsNCi0JfQ0KLQ0KIAllc3ctPm1vZGUgPSBtb2RlOw0K IA0KIAltbHg1X2xhZ191cGRhdGUoZXN3LT5kZXYpOw0KQEAgLTE3NjUsNyArMTc1Nyw3IEBAIGlu dCBtbHg1X2Vzd2l0Y2hfZW5hYmxlKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgaW50IG52ZnMs IGludCBtb2RlKQ0KIAl9IGVsc2Ugew0KIAkJbWx4NV9yZWxvYWRfaW50ZXJmYWNlKGVzdy0+ZGV2 LCBNTFg1X0lOVEVSRkFDRV9QUk9UT0NPTF9FVEgpOw0KIAkJbWx4NV9yZWxvYWRfaW50ZXJmYWNl KGVzdy0+ZGV2LCBNTFg1X0lOVEVSRkFDRV9QUk9UT0NPTF9JQik7DQotCQllcnIgPSBlc3dfb2Zm bG9hZHNfaW5pdChlc3csIG52ZnMsIHRvdGFsX252cG9ydHMpOw0KKwkJZXJyID0gZXN3X29mZmxv YWRzX2luaXQoZXN3KTsNCiAJfQ0KIA0KIAlpZiAoZXJyKQ0KQEAgLTE3OTIsNyArMTc4NCw3IEBA IGludCBtbHg1X2Vzd2l0Y2hfZW5hYmxlKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgaW50IG52 ZnMsIGludCBtb2RlKQ0KIAl9DQogDQogCS8qIEVuYWJsZSBWRiB2cG9ydHMgKi8NCi0JbWx4NV9l c3dfZm9yX2VhY2hfdmZfdnBvcnQoZXN3LCBpLCB2cG9ydCwgbnZmcykNCisJbWx4NV9lc3dfZm9y X2VhY2hfdmZfdnBvcnQoZXN3LCBpLCB2cG9ydCwgZXN3LT5lc3dfZnVuY3MubnVtX3ZmcykNCiAJ CWVzd19lbmFibGVfdnBvcnQoZXN3LCB2cG9ydCwgZW5hYmxlZF9ldmVudHMpOw0KIA0KIAlpZiAo bW9kZSA9PSBNTFg1X0VTV0lUQ0hfTEVHQUNZKSB7DQpAQCAtMTgwMiw3ICsxNzk0LDcgQEAgaW50 IG1seDVfZXN3aXRjaF9lbmFibGUoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZmcywg aW50IG1vZGUpDQogDQogCWVzd19pbmZvKGVzdy0+ZGV2LCAiRW5hYmxlOiBtb2RlKCVzKSwgbnZm cyglZCksIGFjdGl2ZSB2cG9ydHMoJWQpXG4iLA0KIAkJIG1vZGUgPT0gTUxYNV9FU1dJVENIX0xF R0FDWSA/ICJMRUdBQ1kiIDogIk9GRkxPQURTIiwNCi0JCSBudmZzLCBlc3ctPmVuYWJsZWRfdnBv cnRzKTsNCisJCSBlc3ctPmVzd19mdW5jcy5udW1fdmZzLCBlc3ctPmVuYWJsZWRfdnBvcnRzKTsN CiANCiAJcmV0dXJuIDA7DQogDQpAQCAtMTgyOSw3ICsxODIxLDcgQEAgdm9pZCBtbHg1X2Vzd2l0 Y2hfZGlzYWJsZShzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpDQogDQogCWVzd19pbmZvKGVzdy0+ ZGV2LCAiRGlzYWJsZTogbW9kZSglcyksIG52ZnMoJWQpLCBhY3RpdmUgdnBvcnRzKCVkKVxuIiwN CiAJCSBlc3ctPm1vZGUgPT0gTUxYNV9FU1dJVENIX0xFR0FDWSA/ICJMRUdBQ1kiIDogIk9GRkxP QURTIiwNCi0JCSBlc3ctPmRldi0+cHJpdi5zcmlvdi5udW1fdmZzLCBlc3ctPmVuYWJsZWRfdnBv cnRzKTsNCisJCSBlc3ctPmVzd19mdW5jcy5udW1fdmZzLCBlc3ctPmVuYWJsZWRfdnBvcnRzKTsN CiANCiAJbWNfcHJvbWlzYyA9ICZlc3ctPm1jX3Byb21pc2M7DQogDQpAQCAtMjUxNSwzICsyNTA3 LDIxIEBAIGJvb2wgbWx4NV9lc3dfbXVsdGlwYXRoX3ByZXJlcShzdHJ1Y3QgbWx4NV9jb3JlX2Rl diAqZGV2MCwNCiAJcmV0dXJuIChkZXYwLT5wcml2LmVzd2l0Y2gtPm1vZGUgPT0gTUxYNV9FU1dJ VENIX09GRkxPQURTICYmDQogCQlkZXYxLT5wcml2LmVzd2l0Y2gtPm1vZGUgPT0gTUxYNV9FU1dJ VENIX09GRkxPQURTKTsNCiB9DQorDQordm9pZCBtbHg1X2Vzd2l0Y2hfdXBkYXRlX251bV9vZl92 ZnMoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBjb25zdCBpbnQgbnVtX3ZmcykNCit7DQorCXUz MiBvdXRbTUxYNV9TVF9TWl9EVyhxdWVyeV9lc3dfZnVuY3Rpb25zX291dCldID0ge307DQorCWlu dCBlcnI7DQorDQorCVdBUk5fT05fT05DRShlc3ctPm1vZGUgIT0gTUxYNV9FU1dJVENIX05PTkUp Ow0KKw0KKwlpZiAoIW1seDVfY29yZV9pc19lY3BmX2Vzd19tYW5hZ2VyKGVzdy0+ZGV2KSkgew0K KwkJZXN3LT5lc3dfZnVuY3MubnVtX3ZmcyA9IG51bV92ZnM7DQorCQlyZXR1cm47DQorCX0NCisN CisJZXJyID0gbWx4NV9lc3dfcXVlcnlfZnVuY3Rpb25zKGVzdy0+ZGV2LCBvdXQsIHNpemVvZihv dXQpKTsNCisJaWYgKCFlcnIpDQorCQllc3ctPmVzd19mdW5jcy5udW1fdmZzID0gTUxYNV9HRVQo cXVlcnlfZXN3X2Z1bmN0aW9uc19vdXQsIG91dCwNCisJCQkJCQkgIGhvc3RfcGFyYW1zX2NvbnRl eHQuaG9zdF9udW1fb2ZfdmZzKTsNCit9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2guaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lc3dpdGNoLmgNCmluZGV4IDI3M2ExNzI0MzI3NS4uNzQ0MzUyYmFm NDM0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2Vzd2l0Y2guaA0KKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2Vzd2l0Y2guaA0KQEAgLTIzMSw4ICsyMzEsNyBAQCBzdHJ1Y3QgbWx4NV9lc3dpdGNoIHsNCiB9 Ow0KIA0KIHZvaWQgZXN3X29mZmxvYWRzX2NsZWFudXAoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3 KTsNCi1pbnQgZXN3X29mZmxvYWRzX2luaXQoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQg dmZfbnZwb3J0cywNCi0JCSAgICAgIGludCB0b3RhbF9udnBvcnRzKTsNCitpbnQgZXN3X29mZmxv YWRzX2luaXQoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KTsNCiB2b2lkIGVzd19vZmZsb2Fkc19j bGVhbnVwX3JlcHMoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KTsNCiBpbnQgZXN3X29mZmxvYWRz X2luaXRfcmVwcyhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpOw0KIHZvaWQgZXN3X3Zwb3J0X2Ns ZWFudXBfaW5ncmVzc19ydWxlcyhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csDQpAQCAtMjUzLDcg KzI1Miw3IEBAIHZvaWQgZXN3X3Zwb3J0X2RlbF9pbmdyZXNzX2FjbF9tb2RpZnlfbWV0YWRhdGEo c3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LA0KIC8qIEUtU3dpdGNoIEFQSSAqLw0KIGludCBtbHg1 X2Vzd2l0Y2hfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KTsNCiB2b2lkIG1seDVfZXN3 aXRjaF9jbGVhbnVwKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyk7DQotaW50IG1seDVfZXN3aXRj aF9lbmFibGUoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZmcywgaW50IG1vZGUpOw0K K2ludCBtbHg1X2Vzd2l0Y2hfZW5hYmxlKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgaW50IG1v ZGUpOw0KIHZvaWQgbWx4NV9lc3dpdGNoX2Rpc2FibGUoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3 KTsNCiBpbnQgbWx4NV9lc3dpdGNoX3NldF92cG9ydF9tYWMoc3RydWN0IG1seDVfZXN3aXRjaCAq ZXN3LA0KIAkJCSAgICAgICBpbnQgdnBvcnQsIHU4IG1hY1tFVEhfQUxFTl0pOw0KQEAgLTM3MCw3 ICszNjksNyBAQCBpbnQgbWx4NV9kZXZsaW5rX2Vzd2l0Y2hfbW9kZV9nZXQoc3RydWN0IGRldmxp bmsgKmRldmxpbmssIHUxNiAqbW9kZSk7DQogaW50IG1seDVfZGV2bGlua19lc3dpdGNoX2lubGlu ZV9tb2RlX3NldChzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTggbW9kZSwNCiAJCQkJCSBzdHJ1 Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spOw0KIGludCBtbHg1X2RldmxpbmtfZXN3aXRjaF9p bmxpbmVfbW9kZV9nZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHU4ICptb2RlKTsNCi1pbnQg bWx4NV9lc3dpdGNoX2lubGluZV9tb2RlX2dldChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGlu dCBudmZzLCB1OCAqbW9kZSk7DQoraW50IG1seDVfZXN3aXRjaF9pbmxpbmVfbW9kZV9nZXQoc3Ry dWN0IG1seDVfZXN3aXRjaCAqZXN3LCB1OCAqbW9kZSk7DQogaW50IG1seDVfZGV2bGlua19lc3dp dGNoX2VuY2FwX21vZGVfc2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLA0KIAkJCQkJZW51bSBk ZXZsaW5rX2Vzd2l0Y2hfZW5jYXBfbW9kZSBlbmNhcCwNCiAJCQkJCXN0cnVjdCBuZXRsaW5rX2V4 dF9hY2sgKmV4dGFjayk7DQpAQCAtNTI0LDExICs1MjMsMTMgQEAgbWx4NV9lc3dpdGNoX2dldF92 cG9ydChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIHUxNiB2cG9ydF9udW0pOw0KIA0KIGJvb2wg bWx4NV9lc3dpdGNoX2lzX3ZmX3Zwb3J0KGNvbnN0IHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywg dTE2IHZwb3J0X251bSk7DQogDQordm9pZCBtbHg1X2Vzd2l0Y2hfdXBkYXRlX251bV9vZl92ZnMo c3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBjb25zdCBpbnQgbnVtX3Zmcyk7DQorDQogI2Vsc2Ug IC8qIENPTkZJR19NTFg1X0VTV0lUQ0ggKi8NCiAvKiBlc3dpdGNoIEFQSSBzdHVicyAqLw0KIHN0 YXRpYyBpbmxpbmUgaW50ICBtbHg1X2Vzd2l0Y2hfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAq ZGV2KSB7IHJldHVybiAwOyB9DQogc3RhdGljIGlubGluZSB2b2lkIG1seDVfZXN3aXRjaF9jbGVh bnVwKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdykge30NCi1zdGF0aWMgaW5saW5lIGludCAgbWx4 NV9lc3dpdGNoX2VuYWJsZShzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGludCBudmZzLCBpbnQg bW9kZSkgeyByZXR1cm4gMDsgfQ0KK3N0YXRpYyBpbmxpbmUgaW50ICBtbHg1X2Vzd2l0Y2hfZW5h YmxlKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgaW50IG1vZGUpIHsgcmV0dXJuIDA7IH0NCiBz dGF0aWMgaW5saW5lIHZvaWQgbWx4NV9lc3dpdGNoX2Rpc2FibGUoc3RydWN0IG1seDVfZXN3aXRj aCAqZXN3KSB7fQ0KIHN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1X2Vzd19sYWdfcHJlcmVxKHN0cnVj dCBtbHg1X2NvcmVfZGV2ICpkZXYwLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2MSkgeyByZXR1 cm4gdHJ1ZTsgfQ0KIHN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1X2Vzd2l0Y2hfaXNfZnVuY3NfaGFu ZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KSB7IHJldHVybiBmYWxzZTsgfQ0KQEAgLTUz OCw2ICs1MzksOCBAQCBtbHg1X2Vzd19xdWVyeV9mdW5jdGlvbnMoc3RydWN0IG1seDVfY29yZV9k ZXYgKmRldiwgdTMyICpvdXQsIGludCBvdXRsZW4pDQogCXJldHVybiAtRU9QTk9UU1VQUDsNCiB9 DQogDQorc3RhdGljIGlubGluZSB2b2lkIG1seDVfZXN3aXRjaF91cGRhdGVfbnVtX29mX3Zmcyhz dHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGNvbnN0IGludCBudW1fdmZzKSB7fQ0KKw0KICNkZWZp bmUgRkRCX01BWF9DSEFJTiAxDQogI2RlZmluZSBGREJfU0xPV19QQVRIX0NIQUlOIChGREJfTUFY X0NIQUlOICsgMSkNCiAjZGVmaW5lIEZEQl9NQVhfUFJJTyAxDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMN CmluZGV4IGExYmVhZGExY2RiZi4uODAxMGU0ZWFiYTlhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYw0KKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMu Yw0KQEAgLTEzNTYsNyArMTM1Niw3IEBAIG1seDVfZXN3aXRjaF9jcmVhdGVfdnBvcnRfcnhfcnVs ZShzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGludCB2cG9ydCwNCiBzdGF0aWMgaW50IGVzd19v ZmZsb2Fkc19zdGFydChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csDQogCQkJICAgICAgc3RydWN0 IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrKQ0KIHsNCi0JaW50IGVyciwgZXJyMSwgbnVtX3ZmcyA9 IGVzdy0+ZGV2LT5wcml2LnNyaW92Lm51bV92ZnM7DQorCWludCBlcnIsIGVycjE7DQogDQogCWlm IChlc3ctPm1vZGUgIT0gTUxYNV9FU1dJVENIX0xFR0FDWSAmJg0KIAkgICAgIW1seDVfY29yZV9p c19lY3BmX2Vzd19tYW5hZ2VyKGVzdy0+ZGV2KSkgew0KQEAgLTEzNjYsMTEgKzEzNjYsMTIgQEAg c3RhdGljIGludCBlc3dfb2ZmbG9hZHNfc3RhcnQoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LA0K IAl9DQogDQogCW1seDVfZXN3aXRjaF9kaXNhYmxlKGVzdyk7DQotCWVyciA9IG1seDVfZXN3aXRj aF9lbmFibGUoZXN3LCBudW1fdmZzLCBNTFg1X0VTV0lUQ0hfT0ZGTE9BRFMpOw0KKwltbHg1X2Vz d2l0Y2hfdXBkYXRlX251bV9vZl92ZnMoZXN3LCBlc3ctPmRldi0+cHJpdi5zcmlvdi5udW1fdmZz KTsNCisJZXJyID0gbWx4NV9lc3dpdGNoX2VuYWJsZShlc3csIE1MWDVfRVNXSVRDSF9PRkZMT0FE Uyk7DQogCWlmIChlcnIpIHsNCiAJCU5MX1NFVF9FUlJfTVNHX01PRChleHRhY2ssDQogCQkJCSAg ICJGYWlsZWQgc2V0dGluZyBlc3dpdGNoIHRvIG9mZmxvYWRzIik7DQotCQllcnIxID0gbWx4NV9l c3dpdGNoX2VuYWJsZShlc3csIG51bV92ZnMsIE1MWDVfRVNXSVRDSF9MRUdBQ1kpOw0KKwkJZXJy MSA9IG1seDVfZXN3aXRjaF9lbmFibGUoZXN3LCBNTFg1X0VTV0lUQ0hfTEVHQUNZKTsNCiAJCWlm IChlcnIxKSB7DQogCQkJTkxfU0VUX0VSUl9NU0dfTU9EKGV4dGFjaywNCiAJCQkJCSAgICJGYWls ZWQgc2V0dGluZyBlc3dpdGNoIGJhY2sgdG8gbGVnYWN5Iik7DQpAQCAtMTM3OCw3ICsxMzc5LDYg QEAgc3RhdGljIGludCBlc3dfb2ZmbG9hZHNfc3RhcnQoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3 LA0KIAl9DQogCWlmIChlc3ctPm9mZmxvYWRzLmlubGluZV9tb2RlID09IE1MWDVfSU5MSU5FX01P REVfTk9ORSkgew0KIAkJaWYgKG1seDVfZXN3aXRjaF9pbmxpbmVfbW9kZV9nZXQoZXN3LA0KLQkJ CQkJCSBudW1fdmZzLA0KIAkJCQkJCSAmZXN3LT5vZmZsb2Fkcy5pbmxpbmVfbW9kZSkpIHsNCiAJ CQllc3ctPm9mZmxvYWRzLmlubGluZV9tb2RlID0gTUxYNV9JTkxJTkVfTU9ERV9MMjsNCiAJCQlO TF9TRVRfRVJSX01TR19NT0QoZXh0YWNrLA0KQEAgLTE0NjYsMjEgKzE0NjYsMjAgQEAgc3RhdGlj IHZvaWQgZXN3X29mZmxvYWRzX3VubG9hZF92Zl9yZXBzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVz dywgaW50IG52cG9ydHMpDQogCQlfX3VubG9hZF9yZXBzX3ZmX3Zwb3J0KGVzdywgbnZwb3J0cywg cmVwX3R5cGUpOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBfX3VubG9hZF9yZXBzX2FsbF92cG9ydChz dHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGludCBudnBvcnRzLA0KLQkJCQkgICAgdTggcmVwX3R5 cGUpDQorc3RhdGljIHZvaWQgX191bmxvYWRfcmVwc19hbGxfdnBvcnQoc3RydWN0IG1seDVfZXN3 aXRjaCAqZXN3LCB1OCByZXBfdHlwZSkNCiB7DQotCV9fdW5sb2FkX3JlcHNfdmZfdnBvcnQoZXN3 LCBudnBvcnRzLCByZXBfdHlwZSk7DQorCV9fdW5sb2FkX3JlcHNfdmZfdnBvcnQoZXN3LCBlc3ct PmVzd19mdW5jcy5udW1fdmZzLCByZXBfdHlwZSk7DQogDQogCS8qIFNwZWNpYWwgdnBvcnRzIG11 c3QgYmUgdGhlIGxhc3QgdG8gdW5sb2FkLiAqLw0KIAlfX3VubG9hZF9yZXBzX3NwZWNpYWxfdnBv cnQoZXN3LCByZXBfdHlwZSk7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIGVzd19vZmZsb2Fkc191bmxv YWRfYWxsX3JlcHMoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZwb3J0cykNCitzdGF0 aWMgdm9pZCBlc3dfb2ZmbG9hZHNfdW5sb2FkX2FsbF9yZXBzKHN0cnVjdCBtbHg1X2Vzd2l0Y2gg KmVzdykNCiB7DQogCXU4IHJlcF90eXBlID0gTlVNX1JFUF9UWVBFUzsNCiANCiAJd2hpbGUgKHJl cF90eXBlLS0gPiAwKQ0KLQkJX191bmxvYWRfcmVwc19hbGxfdnBvcnQoZXN3LCBudnBvcnRzLCBy ZXBfdHlwZSk7DQorCQlfX3VubG9hZF9yZXBzX2FsbF92cG9ydChlc3csIHJlcF90eXBlKTsNCiB9 DQogDQogc3RhdGljIGludCBfX2Vzd19vZmZsb2Fkc19sb2FkX3JlcChzdHJ1Y3QgbWx4NV9lc3dp dGNoICplc3csDQpAQCAtMTU1Niw2ICsxNTU1LDI2IEBAIHN0YXRpYyBpbnQgX19sb2FkX3JlcHNf dmZfdnBvcnQoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZwb3J0cywNCiAJcmV0dXJu IGVycjsNCiB9DQogDQorc3RhdGljIGludCBfX2xvYWRfcmVwc19hbGxfdnBvcnQoc3RydWN0IG1s eDVfZXN3aXRjaCAqZXN3LCB1OCByZXBfdHlwZSkNCit7DQorCWludCBlcnI7DQorDQorCS8qIFNw ZWNpYWwgdnBvcnRzIG11c3QgYmUgbG9hZGVkIGZpcnN0LCB1cGxpbmsgcmVwIGNyZWF0ZXMgbWRl diByZXNvdXJjZS4gKi8NCisJZXJyID0gX19sb2FkX3JlcHNfc3BlY2lhbF92cG9ydChlc3csIHJl cF90eXBlKTsNCisJaWYgKGVycikNCisJCXJldHVybiBlcnI7DQorDQorCWVyciA9IF9fbG9hZF9y ZXBzX3ZmX3Zwb3J0KGVzdywgZXN3LT5lc3dfZnVuY3MubnVtX3ZmcywgcmVwX3R5cGUpOw0KKwlp ZiAoZXJyKQ0KKwkJZ290byBlcnJfdmZzOw0KKw0KKwlyZXR1cm4gMDsNCisNCitlcnJfdmZzOg0K KwlfX3VubG9hZF9yZXBzX3NwZWNpYWxfdnBvcnQoZXN3LCByZXBfdHlwZSk7DQorCXJldHVybiBl cnI7DQorfQ0KKw0KIHN0YXRpYyBpbnQgZXN3X29mZmxvYWRzX2xvYWRfdmZfcmVwcyhzdHJ1Y3Qg bWx4NV9lc3dpdGNoICplc3csIGludCBudnBvcnRzKQ0KIHsNCiAJdTggcmVwX3R5cGUgPSAwOw0K QEAgLTE1NzUsMTMgKzE1OTQsMTMgQEAgc3RhdGljIGludCBlc3dfb2ZmbG9hZHNfbG9hZF92Zl9y ZXBzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgaW50IG52cG9ydHMpDQogCXJldHVybiBlcnI7 DQogfQ0KIA0KLXN0YXRpYyBpbnQgZXN3X29mZmxvYWRzX2xvYWRfc3BlY2lhbF92cG9ydChzdHJ1 Y3QgbWx4NV9lc3dpdGNoICplc3cpDQorc3RhdGljIGludCBlc3dfb2ZmbG9hZHNfbG9hZF9hbGxf cmVwcyhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpDQogew0KIAl1OCByZXBfdHlwZSA9IDA7DQog CWludCBlcnI7DQogDQogCWZvciAocmVwX3R5cGUgPSAwOyByZXBfdHlwZSA8IE5VTV9SRVBfVFlQ RVM7IHJlcF90eXBlKyspIHsNCi0JCWVyciA9IF9fbG9hZF9yZXBzX3NwZWNpYWxfdnBvcnQoZXN3 LCByZXBfdHlwZSk7DQorCQllcnIgPSBfX2xvYWRfcmVwc19hbGxfdnBvcnQoZXN3LCByZXBfdHlw ZSk7DQogCQlpZiAoZXJyKQ0KIAkJCWdvdG8gZXJyX3JlcHM7DQogCX0NCkBAIC0xNTkwLDcgKzE2 MDksNyBAQCBzdGF0aWMgaW50IGVzd19vZmZsb2Fkc19sb2FkX3NwZWNpYWxfdnBvcnQoc3RydWN0 IG1seDVfZXN3aXRjaCAqZXN3KQ0KIA0KIGVycl9yZXBzOg0KIAl3aGlsZSAocmVwX3R5cGUtLSA+ IDApDQotCQlfX3VubG9hZF9yZXBzX3NwZWNpYWxfdnBvcnQoZXN3LCByZXBfdHlwZSk7DQorCQlf X3VubG9hZF9yZXBzX2FsbF92cG9ydChlc3csIHJlcF90eXBlKTsNCiAJcmV0dXJuIGVycjsNCiB9 DQogDQpAQCAtMTk3NiwxMCArMTk5NSwxNyBAQCBzdGF0aWMgdm9pZCBlc3dfZGVzdHJveV9vZmZs b2Fkc19hY2xfdGFibGVzKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdykNCiAJZXN3LT5mbGFncyAm PSB+TUxYNV9FU1dJVENIX1ZQT1JUX01BVENIX01FVEFEQVRBOw0KIH0NCiANCi1zdGF0aWMgaW50 IGVzd19vZmZsb2Fkc19zdGVlcmluZ19pbml0KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgaW50 IG52cG9ydHMpDQorc3RhdGljIGludCBlc3dfb2ZmbG9hZHNfc3RlZXJpbmdfaW5pdChzdHJ1Y3Qg bWx4NV9lc3dpdGNoICplc3cpDQogew0KKwlpbnQgbnVtX3ZmcyA9IGVzdy0+ZXN3X2Z1bmNzLm51 bV92ZnM7DQorCWludCB0b3RhbF92cG9ydHM7DQogCWludCBlcnI7DQogDQorCWlmIChtbHg1X2Nv cmVfaXNfZWNwZl9lc3dfbWFuYWdlcihlc3ctPmRldikpDQorCQl0b3RhbF92cG9ydHMgPSBlc3ct PnRvdGFsX3Zwb3J0czsNCisJZWxzZQ0KKwkJdG90YWxfdnBvcnRzID0gbnVtX3ZmcyArIE1MWDVf U1BFQ0lBTF9WUE9SVFMoZXN3LT5kZXYpOw0KKw0KIAltZW1zZXQoJmVzdy0+ZmRiX3RhYmxlLm9m ZmxvYWRzLCAwLCBzaXplb2Yoc3RydWN0IG9mZmxvYWRzX2ZkYikpOw0KIAltdXRleF9pbml0KCZl c3ctPmZkYl90YWJsZS5vZmZsb2Fkcy5mZGJfcHJpb19sb2NrKTsNCiANCkBAIC0xOTg3LDE1ICsy MDEzLDE1IEBAIHN0YXRpYyBpbnQgZXN3X29mZmxvYWRzX3N0ZWVyaW5nX2luaXQoc3RydWN0IG1s eDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZwb3J0cykNCiAJaWYgKGVycikNCiAJCXJldHVybiBlcnI7 DQogDQotCWVyciA9IGVzd19jcmVhdGVfb2ZmbG9hZHNfZmRiX3RhYmxlcyhlc3csIG52cG9ydHMp Ow0KKwllcnIgPSBlc3dfY3JlYXRlX29mZmxvYWRzX2ZkYl90YWJsZXMoZXN3LCB0b3RhbF92cG9y dHMpOw0KIAlpZiAoZXJyKQ0KIAkJZ290byBjcmVhdGVfZmRiX2VycjsNCiANCi0JZXJyID0gZXN3 X2NyZWF0ZV9vZmZsb2Fkc190YWJsZShlc3csIG52cG9ydHMpOw0KKwllcnIgPSBlc3dfY3JlYXRl X29mZmxvYWRzX3RhYmxlKGVzdywgdG90YWxfdnBvcnRzKTsNCiAJaWYgKGVycikNCiAJCWdvdG8g Y3JlYXRlX2Z0X2VycjsNCiANCi0JZXJyID0gZXN3X2NyZWF0ZV92cG9ydF9yeF9ncm91cChlc3cs IG52cG9ydHMpOw0KKwllcnIgPSBlc3dfY3JlYXRlX3Zwb3J0X3J4X2dyb3VwKGVzdywgdG90YWxf dnBvcnRzKTsNCiAJaWYgKGVycikNCiAJCWdvdG8gY3JlYXRlX2ZnX2VycjsNCiANCkBAIC0yMDU3 LDIzICsyMDgzLDkgQEAgc3RhdGljIHZvaWQgZXN3X2Z1bmN0aW9uc19jaGFuZ2VkX2V2ZW50X2hh bmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KIAlrZnJlZShob3N0X3dvcmspOw0KIH0N CiANCi1zdGF0aWMgdm9pZCBlc3dfZW11bGF0ZV9ldmVudF9oYW5kbGVyKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykNCi17DQotCXN0cnVjdCBtbHg1X2hvc3Rfd29yayAqaG9zdF93b3JrID0NCi0J CWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbWx4NV9ob3N0X3dvcmssIHdvcmspOw0KLQlzdHJ1 Y3QgbWx4NV9lc3dpdGNoICplc3cgPSBob3N0X3dvcmstPmVzdzsNCi0JaW50IGVycjsNCiANCi0J aWYgKGVzdy0+ZXN3X2Z1bmNzLm51bV92ZnMpIHsNCi0JCWVyciA9IGVzd19vZmZsb2Fkc19sb2Fk X3ZmX3JlcHMoZXN3LCBlc3ctPmVzd19mdW5jcy5udW1fdmZzKTsNCi0JCWlmIChlcnIpDQotCQkJ ZXN3X3dhcm4oZXN3LT5kZXYsICJMb2FkIHZmIHJlcHMgZXJyPSVkXG4iLCBlcnIpOw0KLQl9DQot CWtmcmVlKGhvc3Rfd29yayk7DQotfQ0KLQ0KLXN0YXRpYyBpbnQgZXN3X2Z1bmN0aW9uc19jaGFu Z2VkX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsDQotCQkJCSAgICAgICB1bnNpZ25l ZCBsb25nIHR5cGUsIHZvaWQgKmRhdGEpDQorc3RhdGljIGludA0KK2Vzd19mdW5jdGlvbnNfY2hh bmdlZF9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIHR5cGUs IHZvaWQgKmRhdGEpDQogew0KIAlzdHJ1Y3QgbWx4NV9lc3dfZnVuY3Rpb25zICplc3dfZnVuY3M7 DQogCXN0cnVjdCBtbHg1X2hvc3Rfd29yayAqaG9zdF93b3JrOw0KQEAgLTIwODgsMjYgKzIxMDAs MTggQEAgc3RhdGljIGludCBlc3dfZnVuY3Rpb25zX2NoYW5nZWRfZXZlbnQoc3RydWN0IG5vdGlm aWVyX2Jsb2NrICpuYiwNCiANCiAJaG9zdF93b3JrLT5lc3cgPSBlc3c7DQogDQotCWlmIChtbHg1 X2Vzd2l0Y2hfaXNfZnVuY3NfaGFuZGxlcihlc3ctPmRldikpDQotCQlJTklUX1dPUksoJmhvc3Rf d29yay0+d29yaywNCi0JCQkgIGVzd19mdW5jdGlvbnNfY2hhbmdlZF9ldmVudF9oYW5kbGVyKTsN Ci0JZWxzZQ0KLQkJSU5JVF9XT1JLKCZob3N0X3dvcmstPndvcmssIGVzd19lbXVsYXRlX2V2ZW50 X2hhbmRsZXIpOw0KKwlJTklUX1dPUksoJmhvc3Rfd29yay0+d29yaywgZXN3X2Z1bmN0aW9uc19j aGFuZ2VkX2V2ZW50X2hhbmRsZXIpOw0KIAlxdWV1ZV93b3JrKGVzdy0+d29ya19xdWV1ZSwgJmhv c3Rfd29yay0+d29yayk7DQogDQogCXJldHVybiBOT1RJRllfT0s7DQogfQ0KIA0KLXN0YXRpYyB2 b2lkIGVzd19mdW5jdGlvbnNfY2hhbmdlZF9ldmVudF9pbml0KHN0cnVjdCBtbHg1X2Vzd2l0Y2gg KmVzdywNCi0JCQkJCSAgICAgdTE2IHZmX252cG9ydHMpDQorc3RhdGljIHZvaWQgZXN3X2Z1bmN0 aW9uc19jaGFuZ2VkX2V2ZW50X2luaXQoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KQ0KIHsNCiAJ aWYgKG1seDVfZXN3aXRjaF9pc19mdW5jc19oYW5kbGVyKGVzdy0+ZGV2KSkgew0KLQkJZXN3LT5l c3dfZnVuY3MubnVtX3ZmcyA9IDA7DQogCQlNTFg1X05CX0lOSVQoJmVzdy0+ZXN3X2Z1bmNzLm5i LCBlc3dfZnVuY3Rpb25zX2NoYW5nZWRfZXZlbnQsDQogCQkJICAgICBFU1dfRlVOQ1RJT05TX0NI QU5HRUQpOw0KIAkJbWx4NV9lcV9ub3RpZmllcl9yZWdpc3Rlcihlc3ctPmRldiwgJmVzdy0+ZXN3 X2Z1bmNzLm5iKTsNCi0JfSBlbHNlIHsNCi0JCWVzdy0+ZXN3X2Z1bmNzLm51bV92ZnMgPSB2Zl9u dnBvcnRzOw0KIAl9DQogfQ0KIA0KQEAgLTIxMjAsMTIgKzIxMjQsMTEgQEAgc3RhdGljIHZvaWQg ZXN3X2Z1bmN0aW9uc19jaGFuZ2VkX2V2ZW50X2NsZWFudXAoc3RydWN0IG1seDVfZXN3aXRjaCAq ZXN3KQ0KIAlmbHVzaF93b3JrcXVldWUoZXN3LT53b3JrX3F1ZXVlKTsNCiB9DQogDQotaW50IGVz d19vZmZsb2Fkc19pbml0KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgaW50IHZmX252cG9ydHMs DQotCQkgICAgICBpbnQgdG90YWxfbnZwb3J0cykNCitpbnQgZXN3X29mZmxvYWRzX2luaXQoc3Ry dWN0IG1seDVfZXN3aXRjaCAqZXN3KQ0KIHsNCiAJaW50IGVycjsNCiANCi0JZXJyID0gZXN3X29m ZmxvYWRzX3N0ZWVyaW5nX2luaXQoZXN3LCB0b3RhbF9udnBvcnRzKTsNCisJZXJyID0gZXN3X29m ZmxvYWRzX3N0ZWVyaW5nX2luaXQoZXN3KTsNCiAJaWYgKGVycikNCiAJCXJldHVybiBlcnI7DQog DQpAQCAtMjEzNSwzMCArMjEzOCwxNiBAQCBpbnQgZXN3X29mZmxvYWRzX2luaXQoc3RydWN0IG1s eDVfZXN3aXRjaCAqZXN3LCBpbnQgdmZfbnZwb3J0cywNCiAJCQlnb3RvIGVycl92cG9ydF9tZXRh ZGF0YTsNCiAJfQ0KIA0KLQkvKiBPbmx5IGxvYWQgc3BlY2lhbCB2cG9ydHMgcmVwcy4gVkYgcmVw cyB3aWxsIGJlIGxvYWRlZCBpbg0KLQkgKiBjb250ZXh0IG9mIGZ1bmN0aW9uc19jaGFuZ2VkIGV2 ZW50IGhhbmRsZXIgdGhyb3VnaCByZWFsDQotCSAqIG9yIGVtdWxhdGVkIGV2ZW50Lg0KLQkgKi8N Ci0JZXJyID0gZXN3X29mZmxvYWRzX2xvYWRfc3BlY2lhbF92cG9ydChlc3cpOw0KKwllcnIgPSBl c3dfb2ZmbG9hZHNfbG9hZF9hbGxfcmVwcyhlc3cpOw0KIAlpZiAoZXJyKQ0KIAkJZ290byBlcnJf cmVwczsNCiANCiAJZXN3X29mZmxvYWRzX2RldmNvbV9pbml0KGVzdyk7DQogDQotCWVzd19mdW5j dGlvbnNfY2hhbmdlZF9ldmVudF9pbml0KGVzdywgdmZfbnZwb3J0cyk7DQorCWVzd19mdW5jdGlv bnNfY2hhbmdlZF9ldmVudF9pbml0KGVzdyk7DQogDQogCW1seDVfcmRtYV9lbmFibGVfcm9jZShl c3ctPmRldik7DQogDQotCS8qIENhbGwgZXN3X2Z1bmN0aW9uc19jaGFuZ2VkIGV2ZW50IHRvIGxv YWQgVkYgcmVwczoNCi0JICogMS4gSFcgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZXZlbnQgdGhlbiBl bXVsYXRlIGl0DQotCSAqIE9yDQotCSAqIDIuIFRoZSBldmVudCB3YXMgYWxyZWFkeSBub3RpZmll ZCB3aGVuIG51bV92ZnMgY2hhbmdlZA0KLQkgKiBhbmQgZXN3aXRjaCB3YXMgaW4gbGVnYWN5IG1v ZGUNCi0JICovDQotCWVzd19mdW5jdGlvbnNfY2hhbmdlZF9ldmVudCgmZXN3LT5lc3dfZnVuY3Mu bmIubmIsDQotCQkJCSAgICBNTFg1X0VWRU5UX1RZUEVfRVNXX0ZVTkNUSU9OU19DSEFOR0VELA0K LQkJCQkgICAgTlVMTCk7DQotDQogCXJldHVybiAwOw0KIA0KIGVycl9yZXBzOg0KQEAgLTIxNzIs MTMgKzIxNjEsMTMgQEAgaW50IGVzd19vZmZsb2Fkc19pbml0KHN0cnVjdCBtbHg1X2Vzd2l0Y2gg KmVzdywgaW50IHZmX252cG9ydHMsDQogc3RhdGljIGludCBlc3dfb2ZmbG9hZHNfc3RvcChzdHJ1 Y3QgbWx4NV9lc3dpdGNoICplc3csDQogCQkJICAgICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpl eHRhY2spDQogew0KLQlpbnQgZXJyLCBlcnIxLCBudW1fdmZzID0gZXN3LT5kZXYtPnByaXYuc3Jp b3YubnVtX3ZmczsNCisJaW50IGVyciwgZXJyMTsNCiANCiAJbWx4NV9lc3dpdGNoX2Rpc2FibGUo ZXN3KTsNCi0JZXJyID0gbWx4NV9lc3dpdGNoX2VuYWJsZShlc3csIG51bV92ZnMsIE1MWDVfRVNX SVRDSF9MRUdBQ1kpOw0KKwllcnIgPSBtbHg1X2Vzd2l0Y2hfZW5hYmxlKGVzdywgTUxYNV9FU1dJ VENIX0xFR0FDWSk7DQogCWlmIChlcnIpIHsNCiAJCU5MX1NFVF9FUlJfTVNHX01PRChleHRhY2ss ICJGYWlsZWQgc2V0dGluZyBlc3dpdGNoIHRvIGxlZ2FjeSIpOw0KLQkJZXJyMSA9IG1seDVfZXN3 aXRjaF9lbmFibGUoZXN3LCBudW1fdmZzLCBNTFg1X0VTV0lUQ0hfT0ZGTE9BRFMpOw0KKwkJZXJy MSA9IG1seDVfZXN3aXRjaF9lbmFibGUoZXN3LCBNTFg1X0VTV0lUQ0hfT0ZGTE9BRFMpOw0KIAkJ aWYgKGVycjEpIHsNCiAJCQlOTF9TRVRfRVJSX01TR19NT0QoZXh0YWNrLA0KIAkJCQkJICAgIkZh aWxlZCBzZXR0aW5nIGVzd2l0Y2ggYmFjayB0byBvZmZsb2FkcyIpOw0KQEAgLTIxOTMsNyArMjE4 Miw3IEBAIHZvaWQgZXN3X29mZmxvYWRzX2NsZWFudXAoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3 KQ0KIAllc3dfZnVuY3Rpb25zX2NoYW5nZWRfZXZlbnRfY2xlYW51cChlc3cpOw0KIAltbHg1X3Jk bWFfZGlzYWJsZV9yb2NlKGVzdy0+ZGV2KTsNCiAJZXN3X29mZmxvYWRzX2RldmNvbV9jbGVhbnVw KGVzdyk7DQotCWVzd19vZmZsb2Fkc191bmxvYWRfYWxsX3JlcHMoZXN3LCBlc3ctPmVzd19mdW5j cy5udW1fdmZzKTsNCisJZXN3X29mZmxvYWRzX3VubG9hZF9hbGxfcmVwcyhlc3cpOw0KIAlpZiAo bWx4NV9lc3dpdGNoX3Zwb3J0X21hdGNoX21ldGFkYXRhX2VuYWJsZWQoZXN3KSkNCiAJCW1seDVf ZXN3aXRjaF9kaXNhYmxlX3Bhc3NpbmdfdnBvcnRfbWV0YWRhdGEoZXN3KTsNCiAJZXN3X29mZmxv YWRzX3N0ZWVyaW5nX2NsZWFudXAoZXN3KTsNCkBAIC0yMzk5LDcgKzIzODgsNyBAQCBpbnQgbWx4 NV9kZXZsaW5rX2Vzd2l0Y2hfaW5saW5lX21vZGVfZ2V0KHN0cnVjdCBkZXZsaW5rICpkZXZsaW5r LCB1OCAqbW9kZSkNCiAJcmV0dXJuIGVzd19pbmxpbmVfbW9kZV90b19kZXZsaW5rKGVzdy0+b2Zm bG9hZHMuaW5saW5lX21vZGUsIG1vZGUpOw0KIH0NCiANCi1pbnQgbWx4NV9lc3dpdGNoX2lubGlu ZV9tb2RlX2dldChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGludCBudmZzLCB1OCAqbW9kZSkN CitpbnQgbWx4NV9lc3dpdGNoX2lubGluZV9tb2RlX2dldChzdHJ1Y3QgbWx4NV9lc3dpdGNoICpl c3csIHU4ICptb2RlKQ0KIHsNCiAJdTggcHJldl9tbHg1X21vZGUsIG1seDVfbW9kZSA9IE1MWDVf SU5MSU5FX01PREVfTDI7DQogCXN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBlc3ctPmRldjsN CkBAIC0yNDIzLDcgKzI0MTIsNyBAQCBpbnQgbWx4NV9lc3dpdGNoX2lubGluZV9tb2RlX2dldChz dHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGludCBudmZzLCB1OCAqbW9kZSkNCiAJfQ0KIA0KIHF1 ZXJ5X3Zwb3J0czoNCi0JZm9yICh2cG9ydCA9IDE7IHZwb3J0IDw9IG52ZnM7IHZwb3J0KyspIHsN CisJZm9yICh2cG9ydCA9IDE7IHZwb3J0IDw9IGVzdy0+ZXN3X2Z1bmNzLm51bV92ZnM7IHZwb3J0 KyspIHsNCiAJCW1seDVfcXVlcnlfbmljX3Zwb3J0X21pbl9pbmxpbmUoZGV2LCB2cG9ydCwgJm1s eDVfbW9kZSk7DQogCQlpZiAodnBvcnQgPiAxICYmIHByZXZfbWx4NV9tb2RlICE9IG1seDVfbW9k ZSkNCiAJCQlyZXR1cm4gLUVJTlZBTDsNCkBAIC0yNTE4LDEyICsyNTA3LDExIEBAIEVYUE9SVF9T WU1CT0wobWx4NV9lc3dpdGNoX3JlZ2lzdGVyX3Zwb3J0X3JlcHMpOw0KIA0KIHZvaWQgbWx4NV9l c3dpdGNoX3VucmVnaXN0ZXJfdnBvcnRfcmVwcyhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIHU4 IHJlcF90eXBlKQ0KIHsNCi0JdTE2IG1heF92ZiA9IG1seDVfY29yZV9tYXhfdmZzKGVzdy0+ZGV2 KTsNCiAJc3RydWN0IG1seDVfZXN3aXRjaF9yZXAgKnJlcDsNCiAJaW50IGk7DQogDQogCWlmIChl c3ctPm1vZGUgPT0gTUxYNV9FU1dJVENIX09GRkxPQURTKQ0KLQkJX191bmxvYWRfcmVwc19hbGxf dnBvcnQoZXN3LCBtYXhfdmYsIHJlcF90eXBlKTsNCisJCV9fdW5sb2FkX3JlcHNfYWxsX3Zwb3J0 KGVzdywgcmVwX3R5cGUpOw0KIA0KIAltbHg1X2Vzd19mb3JfYWxsX3JlcHMoZXN3LCBpLCByZXAp DQogCQlhdG9taWNfc2V0KCZyZXAtPnJlcF9kYXRhW3JlcF90eXBlXS5zdGF0ZSwgUkVQX1VOUkVH SVNURVJFRCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL3NyaW92LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv c3Jpb3YuYw0KaW5kZXggZDRjOTBmMDI5ZjQ5Li41NDdkMGJlOTAyNWUgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3Jpb3YuYw0KKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3NyaW92LmMNCkBAIC03Nyw3ICs3 Nyw4IEBAIHN0YXRpYyBpbnQgbWx4NV9kZXZpY2VfZW5hYmxlX3NyaW92KHN0cnVjdCBtbHg1X2Nv cmVfZGV2ICpkZXYsIGludCBudW1fdmZzKQ0KIAlpZiAoIU1MWDVfRVNXSVRDSF9NQU5BR0VSKGRl dikpDQogCQlnb3RvIGVuYWJsZV92ZnNfaGNhOw0KIA0KLQllcnIgPSBtbHg1X2Vzd2l0Y2hfZW5h YmxlKGRldi0+cHJpdi5lc3dpdGNoLCBudW1fdmZzLCBNTFg1X0VTV0lUQ0hfTEVHQUNZKTsNCisJ bWx4NV9lc3dpdGNoX3VwZGF0ZV9udW1fb2ZfdmZzKGRldi0+cHJpdi5lc3dpdGNoLCBudW1fdmZz KTsNCisJZXJyID0gbWx4NV9lc3dpdGNoX2VuYWJsZShkZXYtPnByaXYuZXN3aXRjaCwgTUxYNV9F U1dJVENIX0xFR0FDWSk7DQogCWlmIChlcnIpIHsNCiAJCW1seDVfY29yZV93YXJuKGRldiwNCiAJ CQkgICAgICAgImZhaWxlZCB0byBlbmFibGUgZXN3aXRjaCBTUklPViAoJWQpXG4iLCBlcnIpOw0K LS0gDQoyLjIxLjANCg0K