From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC55EC2BA2B for ; Sat, 11 Apr 2020 08:58:47 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 642CE206C0 for ; Sat, 11 Apr 2020 08:58:47 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="h2dkkqcw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 642CE206C0 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DEE526E040; Sat, 11 Apr 2020 08:58:46 +0000 (UTC) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2054.outbound.protection.outlook.com [40.107.244.54]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6CBAA6E040 for ; Sat, 11 Apr 2020 08:58:45 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FLVwh7+dZAysk3UP2p2hddjLrjwK5ugmdsTqBXGRV3dYd+Hl8cTGt0zXJmtLm0LV8OlHr2W7q7rdEB/MLsliFkicEdNa4QduDvGOpNucqCChK+Nqv9FwEdH/wfOs17MyTZQaItdxCgsESbAUwc4lRC0c9uGOEU+JYzot5DVWR7BALyfJKQW+fNlN78QNvwZtzMDCeV7gLyITyL+5oYX14HfS5Oft6jpuAWZw/nnP1mDgB7W3o8gcDm0S2/XRHCfHSAqZkqYX6F89enyVbBlQjZ/w74z7OfqyVjlnbbUbJkGFrX6So6gzpoZjvvJhd3VqdQdEFsYlGPO0GDu4/teq+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XeHQROifPufYK0KudoQl12RxmclyAajD7S5X3dSXE9c=; b=TXa8Pnwp03I35MYy+6T56PMNSeMOdNRO8sdf4ZgQqe08aADWjkGhclmgcpYw4al+hRpJRgDhqiZ/iOjYffxO4gDr3dbM+D5Uuc/8mRy/QGJ3hhNOUfbnh06XeUZUmmd84uCPQYHBQ4owumwmNmNwckGxNQ0M3thXIgrre+WQaFIuDK4mAidm1/tVZ02zI4L38wqoCazQLqqCTERceoyTDgvenob86ZRJ37w/frpl3YdWoaADxL4NdYyjl42cmHZydKVRGxapjzEfqBlURGEs1F7q+6HioAgCBeGj5is3D3QRLtPNJEmowOWnleOEAgIwW86nAotAWxoBEdTxajZ07g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XeHQROifPufYK0KudoQl12RxmclyAajD7S5X3dSXE9c=; b=h2dkkqcwXyMRUPcaSPQ8v7NNNkMCGa+BTiq6OuArZtkxbR7/7nylS7iJW6FgQ5/ASHIugf3NlEaEj5ix6gyNhv1F+UlnNoiesrsWEHxWbr2lvoTIj+uKCsECHT9lwu8EPUghtte9ghIScCoiCERweW9pCgME97IODKE8t49McN8= Received: from DM5PR12MB1708.namprd12.prod.outlook.com (2603:10b6:3:10e::22) by DM5PR12MB2501.namprd12.prod.outlook.com (2603:10b6:4:b4::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.20; Sat, 11 Apr 2020 08:58:38 +0000 Received: from DM5PR12MB1708.namprd12.prod.outlook.com ([fe80::a8d8:ad45:3232:f8bd]) by DM5PR12MB1708.namprd12.prod.outlook.com ([fe80::a8d8:ad45:3232:f8bd%8]) with mapi id 15.20.2878.022; Sat, 11 Apr 2020 08:58:38 +0000 From: "Liu, Monk" To: "Tao, Yintian" , Alex Deucher Subject: RE: [PATCH] drm/amdgpu: restrict debugfs register access under SR-IOV Thread-Topic: [PATCH] drm/amdgpu: restrict debugfs register access under SR-IOV Thread-Index: AQHWDn7EqLyOeGM5CUCyR6Tviv0eVahw5/cAgAAAjICAArgoIA== Date: Sat, 11 Apr 2020 08:58:38 +0000 Message-ID: References: <20200409145415.6837-1-yttao@amd.com> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Monk.Liu@amd.com; x-originating-ip: [240e:e0:f18d:bb4c:286c:45eb:155e:d0f0] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: cf4046b1-5d83-4196-95d4-08d7ddf68697 x-ms-traffictypediagnostic: DM5PR12MB2501:|DM5PR12MB2501: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:451; x-forefront-prvs: 03706074BC x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR12MB1708.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(396003)(39860400002)(346002)(366004)(136003)(376002)(66946007)(81156014)(66556008)(66476007)(71200400001)(53546011)(7696005)(6506007)(83080400001)(64756008)(76116006)(8936002)(66446008)(8676002)(52536014)(33656002)(45080400002)(5660300002)(186003)(55016002)(478600001)(9686003)(30864003)(54906003)(966005)(2906002)(110136005)(4326008)(316002)(86362001); DIR:OUT; SFP:1101; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QL6v1tujm4YlmA4pvCr9p5H4NGuf5ttLBtQzCKBqKsilLVzp33QDLBbIFuTvBiJz9BgL+iL2fVuh0Gnxd+yY/AoPip4EqgYs+EeAzSRCjxVLi2hourDDvkNwO21wXQ1Jdwkr1XN4gRq+2UAC8bU1kj8GlZRHlGITUU6sK1RqZu4HA0b1RuKI8BgRt+AGIXhV3q7pAD/OIx1UnZeu+JH5tdVR2WnNmctKB4nqH96mNnzqY8iXWOnVXlhHB7HAD4JcfGBEB54ajt6bZkpie9M//eRb654S2gXPb0k8hO648bzyW2cz3nOR35pqLUGYyEUc0tObkpSWKpoq2YBORDZId7NkWdqfypC56qdhikGEyzRP5qarWQf4sMmBiQv0aedK26EkQqISJFZrxd2CHaXbzuDuP9fvwmbpGNwLt0g9XatDxUXEIDh4MAB//06tlOkDcCwUgIIN3zteSl87JjjT72Ug7RyLyO8/G8s6IJiE8InlJqM2YehWxJaeycGisk/deq6a7DuTvVA44Zr5+FRW/A== x-ms-exchange-antispam-messagedata: VuiZO6FBEHmk15BHHKyXCLvFjlTOO+3Z+4aFw9LLi6IEpZIqrHVOioItaf3QgYT/aSp6kK/BYYICq5xz+Uk8/AZX9FGJOqEv2O04v3NnrAuJL0IYDqvbwWFBVbua9mYzN/kaxe8il/2+OUsrx8vLLZU2S553NdS0MKNyUGBTM7ppe0maKDRgM23fma8ZBlTvSeVlStTtJsq91clRNxvAkg== MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf4046b1-5d83-4196-95d4-08d7ddf68697 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2020 08:58:38.4269 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: qCrkNRvGpHQYLrN8yqAnyTJDvgN+cXbK+eGacfeUHCTla7AFpHubmFlnfIvRBWxT X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB2501 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Deucher, Alexander" , "Koenig, Christian" , amd-gfx list Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" SGkgWWludGlhbg0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZWJ1Z2Zz LmMNCmluZGV4IGMwZjlhNjUxZGMwNi4uNGY5NzgwYWFiZjVhIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RlYnVnZnMuYw0KKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RlYnVnZnMuYw0KQEAgLTE1MiwxMSArMTUyLDE3IEBAIHN0 YXRpYyBpbnQgIGFtZGdwdV9kZWJ1Z2ZzX3Byb2Nlc3NfcmVnX29wKGJvb2wgcmVhZCwgc3RydWN0 IGZpbGUgKmYsDQogCWlmIChyIDwgMCkNCiAJCXJldHVybiByOw0KIA0KKwlpZiAoIWFtZGdwdV92 aXJ0X2Nhbl9hY2Nlc3NfZGVidWdmcyhhZGV2KSkNCisJCXJldHVybiAtRUlOVkFMOw0KKwllbHNl DQorCQlhbWRncHVfdmlydF9lbmFibGVfYWNjZXNzX2RlYnVnZnMoYWRldik7DQoNCllvdSBwYXRj aCBsb29rcyBzaW1wbHkgYmFpbCBvdXQgaWYgeW91IGFyZSBub3QgdW5kZXIgImRlYnVnIiBjb25k aXRpb24sIGJ1dCB0aGF0IGxvb2tzIHdlaXJkOiB5b3UgYXJlIGZvcmJpZGRpbmcgS0lRIHRvIGRv IHRoZSBkZWJ1Z2ZzIGFjY2VzcyBkdXJpbmcgbm9uLWRlYnVnIGNvbmRpdGlvbiAsIHdoaWNoIGlz IGFuIG92ZXJraWxsIHRvIG1lIC4NCg0KVGhlIGlkZWFsIGxvZ2ljIGlzIDoNCjEpIFdoZW4gd2Ug YXJlIHVuZGVyICJ0ZHJfZGV1YmciIG1vZGUsIHdlIGFsbG93IGRlYnVnZnMgdG8gaGFuZGxlZCBi eSBNTUlPIGFjY2VzcywganVzdCBsaWtlIGJhcmUtbWV0YWwNCjIpIFdoZW4gd2UgYXJlIG5vdCB1 bmRlciAidGRyX2RlYnVnIiBtb2RlIChlLmcuOiBubyB0ZHIgdHJpZ2dlcmVkICkgd2Ugc2hhbGwg c3RpbGwgYWxsb3cgZGVidWdmcyB0byB3b3JrLCBidXQgYWxsIHRoZSByZWdpc3RlciBhY2Nlc3Mg Y2FuIGdvIHdpdGggS0lRIHdheSAuDQoNCkxvb2tzIHlvdSBhcmUgZHJvcHBpbmcgMiB0b3RhbGx5 ICAuLi4gDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCk1vbmsgTGl1 fEdQVSBWaXJ0dWFsaXphdGlvbiBUZWFtIHxBTUQNCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KRnJvbTogYW1kLWdmeCA8YW1kLWdmeC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9y Zz4gT24gQmVoYWxmIE9mIFRhbywgWWludGlhbg0KU2VudDogVGh1cnNkYXksIEFwcmlsIDksIDIw MjAgMTE6MjMgUE0NClRvOiBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVyQGdtYWlsLmNvbT4NCkNj OiBEZXVjaGVyLCBBbGV4YW5kZXIgPEFsZXhhbmRlci5EZXVjaGVyQGFtZC5jb20+OyBLb2VuaWcs IENocmlzdGlhbiA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPjsgYW1kLWdmeCBsaXN0IDxhbWQt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4NClN1YmplY3Q6IFJFOiBbUEFUQ0hdIGRybS9hbWRn cHU6IHJlc3RyaWN0IGRlYnVnZnMgcmVnaXN0ZXIgYWNjZXNzIHVuZGVyIFNSLUlPVg0KDQpIaSAg QWxleA0KDQpNYW55IHRoYW5rcyBmb3IgeW91ciByZXZpZXcuDQoNCg0KDQotLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KRnJvbTogQWxleCBEZXVjaGVyIDxhbGV4ZGV1Y2hlckBnbWFpbC5jb20+ DQpTZW50OiAyMDIw5bm0NOaciDnml6UgMjM6MjENClRvOiBUYW8sIFlpbnRpYW4gPFlpbnRpYW4u VGFvQGFtZC5jb20+DQpDYzogS29lbmlnLCBDaHJpc3RpYW4gPENocmlzdGlhbi5Lb2VuaWdAYW1k LmNvbT47IERldWNoZXIsIEFsZXhhbmRlciA8QWxleGFuZGVyLkRldWNoZXJAYW1kLmNvbT47IGFt ZC1nZnggbGlzdCA8YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+DQpTdWJqZWN0OiBSZTog W1BBVENIXSBkcm0vYW1kZ3B1OiByZXN0cmljdCBkZWJ1Z2ZzIHJlZ2lzdGVyIGFjY2VzcyB1bmRl ciBTUi1JT1YNCg0KT24gVGh1LCBBcHIgOSwgMjAyMCBhdCAxMDo1NCBBTSBZaW50aWFuIFRhbyA8 eXR0YW9AYW1kLmNvbT4gd3JvdGU6DQo+DQo+IFVuZGVyIGJhcmUgbWV0YWwsIHRoZXJlIGlzIG5v IG1vcmUgZWxzZSB0byB0YWtlIGNhcmUgb2YgdGhlIEdQVSANCj4gcmVnaXN0ZXIgYWNjZXNzIHRo cm91Z2ggTU1JTy4NCj4gVW5kZXIgVmlydHVhbGl6YXRpb24sIHRvIGFjY2VzcyBHUFUgcmVnaXN0 ZXIgaXMgaW1wbGVtZW50ZWQgdGhyb3VnaCANCj4gS0lRIGR1cmluZyBydW4tdGltZSBkdWUgdG8g d29ybGQtc3dpdGNoLg0KPg0KPiBUaGVyZWZvcmUsIHVuZGVyIFNSLUlPViB1c2VyIGNhbiBvbmx5 IGFjY2VzcyBkZWJ1Z2ZzIHRvIHIvdyBHUFUgDQo+IHJlZ2lzdGVycyB3aGVuIG1lZXRzIGFsbCB0 aHJlZSBjb25kaXRpb25zIGJlbG93Lg0KPiAtIGFtZGdwdV9ncHVfcmVjb3Zlcnk9MA0KPiAtIFRE UiBoYXBwZW5lZA0KPiAtIGluX2dwdV9yZXNldD0wDQo+DQo+IHYyOiBtZXJnZSBhbWRncHVfdmly dF9jYW5fYWNjZXNzX2RlYnVnZnMoKSBpbnRvDQo+ICAgICBhbWRncHVfdmlydF9lbmFibGVfYWNj ZXNzX2RlYnVnZnMoKQ0KPg0KPiBTaWduZWQtb2ZmLWJ5OiBZaW50aWFuIFRhbyA8eXR0YW9AYW1k LmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGVidWdm cy5jIHwgNzMgKysrKysrKysrKysrKysrKysrKy0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfam9iLmMgICAgIHwgIDggKystDQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfdmlydC5jICAgIHwgMjYgKysrKysrKysNCj4gIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmggICAgfCAgNyArKw0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAx MDggaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkNCj4NCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZWJ1Z2ZzLmMNCj4gYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZGVidWdmcy5jDQo+IGluZGV4IGMwZjlhNjUxZGMwNi4uMWE0 ODk0ZmEzNjkzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZGVidWdmcy5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9k ZWJ1Z2ZzLmMNCj4gQEAgLTE1MiwxMSArMTUyLDE2IEBAIHN0YXRpYyBpbnQgIGFtZGdwdV9kZWJ1 Z2ZzX3Byb2Nlc3NfcmVnX29wKGJvb2wgcmVhZCwgc3RydWN0IGZpbGUgKmYsDQo+ICAgICAgICAg aWYgKHIgPCAwKQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJuIHI7DQo+DQo+ICsgICAgICAgciA9 IGFtZGdwdV92aXJ0X2VuYWJsZV9hY2Nlc3NfZGVidWdmcyhhZGV2KTsNCj4gKyAgICAgICBpZiAo ciA8IDApDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gcjsNCj4gKw0KPiAgICAgICAgIGlmICh1 c2VfYmFuaykgew0KPiAgICAgICAgICAgICAgICAgaWYgKChzaF9iYW5rICE9IDB4RkZGRkZGRkYg JiYgc2hfYmFuayA+PSBhZGV2LT5nZnguY29uZmlnLm1heF9zaF9wZXJfc2UpIHx8DQo+ICAgICAg ICAgICAgICAgICAgICAgKHNlX2JhbmsgIT0gMHhGRkZGRkZGRiAmJiBzZV9iYW5rID49IGFkZXYt PmdmeC5jb25maWcubWF4X3NoYWRlcl9lbmdpbmVzKSkgew0KPiAgICAgICAgICAgICAgICAgICAg ICAgICBwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGFkZXYtPmRkZXYtPmRldik7DQo+ICAgICAg ICAgICAgICAgICAgICAgICAgIHBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGFkZXYtPmRkZXYt PmRldik7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV92aXJ0X2Rpc2FibGVfYWNj ZXNzX2RlYnVnZnMoYWRldik7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOw0KPiAgICAgICAgICAgICAgICAgfQ0KPiAgICAgICAgICAgICAgICAgbXV0ZXhfbG9jaygm YWRldi0+Z3JibV9pZHhfbXV0ZXgpOw0KPiBAQCAtMjA3LDYgKzIxMiw3IEBAIHN0YXRpYyBpbnQg IGFtZGdwdV9kZWJ1Z2ZzX3Byb2Nlc3NfcmVnX29wKGJvb2wgcmVhZCwgc3RydWN0IGZpbGUgKmYs DQo+ICAgICAgICAgcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShhZGV2LT5kZGV2LT5kZXYpOw0K PiAgICAgICAgIHBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGFkZXYtPmRkZXYtPmRldik7DQo+ DQo+ICsgICAgICAgYW1kZ3B1X3ZpcnRfZGlzYWJsZV9hY2Nlc3NfZGVidWdmcyhhZGV2KTsNCj4g ICAgICAgICByZXR1cm4gcmVzdWx0Ow0KPiAgfQ0KPg0KPiBAQCAtMjU1LDYgKzI2MSwxMCBAQCBz dGF0aWMgc3NpemVfdCBhbWRncHVfZGVidWdmc19yZWdzX3BjaWVfcmVhZChzdHJ1Y3QgZmlsZSAq ZiwgY2hhciBfX3VzZXIgKmJ1ZiwNCj4gICAgICAgICBpZiAociA8IDApDQo+ICAgICAgICAgICAg ICAgICByZXR1cm4gcjsNCj4NCj4gKyAgICAgICByID0gYW1kZ3B1X3ZpcnRfZW5hYmxlX2FjY2Vz c19kZWJ1Z2ZzKGFkZXYpOw0KPiArICAgICAgIGlmIChyIDwgMCkNCj4gKyAgICAgICAgICAgICAg IHJldHVybiByOw0KPiArDQo+ICAgICAgICAgd2hpbGUgKHNpemUpIHsNCj4gICAgICAgICAgICAg ICAgIHVpbnQzMl90IHZhbHVlOw0KPg0KPiBAQCAtMjYzLDYgKzI3Myw3IEBAIHN0YXRpYyBzc2l6 ZV90IGFtZGdwdV9kZWJ1Z2ZzX3JlZ3NfcGNpZV9yZWFkKHN0cnVjdCBmaWxlICpmLCBjaGFyIF9f dXNlciAqYnVmLA0KPiAgICAgICAgICAgICAgICAgaWYgKHIpIHsNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShhZGV2LT5kZGV2LT5kZXYpOw0KPiAg ICAgICAgICAgICAgICAgICAgICAgICBwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChhZGV2LT5k ZGV2LT5kZXYpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfdmlydF9kaXNhYmxl X2FjY2Vzc19kZWJ1Z2ZzKGFkZXYpOw0KPiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g cjsNCj4gICAgICAgICAgICAgICAgIH0NCj4NCj4gQEAgLTI3NSw2ICsyODYsNyBAQCBzdGF0aWMg c3NpemVfdCBhbWRncHVfZGVidWdmc19yZWdzX3BjaWVfcmVhZChzdHJ1Y3QgZmlsZSAqZiwgY2hh ciBfX3VzZXIgKmJ1ZiwNCj4gICAgICAgICBwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGFkZXYt PmRkZXYtPmRldik7DQo+ICAgICAgICAgcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoYWRldi0+ ZGRldi0+ZGV2KTsNCj4NCj4gKyAgICAgICBhbWRncHVfdmlydF9kaXNhYmxlX2FjY2Vzc19kZWJ1 Z2ZzKGFkZXYpOw0KPiAgICAgICAgIHJldHVybiByZXN1bHQ7DQo+ICB9DQo+DQo+IEBAIC0zMDQs NiArMzE2LDEwIEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9kZWJ1Z2ZzX3JlZ3NfcGNpZV93cml0 ZShzdHJ1Y3QgZmlsZSAqZiwgY29uc3QgY2hhciBfX3VzZXINCj4gICAgICAgICBpZiAociA8IDAp DQo+ICAgICAgICAgICAgICAgICByZXR1cm4gcjsNCj4NCj4gKyAgICAgICByID0gYW1kZ3B1X3Zp cnRfZW5hYmxlX2FjY2Vzc19kZWJ1Z2ZzKGFkZXYpOw0KPiArICAgICAgIGlmIChyIDwgMCkNCj4g KyAgICAgICAgICAgICAgIHJldHVybiByOw0KPiArDQo+ICAgICAgICAgd2hpbGUgKHNpemUpIHsN Cj4gICAgICAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlOw0KPg0KPiBAQCAtMzExLDYgKzMyNyw3 IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9kZWJ1Z2ZzX3JlZ3NfcGNpZV93cml0ZShzdHJ1Y3Qg ZmlsZSAqZiwgY29uc3QgY2hhciBfX3VzZXINCj4gICAgICAgICAgICAgICAgIGlmIChyKSB7DQo+ ICAgICAgICAgICAgICAgICAgICAgICAgIHBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koYWRldi0+ ZGRldi0+ZGV2KTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgcG1fcnVudGltZV9wdXRfYXV0 b3N1c3BlbmQoYWRldi0+ZGRldi0+ZGV2KTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgYW1k Z3B1X3ZpcnRfZGlzYWJsZV9hY2Nlc3NfZGVidWdmcyhhZGV2KTsNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIHI7DQo+ICAgICAgICAgICAgICAgICB9DQo+DQo+IEBAIC0zMjUsNiAr MzQyLDcgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2RlYnVnZnNfcmVnc19wY2llX3dyaXRlKHN0 cnVjdCBmaWxlICpmLCBjb25zdCBjaGFyIF9fdXNlcg0KPiAgICAgICAgIHBtX3J1bnRpbWVfbWFy a19sYXN0X2J1c3koYWRldi0+ZGRldi0+ZGV2KTsNCj4gICAgICAgICBwbV9ydW50aW1lX3B1dF9h dXRvc3VzcGVuZChhZGV2LT5kZGV2LT5kZXYpOw0KPg0KPiArICAgICAgIGFtZGdwdV92aXJ0X2Rp c2FibGVfYWNjZXNzX2RlYnVnZnMoYWRldik7DQo+ICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCj4g IH0NCj4NCj4gQEAgLTM1NCw2ICszNzIsMTAgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2RlYnVn ZnNfcmVnc19kaWR0X3JlYWQoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpidWYsDQo+ICAg ICAgICAgaWYgKHIgPCAwKQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJuIHI7DQo+DQo+ICsgICAg ICAgciA9IGFtZGdwdV92aXJ0X2VuYWJsZV9hY2Nlc3NfZGVidWdmcyhhZGV2KTsNCj4gKyAgICAg ICBpZiAociA8IDApDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gcjsNCj4gKw0KPiAgICAgICAg IHdoaWxlIChzaXplKSB7DQo+ICAgICAgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZTsNCj4NCj4g QEAgLTM2Miw2ICszODQsNyBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfZGVidWdmc19yZWdzX2Rp ZHRfcmVhZChzdHJ1Y3QgZmlsZSAqZiwgY2hhciBfX3VzZXIgKmJ1ZiwNCj4gICAgICAgICAgICAg ICAgIGlmIChyKSB7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIHBtX3J1bnRpbWVfbWFya19s YXN0X2J1c3koYWRldi0+ZGRldi0+ZGV2KTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgcG1f cnVudGltZV9wdXRfYXV0b3N1c3BlbmQoYWRldi0+ZGRldi0+ZGV2KTsNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgYW1kZ3B1X3ZpcnRfZGlzYWJsZV9hY2Nlc3NfZGVidWdmcyhhZGV2KTsNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7DQo+ICAgICAgICAgICAgICAgICB9DQo+ DQo+IEBAIC0zNzQsNiArMzk3LDcgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2RlYnVnZnNfcmVn c19kaWR0X3JlYWQoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpidWYsDQo+ICAgICAgICAg cG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShhZGV2LT5kZGV2LT5kZXYpOw0KPiAgICAgICAgIHBt X3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGFkZXYtPmRkZXYtPmRldik7DQo+DQo+ICsgICAgICAg YW1kZ3B1X3ZpcnRfZGlzYWJsZV9hY2Nlc3NfZGVidWdmcyhhZGV2KTsNCj4gICAgICAgICByZXR1 cm4gcmVzdWx0Ow0KPiAgfQ0KPg0KPiBAQCAtNDAzLDYgKzQyNywxMCBAQCBzdGF0aWMgc3NpemVf dCBhbWRncHVfZGVidWdmc19yZWdzX2RpZHRfd3JpdGUoc3RydWN0IGZpbGUgKmYsIGNvbnN0IGNo YXIgX191c2VyDQo+ICAgICAgICAgaWYgKHIgPCAwKQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJu IHI7DQo+DQo+ICsgICAgICAgciA9IGFtZGdwdV92aXJ0X2VuYWJsZV9hY2Nlc3NfZGVidWdmcyhh ZGV2KTsNCj4gKyAgICAgICBpZiAociA8IDApDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gcjsN Cj4gKw0KPiAgICAgICAgIHdoaWxlIChzaXplKSB7DQo+ICAgICAgICAgICAgICAgICB1aW50MzJf dCB2YWx1ZTsNCj4NCj4gQEAgLTQxMCw2ICs0MzgsNyBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVf ZGVidWdmc19yZWdzX2RpZHRfd3JpdGUoc3RydWN0IGZpbGUgKmYsIGNvbnN0IGNoYXIgX191c2Vy DQo+ICAgICAgICAgICAgICAgICBpZiAocikgew0KPiAgICAgICAgICAgICAgICAgICAgICAgICBw bV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGFkZXYtPmRkZXYtPmRldik7DQo+ICAgICAgICAgICAg ICAgICAgICAgICAgIHBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGFkZXYtPmRkZXYtPmRldik7 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV92aXJ0X2Rpc2FibGVfYWNjZXNzX2Rl YnVnZnMoYWRldik7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByOw0KPiAgICAg ICAgICAgICAgICAgfQ0KPg0KPiBAQCAtNDI0LDYgKzQ1Myw3IEBAIHN0YXRpYyBzc2l6ZV90IGFt ZGdwdV9kZWJ1Z2ZzX3JlZ3NfZGlkdF93cml0ZShzdHJ1Y3QgZmlsZSAqZiwgY29uc3QgY2hhciBf X3VzZXINCj4gICAgICAgICBwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGFkZXYtPmRkZXYtPmRl dik7DQo+ICAgICAgICAgcG1fcnVudGltZV9wdXRfYXV0b3N1c3BlbmQoYWRldi0+ZGRldi0+ZGV2 KTsNCj4NCj4gKyAgICAgICBhbWRncHVfdmlydF9kaXNhYmxlX2FjY2Vzc19kZWJ1Z2ZzKGFkZXYp Ow0KPiAgICAgICAgIHJldHVybiByZXN1bHQ7DQo+ICB9DQo+DQo+IEBAIC00NTMsNiArNDgzLDEw IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9kZWJ1Z2ZzX3JlZ3Nfc21jX3JlYWQoc3RydWN0IGZp bGUgKmYsIGNoYXIgX191c2VyICpidWYsDQo+ICAgICAgICAgaWYgKHIgPCAwKQ0KPiAgICAgICAg ICAgICAgICAgcmV0dXJuIHI7DQo+DQo+ICsgICAgICAgciA9IGFtZGdwdV92aXJ0X2VuYWJsZV9h Y2Nlc3NfZGVidWdmcyhhZGV2KTsNCj4gKyAgICAgICBpZiAociA8IDApDQo+ICsgICAgICAgICAg ICAgICByZXR1cm4gcjsNCj4gKw0KPiAgICAgICAgIHdoaWxlIChzaXplKSB7DQo+ICAgICAgICAg ICAgICAgICB1aW50MzJfdCB2YWx1ZTsNCj4NCj4gQEAgLTQ2MSw2ICs0OTUsNyBAQCBzdGF0aWMg c3NpemVfdCBhbWRncHVfZGVidWdmc19yZWdzX3NtY19yZWFkKHN0cnVjdCBmaWxlICpmLCBjaGFy IF9fdXNlciAqYnVmLA0KPiAgICAgICAgICAgICAgICAgaWYgKHIpIHsNCj4gICAgICAgICAgICAg ICAgICAgICAgICAgcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShhZGV2LT5kZGV2LT5kZXYpOw0K PiAgICAgICAgICAgICAgICAgICAgICAgICBwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChhZGV2 LT5kZGV2LT5kZXYpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfdmlydF9kaXNh YmxlX2FjY2Vzc19kZWJ1Z2ZzKGFkZXYpOw0KPiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gcjsNCj4gICAgICAgICAgICAgICAgIH0NCj4NCj4gQEAgLTQ3Myw2ICs1MDgsNyBAQCBzdGF0 aWMgc3NpemVfdCBhbWRncHVfZGVidWdmc19yZWdzX3NtY19yZWFkKHN0cnVjdCBmaWxlICpmLCBj aGFyIF9fdXNlciAqYnVmLA0KPiAgICAgICAgIHBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koYWRl di0+ZGRldi0+ZGV2KTsNCj4gICAgICAgICBwbV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChhZGV2 LT5kZGV2LT5kZXYpOw0KPg0KPiArICAgICAgIGFtZGdwdV92aXJ0X2Rpc2FibGVfYWNjZXNzX2Rl YnVnZnMoYWRldik7DQo+ICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCj4gIH0NCj4NCj4gQEAgLTUw Miw2ICs1MzgsMTAgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2RlYnVnZnNfcmVnc19zbWNfd3Jp dGUoc3RydWN0IGZpbGUgKmYsIGNvbnN0IGNoYXIgX191c2VyICoNCj4gICAgICAgICBpZiAociA8 IDApDQo+ICAgICAgICAgICAgICAgICByZXR1cm4gcjsNCj4NCj4gKyAgICAgICByID0gYW1kZ3B1 X3ZpcnRfZW5hYmxlX2FjY2Vzc19kZWJ1Z2ZzKGFkZXYpOw0KPiArICAgICAgIGlmIChyIDwgMCkN Cj4gKyAgICAgICAgICAgICAgIHJldHVybiByOw0KPiArDQo+ICAgICAgICAgd2hpbGUgKHNpemUp IHsNCj4gICAgICAgICAgICAgICAgIHVpbnQzMl90IHZhbHVlOw0KPg0KPiBAQCAtNTA5LDYgKzU0 OSw3IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9kZWJ1Z2ZzX3JlZ3Nfc21jX3dyaXRlKHN0cnVj dCBmaWxlICpmLCBjb25zdCBjaGFyIF9fdXNlciAqDQo+ICAgICAgICAgICAgICAgICBpZiAocikg ew0KPiAgICAgICAgICAgICAgICAgICAgICAgICBwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGFk ZXYtPmRkZXYtPmRldik7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgIHBtX3J1bnRpbWVfcHV0 X2F1dG9zdXNwZW5kKGFkZXYtPmRkZXYtPmRldik7DQo+ICsgICAgICAgICAgICAgICAgICAgICAg IGFtZGdwdV92aXJ0X2Rpc2FibGVfYWNjZXNzX2RlYnVnZnMoYWRldik7DQo+ICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiByOw0KPiAgICAgICAgICAgICAgICAgfQ0KPg0KPiBAQCAtNTIz LDYgKzU2NCw3IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9kZWJ1Z2ZzX3JlZ3Nfc21jX3dyaXRl KHN0cnVjdCBmaWxlICpmLCBjb25zdCBjaGFyIF9fdXNlciAqDQo+ICAgICAgICAgcG1fcnVudGlt ZV9tYXJrX2xhc3RfYnVzeShhZGV2LT5kZGV2LT5kZXYpOw0KPiAgICAgICAgIHBtX3J1bnRpbWVf cHV0X2F1dG9zdXNwZW5kKGFkZXYtPmRkZXYtPmRldik7DQo+DQo+ICsgICAgICAgYW1kZ3B1X3Zp cnRfZGlzYWJsZV9hY2Nlc3NfZGVidWdmcyhhZGV2KTsNCj4gICAgICAgICByZXR1cm4gcmVzdWx0 Ow0KPiAgfQ0KPg0KPiBAQCAtNjUxLDE2ICs2OTMsMjQgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1 X2RlYnVnZnNfc2Vuc29yX3JlYWQoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpidWYsDQo+ ICAgICAgICAgaWYgKHIgPCAwKQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJuIHI7DQo+DQo+ICsg ICAgICAgciA9IGFtZGdwdV92aXJ0X2VuYWJsZV9hY2Nlc3NfZGVidWdmcyhhZGV2KTsNCj4gKyAg ICAgICBpZiAociA8IDApDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gcjsNCj4gKw0KPiAgICAg ICAgIHIgPSBhbWRncHVfZHBtX3JlYWRfc2Vuc29yKGFkZXYsIGlkeCwgJnZhbHVlc1swXSwgJnZh bHVlc2l6ZSk7DQo+DQo+ICAgICAgICAgcG1fcnVudGltZV9tYXJrX2xhc3RfYnVzeShhZGV2LT5k ZGV2LT5kZXYpOw0KPiAgICAgICAgIHBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGFkZXYtPmRk ZXYtPmRldik7DQo+DQo+IC0gICAgICAgaWYgKHIpDQo+ICsgICAgICAgaWYgKHIpIHsNCj4gKyAg ICAgICAgICAgICAgIGFtZGdwdV92aXJ0X2Rpc2FibGVfYWNjZXNzX2RlYnVnZnMoYWRldik7DQo+ ICAgICAgICAgICAgICAgICByZXR1cm4gcjsNCj4gKyAgICAgICB9DQo+DQo+IC0gICAgICAgaWYg KHNpemUgPiB2YWx1ZXNpemUpDQo+ICsgICAgICAgaWYgKHNpemUgPiB2YWx1ZXNpemUpIHsNCj4g KyAgICAgICAgICAgICAgIGFtZGdwdV92aXJ0X2Rpc2FibGVfYWNjZXNzX2RlYnVnZnMoYWRldik7 DQo+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKyAgICAgICB9DQo+DQo+ICAg ICAgICAgb3V0c2l6ZSA9IDA7DQo+ICAgICAgICAgeCA9IDA7DQo+IEBAIC02NzMsNiArNzIzLDcg QEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2RlYnVnZnNfc2Vuc29yX3JlYWQoc3RydWN0IGZpbGUg KmYsIGNoYXIgX191c2VyICpidWYsDQo+ICAgICAgICAgICAgICAgICB9DQo+ICAgICAgICAgfQ0K Pg0KPiArICAgICAgIGFtZGdwdV92aXJ0X2Rpc2FibGVfYWNjZXNzX2RlYnVnZnMoYWRldik7DQo+ ICAgICAgICAgcmV0dXJuICFyID8gb3V0c2l6ZSA6IHI7DQo+ICB9DQo+DQo+IEBAIC03MjAsNiAr NzcxLDEwIEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9kZWJ1Z2ZzX3dhdmVfcmVhZChzdHJ1Y3Qg ZmlsZSAqZiwgY2hhciBfX3VzZXIgKmJ1ZiwNCj4gICAgICAgICBpZiAociA8IDApDQo+ICAgICAg ICAgICAgICAgICByZXR1cm4gcjsNCj4NCj4gKyAgICAgICByID0gYW1kZ3B1X3ZpcnRfZW5hYmxl X2FjY2Vzc19kZWJ1Z2ZzKGFkZXYpOw0KPiArICAgICAgIGlmIChyIDwgMCkNCj4gKyAgICAgICAg ICAgICAgIHJldHVybiByOw0KPiArDQo+ICAgICAgICAgLyogc3dpdGNoIHRvIHRoZSBzcGVjaWZp YyBzZS9zaC9jdSAqLw0KPiAgICAgICAgIG11dGV4X2xvY2soJmFkZXYtPmdyYm1faWR4X211dGV4 KTsNCj4gICAgICAgICBhbWRncHVfZ2Z4X3NlbGVjdF9zZV9zaChhZGV2LCBzZSwgc2gsIGN1KTsg QEAgLTczNCwxNiArNzg5LDIwIA0KPiBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfZGVidWdmc193 YXZlX3JlYWQoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpidWYsDQo+ICAgICAgICAgcG1f cnVudGltZV9tYXJrX2xhc3RfYnVzeShhZGV2LT5kZGV2LT5kZXYpOw0KPiAgICAgICAgIHBtX3J1 bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGFkZXYtPmRkZXYtPmRldik7DQo+DQo+IC0gICAgICAgaWYg KCF4KQ0KPiArICAgICAgIGlmICgheCkgew0KPiArICAgICAgICAgICAgICAgYW1kZ3B1X3ZpcnRf ZGlzYWJsZV9hY2Nlc3NfZGVidWdmcyhhZGV2KTsNCj4gICAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOw0KPiArICAgICAgIH0NCj4NCj4gICAgICAgICB3aGlsZSAoc2l6ZSAmJiAob2Zmc2V0 IDwgeCAqIDQpKSB7DQo+ICAgICAgICAgICAgICAgICB1aW50MzJfdCB2YWx1ZTsNCj4NCj4gICAg ICAgICAgICAgICAgIHZhbHVlID0gZGF0YVtvZmZzZXQgPj4gMl07DQo+ICAgICAgICAgICAgICAg ICByID0gcHV0X3VzZXIodmFsdWUsICh1aW50MzJfdCAqKWJ1Zik7DQo+IC0gICAgICAgICAgICAg ICBpZiAocikNCj4gKyAgICAgICAgICAgICAgIGlmIChyKSB7DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgIGFtZGdwdV92aXJ0X2Rpc2FibGVfYWNjZXNzX2RlYnVnZnMoYWRldik7DQo+ICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiByOw0KPiArICAgICAgICAgICAgICAgfQ0KPg0KPiAg ICAgICAgICAgICAgICAgcmVzdWx0ICs9IDQ7DQo+ICAgICAgICAgICAgICAgICBidWYgKz0gNDsN Cj4gQEAgLTc1MSw2ICs4MTAsNyBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVfZGVidWdmc193YXZl X3JlYWQoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpidWYsDQo+ICAgICAgICAgICAgICAg ICBzaXplIC09IDQ7DQo+ICAgICAgICAgfQ0KPg0KPiArICAgICAgIGFtZGdwdV92aXJ0X2Rpc2Fi bGVfYWNjZXNzX2RlYnVnZnMoYWRldik7DQo+ICAgICAgICAgcmV0dXJuIHJlc3VsdDsNCj4gIH0N Cj4NCj4gQEAgLTgwNSw2ICs4NjUsMTAgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X2RlYnVnZnNf Z3ByX3JlYWQoc3RydWN0IGZpbGUgKmYsIGNoYXIgX191c2VyICpidWYsDQo+ICAgICAgICAgaWYg KHIgPCAwKQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJuIHI7DQo+DQo+ICsgICAgICAgciA9IGFt ZGdwdV92aXJ0X2VuYWJsZV9hY2Nlc3NfZGVidWdmcyhhZGV2KTsNCj4gKyAgICAgICBpZiAociA8 IDApDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gcjsNCj4gKw0KPiAgICAgICAgIC8qIHN3aXRj aCB0byB0aGUgc3BlY2lmaWMgc2Uvc2gvY3UgKi8NCj4gICAgICAgICBtdXRleF9sb2NrKCZhZGV2 LT5ncmJtX2lkeF9tdXRleCk7DQo+ICAgICAgICAgYW1kZ3B1X2dmeF9zZWxlY3Rfc2Vfc2goYWRl diwgc2UsIHNoLCBjdSk7IEBAIC04NDAsNiArOTA0LDcgQEAgDQo+IHN0YXRpYyBzc2l6ZV90IGFt ZGdwdV9kZWJ1Z2ZzX2dwcl9yZWFkKHN0cnVjdCBmaWxlICpmLCBjaGFyIF9fdXNlciANCj4gKmJ1 ZiwNCj4NCj4gIGVycjoNCj4gICAgICAgICBrZnJlZShkYXRhKTsNCj4gKyAgICAgICBhbWRncHVf dmlydF9kaXNhYmxlX2FjY2Vzc19kZWJ1Z2ZzKGFkZXYpOw0KPiAgICAgICAgIHJldHVybiByZXN1 bHQ7DQo+ICB9DQo+DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfam9iLmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfam9iLmMN Cj4gaW5kZXggMmI5OWY1OTUyMzc1Li4zNWMzODFlYzA0MjMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9qb2IuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfam9iLmMNCj4gQEAgLTMzLDYgKzMzLDcgQEAgc3RhdGljIHZv aWQgYW1kZ3B1X2pvYl90aW1lZG91dChzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2IpDQo+ICAg ICAgICAgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gdG9fYW1kZ3B1X3Jpbmcoc19qb2ItPnNj aGVkKTsNCj4gICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iID0gdG9fYW1kZ3B1X2pvYihz X2pvYik7DQo+ICAgICAgICAgc3RydWN0IGFtZGdwdV90YXNrX2luZm8gdGk7DQo+ICsgICAgICAg c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSByaW5nLT5hZGV2Ow0KPg0KPiAgICAgICAgIG1l bXNldCgmdGksIDAsIHNpemVvZihzdHJ1Y3QgYW1kZ3B1X3Rhc2tfaW5mbykpOw0KPg0KPiBAQCAt NDksMTAgKzUwLDEzIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9qb2JfdGltZWRvdXQoc3RydWN0IGRy bV9zY2hlZF9qb2IgKnNfam9iKQ0KPiAgICAgICAgIERSTV9FUlJPUigiUHJvY2VzcyBpbmZvcm1h dGlvbjogcHJvY2VzcyAlcyBwaWQgJWQgdGhyZWFkICVzIHBpZCAlZFxuIiwNCj4gICAgICAgICAg ICAgICAgICAgdGkucHJvY2Vzc19uYW1lLCB0aS50Z2lkLCB0aS50YXNrX25hbWUsIHRpLnBpZCk7 DQo+DQo+IC0gICAgICAgaWYgKGFtZGdwdV9kZXZpY2Vfc2hvdWxkX3JlY292ZXJfZ3B1KHJpbmct PmFkZXYpKQ0KPiArICAgICAgIGlmIChhbWRncHVfZGV2aWNlX3Nob3VsZF9yZWNvdmVyX2dwdShy aW5nLT5hZGV2KSkgew0KPiAgICAgICAgICAgICAgICAgYW1kZ3B1X2RldmljZV9ncHVfcmVjb3Zl cihyaW5nLT5hZGV2LCBqb2IpOw0KPiAtICAgICAgIGVsc2UNCj4gKyAgICAgICB9IGVsc2Ugew0K PiAgICAgICAgICAgICAgICAgZHJtX3NjaGVkX3N1c3BlbmRfdGltZW91dCgmcmluZy0+c2NoZWQp Ow0KPiArICAgICAgICAgICAgICAgaWYgKGFtZGdwdV9zcmlvdl92ZihhZGV2KSkNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgYWRldi0+dmlydC50ZHJfZGVidWcgPSB0cnVlOw0KPiArICAgICAg IH0NCj4gIH0NCj4NCj4gIGludCBhbWRncHVfam9iX2FsbG9jKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LCB1bnNpZ25lZCBudW1faWJzLCANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMNCj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdmlydC5jDQo+IGluZGV4IDRkMDZjNzkwNjViZi4uZTgyNjY4NDc2NzViIDEwMDY0 NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5jDQo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMNCj4gQEAgLTMzNCwz ICszMzQsMjkgQEAgdm9pZCBhbWRncHVfZGV0ZWN0X3ZpcnR1YWxpemF0aW9uKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICBhZGV2LT52aXJ0LmNh cHMgfD0gQU1ER1BVX1BBU1NUSFJPVUdIX01PREU7DQo+ICAgICAgICAgfQ0KPiAgfQ0KPiArDQo+ ICtib29sIGFtZGdwdV92aXJ0X2Nhbl9hY2Nlc3NfZGVidWdmcyhzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldikgew0KPiArICAgICAgIHJldHVybiBhbWRncHVfc3Jpb3ZfaXNfZGVidWcoYWRldikg PyB0cnVlIDogZmFsc2U7IH0NCj4gKw0KPiAraW50IGFtZGdwdV92aXJ0X2VuYWJsZV9hY2Nlc3Nf ZGVidWdmcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikgew0KPiArICAgICAgIGludCByZXQg PSAwOw0KPiArDQo+ICsgICAgICAgaWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpDQo+ICsgICAg ICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArDQo+ICsgICAgICAgaWYgKGFtZGdwdV92aXJ0X2Nh bl9hY2Nlc3NfZGVidWdmcyhhZGV2KSkNCj4gKyAgICAgICAgICAgICAgIGFkZXYtPnZpcnQuY2Fw cyAmPSB+QU1ER1BVX1NSSU9WX0NBUFNfUlVOVElNRTsNCj4gKyAgICAgICBlbHNlDQo+ICsgICAg ICAgICAgICAgICByZXQgPSAtRVBFUk07DQo+ICsNCj4gKyAgICAgICByZXR1cm4gcmV0Ow0KDQpZ b3UgY2FuIGRyb3AgdGhlIHJldCB2YXJpYWJsZSBpbiB0aGlzIGZ1bmN0aW9uIGFuZCBqdXN0IHJl dHVybiBjb25zdGFudHMgZm9yIGVhY2ggY2FzZS4gIEUuZy4sDQoNCj4gKyAgICAgICBpZiAoIWFt ZGdwdV9zcmlvdl92ZihhZGV2KSkNCj4gKyAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiArDQo+ ICsgICAgICAgaWYgKGFtZGdwdV92aXJ0X2Nhbl9hY2Nlc3NfZGVidWdmcyhhZGV2KSkNCj4gKyAg ICAgICAgICAgICAgIGFkZXYtPnZpcnQuY2FwcyAmPSB+QU1ER1BVX1NSSU9WX0NBUFNfUlVOVElN RTsNCj4gKyAgICAgICBlbHNlDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVQRVJNOw0KPiAr DQo+ICsgICAgICAgcmV0dXJuIDA7DQoNCk90aGVyIHRoYW4gdGhhdCB0aGUgcGF0Y2ggbG9va3Mg Z29vZCB0byBtZS4NCkFja2VkLWJ5OiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFt ZC5jb20+DQoNCkFsZXgNCg0KPiArfQ0KPiArDQo+ICt2b2lkIGFtZGdwdV92aXJ0X2Rpc2FibGVf YWNjZXNzX2RlYnVnZnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpIHsNCj4gKyAgICAgICBp ZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQ0KPiArICAgICAgICAgICAgICAgYWRldi0+dmlydC5j YXBzIHw9IEFNREdQVV9TUklPVl9DQVBTX1JVTlRJTUU7IH0NCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmgNCj4gYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdmlydC5oDQo+IGluZGV4IGY2YWUzYzY1NjMwNC4uOGYyMGU2ZGJk N2E5IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmly dC5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmgNCj4g QEAgLTI2NSw2ICsyNjUsNyBAQCBzdHJ1Y3QgYW1kZ3B1X3ZpcnQgew0KPiAgICAgICAgIHVpbnQz Ml90IGdpbV9mZWF0dXJlOw0KPiAgICAgICAgIHVpbnQzMl90IHJlZ19hY2Nlc3NfbW9kZTsNCj4g ICAgICAgICBpbnQgcmVxX2luaXRfZGF0YV92ZXI7DQo+ICsgICAgICAgYm9vbCB0ZHJfZGVidWc7 DQo+ICB9Ow0KPg0KPiAgI2RlZmluZSBhbWRncHVfc3Jpb3ZfZW5hYmxlZChhZGV2KSBcDQo+IEBA IC0yOTYsNiArMjk3LDggQEAgc3RhdGljIGlubGluZSBib29sIGlzX3ZpcnR1YWxfbWFjaGluZSh2 b2lkKQ0KPg0KPiAgI2RlZmluZSBhbWRncHVfc3Jpb3ZfaXNfcHBfb25lX3ZmKGFkZXYpIFwNCj4g ICAgICAgICAoKGFkZXYpLT52aXJ0LmdpbV9mZWF0dXJlICYgQU1ER0lNX0ZFQVRVUkVfUFBfT05F X1ZGKQ0KPiArI2RlZmluZSBhbWRncHVfc3Jpb3ZfaXNfZGVidWcoYWRldikgXA0KPiArICAgICAg ICgoIWFkZXYtPmluX2dwdV9yZXNldCkgJiYgYWRldi0+dmlydC50ZHJfZGVidWcpDQo+DQo+ICBi b29sIGFtZGdwdV92aXJ0X21taW9fYmxvY2tlZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7 ICB2b2lkIA0KPiBhbWRncHVfdmlydF9pbml0X3NldHRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpOyBAQCAtMzE0LDQgKzMxNyw4IA0KPiBAQCBpbnQgYW1kZ3B1X3ZpcnRfZndfcmVzZXJ2 ZV9nZXRfY2hlY2tzdW0odm9pZCAqb2JqLCB1bnNpZ25lZCBsb25nIG9ial9zaXplLA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNoa3N1bSk7 ICB2b2lkIA0KPiBhbWRncHVfdmlydF9pbml0X2RhdGFfZXhjaGFuZ2Uoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpOyAgdm9pZCANCj4gYW1kZ3B1X2RldGVjdF92aXJ0dWFsaXphdGlvbihzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7DQo+ICsNCj4gK2Jvb2wgYW1kZ3B1X3ZpcnRfY2FuX2Fj Y2Vzc19kZWJ1Z2ZzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsgaW50IA0KPiArYW1kZ3B1 X3ZpcnRfZW5hYmxlX2FjY2Vzc19kZWJ1Z2ZzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsg dm9pZCANCj4gK2FtZGdwdV92aXJ0X2Rpc2FibGVfYWNjZXNzX2RlYnVnZnMoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpOw0KPiAgI2VuZGlmDQo+IC0tDQo+IDIuMTcuMQ0KPg0KPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBhbWQtZ2Z4IG1haWxp bmcgbGlzdA0KPiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBodHRwczovL25hbTEx LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMlM0ElMkYlMkZsaXN0 DQo+IHMuZnJlZWRlc2t0b3Aub3JnJTJGbWFpbG1hbiUyRmxpc3RpbmZvJTJGYW1kLWdmeCZhbXA7 ZGF0YT0wMiU3QzAxJTdDWWkNCj4gbnRpYW4uVGFvJTQwYW1kLmNvbSU3Q2VmM2Y1MzEzMTE2YzRm ZDk4MGYzMDhkN2RjOTlhNGMzJTdDM2RkODk2MWZlNDg4NA0KPiBlNjA4ZTExYTgyZDk5NGUxODNk JTdDMCU3QzAlN0M2MzcyMjA0MjQ3NzQ4MTM5NzgmYW1wO3NkYXRhPXFaejNTSzIlMkYlDQo+IDJG cE43SlNmUU5QRzhBaXlpdkVJQlBuY09oeEVCTTJXQjVSZyUzRCZhbXA7cmVzZXJ2ZWQ9MA0KX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmFtZC1nZnggbWFp bGluZyBsaXN0DQphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KaHR0cHM6Ly9uYW0xMS5z YWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHBzJTNBJTJGJTJGbGlzdHMu ZnJlZWRlc2t0b3Aub3JnJTJGbWFpbG1hbiUyRmxpc3RpbmZvJTJGYW1kLWdmeCZhbXA7ZGF0YT0w MiU3QzAxJTdDbW9uay5saXUlNDBhbWQuY29tJTdDODlhNTY5ODRlY2UyNDkzMzM0NzgwOGQ3ZGM5 OWU0ZjIlN0MzZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3MjIw NDI2MTk3NjkyNzA1JmFtcDtzZGF0YT1YNnRKU3ljUk12ZmRNZ1NoM3oxZzFxcVBsQ2ZsMGxRMXl0 VFIwZm5Rcld3JTNEJmFtcDtyZXNlcnZlZD0wDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2FtZC1nZngK