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 290D1C4321A for ; Fri, 28 Jun 2019 22:36:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D266E208CB for ; Fri, 28 Jun 2019 22:36:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="Heoxso0z" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727043AbfF1Wgc (ORCPT ); Fri, 28 Jun 2019 18:36:32 -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 S1727017AbfF1Wgc (ORCPT ); Fri, 28 Jun 2019 18:36:32 -0400 ARC-Seal: i=1; a=rsa-sha256; s=testarcselector01; d=microsoft.com; cv=none; b=P7uJwEoAN/xbuxfZEByr9SjbsU27TcyJA6aWQkzSztcaMnBy/uju37DLymT88WzxXVDS8rIh7R64hNY0dttMTy6fJIMBn9rD7f7Ho4zdh7Wj0wMpYKdDWS+q1N9mLemTauXxZ/5aI82/LXXJiGffYX2LKBaq7DZppgnm77TsXMk= 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=AgIYRy8wUy9lhYH3pL7TGEvyuiPgu3g+UP9SqvC9kws=; b=Hp2qLs+jHVQY3McF5Aot0RBeDNsopNmMuiKDXzOcgexRW2j4KkzvpZQ87zdjpFat37lmR9ix0GCe//3FQnZ3tJl8veePHu97NNKaeK6ZJWkoe1crutjHHhMWW7H8ivkXAD4UU593g5Tcp+351y9H35Mhk/UEbErYgkKB5/O607o= 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=AgIYRy8wUy9lhYH3pL7TGEvyuiPgu3g+UP9SqvC9kws=; b=Heoxso0zWJpMZ4x8gSkBE7B0PhgUfJm4N06oHHBTQZGvUwjouerO8HOQsIQWlCkojcQKqJdz9vUJF3uFvCxPh91I9rDsr0QqLCfZ75KaqWFwC4I8CRz5rKxwK0gMOVdNqJTMw34tGcm7Pqj1MH0qfE2SkZj9MjIznK6WvHcYEgQ= 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:15 +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:15 +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 13/18] net/mlx5: E-Switch, Refactor eswitch SR-IOV interface Thread-Topic: [PATCH mlx5-next 13/18] net/mlx5: E-Switch, Refactor eswitch SR-IOV interface Thread-Index: AQHVLgHlBcSWvmNktkm30osiIDzNJA== Date: Fri, 28 Jun 2019 22:36:15 +0000 Message-ID: <20190628223516.9368-14-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: 103f9aab-70fb-477e-8b02-08d6fc190740 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:125; 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)(579004);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: 9W3vjuM0ZelE2bSGV3P5ycB6hZ3R+l7J4sKdg3foz5CcKTJrRHriBYN/djcSNZWPWqd1rP0S07Rq91q15Ew4vGYmRw+Qjyw+3Jlvtt0oz4I7rsqfP3wzYmqdpJJBd03bvxEbw/r6URe317BkP2ySSNjm6seyR9CgvChUXkGyiwysRKRP5npYtMPs5jXCCGDicg/Vi6F2mLPSGK+2b435tV4BnBmtOn71YGKAxyxD+gn7cDtj+9Mz4rScDhf3JvQh2dvhE09NTrnmm37VAK1f3Xy9OIbO9M1u45STqpjH3tzBjfMlTjmYEniG8i2UW8TGbsdFIBeUmNANjpI0q/weJ9kH0GBRD9Z1RP5lJELEcW5aUYboLlWdgIeQomjqpetSutugjyCNbkA25qxHAt4y0d6a474EgfBeLF7zj8GaCZM= 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: 103f9aab-70fb-477e-8b02-08d6fc190740 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jun 2019 22:36:15.1921 (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+DQoNCkRldmxpbmsgZXN3aXRj aCBtb2RlIGlzIG5vdCBuZWNlc3NhcmlseSByZWxhdGVkIHRvIFNSLUlPViwgZS5nLCBFQ1BGDQpj YW4gYmUgYXQgb2ZmbG9hZCBtb2RlIHdoZW4gU1ItSU9WIGlzIG5vdCBlbmFibGVkLg0KDQpSZW5h bWUgdGhlIGludGVyZmFjZSBhbmQgZXN3aXRjaCBtb2RlIG5hbWVzIHRvIGRlY291cGxlIGZyb20g U1ItSU9WLA0KYW5kIGNsZWFudXAgZXN3aXRjaCBtZXNzYWdlcyBhY2NvcmRpbmdseS4NCg0KU2ln bmVkLW9mZi1ieTogQm9kb25nIFdhbmcgPGJvZG9uZ0BtZWxsYW5veC5jb20+DQpTaWduZWQtb2Zm LWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4NCi0tLQ0KIGRyaXZlcnMv aW5maW5pYmFuZC9ody9tbHg1L2liX3JlcC5oICAgICAgICAgICB8ICAyICstDQogZHJpdmVycy9p bmZpbmliYW5kL2h3L21seDUvbWFpbi5jICAgICAgICAgICAgIHwgIDIgKy0NCiAuLi4vbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgfCAgMiArLQ0KIC4uLi9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jICB8ICA2ICstDQogLi4uL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYyAgIHwgIDIgKy0NCiAuLi4vbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMgfCA4NSArKysrKysrKysrLS0tLS0tLS0t DQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oIHwgIDggKy0N CiAuLi4vbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYyAgICAgfCAzMiArKyst LS0tDQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy5jIHwgIDQg Ky0NCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zcmlvdi5jICAgfCAgNCAr LQ0KIGluY2x1ZGUvbGludXgvbWx4NS9lc3dpdGNoLmggICAgICAgICAgICAgICAgICB8ICA2ICst DQogMTEgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgNzYgZGVsZXRpb25zKC0pDQoN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9pYl9yZXAuaCBiL2RyaXZl cnMvaW5maW5pYmFuZC9ody9tbHg1L2liX3JlcC5oDQppbmRleCAyMmFkY2UyZDY3OTUuLjQ3ODUw M2NlMjBkZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L2liX3JlcC5o DQorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9pYl9yZXAuaA0KQEAgLTI4LDcgKzI4 LDcgQEAgc3RydWN0IG5ldF9kZXZpY2UgKm1seDVfaWJfZ2V0X3JlcF9uZXRkZXYoc3RydWN0IG1s eDVfZXN3aXRjaCAqZXN3LA0KICNlbHNlIC8qIENPTkZJR19NTFg1X0VTV0lUQ0ggKi8NCiBzdGF0 aWMgaW5saW5lIHU4IG1seDVfaWJfZXN3aXRjaF9tb2RlKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVz dykNCiB7DQotCXJldHVybiBTUklPVl9OT05FOw0KKwlyZXR1cm4gTUxYNV9FU1dJVENIX05PTkU7 DQogfQ0KIA0KIHN0YXRpYyBpbmxpbmUNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQv aHcvbWx4NS9tYWluLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMNCmluZGV4 IDYwMmFjM2ZlZWE1ZC4uNzk4YWE1ZTA5NDFlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pbmZpbmli YW5kL2h3L21seDUvbWFpbi5jDQorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWlu LmMNCkBAIC02ODE0LDcgKzY4MTQsNyBAQCBzdGF0aWMgdm9pZCAqbWx4NV9pYl9hZGQoc3RydWN0 IG1seDVfY29yZV9kZXYgKm1kZXYpDQogCXByaW50a19vbmNlKEtFUk5fSU5GTyAiJXMiLCBtbHg1 X3ZlcnNpb24pOw0KIA0KIAlpZiAoTUxYNV9FU1dJVENIX01BTkFHRVIobWRldikgJiYNCi0JICAg IG1seDVfaWJfZXN3aXRjaF9tb2RlKG1kZXYtPnByaXYuZXN3aXRjaCkgPT0gU1JJT1ZfT0ZGTE9B RFMpIHsNCisJICAgIG1seDVfaWJfZXN3aXRjaF9tb2RlKG1kZXYtPnByaXYuZXN3aXRjaCkgPT0g TUxYNV9FU1dJVENIX09GRkxPQURTKSB7DQogCQlpZiAoIW1seDVfY29yZV9tcF9lbmFibGVkKG1k ZXYpKQ0KIAkJCW1seDVfaWJfcmVnaXN0ZXJfdnBvcnRfcmVwcyhtZGV2KTsNCiAJCXJldHVybiBt ZGV2Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5f bWFpbi5jDQppbmRleCBiYzkxNTBmMTgxMTYuLmY4M2ZkYjY3ZTc2MCAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMNCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMNCkBAIC01MTE1 LDcgKzUxMTUsNyBAQCBzdGF0aWMgdm9pZCAqbWx4NWVfYWRkKHN0cnVjdCBtbHg1X2NvcmVfZGV2 ICptZGV2KQ0KIA0KICNpZmRlZiBDT05GSUdfTUxYNV9FU1dJVENIDQogCWlmIChNTFg1X0VTV0lU Q0hfTUFOQUdFUihtZGV2KSAmJg0KLQkgICAgbWx4NV9lc3dpdGNoX21vZGUobWRldi0+cHJpdi5l c3dpdGNoKSA9PSBTUklPVl9PRkZMT0FEUykgew0KKwkgICAgbWx4NV9lc3dpdGNoX21vZGUobWRl di0+cHJpdi5lc3dpdGNoKSA9PSBNTFg1X0VTV0lUQ0hfT0ZGTE9BRFMpIHsNCiAJCW1seDVlX3Jl cF9yZWdpc3Rlcl92cG9ydF9yZXBzKG1kZXYpOw0KIAkJcmV0dXJuIG1kZXY7DQogCX0NCmRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMNCmluZGV4 IGFiZTg1NDBkNjg3OS4uZWY2ZDYxYzFkODg2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3JlcC5jDQorKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fcmVwLmMNCkBAIC0zOTEsNyArMzkxLDcgQEAgc3Rh dGljIGludCBtbHg1ZV9yZXBfZ2V0X3BvcnRfcGFyZW50X2lkKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYsDQogCXN0cnVjdCBtbHg1ZV9wcml2ICp1cGxpbmtfcHJpdiA9IE5VTEw7DQogCXN0cnVjdCBu ZXRfZGV2aWNlICp1cGxpbmtfZGV2Ow0KIA0KLQlpZiAoZXN3LT5tb2RlID09IFNSSU9WX05PTkUp DQorCWlmIChlc3ctPm1vZGUgPT0gTUxYNV9FU1dJVENIX05PTkUpDQogCQlyZXR1cm4gLUVPUE5P VFNVUFA7DQogDQogCXVwbGlua19kZXYgPSBtbHg1X2Vzd2l0Y2hfdXBsaW5rX2dldF9wcm90b19k ZXYoZXN3LCBSRVBfRVRIKTsNCkBAIC00MTksNyArNDE5LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVf c3FzMnZwb3J0X3N0b3Aoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LA0KIAlzdHJ1Y3QgbWx4NWVf cmVwX3NxICpyZXBfc3EsICp0bXA7DQogCXN0cnVjdCBtbHg1ZV9yZXBfcHJpdiAqcnByaXY7DQog DQotCWlmIChlc3ctPm1vZGUgIT0gU1JJT1ZfT0ZGTE9BRFMpDQorCWlmIChlc3ctPm1vZGUgIT0g TUxYNV9FU1dJVENIX09GRkxPQURTKQ0KIAkJcmV0dXJuOw0KIA0KIAlycHJpdiA9IG1seDVlX3Jl cF90b19yZXBfcHJpdihyZXApOw0KQEAgLTQ0MCw3ICs0NDAsNyBAQCBzdGF0aWMgaW50IG1seDVl X3NxczJ2cG9ydF9zdGFydChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csDQogCWludCBlcnI7DQog CWludCBpOw0KIA0KLQlpZiAoZXN3LT5tb2RlICE9IFNSSU9WX09GRkxPQURTKQ0KKwlpZiAoZXN3 LT5tb2RlICE9IE1MWDVfRVNXSVRDSF9PRkZMT0FEUykNCiAJCXJldHVybiAwOw0KIA0KIAlycHJp diA9IG1seDVlX3JlcF90b19yZXBfcHJpdihyZXApOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMNCmluZGV4IDhmZjFjYTQ2ZDhkMy4uMWZmOTc4 NWMyZjgzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX3RjLmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl90Yy5jDQpAQCAtMzM0Miw3ICszMzQyLDcgQEAgbWx4NWVfdGNfYWRkX2Zsb3coc3RydWN0 IG1seDVlX3ByaXYgKnByaXYsDQogCWlmICghdGNfY2FuX29mZmxvYWRfZXh0YWNrKHByaXYtPm5l dGRldiwgZi0+Y29tbW9uLmV4dGFjaykpDQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7DQogDQotCWlm IChlc3cgJiYgZXN3LT5tb2RlID09IFNSSU9WX09GRkxPQURTKQ0KKwlpZiAoZXN3ICYmIGVzdy0+ bW9kZSA9PSBNTFg1X0VTV0lUQ0hfT0ZGTE9BRFMpDQogCQllcnIgPSBtbHg1ZV9hZGRfZmRiX2Zs b3cocHJpdiwgZiwgZmxvd19mbGFncywNCiAJCQkJCSBmaWx0ZXJfZGV2LCBmbG93KTsNCiAJZWxz ZQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l c3dpdGNoLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRj aC5jDQppbmRleCBhNzU4NzU1ZDdhMDguLmI0MjU0MGUxYmE2ZSAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMNCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoLmMNCkBAIC00OTcsNyAr NDk3LDcgQEAgc3RhdGljIGludCBlc3dfYWRkX3VjX2FkZHIoc3RydWN0IG1seDVfZXN3aXRjaCAq ZXN3LCBzdHJ1Y3QgdnBvcnRfYWRkciAqdmFkZHIpDQogDQogZmRiX2FkZDoNCiAJLyogU1JJT1Yg aXMgZW5hYmxlZDogRm9yd2FyZCBVQyBNQUMgdG8gdnBvcnQgKi8NCi0JaWYgKGVzdy0+ZmRiX3Rh YmxlLmxlZ2FjeS5mZGIgJiYgZXN3LT5tb2RlID09IFNSSU9WX0xFR0FDWSkNCisJaWYgKGVzdy0+ ZmRiX3RhYmxlLmxlZ2FjeS5mZGIgJiYgZXN3LT5tb2RlID09IE1MWDVfRVNXSVRDSF9MRUdBQ1kp DQogCQl2YWRkci0+Zmxvd19ydWxlID0gZXN3X2ZkYl9zZXRfdnBvcnRfcnVsZShlc3csIG1hYywg dnBvcnQpOw0KIA0KIAllc3dfZGVidWcoZXN3LT5kZXYsICJcdEFEREVEIFVDIE1BQzogdnBvcnRb JWRdICVwTSBmciglcClcbiIsDQpAQCAtMTU3Nyw3ICsxNTc3LDcgQEAgc3RhdGljIHZvaWQgZXN3 X2FwcGx5X3Zwb3J0X2NvbmYoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LA0KIAkJCSAgICAgICBm bGFncyk7DQogDQogCS8qIE9ubHkgbGVnYWN5IG1vZGUgbmVlZHMgQUNMcyAqLw0KLQlpZiAoZXN3 LT5tb2RlID09IFNSSU9WX0xFR0FDWSkgew0KKwlpZiAoZXN3LT5tb2RlID09IE1MWDVfRVNXSVRD SF9MRUdBQ1kpIHsNCiAJCWVzd192cG9ydF9pbmdyZXNzX2NvbmZpZyhlc3csIHZwb3J0KTsNCiAJ CWVzd192cG9ydF9lZ3Jlc3NfY29uZmlnKGVzdywgdnBvcnQpOw0KIAl9DQpAQCAtMTYyOSw3ICsx NjI5LDcgQEAgc3RhdGljIHZvaWQgZXN3X2VuYWJsZV92cG9ydChzdHJ1Y3QgbWx4NV9lc3dpdGNo ICplc3csIHN0cnVjdCBtbHg1X3Zwb3J0ICp2cG9ydCwNCiAJZXN3X2RlYnVnKGVzdy0+ZGV2LCAi RW5hYmxpbmcgVlBPUlQoJWQpXG4iLCB2cG9ydF9udW0pOw0KIA0KIAkvKiBDcmVhdGUgc3RlZXJp bmcgZHJvcCBjb3VudGVycyBmb3IgaW5ncmVzcyBhbmQgZWdyZXNzIEFDTHMgKi8NCi0JaWYgKHZw b3J0X251bSAmJiBlc3ctPm1vZGUgPT0gU1JJT1ZfTEVHQUNZKQ0KKwlpZiAodnBvcnRfbnVtICYm IGVzdy0+bW9kZSA9PSBNTFg1X0VTV0lUQ0hfTEVHQUNZKQ0KIAkJZXN3X3Zwb3J0X2NyZWF0ZV9k cm9wX2NvdW50ZXJzKHZwb3J0KTsNCiANCiAJLyogUmVzdG9yZSBvbGQgdnBvcnQgY29uZmlndXJh dGlvbiAqLw0KQEAgLTE2ODMsNyArMTY4Myw3IEBAIHN0YXRpYyB2b2lkIGVzd19kaXNhYmxlX3Zw b3J0KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywNCiAJdnBvcnQtPmVuYWJsZWRfZXZlbnRzID0g MDsNCiAJZXN3X3Zwb3J0X2Rpc2FibGVfcW9zKGVzdywgdnBvcnQpOw0KIAlpZiAoZXN3LT5tYW5h Z2VyX3Zwb3J0ICE9IHZwb3J0X251bSAmJg0KLQkgICAgZXN3LT5tb2RlID09IFNSSU9WX0xFR0FD WSkgew0KKwkgICAgZXN3LT5tb2RlID09IE1MWDVfRVNXSVRDSF9MRUdBQ1kpIHsNCiAJCW1seDVf bW9kaWZ5X3Zwb3J0X2FkbWluX3N0YXRlKGVzdy0+ZGV2LA0KIAkJCQkJICAgICAgTUxYNV9WUE9S VF9TVEFURV9PUF9NT0RfRVNXX1ZQT1JULA0KIAkJCQkJICAgICAgdnBvcnRfbnVtLCAxLA0KQEAg LTE3MjgsNyArMTcyOCw3IEBAIGludCBtbHg1X2Vzd19xdWVyeV9mdW5jdGlvbnMoc3RydWN0IG1s eDVfY29yZV9kZXYgKmRldiwgdTMyICpvdXQsIGludCBvdXRsZW4pDQogLyogUHVibGljIEUtU3dp dGNoIEFQSSAqLw0KICNkZWZpbmUgRVNXX0FMTE9XRUQoZXN3KSAoKGVzdykgJiYgTUxYNV9FU1dJ VENIX01BTkFHRVIoKGVzdyktPmRldikpDQogDQotaW50IG1seDVfZXN3aXRjaF9lbmFibGVfc3Jp b3Yoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZmcywgaW50IG1vZGUpDQoraW50IG1s eDVfZXN3aXRjaF9lbmFibGUoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZmcywgaW50 IG1vZGUpDQogew0KIAlzdHJ1Y3QgbWx4NV92cG9ydCAqdnBvcnQ7DQogCWludCB0b3RhbF9udnBv cnRzID0gMDsNCkBAIC0xNzM3LDE5ICsxNzM3LDE3IEBAIGludCBtbHg1X2Vzd2l0Y2hfZW5hYmxl X3NyaW92KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgaW50IG52ZnMsIGludCBtb2RlKQ0KIA0K IAlpZiAoIUVTV19BTExPV0VEKGVzdykgfHwNCiAJICAgICFNTFg1X0NBUF9FU1dfRkxPV1RBQkxF X0ZEQihlc3ctPmRldiwgZnRfc3VwcG9ydCkpIHsNCi0JCWVzd193YXJuKGVzdy0+ZGV2LCAiRS1T d2l0Y2ggRkRCIGlzIG5vdCBzdXBwb3J0ZWQsIGFib3J0aW5nIC4uLlxuIik7DQorCQllc3dfd2Fy bihlc3ctPmRldiwgIkZEQiBpcyBub3Qgc3VwcG9ydGVkLCBhYm9ydGluZyAuLi5cbiIpOw0KIAkJ cmV0dXJuIC1FT1BOT1RTVVBQOw0KIAl9DQogDQogCWlmICghTUxYNV9DQVBfRVNXX0lOR1JFU1Nf QUNMKGVzdy0+ZGV2LCBmdF9zdXBwb3J0KSkNCi0JCWVzd193YXJuKGVzdy0+ZGV2LCAiRS1Td2l0 Y2ggaW5ncmVzcyBBQ0wgaXMgbm90IHN1cHBvcnRlZCBieSBGV1xuIik7DQorCQllc3dfd2Fybihl c3ctPmRldiwgImluZ3Jlc3MgQUNMIGlzIG5vdCBzdXBwb3J0ZWQgYnkgRldcbiIpOw0KIA0KIAlp ZiAoIU1MWDVfQ0FQX0VTV19FR1JFU1NfQUNMKGVzdy0+ZGV2LCBmdF9zdXBwb3J0KSkNCi0JCWVz d193YXJuKGVzdy0+ZGV2LCAiRS1Td2l0Y2ggZW5ncmVzcyBBQ0wgaXMgbm90IHN1cHBvcnRlZCBi eSBGV1xuIik7DQorCQllc3dfd2Fybihlc3ctPmRldiwgImVuZ3Jlc3MgQUNMIGlzIG5vdCBzdXBw b3J0ZWQgYnkgRldcbiIpOw0KIA0KLQllc3dfaW5mbyhlc3ctPmRldiwgIkUtU3dpdGNoIGVuYWJs ZSBTUklPVjogbnZmcyglZCkgbW9kZSAoJWQpXG4iLCBudmZzLCBtb2RlKTsNCi0NCi0JaWYgKG1v ZGUgPT0gU1JJT1ZfT0ZGTE9BRFMpIHsNCisJaWYgKG1vZGUgPT0gTUxYNV9FU1dJVENIX09GRkxP QURTKSB7DQogCQlpZiAobWx4NV9jb3JlX2lzX2VjcGZfZXN3X21hbmFnZXIoZXN3LT5kZXYpKQ0K IAkJCXRvdGFsX252cG9ydHMgPSBlc3ctPnRvdGFsX3Zwb3J0czsNCiAJCWVsc2UNCkBAIC0xNzYw LDcgKzE3NTgsNyBAQCBpbnQgbWx4NV9lc3dpdGNoX2VuYWJsZV9zcmlvdihzdHJ1Y3QgbWx4NV9l c3dpdGNoICplc3csIGludCBudmZzLCBpbnQgbW9kZSkNCiANCiAJbWx4NV9sYWdfdXBkYXRlKGVz dy0+ZGV2KTsNCiANCi0JaWYgKG1vZGUgPT0gU1JJT1ZfTEVHQUNZKSB7DQorCWlmIChtb2RlID09 IE1MWDVfRVNXSVRDSF9MRUdBQ1kpIHsNCiAJCWVyciA9IGVzd19jcmVhdGVfbGVnYWN5X3RhYmxl KGVzdyk7DQogCQlpZiAoZXJyKQ0KIAkJCWdvdG8gYWJvcnQ7DQpAQCAtMTc3NywxMSArMTc3NSwx MSBAQCBpbnQgbWx4NV9lc3dpdGNoX2VuYWJsZV9zcmlvdihzdHJ1Y3QgbWx4NV9lc3dpdGNoICpl c3csIGludCBudmZzLCBpbnQgbW9kZSkNCiAJaWYgKGVycikNCiAJCWVzd193YXJuKGVzdy0+ZGV2 LCAiRmFpbGVkIHRvIGNyZWF0ZSBlc3dpdGNoIFRTQVIiKTsNCiANCi0JLyogRG9uJ3QgZW5hYmxl IHZwb3J0IGV2ZW50cyB3aGVuIGluIFNSSU9WX09GRkxPQURTIG1vZGUsIHNpbmNlOg0KKwkvKiBE b24ndCBlbmFibGUgdnBvcnQgZXZlbnRzIHdoZW4gaW4gTUxYNV9FU1dJVENIX09GRkxPQURTIG1v ZGUsIHNpbmNlOg0KIAkgKiAxLiBMMiB0YWJsZSAoTVBGUykgaXMgcHJvZ3JhbW1lZCBieSBQRi9W RiByZXByZXNlbnRvcnMgbmV0ZGV2cyBzZXRfcnhfbW9kZQ0KIAkgKiAyLiBGREIvRXN3aXRjaCBp cyBwcm9ncmFtbWVkIGJ5IHVzZXIgc3BhY2UgdG9vbHMNCiAJICovDQotCWVuYWJsZWRfZXZlbnRz ID0gKG1vZGUgPT0gU1JJT1ZfTEVHQUNZKSA/IFNSSU9WX1ZQT1JUX0VWRU5UUyA6IDA7DQorCWVu YWJsZWRfZXZlbnRzID0gKG1vZGUgPT0gTUxYNV9FU1dJVENIX0xFR0FDWSkgPyBTUklPVl9WUE9S VF9FVkVOVFMgOiAwOw0KIA0KIAkvKiBFbmFibGUgUEYgdnBvcnQgKi8NCiAJdnBvcnQgPSBtbHg1 X2Vzd2l0Y2hfZ2V0X3Zwb3J0KGVzdywgTUxYNV9WUE9SVF9QRik7DQpAQCAtMTc5NywxOSArMTc5 NSwyMSBAQCBpbnQgbWx4NV9lc3dpdGNoX2VuYWJsZV9zcmlvdihzdHJ1Y3QgbWx4NV9lc3dpdGNo ICplc3csIGludCBudmZzLCBpbnQgbW9kZSkNCiAJbWx4NV9lc3dfZm9yX2VhY2hfdmZfdnBvcnQo ZXN3LCBpLCB2cG9ydCwgbnZmcykNCiAJCWVzd19lbmFibGVfdnBvcnQoZXN3LCB2cG9ydCwgZW5h YmxlZF9ldmVudHMpOw0KIA0KLQlpZiAobW9kZSA9PSBTUklPVl9MRUdBQ1kpIHsNCisJaWYgKG1v ZGUgPT0gTUxYNV9FU1dJVENIX0xFR0FDWSkgew0KIAkJTUxYNV9OQl9JTklUKCZlc3ctPm5iLCBl c3dpdGNoX3Zwb3J0X2V2ZW50LCBOSUNfVlBPUlRfQ0hBTkdFKTsNCiAJCW1seDVfZXFfbm90aWZp ZXJfcmVnaXN0ZXIoZXN3LT5kZXYsICZlc3ctPm5iKTsNCiAJfQ0KIA0KLQllc3dfaW5mbyhlc3ct PmRldiwgIlNSSU9WIGVuYWJsZWQ6IGFjdGl2ZSB2cG9ydHMoJWQpXG4iLA0KLQkJIGVzdy0+ZW5h YmxlZF92cG9ydHMpOw0KKwllc3dfaW5mbyhlc3ctPmRldiwgIkVuYWJsZTogbW9kZSglcyksIG52 ZnMoJWQpLCBhY3RpdmUgdnBvcnRzKCVkKVxuIiwNCisJCSBtb2RlID09IE1MWDVfRVNXSVRDSF9M RUdBQ1kgPyAiTEVHQUNZIiA6ICJPRkZMT0FEUyIsDQorCQkgbnZmcywgZXN3LT5lbmFibGVkX3Zw b3J0cyk7DQorDQogCXJldHVybiAwOw0KIA0KIGFib3J0Og0KLQllc3ctPm1vZGUgPSBTUklPVl9O T05FOw0KKwllc3ctPm1vZGUgPSBNTFg1X0VTV0lUQ0hfTk9ORTsNCiANCi0JaWYgKG1vZGUgPT0g U1JJT1ZfT0ZGTE9BRFMpIHsNCisJaWYgKG1vZGUgPT0gTUxYNV9FU1dJVENIX09GRkxPQURTKSB7 DQogCQltbHg1X3JlbG9hZF9pbnRlcmZhY2UoZXN3LT5kZXYsIE1MWDVfSU5URVJGQUNFX1BST1RP Q09MX0lCKTsNCiAJCW1seDVfcmVsb2FkX2ludGVyZmFjZShlc3ctPmRldiwgTUxYNV9JTlRFUkZB Q0VfUFJPVE9DT0xfRVRIKTsNCiAJfQ0KQEAgLTE4MTcsMjIgKzE4MTcsMjMgQEAgaW50IG1seDVf ZXN3aXRjaF9lbmFibGVfc3Jpb3Yoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZmcywg aW50IG1vZGUpDQogCXJldHVybiBlcnI7DQogfQ0KIA0KLXZvaWQgbWx4NV9lc3dpdGNoX2Rpc2Fi bGVfc3Jpb3Yoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KQ0KK3ZvaWQgbWx4NV9lc3dpdGNoX2Rp c2FibGUoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KQ0KIHsNCiAJc3RydWN0IGVzd19tY19hZGRy ICptY19wcm9taXNjOw0KIAlzdHJ1Y3QgbWx4NV92cG9ydCAqdnBvcnQ7DQogCWludCBvbGRfbW9k ZTsNCiAJaW50IGk7DQogDQotCWlmICghRVNXX0FMTE9XRUQoZXN3KSB8fCBlc3ctPm1vZGUgPT0g U1JJT1ZfTk9ORSkNCisJaWYgKCFFU1dfQUxMT1dFRChlc3cpIHx8IGVzdy0+bW9kZSA9PSBNTFg1 X0VTV0lUQ0hfTk9ORSkNCiAJCXJldHVybjsNCiANCi0JZXN3X2luZm8oZXN3LT5kZXYsICJkaXNh YmxlIFNSSU9WOiBhY3RpdmUgdnBvcnRzKCVkKSBtb2RlKCVkKVxuIiwNCi0JCSBlc3ctPmVuYWJs ZWRfdnBvcnRzLCBlc3ctPm1vZGUpOw0KKwllc3dfaW5mbyhlc3ctPmRldiwgIkRpc2FibGU6IG1v ZGUoJXMpLCBudmZzKCVkKSwgYWN0aXZlIHZwb3J0cyglZClcbiIsDQorCQkgZXN3LT5tb2RlID09 IE1MWDVfRVNXSVRDSF9MRUdBQ1kgPyAiTEVHQUNZIiA6ICJPRkZMT0FEUyIsDQorCQkgZXN3LT5k ZXYtPnByaXYuc3Jpb3YubnVtX3ZmcywgZXN3LT5lbmFibGVkX3Zwb3J0cyk7DQogDQogCW1jX3By b21pc2MgPSAmZXN3LT5tY19wcm9taXNjOw0KIA0KLQlpZiAoZXN3LT5tb2RlID09IFNSSU9WX0xF R0FDWSkNCisJaWYgKGVzdy0+bW9kZSA9PSBNTFg1X0VTV0lUQ0hfTEVHQUNZKQ0KIAkJbWx4NV9l cV9ub3RpZmllcl91bnJlZ2lzdGVyKGVzdy0+ZGV2LCAmZXN3LT5uYik7DQogDQogCW1seDVfZXN3 X2Zvcl9hbGxfdnBvcnRzKGVzdywgaSwgdnBvcnQpDQpAQCAtMTg0MywxNyArMTg0NCwxNyBAQCB2 b2lkIG1seDVfZXN3aXRjaF9kaXNhYmxlX3NyaW92KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdykN CiANCiAJZXN3X2Rlc3Ryb3lfdHNhcihlc3cpOw0KIA0KLQlpZiAoZXN3LT5tb2RlID09IFNSSU9W X0xFR0FDWSkNCisJaWYgKGVzdy0+bW9kZSA9PSBNTFg1X0VTV0lUQ0hfTEVHQUNZKQ0KIAkJZXN3 X2Rlc3Ryb3lfbGVnYWN5X3RhYmxlKGVzdyk7DQotCWVsc2UgaWYgKGVzdy0+bW9kZSA9PSBTUklP Vl9PRkZMT0FEUykNCisJZWxzZSBpZiAoZXN3LT5tb2RlID09IE1MWDVfRVNXSVRDSF9PRkZMT0FE UykNCiAJCWVzd19vZmZsb2Fkc19jbGVhbnVwKGVzdyk7DQogDQogCW9sZF9tb2RlID0gZXN3LT5t b2RlOw0KLQllc3ctPm1vZGUgPSBTUklPVl9OT05FOw0KKwllc3ctPm1vZGUgPSBNTFg1X0VTV0lU Q0hfTk9ORTsNCiANCiAJbWx4NV9sYWdfdXBkYXRlKGVzdy0+ZGV2KTsNCiANCi0JaWYgKG9sZF9t b2RlID09IFNSSU9WX09GRkxPQURTKSB7DQorCWlmIChvbGRfbW9kZSA9PSBNTFg1X0VTV0lUQ0hf T0ZGTE9BRFMpIHsNCiAJCW1seDVfcmVsb2FkX2ludGVyZmFjZShlc3ctPmRldiwgTUxYNV9JTlRF UkZBQ0VfUFJPVE9DT0xfSUIpOw0KIAkJbWx4NV9yZWxvYWRfaW50ZXJmYWNlKGVzdy0+ZGV2LCBN TFg1X0lOVEVSRkFDRV9QUk9UT0NPTF9FVEgpOw0KIAl9DQpAQCAtMTkxNCw3ICsxOTE1LDcgQEAg aW50IG1seDVfZXN3aXRjaF9pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpDQogCX0NCiAN CiAJZXN3LT5lbmFibGVkX3Zwb3J0cyA9IDA7DQotCWVzdy0+bW9kZSA9IFNSSU9WX05PTkU7DQor CWVzdy0+bW9kZSA9IE1MWDVfRVNXSVRDSF9OT05FOw0KIAllc3ctPm9mZmxvYWRzLmlubGluZV9t b2RlID0gTUxYNV9JTkxJTkVfTU9ERV9OT05FOw0KIAlpZiAoTUxYNV9DQVBfRVNXX0ZMT1dUQUJM RV9GREIoZGV2LCByZWZvcm1hdCkgJiYNCiAJICAgIE1MWDVfQ0FQX0VTV19GTE9XVEFCTEVfRkRC KGRldiwgZGVjYXApKQ0KQEAgLTE5ODQsNyArMTk4NSw3IEBAIGludCBtbHg1X2Vzd2l0Y2hfc2V0 X3Zwb3J0X21hYyhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csDQogDQogCWV0aGVyX2FkZHJfY29w eShldnBvcnQtPmluZm8ubWFjLCBtYWMpOw0KIAlldnBvcnQtPmluZm8ubm9kZV9ndWlkID0gbm9k ZV9ndWlkOw0KLQlpZiAoZXZwb3J0LT5lbmFibGVkICYmIGVzdy0+bW9kZSA9PSBTUklPVl9MRUdB Q1kpDQorCWlmIChldnBvcnQtPmVuYWJsZWQgJiYgZXN3LT5tb2RlID09IE1MWDVfRVNXSVRDSF9M RUdBQ1kpDQogCQllcnIgPSBlc3dfdnBvcnRfaW5ncmVzc19jb25maWcoZXN3LCBldnBvcnQpOw0K IA0KIHVubG9jazoNCkBAIC0yMDY4LDcgKzIwNjksNyBAQCBpbnQgX19tbHg1X2Vzd2l0Y2hfc2V0 X3Zwb3J0X3ZsYW4oc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LA0KIA0KIAlldnBvcnQtPmluZm8u dmxhbiA9IHZsYW47DQogCWV2cG9ydC0+aW5mby5xb3MgPSBxb3M7DQotCWlmIChldnBvcnQtPmVu YWJsZWQgJiYgZXN3LT5tb2RlID09IFNSSU9WX0xFR0FDWSkgew0KKwlpZiAoZXZwb3J0LT5lbmFi bGVkICYmIGVzdy0+bW9kZSA9PSBNTFg1X0VTV0lUQ0hfTEVHQUNZKSB7DQogCQllcnIgPSBlc3df dnBvcnRfaW5ncmVzc19jb25maWcoZXN3LCBldnBvcnQpOw0KIAkJaWYgKGVycikNCiAJCQlnb3Rv IHVubG9jazsNCkBAIC0yMTEwLDcgKzIxMTEsNyBAQCBpbnQgbWx4NV9lc3dpdGNoX3NldF92cG9y dF9zcG9vZmNoayhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csDQogCQltbHg1X2NvcmVfd2Fybihl c3ctPmRldiwNCiAJCQkgICAgICAgIlNwb29mY2hrIGluIHNldCB3aGlsZSBNQUMgaXMgaW52YWxp ZCwgdnBvcnQoJWQpXG4iLA0KIAkJCSAgICAgICBldnBvcnQtPnZwb3J0KTsNCi0JaWYgKGV2cG9y dC0+ZW5hYmxlZCAmJiBlc3ctPm1vZGUgPT0gU1JJT1ZfTEVHQUNZKQ0KKwlpZiAoZXZwb3J0LT5l bmFibGVkICYmIGVzdy0+bW9kZSA9PSBNTFg1X0VTV0lUQ0hfTEVHQUNZKQ0KIAkJZXJyID0gZXN3 X3Zwb3J0X2luZ3Jlc3NfY29uZmlnKGVzdywgZXZwb3J0KTsNCiAJaWYgKGVycikNCiAJCWV2cG9y dC0+aW5mby5zcG9vZmNoayA9IHBzY2hrOw0KQEAgLTIyMDYsNyArMjIwNyw3IEBAIGludCBtbHg1 X2Vzd2l0Y2hfc2V0X3ZlcGEoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCB1OCBzZXR0aW5nKQ0K IAkJcmV0dXJuIC1FUEVSTTsNCiANCiAJbXV0ZXhfbG9jaygmZXN3LT5zdGF0ZV9sb2NrKTsNCi0J aWYgKGVzdy0+bW9kZSAhPSBTUklPVl9MRUdBQ1kpIHsNCisJaWYgKGVzdy0+bW9kZSAhPSBNTFg1 X0VTV0lUQ0hfTEVHQUNZKSB7DQogCQllcnIgPSAtRU9QTk9UU1VQUDsNCiAJCWdvdG8gb3V0Ow0K IAl9DQpAQCAtMjIyOSw3ICsyMjMwLDcgQEAgaW50IG1seDVfZXN3aXRjaF9nZXRfdmVwYShzdHJ1 Y3QgbWx4NV9lc3dpdGNoICplc3csIHU4ICpzZXR0aW5nKQ0KIAkJcmV0dXJuIC1FUEVSTTsNCiAN CiAJbXV0ZXhfbG9jaygmZXN3LT5zdGF0ZV9sb2NrKTsNCi0JaWYgKGVzdy0+bW9kZSAhPSBTUklP Vl9MRUdBQ1kpIHsNCisJaWYgKGVzdy0+bW9kZSAhPSBNTFg1X0VTV0lUQ0hfTEVHQUNZKSB7DQog CQllcnIgPSAtRU9QTk9UU1VQUDsNCiAJCWdvdG8gb3V0Ow0KIAl9DQpAQCAtMjM3Miw3ICsyMzcz LDcgQEAgc3RhdGljIGludCBtbHg1X2Vzd2l0Y2hfcXVlcnlfdnBvcnRfZHJvcF9zdGF0cyhzdHJ1 Y3QgbWx4NV9jb3JlX2RldiAqZGV2LA0KIAl1NjQgYnl0ZXMgPSAwOw0KIAlpbnQgZXJyID0gMDsN CiANCi0JaWYgKCF2cG9ydC0+ZW5hYmxlZCB8fCBlc3ctPm1vZGUgIT0gU1JJT1ZfTEVHQUNZKQ0K KwlpZiAoIXZwb3J0LT5lbmFibGVkIHx8IGVzdy0+bW9kZSAhPSBNTFg1X0VTV0lUQ0hfTEVHQUNZ KQ0KIAkJcmV0dXJuIDA7DQogDQogCWlmICh2cG9ydC0+ZWdyZXNzLmRyb3BfY291bnRlcikNCkBA IC0yNDgyLDcgKzI0ODMsNyBAQCBpbnQgbWx4NV9lc3dpdGNoX2dldF92cG9ydF9zdGF0cyhzdHJ1 Y3QgbWx4NV9lc3dpdGNoICplc3csDQogDQogdTggbWx4NV9lc3dpdGNoX21vZGUoc3RydWN0IG1s eDVfZXN3aXRjaCAqZXN3KQ0KIHsNCi0JcmV0dXJuIEVTV19BTExPV0VEKGVzdykgPyBlc3ctPm1v ZGUgOiBTUklPVl9OT05FOw0KKwlyZXR1cm4gRVNXX0FMTE9XRUQoZXN3KSA/IGVzdy0+bW9kZSA6 IE1MWDVfRVNXSVRDSF9OT05FOw0KIH0NCiBFWFBPUlRfU1lNQk9MX0dQTChtbHg1X2Vzd2l0Y2hf bW9kZSk7DQogDQpAQCAtMjQ5OSwxMCArMjUwMCwxMCBAQCBFWFBPUlRfU1lNQk9MKG1seDVfZXN3 aXRjaF9nZXRfZW5jYXBfbW9kZSk7DQogDQogYm9vbCBtbHg1X2Vzd19sYWdfcHJlcmVxKHN0cnVj dCBtbHg1X2NvcmVfZGV2ICpkZXYwLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2MSkNCiB7DQot CWlmICgoZGV2MC0+cHJpdi5lc3dpdGNoLT5tb2RlID09IFNSSU9WX05PTkUgJiYNCi0JICAgICBk ZXYxLT5wcml2LmVzd2l0Y2gtPm1vZGUgPT0gU1JJT1ZfTk9ORSkgfHwNCi0JICAgIChkZXYwLT5w cml2LmVzd2l0Y2gtPm1vZGUgPT0gU1JJT1ZfT0ZGTE9BRFMgJiYNCi0JICAgICBkZXYxLT5wcml2 LmVzd2l0Y2gtPm1vZGUgPT0gU1JJT1ZfT0ZGTE9BRFMpKQ0KKwlpZiAoKGRldjAtPnByaXYuZXN3 aXRjaC0+bW9kZSA9PSBNTFg1X0VTV0lUQ0hfTk9ORSAmJg0KKwkgICAgIGRldjEtPnByaXYuZXN3 aXRjaC0+bW9kZSA9PSBNTFg1X0VTV0lUQ0hfTk9ORSkgfHwNCisJICAgIChkZXYwLT5wcml2LmVz d2l0Y2gtPm1vZGUgPT0gTUxYNV9FU1dJVENIX09GRkxPQURTICYmDQorCSAgICAgZGV2MS0+cHJp di5lc3dpdGNoLT5tb2RlID09IE1MWDVfRVNXSVRDSF9PRkZMT0FEUykpDQogCQlyZXR1cm4gdHJ1 ZTsNCiANCiAJcmV0dXJuIGZhbHNlOw0KQEAgLTI1MTEsNiArMjUxMiw2IEBAIGJvb2wgbWx4NV9l c3dfbGFnX3ByZXJlcShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2MCwgc3RydWN0IG1seDVfY29y ZV9kZXYgKmRldjEpDQogYm9vbCBtbHg1X2Vzd19tdWx0aXBhdGhfcHJlcmVxKHN0cnVjdCBtbHg1 X2NvcmVfZGV2ICpkZXYwLA0KIAkJCSAgICAgICBzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2MSkN CiB7DQotCXJldHVybiAoZGV2MC0+cHJpdi5lc3dpdGNoLT5tb2RlID09IFNSSU9WX09GRkxPQURT ICYmDQotCQlkZXYxLT5wcml2LmVzd2l0Y2gtPm1vZGUgPT0gU1JJT1ZfT0ZGTE9BRFMpOw0KKwly ZXR1cm4gKGRldjAtPnByaXYuZXN3aXRjaC0+bW9kZSA9PSBNTFg1X0VTV0lUQ0hfT0ZGTE9BRFMg JiYNCisJCWRldjEtPnByaXYuZXN3aXRjaC0+bW9kZSA9PSBNTFg1X0VTV0lUQ0hfT0ZGTE9BRFMp Ow0KIH0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZXN3aXRjaC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vz d2l0Y2guaA0KaW5kZXggMzM1Y2JlZWUxYjllLi4yNzNhMTcyNDMyNzUgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oDQorKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaC5oDQpAQCAtMjUz LDggKzI1Myw4IEBAIHZvaWQgZXN3X3Zwb3J0X2RlbF9pbmdyZXNzX2FjbF9tb2RpZnlfbWV0YWRh dGEoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LA0KIC8qIEUtU3dpdGNoIEFQSSAqLw0KIGludCBt bHg1X2Vzd2l0Y2hfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KTsNCiB2b2lkIG1seDVf ZXN3aXRjaF9jbGVhbnVwKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyk7DQotaW50IG1seDVfZXN3 aXRjaF9lbmFibGVfc3Jpb3Yoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBpbnQgbnZmcywgaW50 IG1vZGUpOw0KLXZvaWQgbWx4NV9lc3dpdGNoX2Rpc2FibGVfc3Jpb3Yoc3RydWN0IG1seDVfZXN3 aXRjaCAqZXN3KTsNCitpbnQgbWx4NV9lc3dpdGNoX2VuYWJsZShzdHJ1Y3QgbWx4NV9lc3dpdGNo ICplc3csIGludCBudmZzLCBpbnQgbW9kZSk7DQordm9pZCBtbHg1X2Vzd2l0Y2hfZGlzYWJsZShz dHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpOw0KIGludCBtbHg1X2Vzd2l0Y2hfc2V0X3Zwb3J0X21h YyhzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csDQogCQkJICAgICAgIGludCB2cG9ydCwgdTggbWFj W0VUSF9BTEVOXSk7DQogaW50IG1seDVfZXN3aXRjaF9zZXRfdnBvcnRfc3RhdGUoc3RydWN0IG1s eDVfZXN3aXRjaCAqZXN3LA0KQEAgLTUyOCw4ICs1MjgsOCBAQCBib29sIG1seDVfZXN3aXRjaF9p c192Zl92cG9ydChjb25zdCBzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIHUxNiB2cG9ydF9udW0p Ow0KIC8qIGVzd2l0Y2ggQVBJIHN0dWJzICovDQogc3RhdGljIGlubGluZSBpbnQgIG1seDVfZXN3 aXRjaF9pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpIHsgcmV0dXJuIDA7IH0NCiBzdGF0 aWMgaW5saW5lIHZvaWQgbWx4NV9lc3dpdGNoX2NsZWFudXAoc3RydWN0IG1seDVfZXN3aXRjaCAq ZXN3KSB7fQ0KLXN0YXRpYyBpbmxpbmUgaW50ICBtbHg1X2Vzd2l0Y2hfZW5hYmxlX3NyaW92KHN0 cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgaW50IG52ZnMsIGludCBtb2RlKSB7IHJldHVybiAwOyB9 DQotc3RhdGljIGlubGluZSB2b2lkIG1seDVfZXN3aXRjaF9kaXNhYmxlX3NyaW92KHN0cnVjdCBt bHg1X2Vzd2l0Y2ggKmVzdykge30NCitzdGF0aWMgaW5saW5lIGludCAgbWx4NV9lc3dpdGNoX2Vu YWJsZShzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3csIGludCBudmZzLCBpbnQgbW9kZSkgeyByZXR1 cm4gMDsgfQ0KK3N0YXRpYyBpbmxpbmUgdm9pZCBtbHg1X2Vzd2l0Y2hfZGlzYWJsZShzdHJ1Y3Qg bWx4NV9lc3dpdGNoICplc3cpIHt9DQogc3RhdGljIGlubGluZSBib29sIG1seDVfZXN3X2xhZ19w cmVyZXEoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldjAsIHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpk ZXYxKSB7IHJldHVybiB0cnVlOyB9DQogc3RhdGljIGlubGluZSBib29sIG1seDVfZXN3aXRjaF9p c19mdW5jc19oYW5kbGVyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpIHsgcmV0dXJuIGZhbHNl OyB9DQogc3RhdGljIGlubGluZSBpbnQNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYw0KaW5kZXggYjI1M2Jk Zjc1ZGQ2Li5hMWJlYWRhMWNkYmYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jDQorKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jDQpAQCAtMTQ3LDcg KzE0Nyw3IEBAIG1seDVfZXN3aXRjaF9hZGRfb2ZmbG9hZGVkX3J1bGUoc3RydWN0IG1seDVfZXN3 aXRjaCAqZXN3LA0KIAlzdHJ1Y3QgbWx4NV9mbG93X3RhYmxlICpmZGI7DQogCWludCBqLCBpID0g MDsNCiANCi0JaWYgKGVzdy0+bW9kZSAhPSBTUklPVl9PRkZMT0FEUykNCisJaWYgKGVzdy0+bW9k ZSAhPSBNTFg1X0VTV0lUQ0hfT0ZGTE9BRFMpDQogCQlyZXR1cm4gRVJSX1BUUigtRU9QTk9UU1VQ UCk7DQogDQogCWZsb3dfYWN0LmFjdGlvbiA9IGF0dHItPmFjdGlvbjsNCkBAIC0xMzU4LDE5ICsx MzU4LDE5IEBAIHN0YXRpYyBpbnQgZXN3X29mZmxvYWRzX3N0YXJ0KHN0cnVjdCBtbHg1X2Vzd2l0 Y2ggKmVzdywNCiB7DQogCWludCBlcnIsIGVycjEsIG51bV92ZnMgPSBlc3ctPmRldi0+cHJpdi5z cmlvdi5udW1fdmZzOw0KIA0KLQlpZiAoZXN3LT5tb2RlICE9IFNSSU9WX0xFR0FDWSAmJg0KKwlp ZiAoZXN3LT5tb2RlICE9IE1MWDVfRVNXSVRDSF9MRUdBQ1kgJiYNCiAJICAgICFtbHg1X2NvcmVf aXNfZWNwZl9lc3dfbWFuYWdlcihlc3ctPmRldikpIHsNCiAJCU5MX1NFVF9FUlJfTVNHX01PRChl eHRhY2ssDQogCQkJCSAgICJDYW4ndCBzZXQgb2ZmbG9hZHMgbW9kZSwgU1JJT1YgbGVnYWN5IG5v dCBlbmFibGVkIik7DQogCQlyZXR1cm4gLUVJTlZBTDsNCiAJfQ0KIA0KLQltbHg1X2Vzd2l0Y2hf ZGlzYWJsZV9zcmlvdihlc3cpOw0KLQllcnIgPSBtbHg1X2Vzd2l0Y2hfZW5hYmxlX3NyaW92KGVz dywgbnVtX3ZmcywgU1JJT1ZfT0ZGTE9BRFMpOw0KKwltbHg1X2Vzd2l0Y2hfZGlzYWJsZShlc3cp Ow0KKwllcnIgPSBtbHg1X2Vzd2l0Y2hfZW5hYmxlKGVzdywgbnVtX3ZmcywgTUxYNV9FU1dJVENI X09GRkxPQURTKTsNCiAJaWYgKGVycikgew0KIAkJTkxfU0VUX0VSUl9NU0dfTU9EKGV4dGFjaywN CiAJCQkJICAgIkZhaWxlZCBzZXR0aW5nIGVzd2l0Y2ggdG8gb2ZmbG9hZHMiKTsNCi0JCWVycjEg PSBtbHg1X2Vzd2l0Y2hfZW5hYmxlX3NyaW92KGVzdywgbnVtX3ZmcywgU1JJT1ZfTEVHQUNZKTsN CisJCWVycjEgPSBtbHg1X2Vzd2l0Y2hfZW5hYmxlKGVzdywgbnVtX3ZmcywgTUxYNV9FU1dJVENI X0xFR0FDWSk7DQogCQlpZiAoZXJyMSkgew0KIAkJCU5MX1NFVF9FUlJfTVNHX01PRChleHRhY2ss DQogCQkJCQkgICAiRmFpbGVkIHNldHRpbmcgZXN3aXRjaCBiYWNrIHRvIGxlZ2FjeSIpOw0KQEAg LTIxNzQsMTEgKzIxNzQsMTEgQEAgc3RhdGljIGludCBlc3dfb2ZmbG9hZHNfc3RvcChzdHJ1Y3Qg bWx4NV9lc3dpdGNoICplc3csDQogew0KIAlpbnQgZXJyLCBlcnIxLCBudW1fdmZzID0gZXN3LT5k ZXYtPnByaXYuc3Jpb3YubnVtX3ZmczsNCiANCi0JbWx4NV9lc3dpdGNoX2Rpc2FibGVfc3Jpb3Yo ZXN3KTsNCi0JZXJyID0gbWx4NV9lc3dpdGNoX2VuYWJsZV9zcmlvdihlc3csIG51bV92ZnMsIFNS SU9WX0xFR0FDWSk7DQorCW1seDVfZXN3aXRjaF9kaXNhYmxlKGVzdyk7DQorCWVyciA9IG1seDVf ZXN3aXRjaF9lbmFibGUoZXN3LCBudW1fdmZzLCBNTFg1X0VTV0lUQ0hfTEVHQUNZKTsNCiAJaWYg KGVycikgew0KIAkJTkxfU0VUX0VSUl9NU0dfTU9EKGV4dGFjaywgIkZhaWxlZCBzZXR0aW5nIGVz d2l0Y2ggdG8gbGVnYWN5Iik7DQotCQllcnIxID0gbWx4NV9lc3dpdGNoX2VuYWJsZV9zcmlvdihl c3csIG51bV92ZnMsIFNSSU9WX09GRkxPQURTKTsNCisJCWVycjEgPSBtbHg1X2Vzd2l0Y2hfZW5h YmxlKGVzdywgbnVtX3ZmcywgTUxYNV9FU1dJVENIX09GRkxPQURTKTsNCiAJCWlmIChlcnIxKSB7 DQogCQkJTkxfU0VUX0VSUl9NU0dfTU9EKGV4dGFjaywNCiAJCQkJCSAgICJGYWlsZWQgc2V0dGlu ZyBlc3dpdGNoIGJhY2sgdG8gb2ZmbG9hZHMiKTsNCkBAIC0yMjAzLDEwICsyMjAzLDEwIEBAIHN0 YXRpYyBpbnQgZXN3X21vZGVfZnJvbV9kZXZsaW5rKHUxNiBtb2RlLCB1MTYgKm1seDVfbW9kZSkN CiB7DQogCXN3aXRjaCAobW9kZSkgew0KIAljYXNlIERFVkxJTktfRVNXSVRDSF9NT0RFX0xFR0FD WToNCi0JCSptbHg1X21vZGUgPSBTUklPVl9MRUdBQ1k7DQorCQkqbWx4NV9tb2RlID0gTUxYNV9F U1dJVENIX0xFR0FDWTsNCiAJCWJyZWFrOw0KIAljYXNlIERFVkxJTktfRVNXSVRDSF9NT0RFX1NX SVRDSERFVjoNCi0JCSptbHg1X21vZGUgPSBTUklPVl9PRkZMT0FEUzsNCisJCSptbHg1X21vZGUg PSBNTFg1X0VTV0lUQ0hfT0ZGTE9BRFM7DQogCQlicmVhazsNCiAJZGVmYXVsdDoNCiAJCXJldHVy biAtRUlOVkFMOw0KQEAgLTIyMTgsMTAgKzIyMTgsMTAgQEAgc3RhdGljIGludCBlc3dfbW9kZV9m cm9tX2RldmxpbmsodTE2IG1vZGUsIHUxNiAqbWx4NV9tb2RlKQ0KIHN0YXRpYyBpbnQgZXN3X21v ZGVfdG9fZGV2bGluayh1MTYgbWx4NV9tb2RlLCB1MTYgKm1vZGUpDQogew0KIAlzd2l0Y2ggKG1s eDVfbW9kZSkgew0KLQljYXNlIFNSSU9WX0xFR0FDWToNCisJY2FzZSBNTFg1X0VTV0lUQ0hfTEVH QUNZOg0KIAkJKm1vZGUgPSBERVZMSU5LX0VTV0lUQ0hfTU9ERV9MRUdBQ1k7DQogCQlicmVhazsN Ci0JY2FzZSBTUklPVl9PRkZMT0FEUzoNCisJY2FzZSBNTFg1X0VTV0lUQ0hfT0ZGTE9BRFM6DQog CQkqbW9kZSA9IERFVkxJTktfRVNXSVRDSF9NT0RFX1NXSVRDSERFVjsNCiAJCWJyZWFrOw0KIAlk ZWZhdWx0Og0KQEAgLTIyODUsNyArMjI4NSw3IEBAIHN0YXRpYyBpbnQgbWx4NV9kZXZsaW5rX2Vz d2l0Y2hfY2hlY2soc3RydWN0IGRldmxpbmsgKmRldmxpbmspDQogCWlmKCFNTFg1X0VTV0lUQ0hf TUFOQUdFUihkZXYpKQ0KIAkJcmV0dXJuIC1FUEVSTTsNCiANCi0JaWYgKGRldi0+cHJpdi5lc3dp dGNoLT5tb2RlID09IFNSSU9WX05PTkUgJiYNCisJaWYgKGRldi0+cHJpdi5lc3dpdGNoLT5tb2Rl ID09IE1MWDVfRVNXSVRDSF9OT05FICYmDQogCSAgICAhbWx4NV9jb3JlX2lzX2VjcGZfZXN3X21h bmFnZXIoZGV2KSkNCiAJCXJldHVybiAtRU9QTk9UU1VQUDsNCiANCkBAIC0yNDA4LDcgKzI0MDgs NyBAQCBpbnQgbWx4NV9lc3dpdGNoX2lubGluZV9tb2RlX2dldChzdHJ1Y3QgbWx4NV9lc3dpdGNo ICplc3csIGludCBudmZzLCB1OCAqbW9kZSkNCiAJaWYgKCFNTFg1X0NBUF9HRU4oZGV2LCB2cG9y dF9ncm91cF9tYW5hZ2VyKSkNCiAJCXJldHVybiAtRU9QTk9UU1VQUDsNCiANCi0JaWYgKGVzdy0+ bW9kZSA9PSBTUklPVl9OT05FKQ0KKwlpZiAoZXN3LT5tb2RlID09IE1MWDVfRVNXSVRDSF9OT05F KQ0KIAkJcmV0dXJuIC1FT1BOT1RTVVBQOw0KIA0KIAlzd2l0Y2ggKE1MWDVfQ0FQX0VUSChkZXYs IHdxZV9pbmxpbmVfbW9kZSkpIHsNCkBAIC0yNDU1LDcgKzI0NTUsNyBAQCBpbnQgbWx4NV9kZXZs aW5rX2Vzd2l0Y2hfZW5jYXBfbW9kZV9zZXQoc3RydWN0IGRldmxpbmsgKmRldmxpbmssDQogCWlm IChlbmNhcCAmJiBlbmNhcCAhPSBERVZMSU5LX0VTV0lUQ0hfRU5DQVBfTU9ERV9CQVNJQykNCiAJ CXJldHVybiAtRU9QTk9UU1VQUDsNCiANCi0JaWYgKGVzdy0+bW9kZSA9PSBTUklPVl9MRUdBQ1kp IHsNCisJaWYgKGVzdy0+bW9kZSA9PSBNTFg1X0VTV0lUQ0hfTEVHQUNZKSB7DQogCQllc3ctPm9m ZmxvYWRzLmVuY2FwID0gZW5jYXA7DQogCQlyZXR1cm4gMDsNCiAJfQ0KQEAgLTI1MjIsNyArMjUy Miw3IEBAIHZvaWQgbWx4NV9lc3dpdGNoX3VucmVnaXN0ZXJfdnBvcnRfcmVwcyhzdHJ1Y3QgbWx4 NV9lc3dpdGNoICplc3csIHU4IHJlcF90eXBlKQ0KIAlzdHJ1Y3QgbWx4NV9lc3dpdGNoX3JlcCAq cmVwOw0KIAlpbnQgaTsNCiANCi0JaWYgKGVzdy0+bW9kZSA9PSBTUklPVl9PRkZMT0FEUykNCisJ aWYgKGVzdy0+bW9kZSA9PSBNTFg1X0VTV0lUQ0hfT0ZGTE9BRFMpDQogCQlfX3VubG9hZF9yZXBz X2FsbF92cG9ydChlc3csIG1heF92ZiwgcmVwX3R5cGUpOw0KIA0KIAltbHg1X2Vzd19mb3JfYWxs X3JlcHMoZXN3LCBpLCByZXApDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2xhZy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2xhZy5jDQppbmRleCA5NTk2MDU1NTk4NTguLmM1ZWYyZmYyNjQ2NSAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcuYw0KKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy5jDQpAQCAtMzA1LDgg KzMwNSw4IEBAIHN0YXRpYyB2b2lkIG1seDVfZG9fYm9uZChzdHJ1Y3QgbWx4NV9sYWcgKmxkZXYp DQogCQkJICAgIW1seDVfc3Jpb3ZfaXNfZW5hYmxlZChkZXYxKTsNCiANCiAjaWZkZWYgQ09ORklH X01MWDVfRVNXSVRDSA0KLQkJcm9jZV9sYWcgJj0gZGV2MC0+cHJpdi5lc3dpdGNoLT5tb2RlID09 IFNSSU9WX05PTkUgJiYNCi0JCQkgICAgZGV2MS0+cHJpdi5lc3dpdGNoLT5tb2RlID09IFNSSU9W X05PTkU7DQorCQlyb2NlX2xhZyAmPSBkZXYwLT5wcml2LmVzd2l0Y2gtPm1vZGUgPT0gTUxYNV9F U1dJVENIX05PTkUgJiYNCisJCQkgICAgZGV2MS0+cHJpdi5lc3dpdGNoLT5tb2RlID09IE1MWDVf RVNXSVRDSF9OT05FOw0KICNlbmRpZg0KIA0KIAkJaWYgKHJvY2VfbGFnKQ0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zcmlvdi5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3NyaW92LmMNCmluZGV4IDlkOWZmNDUx MTMwNi4uZDRjOTBmMDI5ZjQ5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL3NyaW92LmMNCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9zcmlvdi5jDQpAQCAtNzcsNyArNzcsNyBAQCBzdGF0aWMgaW50IG1seDVf ZGV2aWNlX2VuYWJsZV9zcmlvdihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgbnVtX3Zm cykNCiAJaWYgKCFNTFg1X0VTV0lUQ0hfTUFOQUdFUihkZXYpKQ0KIAkJZ290byBlbmFibGVfdmZz X2hjYTsNCiANCi0JZXJyID0gbWx4NV9lc3dpdGNoX2VuYWJsZV9zcmlvdihkZXYtPnByaXYuZXN3 aXRjaCwgbnVtX3ZmcywgU1JJT1ZfTEVHQUNZKTsNCisJZXJyID0gbWx4NV9lc3dpdGNoX2VuYWJs ZShkZXYtPnByaXYuZXN3aXRjaCwgbnVtX3ZmcywgTUxYNV9FU1dJVENIX0xFR0FDWSk7DQogCWlm IChlcnIpIHsNCiAJCW1seDVfY29yZV93YXJuKGRldiwNCiAJCQkgICAgICAgImZhaWxlZCB0byBl bmFibGUgZXN3aXRjaCBTUklPViAoJWQpXG4iLCBlcnIpOw0KQEAgLTEyNiw3ICsxMjYsNyBAQCBz dGF0aWMgdm9pZCBtbHg1X2RldmljZV9kaXNhYmxlX3NyaW92KHN0cnVjdCBtbHg1X2NvcmVfZGV2 ICpkZXYpDQogCX0NCiANCiAJaWYgKE1MWDVfRVNXSVRDSF9NQU5BR0VSKGRldikpDQotCQltbHg1 X2Vzd2l0Y2hfZGlzYWJsZV9zcmlvdihkZXYtPnByaXYuZXN3aXRjaCk7DQorCQltbHg1X2Vzd2l0 Y2hfZGlzYWJsZShkZXYtPnByaXYuZXN3aXRjaCk7DQogDQogCWlmIChtbHg1X3dhaXRfZm9yX3Bh Z2VzKGRldiwgJmRldi0+cHJpdi52ZnNfcGFnZXMpKQ0KIAkJbWx4NV9jb3JlX3dhcm4oZGV2LCAi dGltZW91dCByZWNsYWltaW5nIFZGcyBwYWdlc1xuIik7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9tbHg1L2Vzd2l0Y2guaCBiL2luY2x1ZGUvbGludXgvbWx4NS9lc3dpdGNoLmgNCmluZGV4 IDM2Y2I2NDExODhiMC4uZDQ3MzExOTllZGI0IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9t bHg1L2Vzd2l0Y2guaA0KKysrIGIvaW5jbHVkZS9saW51eC9tbHg1L2Vzd2l0Y2guaA0KQEAgLTEy LDkgKzEyLDkgQEANCiAjZGVmaW5lIE1MWDVfRVNXSVRDSF9NQU5BR0VSKG1kZXYpIE1MWDVfQ0FQ X0dFTihtZGV2LCBlc3dpdGNoX21hbmFnZXIpDQogDQogZW51bSB7DQotCVNSSU9WX05PTkUsDQot CVNSSU9WX0xFR0FDWSwNCi0JU1JJT1ZfT0ZGTE9BRFMNCisJTUxYNV9FU1dJVENIX05PTkUsDQor CU1MWDVfRVNXSVRDSF9MRUdBQ1ksDQorCU1MWDVfRVNXSVRDSF9PRkZMT0FEUw0KIH07DQogDQog ZW51bSB7DQotLSANCjIuMjEuMA0KDQo=