Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp204829yba; Mon, 20 May 2019 07:22:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqx70r1XLkgV0z5+xbg9zeB0oHDP2LkNp4wxyJWEZNhMjoPnCb/+iSk2IbSuJCg3BA7IGyjN X-Received: by 2002:a17:902:8b8a:: with SMTP id ay10mr67735823plb.74.1558362151656; Mon, 20 May 2019 07:22:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1558362151; cv=none; d=google.com; s=arc-20160816; b=Rc6lacOVdmZFxloGuaFvBWNIMlaX+HcKTv8zjILqxYWH09z2SQyp4HFqGrxaMcLxWJ dGV2qIEtIRTcyRcaYeTps8UIZ/PxVdvJqbI+t0jjK3c6QzkaeE84ODe/pJk9p88ncuSH 8+tnN0CunmdYwP4HVgoIX5mSVraEQh3WXY2IwZ/E0CQ6RDKZ1uwNBdIrxgbQdn1JcmYH lWvCV0q/55Zl251dW8QPY7XluUzmcW42SRDcQLznSaCVMPO/uYqU5GyFr6UN5k6lLb3Z TNkDxwmQmhw2IlkJYPkcqnO15V5A8aJ4V1QJFRQd+HtVzwp0j25ydYxrYPtxLNNO3TVK hTYA== 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=DFre/JLKIny0ZNrI/FQx1K2BNoUAVf9T0NLzx+qQpOE=; b=ZUMUZHXZoZsRIu5qOx9Hph0BoE3hfwj4dzVCpx32hvSk/ZLM+lhYCMDYdYJGFrO2GL VXPyD5P9tGd8Zx//ZKY/U4b1Pc4z3Rlnwzb7kShFDMrk+g/+3fsJaugE24l9Nxme69ZH Joedl6vqYoxxsWkIl6rD08aSXddBOWm6Bkhqm163VhUbBvfQVuRr2Lgua4lqwjpqihjF fW6PG+c6AG2io2NumxiV4thaJqg4XsKTK8cSaU4RcwNNNT7a8q/JgYpSZoARh38sLoKL 4qMIfYaOVRWYckSLCHnNBRF158Sg+0kYotDLyYZSpYSD7FvxaCvYoJTA7/8a+aMZ//uO zJCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=trP9+ogO; 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 a23si17627335plm.385.2019.05.20.07.22.15; Mon, 20 May 2019 07:22:31 -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=trP9+ogO; 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 S1731807AbfETKpD (ORCPT + 99 others); Mon, 20 May 2019 06:45:03 -0400 Received: from mail-eopbgr50085.outbound.protection.outlook.com ([40.107.5.85]:45955 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731724AbfETKpD (ORCPT ); Mon, 20 May 2019 06:45:03 -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=DFre/JLKIny0ZNrI/FQx1K2BNoUAVf9T0NLzx+qQpOE=; b=trP9+ogOWRoGnbwrky+D980PYRZLnl6Zoe4b0zlvYkwFPYyvETnhQR6pbmmFXjsVNT4hBEt9QnRSIY3YB43VpLdFCLtnTI6ws8pgHg+vtFMJInyOm7P5LZ5lEAGJBqmbV7eo+WOgNc/kW7amda3+RZVtsSsnFJBF9h6JfKQIj2Y= Received: from VE1PR08MB5006.eurprd08.prod.outlook.com (10.255.159.31) by VE1PR08MB5007.eurprd08.prod.outlook.com (10.255.159.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1900.17; Mon, 20 May 2019 10:44:54 +0000 Received: from VE1PR08MB5006.eurprd08.prod.outlook.com ([fe80::206b:5cf6:97e:1358]) by VE1PR08MB5006.eurprd08.prod.outlook.com ([fe80::206b:5cf6:97e:1358%7]) with mapi id 15.20.1900.020; Mon, 20 May 2019 10:44:54 +0000 From: "james qian wang (Arm Technology China)" To: Liviu Dudau , "airlied@linux.ie" , Brian Starkey , "maarten.lankhorst@linux.intel.com" , "sean@poorly.run" CC: "Jonathan Chai (Arm Technology China)" , "Julien Yin (Arm Technology China)" , "thomas Sun (Arm Technology China)" , "Lowry Li (Arm Technology China)" , Ayan Halder , "Tiannan Zhu (Arm Technology China)" , "Yiqi Kang (Arm Technology China)" , nd , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , Ben Davis , "Oscar Zhang (Arm Technology China)" , "Channing Chen (Arm Technology China)" , "james qian wang (Arm Technology China)" Subject: [PATCH 3/3] drm/komeda: Add layer split support Thread-Topic: [PATCH 3/3] drm/komeda: Add layer split support Thread-Index: AQHVDvkPLmV7fZjucUKLTdv31lV1jA== Date: Mon, 20 May 2019 10:44:54 +0000 Message-ID: <20190520104411.6092-4-james.qian.wang@arm.com> References: <20190520104411.6092-1-james.qian.wang@arm.com> In-Reply-To: <20190520104411.6092-1-james.qian.wang@arm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [113.29.88.7] x-clientproxiedby: HK0PR03CA0057.apcprd03.prod.outlook.com (2603:1096:203:52::21) To VE1PR08MB5006.eurprd08.prod.outlook.com (2603:10a6:803:113::31) authentication-results: spf=none (sender IP is ) smtp.mailfrom=james.qian.wang@arm.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4160a3cb-0c3a-49bd-2494-08d6dd103155 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);SRVR:VE1PR08MB5007; x-ms-traffictypediagnostic: VE1PR08MB5007: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:972; x-forefront-prvs: 004395A01C x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39860400002)(376002)(366004)(346002)(396003)(136003)(189003)(199004)(71200400001)(99286004)(76176011)(71190400001)(186003)(316002)(36756003)(256004)(14444005)(5024004)(52116002)(486006)(55236004)(6506007)(386003)(26005)(2616005)(102836004)(11346002)(2201001)(103116003)(446003)(476003)(86362001)(53946003)(14454004)(66066001)(6512007)(68736007)(73956011)(66946007)(1076003)(478600001)(305945005)(7736002)(6436002)(4326008)(25786009)(6486002)(3846002)(6116002)(53936002)(66476007)(110136005)(2501003)(54906003)(50226002)(2906002)(30864003)(5660300002)(66556008)(64756008)(8936002)(81166006)(81156014)(66446008)(8676002)(579004)(309714004);DIR:OUT;SFP:1101;SCL:1;SRVR:VE1PR08MB5007;H:VE1PR08MB5006.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: 39zojgI6YWcMsYmGHSJn8CVLktC87a53Z9G4TjAPd/wa5n/faDXuknL/ejMLyUyblZyg0i9Ux6him0+TybcVWwoKstpzgiTxNURf/6JN9KUeb9TD79LuaqYUFywSBx7hwW34T9qM6Cpy0HariIT2UAeDCtPtqKPuDCVAJl2CJRt3ztEew+Clmgn4VT+kh6K1uCIyh+064qASAAT0z2QInFn+sKwUS2FUJ0yhjnS5SwWTiYhC5XaEcBdDFAKM3afP/qJ84jC7kTVbpfp/kJfyVrQ3YOgFLU4x+nafjx2i0pUrfdU9fqO3jR6xJNXNm978Fm2aYufK+X+j2KJpYyYWit4GYx8wt3fk9A5hE18MRYIe33Zr6ufn07dyV8Tj8NUYbWJx06xm42uIOjGb4pZ47WFxpc14jJJZJBaq/C3ZseA= 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: 4160a3cb-0c3a-49bd-2494-08d6dd103155 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2019 10:44:54.0480 (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-Transport-CrossTenantHeadersStamped: VE1PR08MB5007 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org S29tZWRhIHN1cHBvcnRzIHR3byB0eXBlcyBvZiBsYXllciBzcGxpdDoNCi0gbm9uZS1zY2FsaW5n IHNwbGl0DQotIHNjYWxpbmcgc3BsaXQNClNpbmNlIEQ3MSBtZXJnZXIgb25seSBzdXBwb3J0IHNj YWxlciBhcyBpbnB1dCwgc28gZm9yIG5vbmUtc2NhbGluZyBzcGxpdCwNCnRoZSB0d28gbGF5ZXIg ZGZsb3cgd2lsbCBiZSBvdXRwdXQgdG8gY29tcGl6IGRpcmVjdGx5LiBmb3Igc2NhbGluZ19zcGxp dCwNCnRoZSBkYXRhIGZsb3cgd2lsbCBiZSBtZXJnZWQgYnkgbWVyZ2VyIGZpcnN0bHksIHRoZW4g b3V0cHV0IHRoZSBtZXJnZWQNCmRhdGEgZmxvdyB0byBjb21waXouDQoNCktvbWVkYSBoYW5kbGVz IHRoZSBzcGxpdCBpbiBrZXJuZWwgY29tcGxldGVseSB0byBoaWRlIHRoZSBkZXRhaWxlZCBhbmQN CmNvbXBsaWNhdGVkIHNwbGl0IGNhbGN1YWx0aW9uIHRvIHVzZXIgbW9kZSwgZm9yIHVzZXIgb25s eSBuZWVkIHRvIHNldCB0aGUNCmxheWVyX3NwbGl0IHByb3BlcnR5IHRvIGVuYWJsZS9kaXNhYmxl IGl0Lg0KDQpTaWduZWQtb2ZmLWJ5OiBKYW1lcyBRaWFuIFdhbmcgKEFybSBUZWNobm9sb2d5IENo aW5hKSA8amFtZXMucWlhbi53YW5nQGFybS5jb20+DQotLS0NCiAuLi4vZ3B1L2RybS9hcm0vZGlz cGxheS9rb21lZGEva29tZWRhX2ttcy5jICAgfCAgIDggKw0KIC4uLi9ncHUvZHJtL2FybS9kaXNw bGF5L2tvbWVkYS9rb21lZGFfa21zLmggICB8ICAyMiArLQ0KIC4uLi9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL2tvbWVkYV9waXBlbGluZS5jICB8ICAyMyArLQ0KIC4uLi9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL2tvbWVkYV9waXBlbGluZS5oICB8ICAxMiArDQogLi4uL2Rpc3BsYXkva29tZWRhL2tv bWVkYV9waXBlbGluZV9zdGF0ZS5jICAgIHwgMzAwICsrKysrKysrKysrKysrKysrLQ0KIC4uLi9n cHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGxhbmUuYyB8ICAyNCArLQ0KIDYgZmls ZXMgY2hhbmdlZCwgMzc4IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmMgYi9k cml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuYw0KaW5kZXggMGVj NzY2NTZjZDFmLi41ZDEwYzU1YzljNDAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJt L2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9k aXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmMNCkBAIC0xNzMsNiArMTczLDE0IEBAIHN0YXRpYyBp bnQga29tZWRhX2NydGNfbm9ybWFsaXplX3pwb3Moc3RydWN0IGRybV9jcnRjICpjcnRjLA0KIAkJ cGxhbmUgPSBwbGFuZV9zdC0+cGxhbmU7DQogDQogCQlwbGFuZV9zdC0+bm9ybWFsaXplZF96cG9z ID0gb3JkZXIrKzsNCisJCS8qIFdoZW4gbGF5ZXJfc3BsaXQgaGFzIGJlZW4gZW5hYmxlZCwgb25l IHBsYW5lIHdpbGwgYmUgaGFuZGxlZA0KKwkJICogYnkgdHdvIHNlcGFyYXRlZCBrb21lZGEgbGF5 ZXJzIChsZWZ0L3JpZ2h0KSwgd2hpY2ggbWF5IG5lZWRzDQorCQkgKiB0d28gem9yZGVycy4NCisJ CSAqIC0gem9yZGVyOiBmb3IgbGVmdF9sYXllciBmb3IgbGVmdCBkaXNwbGF5IHBhcnQuDQorCQkg KiAtIHpvcmRlciArIDE6IHdpbGwgYmUgcmVzZXJ2ZWQgZm9yIHJpZ2h0IGxheWVyLg0KKwkJICov DQorCQlpZiAodG9fa3BsYW5lX3N0KHBsYW5lX3N0KS0+bGF5ZXJfc3BsaXQpDQorCQkJb3JkZXIr KzsNCiANCiAJCURSTV9ERUJVR19BVE9NSUMoIltQTEFORTolZDolc10genBvczolZCwgbm9ybWFs aXplZCB6cG9zOiAlZFxuIiwNCiAJCQkJIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFtZSwNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMu aCBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5oDQppbmRl eCBkMWNlZjQ2ZjcwNjguLjkzYTBjZGVhMDU2ZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5oDQorKysgYi9kcml2ZXJzL2dwdS9kcm0v YXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuaA0KQEAgLTM2LDYgKzM2LDggQEAgc3RydWN0 IGtvbWVkYV9wbGFuZSB7DQogDQogCS8qKiBAcHJvcF9pbWdfZW5oYW5jZW1lbnQ6IGZvciBvbi9v ZmYgaW1hZ2UgZW5oYW5jZW1lbnQgKi8NCiAJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9pbWdf ZW5oYW5jZW1lbnQ7DQorCS8qKiBAcHJvcF9sYXllcl9zcGxpdDogZm9yIG9uL29mZiBsYXllcl9z cGxpdCAqLw0KKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wX2xheWVyX3NwbGl0Ow0KIH07DQog DQogLyoqDQpAQCAtNTAsOCArNTIsMTEgQEAgc3RydWN0IGtvbWVkYV9wbGFuZV9zdGF0ZSB7DQog CS8qKiBAemxpc3Rfbm9kZTogem9yZGVyIGxpc3Qgbm9kZSAqLw0KIAlzdHJ1Y3QgbGlzdF9oZWFk IHpsaXN0X25vZGU7DQogDQotCS8qIEBpbWdfZW5oYW5jZW1lbnQ6IG9uL29mZiBpbWFnZSBlbmhh bmNlbWVudCAqLw0KLQl1OCBpbWdfZW5oYW5jZW1lbnQgOiAxOw0KKwkvKiBAaW1nX2VuaGFuY2Vt ZW50OiBvbi9vZmYgaW1hZ2UgZW5oYW5jZW1lbnQNCisJICogQGxheWVyX3NwbGl0OiBvbi9vZmYg bGF5ZXJfc3BsaXQNCisJICovDQorCXU4IGltZ19lbmhhbmNlbWVudCA6IDEsDQorCSAgIGxheWVy X3NwbGl0IDogMTsNCiB9Ow0KIA0KIC8qKg0KQEAgLTE0OSw2ICsxNTQsMTkgQEAgaXNfb25seV9j aGFuZ2VkX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0LCBzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubikNCiAJcmV0dXJuIEJJVChkcm1fY29ubmVjdG9yX2luZGV4KGNvbm4pKSA9 PSBjaGFuZ2VkX2Nvbm5lY3RvcnM7DQogfQ0KIA0KK3N0YXRpYyBpbmxpbmUgYm9vbCBoYXNfZmxp cF9oKHUzMiByb3QpDQorew0KKwl1MzIgcm90YXRpb24gPSBkcm1fcm90YXRpb25fc2ltcGxpZnko cm90LA0KKwkJCQkJICAgICBEUk1fTU9ERV9ST1RBVEVfMCB8DQorCQkJCQkgICAgIERSTV9NT0RF X1JPVEFURV85MCB8DQorCQkJCQkgICAgIERSTV9NT0RFX1JFRkxFQ1RfTUFTSyk7DQorDQorCWlm IChyb3RhdGlvbiAmIERSTV9NT0RFX1JPVEFURV85MCkNCisJCXJldHVybiAhIShyb3RhdGlvbiAm IERSTV9NT0RFX1JFRkxFQ1RfWSk7DQorCWVsc2UNCisJCXJldHVybiAhIShyb3RhdGlvbiAmIERS TV9NT0RFX1JFRkxFQ1RfWCk7DQorfQ0KKw0KIGludCBrb21lZGFfa21zX3NldHVwX2NydGNzKHN0 cnVjdCBrb21lZGFfa21zX2RldiAqa21zLCBzdHJ1Y3Qga29tZWRhX2RldiAqbWRldik7DQogDQog aW50IGtvbWVkYV9rbXNfYWRkX2NydGNzKHN0cnVjdCBrb21lZGFfa21zX2RldiAqa21zLCBzdHJ1 Y3Qga29tZWRhX2RldiAqbWRldik7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9k aXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlz cGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmMNCmluZGV4IGY0MzRjYjUyNmRiZS4uYzdjM2Nh YWQxM2JkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9r b21lZGFfcGlwZWxpbmUuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVk YS9rb21lZGFfcGlwZWxpbmUuYw0KQEAgLTI2NiwxNiArMjY2LDM1IEBAIHN0YXRpYyB2b2lkIGtv bWVkYV9jb21wb25lbnRfdmVyaWZ5X2lucHV0cyhzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAqYykN CiAJfQ0KIH0NCiANCitzdGF0aWMgc3RydWN0IGtvbWVkYV9sYXllciAqDQora29tZWRhX2dldF9s YXllcl9zcGxpdF9yaWdodF9sYXllcihzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpwaXBlLA0KKwkJ CQkgICBzdHJ1Y3Qga29tZWRhX2xheWVyICpsZWZ0KQ0KK3sNCisJaW50IGluZGV4ID0gbGVmdC0+ YmFzZS5pZCAtIEtPTUVEQV9DT01QT05FTlRfTEFZRVIwOw0KKwlpbnQgaTsNCisNCisJZm9yIChp ID0gaW5kZXggKyAxOyBpIDwgcGlwZS0+bl9sYXllcnM7IGkrKykNCisJCWlmIChsZWZ0LT5sYXll cl90eXBlID09IHBpcGUtPmxheWVyc1tpXS0+bGF5ZXJfdHlwZSkNCisJCQlyZXR1cm4gcGlwZS0+ bGF5ZXJzW2ldOw0KKwlyZXR1cm4gTlVMTDsNCit9DQorDQogc3RhdGljIHZvaWQga29tZWRhX3Bp cGVsaW5lX2Fzc2VtYmxlKHN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKnBpcGUpDQogew0KIAlzdHJ1 Y3Qga29tZWRhX2NvbXBvbmVudCAqYzsNCi0JaW50IGlkOw0KKwlzdHJ1Y3Qga29tZWRhX2xheWVy ICpsYXllcjsNCisJaW50IGksIGlkOw0KIA0KIAlkcF9mb3JfZWFjaF9zZXRfYml0KGlkLCBwaXBl LT5hdmFpbF9jb21wcykgew0KIAkJYyA9IGtvbWVkYV9waXBlbGluZV9nZXRfY29tcG9uZW50KHBp cGUsIGlkKTsNCi0NCiAJCWtvbWVkYV9jb21wb25lbnRfdmVyaWZ5X2lucHV0cyhjKTsNCiAJfQ0K KwkvKiBjYWxjdWxhdGUgcmlnaHQgbGF5ZXIgZm9yIHRoZSBsYXllciBzcGxpdCAqLw0KKwlmb3Ig KGkgPSAwOyBpIDwgcGlwZS0+bl9sYXllcnM7IGkrKykgew0KKwkJbGF5ZXIgPSBwaXBlLT5sYXll cnNbaV07DQorDQorCQlsYXllci0+cmlnaHQgPSBrb21lZGFfZ2V0X2xheWVyX3NwbGl0X3JpZ2h0 X2xheWVyKHBpcGUsIGxheWVyKTsNCisJfQ0KIH0NCiANCiBpbnQga29tZWRhX2Fzc2VtYmxlX3Bp cGVsaW5lcyhzdHJ1Y3Qga29tZWRhX2RldiAqbWRldikNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5oIGIvZHJpdmVycy9ncHUv ZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuaA0KaW5kZXggNGUxY2Y4ZmQ4 OWJmLi4yYzNkMzY1ODExMGMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3Bs YXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5oDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rp c3BsYXkva29tZWRhL2tvbWVkYV9waXBlbGluZS5oDQpAQCAtMjI4LDYgKzIyOCwxMiBAQCBzdHJ1 Y3Qga29tZWRhX2xheWVyIHsNCiAJc3RydWN0IG1hbGlkcF9yYW5nZSBoc2l6ZV9pbiwgdnNpemVf aW47DQogCXUzMiBsYXllcl90eXBlOyAvKiBSSUNILCBTSU1QTEUgb3IgV0IgKi8NCiAJdTMyIHN1 cHBvcnRlZF9yb3RzOw0KKwkvKiBrb21lZGEgc3VwcG9ydHMgbGF5ZXIgc3BsaXQgd2hpY2ggc3Bs aXRzIGEgd2hvbGUgaW1hZ2UgdG8gdHdvIHBhcnRzDQorCSAqIGxlZnQgYW5kIHJpZ2h0IGFuZCBo YW5kbGUgdGhlbSBieSB0d28gaW5kaXZpZHVhbCBsYXllciBwcm9jZXNzb3JzDQorCSAqIE5vdGU6 IGxlZnQvcmlnaHQgYXJlIGFsd2F5cyBhY2NvcmRpbmcgdG8gdGhlIGZpbmFsIGRpc3BsYXkgcmVj dCwNCisJICogbm90IHRoZSBzb3VyY2UgYnVmZmVyLg0KKwkgKi8NCisJc3RydWN0IGtvbWVkYV9s YXllciAqcmlnaHQ7DQogfTsNCiANCiBzdHJ1Y3Qga29tZWRhX2xheWVyX3N0YXRlIHsNCkBAIC0z MzksNiArMzQ1LDcgQEAgc3RydWN0IGtvbWVkYV9kYXRhX2Zsb3dfY2ZnIHsNCiAJdTggbmVlZHNf c2NhbGluZyA6IDEsDQogCSAgIG5lZWRzX2ltZ19lbmhhbmNlbWVudCA6IDEsDQogCSAgIG5lZWRz X3NwbGl0IDogMSwNCisJICAgaXNfeXV2IDogMSwNCiAJICAgcmlnaHRfcGFydCA6IDE7IC8qIHJp Z2h0IHBhcnQgb2YgZGlzcGxheSBpbWFnZSBpZiBzcGxpdCBlbmFibGVkICovDQogfTsNCiANCkBA IC00ODksNiArNDk2LDExIEBAIGludCBrb21lZGFfYnVpbGRfd2JfZGF0YV9mbG93KHN0cnVjdCBr b21lZGFfbGF5ZXIgKndiX2xheWVyLA0KIGludCBrb21lZGFfYnVpbGRfZGlzcGxheV9kYXRhX2Zs b3coc3RydWN0IGtvbWVkYV9jcnRjICprY3J0YywNCiAJCQkJICAgc3RydWN0IGtvbWVkYV9jcnRj X3N0YXRlICprY3J0Y19zdCk7DQogDQoraW50IGtvbWVkYV9idWlsZF9sYXllcl9zcGxpdF9kYXRh X2Zsb3coc3RydWN0IGtvbWVkYV9sYXllciAqbGVmdCwNCisJCQkJICAgICAgIHN0cnVjdCBrb21l ZGFfcGxhbmVfc3RhdGUgKmtwbGFuZV9zdCwNCisJCQkJICAgICAgIHN0cnVjdCBrb21lZGFfY3J0 Y19zdGF0ZSAqa2NydGNfc3QsDQorCQkJCSAgICAgICBzdHJ1Y3Qga29tZWRhX2RhdGFfZmxvd19j ZmcgKmRmbG93KTsNCisNCiBpbnQga29tZWRhX3JlbGVhc2VfdW5jbGFpbWVkX3Jlc291cmNlcyhz dHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpwaXBlLA0KIAkJCQkgICAgICAgc3RydWN0IGtvbWVkYV9j cnRjX3N0YXRlICprY3J0Y19zdCk7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Fy bS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lX3N0YXRlLmMNCmluZGV4IDk2NTdk YmZlMDIxMC4uMGJjZjMxNmZlMmM4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9k aXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYw0KKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYw0KQEAgLTIwOSwx MyArMjA5LDE0IEBAIGtvbWVkYV9jb21wb25lbnRfY2hlY2tfaW5wdXQoc3RydWN0IGtvbWVkYV9j b21wb25lbnRfc3RhdGUgKnN0YXRlLA0KIAlzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAqYyA9IHN0 YXRlLT5jb21wb25lbnQ7DQogDQogCWlmICgoaWR4IDwgMCkgfHwgKGlkeCA+PSBjLT5tYXhfYWN0 aXZlX2lucHV0cykpIHsNCi0JCURSTV9ERUJVR19BVE9NSUMoIiVzIGludmFsaWQgaW5wdXQgaWQ6 ICVkLlxuIiwgYy0+bmFtZSwgaWR4KTsNCisJCURSTV9ERUJVR19BVE9NSUMoIiVzIHJlcXVpcmVk IGFuIGludmFsaWQgJXMtaW5wdXRbJWRdLlxuIiwNCisJCQkJIGlucHV0LT5jb21wb25lbnQtPm5h bWUsIGMtPm5hbWUsIGlkeCk7DQogCQlyZXR1cm4gLUVJTlZBTDsNCiAJfQ0KIA0KIAlpZiAoaGFz X2JpdChpZHgsIHN0YXRlLT5hY3RpdmVfaW5wdXRzKSkgew0KLQkJRFJNX0RFQlVHX0FUT01JQygi JXMgcmVxdWlyZWQgaW5wdXRfaWQ6ICVkIGhhcyBiZWVuIG9jY3VwaWVkIGFscmVhZHkuXG4iLA0K LQkJCQkgYy0+bmFtZSwgaWR4KTsNCisJCURSTV9ERUJVR19BVE9NSUMoIiVzIHJlcXVpcmVkICVz LWlucHV0WyVkXSBoYXMgYmVlbiBvY2N1cGllZCBhbHJlYWR5LlxuIiwNCisJCQkJIGlucHV0LT5j b21wb25lbnQtPm5hbWUsIGMtPm5hbWUsIGlkeCk7DQogCQlyZXR1cm4gLUVJTlZBTDsNCiAJfQ0K IA0KQEAgLTI2Nyw2ICsyNjgsMTUgQEAga29tZWRhX2NvbXBvbmVudF9nZXRfYXZhaWxfc2NhbGVy KHN0cnVjdCBrb21lZGFfY29tcG9uZW50ICpjLA0KIAlyZXR1cm4gdG9fc2NhbGVyKGMpOw0KIH0N CiANCitzdGF0aWMgdm9pZA0KK2tvbWVkYV9yb3RhdGVfZGF0YV9mbG93KHN0cnVjdCBrb21lZGFf ZGF0YV9mbG93X2NmZyAqZGZsb3csIHUzMiByb3QpDQorew0KKwlpZiAoZHJtX3JvdGF0aW9uXzkw X29yXzI3MChyb3QpKSB7DQorCQlzd2FwKGRmbG93LT5pbl9oLCBkZmxvdy0+aW5fdyk7DQorCQlz d2FwKGRmbG93LT50b3RhbF9pbl9oLCBkZmxvdy0+dG90YWxfaW5fdyk7DQorCX0NCit9DQorDQog c3RhdGljIGludA0KIGtvbWVkYV9sYXllcl9jaGVja19jZmcoc3RydWN0IGtvbWVkYV9sYXllciAq bGF5ZXIsDQogCQkgICAgICAgc3RydWN0IGtvbWVkYV9mYiAqa2ZiLA0KQEAgLTM1OCw4ICszNjgs NyBAQCBrb21lZGFfbGF5ZXJfdmFsaWRhdGUoc3RydWN0IGtvbWVkYV9sYXllciAqbGF5ZXIsDQog CSAqIFRoZSByb3RhdGlvbiBoYXMgYmVlbiBoYW5kbGVkIGJ5IGxheWVyLCBzbyBhZGp1c3RlZCB0 aGUgZGF0YSBmbG93IGZvcg0KIAkgKiB0aGUgbmV4dCBzdGFnZS4NCiAJICovDQotCWlmIChkcm1f cm90YXRpb25fOTBfb3JfMjcwKHN0LT5yb3QpKQ0KLQkJc3dhcChkZmxvdy0+aW5faCwgZGZsb3ct PmluX3cpOw0KKwlrb21lZGFfcm90YXRlX2RhdGFfZmxvdyhkZmxvdywgc3QtPnJvdCk7DQogDQog CXJldHVybiAwOw0KIH0NCkBAIC01MDgsNiArNTE3LDUyIEBAIGtvbWVkYV9zY2FsZXJfdmFsaWRh dGUodm9pZCAqdXNlciwNCiAJcmV0dXJuIGVycjsNCiB9DQogDQorc3RhdGljIGludA0KK2tvbWVk YV9tZXJnZXJfdmFsaWRhdGUoc3RydWN0IGtvbWVkYV9tZXJnZXIgKm1lcmdlciwNCisJCSAgICAg ICB2b2lkICp1c2VyLA0KKwkJICAgICAgIHN0cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqa2NydGNf c3QsDQorCQkgICAgICAgc3RydWN0IGtvbWVkYV9kYXRhX2Zsb3dfY2ZnICpsZWZ0X2lucHV0LA0K KwkJICAgICAgIHN0cnVjdCBrb21lZGFfZGF0YV9mbG93X2NmZyAqcmlnaHRfaW5wdXQsDQorCQkg ICAgICAgc3RydWN0IGtvbWVkYV9kYXRhX2Zsb3dfY2ZnICpvdXRwdXQpDQorew0KKwlzdHJ1Y3Qg a29tZWRhX2NvbXBvbmVudF9zdGF0ZSAqY19zdDsNCisJc3RydWN0IGtvbWVkYV9tZXJnZXJfc3Rh dGUgKnN0Ow0KKwlpbnQgZXJyID0gMDsNCisNCisJaWYgKCFtZXJnZXIpIHsNCisJCURSTV9ERUJV R19BVE9NSUMoIk5vIG1lcmdlciBpcyBhdmFpbGFibGUiKTsNCisJCXJldHVybiAtRUlOVkFMOw0K Kwl9DQorDQorCWlmICghaW5fcmFuZ2UoJm1lcmdlci0+aHNpemVfbWVyZ2VkLCBvdXRwdXQtPm91 dF93KSkgew0KKwkJRFJNX0RFQlVHX0FUT01JQygibWVyZ2VkX3c6ICVkIGlzIG91dCBvZiB0aGUg YWNjZXB0ZWQgcmFuZ2UuXG4iLA0KKwkJCQkgb3V0cHV0LT5vdXRfdyk7DQorCQlyZXR1cm4gLUVJ TlZBTDsNCisJfQ0KKw0KKwlpZiAoIWluX3JhbmdlKCZtZXJnZXItPnZzaXplX21lcmdlZCwgb3V0 cHV0LT5vdXRfaCkpIHsNCisJCURSTV9ERUJVR19BVE9NSUMoIm1lcmdlZF9oOiAlZCBpcyBvdXQg b2YgdGhlIGFjY2VwdGVkIHJhbmdlLlxuIiwNCisJCQkJIG91dHB1dC0+b3V0X2gpOw0KKwkJcmV0 dXJuIC1FSU5WQUw7DQorCX0NCisNCisJY19zdCA9IGtvbWVkYV9jb21wb25lbnRfZ2V0X3N0YXRl X2FuZF9zZXRfdXNlcigmbWVyZ2VyLT5iYXNlLA0KKwkJCWtjcnRjX3N0LT5iYXNlLnN0YXRlLCBr Y3J0Y19zdC0+YmFzZS5jcnRjLCBrY3J0Y19zdC0+YmFzZS5jcnRjKTsNCisNCisJaWYgKElTX0VS UihjX3N0KSkNCisJCXJldHVybiBQVFJfRVJSKGNfc3QpOw0KKw0KKwlzdCA9IHRvX21lcmdlcl9z dChjX3N0KTsNCisJc3QtPmhzaXplX21lcmdlZCA9IG91dHB1dC0+b3V0X3c7DQorCXN0LT52c2l6 ZV9tZXJnZWQgPSBvdXRwdXQtPm91dF9oOw0KKw0KKwlrb21lZGFfY29tcG9uZW50X2FkZF9pbnB1 dChjX3N0LCAmbGVmdF9pbnB1dC0+aW5wdXQsIDApOw0KKwlrb21lZGFfY29tcG9uZW50X2FkZF9p bnB1dChjX3N0LCAmcmlnaHRfaW5wdXQtPmlucHV0LCAxKTsNCisJa29tZWRhX2NvbXBvbmVudF9z ZXRfb3V0cHV0KCZvdXRwdXQtPmlucHV0LCAmbWVyZ2VyLT5iYXNlLCAwKTsNCisNCisJcmV0dXJu IGVycjsNCit9DQorDQogdm9pZCBwaXBlbGluZV9jb21wb3NpdGlvbl9zaXplKHN0cnVjdCBrb21l ZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3QsDQogCQkJICAgICAgIHUxNiAqaHNpemUsIHUxNiAqdnNp emUpDQogew0KQEAgLTU2Niw2ICs2MjEsNyBAQCBrb21lZGFfY29tcGl6X3NldF9pbnB1dChzdHJ1 Y3Qga29tZWRhX2NvbXBpeiAqY29tcGl6LA0KIAkJY19zdC0+Y2hhbmdlZF9hY3RpdmVfaW5wdXRz IHw9IEJJVChpZHgpOw0KIA0KIAlrb21lZGFfY29tcG9uZW50X2FkZF9pbnB1dChjX3N0LCAmZGZs b3ctPmlucHV0LCBpZHgpOw0KKwlrb21lZGFfY29tcG9uZW50X3NldF9vdXRwdXQoJmRmbG93LT5p bnB1dCwgJmNvbXBpei0+YmFzZSwgMCk7DQogDQogCXJldHVybiAwOw0KIH0NCkBAIC02NzMsNiAr NzI5LDE2IEBAIHZvaWQga29tZWRhX2NvbXBsZXRlX2RhdGFfZmxvd19jZmcoc3RydWN0IGtvbWVk YV9kYXRhX2Zsb3dfY2ZnICpkZmxvdywNCiAJCWRmbG93LT5waXhlbF9ibGVuZF9tb2RlID0gRFJN X01PREVfQkxFTkRfUElYRUxfTk9ORTsNCiANCiAJZGZsb3ctPm5lZWRzX3NjYWxpbmcgPSAodyAh PSBkZmxvdy0+b3V0X3cpIHx8IChoICE9IGRmbG93LT5vdXRfaCk7DQorCWRmbG93LT5pc195dXYg PSBmYi0+Zm9ybWF0LT5pc195dXY7DQorfQ0KKw0KK3N0YXRpYyBib29sIG1lcmdlcl9pc19hdmFp bGFibGUoc3RydWN0IGtvbWVkYV9waXBlbGluZSAqcGlwZSwNCisJCQkJc3RydWN0IGtvbWVkYV9k YXRhX2Zsb3dfY2ZnICpkZmxvdykNCit7DQorCXUzMiBhdmFpbF9pbnB1dHMgPSBwaXBlLT5tZXJn ZXIgPw0KKwkJCSAgIHBpcGUtPm1lcmdlci0+YmFzZS5zdXBwb3J0ZWRfaW5wdXRzIDogMDsNCisN CisJcmV0dXJuIGhhc19iaXQoZGZsb3ctPmlucHV0LmNvbXBvbmVudC0+aWQsIGF2YWlsX2lucHV0 cyk7DQogfQ0KIA0KIGludCBrb21lZGFfYnVpbGRfbGF5ZXJfZGF0YV9mbG93KHN0cnVjdCBrb21l ZGFfbGF5ZXIgKmxheWVyLA0KQEAgLTY5Nyw2ICs3NjMsMjMwIEBAIGludCBrb21lZGFfYnVpbGRf bGF5ZXJfZGF0YV9mbG93KHN0cnVjdCBrb21lZGFfbGF5ZXIgKmxheWVyLA0KIAlpZiAoZXJyKQ0K IAkJcmV0dXJuIGVycjsNCiANCisJLyogaWYgc3BsaXQsIGNoZWNrIGlmIGNhbiBwdXQgdGhlIGRh dGEgZmxvdyBpbnRvIG1lcmdlciAqLw0KKwlpZiAoZGZsb3ctPm5lZWRzX3NwbGl0ICYmIG1lcmdl cl9pc19hdmFpbGFibGUocGlwZSwgZGZsb3cpKQ0KKwkJcmV0dXJuIDA7DQorDQorCWVyciA9IGtv bWVkYV9jb21waXpfc2V0X2lucHV0KHBpcGUtPmNvbXBpeiwga2NydGNfc3QsIGRmbG93KTsNCisN CisJcmV0dXJuIGVycjsNCit9DQorDQorLyoNCisgKiBTcGxpdCBpcyBpbnRyb2R1Y2VkIGZvciB3 b3JrYXJvdW5kIHNjYWxlcidzIGlucHV0L291dHB1dCBzaXplIGxpbWl0YXRpb24uDQorICogVGhl IGlkZWEgaXMgc2ltcGxlLCBpZiBvbmUgc2NhbGVyIGNhbiBub3QgZml0IHRoZSByZXF1aXJlbWVu dCwgdXNlIHR3by4NCisgKiBTbyBzcGxpdCBzcGxpdHMgdGhlIGJpZyBzb3VyY2UgaW1hZ2UgdG8g dHdvIGhhbGYgcGFydHMgKGxlZnQvcmlnaHQpIGFuZCBkbw0KKyAqIHRoZSBzY2FsaW5nIGJ5IHR3 byBzY2FsZXIgc2VwYXJhdGVseSBhbmQgaW5kZXBlbmRlbnRseS4NCisgKiBCdXQgc3BsaXQgYWxz byBpbXBvcnRzIGFuIGVkZ2UgcHJvYmxlbSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBpbWFnZSB3aGVu DQorICogc2NhbGluZywgdG8gYXZvaWQgaXQsIHNwbGl0IGlzbid0IGEgc2ltcGxlIGhhbGYtYW5k LWhhbGYsIGJ1dCBhZGQgYW4gZXh0cmENCisgKiBwaXhlbHMgKG92ZXJsYXApIHRvIGJvdGggc2lk ZSwgYWZ0ZXIgc3BsaXQgdGhlIGxlZnQvcmlnaHQgd2lsbCBiZToNCisgKiAtIGxlZnQ6IFswLCBz cmNfbGVuZ3RoLzIgKyBvdmVybGFwXQ0KKyAqIC0gcmlnaHQ6IFtzcmNfbGVuZ3RoLzIgLSBvdmVy bGFwLCBzcmNfbGVuZ3RoXQ0KKyAqIFRoZSBleHRyYSBvdmVybGFwIGRvIGVsaW1pbmF0ZSB0aGUg ZWRnZSBwcm9ibGVtLCBidXQgd2hpY2ggbWF5IGFsc28gZ2VuZXJhdGVzDQorICogdW5uZWNlc3Nh cnkgcGl4ZWxzIHdoZW4gc2NhbGluZywgd2UgbmVlZCB0byBjcm9wIHRoZW0gYmVmb3JlIHNjYWxl ciBvdXRwdXQNCisgKiB0aGUgcmVzdWx0IHRvIHRoZSBuZXh0IHN0YWdlLiBhbmQgZm9yIHRoZSBo b3cgdG8gY3JvcCwgaXQgZGVwZW5kcyBvbiB0aGUNCisgKiB1bm5lZWRlZCBwaXhlbHMsIGFub3Ro ZXIgd29yZHMgdGhlIHBvc2l0aW9uIHdoZXJlIG92ZXJsYXkgaGFzIGJlZW4gYWRkZWQuDQorICog LSBsZWZ0OiBjcm9wIHRoZSByaWdodA0KKyAqIC0gcmlnaHQ6IGNyb3AgdGhlIGxlZnQNCisgKg0K KyAqIFRoZSBkaWFncmFtIGZvciBob3cgdG8gZG8gdGhlIHNwbGl0DQorICoNCisgKiAgPC0tLS0t LS0tLS0tLS0tLS0tLS0tLWxlZnQtPm91dF93IC0tLS0tLS0tLS0tLS0tLS0+DQorICogfC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLXJpZ2h0X2Nyb3AtLS0tLXwgPC0gbGVmdCBh ZnRlciBzcGxpdA0KKyAqICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcICAgICAg ICAgICAgICAgIC8NCisgKiAgIFwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFw8LS1v dmVybGFwLS0tPi8NCisgKiAgIHwtLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfChNaWRk bGUpLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tfCA8LSBzcmMNCisgKiAgICAgICAgICAgICAgICAg ICAgIC88LS0tb3ZlcmxhcC0tLT5cICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg KiAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgXCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICogcmlnaHQgYWZ0ZXIgc3BsaXQtPnwtLS0tLWxlZnRfY3JvcC0t LXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwNCisgKiAgICAgICAgICAgICAgICAg ICAgXjwtLS0tLS0tLS0tLS0tLS0tLS0tIHJpZ2h0LT5vdXRfdyAtLS0tLS0tLS0tLS0tLS0+Xg0K KyAqDQorICogTk9URTogVG8gY29uc2lzdGVudCB3aXRoIEhXIHRoZSBvdXRwdXRfdyBhbHdheXMg Y29udGFpbnMgdGhlIGNyb3Agc2l6ZS4NCisgKi8NCisNCitzdGF0aWMgdm9pZCBrb21lZGFfc3Bs aXRfZGF0YV9mbG93KHN0cnVjdCBrb21lZGFfc2NhbGVyICpzY2FsZXIsDQorCQkJCSAgIHN0cnVj dCBrb21lZGFfZGF0YV9mbG93X2NmZyAqZGZsb3csDQorCQkJCSAgIHN0cnVjdCBrb21lZGFfZGF0 YV9mbG93X2NmZyAqbF9kZmxvdywNCisJCQkJICAgc3RydWN0IGtvbWVkYV9kYXRhX2Zsb3dfY2Zn ICpyX2RmbG93KQ0KK3sNCisJYm9vbCByOTAgPSBkcm1fcm90YXRpb25fOTBfb3JfMjcwKGRmbG93 LT5yb3QpOw0KKwlib29sIGZsaXBfaCA9IGhhc19mbGlwX2goZGZsb3ctPnJvdCk7DQorCXUzMiBs X291dCwgcl9vdXQsIG92ZXJsYXA7DQorDQorCW1lbWNweShsX2RmbG93LCBkZmxvdywgc2l6ZW9m KCpkZmxvdykpOw0KKwltZW1jcHkocl9kZmxvdywgZGZsb3csIHNpemVvZigqZGZsb3cpKTsNCisN CisJbF9kZmxvdy0+cmlnaHRfcGFydCA9IGZhbHNlOw0KKwlyX2RmbG93LT5yaWdodF9wYXJ0ID0g dHJ1ZTsNCisJcl9kZmxvdy0+YmxlbmRpbmdfem9yZGVyID0gZGZsb3ctPmJsZW5kaW5nX3pvcmRl ciArIDE7DQorDQorCW92ZXJsYXAgPSAwOw0KKwlpZiAoZGZsb3ctPm5lZWRzX3NjYWxpbmcgJiYg c2NhbGVyKQ0KKwkJb3ZlcmxhcCArPSBzY2FsZXItPnNjYWxpbmdfc3BsaXRfb3ZlcmxhcDsNCisN CisJLyogb3JpZ2luYWwgZGZsb3cgbWF5IGZlZCBpbnRvIHNwbGl0dGVyLCBhbmQgd2hpY2ggZG9l c24ndCBuZWVkDQorCSAqIGVuaGFuY2VtZW50IG92ZXJsYXANCisJICovDQorCWRmbG93LT5vdmVy bGFwID0gb3ZlcmxhcDsNCisNCisJaWYgKGRmbG93LT5uZWVkc19pbWdfZW5oYW5jZW1lbnQgJiYg c2NhbGVyKQ0KKwkJb3ZlcmxhcCArPSBzY2FsZXItPmVuaF9zcGxpdF9vdmVybGFwOw0KKw0KKwls X2RmbG93LT5vdmVybGFwID0gb3ZlcmxhcDsNCisJcl9kZmxvdy0+b3ZlcmxhcCA9IG92ZXJsYXA7 DQorDQorCS8qIHNwbGl0IHRoZSBvcmlnaW4gY29udGVudCAqLw0KKwkvKiBsZWZ0L3JpZ2h0IGhl cmUgYWx3YXlzIG1lYW5zIHRoZSBsZWZ0L3JpZ2h0IHBhcnQgb2YgZGlzcGxheSBpbWFnZSwNCisJ ICogbm90IHRoZSBzb3VyY2UgSW1hZ2UNCisJICovDQorCS8qIERSTSByb3RhdGlvbiBpcyBhbnRp LWNsb2Nrd2lzZSAqLw0KKwlpZiAocjkwKSB7DQorCQlpZiAoZGZsb3ctPm5lZWRzX3NjYWxpbmcp IHsNCisJCQlsX2RmbG93LT5pbl9oID0gQUxJR04oZGZsb3ctPmluX2gsIDIpIC8gMiArIGxfZGZs b3ctPm92ZXJsYXA7DQorCQkJcl9kZmxvdy0+aW5faCA9IGxfZGZsb3ctPmluX2g7DQorCQl9IGVs c2UgaWYgKGRmbG93LT5uZWVkc19pbWdfZW5oYW5jZW1lbnQpIHsNCisJCQkvKiBlbmhhbmNlciBv bmx5ICovDQorCQkJbF9kZmxvdy0+aW5faCA9IEFMSUdOKGRmbG93LT5pbl9oLCAyKSAvIDIgKyBs X2RmbG93LT5vdmVybGFwOw0KKwkJCXJfZGZsb3ctPmluX2ggPSBkZmxvdy0+aW5faCAvIDIgKyBy X2RmbG93LT5vdmVybGFwOw0KKwkJfSBlbHNlIHsNCisJCQkvKiBzcGxpdCB3aXRob3V0IHNjYWxl ciwgbm8gb3ZlcmxhcCAqLw0KKwkJCWxfZGZsb3ctPmluX2ggPSBBTElHTigoKGRmbG93LT5pbl9o ICsgMSkgPj4gMSksIDIpOw0KKwkJCXJfZGZsb3ctPmluX2ggPSBkZmxvdy0+aW5faCAtIGxfZGZs b3ctPmluX2g7DQorCQl9DQorDQorCQkvKiBDb25zaWRlciBZVVYgZm9ybWF0LCBhZnRlciBzcGxp dCwgdGhlIHNwbGl0dGVkIHNvdXJjZSB3L2gNCisJCSAqIG1heSBub3QgYWxpZ25lZCB0byAyLiB3 ZSBoYXZlIHR3byBjaG9pY2VzIGZvciBzdWNoIGNhc2UuDQorCQkgKiAxLiBzY2FsZXIgaXMgZW5h YmxlZCAob3ZlcmxhcCAhPSAwKSwgd2UgY2FuIGRvIGEgYWxpZ25tZW50DQorCQkgKiAgICBib3Ro IGxlZnQvcmlnaHQgYW5kIGNyb3AgdGhlIGV4dHJhIGRhdGEgYnkgc2NhbGVyLg0KKwkJICogMi4g c2NhbGVyIGlzIG5vdCBlbmFibGVkLCBvbmx5IGFsaWduIHRoZSBzcGxpdHRlZCBsZWZ0DQorCQkg KiAgICBzcmMvZGlzcCwgYW5kIHRoZSByZXN0IHBhcnQgYXNzaWduIHRvIHJpZ2h0DQorCQkgKi8N CisJCWlmICgob3ZlcmxhcCAhPSAwKSAmJiBkZmxvdy0+aXNfeXV2KSB7DQorCQkJbF9kZmxvdy0+ aW5faCA9IEFMSUdOKGxfZGZsb3ctPmluX2gsIDIpOw0KKwkJCXJfZGZsb3ctPmluX2ggPSBBTElH TihyX2RmbG93LT5pbl9oLCAyKTsNCisJCX0NCisNCisJCWlmIChmbGlwX2gpDQorCQkJbF9kZmxv dy0+aW5feSA9IGRmbG93LT5pbl95ICsgZGZsb3ctPmluX2ggLSBsX2RmbG93LT5pbl9oOw0KKwkJ ZWxzZQ0KKwkJCXJfZGZsb3ctPmluX3kgPSBkZmxvdy0+aW5feSArIGRmbG93LT5pbl9oIC0gcl9k Zmxvdy0+aW5faDsNCisJfSBlbHNlIHsNCisJCWlmIChkZmxvdy0+bmVlZHNfc2NhbGluZykgew0K KwkJCWxfZGZsb3ctPmluX3cgPSBBTElHTihkZmxvdy0+aW5fdywgMikgLyAyICsgbF9kZmxvdy0+ b3ZlcmxhcDsNCisJCQlyX2RmbG93LT5pbl93ID0gbF9kZmxvdy0+aW5fdzsNCisJCX0gZWxzZSBp ZiAoZGZsb3ctPm5lZWRzX2ltZ19lbmhhbmNlbWVudCkgew0KKwkJCWxfZGZsb3ctPmluX3cgPSBB TElHTihkZmxvdy0+aW5fdywgMikgLyAyICsgbF9kZmxvdy0+b3ZlcmxhcDsNCisJCQlyX2RmbG93 LT5pbl93ID0gZGZsb3ctPmluX3cgLyAyICsgcl9kZmxvdy0+b3ZlcmxhcDsNCisJCX0gZWxzZSB7 DQorCQkJbF9kZmxvdy0+aW5fdyA9IEFMSUdOKCgoZGZsb3ctPmluX3cgKyAxKSA+PiAxKSwgMik7 DQorCQkJcl9kZmxvdy0+aW5fdyA9IGRmbG93LT5pbl93IC0gbF9kZmxvdy0+aW5fdzsNCisJCX0N CisNCisJCS8qIGRvIFlVViBhbGlnbm1lbnQgd2hlbiBzY2FsZXIgZW5hYmxlZCAqLw0KKwkJaWYg KChvdmVybGFwICE9IDApICYmIGRmbG93LT5pc195dXYpIHsNCisJCQlsX2RmbG93LT5pbl93ID0g QUxJR04obF9kZmxvdy0+aW5fdywgMik7DQorCQkJcl9kZmxvdy0+aW5fdyA9IEFMSUdOKHJfZGZs b3ctPmluX3csIDIpOw0KKwkJfQ0KKw0KKwkJLyogb24gZmxpcF9oLCB0aGUgbGVmdCBkaXNwbGF5 IGNvbnRlbnQgZnJvbSB0aGUgcmlnaHQtc291cmNlICovDQorCQlpZiAoZmxpcF9oKQ0KKwkJCWxf ZGZsb3ctPmluX3ggPSBkZmxvdy0+aW5fdyArIGRmbG93LT5pbl94IC0gbF9kZmxvdy0+aW5fdzsN CisJCWVsc2UNCisJCQlyX2RmbG93LT5pbl94ID0gZGZsb3ctPmluX3cgKyBkZmxvdy0+aW5feCAt IHJfZGZsb3ctPmluX3c7DQorCX0NCisNCisJLyogc3BsaXQgdGhlIGRpc3BfcmVjdCAqLw0KKwlp ZiAoZGZsb3ctPm5lZWRzX3NjYWxpbmcgfHwgZGZsb3ctPm5lZWRzX2ltZ19lbmhhbmNlbWVudCkN CisJCWxfZGZsb3ctPm91dF93ID0gKChkZmxvdy0+b3V0X3cgKyAxKSA+PiAxKTsNCisJZWxzZQ0K KwkJbF9kZmxvdy0+b3V0X3cgPSBBTElHTigoKGRmbG93LT5vdXRfdyArIDEpID4+IDEpLCAyKTsN CisNCisJcl9kZmxvdy0+b3V0X3cgPSBkZmxvdy0+b3V0X3cgLSBsX2RmbG93LT5vdXRfdzsNCisN CisJbF9kZmxvdy0+b3V0X3ggPSBkZmxvdy0+b3V0X3g7DQorCXJfZGZsb3ctPm91dF94ID0gbF9k Zmxvdy0+b3V0X3cgKyBsX2RmbG93LT5vdXRfeDsNCisNCisJLyogY2FsY3VsYXRlIHRoZSBzY2Fs aW5nIGNyb3AgKi8NCisJLyogbGVmdCBzY2FsZXIgb3V0cHV0IG1vcmUgZGF0YSBhbmQgZG8gY3Jv cCAqLw0KKwlpZiAocjkwKSB7DQorCQlsX291dCA9IChkZmxvdy0+b3V0X3cgKiBsX2RmbG93LT5p bl9oKSAvIGRmbG93LT5pbl9oOw0KKwkJcl9vdXQgPSAoZGZsb3ctPm91dF93ICogcl9kZmxvdy0+ aW5faCkgLyBkZmxvdy0+aW5faDsNCisJfSBlbHNlIHsNCisJCWxfb3V0ID0gKGRmbG93LT5vdXRf dyAqIGxfZGZsb3ctPmluX3cpIC8gZGZsb3ctPmluX3c7DQorCQlyX291dCA9IChkZmxvdy0+b3V0 X3cgKiByX2RmbG93LT5pbl93KSAvIGRmbG93LT5pbl93Ow0KKwl9DQorDQorCWxfZGZsb3ctPmxl ZnRfY3JvcCAgPSAwOw0KKwlsX2RmbG93LT5yaWdodF9jcm9wID0gbF9vdXQgLSBsX2RmbG93LT5v dXRfdzsNCisJcl9kZmxvdy0+bGVmdF9jcm9wICA9IHJfb3V0IC0gcl9kZmxvdy0+b3V0X3c7DQor CXJfZGZsb3ctPnJpZ2h0X2Nyb3AgPSAwOw0KKw0KKwkvKiBvdXRfdyBpbmNsdWRlcyB0aGUgY3Jv cCBsZW5ndGggKi8NCisJbF9kZmxvdy0+b3V0X3cgKz0gbF9kZmxvdy0+cmlnaHRfY3JvcCArIGxf ZGZsb3ctPmxlZnRfY3JvcDsNCisJcl9kZmxvdy0+b3V0X3cgKz0gcl9kZmxvdy0+cmlnaHRfY3Jv cCArIHJfZGZsb3ctPmxlZnRfY3JvcDsNCit9DQorDQorLyogRm9yIGxheWVyIHNwbGl0LCBhIHBs YW5lIHN0YXRlIHdpbGwgYmUgc3BsaXQgdG8gdHdvIGRhdGEgZmxvd3MgYW5kIGhhbmRsZWQNCisg KiBieSB0d28gc2VwYXJhdGVkIGtvbWVkYSBsYXllciBpbnB1dCBwaXBlbGluZXMuIGtvbWVkYSBz dXBwb3J0cyB0d28gdHlwZXMgb2YNCisgKiBsYXllciBzcGxpdDoNCisgKiAtIG5vbmUtc2NhbGlu ZyBzcGxpdDoNCisgKiAgICAgICAgICAgICAvIGxheWVyLWxlZnQgLT4gXA0KKyAqIHBsYW5lX3N0 YXRlICAgICAgICAgICAgICAgICAgY29tcGl6LT4gLi4uDQorICogICAgICAgICAgICAgXCBsYXll ci1yaWdodC0+IC8NCisgKg0KKyAqIC0gc2NhbGluZyBzcGxpdDoNCisgKiAgICAgICAgICAgICAv IGxheWVyLWxlZnQgLT4gc2NhbGVyLT5cDQorICogcGxhbmVfc3RhdGUgICAgICAgICAgICAgICAg ICAgICAgICAgIG1lcmdlciAtPiBjb21waXotPiAuLi4NCisgKiAgICAgICAgICAgICBcIGxheWVy LXJpZ2h0LT4gc2NhbGVyLT4vDQorICoNCisgKiBTaW5jZSBtZXJnZXIgb25seSBzdXBwb3J0cyBz Y2FsZXIgYXMgaW5wdXQsIHNvIGZvciBub25lLXNjYWxpbmcgc3BsaXQsIHR3bw0KKyAqIGxheWVy IGRhdGEgZmxvd3Mgd2lsbCBiZSBvdXRwdXQgdG8gY29tcGl6IGRpcmVjdGx5LiBmb3Igc2NhbGlu Z19zcGxpdCwgdHdvDQorICogZGF0YSBmbG93IHdpbGwgYmUgbWVyZ2VkIGJ5IG1lcmdlciBmaXJz dGx5LCB0aGVuIG1lcmdlciBvdXRwdXRzIG9uZSBtZXJnZWQNCisgKiBkYXRhIGZsb3cgdG8gY29t cGl6Lg0KKyAqLw0KK2ludCBrb21lZGFfYnVpbGRfbGF5ZXJfc3BsaXRfZGF0YV9mbG93KHN0cnVj dCBrb21lZGFfbGF5ZXIgKmxlZnQsDQorCQkJCSAgICAgICBzdHJ1Y3Qga29tZWRhX3BsYW5lX3N0 YXRlICprcGxhbmVfc3QsDQorCQkJCSAgICAgICBzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtj cnRjX3N0LA0KKwkJCQkgICAgICAgc3RydWN0IGtvbWVkYV9kYXRhX2Zsb3dfY2ZnICpkZmxvdykN Cit7DQorCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lID0ga3BsYW5lX3N0LT5iYXNlLnBsYW5lOw0K KwlzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpwaXBlID0gbGVmdC0+YmFzZS5waXBlbGluZTsNCisJ c3RydWN0IGtvbWVkYV9sYXllciAqcmlnaHQgPSBsZWZ0LT5yaWdodDsNCisJc3RydWN0IGtvbWVk YV9kYXRhX2Zsb3dfY2ZnIGxfZGZsb3csIHJfZGZsb3c7DQorCWludCBlcnI7DQorDQorCWtvbWVk YV9zcGxpdF9kYXRhX2Zsb3cocGlwZS0+c2NhbGVyc1swXSwgZGZsb3csICZsX2RmbG93LCAmcl9k Zmxvdyk7DQorDQorCURSTV9ERUJVR19BVE9NSUMoIkFzc2lnbiAlcyArICVzIHRvIFtQTEFORTol ZDolc106ICINCisJCQkgInNyY1t4L3k6JWQvJWQsIHcvaDolZC8lZF0gZGlzcFt4L3k6JWQvJWQs IHcvaDolZC8lZF0iLA0KKwkJCSBsZWZ0LT5iYXNlLm5hbWUsIHJpZ2h0LT5iYXNlLm5hbWUsDQor CQkJIHBsYW5lLT5iYXNlLmlkLCBwbGFuZS0+bmFtZSwNCisJCQkgZGZsb3ctPmluX3gsIGRmbG93 LT5pbl95LCBkZmxvdy0+aW5fdywgZGZsb3ctPmluX2gsDQorCQkJIGRmbG93LT5vdXRfeCwgZGZs b3ctPm91dF95LCBkZmxvdy0+b3V0X3csIGRmbG93LT5vdXRfaCk7DQorDQorCWVyciA9IGtvbWVk YV9idWlsZF9sYXllcl9kYXRhX2Zsb3cobGVmdCwga3BsYW5lX3N0LCBrY3J0Y19zdCwgJmxfZGZs b3cpOw0KKwlpZiAoZXJyKQ0KKwkJcmV0dXJuIGVycjsNCisNCisJZXJyID0ga29tZWRhX2J1aWxk X2xheWVyX2RhdGFfZmxvdyhyaWdodCwga3BsYW5lX3N0LCBrY3J0Y19zdCwgJnJfZGZsb3cpOw0K KwlpZiAoZXJyKQ0KKwkJcmV0dXJuIGVycjsNCisNCisJLyogVGhlIHJvdGF0aW9uIGhhcyBiZWVu IGhhbmRsZWQgYnkgbGF5ZXIsIHNvIGFkanVzdGVkIHRoZSBkYXRhIGZsb3cgKi8NCisJa29tZWRh X3JvdGF0ZV9kYXRhX2Zsb3coZGZsb3csIGRmbG93LT5yb3QpOw0KKw0KKwkvKiBsZWZ0IGFuZCBy aWdodCBkZmxvdyBoYXMgYmVlbiBtZXJnZWQgdG8gY29tcGl6IGFscmVhZHksDQorCSAqIG5vIG5l ZWQgbWVyZ2VyIHRvIG1lcmdlIHRoZW0gYW55bW9yZS4NCisJICovDQorCWlmIChyX2RmbG93Lmlu cHV0LmNvbXBvbmVudCA9PSBsX2RmbG93LmlucHV0LmNvbXBvbmVudCkNCisJCXJldHVybiAwOw0K Kw0KKwkvKiBsaW5lIG1lcmdlciBwYXRoICovDQorCWVyciA9IGtvbWVkYV9tZXJnZXJfdmFsaWRh dGUocGlwZS0+bWVyZ2VyLCBwbGFuZSwga2NydGNfc3QsDQorCQkJCSAgICAgJmxfZGZsb3csICZy X2RmbG93LCBkZmxvdyk7DQorCWlmIChlcnIpDQorCQlyZXR1cm4gZXJyOw0KKw0KIAllcnIgPSBr b21lZGFfY29tcGl6X3NldF9pbnB1dChwaXBlLT5jb21waXosIGtjcnRjX3N0LCBkZmxvdyk7DQog DQogCXJldHVybiBlcnI7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5 L2tvbWVkYS9rb21lZGFfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21l ZGEva29tZWRhX3BsYW5lLmMNCmluZGV4IDc1ZWYwZTZjNWQ5OC4uOWIyMTNiNTFkMjdlIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGxhbmUu Yw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGxhbmUu Yw0KQEAgLTQ0LDcgKzQ0LDggQEAga29tZWRhX3BsYW5lX2luaXRfZGF0YV9mbG93KHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnN0LA0KIAkJcmV0dXJuIC1FSU5WQUw7DQogCX0NCiANCi0JZGZsb3ct Pm5lZWRzX2ltZ19lbmhhbmNlbWVudCA9IGtwbGFuZV9zdC0+aW1nX2VuaGFuY2VtZW50Ow0KKwlk Zmxvdy0+bmVlZHNfaW1nX2VuaGFuY2VtZW50ID0gISFrcGxhbmVfc3QtPmltZ19lbmhhbmNlbWVu dDsNCisJZGZsb3ctPm5lZWRzX3NwbGl0ID0gISFrcGxhbmVfc3QtPmxheWVyX3NwbGl0Ow0KIA0K IAlrb21lZGFfY29tcGxldGVfZGF0YV9mbG93X2NmZyhkZmxvdywgZmIpOw0KIA0KQEAgLTkwLDcg KzkxLDEyIEBAIGtvbWVkYV9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsDQogCWlmIChlcnIpDQogCQlyZXR1cm4gZXJyOw0KIA0KLQllcnIgPSBrb21lZGFfYnVpbGRf bGF5ZXJfZGF0YV9mbG93KGxheWVyLCBrcGxhbmVfc3QsIGtjcnRjX3N0LCAmZGZsb3cpOw0KKwlp ZiAoZGZsb3cubmVlZHNfc3BsaXQpDQorCQllcnIgPSBrb21lZGFfYnVpbGRfbGF5ZXJfc3BsaXRf ZGF0YV9mbG93KGxheWVyLA0KKwkJCQlrcGxhbmVfc3QsIGtjcnRjX3N0LCAmZGZsb3cpOw0KKwll bHNlDQorCQllcnIgPSBrb21lZGFfYnVpbGRfbGF5ZXJfZGF0YV9mbG93KGxheWVyLA0KKwkJCQlr cGxhbmVfc3QsIGtjcnRjX3N0LCAmZGZsb3cpOw0KIA0KIAlyZXR1cm4gZXJyOw0KIH0NCkBAIC0x ODAsNiArMTg2LDggQEAga29tZWRhX3BsYW5lX2F0b21pY19nZXRfcHJvcGVydHkoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsDQogDQogCWlmIChwcm9wZXJ0eSA9PSBrcGxhbmUtPnByb3BfaW1nX2Vu aGFuY2VtZW50KQ0KIAkJKnZhbCA9IHN0LT5pbWdfZW5oYW5jZW1lbnQ7DQorCWVsc2UgaWYgKHBy b3BlcnR5ID09IGtwbGFuZS0+cHJvcF9sYXllcl9zcGxpdCkNCisJCSp2YWwgPSBzdC0+bGF5ZXJf c3BsaXQ7DQogCWVsc2UNCiAJCXJldHVybiAtRUlOVkFMOw0KIA0KQEAgLTE5Nyw2ICsyMDUsOCBA QCBrb21lZGFfcGxhbmVfYXRvbWljX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwNCiANCiAJaWYgKHByb3BlcnR5ID09IGtwbGFuZS0+cHJvcF9pbWdfZW5oYW5jZW1lbnQpDQog CQlzdC0+aW1nX2VuaGFuY2VtZW50ID0gISF2YWw7DQorCWVsc2UgaWYgKHByb3BlcnR5ID09IGtw bGFuZS0+cHJvcF9sYXllcl9zcGxpdCkNCisJCXN0LT5sYXllcl9zcGxpdCA9ICEhdmFsOw0KIAll bHNlDQogCQlyZXR1cm4gLUVJTlZBTDsNCiANCkBAIC0yNDYsNiArMjU2LDE2IEBAIGtvbWVkYV9w bGFuZV9jcmVhdGVfbGF5ZXJfcHJvcGVydGllcyhzdHJ1Y3Qga29tZWRhX3BsYW5lICprcGxhbmUs DQogCQlrcGxhbmUtPnByb3BfaW1nX2VuaGFuY2VtZW50ID0gcHJvcDsNCiAJfQ0KIA0KKwkvKiBw cm9wZXJ0eTogbGF5ZXIgc3BsaXQgKi8NCisJaWYgKGxheWVyLT5yaWdodCkgew0KKwkJcHJvcCA9 IGRybV9wcm9wZXJ0eV9jcmVhdGVfYm9vbChkcm0sIERSTV9NT0RFX1BST1BfQVRPTUlDLA0KKwkJ CQkJCSJsYXllcl9zcGxpdCIpOw0KKwkJaWYgKCFwcm9wKQ0KKwkJCXJldHVybiAtRU5PTUVNOw0K KwkJa3BsYW5lLT5wcm9wX2xheWVyX3NwbGl0ID0gcHJvcDsNCisJCWRybV9vYmplY3RfYXR0YWNo X3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcCwgMCk7DQorCX0NCisNCiAJcmV0dXJuIDA7DQog fQ0KIA0KLS0gDQoyLjE3LjENCg0K