Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp3043137ybi; Mon, 10 Jun 2019 03:22:37 -0700 (PDT) X-Google-Smtp-Source: APXvYqwmLL1zi94VoavWRB8Pbvt6IzLMFqb9PBprUOa4PHEJ8d1eMNBrMWwHdwxUgbnBDtVVF8CH X-Received: by 2002:a17:90a:b387:: with SMTP id e7mr1699645pjr.113.1560162157000; Mon, 10 Jun 2019 03:22:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560162156; cv=none; d=google.com; s=arc-20160816; b=B1PvwyJPKYjHIT65/K+4wq/Li0oWk/uwWBMuBpaNuTsePnyFImLFb+UWYedl4mCzJt GaGHJkA4QSWV6fO5bJz1/wkz6nh5wqXjMrp4TXbnPZHL7iVrKXiOrXtKM3iPyZdL+3GB JNoMHp1zmu8VQhja9nuAxr0y8vAIlpsgj4QSXbDcmS25I5DqWJjOQwdYWs1cvZ/fPxMn +vpAkebw9INh6Mw2GLmZCFLnx5GyequPp7zyhhGjs9guyKmB4HfVexcYPplokuETRQ4B QbjMkA5WCnWOjYzkT7bhzMGZefh2dSjFvDWizQmYEhzX7/yIKehKMT+3nomBiKxJqYpQ KpOw== 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=73VH24GIwMBX2aSUGR02/pxfRH3SO7EL0K9Cpcuk/Gk=; b=V6peUzCR3NxLCMwnmYeIfALPrG7GTsfZFACgVGR6HI3QtBf4rYbjQbmrJyPkdmmr4n xH3Z/y11EauhCBgBtCp3/acRLCZ5OQegSNnIm1ZCTSlvet7KmVCwAwWnvRS4JzFiProR 0vctzL72exeWuxEgMV8J0MlYDgC9iLJ8x8gH+bQH0dB4gRvuGLN9zx1gLVqRjx3BXbFT k6hJvRrQcngH7wzP23jvoElOTNlN5nQ2PJ4ZrPVDY2nINrUllVVGlFjhmCTYxxlhbU9e xHxhGWoks40mbkBwhyDzFTRVpBmymcKdu6bx+alOmhnndljm+0MfuAFBZrX6MVLSs8KI Q+Zw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=b46DoKie; 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 i2si9141817pgs.265.2019.06.10.03.22.20; Mon, 10 Jun 2019 03:22:36 -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=b46DoKie; 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 S2389246AbfFJKQT (ORCPT + 99 others); Mon, 10 Jun 2019 06:16:19 -0400 Received: from mail-eopbgr80042.outbound.protection.outlook.com ([40.107.8.42]:5766 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2388734AbfFJKQT (ORCPT ); Mon, 10 Jun 2019 06:16:19 -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=73VH24GIwMBX2aSUGR02/pxfRH3SO7EL0K9Cpcuk/Gk=; b=b46DoKieiDQ0r90+8BPrdcElqTInGNpPrCkosRMx2yRb+IYLkN4tIrYT+X3B/HMy56tEmHzKrFjyDTjCnPijUEDj4ANWrmPv1LE7WiaGE9NzpfTbIrB23pRj2+XMcSQx9xatilcL+09C6HKUM2C3o9m5TdwcT3eNha4hGOpsZwA= Received: from VE1PR08MB5006.eurprd08.prod.outlook.com (10.255.159.31) by VE1PR08MB4975.eurprd08.prod.outlook.com (10.255.158.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1965.13; Mon, 10 Jun 2019 10:16:08 +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.1943.026; Mon, 10 Jun 2019 10:16:08 +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 v2 3/3] drm/komeda: Add layer split support Thread-Topic: [PATCH v2 3/3] drm/komeda: Add layer split support Thread-Index: AQHVH3WFnI3ZKYgTi0+WC+y+ucE/EQ== Date: Mon, 10 Jun 2019 10:16:08 +0000 Message-ID: <20190610101528.25942-4-james.qian.wang@arm.com> References: <20190610101528.25942-1-james.qian.wang@arm.com> In-Reply-To: <20190610101528.25942-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: HK2PR02CA0140.apcprd02.prod.outlook.com (2603:1096:202:16::24) 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: 925c011a-1e1a-4d2a-b3f2-08d6ed8ca7ad x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020);SRVR:VE1PR08MB4975; x-ms-traffictypediagnostic: VE1PR08MB4975: nodisclaimer: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:972; x-forefront-prvs: 0064B3273C x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(39860400002)(136003)(366004)(376002)(346002)(199004)(189003)(3846002)(8676002)(76176011)(81156014)(316002)(110136005)(103116003)(53936002)(186003)(26005)(81166006)(6436002)(71200400001)(55236004)(68736007)(2501003)(4326008)(66946007)(2906002)(478600001)(8936002)(99286004)(25786009)(50226002)(53946003)(6512007)(66066001)(305945005)(6506007)(386003)(486006)(5660300002)(54906003)(2201001)(66476007)(66446008)(102836004)(66556008)(64756008)(6116002)(52116002)(11346002)(30864003)(7736002)(476003)(446003)(6486002)(36756003)(2616005)(86362001)(14444005)(5024004)(73956011)(256004)(1076003)(14454004)(71190400001)(579004)(309714004);DIR:OUT;SFP:1101;SCL:1;SRVR:VE1PR08MB4975;H:VE1PR08MB5006.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX: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: cX3RBB3WTGYw5aURpUemKgfQZ/iX5xwGp3vTQEl2Ju4ImMHM9xgnw5r3xOUha/mLk1rJMULnbmdFZgvvSydpFjoKJWEkbi1jw258bCZPWCpWStLlFLgmT7Jqg4W6LjtfejnKXFyhbaij24a+oNGTGek0e74zi/ACAJa51jRljXLV8IYkv59mqMVnncQSkM+1aOTzh4pyMpPhcaOMN6XguYCDUnzPVKq4wOMFCj5sJf6UogD7v3N9lSjiq/hhF1xe0MuWtOy1A+67rShirbkSI4PVRWJblrhnOHkDWpT6SjhUvi8Al050ZwqX5dNYOm433cLLu4KY2m3IVeZGHXAoopB6EmguvXU5Zsy5YTltpVv+GCCEukEA9WcFF/hPoC2UqRWxTH8YG7aNmhSLa3oQu9JWzoO/E6t/l+0kt8+whpI= 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: 925c011a-1e1a-4d2a-b3f2-08d6ed8ca7ad X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jun 2019 10:16:08.7555 (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: james.qian.wang@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4975 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 IGl0Lg0KDQp2MjogUmViYXNlDQoNClNpZ25lZC1vZmYtYnk6IEphbWVzIFFpYW4gV2FuZyAoQXJt IFRlY2hub2xvZ3kgQ2hpbmEpIDxqYW1lcy5xaWFuLndhbmdAYXJtLmNvbT4NCi0tLQ0KIC4uLi9n cHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmMgICB8ICAgOCArDQogLi4uL2dw dS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuaCAgIHwgIDIyICstDQogLi4uL2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmMgIHwgIDIzICstDQogLi4uL2Ry bS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmggIHwgIDEyICsNCiAuLi4vZGlz cGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lX3N0YXRlLmMgICAgfCAzMDAgKysrKysrKysrKysr KysrKystDQogLi4uL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9wbGFuZS5jIHwg IDI0ICstDQogNiBmaWxlcyBjaGFuZ2VkLCAzNzggaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25z KC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tv bWVkYV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2tt cy5jDQppbmRleCAwZWM3NjY1NmNkMWYuLjVkMTBjNTVjOWM0MCAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5jDQorKysgYi9kcml2ZXJz L2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuYw0KQEAgLTE3Myw2ICsxNzMs MTQgQEAgc3RhdGljIGludCBrb21lZGFfY3J0Y19ub3JtYWxpemVfenBvcyhzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsDQogCQlwbGFuZSA9IHBsYW5lX3N0LT5wbGFuZTsNCg0KIAkJcGxhbmVfc3QtPm5v cm1hbGl6ZWRfenBvcyA9IG9yZGVyKys7DQorCQkvKiBXaGVuIGxheWVyX3NwbGl0IGhhcyBiZWVu IGVuYWJsZWQsIG9uZSBwbGFuZSB3aWxsIGJlIGhhbmRsZWQNCisJCSAqIGJ5IHR3byBzZXBhcmF0 ZWQga29tZWRhIGxheWVycyAobGVmdC9yaWdodCksIHdoaWNoIG1heSBuZWVkcw0KKwkJICogdHdv IHpvcmRlcnMuDQorCQkgKiAtIHpvcmRlcjogZm9yIGxlZnRfbGF5ZXIgZm9yIGxlZnQgZGlzcGxh eSBwYXJ0Lg0KKwkJICogLSB6b3JkZXIgKyAxOiB3aWxsIGJlIHJlc2VydmVkIGZvciByaWdodCBs YXllci4NCisJCSAqLw0KKwkJaWYgKHRvX2twbGFuZV9zdChwbGFuZV9zdCktPmxheWVyX3NwbGl0 KQ0KKwkJCW9yZGVyKys7DQoNCiAJCURSTV9ERUJVR19BVE9NSUMoIltQTEFORTolZDolc10genBv czolZCwgbm9ybWFsaXplZCB6cG9zOiAlZFxuIiwNCiAJCQkJIHBsYW5lLT5iYXNlLmlkLCBwbGFu ZS0+bmFtZSwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRh L2tvbWVkYV9rbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRh X2ttcy5oDQppbmRleCA1ZjcxZTY2OWQ5MmIuLjlkY2ZlNWEwMWUyMyAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5oDQorKysgYi9kcml2 ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuaA0KQEAgLTM2LDYgKzM2 LDggQEAgc3RydWN0IGtvbWVkYV9wbGFuZSB7DQoNCiAJLyoqIEBwcm9wX2ltZ19lbmhhbmNlbWVu dDogZm9yIG9uL29mZiBpbWFnZSBlbmhhbmNlbWVudCAqLw0KIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICpwcm9wX2ltZ19lbmhhbmNlbWVudDsNCisJLyoqIEBwcm9wX2xheWVyX3NwbGl0OiBmb3Igb24v b2ZmIGxheWVyX3NwbGl0ICovDQorCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BfbGF5ZXJfc3Bs aXQ7DQogfTsNCg0KIC8qKg0KQEAgLTUwLDggKzUyLDExIEBAIHN0cnVjdCBrb21lZGFfcGxhbmVf c3RhdGUgew0KIAkvKiogQHpsaXN0X25vZGU6IHpvcmRlciBsaXN0IG5vZGUgKi8NCiAJc3RydWN0 IGxpc3RfaGVhZCB6bGlzdF9ub2RlOw0KDQotCS8qIEBpbWdfZW5oYW5jZW1lbnQ6IG9uL29mZiBp bWFnZSBlbmhhbmNlbWVudCAqLw0KLQl1OCBpbWdfZW5oYW5jZW1lbnQgOiAxOw0KKwkvKiBAaW1n X2VuaGFuY2VtZW50OiBvbi9vZmYgaW1hZ2UgZW5oYW5jZW1lbnQNCisJICogQGxheWVyX3NwbGl0 OiBvbi9vZmYgbGF5ZXJfc3BsaXQNCisJICovDQorCXU4IGltZ19lbmhhbmNlbWVudCA6IDEsDQor CSAgIGxheWVyX3NwbGl0IDogMTsNCiB9Ow0KDQogLyoqDQpAQCAtMTU1LDYgKzE2MCwxOSBAQCBp c19vbmx5X2NoYW5nZWRfY29ubmVjdG9yKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3QsIHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uKQ0KIAlyZXR1cm4gQklUKGRybV9jb25uZWN0b3JfaW5kZXgo Y29ubikpID09IGNoYW5nZWRfY29ubmVjdG9yczsNCiB9DQoNCitzdGF0aWMgaW5saW5lIGJvb2wg aGFzX2ZsaXBfaCh1MzIgcm90KQ0KK3sNCisJdTMyIHJvdGF0aW9uID0gZHJtX3JvdGF0aW9uX3Np bXBsaWZ5KHJvdCwNCisJCQkJCSAgICAgRFJNX01PREVfUk9UQVRFXzAgfA0KKwkJCQkJICAgICBE Uk1fTU9ERV9ST1RBVEVfOTAgfA0KKwkJCQkJICAgICBEUk1fTU9ERV9SRUZMRUNUX01BU0spOw0K Kw0KKwlpZiAocm90YXRpb24gJiBEUk1fTU9ERV9ST1RBVEVfOTApDQorCQlyZXR1cm4gISEocm90 YXRpb24gJiBEUk1fTU9ERV9SRUZMRUNUX1kpOw0KKwllbHNlDQorCQlyZXR1cm4gISEocm90YXRp b24gJiBEUk1fTU9ERV9SRUZMRUNUX1gpOw0KK30NCisNCiB1bnNpZ25lZCBsb25nIGtvbWVkYV9j YWxjX2FjbGsoc3RydWN0IGtvbWVkYV9jcnRjX3N0YXRlICprY3J0Y19zdCk7DQoNCiBpbnQga29t ZWRhX2ttc19zZXR1cF9jcnRjcyhzdHJ1Y3Qga29tZWRhX2ttc19kZXYgKmttcywgc3RydWN0IGtv bWVkYV9kZXYgKm1kZXYpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxh eS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL2tvbWVkYV9waXBlbGluZS5jDQppbmRleCA1NDNlY2M4MDcwM2YuLmViOWUwYzBhZjhm MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRh X3BpcGVsaW5lLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29t ZWRhX3BpcGVsaW5lLmMNCkBAIC0yNjUsMTYgKzI2NSwzNSBAQCBzdGF0aWMgdm9pZCBrb21lZGFf Y29tcG9uZW50X3ZlcmlmeV9pbnB1dHMoc3RydWN0IGtvbWVkYV9jb21wb25lbnQgKmMpDQogCX0N CiB9DQoNCitzdGF0aWMgc3RydWN0IGtvbWVkYV9sYXllciAqDQora29tZWRhX2dldF9sYXllcl9z cGxpdF9yaWdodF9sYXllcihzdHJ1Y3Qga29tZWRhX3BpcGVsaW5lICpwaXBlLA0KKwkJCQkgICBz dHJ1Y3Qga29tZWRhX2xheWVyICpsZWZ0KQ0KK3sNCisJaW50IGluZGV4ID0gbGVmdC0+YmFzZS5p ZCAtIEtPTUVEQV9DT01QT05FTlRfTEFZRVIwOw0KKwlpbnQgaTsNCisNCisJZm9yIChpID0gaW5k ZXggKyAxOyBpIDwgcGlwZS0+bl9sYXllcnM7IGkrKykNCisJCWlmIChsZWZ0LT5sYXllcl90eXBl ID09IHBpcGUtPmxheWVyc1tpXS0+bGF5ZXJfdHlwZSkNCisJCQlyZXR1cm4gcGlwZS0+bGF5ZXJz W2ldOw0KKwlyZXR1cm4gTlVMTDsNCit9DQorDQogc3RhdGljIHZvaWQga29tZWRhX3BpcGVsaW5l X2Fzc2VtYmxlKHN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKnBpcGUpDQogew0KIAlzdHJ1Y3Qga29t ZWRhX2NvbXBvbmVudCAqYzsNCi0JaW50IGlkOw0KKwlzdHJ1Y3Qga29tZWRhX2xheWVyICpsYXll cjsNCisJaW50IGksIGlkOw0KDQogCWRwX2Zvcl9lYWNoX3NldF9iaXQoaWQsIHBpcGUtPmF2YWls X2NvbXBzKSB7DQogCQljID0ga29tZWRhX3BpcGVsaW5lX2dldF9jb21wb25lbnQocGlwZSwgaWQp Ow0KLQ0KIAkJa29tZWRhX2NvbXBvbmVudF92ZXJpZnlfaW5wdXRzKGMpOw0KIAl9DQorCS8qIGNh bGN1bGF0ZSByaWdodCBsYXllciBmb3IgdGhlIGxheWVyIHNwbGl0ICovDQorCWZvciAoaSA9IDA7 IGkgPCBwaXBlLT5uX2xheWVyczsgaSsrKSB7DQorCQlsYXllciA9IHBpcGUtPmxheWVyc1tpXTsN CisNCisJCWxheWVyLT5yaWdodCA9IGtvbWVkYV9nZXRfbGF5ZXJfc3BsaXRfcmlnaHRfbGF5ZXIo cGlwZSwgbGF5ZXIpOw0KKwl9DQogfQ0KDQogaW50IGtvbWVkYV9hc3NlbWJsZV9waXBlbGluZXMo c3RydWN0IGtvbWVkYV9kZXYgKm1kZXYpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Fy bS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuaCBiL2RyaXZlcnMvZ3B1L2RybS9hcm0v ZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVsaW5lLmgNCmluZGV4IDg1N2JlM2Y2NGIzMi4uZjZh NGE1MWNiNWY3IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVk YS9rb21lZGFfcGlwZWxpbmUuaA0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tv bWVkYS9rb21lZGFfcGlwZWxpbmUuaA0KQEAgLTIyOCw2ICsyMjgsMTIgQEAgc3RydWN0IGtvbWVk YV9sYXllciB7DQogCXN0cnVjdCBtYWxpZHBfcmFuZ2UgaHNpemVfaW4sIHZzaXplX2luOw0KIAl1 MzIgbGF5ZXJfdHlwZTsgLyogUklDSCwgU0lNUExFIG9yIFdCICovDQogCXUzMiBzdXBwb3J0ZWRf cm90czsNCisJLyoga29tZWRhIHN1cHBvcnRzIGxheWVyIHNwbGl0IHdoaWNoIHNwbGl0cyBhIHdo b2xlIGltYWdlIHRvIHR3byBwYXJ0cw0KKwkgKiBsZWZ0IGFuZCByaWdodCBhbmQgaGFuZGxlIHRo ZW0gYnkgdHdvIGluZGl2aWR1YWwgbGF5ZXIgcHJvY2Vzc29ycw0KKwkgKiBOb3RlOiBsZWZ0L3Jp Z2h0IGFyZSBhbHdheXMgYWNjb3JkaW5nIHRvIHRoZSBmaW5hbCBkaXNwbGF5IHJlY3QsDQorCSAq IG5vdCB0aGUgc291cmNlIGJ1ZmZlci4NCisJICovDQorCXN0cnVjdCBrb21lZGFfbGF5ZXIgKnJp Z2h0Ow0KIH07DQoNCiBzdHJ1Y3Qga29tZWRhX2xheWVyX3N0YXRlIHsNCkBAIC0zMzksNiArMzQ1 LDcgQEAgc3RydWN0IGtvbWVkYV9kYXRhX2Zsb3dfY2ZnIHsNCiAJdTggZW5fc2NhbGluZyA6IDEs DQogCSAgIGVuX2ltZ19lbmhhbmNlbWVudCA6IDEsDQogCSAgIGVuX3NwbGl0IDogMSwNCisJICAg aXNfeXV2IDogMSwNCiAJICAgcmlnaHRfcGFydCA6IDE7IC8qIHJpZ2h0IHBhcnQgb2YgZGlzcGxh eSBpbWFnZSBpZiBzcGxpdCBlbmFibGVkICovDQogfTsNCg0KQEAgLTQ5Myw2ICs1MDAsMTEgQEAg aW50IGtvbWVkYV9idWlsZF93Yl9kYXRhX2Zsb3coc3RydWN0IGtvbWVkYV9sYXllciAqd2JfbGF5 ZXIsDQogaW50IGtvbWVkYV9idWlsZF9kaXNwbGF5X2RhdGFfZmxvdyhzdHJ1Y3Qga29tZWRhX2Ny dGMgKmtjcnRjLA0KIAkJCQkgICBzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtjcnRjX3N0KTsN Cg0KK2ludCBrb21lZGFfYnVpbGRfbGF5ZXJfc3BsaXRfZGF0YV9mbG93KHN0cnVjdCBrb21lZGFf bGF5ZXIgKmxlZnQsDQorCQkJCSAgICAgICBzdHJ1Y3Qga29tZWRhX3BsYW5lX3N0YXRlICprcGxh bmVfc3QsDQorCQkJCSAgICAgICBzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtjcnRjX3N0LA0K KwkJCQkgICAgICAgc3RydWN0IGtvbWVkYV9kYXRhX2Zsb3dfY2ZnICpkZmxvdyk7DQorDQogaW50 IGtvbWVkYV9yZWxlYXNlX3VuY2xhaW1lZF9yZXNvdXJjZXMoc3RydWN0IGtvbWVkYV9waXBlbGlu ZSAqcGlwZSwNCiAJCQkJICAgICAgIHN0cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3Qp Ow0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21l ZGFfcGlwZWxpbmVfc3RhdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEv a29tZWRhX3BpcGVsaW5lX3N0YXRlLmMNCmluZGV4IDcxNDk2MWEwZjkxZS4uYzAxMDJmYWVhMDBl IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFf cGlwZWxpbmVfc3RhdGUuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVk YS9rb21lZGFfcGlwZWxpbmVfc3RhdGUuYw0KQEAgLTIxMSwxMyArMjExLDE0IEBAIGtvbWVkYV9j b21wb25lbnRfY2hlY2tfaW5wdXQoc3RydWN0IGtvbWVkYV9jb21wb25lbnRfc3RhdGUgKnN0YXRl LA0KIAlzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAqYyA9IHN0YXRlLT5jb21wb25lbnQ7DQoNCiAJ aWYgKChpZHggPCAwKSB8fCAoaWR4ID49IGMtPm1heF9hY3RpdmVfaW5wdXRzKSkgew0KLQkJRFJN X0RFQlVHX0FUT01JQygiJXMgaW52YWxpZCBpbnB1dCBpZDogJWQuXG4iLCBjLT5uYW1lLCBpZHgp Ow0KKwkJRFJNX0RFQlVHX0FUT01JQygiJXMgcmVxdWlyZWQgYW4gaW52YWxpZCAlcy1pbnB1dFsl ZF0uXG4iLA0KKwkJCQkgaW5wdXQtPmNvbXBvbmVudC0+bmFtZSwgYy0+bmFtZSwgaWR4KTsNCiAJ CXJldHVybiAtRUlOVkFMOw0KIAl9DQoNCiAJaWYgKGhhc19iaXQoaWR4LCBzdGF0ZS0+YWN0aXZl X2lucHV0cykpIHsNCi0JCURSTV9ERUJVR19BVE9NSUMoIiVzIHJlcXVpcmVkIGlucHV0X2lkOiAl ZCBoYXMgYmVlbiBvY2N1cGllZCBhbHJlYWR5LlxuIiwNCi0JCQkJIGMtPm5hbWUsIGlkeCk7DQor CQlEUk1fREVCVUdfQVRPTUlDKCIlcyByZXF1aXJlZCAlcy1pbnB1dFslZF0gaGFzIGJlZW4gb2Nj dXBpZWQgYWxyZWFkeS5cbiIsDQorCQkJCSBpbnB1dC0+Y29tcG9uZW50LT5uYW1lLCBjLT5uYW1l LCBpZHgpOw0KIAkJcmV0dXJuIC1FSU5WQUw7DQogCX0NCg0KQEAgLTI2OSw2ICsyNzAsMTUgQEAg a29tZWRhX2NvbXBvbmVudF9nZXRfYXZhaWxfc2NhbGVyKHN0cnVjdCBrb21lZGFfY29tcG9uZW50 ICpjLA0KIAlyZXR1cm4gdG9fc2NhbGVyKGMpOw0KIH0NCg0KK3N0YXRpYyB2b2lkDQora29tZWRh X3JvdGF0ZV9kYXRhX2Zsb3coc3RydWN0IGtvbWVkYV9kYXRhX2Zsb3dfY2ZnICpkZmxvdywgdTMy IHJvdCkNCit7DQorCWlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcwKHJvdCkpIHsNCisJCXN3YXAo ZGZsb3ctPmluX2gsIGRmbG93LT5pbl93KTsNCisJCXN3YXAoZGZsb3ctPnRvdGFsX2luX2gsIGRm bG93LT50b3RhbF9pbl93KTsNCisJfQ0KK30NCisNCiBzdGF0aWMgaW50DQoga29tZWRhX2xheWVy X2NoZWNrX2NmZyhzdHJ1Y3Qga29tZWRhX2xheWVyICpsYXllciwNCiAJCSAgICAgICBzdHJ1Y3Qg a29tZWRhX2ZiICprZmIsDQpAQCAtMzYwLDggKzM3MCw3IEBAIGtvbWVkYV9sYXllcl92YWxpZGF0 ZShzdHJ1Y3Qga29tZWRhX2xheWVyICpsYXllciwNCiAJICogVGhlIHJvdGF0aW9uIGhhcyBiZWVu IGhhbmRsZWQgYnkgbGF5ZXIsIHNvIGFkanVzdGVkIHRoZSBkYXRhIGZsb3cgZm9yDQogCSAqIHRo ZSBuZXh0IHN0YWdlLg0KIAkgKi8NCi0JaWYgKGRybV9yb3RhdGlvbl85MF9vcl8yNzAoc3QtPnJv dCkpDQotCQlzd2FwKGRmbG93LT5pbl9oLCBkZmxvdy0+aW5fdyk7DQorCWtvbWVkYV9yb3RhdGVf ZGF0YV9mbG93KGRmbG93LCBzdC0+cm90KTsNCg0KIAlyZXR1cm4gMDsNCiB9DQpAQCAtNTI1LDYg KzUzNCw1MiBAQCBrb21lZGFfc2NhbGVyX3ZhbGlkYXRlKHZvaWQgKnVzZXIsDQogCXJldHVybiBl cnI7DQogfQ0KDQorc3RhdGljIGludA0KK2tvbWVkYV9tZXJnZXJfdmFsaWRhdGUoc3RydWN0IGtv bWVkYV9tZXJnZXIgKm1lcmdlciwNCisJCSAgICAgICB2b2lkICp1c2VyLA0KKwkJICAgICAgIHN0 cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3QsDQorCQkgICAgICAgc3RydWN0IGtvbWVk YV9kYXRhX2Zsb3dfY2ZnICpsZWZ0X2lucHV0LA0KKwkJICAgICAgIHN0cnVjdCBrb21lZGFfZGF0 YV9mbG93X2NmZyAqcmlnaHRfaW5wdXQsDQorCQkgICAgICAgc3RydWN0IGtvbWVkYV9kYXRhX2Zs b3dfY2ZnICpvdXRwdXQpDQorew0KKwlzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudF9zdGF0ZSAqY19z dDsNCisJc3RydWN0IGtvbWVkYV9tZXJnZXJfc3RhdGUgKnN0Ow0KKwlpbnQgZXJyID0gMDsNCisN CisJaWYgKCFtZXJnZXIpIHsNCisJCURSTV9ERUJVR19BVE9NSUMoIk5vIG1lcmdlciBpcyBhdmFp bGFibGUiKTsNCisJCXJldHVybiAtRUlOVkFMOw0KKwl9DQorDQorCWlmICghaW5fcmFuZ2UoJm1l cmdlci0+aHNpemVfbWVyZ2VkLCBvdXRwdXQtPm91dF93KSkgew0KKwkJRFJNX0RFQlVHX0FUT01J QygibWVyZ2VkX3c6ICVkIGlzIG91dCBvZiB0aGUgYWNjZXB0ZWQgcmFuZ2UuXG4iLA0KKwkJCQkg b3V0cHV0LT5vdXRfdyk7DQorCQlyZXR1cm4gLUVJTlZBTDsNCisJfQ0KKw0KKwlpZiAoIWluX3Jh bmdlKCZtZXJnZXItPnZzaXplX21lcmdlZCwgb3V0cHV0LT5vdXRfaCkpIHsNCisJCURSTV9ERUJV R19BVE9NSUMoIm1lcmdlZF9oOiAlZCBpcyBvdXQgb2YgdGhlIGFjY2VwdGVkIHJhbmdlLlxuIiwN CisJCQkJIG91dHB1dC0+b3V0X2gpOw0KKwkJcmV0dXJuIC1FSU5WQUw7DQorCX0NCisNCisJY19z dCA9IGtvbWVkYV9jb21wb25lbnRfZ2V0X3N0YXRlX2FuZF9zZXRfdXNlcigmbWVyZ2VyLT5iYXNl LA0KKwkJCWtjcnRjX3N0LT5iYXNlLnN0YXRlLCBrY3J0Y19zdC0+YmFzZS5jcnRjLCBrY3J0Y19z dC0+YmFzZS5jcnRjKTsNCisNCisJaWYgKElTX0VSUihjX3N0KSkNCisJCXJldHVybiBQVFJfRVJS KGNfc3QpOw0KKw0KKwlzdCA9IHRvX21lcmdlcl9zdChjX3N0KTsNCisJc3QtPmhzaXplX21lcmdl ZCA9IG91dHB1dC0+b3V0X3c7DQorCXN0LT52c2l6ZV9tZXJnZWQgPSBvdXRwdXQtPm91dF9oOw0K Kw0KKwlrb21lZGFfY29tcG9uZW50X2FkZF9pbnB1dChjX3N0LCAmbGVmdF9pbnB1dC0+aW5wdXQs IDApOw0KKwlrb21lZGFfY29tcG9uZW50X2FkZF9pbnB1dChjX3N0LCAmcmlnaHRfaW5wdXQtPmlu cHV0LCAxKTsNCisJa29tZWRhX2NvbXBvbmVudF9zZXRfb3V0cHV0KCZvdXRwdXQtPmlucHV0LCAm bWVyZ2VyLT5iYXNlLCAwKTsNCisNCisJcmV0dXJuIGVycjsNCit9DQorDQogdm9pZCBwaXBlbGlu ZV9jb21wb3NpdGlvbl9zaXplKHN0cnVjdCBrb21lZGFfY3J0Y19zdGF0ZSAqa2NydGNfc3QsDQog CQkJICAgICAgIHUxNiAqaHNpemUsIHUxNiAqdnNpemUpDQogew0KQEAgLTU4Myw2ICs2MzgsNyBA QCBrb21lZGFfY29tcGl6X3NldF9pbnB1dChzdHJ1Y3Qga29tZWRhX2NvbXBpeiAqY29tcGl6LA0K IAkJY19zdC0+Y2hhbmdlZF9hY3RpdmVfaW5wdXRzIHw9IEJJVChpZHgpOw0KDQogCWtvbWVkYV9j b21wb25lbnRfYWRkX2lucHV0KGNfc3QsICZkZmxvdy0+aW5wdXQsIGlkeCk7DQorCWtvbWVkYV9j b21wb25lbnRfc2V0X291dHB1dCgmZGZsb3ctPmlucHV0LCAmY29tcGl6LT5iYXNlLCAwKTsNCg0K IAlyZXR1cm4gMDsNCiB9DQpAQCAtNjkwLDYgKzc0NiwxNiBAQCB2b2lkIGtvbWVkYV9jb21wbGV0 ZV9kYXRhX2Zsb3dfY2ZnKHN0cnVjdCBrb21lZGFfZGF0YV9mbG93X2NmZyAqZGZsb3csDQogCQlz d2FwKHcsIGgpOw0KDQogCWRmbG93LT5lbl9zY2FsaW5nID0gKHcgIT0gZGZsb3ctPm91dF93KSB8 fCAoaCAhPSBkZmxvdy0+b3V0X2gpOw0KKwlkZmxvdy0+aXNfeXV2ID0gZmItPmZvcm1hdC0+aXNf eXV2Ow0KK30NCisNCitzdGF0aWMgYm9vbCBtZXJnZXJfaXNfYXZhaWxhYmxlKHN0cnVjdCBrb21l ZGFfcGlwZWxpbmUgKnBpcGUsDQorCQkJCXN0cnVjdCBrb21lZGFfZGF0YV9mbG93X2NmZyAqZGZs b3cpDQorew0KKwl1MzIgYXZhaWxfaW5wdXRzID0gcGlwZS0+bWVyZ2VyID8NCisJCQkgICBwaXBl LT5tZXJnZXItPmJhc2Uuc3VwcG9ydGVkX2lucHV0cyA6IDA7DQorDQorCXJldHVybiBoYXNfYml0 KGRmbG93LT5pbnB1dC5jb21wb25lbnQtPmlkLCBhdmFpbF9pbnB1dHMpOw0KIH0NCg0KIGludCBr b21lZGFfYnVpbGRfbGF5ZXJfZGF0YV9mbG93KHN0cnVjdCBrb21lZGFfbGF5ZXIgKmxheWVyLA0K QEAgLTcxNCw2ICs3ODAsMjMwIEBAIGludCBrb21lZGFfYnVpbGRfbGF5ZXJfZGF0YV9mbG93KHN0 cnVjdCBrb21lZGFfbGF5ZXIgKmxheWVyLA0KIAlpZiAoZXJyKQ0KIAkJcmV0dXJuIGVycjsNCg0K KwkvKiBpZiBzcGxpdCwgY2hlY2sgaWYgY2FuIHB1dCB0aGUgZGF0YSBmbG93IGludG8gbWVyZ2Vy ICovDQorCWlmIChkZmxvdy0+ZW5fc3BsaXQgJiYgbWVyZ2VyX2lzX2F2YWlsYWJsZShwaXBlLCBk ZmxvdykpDQorCQlyZXR1cm4gMDsNCisNCisJZXJyID0ga29tZWRhX2NvbXBpel9zZXRfaW5wdXQo cGlwZS0+Y29tcGl6LCBrY3J0Y19zdCwgZGZsb3cpOw0KKw0KKwlyZXR1cm4gZXJyOw0KK30NCisN CisvKg0KKyAqIFNwbGl0IGlzIGludHJvZHVjZWQgZm9yIHdvcmthcm91bmQgc2NhbGVyJ3MgaW5w dXQvb3V0cHV0IHNpemUgbGltaXRhdGlvbi4NCisgKiBUaGUgaWRlYSBpcyBzaW1wbGUsIGlmIG9u ZSBzY2FsZXIgY2FuIG5vdCBmaXQgdGhlIHJlcXVpcmVtZW50LCB1c2UgdHdvLg0KKyAqIFNvIHNw bGl0IHNwbGl0cyB0aGUgYmlnIHNvdXJjZSBpbWFnZSB0byB0d28gaGFsZiBwYXJ0cyAobGVmdC9y aWdodCkgYW5kIGRvDQorICogdGhlIHNjYWxpbmcgYnkgdHdvIHNjYWxlciBzZXBhcmF0ZWx5IGFu ZCBpbmRlcGVuZGVudGx5Lg0KKyAqIEJ1dCBzcGxpdCBhbHNvIGltcG9ydHMgYW4gZWRnZSBwcm9i bGVtIGluIHRoZSBtaWRkbGUgb2YgdGhlIGltYWdlIHdoZW4NCisgKiBzY2FsaW5nLCB0byBhdm9p ZCBpdCwgc3BsaXQgaXNuJ3QgYSBzaW1wbGUgaGFsZi1hbmQtaGFsZiwgYnV0IGFkZCBhbiBleHRy YQ0KKyAqIHBpeGVscyAob3ZlcmxhcCkgdG8gYm90aCBzaWRlLCBhZnRlciBzcGxpdCB0aGUgbGVm dC9yaWdodCB3aWxsIGJlOg0KKyAqIC0gbGVmdDogWzAsIHNyY19sZW5ndGgvMiArIG92ZXJsYXBd DQorICogLSByaWdodDogW3NyY19sZW5ndGgvMiAtIG92ZXJsYXAsIHNyY19sZW5ndGhdDQorICog VGhlIGV4dHJhIG92ZXJsYXAgZG8gZWxpbWluYXRlIHRoZSBlZGdlIHByb2JsZW0sIGJ1dCB3aGlj aCBtYXkgYWxzbyBnZW5lcmF0ZXMNCisgKiB1bm5lY2Vzc2FyeSBwaXhlbHMgd2hlbiBzY2FsaW5n LCB3ZSBuZWVkIHRvIGNyb3AgdGhlbSBiZWZvcmUgc2NhbGVyIG91dHB1dA0KKyAqIHRoZSByZXN1 bHQgdG8gdGhlIG5leHQgc3RhZ2UuIGFuZCBmb3IgdGhlIGhvdyB0byBjcm9wLCBpdCBkZXBlbmRz IG9uIHRoZQ0KKyAqIHVubmVlZGVkIHBpeGVscywgYW5vdGhlciB3b3JkcyB0aGUgcG9zaXRpb24g d2hlcmUgb3ZlcmxheSBoYXMgYmVlbiBhZGRlZC4NCisgKiAtIGxlZnQ6IGNyb3AgdGhlIHJpZ2h0 DQorICogLSByaWdodDogY3JvcCB0aGUgbGVmdA0KKyAqDQorICogVGhlIGRpYWdyYW0gZm9yIGhv dyB0byBkbyB0aGUgc3BsaXQNCisgKg0KKyAqICA8LS0tLS0tLS0tLS0tLS0tLS0tLS0tbGVmdC0+ b3V0X3cgLS0tLS0tLS0tLS0tLS0tLT4NCisgKiB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS18LS0tcmlnaHRfY3JvcC0tLS0tfCA8LSBsZWZ0IGFmdGVyIHNwbGl0DQorICogIFwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwgICAgICAgICAgICAgICAgLw0KKyAqICAgXCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXDwtLW92ZXJsYXAtLS0+Lw0KKyAqICAgfC0t LS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18KE1pZGRsZSktLS0tLS18LS0tLS0tLS0tLS0t LS0tLS18IDwtIHNyYw0KKyAqICAgICAgICAgICAgICAgICAgICAgLzwtLS1vdmVybGFwLS0tPlwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAqICAgICAgICAgICAgICAgICAgICAv ICAgICAgICAgICAgICAgICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgKiBy aWdodCBhZnRlciBzcGxpdC0+fC0tLS0tbGVmdF9jcm9wLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tfA0KKyAqICAgICAgICAgICAgICAgICAgICBePC0tLS0tLS0tLS0tLS0tLS0t LS0gcmlnaHQtPm91dF93IC0tLS0tLS0tLS0tLS0tLT5eDQorICoNCisgKiBOT1RFOiBUbyBjb25z aXN0ZW50IHdpdGggSFcgdGhlIG91dHB1dF93IGFsd2F5cyBjb250YWlucyB0aGUgY3JvcCBzaXpl Lg0KKyAqLw0KKw0KK3N0YXRpYyB2b2lkIGtvbWVkYV9zcGxpdF9kYXRhX2Zsb3coc3RydWN0IGtv bWVkYV9zY2FsZXIgKnNjYWxlciwNCisJCQkJICAgc3RydWN0IGtvbWVkYV9kYXRhX2Zsb3dfY2Zn ICpkZmxvdywNCisJCQkJICAgc3RydWN0IGtvbWVkYV9kYXRhX2Zsb3dfY2ZnICpsX2RmbG93LA0K KwkJCQkgICBzdHJ1Y3Qga29tZWRhX2RhdGFfZmxvd19jZmcgKnJfZGZsb3cpDQorew0KKwlib29s IHI5MCA9IGRybV9yb3RhdGlvbl85MF9vcl8yNzAoZGZsb3ctPnJvdCk7DQorCWJvb2wgZmxpcF9o ID0gaGFzX2ZsaXBfaChkZmxvdy0+cm90KTsNCisJdTMyIGxfb3V0LCByX291dCwgb3ZlcmxhcDsN CisNCisJbWVtY3B5KGxfZGZsb3csIGRmbG93LCBzaXplb2YoKmRmbG93KSk7DQorCW1lbWNweShy X2RmbG93LCBkZmxvdywgc2l6ZW9mKCpkZmxvdykpOw0KKw0KKwlsX2RmbG93LT5yaWdodF9wYXJ0 ID0gZmFsc2U7DQorCXJfZGZsb3ctPnJpZ2h0X3BhcnQgPSB0cnVlOw0KKwlyX2RmbG93LT5ibGVu ZGluZ196b3JkZXIgPSBkZmxvdy0+YmxlbmRpbmdfem9yZGVyICsgMTsNCisNCisJb3ZlcmxhcCA9 IDA7DQorCWlmIChkZmxvdy0+ZW5fc2NhbGluZyAmJiBzY2FsZXIpDQorCQlvdmVybGFwICs9IHNj YWxlci0+c2NhbGluZ19zcGxpdF9vdmVybGFwOw0KKw0KKwkvKiBvcmlnaW5hbCBkZmxvdyBtYXkg ZmVkIGludG8gc3BsaXR0ZXIsIGFuZCB3aGljaCBkb2Vzbid0IG5lZWQNCisJICogZW5oYW5jZW1l bnQgb3ZlcmxhcA0KKwkgKi8NCisJZGZsb3ctPm92ZXJsYXAgPSBvdmVybGFwOw0KKw0KKwlpZiAo ZGZsb3ctPmVuX2ltZ19lbmhhbmNlbWVudCAmJiBzY2FsZXIpDQorCQlvdmVybGFwICs9IHNjYWxl ci0+ZW5oX3NwbGl0X292ZXJsYXA7DQorDQorCWxfZGZsb3ctPm92ZXJsYXAgPSBvdmVybGFwOw0K KwlyX2RmbG93LT5vdmVybGFwID0gb3ZlcmxhcDsNCisNCisJLyogc3BsaXQgdGhlIG9yaWdpbiBj b250ZW50ICovDQorCS8qIGxlZnQvcmlnaHQgaGVyZSBhbHdheXMgbWVhbnMgdGhlIGxlZnQvcmln aHQgcGFydCBvZiBkaXNwbGF5IGltYWdlLA0KKwkgKiBub3QgdGhlIHNvdXJjZSBJbWFnZQ0KKwkg Ki8NCisJLyogRFJNIHJvdGF0aW9uIGlzIGFudGktY2xvY2t3aXNlICovDQorCWlmIChyOTApIHsN CisJCWlmIChkZmxvdy0+ZW5fc2NhbGluZykgew0KKwkJCWxfZGZsb3ctPmluX2ggPSBBTElHTihk Zmxvdy0+aW5faCwgMikgLyAyICsgbF9kZmxvdy0+b3ZlcmxhcDsNCisJCQlyX2RmbG93LT5pbl9o ID0gbF9kZmxvdy0+aW5faDsNCisJCX0gZWxzZSBpZiAoZGZsb3ctPmVuX2ltZ19lbmhhbmNlbWVu dCkgew0KKwkJCS8qIGVuaGFuY2VyIG9ubHkgKi8NCisJCQlsX2RmbG93LT5pbl9oID0gQUxJR04o ZGZsb3ctPmluX2gsIDIpIC8gMiArIGxfZGZsb3ctPm92ZXJsYXA7DQorCQkJcl9kZmxvdy0+aW5f aCA9IGRmbG93LT5pbl9oIC8gMiArIHJfZGZsb3ctPm92ZXJsYXA7DQorCQl9IGVsc2Ugew0KKwkJ CS8qIHNwbGl0IHdpdGhvdXQgc2NhbGVyLCBubyBvdmVybGFwICovDQorCQkJbF9kZmxvdy0+aW5f aCA9IEFMSUdOKCgoZGZsb3ctPmluX2ggKyAxKSA+PiAxKSwgMik7DQorCQkJcl9kZmxvdy0+aW5f aCA9IGRmbG93LT5pbl9oIC0gbF9kZmxvdy0+aW5faDsNCisJCX0NCisNCisJCS8qIENvbnNpZGVy IFlVViBmb3JtYXQsIGFmdGVyIHNwbGl0LCB0aGUgc3BsaXQgc291cmNlIHcvaA0KKwkJICogbWF5 IG5vdCBhbGlnbmVkIHRvIDIuIHdlIGhhdmUgdHdvIGNob2ljZXMgZm9yIHN1Y2ggY2FzZS4NCisJ CSAqIDEuIHNjYWxlciBpcyBlbmFibGVkIChvdmVybGFwICE9IDApLCB3ZSBjYW4gZG8gYSBhbGln bm1lbnQNCisJCSAqICAgIGJvdGggbGVmdC9yaWdodCBhbmQgY3JvcCB0aGUgZXh0cmEgZGF0YSBi eSBzY2FsZXIuDQorCQkgKiAyLiBzY2FsZXIgaXMgbm90IGVuYWJsZWQsIG9ubHkgYWxpZ24gdGhl IHNwbGl0IGxlZnQNCisJCSAqICAgIHNyYy9kaXNwLCBhbmQgdGhlIHJlc3QgcGFydCBhc3NpZ24g dG8gcmlnaHQNCisJCSAqLw0KKwkJaWYgKChvdmVybGFwICE9IDApICYmIGRmbG93LT5pc195dXYp IHsNCisJCQlsX2RmbG93LT5pbl9oID0gQUxJR04obF9kZmxvdy0+aW5faCwgMik7DQorCQkJcl9k Zmxvdy0+aW5faCA9IEFMSUdOKHJfZGZsb3ctPmluX2gsIDIpOw0KKwkJfQ0KKw0KKwkJaWYgKGZs aXBfaCkNCisJCQlsX2RmbG93LT5pbl95ID0gZGZsb3ctPmluX3kgKyBkZmxvdy0+aW5faCAtIGxf ZGZsb3ctPmluX2g7DQorCQllbHNlDQorCQkJcl9kZmxvdy0+aW5feSA9IGRmbG93LT5pbl95ICsg ZGZsb3ctPmluX2ggLSByX2RmbG93LT5pbl9oOw0KKwl9IGVsc2Ugew0KKwkJaWYgKGRmbG93LT5l bl9zY2FsaW5nKSB7DQorCQkJbF9kZmxvdy0+aW5fdyA9IEFMSUdOKGRmbG93LT5pbl93LCAyKSAv IDIgKyBsX2RmbG93LT5vdmVybGFwOw0KKwkJCXJfZGZsb3ctPmluX3cgPSBsX2RmbG93LT5pbl93 Ow0KKwkJfSBlbHNlIGlmIChkZmxvdy0+ZW5faW1nX2VuaGFuY2VtZW50KSB7DQorCQkJbF9kZmxv dy0+aW5fdyA9IEFMSUdOKGRmbG93LT5pbl93LCAyKSAvIDIgKyBsX2RmbG93LT5vdmVybGFwOw0K KwkJCXJfZGZsb3ctPmluX3cgPSBkZmxvdy0+aW5fdyAvIDIgKyByX2RmbG93LT5vdmVybGFwOw0K KwkJfSBlbHNlIHsNCisJCQlsX2RmbG93LT5pbl93ID0gQUxJR04oKChkZmxvdy0+aW5fdyArIDEp ID4+IDEpLCAyKTsNCisJCQlyX2RmbG93LT5pbl93ID0gZGZsb3ctPmluX3cgLSBsX2RmbG93LT5p bl93Ow0KKwkJfQ0KKw0KKwkJLyogZG8gWVVWIGFsaWdubWVudCB3aGVuIHNjYWxlciBlbmFibGVk ICovDQorCQlpZiAoKG92ZXJsYXAgIT0gMCkgJiYgZGZsb3ctPmlzX3l1dikgew0KKwkJCWxfZGZs b3ctPmluX3cgPSBBTElHTihsX2RmbG93LT5pbl93LCAyKTsNCisJCQlyX2RmbG93LT5pbl93ID0g QUxJR04ocl9kZmxvdy0+aW5fdywgMik7DQorCQl9DQorDQorCQkvKiBvbiBmbGlwX2gsIHRoZSBs ZWZ0IGRpc3BsYXkgY29udGVudCBmcm9tIHRoZSByaWdodC1zb3VyY2UgKi8NCisJCWlmIChmbGlw X2gpDQorCQkJbF9kZmxvdy0+aW5feCA9IGRmbG93LT5pbl93ICsgZGZsb3ctPmluX3ggLSBsX2Rm bG93LT5pbl93Ow0KKwkJZWxzZQ0KKwkJCXJfZGZsb3ctPmluX3ggPSBkZmxvdy0+aW5fdyArIGRm bG93LT5pbl94IC0gcl9kZmxvdy0+aW5fdzsNCisJfQ0KKw0KKwkvKiBzcGxpdCB0aGUgZGlzcF9y ZWN0ICovDQorCWlmIChkZmxvdy0+ZW5fc2NhbGluZyB8fCBkZmxvdy0+ZW5faW1nX2VuaGFuY2Vt ZW50KQ0KKwkJbF9kZmxvdy0+b3V0X3cgPSAoKGRmbG93LT5vdXRfdyArIDEpID4+IDEpOw0KKwll bHNlDQorCQlsX2RmbG93LT5vdXRfdyA9IEFMSUdOKCgoZGZsb3ctPm91dF93ICsgMSkgPj4gMSks IDIpOw0KKw0KKwlyX2RmbG93LT5vdXRfdyA9IGRmbG93LT5vdXRfdyAtIGxfZGZsb3ctPm91dF93 Ow0KKw0KKwlsX2RmbG93LT5vdXRfeCA9IGRmbG93LT5vdXRfeDsNCisJcl9kZmxvdy0+b3V0X3gg PSBsX2RmbG93LT5vdXRfdyArIGxfZGZsb3ctPm91dF94Ow0KKw0KKwkvKiBjYWxjdWxhdGUgdGhl IHNjYWxpbmcgY3JvcCAqLw0KKwkvKiBsZWZ0IHNjYWxlciBvdXRwdXQgbW9yZSBkYXRhIGFuZCBk byBjcm9wICovDQorCWlmIChyOTApIHsNCisJCWxfb3V0ID0gKGRmbG93LT5vdXRfdyAqIGxfZGZs b3ctPmluX2gpIC8gZGZsb3ctPmluX2g7DQorCQlyX291dCA9IChkZmxvdy0+b3V0X3cgKiByX2Rm bG93LT5pbl9oKSAvIGRmbG93LT5pbl9oOw0KKwl9IGVsc2Ugew0KKwkJbF9vdXQgPSAoZGZsb3ct Pm91dF93ICogbF9kZmxvdy0+aW5fdykgLyBkZmxvdy0+aW5fdzsNCisJCXJfb3V0ID0gKGRmbG93 LT5vdXRfdyAqIHJfZGZsb3ctPmluX3cpIC8gZGZsb3ctPmluX3c7DQorCX0NCisNCisJbF9kZmxv dy0+bGVmdF9jcm9wICA9IDA7DQorCWxfZGZsb3ctPnJpZ2h0X2Nyb3AgPSBsX291dCAtIGxfZGZs b3ctPm91dF93Ow0KKwlyX2RmbG93LT5sZWZ0X2Nyb3AgID0gcl9vdXQgLSByX2RmbG93LT5vdXRf dzsNCisJcl9kZmxvdy0+cmlnaHRfY3JvcCA9IDA7DQorDQorCS8qIG91dF93IGluY2x1ZGVzIHRo ZSBjcm9wIGxlbmd0aCAqLw0KKwlsX2RmbG93LT5vdXRfdyArPSBsX2RmbG93LT5yaWdodF9jcm9w ICsgbF9kZmxvdy0+bGVmdF9jcm9wOw0KKwlyX2RmbG93LT5vdXRfdyArPSByX2RmbG93LT5yaWdo dF9jcm9wICsgcl9kZmxvdy0+bGVmdF9jcm9wOw0KK30NCisNCisvKiBGb3IgbGF5ZXIgc3BsaXQs IGEgcGxhbmUgc3RhdGUgd2lsbCBiZSBzcGxpdCB0byB0d28gZGF0YSBmbG93cyBhbmQgaGFuZGxl ZA0KKyAqIGJ5IHR3byBzZXBhcmF0ZWQga29tZWRhIGxheWVyIGlucHV0IHBpcGVsaW5lcy4ga29t ZWRhIHN1cHBvcnRzIHR3byB0eXBlcyBvZg0KKyAqIGxheWVyIHNwbGl0Og0KKyAqIC0gbm9uZS1z Y2FsaW5nIHNwbGl0Og0KKyAqICAgICAgICAgICAgIC8gbGF5ZXItbGVmdCAtPiBcDQorICogcGxh bmVfc3RhdGUgICAgICAgICAgICAgICAgICBjb21waXotPiAuLi4NCisgKiAgICAgICAgICAgICBc IGxheWVyLXJpZ2h0LT4gLw0KKyAqDQorICogLSBzY2FsaW5nIHNwbGl0Og0KKyAqICAgICAgICAg ICAgIC8gbGF5ZXItbGVmdCAtPiBzY2FsZXItPlwNCisgKiBwbGFuZV9zdGF0ZSAgICAgICAgICAg ICAgICAgICAgICAgICAgbWVyZ2VyIC0+IGNvbXBpei0+IC4uLg0KKyAqICAgICAgICAgICAgIFwg bGF5ZXItcmlnaHQtPiBzY2FsZXItPi8NCisgKg0KKyAqIFNpbmNlIG1lcmdlciBvbmx5IHN1cHBv cnRzIHNjYWxlciBhcyBpbnB1dCwgc28gZm9yIG5vbmUtc2NhbGluZyBzcGxpdCwgdHdvDQorICog bGF5ZXIgZGF0YSBmbG93cyB3aWxsIGJlIG91dHB1dCB0byBjb21waXogZGlyZWN0bHkuIGZvciBz Y2FsaW5nX3NwbGl0LCB0d28NCisgKiBkYXRhIGZsb3cgd2lsbCBiZSBtZXJnZWQgYnkgbWVyZ2Vy IGZpcnN0bHksIHRoZW4gbWVyZ2VyIG91dHB1dHMgb25lIG1lcmdlZA0KKyAqIGRhdGEgZmxvdyB0 byBjb21waXouDQorICovDQoraW50IGtvbWVkYV9idWlsZF9sYXllcl9zcGxpdF9kYXRhX2Zsb3co c3RydWN0IGtvbWVkYV9sYXllciAqbGVmdCwNCisJCQkJICAgICAgIHN0cnVjdCBrb21lZGFfcGxh bmVfc3RhdGUgKmtwbGFuZV9zdCwNCisJCQkJICAgICAgIHN0cnVjdCBrb21lZGFfY3J0Y19zdGF0 ZSAqa2NydGNfc3QsDQorCQkJCSAgICAgICBzdHJ1Y3Qga29tZWRhX2RhdGFfZmxvd19jZmcgKmRm bG93KQ0KK3sNCisJc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSBrcGxhbmVfc3QtPmJhc2UucGxh bmU7DQorCXN0cnVjdCBrb21lZGFfcGlwZWxpbmUgKnBpcGUgPSBsZWZ0LT5iYXNlLnBpcGVsaW5l Ow0KKwlzdHJ1Y3Qga29tZWRhX2xheWVyICpyaWdodCA9IGxlZnQtPnJpZ2h0Ow0KKwlzdHJ1Y3Qg a29tZWRhX2RhdGFfZmxvd19jZmcgbF9kZmxvdywgcl9kZmxvdzsNCisJaW50IGVycjsNCisNCisJ a29tZWRhX3NwbGl0X2RhdGFfZmxvdyhwaXBlLT5zY2FsZXJzWzBdLCBkZmxvdywgJmxfZGZsb3cs ICZyX2RmbG93KTsNCisNCisJRFJNX0RFQlVHX0FUT01JQygiQXNzaWduICVzICsgJXMgdG8gW1BM QU5FOiVkOiVzXTogIg0KKwkJCSAic3JjW3gveTolZC8lZCwgdy9oOiVkLyVkXSBkaXNwW3gveTol ZC8lZCwgdy9oOiVkLyVkXSIsDQorCQkJIGxlZnQtPmJhc2UubmFtZSwgcmlnaHQtPmJhc2UubmFt ZSwNCisJCQkgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5uYW1lLA0KKwkJCSBkZmxvdy0+aW5feCwg ZGZsb3ctPmluX3ksIGRmbG93LT5pbl93LCBkZmxvdy0+aW5faCwNCisJCQkgZGZsb3ctPm91dF94 LCBkZmxvdy0+b3V0X3ksIGRmbG93LT5vdXRfdywgZGZsb3ctPm91dF9oKTsNCisNCisJZXJyID0g a29tZWRhX2J1aWxkX2xheWVyX2RhdGFfZmxvdyhsZWZ0LCBrcGxhbmVfc3QsIGtjcnRjX3N0LCAm bF9kZmxvdyk7DQorCWlmIChlcnIpDQorCQlyZXR1cm4gZXJyOw0KKw0KKwllcnIgPSBrb21lZGFf YnVpbGRfbGF5ZXJfZGF0YV9mbG93KHJpZ2h0LCBrcGxhbmVfc3QsIGtjcnRjX3N0LCAmcl9kZmxv dyk7DQorCWlmIChlcnIpDQorCQlyZXR1cm4gZXJyOw0KKw0KKwkvKiBUaGUgcm90YXRpb24gaGFz IGJlZW4gaGFuZGxlZCBieSBsYXllciwgc28gYWRqdXN0ZWQgdGhlIGRhdGEgZmxvdyAqLw0KKwlr b21lZGFfcm90YXRlX2RhdGFfZmxvdyhkZmxvdywgZGZsb3ctPnJvdCk7DQorDQorCS8qIGxlZnQg YW5kIHJpZ2h0IGRmbG93IGhhcyBiZWVuIG1lcmdlZCB0byBjb21waXogYWxyZWFkeSwNCisJICog bm8gbmVlZCBtZXJnZXIgdG8gbWVyZ2UgdGhlbSBhbnltb3JlLg0KKwkgKi8NCisJaWYgKHJfZGZs b3cuaW5wdXQuY29tcG9uZW50ID09IGxfZGZsb3cuaW5wdXQuY29tcG9uZW50KQ0KKwkJcmV0dXJu IDA7DQorDQorCS8qIGxpbmUgbWVyZ2VyIHBhdGggKi8NCisJZXJyID0ga29tZWRhX21lcmdlcl92 YWxpZGF0ZShwaXBlLT5tZXJnZXIsIHBsYW5lLCBrY3J0Y19zdCwNCisJCQkJICAgICAmbF9kZmxv dywgJnJfZGZsb3csIGRmbG93KTsNCisJaWYgKGVycikNCisJCXJldHVybiBlcnI7DQorDQogCWVy ciA9IGtvbWVkYV9jb21waXpfc2V0X2lucHV0KHBpcGUtPmNvbXBpeiwga2NydGNfc3QsIGRmbG93 KTsNCg0KIAlyZXR1cm4gZXJyOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlz cGxheS9rb21lZGEva29tZWRhX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL2tvbWVkYV9wbGFuZS5jDQppbmRleCA5ZDI5ODIwMzQ1YjkuLmQxYzU4YTg4ZDllMiAx MDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3Bs YW5lLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3Bs YW5lLmMNCkBAIC00NSw3ICs0NSw4IEBAIGtvbWVkYV9wbGFuZV9pbml0X2RhdGFfZmxvdyhzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpzdCwNCiAJCXJldHVybiAtRUlOVkFMOw0KIAl9DQoNCi0JZGZs b3ctPmVuX2ltZ19lbmhhbmNlbWVudCA9IGtwbGFuZV9zdC0+aW1nX2VuaGFuY2VtZW50Ow0KKwlk Zmxvdy0+ZW5faW1nX2VuaGFuY2VtZW50ID0gISFrcGxhbmVfc3QtPmltZ19lbmhhbmNlbWVudDsN CisJZGZsb3ctPmVuX3NwbGl0ID0gISFrcGxhbmVfc3QtPmxheWVyX3NwbGl0Ow0KDQogCWtvbWVk YV9jb21wbGV0ZV9kYXRhX2Zsb3dfY2ZnKGRmbG93LCBmYik7DQoNCkBAIC05MSw3ICs5MiwxMiBA QCBrb21lZGFfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLA0KIAlp ZiAoZXJyKQ0KIAkJcmV0dXJuIGVycjsNCg0KLQllcnIgPSBrb21lZGFfYnVpbGRfbGF5ZXJfZGF0 YV9mbG93KGxheWVyLCBrcGxhbmVfc3QsIGtjcnRjX3N0LCAmZGZsb3cpOw0KKwlpZiAoZGZsb3cu ZW5fc3BsaXQpDQorCQllcnIgPSBrb21lZGFfYnVpbGRfbGF5ZXJfc3BsaXRfZGF0YV9mbG93KGxh eWVyLA0KKwkJCQlrcGxhbmVfc3QsIGtjcnRjX3N0LCAmZGZsb3cpOw0KKwllbHNlDQorCQllcnIg PSBrb21lZGFfYnVpbGRfbGF5ZXJfZGF0YV9mbG93KGxheWVyLA0KKwkJCQlrcGxhbmVfc3QsIGtj cnRjX3N0LCAmZGZsb3cpOw0KDQogCXJldHVybiBlcnI7DQogfQ0KQEAgLTE4MSw2ICsxODcsOCBA QCBrb21lZGFfcGxhbmVfYXRvbWljX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwNCg0KIAlpZiAocHJvcGVydHkgPT0ga3BsYW5lLT5wcm9wX2ltZ19lbmhhbmNlbWVudCkNCiAJ CSp2YWwgPSBzdC0+aW1nX2VuaGFuY2VtZW50Ow0KKwllbHNlIGlmIChwcm9wZXJ0eSA9PSBrcGxh bmUtPnByb3BfbGF5ZXJfc3BsaXQpDQorCQkqdmFsID0gc3QtPmxheWVyX3NwbGl0Ow0KIAllbHNl DQogCQlyZXR1cm4gLUVJTlZBTDsNCg0KQEAgLTE5OCw2ICsyMDYsOCBAQCBrb21lZGFfcGxhbmVf YXRvbWljX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwNCg0KIAlpZiAocHJv cGVydHkgPT0ga3BsYW5lLT5wcm9wX2ltZ19lbmhhbmNlbWVudCkNCiAJCXN0LT5pbWdfZW5oYW5j ZW1lbnQgPSAhIXZhbDsNCisJZWxzZSBpZiAocHJvcGVydHkgPT0ga3BsYW5lLT5wcm9wX2xheWVy X3NwbGl0KQ0KKwkJc3QtPmxheWVyX3NwbGl0ID0gISF2YWw7DQogCWVsc2UNCiAJCXJldHVybiAt RUlOVkFMOw0KDQpAQCAtMjQ3LDYgKzI1NywxNiBAQCBrb21lZGFfcGxhbmVfY3JlYXRlX2xheWVy X3Byb3BlcnRpZXMoc3RydWN0IGtvbWVkYV9wbGFuZSAqa3BsYW5lLA0KIAkJa3BsYW5lLT5wcm9w X2ltZ19lbmhhbmNlbWVudCA9IHByb3A7DQogCX0NCg0KKwkvKiBwcm9wZXJ0eTogbGF5ZXIgc3Bs aXQgKi8NCisJaWYgKGxheWVyLT5yaWdodCkgew0KKwkJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVh dGVfYm9vbChkcm0sIERSTV9NT0RFX1BST1BfQVRPTUlDLA0KKwkJCQkJCSJsYXllcl9zcGxpdCIp Ow0KKwkJaWYgKCFwcm9wKQ0KKwkJCXJldHVybiAtRU5PTUVNOw0KKwkJa3BsYW5lLT5wcm9wX2xh eWVyX3NwbGl0ID0gcHJvcDsNCisJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+ YmFzZSwgcHJvcCwgMCk7DQorCX0NCisNCiAJcmV0dXJuIDA7DQogfQ0KDQotLQ0KMi4xNy4xDQo=