From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.9 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,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 46DFEC48BD5 for ; Tue, 25 Jun 2019 20:58:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0FE5520663 for ; Tue, 25 Jun 2019 20:58:25 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="b/Hh6om9" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726497AbfFYU6Y (ORCPT ); Tue, 25 Jun 2019 16:58:24 -0400 Received: from mail-eopbgr140054.outbound.protection.outlook.com ([40.107.14.54]:20873 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726476AbfFYU6X (ORCPT ); Tue, 25 Jun 2019 16:58:23 -0400 ARC-Seal: i=1; a=rsa-sha256; s=testarcselector01; d=microsoft.com; cv=none; b=SDhbso0qg8EjE7vg75MjOC/IAiHldWMGyCZrGdYIVIoTeqr8XQISxSBu0rPWa69zvG/5tKxk8ZXqMq6QcbJhdwBvsZTlK9J+YKCcERY5OKPRiLTYlIliPtQHj6OkaJc3U+JvWU74aBIBezNNxPm0Mp0rvbyVjRY2Y3jVESzoA+E= 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=Ml4R8H9SfJ7hxexlCJV8tPpydYE3NAfeVvH4mbtcWA0=; b=S3wyRMXU7rV2lNHNRvTRts4W0pHYqiuT4Wch8ioLaSbSy+mOWCT+QvDH/C3mQDL+H8M8tI25NgwlTwgwIPfQUyC7k8svpMJGNRx70SU0aEvQDh2+JhH7sbga4wefzrzNGBJlfdTYS0v6RdDJ3gu3nwe5FspLQHDOvUcIrCLVNfk= 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=Ml4R8H9SfJ7hxexlCJV8tPpydYE3NAfeVvH4mbtcWA0=; b=b/Hh6om9Q/OwJMqJOjHfZIbUa6mf9srEx6pBJj9ByxABWcl++L5iQn82BDwUzIyroIdj3UtJF/HgdIdPdVi5cFWBHqjGo6nlbaWSBgt6mAqgZ+98W0meJ+xAq14wtNOiwacTp5q4gufGmfLRTkLdvttOjiIPBndb0vPrA6E+keE= Received: from DB6PR0501MB2759.eurprd05.prod.outlook.com (10.172.227.7) by DB6PR0501MB2696.eurprd05.prod.outlook.com (10.172.225.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2008.16; Tue, 25 Jun 2019 20:57:49 +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; Tue, 25 Jun 2019 20:57:49 +0000 From: Saeed Mahameed To: "David S. Miller" , Doug Ledford , Jason Gunthorpe CC: Leon Romanovsky , Or Gerlitz , Sagi Grimberg , Tal Gilboa , "netdev@vger.kernel.org" , "linux-rdma@vger.kernel.org" , Yamin Friedman , Max Gurtovoy , Saeed Mahameed Subject: [for-next V2 08/10] linux/dim: Implement rdma_dim Thread-Topic: [for-next V2 08/10] linux/dim: Implement rdma_dim Thread-Index: AQHVK5il3ipUD41nHEmYTK87tvGOHA== Date: Tue, 25 Jun 2019 20:57:48 +0000 Message-ID: <20190625205701.17849-9-saeedm@mellanox.com> References: <20190625205701.17849-1-saeedm@mellanox.com> In-Reply-To: <20190625205701.17849-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: BYAPR03CA0025.namprd03.prod.outlook.com (2603:10b6:a02:a8::38) 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: e2c00f13-535c-4bcf-a6d0-08d6f9afc7d0 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:DB6PR0501MB2696; x-ms-traffictypediagnostic: DB6PR0501MB2696: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-forefront-prvs: 0079056367 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(396003)(136003)(376002)(366004)(346002)(199004)(189003)(6512007)(66476007)(186003)(86362001)(305945005)(3846002)(26005)(6116002)(68736007)(7736002)(102836004)(50226002)(99286004)(14444005)(53936002)(6636002)(76176011)(1076003)(2906002)(5660300002)(6436002)(64756008)(14454004)(66556008)(25786009)(486006)(52116002)(73956011)(71190400001)(6486002)(6506007)(11346002)(81166006)(71200400001)(446003)(386003)(66946007)(256004)(81156014)(66446008)(478600001)(4326008)(66066001)(8676002)(107886003)(2616005)(36756003)(316002)(476003)(8936002)(110136005)(54906003);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0501MB2696;H:DB6PR0501MB2759.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: FXC5uhgnc02v4+PyJMACKJBbkFTDxl9nTaMwz1YahKkfPKrSi9YhMUhCD1dxrMr2jc00vt+9REeznmUO7TzVcES6Rz69QGV4neDFQLO5qewalD1Gpg5dmjWtLjApkdld9f0Et4QIaILwLsi2HOlT1riYALfHa590Sm2otNAzwM6WX7vpQa+ZjWbq0DGEP7PeKEf0yVxszEDM5vqX7VBNFZ3dlg/y7ht4bvwxylyosNkiNorqK1k+o2jFrGnVDTmzT3F+FSPnixepOmN7c1AF/pxwwOgLjRqt71Wt1Idju8nieo14cQEZc5IDhmxO7sJc+CcNaSVSxKFNt+Jke5m+3umq1FIXKoFhiklYTt2O7qmGq9te/9f/T99HJokQXC4oFzlOJJFyfAn6NcAIi+ZtFnSVoTj80itwRKt03I+TRJw= 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: e2c00f13-535c-4bcf-a6d0-08d6f9afc7d0 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jun 2019 20:57:49.0020 (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: DB6PR0501MB2696 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RnJvbTogWWFtaW4gRnJpZWRtYW4gPHlhbWluZkBtZWxsYW5veC5jb20+DQoNCnJkbWFfZGltIGlt cGxlbWVudHMgYSBkaWZmZXJlbnQgYWxnb3JpdGhtIHRoYW4gbmV0X2RpbSBhbmQgaXMgYmFzZWQg b24NCmNvbXBsZXRpb25zIHdoaWNoIGlzIGhvdyB3ZSBjYW4gaW1wbGVtZW50IGludGVycnVwdCBt b2RlcmF0aW9uIGluIFJETUEuDQpUaGUgYWxnb3JpdGhtIG9wdGltaXplcyBmb3IgbnVtYmVyIG9m IGNvbXBsZXRpb25zIGFuZCByYXRpbyBiZXR3ZWVuDQpjb21wbGV0aW9ucyBhbmQgZXZlbnRzLg0K SXQgYWxzbyBoYXMgYSBmZWF0dXJlIGZvciBmYXN0IHJlZHVjdGlvbiBvZiBtb2RlcmF0aW9uIGxl dmVsIHdoZW4gdGhlDQp0cmFmZmljIGNoYW5nZXMgaW4gc3VjaCBhIHdheSBhcyB0byBubyBsb25n ZXIgcmVxdWlyZSBoaWdoIG1vZGVyYXRpb24gaW4NCm9yZGVyIHRvIGF2b2lkIGxvbmcgbGF0ZW5j aWVzLg0KDQpyZG1hX2RpbSB3aWxsIGJlIGNhbGxlZCBmcm9tIHRoZSBpYl9jb3JlIG1vZHVsZS4N Cg0KU2lnbmVkLW9mZi1ieTogWWFtaW4gRnJpZWRtYW4gPHlhbWluZkBtZWxsYW5veC5jb20+DQpS ZXZpZXdlZC1ieTogTWF4IEd1cnRvdm95IDxtYXhnQG1lbGxhbm94LmNvbT4NClJldmlld2VkLWJ5 OiBMZW9uIFJvbWFub3Zza3kgPGxlb25yb0BtZWxsYW5veC5jb20+DQpTaWduZWQtb2ZmLWJ5OiBT YWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4NCi0tLQ0KIGluY2x1ZGUvbGludXgv ZGltLmggfCAgMzYgKysrKysrKysrKysrKysNCiBsaWIvZGltL01ha2VmaWxlICAgIHwgICA2ICst LQ0KIGxpYi9kaW0vcmRtYV9kaW0uYyAgfCAxMTIgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysNCiAzIGZpbGVzIGNoYW5nZWQsIDE1MCBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvZGltL3JkbWFfZGltLmMNCg0K ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZGltLmggYi9pbmNsdWRlL2xpbnV4L2RpbS5oDQpp bmRleCBhYTliZGQ0N2E2NDguLjFhZTMyODM1NzIzYSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGlu dXgvZGltLmgNCisrKyBiL2luY2x1ZGUvbGludXgvZGltLmgNCkBAIC04Miw2ICs4Miw3IEBAIHN0 cnVjdCBkaW1fc3RhdHMgew0KICAqIEBwcmV2X3N0YXRzOiBNZWFzdXJlZCByYXRlcyBmcm9tIHBy ZXZpb3VzIGl0ZXJhdGlvbiAoZm9yIGNvbXBhcmlzb24pDQogICogQHN0YXJ0X3NhbXBsZTogU2Ft cGxlZCBkYXRhIGF0IHN0YXJ0IG9mIGN1cnJlbnQgaXRlcmF0aW9uDQogICogQHdvcms6IFdvcmsg dG8gcGVyZm9ybSBvbiBhY3Rpb24gcmVxdWlyZWQNCisgKiBAZGltX293bmVyOiBBIHBvaW50ZXIg dG8gdGhlIHN0cnVjdCB0aGF0IHBvaW50cyB0byBkaW0NCiAgKiBAcHJvZmlsZV9peDogQ3VycmVu dCBtb2RlcmF0aW9uIHByb2ZpbGUNCiAgKiBAbW9kZTogQ1EgcGVyaW9kIGNvdW50IG1vZGUNCiAg KiBAdHVuZV9zdGF0ZTogQWxnb3JpdGhtIHR1bmluZyBzdGF0ZSAoc2VlIGJlbG93KQ0KQEAgLTk1 LDYgKzk2LDcgQEAgc3RydWN0IGRpbSB7DQogCXN0cnVjdCBkaW1fc2FtcGxlIHN0YXJ0X3NhbXBs ZTsNCiAJc3RydWN0IGRpbV9zYW1wbGUgbWVhc3VyaW5nX3NhbXBsZTsNCiAJc3RydWN0IHdvcmtf c3RydWN0IHdvcms7DQorCXZvaWQgKmRpbV9vd25lcjsNCiAJdTggcHJvZmlsZV9peDsNCiAJdTgg bW9kZTsNCiAJdTggdHVuZV9zdGF0ZTsNCkBAIC0zNjMsNCArMzY1LDM4IEBAIHN0cnVjdCBkaW1f Y3FfbW9kZXIgbmV0X2RpbV9nZXRfZGVmX3R4X21vZGVyYXRpb24odTggY3FfcGVyaW9kX21vZGUp Ow0KICAqLw0KIHZvaWQgbmV0X2RpbShzdHJ1Y3QgZGltICpkaW0sIHN0cnVjdCBkaW1fc2FtcGxl IGVuZF9zYW1wbGUpOw0KIA0KKy8qIFJETUEgRElNICovDQorDQorLyoNCisgKiBSRE1BIERJTSBw cm9maWxlOg0KKyAqIHByb2ZpbGUgc2l6ZSBtdXN0IGJlIG9mIFJETUFfRElNX1BBUkFNU19OVU1f UFJPRklMRVMuDQorICovDQorI2RlZmluZSBSRE1BX0RJTV9QQVJBTVNfTlVNX1BST0ZJTEVTIDkN CisjZGVmaW5lIFJETUFfRElNX1NUQVJUX1BST0ZJTEUgMA0KKw0KK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgZGltX2NxX21vZGVyDQorcmRtYV9kaW1fcHJvZltSRE1BX0RJTV9QQVJBTVNfTlVNX1BST0ZJ TEVTXSA9IHsNCisJezEsICAgMCwgMSwgIDB9LA0KKwl7MSwgICAwLCA0LCAgMH0sDQorCXsyLCAg IDAsIDQsICAwfSwNCisJezIsICAgMCwgOCwgIDB9LA0KKwl7NCwgICAwLCA4LCAgMH0sDQorCXsx NiwgIDAsIDgsICAwfSwNCisJezE2LCAgMCwgMTYsIDB9LA0KKwl7MzIsICAwLCAxNiwgMH0sDQor CXszMiwgIDAsIDMyLCAwfSwNCit9Ow0KKw0KKy8qKg0KKyAqIHJkbWFfZGltIC0gUnVucyB0aGUg YWRhcHRpdmUgbW9kZXJhdGlvbi4NCisgKiBAZGltOiBUaGUgbW9kZXJhdGlvbiBzdHJ1Y3QuDQor ICogQGNvbXBsZXRpb25zOiBUaGUgbnVtYmVyIG9mIGNvbXBsZXRpb25zIGNvbGxlY3RlZCBpbiB0 aGlzIHJvdW5kLg0KKyAqDQorICogRWFjaCBjYWxsIHRvIHJkbWFfZGltIHRha2VzIHRoZSBsYXRl c3QgYW1vdW50IG9mIGNvbXBsZXRpb25zIHRoYXQNCisgKiBoYXZlIGJlZW4gY29sbGVjdGVkIGFu ZCBjb3VudHMgdGhlbSBhcyBhIG5ldyBldmVudC4NCisgKiBPbmNlIGVub3VnaCBldmVudHMgaGF2 ZSBiZWVuIGNvbGxlY3RlZCB0aGUgYWxnb3JpdGhtIGRlY2lkZXMgYSBuZXcNCisgKiBtb2RlcmF0 aW9uIGxldmVsLg0KKyAqLw0KK3ZvaWQgcmRtYV9kaW0oc3RydWN0IGRpbSAqZGltLCB1NjQgY29t cGxldGlvbnMpOw0KKw0KICNlbmRpZiAvKiBESU1fSCAqLw0KZGlmZiAtLWdpdCBhL2xpYi9kaW0v TWFrZWZpbGUgYi9saWIvZGltL01ha2VmaWxlDQppbmRleCAxNjBhZmUyODhkZjAuLjFkNjg1OGEx MDhjYiAxMDA2NDQNCi0tLSBhL2xpYi9kaW0vTWFrZWZpbGUNCisrKyBiL2xpYi9kaW0vTWFrZWZp bGUNCkBAIC0yLDggKzIsNiBAQA0KICMgRElNIER5bmFtaWMgSW50ZXJydXB0IE1vZGVyYXRpb24g bGlicmFyeQ0KICMNCiANCi1vYmotJChDT05GSUdfRElNTElCKSA9IG5ldF9kaW0ubw0KK29iai0k KENPTkZJR19ESU1MSUIpICs9IGRpbS5vDQogDQotbmV0X2RpbS15ID0gXA0KLQlkaW0ubwkJXA0K LQluZXRfZGltLm8NCitkaW0teSA6PSBkaW0ubyBuZXRfZGltLm8gcmRtYV9kaW0ubw0KZGlmZiAt LWdpdCBhL2xpYi9kaW0vcmRtYV9kaW0uYyBiL2xpYi9kaW0vcmRtYV9kaW0uYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uMWJmZThmNTQ2YTIwDQotLS0gL2Rldi9u dWxsDQorKysgYi9saWIvZGltL3JkbWFfZGltLmMNCkBAIC0wLDAgKzEsMTEyIEBADQorLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTGludXgtT3BlbklCDQorLyoNCisgKiBD b3B5cmlnaHQgKGMpIDIwMTksIE1lbGxhbm94IFRlY2hub2xvZ2llcyBpbmMuICBBbGwgcmlnaHRz IHJlc2VydmVkLg0KKyAqLw0KKw0KKyNpbmNsdWRlIDxsaW51eC9kaW0uaD4NCisNCitzdGF0aWMg aW50IHJkbWFfZGltX3N0ZXAoc3RydWN0IGRpbSAqZGltKQ0KK3sNCisJaWYgKGRpbS0+dHVuZV9z dGF0ZSA9PSBESU1fR09JTkdfUklHSFQpIHsNCisJCWlmIChkaW0tPnByb2ZpbGVfaXggPT0gKFJE TUFfRElNX1BBUkFNU19OVU1fUFJPRklMRVMgLSAxKSkNCisJCQlyZXR1cm4gRElNX09OX0VER0U7 DQorCQlkaW0tPnByb2ZpbGVfaXgrKzsNCisJCWRpbS0+c3RlcHNfcmlnaHQrKzsNCisJfQ0KKwlp ZiAoZGltLT50dW5lX3N0YXRlID09IERJTV9HT0lOR19MRUZUKSB7DQorCQlpZiAoZGltLT5wcm9m aWxlX2l4ID09IDApDQorCQkJcmV0dXJuIERJTV9PTl9FREdFOw0KKwkJZGltLT5wcm9maWxlX2l4 LS07DQorCQlkaW0tPnN0ZXBzX2xlZnQrKzsNCisJfQ0KKw0KKwlyZXR1cm4gRElNX1NURVBQRUQ7 DQorfQ0KKw0KK3N0YXRpYyBpbnQgcmRtYV9kaW1fc3RhdHNfY29tcGFyZShzdHJ1Y3QgZGltX3N0 YXRzICpjdXJyLA0KKwkJCQkgIHN0cnVjdCBkaW1fc3RhdHMgKnByZXYpDQorew0KKwkvKiBmaXJz dCBzdGF0ICovDQorCWlmICghcHJldi0+Y3BtcykNCisJCXJldHVybiBESU1fU1RBVFNfU0FNRTsN CisNCisJaWYgKElTX1NJR05JRklDQU5UX0RJRkYoY3Vyci0+Y3BtcywgcHJldi0+Y3BtcykpDQor CQlyZXR1cm4gKGN1cnItPmNwbXMgPiBwcmV2LT5jcG1zKSA/IERJTV9TVEFUU19CRVRURVIgOg0K KwkJCQkJCURJTV9TVEFUU19XT1JTRTsNCisNCisJaWYgKElTX1NJR05JRklDQU5UX0RJRkYoY3Vy ci0+Y3BlX3JhdGlvLCBwcmV2LT5jcGVfcmF0aW8pKQ0KKwkJcmV0dXJuIChjdXJyLT5jcGVfcmF0 aW8gPiBwcmV2LT5jcGVfcmF0aW8pID8gRElNX1NUQVRTX0JFVFRFUiA6DQorCQkJCQkJRElNX1NU QVRTX1dPUlNFOw0KKw0KKwlyZXR1cm4gRElNX1NUQVRTX1NBTUU7DQorfQ0KKw0KK3N0YXRpYyBi b29sIHJkbWFfZGltX2RlY2lzaW9uKHN0cnVjdCBkaW1fc3RhdHMgKmN1cnJfc3RhdHMsIHN0cnVj dCBkaW0gKmRpbSkNCit7DQorCWludCBwcmV2X2l4ID0gZGltLT5wcm9maWxlX2l4Ow0KKwl1OCBz dGF0ZSA9IGRpbS0+dHVuZV9zdGF0ZTsNCisJaW50IHN0YXRzX3JlczsNCisJaW50IHN0ZXBfcmVz Ow0KKw0KKwlpZiAoc3RhdGUgIT0gRElNX1BBUktJTkdfT05fVE9QICYmIHN0YXRlICE9IERJTV9Q QVJLSU5HX1RJUkVEKSB7DQorCQlzdGF0c19yZXMgPSByZG1hX2RpbV9zdGF0c19jb21wYXJlKGN1 cnJfc3RhdHMsDQorCQkJCQkJICAgJmRpbS0+cHJldl9zdGF0cyk7DQorDQorCQlzd2l0Y2ggKHN0 YXRzX3Jlcykgew0KKwkJY2FzZSBESU1fU1RBVFNfU0FNRToNCisJCQlpZiAoY3Vycl9zdGF0cy0+ Y3BlX3JhdGlvIDw9IDUwICogcHJldl9peCkNCisJCQkJZGltLT5wcm9maWxlX2l4ID0gMDsNCisJ CQlicmVhazsNCisJCWNhc2UgRElNX1NUQVRTX1dPUlNFOg0KKwkJCWRpbV90dXJuKGRpbSk7DQor CQkJLyogZmFsbCB0aHJvdWdoICovDQorCQljYXNlIERJTV9TVEFUU19CRVRURVI6DQorCQkJc3Rl cF9yZXMgPSByZG1hX2RpbV9zdGVwKGRpbSk7DQorCQkJaWYgKHN0ZXBfcmVzID09IERJTV9PTl9F REdFKQ0KKwkJCQlkaW1fdHVybihkaW0pOw0KKwkJCWJyZWFrOw0KKwkJfQ0KKwl9DQorDQorCWRp bS0+cHJldl9zdGF0cyA9ICpjdXJyX3N0YXRzOw0KKw0KKwlyZXR1cm4gZGltLT5wcm9maWxlX2l4 ICE9IHByZXZfaXg7DQorfQ0KKw0KK3ZvaWQgcmRtYV9kaW0oc3RydWN0IGRpbSAqZGltLCB1NjQg Y29tcGxldGlvbnMpDQorew0KKwlzdHJ1Y3QgZGltX3NhbXBsZSAqY3Vycl9zYW1wbGUgPSAmZGlt LT5tZWFzdXJpbmdfc2FtcGxlOw0KKwlzdHJ1Y3QgZGltX3N0YXRzIGN1cnJfc3RhdHM7DQorCXUz MiBuZXZlbnRzOw0KKw0KKwlkaW1fdXBkYXRlX3NhbXBsZV93aXRoX2NvbXBzKGN1cnJfc2FtcGxl LT5ldmVudF9jdHIgKyAxLA0KKwkJCQkgICAgIGN1cnJfc2FtcGxlLT5wa3RfY3RyLA0KKwkJCQkg ICAgIGN1cnJfc2FtcGxlLT5ieXRlX2N0ciwNCisJCQkJICAgICBjdXJyX3NhbXBsZS0+Y29tcF9j dHIgKyBjb21wbGV0aW9ucywNCisJCQkJICAgICAmZGltLT5tZWFzdXJpbmdfc2FtcGxlKTsNCisN CisJc3dpdGNoIChkaW0tPnN0YXRlKSB7DQorCWNhc2UgRElNX01FQVNVUkVfSU5fUFJPR1JFU1M6 DQorCQluZXZlbnRzID0gY3Vycl9zYW1wbGUtPmV2ZW50X2N0ciAtIGRpbS0+c3RhcnRfc2FtcGxl LmV2ZW50X2N0cjsNCisJCWlmIChuZXZlbnRzIDwgRElNX05FVkVOVFMpDQorCQkJYnJlYWs7DQor CQlkaW1fY2FsY19zdGF0cygmZGltLT5zdGFydF9zYW1wbGUsIGN1cnJfc2FtcGxlLCAmY3Vycl9z dGF0cyk7DQorCQlpZiAocmRtYV9kaW1fZGVjaXNpb24oJmN1cnJfc3RhdHMsIGRpbSkpIHsNCisJ CQlkaW0tPnN0YXRlID0gRElNX0FQUExZX05FV19QUk9GSUxFOw0KKwkJCXNjaGVkdWxlX3dvcmso JmRpbS0+d29yayk7DQorCQkJYnJlYWs7DQorCQl9DQorCQkvKiBmYWxsIHRocm91Z2ggKi8NCisJ Y2FzZSBESU1fU1RBUlRfTUVBU1VSRToNCisJCWRpbS0+c3RhdGUgPSBESU1fTUVBU1VSRV9JTl9Q Uk9HUkVTUzsNCisJCWRpbV91cGRhdGVfc2FtcGxlX3dpdGhfY29tcHMoY3Vycl9zYW1wbGUtPmV2 ZW50X2N0ciwNCisJCQkJCSAgICAgY3Vycl9zYW1wbGUtPnBrdF9jdHIsDQorCQkJCQkgICAgIGN1 cnJfc2FtcGxlLT5ieXRlX2N0ciwNCisJCQkJCSAgICAgY3Vycl9zYW1wbGUtPmNvbXBfY3RyLA0K KwkJCQkJICAgICAmZGltLT5zdGFydF9zYW1wbGUpOw0KKwkJYnJlYWs7DQorCWNhc2UgRElNX0FQ UExZX05FV19QUk9GSUxFOg0KKwkJYnJlYWs7DQorCX0NCit9DQorRVhQT1JUX1NZTUJPTChyZG1h X2RpbSk7DQotLSANCjIuMjEuMA0KDQo=