Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp3783804ybi; Sun, 2 Jun 2019 23:34:22 -0700 (PDT) X-Google-Smtp-Source: APXvYqydOTxbLFcJFV1e1GpY/zdIg3mnTMnd1x90pVNdSHuciTYsjGgzfSTdQcNJbs5lCy2VSlvw X-Received: by 2002:a17:902:b194:: with SMTP id s20mr15923672plr.77.1559543662612; Sun, 02 Jun 2019 23:34:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1559543662; cv=none; d=google.com; s=arc-20160816; b=sEyo/nVVMSGQXdHh6DzoqUes//thjdFFMs5SKKI46t9vGjwyR9zxVRMqEqUz/s8haa sgaAaiquCV5r3kAyw3cQNLKiXvKsEEQCpDHO1DYY+c71V1n9OTg091KHe3AkmNoMbjGE 6lDSBYgWHC0GpVCNK13Qao7VaMnAuYVbIc9kvpX2KeyS3H85fXMPt3yepZYQeDmPf7Ln TiccGZxh/LiDP6Nc+CuJz0nVpVM+EiYVBnArWiGUvFhSy+Lk5xZvPeeZIkRLxThzJKR8 3qqLwMh5mBoy2bOtmMuNq8KEFt0YF8eD9BdSd8Qmy1Pr4y1CXBwhWblY3AsZnQ5rGhVZ //4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :nodisclaimer:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature; bh=34dm3IgU5lZDAaTpazdrCxzU9twsyVhGBUZ+pdSsQ80=; b=EW9ZBb2MAKEvq+KCEVVF01MPhDr7gCUBWLtVRHOHI5kxrJfBbHOGbC8y3jSuujpwkw P0SIFDPSx14z6kmLdAoxCyJ9FNVVb00BCIjzt/qNbAsEXDjoocjwTKWLTSgUxiEkbYDt s2STmFnvK2Hi5rLjhMGnm8XOLrjZiGmizCNmyWcickC1Mmq+3TmIKLkcKaRz5Nj+UHDZ wuTKs8XaFn1+DiLl6Pq6R3m+hqbd0dLMBTkeOHuGZTJZ2sqMyJ6O5wfmmENbYEx3RUry T9u+YN63mCnnTYVTkG/IOsv80+YYSaHVpatndw59il0fOP5JW9035RKlYcX+bLj+QhqR wGWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=mzVaSG6f; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g31si18840286plb.241.2019.06.02.23.34.06; Sun, 02 Jun 2019 23:34:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=mzVaSG6f; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727119AbfFCGb4 (ORCPT + 99 others); Mon, 3 Jun 2019 02:31:56 -0400 Received: from mail-eopbgr50088.outbound.protection.outlook.com ([40.107.5.88]:46215 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726383AbfFCGbz (ORCPT ); Mon, 3 Jun 2019 02:31:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=34dm3IgU5lZDAaTpazdrCxzU9twsyVhGBUZ+pdSsQ80=; b=mzVaSG6f3fKkIBKMHRxp8is3C3WjEWqTxnpRPnD0VH9EL+Z1MGq0Qchv0HEqFftHGlE5xZopFL+WGfPtQIrOcdgDNbBabda72np7CcwXlFRUkGlJNHPNsNu5mvRm+5huUsvaGklH6xCeFhlt4jPGTNCfIv397u+6LusuBq7vWOs= Received: from VI1PR08MB5488.eurprd08.prod.outlook.com (52.133.246.150) by VI1PR08MB4605.eurprd08.prod.outlook.com (20.178.13.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1943.17; Mon, 3 Jun 2019 06:31:49 +0000 Received: from VI1PR08MB5488.eurprd08.prod.outlook.com ([fe80::ada6:12ed:65d0:4629]) by VI1PR08MB5488.eurprd08.prod.outlook.com ([fe80::ada6:12ed:65d0:4629%4]) with mapi id 15.20.1922.025; Mon, 3 Jun 2019 06:31:49 +0000 From: "Lowry Li (Arm Technology China)" To: Liviu Dudau , "james qian wang (Arm Technology China)" , "maarten.lankhorst@linux.intel.com" , "seanpaul@chromium.org" , "airlied@linux.ie" , Brian Starkey CC: "Julien Yin (Arm Technology China)" , "Jonathan Chai (Arm Technology China)" , Ayan Halder , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , nd Subject: [PATCH v1 1/2] drm/komeda: Add slave pipeline support Thread-Topic: [PATCH v1 1/2] drm/komeda: Add slave pipeline support Thread-Index: AQHVGdYFbzV08y9A6kO6ercEAK5Q3Q== Date: Mon, 3 Jun 2019 06:31:48 +0000 Message-ID: <1559543462-32264-2-git-send-email-lowry.li@arm.com> References: <1559543462-32264-1-git-send-email-lowry.li@arm.com> In-Reply-To: <1559543462-32264-1-git-send-email-lowry.li@arm.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [113.29.88.7] x-clientproxiedby: HK0PR01CA0060.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::24) To VI1PR08MB5488.eurprd08.prod.outlook.com (2603:10a6:803:137::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Lowry.Li@arm.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 1.9.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 94058442-8f10-442f-3b87-08d6e7ed281f x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600148)(711020)(4605104)(1401327)(4618075)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020);SRVR:VI1PR08MB4605; x-ms-traffictypediagnostic: VI1PR08MB4605: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:75; x-forefront-prvs: 0057EE387C x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(136003)(396003)(376002)(346002)(366004)(39860400002)(189003)(199004)(102836004)(6512007)(36756003)(110136005)(26005)(54906003)(486006)(256004)(386003)(186003)(14444005)(6506007)(99286004)(446003)(11346002)(55236004)(52116002)(66446008)(66476007)(53936002)(66946007)(64756008)(68736007)(4326008)(6636002)(2616005)(476003)(76176011)(73956011)(66556008)(86362001)(72206003)(14454004)(478600001)(25786009)(6486002)(5660300002)(50226002)(2906002)(8936002)(316002)(2501003)(30864003)(81156014)(81166006)(66066001)(8676002)(7736002)(6436002)(6116002)(5024004)(71200400001)(71190400001)(3846002)(305945005)(2201001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR08MB4605;H:VI1PR08MB5488.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: WwC8B3QUsNVZFIC5pmiPuEYNULMRaMFSkpBn4gjf6C+gSdGfsdFLDWZz1yOsNIO+dE/CM3iaVUzeEJzUWnGr3LzfR3SUvQBBv0k3LhL3FzXT3Q8ZxefM/TKQzAOhFCHEVFaJEGaoSig/RB6PzPrrT2uGuJ7TOb42ysZgBAxjmY+5tTYNkdRm/mHvWQ1RI6uO04GnsRW/d2ThL+EungQAxhw+balGYm92IY+YDC7s2Gj0ByH4uS9bwmrpBVrFPxqu5Fh+XaEk/euEshoP1ZaRwYZgVFwGiTUDKUabsz2ypUl9EDHSuzUScchdgbOJvnWSjSycwgMJN0HauHpy0uO5/v7zSv/d9mA4u0hZkUpH5TtU4Ly4x0huAtZq/L3W+o2fRlOaGuYSevR3ue17BEBsoeoqI6+uX1tT7RmU+YuNgCw= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94058442-8f10-442f-3b87-08d6e7ed281f X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jun 2019 06:31:48.8796 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Lowry.Li@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4605 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T25lIGNydGMgY2FuIHVzZSB0d28ga29tZWRhX3BpcGVsaW5lLCBhbmQgb25lIHdvcmtzIGFzIG1h c3RlciBhbmQgYXMNCnNsYXZlLiB0aGUgc2xhdmUgcGlwZWxpbmUgZG9lc24ndCBoYXZlIGl0cyBv d24gb3V0cHV0IGFuZCB0aW1pbmcNCmN0cmxyLCBidXQgcHJlLWNvbXBvc2l0ZSB0aGUgaW5wdXQg bGF5ZXIgZGF0YSBmbG93IGFuZCB0aGVuIGZlZWQgdGhlDQpyZXN1bHQgdG8gbWFzdGVyLiB0aGUg cGlwZWxpbmUgY29uZmlndXJhdGlvbiBsaWtlOg0KDQpzbGF2ZS1sYXllci0wIFwNCi4uLiAgICAg ICAgICAgIHNsYXZlLT5DVQ0Kc2xhdmUtbGF5ZXItNCAvICAgICAgICAgXA0KICAgICAgICAgICAg ICAgICAgICAgICAgXA0KbWFzdGVyLWxheWVyLTAgLS0tLS0tLS0+IG1hc3Rlci0+Q1UgLT4gLi4u DQogLi4uICAgICAgICAgICAgICAgICAgLw0KbWFzdGVyLWxheWVyLTQgLS0tLS0tPg0KDQpTaW5j ZSBrb21lZGEgQ29tcGl6IGRvZXNuJ3Qgb3V0cHV0IGFscGhhLCBzbyB0aGUgc2xhdmUtPkNVIHJl c3VsdA0Kb25seSBjYW4gYmUgdXNlZCBhcyBib3R0b20gaW5wdXQgd2hlbiBibGVuZCBpdCB3aXRo IG1hc3RlciBpbnB1dCBkYXRhDQpmbG93cy4NCg0KU2lnbmVkLW9mZi1ieTogTG93cnkgTGkgKEFy bSBUZWNobm9sb2d5IENoaW5hKSA8bG93cnkubGlAYXJtLmNvbT4NCi0tLQ0KIGRyaXZlcnMvZ3B1 L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2NydGMuYyAgIHwgNDEgKysrKysrKysrKysr KysrKysrKystLQ0KIGRyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2tt cy5jICAgIHwgMTAgKysrKysrDQogZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9r b21lZGFfa21zLmggICAgfCAgOSArKysrKw0KIC4uLi9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVk YS9rb21lZGFfcGlwZWxpbmUuYyAgIHwgMjIgKysrKysrKysrKysrDQogLi4uL2dwdS9kcm0vYXJt L2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5oICAgfCAgMiArKw0KIC4uLi9kcm0vYXJt L2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZV9zdGF0ZS5jIHwgMTUgKysrKysrKysNCiBk cml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9wbGFuZS5jICB8IDMyICsr KysrKysrKysrKysrKystDQogNyBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9r b21lZGEva29tZWRhX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv a29tZWRhX2NydGMuYw0KaW5kZXggMThjMjNmOC4uYjUxOTBhMSAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2NydGMuYw0KKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfY3J0Yy5jDQpAQCAtNjQsNiArNjQs MTAgQEAgc3RhdGljIHZvaWQga29tZWRhX2NydGNfdXBkYXRlX2Nsb2NrX3JhdGlvKHN0cnVjdCBr b21lZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3QpDQogCX0NCiANCiAJLyogcmVsZWFzZSB1bmNsYWlt ZWQgcGlwZWxpbmUgcmVzb3VyY2VzICovDQorCWVyciA9IGtvbWVkYV9yZWxlYXNlX3VuY2xhaW1l ZF9yZXNvdXJjZXMoa2NydGMtPnNsYXZlLCBrY3J0Y19zdCk7DQorCWlmIChlcnIpDQorCQlyZXR1 cm4gZXJyOw0KKw0KIAllcnIgPSBrb21lZGFfcmVsZWFzZV91bmNsYWltZWRfcmVzb3VyY2VzKGtj cnRjLT5tYXN0ZXIsIGtjcnRjX3N0KTsNCiAJaWYgKGVycikNCiAJCXJldHVybiBlcnI7DQpAQCAt MjMwLDYgKzIzNCw3IEBAIHZvaWQga29tZWRhX2NydGNfaGFuZGxlX2V2ZW50KHN0cnVjdCBrb21l ZGFfY3J0YyAgICprY3J0YywNCiAJc3RydWN0IGtvbWVkYV9jcnRjX3N0YXRlICprY3J0Y19zdCA9 IHRvX2tjcnRjX3N0KGNydGMtPnN0YXRlKTsNCiAJc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYgPSBr Y3J0Yy0+YmFzZS5kZXYtPmRldl9wcml2YXRlOw0KIAlzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpt YXN0ZXIgPSBrY3J0Yy0+bWFzdGVyOw0KKwlzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpzbGF2ZSA9 IGtjcnRjLT5zbGF2ZTsNCiAJc3RydWN0IGtvbWVkYV93Yl9jb25uZWN0b3IgKndiX2Nvbm4gPSBr Y3J0Yy0+d2JfY29ubjsNCiAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Q7DQog DQpAQCAtMjQxLDYgKzI0Niw5IEBAIHZvaWQga29tZWRhX2NydGNfaGFuZGxlX2V2ZW50KHN0cnVj dCBrb21lZGFfY3J0YyAgICprY3J0YywNCiAJaWYgKGhhc19iaXQobWFzdGVyLT5pZCwga2NydGNf c3QtPmFmZmVjdGVkX3BpcGVzKSkNCiAJCWtvbWVkYV9waXBlbGluZV91cGRhdGUobWFzdGVyLCBv bGQtPnN0YXRlKTsNCiANCisJaWYgKHNsYXZlICYmIGhhc19iaXQoc2xhdmUtPmlkLCBrY3J0Y19z dC0+YWZmZWN0ZWRfcGlwZXMpKQ0KKwkJa29tZWRhX3BpcGVsaW5lX3VwZGF0ZShzbGF2ZSwgb2xk LT5zdGF0ZSk7DQorDQogCWNvbm5fc3QgPSB3Yl9jb25uID8gd2JfY29ubi0+YmFzZS5iYXNlLnN0 YXRlIDogTlVMTDsNCiAJaWYgKGNvbm5fc3QgJiYgY29ubl9zdC0+d3JpdGViYWNrX2pvYikNCiAJ CWRybV93cml0ZWJhY2tfcXVldWVfam9iKCZ3Yl9jb25uLT5iYXNlLCBjb25uX3N0KTsNCkBAIC0y NjYsNiArMjc0LDcgQEAgdm9pZCBrb21lZGFfY3J0Y19oYW5kbGVfZXZlbnQoc3RydWN0IGtvbWVk YV9jcnRjICAgKmtjcnRjLA0KIAlzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKm9sZF9zdCA9IHRv X2tjcnRjX3N0KG9sZCk7DQogCXN0cnVjdCBrb21lZGFfZGV2ICptZGV2ID0gY3J0Yy0+ZGV2LT5k ZXZfcHJpdmF0ZTsNCiAJc3RydWN0IGtvbWVkYV9waXBlbGluZSAqbWFzdGVyID0ga2NydGMtPm1h c3RlcjsNCisJc3RydWN0IGtvbWVkYV9waXBlbGluZSAqc2xhdmUgID0ga2NydGMtPnNsYXZlOw0K IAlzdHJ1Y3QgY29tcGxldGlvbiAqZGlzYWJsZV9kb25lID0gJmNydGMtPnN0YXRlLT5jb21taXQt PmZsaXBfZG9uZTsNCiAJc3RydWN0IGNvbXBsZXRpb24gdGVtcDsNCiAJaW50IHRpbWVvdXQ7DQpA QCAtMjc0LDYgKzI4Myw5IEBAIHZvaWQga29tZWRhX2NydGNfaGFuZGxlX2V2ZW50KHN0cnVjdCBr b21lZGFfY3J0YyAgICprY3J0YywNCiAJCQkgZHJtX2NydGNfaW5kZXgoY3J0YyksDQogCQkJIG9s ZF9zdC0+YWN0aXZlX3BpcGVzLCBvbGRfc3QtPmFmZmVjdGVkX3BpcGVzKTsNCiANCisJaWYgKHNs YXZlICYmIGhhc19iaXQoc2xhdmUtPmlkLCBvbGRfc3QtPmFjdGl2ZV9waXBlcykpDQorCQlrb21l ZGFfcGlwZWxpbmVfZGlzYWJsZShzbGF2ZSwgb2xkLT5zdGF0ZSk7DQorDQogCWlmIChoYXNfYml0 KG1hc3Rlci0+aWQsIG9sZF9zdC0+YWN0aXZlX3BpcGVzKSkNCiAJCWtvbWVkYV9waXBlbGluZV9k aXNhYmxlKG1hc3Rlciwgb2xkLT5zdGF0ZSk7DQogDQpAQCAtNDI1LDYgKzQzNyw3IEBAIHN0YXRp YyB2b2lkIGtvbWVkYV9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCiANCiAJbmV3 LT5hZmZlY3RlZF9waXBlcyA9IG9sZC0+YWN0aXZlX3BpcGVzOw0KIAluZXctPmNsb2NrX3JhdGlv ID0gb2xkLT5jbG9ja19yYXRpbzsNCisJbmV3LT5tYXhfc2xhdmVfem9yZGVyID0gb2xkLT5tYXhf c2xhdmVfem9yZGVyOw0KIA0KIAlyZXR1cm4gJm5ldy0+YmFzZTsNCiB9DQpAQCAtNDk5LDcgKzUx Miw3IEBAIGludCBrb21lZGFfa21zX3NldHVwX2NydGNzKHN0cnVjdCBrb21lZGFfa21zX2RldiAq a21zLA0KIAkJbWFzdGVyID0gbWRldi0+cGlwZWxpbmVzW2ldOw0KIA0KIAkJY3J0Yy0+bWFzdGVy ID0gbWFzdGVyOw0KLQkJY3J0Yy0+c2xhdmUgID0gTlVMTDsNCisJCWNydGMtPnNsYXZlICA9IGtv bWVkYV9waXBlbGluZV9nZXRfc2xhdmUobWFzdGVyKTsNCiANCiAJCWlmIChjcnRjLT5zbGF2ZSkN CiAJCQlzcHJpbnRmKHN0ciwgInBpcGUtJWQiLCBjcnRjLT5zbGF2ZS0+aWQpOw0KQEAgLTUzMyw2 ICs1NDYsMjYgQEAgc3RhdGljIGludCBrb21lZGFfY3J0Y19jcmVhdGVfY2xvY2tfcmF0aW9fcHJv cGVydHkoc3RydWN0IGtvbWVkYV9jcnRjICprY3J0YykNCiAJcmV0dXJuIDA7DQogfQ0KIA0KK3N0 YXRpYyBpbnQga29tZWRhX2NydGNfY3JlYXRlX3NsYXZlX3BsYW5lc19wcm9wZXJ0eShzdHJ1Y3Qg a29tZWRhX2NydGMgKmtjcnRjKQ0KK3sNCisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJmtjcnRj LT5iYXNlOw0KKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wOw0KKw0KKwlpZiAoa2NydGMtPnNs YXZlX3BsYW5lcyA9PSAwKQ0KKwkJcmV0dXJuIDA7DQorDQorCXByb3AgPSBkcm1fcHJvcGVydHlf Y3JlYXRlX3JhbmdlKGNydGMtPmRldiwgRFJNX01PREVfUFJPUF9JTU1VVEFCTEUsDQorCQkJCQkg InNsYXZlX3BsYW5lcyIsIDAsIFUzMl9NQVgpOw0KKwlpZiAoIXByb3ApDQorCQlyZXR1cm4gLUVO T01FTTsNCisNCisJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNydGMtPmJhc2UsIHByb3As IGtjcnRjLT5zbGF2ZV9wbGFuZXMpOw0KKw0KKwlrY3J0Yy0+c2xhdmVfcGxhbmVzX3Byb3BlcnR5 ID0gcHJvcDsNCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5l ICoNCiBnZXRfY3J0Y19wcmltYXJ5KHN0cnVjdCBrb21lZGFfa21zX2RldiAqa21zLCBzdHJ1Y3Qg a29tZWRhX2NydGMgKmNydGMpDQogew0KQEAgLTU3NSw3ICs2MDgsMTEgQEAgc3RhdGljIGludCBr b21lZGFfY3J0Y19hZGQoc3RydWN0IGtvbWVkYV9rbXNfZGV2ICprbXMsDQogDQogCWRybV9jcnRj X2VuYWJsZV9jb2xvcl9tZ210KGNydGMsIDAsIHRydWUsIEtPTUVEQV9DT0xPUl9MVVRfU0laRSk7 DQogDQotCXJldHVybiAwOw0KKwllcnIgPSBrb21lZGFfY3J0Y19jcmVhdGVfc2xhdmVfcGxhbmVz X3Byb3BlcnR5KGtjcnRjKTsNCisJaWYgKGVycikNCisJCXJldHVybiBlcnI7DQorDQorCXJldHVy biBlcnI7DQogfQ0KIA0KIGludCBrb21lZGFfa21zX2FkZF9jcnRjcyhzdHJ1Y3Qga29tZWRhX2tt c19kZXYgKmttcywgc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYpDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmMgYi9kcml2ZXJzL2dwdS9k cm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuYw0KaW5kZXggNWQxMGM1NS4uODU0Mzg2 MCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRh X2ttcy5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9r bXMuYw0KQEAgLTE0Myw2ICsxNDMsOCBAQCBzdGF0aWMgaW50IGtvbWVkYV9jcnRjX25vcm1hbGl6 ZV96cG9zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCiAJCQkJICAgICAgc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0KQ0KIHsNCiAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0g Y3J0Y19zdC0+c3RhdGU7DQorCXN0cnVjdCBrb21lZGFfY3J0YyAqa2NydGMgPSB0b19rY3J0Yyhj cnRjKTsNCisJc3RydWN0IGtvbWVkYV9jcnRjX3N0YXRlICprY3J0Y19zdCA9IHRvX2tjcnRjX3N0 KGNydGNfc3QpOw0KIAlzdHJ1Y3Qga29tZWRhX3BsYW5lX3N0YXRlICprcGxhbmVfc3Q7DQogCXN0 cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0Ow0KIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYjsNCkBAIC0xNjcsNiArMTY5LDggQEAgc3RhdGljIGludCBrb21lZGFfY3J0Y19ub3JtYWxp emVfenBvcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQogCQkJcmV0dXJuIGVycjsNCiAJfQ0KIA0K KwlrY3J0Y19zdC0+bWF4X3NsYXZlX3pvcmRlciA9IDA7DQorDQogCWxpc3RfZm9yX2VhY2hfZW50 cnkoa3BsYW5lX3N0LCAmem9yZGVyX2xpc3QsIHpsaXN0X25vZGUpIHsNCiAJCXBsYW5lX3N0ID0g JmtwbGFuZV9zdC0+YmFzZTsNCiAJCWZiID0gcGxhbmVfc3QtPmZiOw0KQEAgLTE4NSw2ICsxODks MTIgQEAgc3RhdGljIGludCBrb21lZGFfY3J0Y19ub3JtYWxpemVfenBvcyhzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsDQogCQlEUk1fREVCVUdfQVRPTUlDKCJbUExBTkU6JWQ6JXNdIHpwb3M6JWQsIG5v cm1hbGl6ZWQgenBvczogJWRcbiIsDQogCQkJCSBwbGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5hbWUs DQogCQkJCSBwbGFuZV9zdC0+enBvcywgcGxhbmVfc3QtPm5vcm1hbGl6ZWRfenBvcyk7DQorDQor CQkvKiBjYWxjdWxhdGUgbWF4IHNsYXZlIHpvcmRlciAqLw0KKwkJaWYgKGhhc19iaXQoZHJtX3Bs YW5lX2luZGV4KHBsYW5lKSwga2NydGMtPnNsYXZlX3BsYW5lcykpDQorCQkJa2NydGNfc3QtPm1h eF9zbGF2ZV96b3JkZXIgPQ0KKwkJCQltYXgocGxhbmVfc3QtPm5vcm1hbGl6ZWRfenBvcywNCisJ CQkJICAgIGtjcnRjX3N0LT5tYXhfc2xhdmVfem9yZGVyKTsNCiAJfQ0KIA0KIAljcnRjX3N0LT56 cG9zX2NoYW5nZWQgPSB0cnVlOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlz cGxheS9rb21lZGEva29tZWRhX2ttcy5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tv bWVkYS9rb21lZGFfa21zLmgNCmluZGV4IGEyMGNkZGEuLmU3ZmEwMGUgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuaA0KKysrIGIvZHJp dmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmgNCkBAIC04Niw2ICs4 Niw5IEBAIHN0cnVjdCBrb21lZGFfY3J0YyB7DQogCSAqLw0KIAlzdHJ1Y3Qga29tZWRhX3BpcGVs aW5lICpzbGF2ZTsNCiANCisJLyoqIEBzbGF2ZV9wbGFuZXM6IGtvbWVkYSBzbGF2ZSBwbGFuZXMg bWFzayAqLw0KKwl1MzIgc2xhdmVfcGxhbmVzOw0KKw0KIAkvKiogQHdiX2Nvbm46IGtvbWVkYSB3 cml0ZSBiYWNrIGNvbm5lY3RvciAqLw0KIAlzdHJ1Y3Qga29tZWRhX3diX2Nvbm5lY3RvciAqd2Jf Y29ubjsNCiANCkBAIC05NCw2ICs5Nyw5IEBAIHN0cnVjdCBrb21lZGFfY3J0YyB7DQogDQogCS8q KiBAY2xvY2tfcmF0aW9fcHJvcGVydHk6IHByb3BlcnR5IGZvciByYXRpbyBvZiAobWNsayA8PCAz MikvcHhsY2xrICovDQogCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNsb2NrX3JhdGlvX3Byb3BlcnR5 Ow0KKw0KKwkvKiogQHNsYXZlX3BsYW5lc19wcm9wZXJ0eTogcHJvcGVydHkgZm9yIHNsYXZlcyBv ZiB0aGUgcGxhbmVzICovDQorCXN0cnVjdCBkcm1fcHJvcGVydHkgKnNsYXZlX3BsYW5lc19wcm9w ZXJ0eTsNCiB9Ow0KIA0KIC8qKg0KQEAgLTExOSw2ICsxMjUsOSBAQCBzdHJ1Y3Qga29tZWRhX2Ny dGNfc3RhdGUgew0KIA0KIAkvKiogQGNsb2NrX3JhdGlvOiByYXRpbyBvZiAobWNsayA8PCAzMikv cHhsY2xrICovDQogCXU2NCBjbG9ja19yYXRpbzsNCisNCisJLyoqIEBtYXhfc2xhdmVfem9yZGVy OiB0aGUgbWF4aW11bSBvZiBzbGF2ZSB6b3JkZXIgKi8NCisJdTMyIG1heF9zbGF2ZV96b3JkZXI7 DQogfTsNCiANCiAvKiogc3RydWN0IGtvbWVkYV9rbXNfZGV2IC0gZm9yIGdhdGhlciBLTVMgcmVs YXRlZCB0aGluZ3MgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL2tvbWVkYV9waXBlbGluZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tv bWVkYS9rb21lZGFfcGlwZWxpbmUuYw0KaW5kZXggMGI3NmUyYS4uMGJiNDQzYiAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmMN CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5l LmMNCkBAIC0xNDYsNiArMTQ2LDE0IEBAIHN0cnVjdCBrb21lZGFfY29tcG9uZW50ICoNCiAJcmV0 dXJuIGM7DQogfQ0KIA0KK3N0YXRpYyBzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAqDQora29tZWRh X2NvbXBvbmVudF9waWNrdXBfaW5wdXQoc3RydWN0IGtvbWVkYV9jb21wb25lbnQgKmMsIHUzMiBh dmFpbF9jb21wcykNCit7DQorCXUzMiBhdmFpbF9pbnB1dHMgPSBjLT5zdXBwb3J0ZWRfaW5wdXRz ICYgKGF2YWlsX2NvbXBzKTsNCisNCisJcmV0dXJuIGtvbWVkYV9waXBlbGluZV9nZXRfZmlyc3Rf Y29tcG9uZW50KGMtPnBpcGVsaW5lLCBhdmFpbF9pbnB1dHMpOw0KK30NCisNCiAvKioga29tZWRh X2NvbXBvbmVudF9hZGQgLSBBZGQgYSBjb21wb25lbnQgdG8gJmtvbWVkYV9waXBlbGluZSAqLw0K IHN0cnVjdCBrb21lZGFfY29tcG9uZW50ICoNCiBrb21lZGFfY29tcG9uZW50X2FkZChzdHJ1Y3Qg a29tZWRhX3BpcGVsaW5lICpwaXBlLA0KQEAgLTMwMCw2ICszMDgsMjAgQEAgc3RhdGljIHZvaWQg a29tZWRhX3BpcGVsaW5lX2Fzc2VtYmxlKHN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKnBpcGUpDQog CX0NCiB9DQogDQorLyogaWYgcGlwZWxpbmVfQSBhY2NlcHQgYW5vdGhlciBwaXBlbGluZV9CJ3Mg Y29tcG9uZW50IGFzIGlucHV0LCB0cmVhdA0KKyAqIHBpcGVsaW5lX0IgYXMgc2xhdmUgb2YgcGlw ZWxpbmVfQS4NCisgKi8NCitzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICoNCitrb21lZGFfcGlwZWxp bmVfZ2V0X3NsYXZlKHN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKm1hc3RlcikNCit7DQorCXN0cnVj dCBrb21lZGFfY29tcG9uZW50ICpzbGF2ZTsNCisNCisJc2xhdmUgPSBrb21lZGFfY29tcG9uZW50 X3BpY2t1cF9pbnB1dCgmbWFzdGVyLT5jb21waXotPmJhc2UsDQorCQkJCQkgICAgICBLT01FREFf UElQRUxJTkVfQ09NUElaUyk7DQorDQorCXJldHVybiBzbGF2ZSA/IHNsYXZlLT5waXBlbGluZSA6 IE5VTEw7DQorfQ0KKw0KIGludCBrb21lZGFfYXNzZW1ibGVfcGlwZWxpbmVzKHN0cnVjdCBrb21l ZGFfZGV2ICptZGV2KQ0KIHsNCiAJc3RydWN0IGtvbWVkYV9waXBlbGluZSAqcGlwZTsNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGlu ZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUu aA0KaW5kZXggOTA1N2RjNS4uMGMzZjEwMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h cm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgNCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgNCkBAIC00NzIsNiArNDcyLDgg QEAgc3RydWN0IGtvbWVkYV9waXBlbGluZSAqDQogCQkgICAgY29uc3Qgc3RydWN0IGtvbWVkYV9w aXBlbGluZV9mdW5jcyAqZnVuY3MpOw0KIHZvaWQga29tZWRhX3BpcGVsaW5lX2Rlc3Ryb3koc3Ry dWN0IGtvbWVkYV9kZXYgKm1kZXYsDQogCQkJICAgICBzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpw aXBlKTsNCitzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICoNCitrb21lZGFfcGlwZWxpbmVfZ2V0X3Ns YXZlKHN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKm1hc3Rlcik7DQogaW50IGtvbWVkYV9hc3NlbWJs ZV9waXBlbGluZXMoc3RydWN0IGtvbWVkYV9kZXYgKm1kZXYpOw0KIHN0cnVjdCBrb21lZGFfY29t cG9uZW50ICoNCiBrb21lZGFfcGlwZWxpbmVfZ2V0X2NvbXBvbmVudChzdHJ1Y3Qga29tZWRhX3Bp cGVsaW5lICpwaXBlLCBpbnQgaWQpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0v ZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0v YXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZV9zdGF0ZS5jDQppbmRleCBhZmQ4NTdl Li40NGE1MWQ4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVk YS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNw bGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYw0KQEAgLTExMjksMTAgKzExMjksMjUg QEAgaW50IGtvbWVkYV9idWlsZF9kaXNwbGF5X2RhdGFfZmxvdyhzdHJ1Y3Qga29tZWRhX2NydGMg KmtjcnRjLA0KIAkJCQkgICBzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtjcnRjX3N0KQ0KIHsN CiAJc3RydWN0IGtvbWVkYV9waXBlbGluZSAqbWFzdGVyID0ga2NydGMtPm1hc3RlcjsNCisJc3Ry dWN0IGtvbWVkYV9waXBlbGluZSAqc2xhdmUgID0ga2NydGMtPnNsYXZlOw0KIAlzdHJ1Y3Qga29t ZWRhX2RhdGFfZmxvd19jZmcgbV9kZmxvdzsgLyogbWFzdGVyIGRhdGEgZmxvdyAqLw0KKwlzdHJ1 Y3Qga29tZWRhX2RhdGFfZmxvd19jZmcgc19kZmxvdzsgLyogc2xhdmUgZGF0YSBmbG93ICovDQog CWludCBlcnI7DQogDQogCW1lbXNldCgmbV9kZmxvdywgMCwgc2l6ZW9mKG1fZGZsb3cpKTsNCisJ bWVtc2V0KCZzX2RmbG93LCAwLCBzaXplb2Yoc19kZmxvdykpOw0KKw0KKwlpZiAoc2xhdmUgJiYg aGFzX2JpdChzbGF2ZS0+aWQsIGtjcnRjX3N0LT5hY3RpdmVfcGlwZXMpKSB7DQorCQllcnIgPSBr b21lZGFfY29tcGl6X3ZhbGlkYXRlKHNsYXZlLT5jb21waXosIGtjcnRjX3N0LCAmc19kZmxvdyk7 DQorCQlpZiAoZXJyKQ0KKwkJCXJldHVybiBlcnI7DQorDQorCQkvKiBtZXJnZSB0aGUgc2xhdmUg ZGZsb3cgaW50byBtYXN0ZXIgcGlwZWxpbmUgKi8NCisJCWVyciA9IGtvbWVkYV9jb21waXpfc2V0 X2lucHV0KG1hc3Rlci0+Y29tcGl6LCBrY3J0Y19zdCwNCisJCQkJCSAgICAgICZzX2RmbG93KTsN CisJCWlmIChlcnIpDQorCQkJcmV0dXJuIGVycjsNCisJfQ0KIA0KIAllcnIgPSBrb21lZGFfY29t cGl6X3ZhbGlkYXRlKG1hc3Rlci0+Y29tcGl6LCBrY3J0Y19zdCwgJm1fZGZsb3cpOw0KIAlpZiAo ZXJyKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29t ZWRhX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9w bGFuZS5jDQppbmRleCBhY2Y0M2IwLi4wNDc0YTdiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGxhbmUuYw0KKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGxhbmUuYw0KQEAgLTE0LDE1ICsxNCwyNyBA QA0KIA0KIHN0YXRpYyBpbnQNCiBrb21lZGFfcGxhbmVfaW5pdF9kYXRhX2Zsb3coc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqc3QsDQorCQkJICAgIHN0cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqa2Ny dGNfc3QsDQogCQkJICAgIHN0cnVjdCBrb21lZGFfZGF0YV9mbG93X2NmZyAqZGZsb3cpDQogew0K KwlzdHJ1Y3Qga29tZWRhX3BsYW5lICprcGxhbmUgPSB0b19rcGxhbmUoc3QtPnBsYW5lKTsNCiAJ c3RydWN0IGtvbWVkYV9wbGFuZV9zdGF0ZSAqa3BsYW5lX3N0ID0gdG9fa3BsYW5lX3N0KHN0KTsN CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdC0+ZmI7DQogCWNvbnN0IHN0cnVjdCBr b21lZGFfZm9ybWF0X2NhcHMgKmNhcHMgPSB0b19rZmIoZmIpLT5mb3JtYXRfY2FwczsNCisJc3Ry dWN0IGtvbWVkYV9waXBlbGluZSAqcGlwZSA9IGtwbGFuZS0+bGF5ZXItPmJhc2UucGlwZWxpbmU7 DQogDQogCW1lbXNldChkZmxvdywgMCwgc2l6ZW9mKCpkZmxvdykpOw0KIA0KIAlkZmxvdy0+Ymxl bmRpbmdfem9yZGVyID0gc3QtPm5vcm1hbGl6ZWRfenBvczsNCisJaWYgKHBpcGUgPT0gdG9fa2Ny dGMoc3QtPmNydGMpLT5tYXN0ZXIpDQorCQlkZmxvdy0+YmxlbmRpbmdfem9yZGVyIC09IGtjcnRj X3N0LT5tYXhfc2xhdmVfem9yZGVyOw0KKwlpZiAoZGZsb3ctPmJsZW5kaW5nX3pvcmRlciA8IDAp IHsNCisJCURSTV9ERUJVR19BVE9NSUMoIiVzIHpvcmRlcjolZCA8IG1heF9zbGF2ZV96b3JkZXI6 ICVkLlxuIiwNCisJCQkJIHN0LT5wbGFuZS0+bmFtZSwgc3QtPm5vcm1hbGl6ZWRfenBvcywNCisJ CQkJIGtjcnRjX3N0LT5tYXhfc2xhdmVfem9yZGVyKTsNCisJCXJldHVybiAtRUlOVkFMOw0KKwl9 DQorDQogCWRmbG93LT5waXhlbF9ibGVuZF9tb2RlID0gc3QtPnBpeGVsX2JsZW5kX21vZGU7DQog CWRmbG93LT5sYXllcl9hbHBoYSA9IHN0LT5hbHBoYSA+PiA4Ow0KIA0KQEAgLTg4LDcgKzEwMCw3 IEBADQogDQogCWtjcnRjX3N0ID0gdG9fa2NydGNfc3QoY3J0Y19zdCk7DQogDQotCWVyciA9IGtv bWVkYV9wbGFuZV9pbml0X2RhdGFfZmxvdyhzdGF0ZSwgJmRmbG93KTsNCisJZXJyID0ga29tZWRh X3BsYW5lX2luaXRfZGF0YV9mbG93KHN0YXRlLCBrY3J0Y19zdCwgJmRmbG93KTsNCiAJaWYgKGVy cikNCiAJCXJldHVybiBlcnI7DQogDQpAQCAtMjg4LDYgKzMwMCwyMiBAQCBzdGF0aWMgdTMyIGdl dF9wb3NzaWJsZV9jcnRjcyhzdHJ1Y3Qga29tZWRhX2ttc19kZXYgKmttcywNCiAJcmV0dXJuIHBv c3NpYmxlX2NydGNzOw0KIH0NCiANCitzdGF0aWMgdm9pZA0KK2tvbWVkYV9zZXRfY3J0Y19wbGFu ZV9tYXNrKHN0cnVjdCBrb21lZGFfa21zX2RldiAqa21zLA0KKwkJCSAgIHN0cnVjdCBrb21lZGFf cGlwZWxpbmUgKnBpcGUsDQorCQkJICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpDQorew0KKwlz dHJ1Y3Qga29tZWRhX2NydGMgKmtjcnRjOw0KKwlpbnQgaTsNCisNCisJZm9yIChpID0gMDsgaSA8 IGttcy0+bl9jcnRjczsgaSsrKSB7DQorCQlrY3J0YyA9ICZrbXMtPmNydGNzW2ldOw0KKw0KKwkJ aWYgKHBpcGUgPT0ga2NydGMtPnNsYXZlKQ0KKwkJCWtjcnRjLT5zbGF2ZV9wbGFuZXMgfD0gQklU KGRybV9wbGFuZV9pbmRleChwbGFuZSkpOw0KKwl9DQorfQ0KKw0KIC8qIHVzZSBMYXllcjAgYXMg cHJpbWFyeSAqLw0KIHN0YXRpYyB1MzIgZ2V0X3BsYW5lX3R5cGUoc3RydWN0IGtvbWVkYV9rbXNf ZGV2ICprbXMsDQogCQkJICBzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAqYykNCkBAIC0zNjYsNiAr Mzk0LDggQEAgc3RhdGljIGludCBrb21lZGFfcGxhbmVfYWRkKHN0cnVjdCBrb21lZGFfa21zX2Rl diAqa21zLA0KIAlpZiAoZXJyKQ0KIAkJZ290byBjbGVhbnVwOw0KIA0KKwlrb21lZGFfc2V0X2Ny dGNfcGxhbmVfbWFzayhrbXMsIGMtPnBpcGVsaW5lLCBwbGFuZSk7DQorDQogCXJldHVybiAwOw0K IGNsZWFudXA6DQogCWtvbWVkYV9wbGFuZV9kZXN0cm95KHBsYW5lKTsNCi0tIA0KMS45LjENCg0K