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=-12.8 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 D8429C433E0 for ; Tue, 4 Aug 2020 11:41:14 +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 AF0D320738 for ; Tue, 4 Aug 2020 11:41:14 +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="JUAOM55q" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AF0D320738 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 299C66E46D; Tue, 4 Aug 2020 11:41:14 +0000 (UTC) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2065.outbound.protection.outlook.com [40.107.236.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 473CD6E46B for ; Tue, 4 Aug 2020 11:41:12 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cYKyAh6dAvHYrB1a7uGKiX+CiMzgXy6ywOI4RWVjSCKoebm4CulqhtVyONbgXHDk1br5X2wx3lzmwThORsL6CedWzoRv47DnmRmnpnl5FBe8wmpFl2WGiTtmRR0y/F4UjoHosANkYzpX0Ysx30ekzTc72PmtnLgg6SigtDWoXVQoYqL0edgipPc9V5bfaC4GUus2MOXfdjwvXuvLhMMHISzox6afQllG077Z64RywnpX/TU6RauTKJsIjDZbUE3kRw/lVshirJhbddKxL2/QdD9qFQJc4fHCAn3sA7pOtLg6B/rDc09zANC8iiJ6ZUtsKF6VceQ6p9wuJJSWZ5qZZA== 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=wY/h27qe9rhs8BVqwap1d4yT2h261Ieap3Ml9FdSLNM=; b=ADQ4jdDPV1M/YVSD2xPpE4e0bIPUEtkOfnmlvpjSmPRfU1i4s3omifmto6699oAH3Ma9HO2zb+ljPyrVrsezkCcn57iH+kaOk/FDb8b8tTS1ddYEuFYa1d09B+GbgPYBXeJO+OIBMa2588VgWaDIDBR6lt9TgBwAPYCRieB7huacz6BT8t2iS+0D363Moz2o9Q78JENDeqjPOYOtvvRAQynm+gNQD5/5GBKq4K+0GrPESyKj0ZtR522iOtr/fCcJvvYBs2qZE7xV1P1Acc2KH1c4kolfkF5PQLP64pFmBoVTkTfkAiHtPdx9YevFXoWr6+u/6yCRZSgKH+1DiUtotA== 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=wY/h27qe9rhs8BVqwap1d4yT2h261Ieap3Ml9FdSLNM=; b=JUAOM55qOXoPzID/MOOFUHyF9/pigaKmqGlGqh614Hzh22nY8C+f0znoKRneYnlo90pxps52e3t2Zpg5or3XubB9Dbs4U2Llq2s0eUsHRvOT7Ip+glMU5BWwlKOm9Z0/shfNVYd6OcGXAnaeP+AuCgWI9IloCvx2cogYizHRYx0= Authentication-Results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by MN2PR12MB4111.namprd12.prod.outlook.com (2603:10b6:208:1de::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3239.20; Tue, 4 Aug 2020 11:41:10 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::a16e:8812:b4c0:918d]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::a16e:8812:b4c0:918d%6]) with mapi id 15.20.3239.022; Tue, 4 Aug 2020 11:41:09 +0000 Subject: Re: [PATCH 58/59] drm/ttm: rename ttm_mem_type_manager -> ttm_resource_manager. To: Dave Airlie , dri-devel@lists.freedesktop.org References: <20200804025632.3868079-1-airlied@gmail.com> <20200804025632.3868079-59-airlied@gmail.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <61b2f343-5398-91f3-df64-fdae8f5b7f90@amd.com> Date: Tue, 4 Aug 2020 13:41:04 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <20200804025632.3868079-59-airlied@gmail.com> Content-Language: en-US X-ClientProxiedBy: FR2P281CA0024.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::11) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7] (2a02:908:1252:fb60:be8a:bd56:1f94:86e7) by FR2P281CA0024.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3261.12 via Frontend Transport; Tue, 4 Aug 2020 11:41:08 +0000 X-Originating-IP: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 0cbbe833-b9b5-4ebc-8d4d-08d8386b47f8 X-MS-TrafficTypeDiagnostic: MN2PR12MB4111: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: U2AmPcDBC7dw3HGEM9t/eC35lggb+/Lhr+DLhMvyslEtC2+ERonUELYDFRaBwdUWYzFPVXXoPZupSa/FklCBZFm1SK6lZ6i0seANUrOW8XEYTtz2B5myTMk6MqnDfXHG/Eik8/IvxH9PcB1N3ia+Ow99bM5iyaEfujE8B0htPHEPs/8Na4KQkqKCiXo6PaY6B6Gf2lgLYp6SHgjIEC3gRCjnWRzY7WgBgA8x5d3wttc1SM+jsn3GnkQUcplsLnWpVlohkHcLH0i8LmrnMuOFsRTPlleMiriIyjiic5+L+cc0CSwd3n7qHQfw0d5840FMcBBqVR/MwysFdFTIVBxd86QybElyWDveihb34YJx7/bZqFnk5P49iFMw3EYz2ab8 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3775.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(376002)(396003)(39860400002)(346002)(136003)(30864003)(4326008)(8936002)(31696002)(66556008)(66476007)(8676002)(5660300002)(36756003)(66946007)(2616005)(31686004)(2906002)(6666004)(478600001)(86362001)(6486002)(316002)(52116002)(16526019)(186003)(83380400001)(66574015)(43740500002)(579004)(559001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: FW4vx0iG/ocENgEUrIiRx9he4Hxc79IFUYBinufZJ1dj2Jy2YB1uLPXJErwFuoBLmOvywJPpr92luxxTYYhLxBwWnSe+6hgu4RPlqPqwgpWAz2d9PQWjEOUMPRhkc2m20rempD6OH9SJ5r1A3CRQFw2VDCe+N/BkgBVyHeEBaYdrnYaeVB3TDwA1w7wl7AoUrOGRgSgquSIOLHSjIgLNe/jiHgfyaUWGHQzXk2n5wnvo7f7bp5eQ0nJXuSg07it35D71xJGDjjPWOCVwSiabBjpqtlTSrRw5GBJVZIC4ogUJagM7101oQrQzZxwC+jdxYWePeZ5WQyq2r9v6sHKXpSMaM+W+6z0+3wGFWVZ+qOKESuU6SM/49m/YsrQKmciMtPQbeVMgpMecAxbLaSzGBVQ8HFdl4rLmZgNEPPAYxpvsWrIAgE1i+0pcsszCbKT0HpdU6GmEKfxio2OZU0tlri8sshSLoly8pWGIsTM6xcm+4KbfVvEGbIlkLAE1wIlMio1gQp3GEvTFcBfA1gh+MxaBODchY+zwSUYrWUmDuJpUAYZmanXU3S7tNFnr71GKUbl7D/TVng7M70jQKX5tkE5QWR3FxvudZJL6mhUG8ZpFiwv/NI91/9XdBXZgkJ7WshqpIjinqTxHfU5hfw5y/O+yQdRjUn7iuUNNa/ct46/KQpSwS0uuI9YfK++tEHmGfur/yNfIvon7qKTTz4XqPg== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0cbbe833-b9b5-4ebc-8d4d-08d8386b47f8 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2020 11:41:09.7450 (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: CtguFXNJW2a334a2VsU+QGq7dIn1dEEVuZ1GXbtUKTDWsOFhEgHCmSeA2MXYZsj+ X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4111 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: sroland@vmware.com, linux-graphics-maintainer@vmware.com, bskeggs@redhat.com, kraxel@redhat.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QW0gMDQuMDguMjAgdW0gMDQ6NTYgc2NocmllYiBEYXZlIEFpcmxpZToKPiBGcm9tOiBEYXZlIEFp cmxpZSA8YWlybGllZEByZWRoYXQuY29tPgo+Cj4gVGhpcyBuYW1lIG1ha2VzIGEgbG90IG1vcmUg c2Vuc2UsIHNpbmNlIHRoZXNlIGFyZSBhYm91dCBtYW5hZ2luZwo+IGRyaXZlciByZXNvdXJjZXMg cmF0aGVyIHRoYW4ganVzdCBtZW1vcnkgcmFuZ2VzLgo+Cj4gU2lnbmVkLW9mZi1ieTogRGF2ZSBB aXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KCkFja2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxj aHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2FtZGtmZC5jICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9jcy5jICAgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZ3R0X21nci5jICAgfCAzNiArKysrKy0tLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMgICAgICAgfCAgNCArLQo+ICAgZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyAgICAgICB8ICA0ICstCj4gICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmggICAgICAgfCAgOCArLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92cmFtX21nci5jICB8IDM2ICsrKysrLS0tLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgICAgICAgICB8ICA0ICst Cj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5jICAgICAgICAgfCA0NiAr KysrKystLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5oICAg ICAgICAgfCAgNiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMgICAgICAgICAg ICAgICAgIHwgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jICAg ICAgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyAg ICAgICAgICAgfCAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyAgICAgICAg ICAgICAgICAgIHwgNjYgKysrKysrKysrLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fYm9fdXRpbC5jICAgICAgICAgICAgIHwgMjYgKysrKy0tLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX2JvX3ZtLmMgICAgICAgICAgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9yYW5nZV9tYW5hZ2VyLmMgICAgICAgfCAyOCArKysrLS0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgICAgICAgICAgIHwgMjAgKysrLS0tCj4g ICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9nbXJpZF9tYW5hZ2VyLmMgfCAyNiArKysr LS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdGhwLmMgICAgICAgICAgIHwg MjYgKysrKy0tLS0KPiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmggICAgICAgICAgICAg ICAgICB8ICA2ICstCj4gICBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oICAgICAgICAg ICAgICAgfCA2MCArKysrKysrKy0tLS0tLS0tLQo+ICAgMjMgZmlsZXMgY2hhbmdlZCwgMjEwIGlu c2VydGlvbnMoKyksIDIxMCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfYW1ka2ZkLmMKPiBpbmRleCBlMjRmNDIxZTU1NTMuLjQ3OGY2NzQ5OGExNyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmMKPiBAQCAt NTE3LDcgKzUxNyw3IEBAIGludCBhbWRncHVfYW1ka2ZkX2dldF9kbWFidWZfaW5mbyhzdHJ1Y3Qg a2dkX2RldiAqa2dkLCBpbnQgZG1hX2J1Zl9mZCwKPiAgIHVpbnQ2NF90IGFtZGdwdV9hbWRrZmRf Z2V0X3ZyYW1fdXNhZ2Uoc3RydWN0IGtnZF9kZXYgKmtnZCkKPiAgIHsKPiAgIAlzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWtnZDsKPiAtCXN0cnVj dCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqdnJhbV9tYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZhZGV2 LT5tbWFuLmJkZXYsIFRUTV9QTF9WUkFNKTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdl ciAqdnJhbV9tYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZhZGV2LT5tbWFuLmJkZXYsIFRUTV9QTF9W UkFNKTsKPiAgIAo+ICAgCXJldHVybiBhbWRncHVfdnJhbV9tZ3JfdXNhZ2UodnJhbV9tYW4pOwo+ ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3Mu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4gaW5kZXggOTgyOTY0 MGUxNzY5Li5lY2QwNTE5NzZiY2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2NzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfY3MuYwo+IEBAIC0yOTksNyArMjk5LDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2NzX2dldF90 aHJlc2hvbGRfZm9yX21vdmVzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAgewo+ICAg CXM2NCB0aW1lX3VzLCBpbmNyZW1lbnRfdXM7Cj4gICAJdTY0IGZyZWVfdnJhbSwgdG90YWxfdnJh bSwgdXNlZF92cmFtOwo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICp2cmFtX21hbiA9 IHR0bV9tYW5hZ2VyX3R5cGUoJmFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1ZSQU0pOwo+ICsJc3Ry dWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICp2cmFtX21hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmFk ZXYtPm1tYW4uYmRldiwgVFRNX1BMX1ZSQU0pOwo+ICAgCS8qIEFsbG93IGEgbWF4aW11bSBvZiAy MDAgYWNjdW11bGF0ZWQgbXMuIFRoaXMgaXMgYmFzaWNhbGx5IHBlci1JQgo+ICAgCSAqIHRocm90 dGxpbmcuCj4gICAJICoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2d0dF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9ndHRf bWdyLmMKPiBpbmRleCA3MTQ2MWQ2NTJmY2MuLjhiNjAwYjgwNGYzNCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ3R0X21nci5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2d0dF9tZ3IuYwo+IEBAIC0yNSwxMyArMjUsMTMg QEAKPiAgICNpbmNsdWRlICJhbWRncHUuaCIKPiAgIAo+ICAgc3RydWN0IGFtZGdwdV9ndHRfbWdy IHsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciBtYW5hZ2VyOwo+ICsJc3RydWN0IHR0 bV9yZXNvdXJjZV9tYW5hZ2VyIG1hbmFnZXI7Cj4gICAJc3RydWN0IGRybV9tbSBtbTsKPiAgIAlz cGlubG9ja190IGxvY2s7Cj4gICAJYXRvbWljNjRfdCBhdmFpbGFibGU7Cj4gICB9Owo+ICAgCj4g LXN0YXRpYyBpbmxpbmUgc3RydWN0IGFtZGdwdV9ndHRfbWdyICp0b19ndHRfbWdyKHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBhbWRncHVf Z3R0X21nciAqdG9fZ3R0X21ncihzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbikKPiAg IHsKPiAgIAlyZXR1cm4gY29udGFpbmVyX29mKG1hbiwgc3RydWN0IGFtZGdwdV9ndHRfbWdyLCBt YW5hZ2VyKTsKPiAgIH0KPiBAQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgc3NpemVfdCBhbWRncHVf bWVtX2luZm9fZ3R0X3RvdGFsX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAo+ICAgewo+ICAgCXN0 cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gICAJc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2 LCBUVE1fUExfVFQpOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1f bWFuYWdlcl90eXBlKCZhZGV2LT5tbWFuLmJkZXYsIFRUTV9QTF9UVCk7Cj4gICAJcmV0dXJuIHNu cHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJWxsdVxuIiwKPiAgIAkJCW1hbi0+c2l6ZSAqIFBBR0Vf U0laRSk7Cj4gICB9Cj4gQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGljIHNzaXplX3QgYW1kZ3B1X21l bV9pbmZvX2d0dF91c2VkX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAo+ICAgewo+ICAgCXN0cnVj dCBkcm1fZGV2aWNlICpkZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gICAJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCB0dG1fbWVt X3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBU VE1fUExfVFQpOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFu YWdlcl90eXBlKCZhZGV2LT5tbWFuLmJkZXYsIFRUTV9QTF9UVCk7Cj4gICAJcmV0dXJuIHNucHJp bnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJWxsdVxuIiwKPiAgIAkJCWFtZGdwdV9ndHRfbWdyX3VzYWdl KG1hbikpOwo+ICAgfQo+IEBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBERVZJQ0VfQVRUUihtZW1f aW5mb19ndHRfdG90YWwsIFNfSVJVR08sCj4gICBzdGF0aWMgREVWSUNFX0FUVFIobWVtX2luZm9f Z3R0X3VzZWQsIFNfSVJVR08sCj4gICAJICAgICAgICAgICBhbWRncHVfbWVtX2luZm9fZ3R0X3Vz ZWRfc2hvdywgTlVMTCk7Cj4gICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlcl9mdW5jIGFtZGdwdV9ndHRfbWdyX2Z1bmM7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXJfZnVuYyBhbWRncHVfZ3R0X21ncl9mdW5jOwo+ICAgLyoqCj4g ICAgKiBhbWRncHVfZ3R0X21ncl9pbml0IC0gaW5pdCBHVFQgbWFuYWdlciBhbmQgRFJNIE1NCj4g ICAgKgo+IEBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXJfZnVuYyBhbWRncHVfZ3R0X21ncl9mdW5jOwo+ICAgICovCj4gICBpbnQgYW1kZ3B1 X2d0dF9tZ3JfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDY0X3QgZ3R0X3Np emUpCj4gICB7Cj4gLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbjsKPiArCXN0cnVj dCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ICAgCXN0cnVjdCBhbWRncHVfZ3R0X21nciAq bWdyOwo+ICAgCXVpbnQ2NF90IHN0YXJ0LCBzaXplOwo+ICAgCWludCByZXQ7Cj4gQEAgLTEwOCw3 ICsxMDgsNyBAQCBpbnQgYW1kZ3B1X2d0dF9tZ3JfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwgdWludDY0X3QgZ3R0X3NpemUpCj4gICAJbWFuLT5hdmFpbGFibGVfY2FjaGluZyA9IFRU TV9QTF9NQVNLX0NBQ0hJTkc7Cj4gICAJbWFuLT5kZWZhdWx0X2NhY2hpbmcgPSBUVE1fUExfRkxB R19DQUNIRUQ7Cj4gICAKPiAtCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX2luaXQobWFuLCBndHRfc2l6 ZSA+PiBQQUdFX1NISUZUKTsKPiArCXR0bV9yZXNvdXJjZV9tYW5hZ2VyX2luaXQobWFuLCBndHRf c2l6ZSA+PiBQQUdFX1NISUZUKTsKPiAgIAo+ICAgCXN0YXJ0ID0gQU1ER1BVX0dUVF9NQVhfVFJB TlNGRVJfU0laRSAqIEFNREdQVV9HVFRfTlVNX1RSQU5TRkVSX1dJTkRPV1M7Cj4gICAJc2l6ZSA9 IChhZGV2LT5nbWMuZ2FydF9zaXplID4+IFBBR0VfU0hJRlQpIC0gc3RhcnQ7Cj4gQEAgLTEyOCw3 ICsxMjgsNyBAQCBpbnQgYW1kZ3B1X2d0dF9tZ3JfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwgdWludDY0X3QgZ3R0X3NpemUpCj4gICAJfQo+ICAgCj4gICAJdHRtX3NldF9kcml2ZXJf bWFuYWdlcigmYWRldi0+bW1hbi5iZGV2LCBUVE1fUExfVFQsICZtZ3ItPm1hbmFnZXIpOwo+IC0J dHRtX21lbV90eXBlX21hbmFnZXJfc2V0X3VzZWQobWFuLCB0cnVlKTsKPiArCXR0bV9yZXNvdXJj ZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgdHJ1ZSk7Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAK PiBAQCAtMTQyLDEzICsxNDIsMTMgQEAgaW50IGFtZGdwdV9ndHRfbWdyX2luaXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQ2NF90IGd0dF9zaXplKQo+ICAgICovCj4gICB2b2lkIGFt ZGdwdV9ndHRfbWdyX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICB7Cj4gLQlz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmFkZXYt Pm1tYW4uYmRldiwgVFRNX1BMX1RUKTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAq bWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBUVE1fUExfVFQpOwo+ICAg CXN0cnVjdCBhbWRncHVfZ3R0X21nciAqbWdyID0gdG9fZ3R0X21ncihtYW4pOwo+ICAgCWludCBy ZXQ7Cj4gICAKPiAtCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ ICsJdHRtX3Jlc291cmNlX21hbmFnZXJfc2V0X3VzZWQobWFuLCBmYWxzZSk7Cj4gICAKPiAtCXJl dCA9IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4oJmFkZXYtPm1tYW4uYmRl diwgbWFuKTsKPiArCXJldCA9IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4o JmFkZXYtPm1tYW4uYmRldiwgbWFuKTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm47Cj4gICAK PiBAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgYW1kZ3B1X2d0dF9tZ3JfZmluaShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKPiAgIAlkZXZpY2VfcmVtb3ZlX2ZpbGUoYWRldi0+ZGV2LCAmZGV2 X2F0dHJfbWVtX2luZm9fZ3R0X3RvdGFsKTsKPiAgIAlkZXZpY2VfcmVtb3ZlX2ZpbGUoYWRldi0+ ZGV2LCAmZGV2X2F0dHJfbWVtX2luZm9fZ3R0X3VzZWQpOwo+ICAgCj4gLQl0dG1fbWVtX3R5cGVf bWFuYWdlcl9jbGVhbnVwKG1hbik7Cj4gKwl0dG1fcmVzb3VyY2VfbWFuYWdlcl9jbGVhbnVwKG1h bik7Cj4gICAJdHRtX3NldF9kcml2ZXJfbWFuYWdlcigmYWRldi0+bW1hbi5iZGV2LCBUVE1fUExf VFQsIE5VTEwpOwo+ICAgCWtmcmVlKG1ncik7Cj4gICB9Cj4gQEAgLTE4Niw3ICsxODYsNyBAQCBi b29sIGFtZGdwdV9ndHRfbWdyX2hhc19nYXJ0X2FkZHIoc3RydWN0IHR0bV9tZW1fcmVnICptZW0p Cj4gICAgKgo+ICAgICogRHVtbXksIGFsbG9jYXRlIHRoZSBub2RlIGJ1dCBubyBzcGFjZSBmb3Ig aXQgeWV0Lgo+ICAgICovCj4gLXN0YXRpYyBpbnQgYW1kZ3B1X2d0dF9tZ3JfbmV3KHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ICtzdGF0aWMgaW50IGFtZGdwdV9ndHRfbWdyX25l dyhzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiAgIAkJCSAgICAgIHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqdGJvLAo+ICAgCQkJICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFj ZSAqcGxhY2UsCj4gICAJCQkgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiBAQCAtMjQ5 LDcgKzI0OSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2d0dF9tZ3JfbmV3KHN0cnVjdCB0dG1fbWVt X3R5cGVfbWFuYWdlciAqbWFuLAo+ICAgICoKPiAgICAqIEZyZWUgdGhlIGFsbG9jYXRlZCBHVFQg YWdhaW4uCj4gICAgKi8KPiAtc3RhdGljIHZvaWQgYW1kZ3B1X2d0dF9tZ3JfZGVsKHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ICtzdGF0aWMgdm9pZCBhbWRncHVfZ3R0X21ncl9k ZWwoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gICAJCQkgICAgICAgc3RydWN0 IHR0bV9tZW1fcmVnICptZW0pCj4gICB7Cj4gICAJc3RydWN0IGFtZGdwdV9ndHRfbWdyICptZ3Ig PSB0b19ndHRfbWdyKG1hbik7Cj4gQEAgLTI3Miw3ICsyNzIsNyBAQCBzdGF0aWMgdm9pZCBhbWRn cHVfZ3R0X21ncl9kZWwoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gICAgKgo+ ICAgICogUmV0dXJuIGhvdyBtYW55IGJ5dGVzIGFyZSB1c2VkIGluIHRoZSBHVFQgZG9tYWluCj4g ICAgKi8KPiAtdWludDY0X3QgYW1kZ3B1X2d0dF9tZ3JfdXNhZ2Uoc3RydWN0IHR0bV9tZW1fdHlw ZV9tYW5hZ2VyICptYW4pCj4gK3VpbnQ2NF90IGFtZGdwdV9ndHRfbWdyX3VzYWdlKHN0cnVjdCB0 dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuKQo+ICAgewo+ICAgCXN0cnVjdCBhbWRncHVfZ3R0X21n ciAqbWdyID0gdG9fZ3R0X21ncihtYW4pOwo+ICAgCXM2NCByZXN1bHQgPSBtYW4tPnNpemUgLSBh dG9taWM2NF9yZWFkKCZtZ3ItPmF2YWlsYWJsZSk7Cj4gQEAgLTI4MCw3ICsyODAsNyBAQCB1aW50 NjRfdCBhbWRncHVfZ3R0X21ncl91c2FnZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1h bikKPiAgIAlyZXR1cm4gKHJlc3VsdCA+IDAgPyByZXN1bHQgOiAwKSAqIFBBR0VfU0laRTsKPiAg IH0KPiAgIAo+IC1pbnQgYW1kZ3B1X2d0dF9tZ3JfcmVjb3ZlcihzdHJ1Y3QgdHRtX21lbV90eXBl X21hbmFnZXIgKm1hbikKPiAraW50IGFtZGdwdV9ndHRfbWdyX3JlY292ZXIoc3RydWN0IHR0bV9y ZXNvdXJjZV9tYW5hZ2VyICptYW4pCj4gICB7Cj4gICAJc3RydWN0IGFtZGdwdV9ndHRfbWdyICpt Z3IgPSB0b19ndHRfbWdyKG1hbik7Cj4gICAJc3RydWN0IGFtZGdwdV9ndHRfbm9kZSAqbm9kZTsK PiBAQCAtMzA3LDcgKzMwNyw3IEBAIGludCBhbWRncHVfZ3R0X21ncl9yZWNvdmVyKHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQo+ICAgICoKPiAgICAqIER1bXAgdGhlIHRhYmxlIGNv bnRlbnQgdXNpbmcgcHJpbnRrLgo+ICAgICovCj4gLXN0YXRpYyB2b2lkIGFtZGdwdV9ndHRfbWdy X2RlYnVnKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ICtzdGF0aWMgdm9pZCBh bWRncHVfZ3R0X21ncl9kZWJ1ZyhzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiAg IAkJCQkgc3RydWN0IGRybV9wcmludGVyICpwcmludGVyKQo+ICAgewo+ICAgCXN0cnVjdCBhbWRn cHVfZ3R0X21nciAqbWdyID0gdG9fZ3R0X21ncihtYW4pOwo+IEBAIC0zMjEsNyArMzIxLDcgQEAg c3RhdGljIHZvaWQgYW1kZ3B1X2d0dF9tZ3JfZGVidWcoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5h Z2VyICptYW4sCj4gICAJCSAgIGFtZGdwdV9ndHRfbWdyX3VzYWdlKG1hbikgPj4gMjApOwo+ICAg fQo+ICAgCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyBh bWRncHVfZ3R0X21ncl9mdW5jID0gewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHR0bV9yZXNvdXJj ZV9tYW5hZ2VyX2Z1bmMgYW1kZ3B1X2d0dF9tZ3JfZnVuYyA9IHsKPiAgIAkuZ2V0X25vZGUgPSBh bWRncHVfZ3R0X21ncl9uZXcsCj4gICAJLnB1dF9ub2RlID0gYW1kZ3B1X2d0dF9tZ3JfZGVsLAo+ ICAgCS5kZWJ1ZyA9IGFtZGdwdV9ndHRfbWdyX2RlYnVnCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9rbXMuYwo+IGluZGV4IDU5NDY4N2NjOTlhYy4uMjc2M2JjYTE2M2UzIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYwo+IEBAIC02MzEsOSArNjMx LDkgQEAgc3RhdGljIGludCBhbWRncHVfaW5mb19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUKPiAgIAl9Cj4gICAJY2FzZSBBTURHUFVfSU5G T19NRU1PUlk6IHsKPiAgIAkJc3RydWN0IGRybV9hbWRncHVfbWVtb3J5X2luZm8gbWVtOwo+IC0J CXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqdnJhbV9tYW4gPQo+ICsJCXN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlciAqdnJhbV9tYW4gPQo+ICAgCQkJdHRtX21hbmFnZXJfdHlwZSgmYWRl di0+bW1hbi5iZGV2LCBUVE1fUExfVlJBTSk7Cj4gLQkJc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5h Z2VyICpndHRfbWFuID0KPiArCQlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKmd0dF9tYW4g PQo+ICAgCQkJdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBUVE1fUExfVFQpOwo+ ICAgCQltZW1zZXQoJm1lbSwgMCwgc2l6ZW9mKG1lbSkpOwo+ICAgCQltZW0udnJhbS50b3RhbF9o ZWFwX3NpemUgPSBhZGV2LT5nbWMucmVhbF92cmFtX3NpemU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+IGluZGV4IGNlZDQxOGNiYTJmNy4uY2U5OGRmNWIw YzIxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmpl Y3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwo+ IEBAIC00NDIsNyArNDQyLDcgQEAgdm9pZCBhbWRncHVfYm9fZnJlZV9rZXJuZWwoc3RydWN0IGFt ZGdwdV9ibyAqKmJvLCB1NjQgKmdwdV9hZGRyLAo+ICAgc3RhdGljIGJvb2wgYW1kZ3B1X2JvX3Zh bGlkYXRlX3NpemUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAJCQkJCSAgdW5zaWdu ZWQgbG9uZyBzaXplLCB1MzIgZG9tYWluKQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9t YW5hZ2VyICptYW4gPSBOVUxMOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4g PSBOVUxMOwo+ICAgCj4gICAJLyoKPiAgIAkgKiBJZiBHVFQgaXMgcGFydCBvZiByZXF1ZXN0ZWQg ZG9tYWlucyB0aGUgY2hlY2sgbXVzdCBzdWNjZWVkIHRvCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV90dG0uYwo+IGluZGV4IGIxOTBkNTBkYzliYi4uY2FlN2VhZGE3MjE1IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+IEBAIC0yMDMwLDcgKzIw MzAsNyBAQCB2b2lkIGFtZGdwdV90dG1fZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK PiAgICAqLwo+ICAgdm9pZCBhbWRncHVfdHRtX3NldF9idWZmZXJfZnVuY3Nfc3RhdHVzKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LCBib29sIGVuYWJsZSkKPiAgIHsKPiAtCXN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2 LCBUVE1fUExfVlJBTSk7Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0 bV9tYW5hZ2VyX3R5cGUoJmFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1ZSQU0pOwo+ICAgCXVpbnQ2 NF90IHNpemU7Cj4gICAJaW50IHI7Cj4gICAKPiBAQCAtMjI1Miw3ICsyMjUyLDcgQEAgc3RhdGlj IGludCBhbWRncHVfbW1fZHVtcF90YWJsZShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEp Cj4gICAJdW5zaWduZWQgdHRtX3BsID0gKHVpbnRwdHJfdClub2RlLT5pbmZvX2VudC0+ZGF0YTsK PiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKPiAgIAlzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgdHRt X21lbV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmFkZXYtPm1tYW4uYmRl diwgdHRtX3BsKTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21h bmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCB0dG1fcGwpOwo+ICAgCXN0cnVjdCBkcm1fcHJp bnRlciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gICAKPiAgIAltYW4tPmZ1bmMtPmRl YnVnKG1hbiwgJnApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdHRtLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKPiBp bmRleCBjMDFmZGIzZjA0NTguLjNkYjI5YWUxZjgwMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdHRtLmgKPiBAQCAtNzMsOCArNzMsOCBAQCBpbnQgYW1kZ3B1X3ZyYW1f bWdyX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+ICAgdm9pZCBhbWRncHVfdnJh bV9tZ3JfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4gICAKPiAgIGJvb2wgYW1k Z3B1X2d0dF9tZ3JfaGFzX2dhcnRfYWRkcihzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSk7Cj4gLXVp bnQ2NF90IGFtZGdwdV9ndHRfbWdyX3VzYWdlKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAq bWFuKTsKPiAtaW50IGFtZGdwdV9ndHRfbWdyX3JlY292ZXIoc3RydWN0IHR0bV9tZW1fdHlwZV9t YW5hZ2VyICptYW4pOwo+ICt1aW50NjRfdCBhbWRncHVfZ3R0X21ncl91c2FnZShzdHJ1Y3QgdHRt X3Jlc291cmNlX21hbmFnZXIgKm1hbik7Cj4gK2ludCBhbWRncHVfZ3R0X21ncl9yZWNvdmVyKHN0 cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuKTsKPiAgIAo+ICAgdTY0IGFtZGdwdV92cmFt X21ncl9ib192aXNpYmxlX3NpemUoc3RydWN0IGFtZGdwdV9ibyAqYm8pOwo+ICAgaW50IGFtZGdw dV92cmFtX21ncl9hbGxvY19zZ3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gQEAgLTg2 LDggKzg2LDggQEAgdm9pZCBhbWRncHVfdnJhbV9tZ3JfZnJlZV9zZ3Qoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCj4gICAJCQkgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gICAJCQkgICAg ICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIsCj4gICAJCQkgICAgICBzdHJ1Y3Qgc2dfdGFi bGUgKnNndCk7Cj4gLXVpbnQ2NF90IGFtZGdwdV92cmFtX21ncl91c2FnZShzdHJ1Y3QgdHRtX21l bV90eXBlX21hbmFnZXIgKm1hbik7Cj4gLXVpbnQ2NF90IGFtZGdwdV92cmFtX21ncl92aXNfdXNh Z2Uoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pOwo+ICt1aW50NjRfdCBhbWRncHVf dnJhbV9tZ3JfdXNhZ2Uoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4pOwo+ICt1aW50 NjRfdCBhbWRncHVfdnJhbV9tZ3JfdmlzX3VzYWdlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdl ciAqbWFuKTsKPiAgIAo+ICAgaW50IGFtZGdwdV90dG1faW5pdChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldik7Cj4gICB2b2lkIGFtZGdwdV90dG1fbGF0ZV9pbml0KHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3ZyYW1fbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdnJhbV9t Z3IuYwo+IGluZGV4IDhjYzQ0YzNkMmZkZC4uYjIyN2UzODAwOTRmIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92cmFtX21nci5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZyYW1fbWdyLmMKPiBAQCAtMjksNyArMjksNyBA QAo+ICAgI2luY2x1ZGUgImF0b20uaCIKPiAgIAo+ICAgc3RydWN0IGFtZGdwdV92cmFtX21nciB7 Cj4gLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgbWFuYWdlcjsKPiArCXN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlciBtYW5hZ2VyOwo+ICAgCXN0cnVjdCBkcm1fbW0gbW07Cj4gICAJc3Bp bmxvY2tfdCBsb2NrOwo+ICAgCWF0b21pYzY0X3QgdXNhZ2U7Cj4gQEAgLTM3LDcgKzM3LDcgQEAg c3RydWN0IGFtZGdwdV92cmFtX21nciB7Cj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXY7 Cj4gICB9Owo+ICAgCj4gLXN0YXRpYyBpbmxpbmUgc3RydWN0IGFtZGdwdV92cmFtX21nciAqdG9f dnJhbV9tZ3Ioc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pCj4gK3N0YXRpYyBpbmxp bmUgc3RydWN0IGFtZGdwdV92cmFtX21nciAqdG9fdnJhbV9tZ3Ioc3RydWN0IHR0bV9yZXNvdXJj ZV9tYW5hZ2VyICptYW4pCj4gICB7Cj4gICAJcmV0dXJuIGNvbnRhaW5lcl9vZihtYW4sIHN0cnVj dCBhbWRncHVfdnJhbV9tZ3IsIG1hbmFnZXIpOwo+ICAgfQo+IEBAIC04OSw3ICs4OSw3IEBAIHN0 YXRpYyBzc2l6ZV90IGFtZGdwdV9tZW1faW5mb192cmFtX3VzZWRfc2hvdyhzdHJ1Y3QgZGV2aWNl ICpkZXYsCj4gICB7Cj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRh dGEoZGV2KTsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRkZXYtPmRldl9wcml2 YXRlOwo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90 eXBlKCZhZGV2LT5tbWFuLmJkZXYsIFRUTV9QTF9WUkFNKTsKPiArCXN0cnVjdCB0dG1fcmVzb3Vy Y2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBUVE1f UExfVlJBTSk7Cj4gICAJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJWxsdVxuIiwK PiAgIAkJCWFtZGdwdV92cmFtX21ncl91c2FnZShtYW4pKTsKPiAgIH0KPiBAQCAtMTA3LDcgKzEw Nyw3IEBAIHN0YXRpYyBzc2l6ZV90IGFtZGdwdV9tZW1faW5mb192aXNfdnJhbV91c2VkX3Nob3co c3RydWN0IGRldmljZSAqZGV2LAo+ICAgewo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZGV2ID0g ZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBk ZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0g dHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBUVE1fUExfVlJBTSk7Cj4gKwlzdHJ1 Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmFkZXYtPm1t YW4uYmRldiwgVFRNX1BMX1ZSQU0pOwo+ICAgCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0la RSwgIiVsbHVcbiIsCj4gICAJCQlhbWRncHVfdnJhbV9tZ3JfdmlzX3VzYWdlKG1hbikpOwo+ICAg fQo+IEBAIC0xNjUsNyArMTY1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmFt ZGdwdV92cmFtX21ncl9hdHRyaWJ1dGVzW10gPSB7Cj4gICAJTlVMTAo+ICAgfTsKPiAgIAo+IC1z dGF0aWMgY29uc3Qgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2Z1bmMgYW1kZ3B1X3ZyYW1f bWdyX2Z1bmM7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVu YyBhbWRncHVfdnJhbV9tZ3JfZnVuYzsKPiAgIAo+ICAgLyoqCj4gICAgKiBhbWRncHVfdnJhbV9t Z3JfaW5pdCAtIGluaXQgVlJBTSBtYW5hZ2VyIGFuZCBEUk0gTU0KPiBAQCAtMTc3LDcgKzE3Nyw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyBhbWRncHVf dnJhbV9tZ3JfZnVuYzsKPiAgICAqLwo+ICAgaW50IGFtZGdwdV92cmFtX21ncl9pbml0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5h Z2VyICptYW47Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbjsKPiAgIAlzdHJ1 Y3QgYW1kZ3B1X3ZyYW1fbWdyICptZ3I7Cj4gICAJaW50IHJldDsKPiAgIAo+IEBAIC0xOTAsNyAr MTkwLDcgQEAgaW50IGFtZGdwdV92cmFtX21ncl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQo+ICAgCW1hbi0+YXZhaWxhYmxlX2NhY2hpbmcgPSBUVE1fUExfRkxBR19VTkNBQ0hFRCB8 IFRUTV9QTF9GTEFHX1dDOwo+ICAgCW1hbi0+ZGVmYXVsdF9jYWNoaW5nID0gVFRNX1BMX0ZMQUdf V0M7Cj4gICAKPiAtCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX2luaXQobWFuLCBhZGV2LT5nbWMucmVh bF92cmFtX3NpemUgPj4gUEFHRV9TSElGVCk7Cj4gKwl0dG1fcmVzb3VyY2VfbWFuYWdlcl9pbml0 KG1hbiwgYWRldi0+Z21jLnJlYWxfdnJhbV9zaXplID4+IFBBR0VfU0hJRlQpOwo+ICAgCj4gICAJ bWFuLT5mdW5jID0gJmFtZGdwdV92cmFtX21ncl9mdW5jOwo+ICAgCj4gQEAgLTIwNSw3ICsyMDUs NyBAQCBpbnQgYW1kZ3B1X3ZyYW1fbWdyX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp Cj4gICAJCURSTV9FUlJPUigiRmFpbGVkIHRvIHJlZ2lzdGVyIHN5c2ZzXG4iKTsKPiAgIAo+ICAg CXR0bV9zZXRfZHJpdmVyX21hbmFnZXIoJmFkZXYtPm1tYW4uYmRldiwgVFRNX1BMX1ZSQU0sICZt Z3ItPm1hbmFnZXIpOwo+IC0JdHRtX21lbV90eXBlX21hbmFnZXJfc2V0X3VzZWQobWFuLCB0cnVl KTsKPiArCXR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgdHJ1ZSk7Cj4gICAJcmV0 dXJuIDA7Cj4gICB9Cj4gICAKPiBAQCAtMjE5LDEzICsyMTksMTMgQEAgaW50IGFtZGdwdV92cmFt X21ncl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgICovCj4gICB2b2lkIGFt ZGdwdV92cmFtX21ncl9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgewo+IC0J c3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZhZGV2 LT5tbWFuLmJkZXYsIFRUTV9QTF9WUkFNKTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdl ciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmYWRldi0+bW1hbi5iZGV2LCBUVE1fUExfVlJBTSk7 Cj4gICAJc3RydWN0IGFtZGdwdV92cmFtX21nciAqbWdyID0gdG9fdnJhbV9tZ3IobWFuKTsKPiAg IAlpbnQgcmV0Owo+ICAgCj4gLQl0dG1fbWVtX3R5cGVfbWFuYWdlcl9zZXRfdXNlZChtYW4sIGZh bHNlKTsKPiArCXR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ICAg Cj4gLQlyZXQgPSB0dG1fbWVtX3R5cGVfbWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKCZhZGV2LT5t bWFuLmJkZXYsIG1hbik7Cj4gKwlyZXQgPSB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mb3JjZV9saXN0 X2NsZWFuKCZhZGV2LT5tbWFuLmJkZXYsIG1hbik7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJu Owo+ICAgCj4gQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIGFtZGdwdV92cmFtX21ncl9maW5pKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgCj4gICAJc3lzZnNfcmVtb3ZlX2ZpbGVzKCZh ZGV2LT5kZXYtPmtvYmosIGFtZGdwdV92cmFtX21ncl9hdHRyaWJ1dGVzKTsKPiAgIAo+IC0JdHRt X21lbV90eXBlX21hbmFnZXJfY2xlYW51cChtYW4pOwo+ICsJdHRtX3Jlc291cmNlX21hbmFnZXJf Y2xlYW51cChtYW4pOwo+ICAgCXR0bV9zZXRfZHJpdmVyX21hbmFnZXIoJmFkZXYtPm1tYW4uYmRl diwgVFRNX1BMX1ZSQU0sIE5VTEwpOwo+ICAgCWtmcmVlKG1ncik7Cj4gICB9Cj4gQEAgLTMyMSw3 ICszMjEsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfdnJhbV9tZ3JfdmlydF9zdGFydChzdHJ1Y3Qg dHRtX21lbV9yZWcgKm1lbSwKPiAgICAqCj4gICAgKiBBbGxvY2F0ZSBWUkFNIGZvciB0aGUgZ2l2 ZW4gQk8uCj4gICAgKi8KPiAtc3RhdGljIGludCBhbWRncHVfdnJhbV9tZ3JfbmV3KHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ICtzdGF0aWMgaW50IGFtZGdwdV92cmFtX21ncl9u ZXcoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gICAJCQkgICAgICAgc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8sCj4gICAJCQkgICAgICAgY29uc3Qgc3RydWN0IHR0bV9w bGFjZSAqcGxhY2UsCj4gICAJCQkgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4gQEAg LTQzOSw3ICs0MzksNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92cmFtX21ncl9uZXcoc3RydWN0IHR0 bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gICAgKgo+ICAgICogRnJlZSB0aGUgYWxsb2NhdGVk IFZSQU0gYWdhaW4uCj4gICAgKi8KPiAtc3RhdGljIHZvaWQgYW1kZ3B1X3ZyYW1fbWdyX2RlbChz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiArc3RhdGljIHZvaWQgYW1kZ3B1X3Zy YW1fbWdyX2RlbChzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiAgIAkJCQlzdHJ1 Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X3ZyYW1fbWdyICpt Z3IgPSB0b192cmFtX21ncihtYW4pOwo+IEBAIC01NzMsNyArNTczLDcgQEAgdm9pZCBhbWRncHVf dnJhbV9tZ3JfZnJlZV9zZ3Qoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAgKgo+ICAg ICogUmV0dXJucyBob3cgbWFueSBieXRlcyBhcmUgdXNlZCBpbiB0aGlzIGRvbWFpbi4KPiAgICAq Lwo+IC11aW50NjRfdCBhbWRncHVfdnJhbV9tZ3JfdXNhZ2Uoc3RydWN0IHR0bV9tZW1fdHlwZV9t YW5hZ2VyICptYW4pCj4gK3VpbnQ2NF90IGFtZGdwdV92cmFtX21ncl91c2FnZShzdHJ1Y3QgdHRt X3Jlc291cmNlX21hbmFnZXIgKm1hbikKPiAgIHsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X3ZyYW1fbWdy ICptZ3IgPSB0b192cmFtX21ncihtYW4pOwo+ICAgCj4gQEAgLTU4Nyw3ICs1ODcsNyBAQCB1aW50 NjRfdCBhbWRncHVfdnJhbV9tZ3JfdXNhZ2Uoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICpt YW4pCj4gICAgKgo+ICAgICogUmV0dXJucyBob3cgbWFueSBieXRlcyBhcmUgdXNlZCBpbiB0aGUg dmlzaWJsZSBwYXJ0IG9mIFZSQU0KPiAgICAqLwo+IC11aW50NjRfdCBhbWRncHVfdnJhbV9tZ3Jf dmlzX3VzYWdlKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQo+ICt1aW50NjRfdCBh bWRncHVfdnJhbV9tZ3JfdmlzX3VzYWdlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFu KQo+ICAgewo+ICAgCXN0cnVjdCBhbWRncHVfdnJhbV9tZ3IgKm1nciA9IHRvX3ZyYW1fbWdyKG1h bik7Cj4gICAKPiBAQCAtNjAyLDcgKzYwMiw3IEBAIHVpbnQ2NF90IGFtZGdwdV92cmFtX21ncl92 aXNfdXNhZ2Uoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pCj4gICAgKgo+ICAgICog RHVtcCB0aGUgdGFibGUgY29udGVudCB1c2luZyBwcmludGsuCj4gICAgKi8KPiAtc3RhdGljIHZv aWQgYW1kZ3B1X3ZyYW1fbWdyX2RlYnVnKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFu LAo+ICtzdGF0aWMgdm9pZCBhbWRncHVfdnJhbV9tZ3JfZGVidWcoc3RydWN0IHR0bV9yZXNvdXJj ZV9tYW5hZ2VyICptYW4sCj4gICAJCQkJICBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnByaW50ZXIpCj4g ICB7Cj4gICAJc3RydWN0IGFtZGdwdV92cmFtX21nciAqbWdyID0gdG9fdnJhbV9tZ3IobWFuKTsK PiBAQCAtNjE2LDcgKzYxNiw3IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV92cmFtX21ncl9kZWJ1Zyhz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiAgIAkJICAgYW1kZ3B1X3ZyYW1fbWdy X3Zpc191c2FnZShtYW4pID4+IDIwKTsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2Z1bmMgYW1kZ3B1X3ZyYW1fbWdyX2Z1bmMgPSB7Cj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVuYyBhbWRncHVfdnJhbV9t Z3JfZnVuYyA9IHsKPiAgIAkuZ2V0X25vZGUJPSBhbWRncHVfdnJhbV9tZ3JfbmV3LAo+ICAgCS5w dXRfbm9kZQk9IGFtZGdwdV92cmFtX21ncl9kZWwsCj4gICAJLmRlYnVnCQk9IGFtZGdwdV92cmFt X21ncl9kZWJ1Zwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYwo+IGluZGV4IDIx ODc3ODdmMzk3ZS4uZTM2NjBkMDA5ODdkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fZ2VtX3ZyYW1faGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFt X2hlbHBlci5jCj4gQEAgLTEwNzUsMTAgKzEwNzUsMTAgQEAgc3RhdGljIGludCBkcm1fdnJhbV9t bV9kZWJ1Z2ZzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgIHsKPiAgIAlzdHJ1 Y3QgZHJtX2luZm9fbm9kZSAqbm9kZSA9IChzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqKSBtLT5wcml2 YXRlOwo+ICAgCXN0cnVjdCBkcm1fdnJhbV9tbSAqdm1tID0gbm9kZS0+bWlub3ItPmRldi0+dnJh bV9tbTsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJf dHlwZSgmdm1tLT5iZGV2LCBUVE1fUExfVlJBTSk7Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJnZtbS0+YmRldiwgVFRNX1BMX1ZSQU0pOwo+ ICAgCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gICAK PiAtCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX2RlYnVnKG1hbiwgJnApOwo+ICsJdHRtX3Jlc291cmNl X21hbmFnZXJfZGVidWcobWFuLCAmcCk7Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV90dG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRtLmMKPiBpbmRleCAzOGEwZTRiZDE2ZjcuLmQ2YWQw OTc3ZGM3ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0 bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV90dG0uYwo+IEBAIC0z MiwxMyArMzIsMTMgQEAKPiAgICNpbmNsdWRlIDxjb3JlL3RlZ3JhLmg+Cj4gICAKPiAgIHN0YXRp YyB2b2lkCj4gLW5vdXZlYXVfbWFuYWdlcl9kZWwoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2Vy ICptYW4sIHN0cnVjdCB0dG1fbWVtX3JlZyAqcmVnKQo+ICtub3V2ZWF1X21hbmFnZXJfZGVsKHN0 cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLCBzdHJ1Y3QgdHRtX21lbV9yZWcgKnJlZykK PiAgIHsKPiAgIAlub3V2ZWF1X21lbV9kZWwocmVnKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIGlu dAo+IC1ub3V2ZWF1X3ZyYW1fbWFuYWdlcl9uZXcoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2Vy ICptYW4sCj4gK25vdXZlYXVfdnJhbV9tYW5hZ2VyX25ldyhzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgKm1hbiwKPiAgIAkJCSBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgCQkJ IGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAo+ICAgCQkJIHN0cnVjdCB0dG1fbWVtX3Jl ZyAqcmVnKQo+IEBAIC02MywxMyArNjMsMTMgQEAgbm91dmVhdV92cmFtX21hbmFnZXJfbmV3KHN0 cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAg Cj4gLWNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9mdW5jIG5vdXZlYXVfdnJhbV9t YW5hZ2VyID0gewo+ICtjb25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVuYyBub3V2 ZWF1X3ZyYW1fbWFuYWdlciA9IHsKPiAgIAkuZ2V0X25vZGUgPSBub3V2ZWF1X3ZyYW1fbWFuYWdl cl9uZXcsCj4gICAJLnB1dF9ub2RlID0gbm91dmVhdV9tYW5hZ2VyX2RlbCwKPiAgIH07Cj4gICAK PiAgIHN0YXRpYyBpbnQKPiAtbm91dmVhdV9nYXJ0X21hbmFnZXJfbmV3KHN0cnVjdCB0dG1fbWVt X3R5cGVfbWFuYWdlciAqbWFuLAo+ICtub3V2ZWF1X2dhcnRfbWFuYWdlcl9uZXcoc3RydWN0IHR0 bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gICAJCQkgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKPiAgIAkJCSBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPiAgIAkJCSBzdHJ1 Y3QgdHRtX21lbV9yZWcgKnJlZykKPiBAQCAtODYsMTMgKzg2LDEzIEBAIG5vdXZlYXVfZ2FydF9t YW5hZ2VyX25ldyhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiAgIAlyZXR1cm4g MDsKPiAgIH0KPiAgIAo+IC1jb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyBu b3V2ZWF1X2dhcnRfbWFuYWdlciA9IHsKPiArY29uc3Qgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5h Z2VyX2Z1bmMgbm91dmVhdV9nYXJ0X21hbmFnZXIgPSB7Cj4gICAJLmdldF9ub2RlID0gbm91dmVh dV9nYXJ0X21hbmFnZXJfbmV3LAo+ICAgCS5wdXRfbm9kZSA9IG5vdXZlYXVfbWFuYWdlcl9kZWws Cj4gICB9Owo+ICAgCj4gICBzdGF0aWMgaW50Cj4gLW52MDRfZ2FydF9tYW5hZ2VyX25ldyhzdHJ1 Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiArbnYwNF9nYXJ0X21hbmFnZXJfbmV3KHN0 cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ICAgCQkgICAgICBzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAo+ICAgCQkgICAgICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFj ZSwKPiAgIAkJICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICpyZWcpCj4gQEAgLTExOCw3ICsxMTgs NyBAQCBudjA0X2dhcnRfbWFuYWdlcl9uZXcoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICpt YW4sCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiAtY29uc3Qgc3RydWN0IHR0bV9tZW1fdHlw ZV9tYW5hZ2VyX2Z1bmMgbnYwNF9nYXJ0X21hbmFnZXIgPSB7Cj4gK2NvbnN0IHN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlcl9mdW5jIG52MDRfZ2FydF9tYW5hZ2VyID0gewo+ICAgCS5nZXRfbm9k ZSA9IG52MDRfZ2FydF9tYW5hZ2VyX25ldywKPiAgIAkucHV0X25vZGUgPSBub3V2ZWF1X21hbmFn ZXJfZGVsLAo+ICAgfTsKPiBAQCAtMTYwLDcgKzE2MCw3IEBAIG5vdXZlYXVfdHRtX2luaXRfdnJh bShzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKPiAgIAlpZiAoZHJtLT5jbGllbnQuZGV2aWNlLmlu Zm8uZmFtaWx5ID49IE5WX0RFVklDRV9JTkZPX1YwX1RFU0xBKSB7Cj4gICAJCS8qIFNvbWUgQkFS cyBkbyBub3Qgc3VwcG9ydCBiZWluZyBpb3JlbWFwcGVkIFdDICovCj4gICAJCWNvbnN0IHU4IHR5 cGUgPSBtbXUtPnR5cGVbZHJtLT50dG0udHlwZV92cmFtXS50eXBlOwo+IC0JCXN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciAqbWFuID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHR0bV9tZW1fdHlw ZV9tYW5hZ2VyKSwgR0ZQX0tFUk5FTCk7Cj4gKwkJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2Vy ICptYW4gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIpLCBHRlBf S0VSTkVMKTsKPiAgIAkJaWYgKCFtYW4pCj4gICAJCQlyZXR1cm4gLUVOT01FTTsKPiAgIAo+IEBA IC0xNzUsMTAgKzE3NSwxMCBAQCBub3V2ZWF1X3R0bV9pbml0X3ZyYW0oc3RydWN0IG5vdXZlYXVf ZHJtICpkcm0pCj4gICAJCW1hbi0+ZnVuYyA9ICZub3V2ZWF1X3ZyYW1fbWFuYWdlcjsKPiAgIAkJ bWFuLT51c2VfaW9fcmVzZXJ2ZV9scnUgPSB0cnVlOwo+ICAgCj4gLQkJdHRtX21lbV90eXBlX21h bmFnZXJfaW5pdChtYW4sCj4gKwkJdHRtX3Jlc291cmNlX21hbmFnZXJfaW5pdChtYW4sCj4gICAJ CQkJCSAgZHJtLT5nZW0udnJhbV9hdmFpbGFibGUgPj4gUEFHRV9TSElGVCk7Cj4gICAJCXR0bV9z ZXRfZHJpdmVyX21hbmFnZXIoJmRybS0+dHRtLmJkZXYsIFRUTV9QTF9WUkFNLCBtYW4pOwo+IC0J CXR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgdHJ1ZSk7Cj4gKwkJdHRtX3Jlc291 cmNlX21hbmFnZXJfc2V0X3VzZWQobWFuLCB0cnVlKTsKPiAgIAkJcmV0dXJuIDA7Cj4gICAJfSBl bHNlIHsKPiAgIAkJcmV0dXJuIHR0bV9yYW5nZV9tYW5faW5pdCgmZHJtLT50dG0uYmRldiwgVFRN X1BMX1ZSQU0sCj4gQEAgLTE5MSwxMiArMTkxLDEyIEBAIG5vdXZlYXVfdHRtX2luaXRfdnJhbShz dHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKPiAgIHN0YXRpYyB2b2lkCj4gICBub3V2ZWF1X3R0bV9m aW5pX3ZyYW0oc3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCj4gICB7Cj4gLQlzdHJ1Y3QgdHRtX21l bV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmRybS0+dHRtLmJkZXYsIFRU TV9QTF9WUkFNKTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21h bmFnZXJfdHlwZSgmZHJtLT50dG0uYmRldiwgVFRNX1BMX1ZSQU0pOwo+ICAgCj4gICAJaWYgKGRy bS0+Y2xpZW50LmRldmljZS5pbmZvLmZhbWlseSA+PSBOVl9ERVZJQ0VfSU5GT19WMF9URVNMQSkg ewo+IC0JCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+IC0JCXR0 bV9tZW1fdHlwZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4oJmRybS0+dHRtLmJkZXYsIG1hbik7 Cj4gLQkJdHRtX21lbV90eXBlX21hbmFnZXJfY2xlYW51cChtYW4pOwo+ICsJCXR0bV9yZXNvdXJj ZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ICsJCXR0bV9yZXNvdXJjZV9tYW5hZ2Vy X2ZvcmNlX2xpc3RfY2xlYW4oJmRybS0+dHRtLmJkZXYsIG1hbik7Cj4gKwkJdHRtX3Jlc291cmNl X21hbmFnZXJfY2xlYW51cChtYW4pOwo+ICAgCQl0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKCZkcm0t PnR0bS5iZGV2LCBUVE1fUExfVlJBTSwgTlVMTCk7Cj4gICAJCWtmcmVlKG1hbik7Cj4gICAJfSBl bHNlCj4gQEAgLTIwNiwxMCArMjA2LDEwIEBAIG5vdXZlYXVfdHRtX2ZpbmlfdnJhbShzdHJ1Y3Qg bm91dmVhdV9kcm0gKmRybSkKPiAgIHN0YXRpYyBpbnQKPiAgIG5vdXZlYXVfdHRtX2luaXRfZ3R0 KHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtKQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9t YW5hZ2VyICptYW47Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbjsKPiAgIAl1 bnNpZ25lZCBsb25nIHNpemVfcGFnZXMgPSBkcm0tPmdlbS5nYXJ0X2F2YWlsYWJsZSA+PiBQQUdF X1NISUZUOwo+ICAgCXVuc2lnbmVkIGF2YWlsYWJsZV9jYWNoaW5nLCBkZWZhdWx0X2NhY2hpbmc7 Cj4gLQljb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyAqZnVuYyA9IE5VTEw7 Cj4gKwljb25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVuYyAqZnVuYyA9IE5VTEw7 Cj4gICAJaWYgKGRybS0+YWdwLmJyaWRnZSkgewo+ICAgCQlhdmFpbGFibGVfY2FjaGluZyA9IFRU TV9QTF9GTEFHX1VOQ0FDSEVEIHwKPiAgIAkJCVRUTV9QTF9GTEFHX1dDOwo+IEBAIC0yMjksNyAr MjI5LDcgQEAgbm91dmVhdV90dG1faW5pdF9ndHQoc3RydWN0IG5vdXZlYXVfZHJtICpkcm0pCj4g ICAJCQkJCSAgdHJ1ZSwKPiAgIAkJCQkJICBzaXplX3BhZ2VzKTsKPiAgIAo+IC0JbWFuID0ga3ph bGxvYyhzaXplb2Yoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyKSwgR0ZQX0tFUk5FTCk7Cj4g KwltYW4gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIpLCBHRlBf S0VSTkVMKTsKPiAgIAlpZiAoIW1hbikKPiAgIAkJcmV0dXJuIC1FTk9NRU07Cj4gICAKPiBAQCAt MjM3LDI0ICsyMzcsMjQgQEAgbm91dmVhdV90dG1faW5pdF9ndHQoc3RydWN0IG5vdXZlYXVfZHJt ICpkcm0pCj4gICAJbWFuLT5hdmFpbGFibGVfY2FjaGluZyA9IGF2YWlsYWJsZV9jYWNoaW5nOwo+ ICAgCW1hbi0+ZGVmYXVsdF9jYWNoaW5nID0gZGVmYXVsdF9jYWNoaW5nOwo+ICAgCW1hbi0+dXNl X3R0ID0gdHJ1ZTsKPiAtCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX2luaXQobWFuLCBzaXplX3BhZ2Vz KTsKPiArCXR0bV9yZXNvdXJjZV9tYW5hZ2VyX2luaXQobWFuLCBzaXplX3BhZ2VzKTsKPiAgIAl0 dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKCZkcm0tPnR0bS5iZGV2LCBUVE1fUExfVFQsIG1hbik7Cj4g LQl0dG1fbWVtX3R5cGVfbWFuYWdlcl9zZXRfdXNlZChtYW4sIHRydWUpOwo+ICsJdHRtX3Jlc291 cmNlX21hbmFnZXJfc2V0X3VzZWQobWFuLCB0cnVlKTsKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAg IAo+ICAgc3RhdGljIHZvaWQKPiAgIG5vdXZlYXVfdHRtX2ZpbmlfZ3R0KHN0cnVjdCBub3V2ZWF1 X2RybSAqZHJtKQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0 dG1fbWFuYWdlcl90eXBlKCZkcm0tPnR0bS5iZGV2LCBUVE1fUExfVFQpOwo+ICsJc3RydWN0IHR0 bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZkcm0tPnR0bS5iZGV2 LCBUVE1fUExfVFQpOwo+ICAgCj4gICAJaWYgKGRybS0+Y2xpZW50LmRldmljZS5pbmZvLmZhbWls eSA8IE5WX0RFVklDRV9JTkZPX1YwX1RFU0xBICYmCj4gICAJICAgIGRybS0+YWdwLmJyaWRnZSkK PiAgIAkJdHRtX3JhbmdlX21hbl9maW5pKCZkcm0tPnR0bS5iZGV2LCBUVE1fUExfVFQpOwo+ICAg CWVsc2Ugewo+IC0JCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ IC0JCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4oJmRybS0+dHRtLmJkZXYs IG1hbik7Cj4gLQkJdHRtX21lbV90eXBlX21hbmFnZXJfY2xlYW51cChtYW4pOwo+ICsJCXR0bV9y ZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ICsJCXR0bV9yZXNvdXJjZV9t YW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4oJmRybS0+dHRtLmJkZXYsIG1hbik7Cj4gKwkJdHRtX3Jl c291cmNlX21hbmFnZXJfY2xlYW51cChtYW4pOwo+ICAgCQl0dG1fc2V0X2RyaXZlcl9tYW5hZ2Vy KCZkcm0tPnR0bS5iZGV2LCBUVE1fUExfVFQsIE5VTEwpOwo+ICAgCQlrZnJlZShtYW4pOwo+ICAg CX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV90dG0uaCBi L2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfdHRtLmgKPiBpbmRleCAwODUyODA3NTRi M2UuLmVhZjI1NDYxY2Q5MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X3R0bS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV90dG0u aAo+IEBAIC04LDkgKzgsOSBAQCBub3V2ZWF1X2JkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk KQo+ICAgCXJldHVybiBjb250YWluZXJfb2YoYmQsIHN0cnVjdCBub3V2ZWF1X2RybSwgdHRtLmJk ZXYpOwo+ICAgfQo+ICAgCj4gLWV4dGVybiBjb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFn ZXJfZnVuYyBub3V2ZWF1X3ZyYW1fbWFuYWdlcjsKPiAtZXh0ZXJuIGNvbnN0IHN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlcl9mdW5jIG5vdXZlYXVfZ2FydF9tYW5hZ2VyOwo+IC1leHRlcm4gY29u c3Qgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2Z1bmMgbnYwNF9nYXJ0X21hbmFnZXI7Cj4g K2V4dGVybiBjb25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVuYyBub3V2ZWF1X3Zy YW1fbWFuYWdlcjsKPiArZXh0ZXJuIGNvbnN0IHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9m dW5jIG5vdXZlYXVfZ2FydF9tYW5hZ2VyOwo+ICtleHRlcm4gY29uc3Qgc3RydWN0IHR0bV9yZXNv dXJjZV9tYW5hZ2VyX2Z1bmMgbnYwNF9nYXJ0X21hbmFnZXI7Cj4gICAKPiAgIHN0cnVjdCB0dG1f dHQgKm5vdXZlYXVfc2dkbWFfY3JlYXRlX3R0bShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAo+ICAgCQkJCQl1MzIgcGFnZV9mbGFncyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9xeGwvcXhsX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKPiBpbmRleCBi NzM2NWIyZTRjN2YuLjFjMDZmZTc4MDgxNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v cXhsL3F4bF90dG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX3R0bS5jCj4gQEAg LTI3NCwxMCArMjc0LDEwIEBAIHZvaWQgcXhsX3R0bV9maW5pKHN0cnVjdCBxeGxfZGV2aWNlICpx ZGV2KQo+ICAgc3RhdGljIGludCBxeGxfbW1fZHVtcF90YWJsZShzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKmRhdGEpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3Ry dWN0IGRybV9pbmZvX25vZGUgKiltLT5wcml2YXRlOwo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9t YW5hZ2VyICptYW4gPSAoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICopbm9kZS0+aW5mb19l bnQtPmRhdGE7Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IChzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXIgKilub2RlLT5pbmZvX2VudC0+ZGF0YTsKPiAgIAlzdHJ1Y3Qg ZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmludGVyKG0pOwo+ICAgCj4gLQl0dG1fbWVt X3R5cGVfbWFuYWdlcl9kZWJ1ZyhtYW4sICZwKTsKPiArCXR0bV9yZXNvdXJjZV9tYW5hZ2VyX2Rl YnVnKG1hbiwgJnApOwo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAgI2VuZGlmCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fZ2VtLmMKPiBpbmRleCAzZWMwMjhkYmE3MzkuLjdmNWRmZTA0Nzg5ZSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9nZW0uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCj4gQEAgLTIyNCw3ICsyMjQsNyBA QCBpbnQgcmFkZW9uX2dlbV9pbmZvX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCj4gICB7Cj4gICAJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9w cml2YXRlOwo+ICAgCXN0cnVjdCBkcm1fcmFkZW9uX2dlbV9pbmZvICphcmdzID0gZGF0YTsKPiAt CXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJj ZV9tYW5hZ2VyICptYW47Cj4gICAKPiAgIAltYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZyZGV2LT5t bWFuLmJkZXYsIFRUTV9QTF9WUkFNKTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0 bS5jCj4gaW5kZXggNDc0ZDIxNjFkYTFlLi4wNWI1ZjI5ZjJiNjEgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl90dG0uYwo+IEBAIC04MzYsNyArODM2LDcgQEAgdm9pZCByYWRlb25fdHRt X2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAgKiBpc24ndCBydW5uaW5nICov Cj4gICB2b2lkIHJhZGVvbl90dG1fc2V0X2FjdGl2ZV92cmFtX3NpemUoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYsIHU2NCBzaXplKQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5h Z2VyICptYW47Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbjsKPiAgIAo+ICAg CWlmICghcmRldi0+bW1hbi5pbml0aWFsaXplZCkKPiAgIAkJcmV0dXJuOwo+IEBAIC04OTUsNyAr ODk1LDcgQEAgc3RhdGljIGludCByYWRlb25fbW1fZHVtcF90YWJsZShzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHZvaWQgKmRhdGEpCj4gICAJdW5zaWduZWQgdHRtX3BsID0gKihpbnQqKW5vZGUtPmluZm9f ZW50LT5kYXRhOwo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2 Owo+ICAgCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAt CXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmcmRl di0+bW1hbi5iZGV2LCB0dG1fcGwpOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICpt YW4gPSB0dG1fbWFuYWdlcl90eXBlKCZyZGV2LT5tbWFuLmJkZXYsIHR0bV9wbCk7Cj4gICAJc3Ry dWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsKPiAgIAo+ICAgCW1h bi0+ZnVuYy0+ZGVidWcobWFuLCAmcCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4gaW5kZXggN2QxMGFi YWU5YTYwLi40ODg0MGEzY2Y0YzQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fYm8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPiBAQCAtNzcsNyAr NzcsNyBAQCBzdGF0aWMgaW5saW5lIGludCB0dG1fbWVtX3R5cGVfZnJvbV9wbGFjZShjb25zdCBz dHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+IC12b2lk IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2RlYnVnKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAq bWFuLAo+ICt2b2lkIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2RlYnVnKHN0cnVjdCB0dG1fcmVzb3Vy Y2VfbWFuYWdlciAqbWFuLAo+ICAgCQkJCXN0cnVjdCBkcm1fcHJpbnRlciAqcCkKPiAgIHsKPiAg IAlkcm1fcHJpbnRmKHAsICIgICAgdXNlX3R5cGU6ICVkXG4iLCBtYW4tPnVzZV90eXBlKTsKPiBA QCAtODgsMTQgKzg4LDE0IEBAIHZvaWQgdHRtX21lbV90eXBlX21hbmFnZXJfZGVidWcoc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gICAJaWYgKG1hbi0+ZnVuYyAmJiBtYW4tPmZ1 bmMtPmRlYnVnKQo+ICAgCQkoKm1hbi0+ZnVuYy0+ZGVidWcpKG1hbiwgcCk7Cj4gICB9Cj4gLUVY UE9SVF9TWU1CT0wodHRtX21lbV90eXBlX21hbmFnZXJfZGVidWcpOwo+ICtFWFBPUlRfU1lNQk9M KHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2RlYnVnKTsKPiAgIAo+ICAgc3RhdGljIHZvaWQgdHRtX2Jv X21lbV9zcGFjZV9kZWJ1ZyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgCQkJCQlz dHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fcHJp bnRlciBwID0gZHJtX2RlYnVnX3ByaW50ZXIoVFRNX1BGWCk7Cj4gICAJaW50IGksIHJldCwgbWVt X3R5cGU7Cj4gLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbjsKPiArCXN0cnVjdCB0 dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ICAgCj4gICAJZHJtX3ByaW50ZigmcCwgIk5vIHNw YWNlIGZvciAlcCAoJWx1IHBhZ2VzLCAlbHVLLCAlbHVNKVxuIiwKPiAgIAkJICAgYm8sIGJvLT5t ZW0ubnVtX3BhZ2VzLCBiby0+bWVtLnNpemUgPj4gMTAsCj4gQEAgLTEwOCw3ICsxMDgsNyBAQCBz dGF0aWMgdm9pZCB0dG1fYm9fbWVtX3NwYWNlX2RlYnVnKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCj4gICAJCWRybV9wcmludGYoJnAsICIgIHBsYWNlbWVudFslZF09MHglMDhYICglZClc biIsCj4gICAJCQkgICBpLCBwbGFjZW1lbnQtPnBsYWNlbWVudFtpXS5mbGFncywgbWVtX3R5cGUp Owo+ICAgCQltYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJvLT5iZGV2LCBtZW1fdHlwZSk7Cj4gLQkJ dHRtX21lbV90eXBlX21hbmFnZXJfZGVidWcobWFuLCAmcCk7Cj4gKwkJdHRtX3Jlc291cmNlX21h bmFnZXJfZGVidWcobWFuLCAmcCk7Cj4gICAJfQo+ICAgfQo+ICAgCj4gQEAgLTE0OCw3ICsxNDgs NyBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fYWRkX21lbV90b19scnUoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKPiAgIAkJCQkgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICAgewo+ICAg CXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4gLQlzdHJ1Y3QgdHRtX21l bV90eXBlX21hbmFnZXIgKm1hbjsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFu Owo+ICAgCj4gICAJaWYgKCFsaXN0X2VtcHR5KCZiby0+bHJ1KSkKPiAgIAkJcmV0dXJuOwo+IEBA IC0yMjMsNyArMjIzLDcgQEAgdm9pZCB0dG1fYm9fYnVsa19tb3ZlX2xydV90YWlsKHN0cnVjdCB0 dG1fbHJ1X2J1bGtfbW92ZSAqYnVsaykKPiAgIAo+ICAgCWZvciAoaSA9IDA7IGkgPCBUVE1fTUFY X0JPX1BSSU9SSVRZOyArK2kpIHsKPiAgIAkJc3RydWN0IHR0bV9scnVfYnVsa19tb3ZlX3BvcyAq cG9zID0gJmJ1bGstPnR0W2ldOwo+IC0JCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFu Owo+ICsJCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ICAgCj4gICAJCWlmICgh cG9zLT5maXJzdCkKPiAgIAkJCWNvbnRpbnVlOwo+IEBAIC0yMzgsNyArMjM4LDcgQEAgdm9pZCB0 dG1fYm9fYnVsa19tb3ZlX2xydV90YWlsKHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZSAqYnVsaykK PiAgIAo+ICAgCWZvciAoaSA9IDA7IGkgPCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpIHsKPiAg IAkJc3RydWN0IHR0bV9scnVfYnVsa19tb3ZlX3BvcyAqcG9zID0gJmJ1bGstPnZyYW1baV07Cj4g LQkJc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW47Cj4gKwkJc3RydWN0IHR0bV9yZXNv dXJjZV9tYW5hZ2VyICptYW47Cj4gICAKPiAgIAkJaWYgKCFwb3MtPmZpcnN0KQo+ICAgCQkJY29u dGludWU7Cj4gQEAgLTI3Miw4ICsyNzIsOCBAQCBzdGF0aWMgaW50IHR0bV9ib19oYW5kbGVfbW92 ZV9tZW0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAkJCQkgIHN0cnVjdCB0dG1f b3BlcmF0aW9uX2N0eCAqY3R4KQo+ICAgewo+ICAgCXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 ID0gYm8tPmJkZXY7Cj4gLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm9sZF9tYW4gPSB0 dG1fbWFuYWdlcl90eXBlKGJkZXYsIGJvLT5tZW0ubWVtX3R5cGUpOwo+IC0Jc3RydWN0IHR0bV9t ZW1fdHlwZV9tYW5hZ2VyICpuZXdfbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBtZW0tPm1l bV90eXBlKTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqb2xkX21hbiA9IHR0bV9t YW5hZ2VyX3R5cGUoYmRldiwgYm8tPm1lbS5tZW1fdHlwZSk7Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291 cmNlX21hbmFnZXIgKm5ld19tYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG1lbS0+bWVtX3R5 cGUpOwo+ICAgCWludCByZXQ7Cj4gICAKPiAgIAlyZXQgPSB0dG1fbWVtX2lvX2xvY2sob2xkX21h biwgdHJ1ZSk7Cj4gQEAgLTU1MSw3ICs1NTEsNyBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fcmVsZWFz ZShzdHJ1Y3Qga3JlZiAqa3JlZikKPiAgIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0K PiAgIAkgICAgY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCwga3Jl Zik7Cj4gICAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPiAtCXN0cnVj dCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBiby0+ bWVtLm1lbV90eXBlKTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRt X21hbmFnZXJfdHlwZShiZGV2LCBiby0+bWVtLm1lbV90eXBlKTsKPiAgIAlzaXplX3QgYWNjX3Np emUgPSBiby0+YWNjX3NpemU7Cj4gICAJaW50IHJldDsKPiAgIAo+IEBAIC03NjgsNyArNzY4LDcg QEAgc3RhdGljIGludCB0dG1fbWVtX2V2aWN0X3dhaXRfYnVzeShzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJ1c3lfYm8sCj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQgdHRtX21lbV9ldmljdF9m aXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAtCQkJICAgICAgIHN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ICsJCQkgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICptYW4sCj4gICAJCQkgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2Us Cj4gICAJCQkgICAgICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCj4gICAJCQkgICAg ICAgc3RydWN0IHd3X2FjcXVpcmVfY3R4ICp0aWNrZXQpCj4gQEAgLTg0Myw3ICs4NDMsNyBAQCBz dGF0aWMgaW50IHR0bV9ib19tZW1fZ2V0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4g ICAJCQkgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAo+ICAgCQkJICBzdHJ1Y3QgdHRt X21lbV9yZWcgKm1lbSkKPiAgIHsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFu ID0gdHRtX21hbmFnZXJfdHlwZShiby0+YmRldiwgbWVtLT5tZW1fdHlwZSk7Cj4gKwlzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYm8tPmJkZXYsIG1l bS0+bWVtX3R5cGUpOwo+ICAgCj4gICAJbWVtLT5tbV9ub2RlID0gTlVMTDsKPiAgIAlpZiAoIW1h bi0+ZnVuYyB8fCAhbWFuLT5mdW5jLT5nZXRfbm9kZSkKPiBAQCAtODU0LDcgKzg1NCw3IEBAIHN0 YXRpYyBpbnQgdHRtX2JvX21lbV9nZXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAg IAo+ICAgdm9pZCB0dG1fYm9fbWVtX3B1dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBz dHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiAgIHsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiby0+YmRldiwgbWVtLT5tZW1fdHlwZSk7Cj4g KwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYm8t PmJkZXYsIG1lbS0+bWVtX3R5cGUpOwo+ICAgCj4gICAJaWYgKCFtYW4tPmZ1bmMgfHwgIW1hbi0+ ZnVuYy0+cHV0X25vZGUpCj4gICAJCXJldHVybjsKPiBAQCAtODY5LDcgKzg2OSw3IEBAIEVYUE9S VF9TWU1CT0wodHRtX2JvX21lbV9wdXQpOwo+ICAgICogQWRkIHRoZSBsYXN0IG1vdmUgZmVuY2Ug dG8gdGhlIEJPIGFuZCByZXNlcnZlIGEgbmV3IHNoYXJlZCBzbG90Lgo+ICAgICovCj4gICBzdGF0 aWMgaW50IHR0bV9ib19hZGRfbW92ZV9mZW5jZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAo+IC0JCQkJIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ICsJCQkJIHN0cnVj dCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ICAgCQkJCSBzdHJ1Y3QgdHRtX21lbV9yZWcg Km1lbSwKPiAgIAkJCQkgYm9vbCBub193YWl0X2dwdSkKPiAgIHsKPiBAQCAtOTExLDcgKzkxMSw3 IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21lbV9mb3JjZV9zcGFjZShzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLAo+ICAgCQkJCSAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4gICB7 Cj4gICAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPiAtCXN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBtZW0tPm1l bV90eXBlKTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFn ZXJfdHlwZShiZGV2LCBtZW0tPm1lbV90eXBlKTsKPiAgIAlzdHJ1Y3Qgd3dfYWNxdWlyZV9jdHgg KnRpY2tldDsKPiAgIAlpbnQgcmV0Owo+ICAgCj4gQEAgLTkzMSw3ICs5MzEsNyBAQCBzdGF0aWMg aW50IHR0bV9ib19tZW1fZm9yY2Vfc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK PiAgIAlyZXR1cm4gdHRtX2JvX2FkZF9tb3ZlX2ZlbmNlKGJvLCBtYW4sIG1lbSwgY3R4LT5ub193 YWl0X2dwdSk7Cj4gICB9Cj4gICAKPiAtc3RhdGljIHVpbnQzMl90IHR0bV9ib19zZWxlY3RfY2Fj aGluZyhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiArc3RhdGljIHVpbnQzMl90 IHR0bV9ib19zZWxlY3RfY2FjaGluZyhzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwK PiAgIAkJCQkgICAgICB1aW50MzJfdCBjdXJfcGxhY2VtZW50LAo+ICAgCQkJCSAgICAgIHVpbnQz Ml90IHByb3Bvc2VkX3BsYWNlbWVudCkKPiAgIHsKPiBAQCAtOTU2LDcgKzk1Niw3IEBAIHN0YXRp YyB1aW50MzJfdCB0dG1fYm9fc2VsZWN0X2NhY2hpbmcoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5h Z2VyICptYW4sCj4gICAJcmV0dXJuIHJlc3VsdDsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgYm9vbCB0 dG1fYm9fbXRfY29tcGF0aWJsZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiAr c3RhdGljIGJvb2wgdHRtX2JvX210X2NvbXBhdGlibGUoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5h Z2VyICptYW4sCj4gICAJCQkJIHVpbnQzMl90IG1lbV90eXBlLAo+ICAgCQkJCSBjb25zdCBzdHJ1 Y3QgdHRtX3BsYWNlICpwbGFjZSwKPiAgIAkJCQkgdWludDMyX3QgKm1hc2tlZF9wbGFjZW1lbnQp Cj4gQEAgLTk5Myw3ICs5OTMsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19tZW1fcGxhY2VtZW50KHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICB7Cj4gICAJc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkZXYgPSBiby0+YmRldjsKPiAgIAl1aW50MzJfdCBtZW1fdHlwZSA9IFRUTV9QTF9TWVNU RU07Cj4gLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbjsKPiArCXN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ICAgCXVpbnQzMl90IGN1cl9mbGFncyA9IDA7Cj4gICAJ aW50IHJldDsKPiAgIAo+IEBAIC0xMDAyLDcgKzEwMDIsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19t ZW1fcGxhY2VtZW50KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJCXJldHVybiBy ZXQ7Cj4gICAKPiAgIAltYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG1lbV90eXBlKTsKPiAt CWlmICghbWFuIHx8ICF0dG1fbWVtX3R5cGVfbWFuYWdlcl91c2VkKG1hbikpCj4gKwlpZiAoIW1h biB8fCAhdHRtX3Jlc291cmNlX21hbmFnZXJfdXNlZChtYW4pKQo+ICAgCQlyZXR1cm4gLUVCVVNZ Owo+ICAgCj4gICAJaWYgKCF0dG1fYm9fbXRfY29tcGF0aWJsZShtYW4sIG1lbV90eXBlLCBwbGFj ZSwgJmN1cl9mbGFncykpCj4gQEAgLTEwNDksNyArMTA0OSw3IEBAIGludCB0dG1fYm9fbWVtX3Nw YWNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAKPiAgIAlmb3IgKGkgPSAwOyBp IDwgcGxhY2VtZW50LT5udW1fcGxhY2VtZW50OyArK2kpIHsKPiAgIAkJY29uc3Qgc3RydWN0IHR0 bV9wbGFjZSAqcGxhY2UgPSAmcGxhY2VtZW50LT5wbGFjZW1lbnRbaV07Cj4gLQkJc3RydWN0IHR0 bV9tZW1fdHlwZV9tYW5hZ2VyICptYW47Cj4gKwkJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2Vy ICptYW47Cj4gICAKPiAgIAkJcmV0ID0gdHRtX2JvX21lbV9wbGFjZW1lbnQoYm8sIHBsYWNlLCBt ZW0sIGN0eCk7Cj4gICAJCWlmIChyZXQgPT0gLUVCVVNZKQo+IEBAIC0xNDA2LDggKzE0MDYsOCBA QCBpbnQgdHRtX2JvX2NyZWF0ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAgIH0KPiAg IEVYUE9SVF9TWU1CT0wodHRtX2JvX2NyZWF0ZSk7Cj4gICAKPiAtaW50IHR0bV9tZW1fdHlwZV9t YW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4gLQkJ CQkJICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbikKPiAraW50IHR0bV9yZXNvdXJj ZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4g KwkJCQkJICBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbikKPiAgIHsKPiAgIAlzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewo+ICAgCQkuaW50ZXJydXB0aWJsZSA9IGZhbHNl LAo+IEBAIC0xNDQ5LDEyICsxNDQ5LDEyIEBAIGludCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9mb3Jj ZV9saXN0X2NsZWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ICAgCj4gICAJcmV0dXJu IDA7Cj4gICB9Cj4gLUVYUE9SVF9TWU1CT0wodHRtX21lbV90eXBlX21hbmFnZXJfZm9yY2VfbGlz dF9jbGVhbik7Cj4gK0VYUE9SVF9TWU1CT0wodHRtX3Jlc291cmNlX21hbmFnZXJfZm9yY2VfbGlz dF9jbGVhbik7Cj4gICAKPiAgIAo+ICAgaW50IHR0bV9ib19ldmljdF9tbShzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwgdW5zaWduZWQgbWVtX3R5cGUpCj4gICB7Cj4gLQlzdHJ1Y3QgdHRtX21l bV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgbWVtX3R5cGUpOwo+ ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJk ZXYsIG1lbV90eXBlKTsKPiAgIAo+ICAgCWlmIChtZW1fdHlwZSA9PSAwIHx8IG1lbV90eXBlID49 IFRUTV9OVU1fTUVNX1RZUEVTKSB7Cj4gICAJCXByX2VycigiSWxsZWdhbCBtZW1vcnkgbWFuYWdl ciBtZW1vcnkgdHlwZSAldVxuIiwgbWVtX3R5cGUpOwo+IEBAIC0xNDY2LDExICsxNDY2LDExIEBA IGludCB0dG1fYm9fZXZpY3RfbW0oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVuc2lnbmVk IG1lbV90eXBlKQo+ICAgCQlyZXR1cm4gMDsKPiAgIAl9Cj4gICAKPiAtCXJldHVybiB0dG1fbWVt X3R5cGVfbWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKGJkZXYsIG1hbik7Cj4gKwlyZXR1cm4gdHRt X3Jlc291cmNlX21hbmFnZXJfZm9yY2VfbGlzdF9jbGVhbihiZGV2LCBtYW4pOwo+ICAgfQo+ICAg RVhQT1JUX1NZTUJPTCh0dG1fYm9fZXZpY3RfbW0pOwo+ICAgCj4gLXZvaWQgdHRtX21lbV90eXBl X21hbmFnZXJfaW5pdChzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiArdm9pZCB0 dG1fcmVzb3VyY2VfbWFuYWdlcl9pbml0KHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFu LAo+ICAgCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgcF9zaXplKQo+ICAgewo+ICAgCXVuc2lnbmVk IGk7Cj4gQEAgLTE0ODUsNyArMTQ4NSw3IEBAIHZvaWQgdHRtX21lbV90eXBlX21hbmFnZXJfaW5p dChzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiAgIAkJSU5JVF9MSVNUX0hFQUQo Jm1hbi0+bHJ1W2ldKTsKPiAgIAltYW4tPm1vdmUgPSBOVUxMOwo+ICAgfQo+IC1FWFBPUlRfU1lN Qk9MKHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2luaXQpOwo+ICtFWFBPUlRfU1lNQk9MKHR0bV9yZXNv dXJjZV9tYW5hZ2VyX2luaXQpOwo+ICAgCj4gICBzdGF0aWMgdm9pZCB0dG1fYm9fZ2xvYmFsX2tv YmpfcmVsZWFzZShzdHJ1Y3Qga29iamVjdCAqa29iaikKPiAgIHsKPiBAQCAtMTU1MiwxMCArMTU1 MiwxMCBAQCBpbnQgdHRtX2JvX2RldmljZV9yZWxlYXNlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2KQo+ICAgCXN0cnVjdCB0dG1fYm9fZ2xvYmFsICpnbG9iID0gJnR0bV9ib19nbG9iOwo+ICAg CWludCByZXQgPSAwOwo+ICAgCXVuc2lnbmVkIGk7Cj4gLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21h bmFnZXIgKm1hbjsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ICAgCj4g ICAJbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBUVE1fUExfU1lTVEVNKTsKPiAtCXR0bV9t ZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ICsJdHRtX3Jlc291cmNlX21h bmFnZXJfc2V0X3VzZWQobWFuLCBmYWxzZSk7Cj4gICAJdHRtX3NldF9kcml2ZXJfbWFuYWdlcihi ZGV2LCBUVE1fUExfU1lTVEVNLCBOVUxMKTsKPiAgIAo+ICAgCW11dGV4X2xvY2soJnR0bV9nbG9i YWxfbXV0ZXgpOwo+IEBAIC0xNTgyLDcgKzE1ODIsNyBAQCBFWFBPUlRfU1lNQk9MKHR0bV9ib19k ZXZpY2VfcmVsZWFzZSk7Cj4gICAKPiAgIHN0YXRpYyB2b2lkIHR0bV9ib19pbml0X3N5c21hbihz dHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldikKPiAgIHsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVf bWFuYWdlciAqbWFuID0gJmJkZXYtPnN5c21hbjsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlciAqbWFuID0gJmJkZXYtPnN5c21hbjsKPiAgIAo+ICAgCS8qCj4gICAJICogSW5pdGlhbGl6 ZSB0aGUgc3lzdGVtIG1lbW9yeSBidWZmZXIgdHlwZS4KPiBAQCAtMTU5Miw5ICsxNTkyLDkgQEAg c3RhdGljIHZvaWQgdHRtX2JvX2luaXRfc3lzbWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 KQo+ICAgCW1hbi0+YXZhaWxhYmxlX2NhY2hpbmcgPSBUVE1fUExfTUFTS19DQUNISU5HOwo+ICAg CW1hbi0+ZGVmYXVsdF9jYWNoaW5nID0gVFRNX1BMX0ZMQUdfQ0FDSEVEOwo+ICAgCj4gLQl0dG1f bWVtX3R5cGVfbWFuYWdlcl9pbml0KG1hbiwgMCk7Cj4gKwl0dG1fcmVzb3VyY2VfbWFuYWdlcl9p bml0KG1hbiwgMCk7Cj4gICAJdHRtX3NldF9kcml2ZXJfbWFuYWdlcihiZGV2LCBUVE1fUExfU1lT VEVNLCBtYW4pOwo+IC0JdHRtX21lbV90eXBlX21hbmFnZXJfc2V0X3VzZWQobWFuLCB0cnVlKTsK PiArCXR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgdHJ1ZSk7Cj4gICB9Cj4gICAK PiAgIGludCB0dG1fYm9fZGV2aWNlX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4g QEAgLTE2NDUsNyArMTY0NSw3IEBAIHZvaWQgdHRtX2JvX3VubWFwX3ZpcnR1YWxfbG9ja2VkKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4gICB2b2lkIHR0bV9ib191bm1hcF92aXJ0dWFs KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4gICB7Cj4gICAJc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAq bWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBiby0+bWVtLm1lbV90eXBlKTsKPiArCXN0cnVj dCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBiby0+ bWVtLm1lbV90eXBlKTsKPiAgIAo+ICAgCXR0bV9tZW1faW9fbG9jayhtYW4sIGZhbHNlKTsKPiAg IAl0dG1fYm9fdW5tYXBfdmlydHVhbF9sb2NrZWQoYm8pOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191 dGlsLmMKPiBpbmRleCA4NzljOGRlZDBjZDguLjhlZjBkZThlMzZjNSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9ib191dGlsLmMKPiBAQCAtOTEsNyArOTEsNyBAQCBpbnQgdHRtX2JvX21vdmVfdHRt KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICB9Cj4gICBFWFBPUlRfU1lNQk9MKHR0 bV9ib19tb3ZlX3R0bSk7Cj4gICAKPiAtaW50IHR0bV9tZW1faW9fbG9jayhzdHJ1Y3QgdHRtX21l bV90eXBlX21hbmFnZXIgKm1hbiwgYm9vbCBpbnRlcnJ1cHRpYmxlKQo+ICtpbnQgdHRtX21lbV9p b19sb2NrKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLCBib29sIGludGVycnVwdGli bGUpCj4gICB7Cj4gICAJaWYgKGxpa2VseSghbWFuLT51c2VfaW9fcmVzZXJ2ZV9scnUpKQo+ICAg CQlyZXR1cm4gMDsKPiBAQCAtMTAzLDcgKzEwMyw3IEBAIGludCB0dG1fbWVtX2lvX2xvY2soc3Ry dWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sIGJvb2wgaW50ZXJydXB0aWJsZSkKPiAgIAly ZXR1cm4gMDsKPiAgIH0KPiAgIAo+IC12b2lkIHR0bV9tZW1faW9fdW5sb2NrKHN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciAqbWFuKQo+ICt2b2lkIHR0bV9tZW1faW9fdW5sb2NrKHN0cnVjdCB0 dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuKQo+ICAgewo+ICAgCWlmIChsaWtlbHkoIW1hbi0+dXNl X2lvX3Jlc2VydmVfbHJ1KSkKPiAgIAkJcmV0dXJuOwo+IEBAIC0xMTEsNyArMTExLDcgQEAgdm9p ZCB0dG1fbWVtX2lvX3VubG9jayhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbikKPiAg IAltdXRleF91bmxvY2soJm1hbi0+aW9fcmVzZXJ2ZV9tdXRleCk7Cj4gICB9Cj4gICAKPiAtc3Rh dGljIGludCB0dG1fbWVtX2lvX2V2aWN0KHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFu KQo+ICtzdGF0aWMgaW50IHR0bV9tZW1faW9fZXZpY3Qoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5h Z2VyICptYW4pCj4gICB7Cj4gICAJc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibzsKPiAgIAo+ IEBAIC0xMjksNyArMTI5LDcgQEAgc3RhdGljIGludCB0dG1fbWVtX2lvX2V2aWN0KHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQo+ICAgaW50IHR0bV9tZW1faW9fcmVzZXJ2ZShzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAgIAkJICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAq bWVtKQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFu YWdlcl90eXBlKGJkZXYsIG1lbS0+bWVtX3R5cGUpOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG1lbS0+bWVtX3R5cGUpOwo+ICAg CWludCByZXQ7Cj4gICAKPiAgIAlpZiAobWVtLT5idXMuaW9fcmVzZXJ2ZWRfY291bnQrKykKPiBA QCAtMTYyLDcgKzE2Miw3IEBAIHZvaWQgdHRtX21lbV9pb19mcmVlKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LAo+ICAgCj4gICBpbnQgdHRtX21lbV9pb19yZXNlcnZlX3ZtKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8pCj4gICB7Cj4gLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIg Km1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYm8tPmJkZXYsIGJvLT5tZW0ubWVtX3R5cGUpOwo+ICsJ c3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJvLT5i ZGV2LCBiby0+bWVtLm1lbV90eXBlKTsKPiAgIAlzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSA9ICZi by0+bWVtOwo+ICAgCWludCByZXQ7Cj4gICAKPiBAQCAtMTk1LDcgKzE5NSw3IEBAIHN0YXRpYyBp bnQgdHRtX21lbV9yZWdfaW9yZW1hcChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAgIAkJ CSAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwKPiAgIAkJCSAgICAgICB2b2lkICoqdmly dHVhbCkKPiAgIHsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0gdHRtX21h bmFnZXJfdHlwZShiZGV2LCBtZW0tPm1lbV90eXBlKTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2Vf bWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBtZW0tPm1lbV90eXBlKTsKPiAg IAlpbnQgcmV0Owo+ICAgCXZvaWQgKmFkZHI7Cj4gICAKPiBAQCAtMjMwLDcgKzIzMCw3IEBAIHN0 YXRpYyB2b2lkIHR0bV9tZW1fcmVnX2lvdW5tYXAoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs Cj4gICAJCQkJc3RydWN0IHR0bV9tZW1fcmVnICptZW0sCj4gICAJCQkJdm9pZCAqdmlydHVhbCkK PiAgIHsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuOwo+ICsJc3RydWN0IHR0 bV9yZXNvdXJjZV9tYW5hZ2VyICptYW47Cj4gICAKPiAgIAltYW4gPSB0dG1fbWFuYWdlcl90eXBl KGJkZXYsIG1lbS0+bWVtX3R5cGUpOwo+ICAgCj4gQEAgLTMwMyw3ICszMDMsNyBAQCBpbnQgdHRt X2JvX21vdmVfbWVtY3B5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJCSAgICAg ICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pCj4gICB7Cj4gICAJc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAq bWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBuZXdfbWVtLT5tZW1fdHlwZSk7Cj4gKwlzdHJ1 Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgbmV3 X21lbS0+bWVtX3R5cGUpOwo+ICAgCXN0cnVjdCB0dG1fdHQgKnR0bSA9IGJvLT50dG07Cj4gICAJ c3RydWN0IHR0bV9tZW1fcmVnICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gICAJc3RydWN0IHR0bV9t ZW1fcmVnIG9sZF9jb3B5ID0gKm9sZF9tZW07Cj4gQEAgLTU3MCw3ICs1NzAsNyBAQCBpbnQgdHRt X2JvX2ttYXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAkJdW5zaWduZWQgbG9u ZyBzdGFydF9wYWdlLCB1bnNpZ25lZCBsb25nIG51bV9wYWdlcywKPiAgIAkJc3RydWN0IHR0bV9i b19rbWFwX29iaiAqbWFwKQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICpt YW4gPQo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPQo+ICAgCQl0dG1fbWFu YWdlcl90eXBlKGJvLT5iZGV2LCBiby0+bWVtLm1lbV90eXBlKTsKPiAgIAl1bnNpZ25lZCBsb25n IG9mZnNldCwgc2l6ZTsKPiAgIAlpbnQgcmV0Owo+IEBAIC02MDAsNyArNjAwLDcgQEAgRVhQT1JU X1NZTUJPTCh0dG1fYm9fa21hcCk7Cj4gICB2b2lkIHR0bV9ib19rdW5tYXAoc3RydWN0IHR0bV9i b19rbWFwX29iaiAqbWFwKQo+ICAgewo+ICAgCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8g PSBtYXAtPmJvOwo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPQo+ICsJc3Ry dWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPQo+ICAgCQl0dG1fbWFuYWdlcl90eXBlKGJv LT5iZGV2LCBiby0+bWVtLm1lbV90eXBlKTsKPiAgIAo+ICAgCWlmICghbWFwLT52aXJ0dWFsKQo+ IEBAIC02MzQsNyArNjM0LDcgQEAgaW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAkJCSAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAq bmV3X21lbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2 Owo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBl KGJkZXYsIG5ld19tZW0tPm1lbV90eXBlKTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdl ciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBuZXdfbWVtLT5tZW1fdHlwZSk7Cj4gICAJ c3RydWN0IHR0bV9tZW1fcmVnICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gICAJaW50IHJldDsKPiAg IAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmdob3N0X29iajsKPiBAQCAtNjk3LDggKzY5Nyw4 IEBAIGludCB0dG1fYm9fcGlwZWxpbmVfbW92ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAo+ICAgCXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4gICAJc3RydWN0 IHR0bV9tZW1fcmVnICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gICAKPiAtCXN0cnVjdCB0dG1fbWVt X3R5cGVfbWFuYWdlciAqZnJvbSA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgb2xkX21lbS0+bWVt X3R5cGUpOwo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICp0byA9IHR0bV9tYW5hZ2Vy X3R5cGUoYmRldiwgbmV3X21lbS0+bWVtX3R5cGUpOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICpmcm9tID0gdHRtX21hbmFnZXJfdHlwZShiZGV2LCBvbGRfbWVtLT5tZW1fdHlwZSk7 Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKnRvID0gdHRtX21hbmFnZXJfdHlwZShi ZGV2LCBuZXdfbWVtLT5tZW1fdHlwZSk7Cj4gICAKPiAgIAlpbnQgcmV0Owo+ICAgCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9ib192bS5jCj4gaW5kZXggNWFlNjc5MTg0ZWI1Li5jOGVmY2VlZjAxNWQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvX3ZtLmMKPiBAQCAtMjgxLDcgKzI4MSw3IEBAIHZtX2ZhdWx0X3Qg dHRtX2JvX3ZtX2ZhdWx0X3Jlc2VydmVkKHN0cnVjdCB2bV9mYXVsdCAqdm1mLAo+ICAgCXBnb2Zm X3QgaTsKPiAgIAl2bV9mYXVsdF90IHJldCA9IFZNX0ZBVUxUX05PUEFHRTsKPiAgIAl1bnNpZ25l ZCBsb25nIGFkZHJlc3MgPSB2bWYtPmFkZHJlc3M7Cj4gLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21h bmFnZXIgKm1hbiA9Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9Cj4gICAJ CXR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgYm8tPm1lbS5tZW1fdHlwZSk7Cj4gICAKPiAgIAkvKgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yYW5nZV9tYW5hZ2VyLmMgYi9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yYW5nZV9tYW5hZ2VyLmMKPiBpbmRleCA1MmQ5YTBlZDcx NjUuLjIyZGU5ZjIwOTQ0OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9y YW5nZV9tYW5hZ2VyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yYW5nZV9tYW5h Z2VyLmMKPiBAQCAtNDQsMTcgKzQ0LDE3IEBACj4gICAgKi8KPiAgIAo+ICAgc3RydWN0IHR0bV9y YW5nZV9tYW5hZ2VyIHsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciBtYW5hZ2VyOwo+ ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyIG1hbmFnZXI7Cj4gICAJc3RydWN0IGRybV9t bSBtbTsKPiAgIAlzcGlubG9ja190IGxvY2s7Cj4gICB9Owo+ICAgCj4gLXN0YXRpYyBpbmxpbmUg c3RydWN0IHR0bV9yYW5nZV9tYW5hZ2VyICp0b19yYW5nZV9tYW5hZ2VyKHN0cnVjdCB0dG1fbWVt X3R5cGVfbWFuYWdlciAqbWFuKQo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCB0dG1fcmFuZ2VfbWFu YWdlciAqdG9fcmFuZ2VfbWFuYWdlcihzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbikK PiAgIHsKPiAgIAlyZXR1cm4gY29udGFpbmVyX29mKG1hbiwgc3RydWN0IHR0bV9yYW5nZV9tYW5h Z2VyLCBtYW5hZ2VyKTsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50IHR0bV9yYW5nZV9tYW5fZ2V0 X25vZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gK3N0YXRpYyBpbnQgdHRt X3JhbmdlX21hbl9nZXRfbm9kZShzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiAg IAkJCQkgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJCQkJICBjb25zdCBzdHJ1 Y3QgdHRtX3BsYWNlICpwbGFjZSwKPiAgIAkJCQkgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ IEBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBpbnQgdHRtX3JhbmdlX21hbl9nZXRfbm9kZShzdHJ1 Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+ICAg Cj4gLXN0YXRpYyB2b2lkIHR0bV9yYW5nZV9tYW5fcHV0X25vZGUoc3RydWN0IHR0bV9tZW1fdHlw ZV9tYW5hZ2VyICptYW4sCj4gK3N0YXRpYyB2b2lkIHR0bV9yYW5nZV9tYW5fcHV0X25vZGUoc3Ry dWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gICAJCQkJICAgc3RydWN0IHR0bV9tZW1f cmVnICptZW0pCj4gICB7Cj4gICAJc3RydWN0IHR0bV9yYW5nZV9tYW5hZ2VyICpybWFuID0gdG9f cmFuZ2VfbWFuYWdlcihtYW4pOwo+IEBAIC0xMTAsNyArMTEwLDcgQEAgc3RhdGljIHZvaWQgdHRt X3JhbmdlX21hbl9wdXRfbm9kZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiAg IAl9Cj4gICB9Cj4gICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdl cl9mdW5jIHR0bV9yYW5nZV9tYW5hZ2VyX2Z1bmM7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHRt X3Jlc291cmNlX21hbmFnZXJfZnVuYyB0dG1fcmFuZ2VfbWFuYWdlcl9mdW5jOwo+ICAgCj4gICBp bnQgdHRtX3JhbmdlX21hbl9pbml0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ICAgCQkg ICAgICAgdW5zaWduZWQgdHlwZSwKPiBAQCAtMTE5LDcgKzExOSw3IEBAIGludCB0dG1fcmFuZ2Vf bWFuX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4gICAJCSAgICAgICBib29sIHVz ZV90dCwKPiAgIAkJICAgICAgIHVuc2lnbmVkIGxvbmcgcF9zaXplKQo+ICAgewo+IC0Jc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW47Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFn ZXIgKm1hbjsKPiAgIAlzdHJ1Y3QgdHRtX3JhbmdlX21hbmFnZXIgKnJtYW47Cj4gICAKPiAgIAly bWFuID0ga3phbGxvYyhzaXplb2YoKnJtYW4pLCBHRlBfS0VSTkVMKTsKPiBAQCAtMTMzLDEzICsx MzMsMTMgQEAgaW50IHR0bV9yYW5nZV9tYW5faW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwKPiAgIAo+ICAgCW1hbi0+ZnVuYyA9ICZ0dG1fcmFuZ2VfbWFuYWdlcl9mdW5jOwo+ICAgCj4g LQl0dG1fbWVtX3R5cGVfbWFuYWdlcl9pbml0KG1hbiwgcF9zaXplKTsKPiArCXR0bV9yZXNvdXJj ZV9tYW5hZ2VyX2luaXQobWFuLCBwX3NpemUpOwo+ICAgCj4gICAJZHJtX21tX2luaXQoJnJtYW4t Pm1tLCAwLCBwX3NpemUpOwo+ICAgCXNwaW5fbG9ja19pbml0KCZybWFuLT5sb2NrKTsKPiAgIAo+ ICAgCXR0bV9zZXRfZHJpdmVyX21hbmFnZXIoYmRldiwgdHlwZSwgJnJtYW4tPm1hbmFnZXIpOwo+ IC0JdHRtX21lbV90eXBlX21hbmFnZXJfc2V0X3VzZWQobWFuLCB0cnVlKTsKPiArCXR0bV9yZXNv dXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgdHJ1ZSk7Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4g ICBFWFBPUlRfU1lNQk9MKHR0bV9yYW5nZV9tYW5faW5pdCk7Cj4gQEAgLTE0NywxNCArMTQ3LDE0 IEBAIEVYUE9SVF9TWU1CT0wodHRtX3JhbmdlX21hbl9pbml0KTsKPiAgIGludCB0dG1fcmFuZ2Vf bWFuX2Zpbmkoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4gICAJCSAgICAgICB1bnNpZ25l ZCB0eXBlKQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1f bWFuYWdlcl90eXBlKGJkZXYsIHR5cGUpOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2Vy ICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIHR5cGUpOwo+ICAgCXN0cnVjdCB0dG1fcmFu Z2VfbWFuYWdlciAqcm1hbiA9IHRvX3JhbmdlX21hbmFnZXIobWFuKTsKPiAgIAlzdHJ1Y3QgZHJt X21tICptbSA9ICZybWFuLT5tbTsKPiAgIAlpbnQgcmV0Owo+ICAgCj4gLQl0dG1fbWVtX3R5cGVf bWFuYWdlcl9zZXRfdXNlZChtYW4sIGZhbHNlKTsKPiArCXR0bV9yZXNvdXJjZV9tYW5hZ2VyX3Nl dF91c2VkKG1hbiwgZmFsc2UpOwo+ICAgCj4gLQlyZXQgPSB0dG1fbWVtX3R5cGVfbWFuYWdlcl9m b3JjZV9saXN0X2NsZWFuKGJkZXYsIG1hbik7Cj4gKwlyZXQgPSB0dG1fcmVzb3VyY2VfbWFuYWdl cl9mb3JjZV9saXN0X2NsZWFuKGJkZXYsIG1hbik7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJu IHJldDsKPiAgIAo+IEBAIC0xNjMsMTQgKzE2MywxNCBAQCBpbnQgdHRtX3JhbmdlX21hbl9maW5p KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ICAgCWRybV9tbV90YWtlZG93bihtbSk7Cj4g ICAJc3Bpbl91bmxvY2soJnJtYW4tPmxvY2spOwo+ICAgCj4gLQl0dG1fbWVtX3R5cGVfbWFuYWdl cl9jbGVhbnVwKG1hbik7Cj4gKwl0dG1fcmVzb3VyY2VfbWFuYWdlcl9jbGVhbnVwKG1hbik7Cj4g ICAJdHRtX3NldF9kcml2ZXJfbWFuYWdlcihiZGV2LCB0eXBlLCBOVUxMKTsKPiAgIAlrZnJlZShy bWFuKTsKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIEVYUE9SVF9TWU1CT0wodHRtX3JhbmdlX21h bl9maW5pKTsKPiAgIAo+IC1zdGF0aWMgdm9pZCB0dG1fcmFuZ2VfbWFuX2RlYnVnKHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ICtzdGF0aWMgdm9pZCB0dG1fcmFuZ2VfbWFuX2Rl YnVnKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ICAgCQkJICAgICBzdHJ1Y3Qg ZHJtX3ByaW50ZXIgKnByaW50ZXIpCj4gICB7Cj4gICAJc3RydWN0IHR0bV9yYW5nZV9tYW5hZ2Vy ICpybWFuID0gdG9fcmFuZ2VfbWFuYWdlcihtYW4pOwo+IEBAIC0xODAsNyArMTgwLDcgQEAgc3Rh dGljIHZvaWQgdHRtX3JhbmdlX21hbl9kZWJ1ZyhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIg Km1hbiwKPiAgIAlzcGluX3VubG9jaygmcm1hbi0+bG9jayk7Cj4gICB9Cj4gICAKPiAtc3RhdGlj IGNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9mdW5jIHR0bV9yYW5nZV9tYW5hZ2Vy X2Z1bmMgPSB7Cj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVu YyB0dG1fcmFuZ2VfbWFuYWdlcl9mdW5jID0gewo+ICAgCS5nZXRfbm9kZSA9IHR0bV9yYW5nZV9t YW5fZ2V0X25vZGUsCj4gICAJLnB1dF9ub2RlID0gdHRtX3JhbmdlX21hbl9wdXRfbm9kZSwKPiAg IAkuZGVidWcgPSB0dG1fcmFuZ2VfbWFuX2RlYnVnCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf ZHJ2LmMKPiBpbmRleCBiMmYxZTdhM2IwNDguLjc2NDVkNjdhYTZiNiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2Rydi5jCj4gQEAgLTYzMCw3ICs2MzAsNyBAQCBzdGF0aWMgaW50IHZt d192cmFtX21hbmFnZXJfaW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCQkJ CSBUVE1fUExfRkxBR19DQUNIRUQsIFRUTV9QTF9GTEFHX0NBQ0hFRCwKPiAgIAkJCQkgZmFsc2Us IGRldl9wcml2LT52cmFtX3NpemUgPj4gUEFHRV9TSElGVCk7Cj4gICAjZW5kaWYKPiAtCXR0bV9t ZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKHR0bV9tYW5hZ2VyX3R5cGUoJmRldl9wcml2LT5iZGV2 LCBUVE1fUExfVlJBTSksIGZhbHNlKTsKPiArCXR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2Vk KHR0bV9tYW5hZ2VyX3R5cGUoJmRldl9wcml2LT5iZGV2LCBUVE1fUExfVlJBTSksIGZhbHNlKTsK PiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+ICAgCj4gQEAgLTExODksMTIgKzExODksMTIgQEAgc3Rh dGljIHZvaWQgdm13X21hc3Rlcl9kcm9wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAgKi8K PiAgIHN0YXRpYyB2b2lkIF9fdm13X3N2Z2FfZW5hYmxlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gICB7Cj4gLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9IHR0bV9t YW5hZ2VyX3R5cGUoJmRldl9wcml2LT5iZGV2LCBUVE1fUExfVlJBTSk7Cj4gKwlzdHJ1Y3QgdHRt X3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5cGUoJmRldl9wcml2LT5iZGV2 LCBUVE1fUExfVlJBTSk7Cj4gICAKPiAgIAlzcGluX2xvY2soJmRldl9wcml2LT5zdmdhX2xvY2sp Owo+IC0JaWYgKCF0dG1fbWVtX3R5cGVfbWFuYWdlcl91c2VkKG1hbikpIHsKPiArCWlmICghdHRt X3Jlc291cmNlX21hbmFnZXJfdXNlZChtYW4pKSB7Cj4gICAJCXZtd193cml0ZShkZXZfcHJpdiwg U1ZHQV9SRUdfRU5BQkxFLCBTVkdBX1JFR19FTkFCTEUpOwo+IC0JCXR0bV9tZW1fdHlwZV9tYW5h Z2VyX3NldF91c2VkKG1hbiwgdHJ1ZSk7Cj4gKwkJdHRtX3Jlc291cmNlX21hbmFnZXJfc2V0X3Vz ZWQobWFuLCB0cnVlKTsKPiAgIAl9Cj4gICAJc3Bpbl91bmxvY2soJmRldl9wcml2LT5zdmdhX2xv Y2spOwo+ICAgfQo+IEBAIC0xMjIwLDExICsxMjIwLDExIEBAIHZvaWQgdm13X3N2Z2FfZW5hYmxl KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAgKi8KPiAgIHN0YXRpYyB2b2lkIF9f dm13X3N2Z2FfZGlzYWJsZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0J c3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZkZXZf cHJpdi0+YmRldiwgVFRNX1BMX1ZSQU0pOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2Vy ICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZkZXZfcHJpdi0+YmRldiwgVFRNX1BMX1ZSQU0pOwo+ ICAgCj4gICAJc3Bpbl9sb2NrKCZkZXZfcHJpdi0+c3ZnYV9sb2NrKTsKPiAtCWlmICh0dG1fbWVt X3R5cGVfbWFuYWdlcl91c2VkKG1hbikpIHsKPiAtCQl0dG1fbWVtX3R5cGVfbWFuYWdlcl9zZXRf dXNlZChtYW4sIGZhbHNlKTsKPiArCWlmICh0dG1fcmVzb3VyY2VfbWFuYWdlcl91c2VkKG1hbikp IHsKPiArCQl0dG1fcmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIGZhbHNlKTsKPiAgIAkJ dm13X3dyaXRlKGRldl9wcml2LCBTVkdBX1JFR19FTkFCTEUsCj4gICAJCQkgIFNWR0FfUkVHX0VO QUJMRV9ISURFIHwKPiAgIAkJCSAgU1ZHQV9SRUdfRU5BQkxFX0VOQUJMRSk7Cj4gQEAgLTEyNDEs NyArMTI0MSw3IEBAIHN0YXRpYyB2b2lkIF9fdm13X3N2Z2FfZGlzYWJsZShzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2KQo+ICAgICovCj4gICB2b2lkIHZtd19zdmdhX2Rpc2FibGUoc3RydWN0 IHZtd19wcml2YXRlICpkZXZfcHJpdikKPiAgIHsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlwZSgmZGV2X3ByaXYtPmJkZXYsIFRUTV9QTF9WUkFN KTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0gdHRtX21hbmFnZXJfdHlw ZSgmZGV2X3ByaXYtPmJkZXYsIFRUTV9QTF9WUkFNKTsKPiAgIAkvKgo+ICAgCSAqIERpc2FibGlu ZyBTVkdBIHdpbGwgdHVybiBvZmYgZGV2aWNlIG1vZGVzZXR0aW5nIGNhcGFiaWxpdGllcywgc28K PiAgIAkgKiBub3RpZnkgS01TIGFib3V0IHRoYXQgc28gdGhhdCBpdCBkb2Vzbid0IGNhY2hlIGF0 b21pYyBzdGF0ZSB0aGF0Cj4gQEAgLTEyNTcsOCArMTI1Nyw4IEBAIHZvaWQgdm13X3N2Z2FfZGlz YWJsZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCXZtd19rbXNfbG9zdF9kZXZp Y2UoZGV2X3ByaXYtPmRldik7Cj4gICAJdHRtX3dyaXRlX2xvY2soJmRldl9wcml2LT5yZXNlcnZh dGlvbl9zZW0sIGZhbHNlKTsKPiAgIAlzcGluX2xvY2soJmRldl9wcml2LT5zdmdhX2xvY2spOwo+ IC0JaWYgKHR0bV9tZW1fdHlwZV9tYW5hZ2VyX3VzZWQobWFuKSkgewo+IC0JCXR0bV9tZW1fdHlw ZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFsc2UpOwo+ICsJaWYgKHR0bV9yZXNvdXJjZV9tYW5h Z2VyX3VzZWQobWFuKSkgewo+ICsJCXR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwg ZmFsc2UpOwo+ICAgCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPnN2Z2FfbG9jayk7Cj4gICAJCWlm ICh0dG1fYm9fZXZpY3RfbW0oJmRldl9wcml2LT5iZGV2LCBUVE1fUExfVlJBTSkpCj4gICAJCQlE Uk1fRVJST1IoIkZhaWxlZCBldmljdGluZyBWUkFNIGJ1ZmZlcnMuXG4iKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jCj4gaW5kZXggY2E1MDM3MTg0 ODE0Li5jOGZlNmU5Y2YwOTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfZ21yaWRfbWFuYWdlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfZ21yaWRfbWFuYWdlci5jCj4gQEAgLTM3LDcgKzM3LDcgQEAKPiAgICNpbmNsdWRlIDxsaW51 eC9rZXJuZWwuaD4KPiAgIAo+ICAgc3RydWN0IHZtd2dmeF9nbXJpZF9tYW4gewo+IC0Jc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyIG1hbmFnZXI7Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgbWFuYWdlcjsKPiAgIAlzcGlubG9ja190IGxvY2s7Cj4gICAJc3RydWN0IGlkYSBnbXJf aWRhOwo+ICAgCXVpbnQzMl90IG1heF9nbXJfaWRzOwo+IEBAIC00NSwxMiArNDUsMTIgQEAgc3Ry dWN0IHZtd2dmeF9nbXJpZF9tYW4gewo+ICAgCXVpbnQzMl90IHVzZWRfZ21yX3BhZ2VzOwo+ICAg fTsKPiAgIAo+IC1zdGF0aWMgc3RydWN0IHZtd2dmeF9nbXJpZF9tYW4gKnRvX2dtcmlkX21hbmFn ZXIoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pCj4gK3N0YXRpYyBzdHJ1Y3Qgdm13 Z2Z4X2dtcmlkX21hbiAqdG9fZ21yaWRfbWFuYWdlcihzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFn ZXIgKm1hbikKPiAgIHsKPiAgIAlyZXR1cm4gY29udGFpbmVyX29mKG1hbiwgc3RydWN0IHZtd2dm eF9nbXJpZF9tYW4sIG1hbmFnZXIpOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyBpbnQgdm13X2dtcmlk X21hbl9nZXRfbm9kZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiArc3RhdGlj IGludCB2bXdfZ21yaWRfbWFuX2dldF9ub2RlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAq bWFuLAo+ICAgCQkJCSAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAkJCQkgIGNv bnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAo+ICAgCQkJCSAgc3RydWN0IHR0bV9tZW1fcmVn ICptZW0pCj4gQEAgLTg0LDcgKzg0LDcgQEAgc3RhdGljIGludCB2bXdfZ21yaWRfbWFuX2dldF9u b2RlKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ICAgCXJldHVybiAtRU5PU1BD Owo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lkIHZtd19nbXJpZF9tYW5fcHV0X25vZGUoc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gK3N0YXRpYyB2b2lkIHZtd19nbXJpZF9tYW5f cHV0X25vZGUoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gICAJCQkJICAgc3Ry dWN0IHR0bV9tZW1fcmVnICptZW0pCj4gICB7Cj4gICAJc3RydWN0IHZtd2dmeF9nbXJpZF9tYW4g KmdtYW4gPSB0b19nbXJpZF9tYW5hZ2VyKG1hbik7Cj4gQEAgLTk4LDExICs5OCwxMSBAQCBzdGF0 aWMgdm9pZCB2bXdfZ21yaWRfbWFuX3B1dF9ub2RlKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdl ciAqbWFuLAo+ICAgCX0KPiAgIH0KPiAgIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IHR0bV9tZW1f dHlwZV9tYW5hZ2VyX2Z1bmMgdm13X2dtcmlkX21hbmFnZXJfZnVuYzsKPiArc3RhdGljIGNvbnN0 IHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mdW5jIHZtd19nbXJpZF9tYW5hZ2VyX2Z1bmM7 Cj4gICAKPiAgIGludCB2bXdfZ21yaWRfbWFuX2luaXQoc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdiwgaW50IHR5cGUpCj4gICB7Cj4gLQlzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1h bjsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuOwo+ICAgCXN0cnVjdCB2bXdn ZnhfZ21yaWRfbWFuICpnbWFuID0KPiAgIAkJa3phbGxvYyhzaXplb2YoKmdtYW4pLCBHRlBfS0VS TkVMKTsKPiAgIAo+IEBAIC0xMTYsNyArMTE2LDcgQEAgaW50IHZtd19nbXJpZF9tYW5faW5pdChz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdHlwZSkKPiAgIAltYW4tPmRlZmF1bHRf Y2FjaGluZyA9IFRUTV9QTF9GTEFHX0NBQ0hFRDsKPiAgIAkvKiBUT0RPOiBUaGlzIGlzIG1vc3Qg bGlrZWx5IG5vdCBjb3JyZWN0ICovCj4gICAJbWFuLT51c2VfdHQgPSB0cnVlOwo+IC0JdHRtX21l bV90eXBlX21hbmFnZXJfaW5pdChtYW4sIDApOwo+ICsJdHRtX3Jlc291cmNlX21hbmFnZXJfaW5p dChtYW4sIDApOwo+ICAgCXNwaW5fbG9ja19pbml0KCZnbWFuLT5sb2NrKTsKPiAgIAlnbWFuLT51 c2VkX2dtcl9wYWdlcyA9IDA7Cj4gICAJaWRhX2luaXQoJmdtYW4tPmdtcl9pZGEpOwo+IEBAIC0x MzQsMjAgKzEzNCwyMCBAQCBpbnQgdm13X2dtcmlkX21hbl9pbml0KHN0cnVjdCB2bXdfcHJpdmF0 ZSAqZGV2X3ByaXYsIGludCB0eXBlKQo+ICAgCQlCVUcoKTsKPiAgIAl9Cj4gICAJdHRtX3NldF9k cml2ZXJfbWFuYWdlcigmZGV2X3ByaXYtPmJkZXYsIHR5cGUsICZnbWFuLT5tYW5hZ2VyKTsKPiAt CXR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgdHJ1ZSk7Cj4gKwl0dG1fcmVzb3Vy Y2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIHRydWUpOwo+ICAgCXJldHVybiAwOwo+ICAgfQo+ICAg Cj4gICB2b2lkIHZtd19nbXJpZF9tYW5fZmluaShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 LCBpbnQgdHlwZSkKPiAgIHsKPiAtCXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuID0g dHRtX21hbmFnZXJfdHlwZSgmZGV2X3ByaXYtPmJkZXYsIHR5cGUpOwo+ICsJc3RydWN0IHR0bV9y ZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZkZXZfcHJpdi0+YmRldiwg dHlwZSk7Cj4gICAJc3RydWN0IHZtd2dmeF9nbXJpZF9tYW4gKmdtYW4gPSB0b19nbXJpZF9tYW5h Z2VyKG1hbik7Cj4gICAKPiAtCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKG1hbiwgZmFs c2UpOwo+ICsJdHRtX3Jlc291cmNlX21hbmFnZXJfc2V0X3VzZWQobWFuLCBmYWxzZSk7Cj4gICAK PiAtCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4oJmRldl9wcml2LT5iZGV2 LCBtYW4pOwo+ICsJdHRtX3Jlc291cmNlX21hbmFnZXJfZm9yY2VfbGlzdF9jbGVhbigmZGV2X3By aXYtPmJkZXYsIG1hbik7Cj4gICAKPiAtCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX2NsZWFudXAobWFu KTsKPiArCXR0bV9yZXNvdXJjZV9tYW5hZ2VyX2NsZWFudXAobWFuKTsKPiAgIAo+ICAgCXR0bV9z ZXRfZHJpdmVyX21hbmFnZXIoJmRldl9wcml2LT5iZGV2LCB0eXBlLCBOVUxMKTsKPiAgIAlpZGFf ZGVzdHJveSgmZ21hbi0+Z21yX2lkYSk7Cj4gQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIHZtd19n bXJpZF9tYW5fZmluaShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdHlwZSkKPiAg IAo+ICAgfQo+ICAgCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJf ZnVuYyB2bXdfZ21yaWRfbWFuYWdlcl9mdW5jID0gewo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHR0 bV9yZXNvdXJjZV9tYW5hZ2VyX2Z1bmMgdm13X2dtcmlkX21hbmFnZXJfZnVuYyA9IHsKPiAgIAku Z2V0X25vZGUgPSB2bXdfZ21yaWRfbWFuX2dldF9ub2RlLAo+ICAgCS5wdXRfbm9kZSA9IHZtd19n bXJpZF9tYW5fcHV0X25vZGUsCj4gICB9Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF90aHAuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3RocC5j Cj4gaW5kZXggNDExMGU4MzA5MTg4Li42Y2FjN2IwOTEyMDUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdGhwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF90aHAuYwo+IEBAIC0xNiwxMiArMTYsMTIgQEAKPiAgICAqIEBsb2NrOiBNYW5h Z2VyIGxvY2suCj4gICAgKi8KPiAgIHN0cnVjdCB2bXdfdGhwX21hbmFnZXIgewo+IC0Jc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyIG1hbmFnZXI7Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgbWFuYWdlcjsKPiAgIAlzdHJ1Y3QgZHJtX21tIG1tOwo+ICAgCXNwaW5sb2NrX3QgbG9j azsKPiAgIH07Cj4gICAKPiAtc3RhdGljIHN0cnVjdCB2bXdfdGhwX21hbmFnZXIgKnRvX3RocF9t YW5hZ2VyKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQo+ICtzdGF0aWMgc3RydWN0 IHZtd190aHBfbWFuYWdlciAqdG9fdGhwX21hbmFnZXIoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5h Z2VyICptYW4pCj4gICB7Cj4gICAJcmV0dXJuIGNvbnRhaW5lcl9vZihtYW4sIHN0cnVjdCB2bXdf dGhwX21hbmFnZXIsIG1hbmFnZXIpOwo+ICAgfQo+IEBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBp bnQgdm13X3RocF9pbnNlcnRfYWxpZ25lZChzdHJ1Y3QgZHJtX21tICptbSwgc3RydWN0IGRybV9t bV9ub2RlICpub2RlLAo+ICAgCXJldHVybiAtRU5PU1BDOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyBp bnQgdm13X3RocF9nZXRfbm9kZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiAr c3RhdGljIGludCB2bXdfdGhwX2dldF9ub2RlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAq bWFuLAo+ICAgCQkJICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJCQkgICAg Y29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4gICAJCQkgICAgc3RydWN0IHR0bV9tZW1f cmVnICptZW0pCj4gQEAgLTEwNiw3ICsxMDYsNyBAQCBzdGF0aWMgaW50IHZtd190aHBfZ2V0X25v ZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gICAKPiAgIAo+ICAgCj4gLXN0 YXRpYyB2b2lkIHZtd190aHBfcHV0X25vZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICpt YW4sCj4gK3N0YXRpYyB2b2lkIHZtd190aHBfcHV0X25vZGUoc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICptYW4sCj4gICAJCQkgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICAgewo+ ICAgCXN0cnVjdCB2bXdfdGhwX21hbmFnZXIgKnJtYW4gPSB0b190aHBfbWFuYWdlcihtYW4pOwo+ IEBAIC0xMjMsNyArMTIzLDcgQEAgc3RhdGljIHZvaWQgdm13X3RocF9wdXRfbm9kZShzdHJ1Y3Qg dHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKPiAgIAo+ICAgaW50IHZtd190aHBfaW5pdChzdHJ1 Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9t YW5hZ2VyICptYW47Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbjsKPiAgIAlz dHJ1Y3Qgdm13X3RocF9tYW5hZ2VyICpybWFuOwo+ICAgCj4gICAJcm1hbiA9IGt6YWxsb2Moc2l6 ZW9mKCpybWFuKSwgR0ZQX0tFUk5FTCk7Cj4gQEAgLTEzNCwzOSArMTM0LDM5IEBAIGludCB2bXdf dGhwX2luaXQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikKPiAgIAltYW4tPmF2YWlsYWJs ZV9jYWNoaW5nID0gVFRNX1BMX0ZMQUdfQ0FDSEVEOwo+ICAgCW1hbi0+ZGVmYXVsdF9jYWNoaW5n ID0gVFRNX1BMX0ZMQUdfQ0FDSEVEOwo+ICAgCj4gLQl0dG1fbWVtX3R5cGVfbWFuYWdlcl9pbml0 KG1hbiwKPiArCXR0bV9yZXNvdXJjZV9tYW5hZ2VyX2luaXQobWFuLAo+ICAgCQkJCSAgZGV2X3By aXYtPnZyYW1fc2l6ZSA+PiBQQUdFX1NISUZUKTsKPiAgIAo+ICAgCWRybV9tbV9pbml0KCZybWFu LT5tbSwgMCwgbWFuLT5zaXplKTsKPiAgIAlzcGluX2xvY2tfaW5pdCgmcm1hbi0+bG9jayk7Cj4g ICAKPiAgIAl0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKCZkZXZfcHJpdi0+YmRldiwgVFRNX1BMX1ZS QU0sICZybWFuLT5tYW5hZ2VyKTsKPiAtCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKG1h biwgdHJ1ZSk7Cj4gKwl0dG1fcmVzb3VyY2VfbWFuYWdlcl9zZXRfdXNlZChtYW4sIHRydWUpOwo+ ICAgCXJldHVybiAwOwo+ICAgfQo+ICAgCj4gICB2b2lkIHZtd190aHBfZmluaShzdHJ1Y3Qgdm13 X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2Vy ICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZkZXZfcHJpdi0+YmRldiwgVFRNX1BMX1ZSQU0pOwo+ ICsJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKCZk ZXZfcHJpdi0+YmRldiwgVFRNX1BMX1ZSQU0pOwo+ICAgCXN0cnVjdCB2bXdfdGhwX21hbmFnZXIg KnJtYW4gPSB0b190aHBfbWFuYWdlcihtYW4pOwo+ICAgCXN0cnVjdCBkcm1fbW0gKm1tID0gJnJt YW4tPm1tOwo+ICAgCWludCByZXQ7Cj4gICAKPiAtCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91 c2VkKG1hbiwgZmFsc2UpOwo+ICsJdHRtX3Jlc291cmNlX21hbmFnZXJfc2V0X3VzZWQobWFuLCBm YWxzZSk7Cj4gICAKPiAtCXJldCA9IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xl YW4oJmRldl9wcml2LT5iZGV2LCBtYW4pOwo+ICsJcmV0ID0gdHRtX3Jlc291cmNlX21hbmFnZXJf Zm9yY2VfbGlzdF9jbGVhbigmZGV2X3ByaXYtPmJkZXYsIG1hbik7Cj4gICAJaWYgKHJldCkKPiAg IAkJcmV0dXJuOwo+ICAgCXNwaW5fbG9jaygmcm1hbi0+bG9jayk7Cj4gICAJZHJtX21tX2NsZWFu KG1tKTsKPiAgIAlkcm1fbW1fdGFrZWRvd24obW0pOwo+ICAgCXNwaW5fdW5sb2NrKCZybWFuLT5s b2NrKTsKPiAtCXR0bV9tZW1fdHlwZV9tYW5hZ2VyX2NsZWFudXAobWFuKTsKPiArCXR0bV9yZXNv dXJjZV9tYW5hZ2VyX2NsZWFudXAobWFuKTsKPiAgIAl0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKCZk ZXZfcHJpdi0+YmRldiwgVFRNX1BMX1ZSQU0sIE5VTEwpOwo+ICAgCWtmcmVlKHJtYW4pOwo+ICAg fQo+ICAgCj4gLXN0YXRpYyB2b2lkIHZtd190aHBfZGVidWcoc3RydWN0IHR0bV9tZW1fdHlwZV9t YW5hZ2VyICptYW4sCj4gK3N0YXRpYyB2b2lkIHZtd190aHBfZGVidWcoc3RydWN0IHR0bV9yZXNv dXJjZV9tYW5hZ2VyICptYW4sCj4gICAJCQkgIHN0cnVjdCBkcm1fcHJpbnRlciAqcHJpbnRlcikK PiAgIHsKPiAgIAlzdHJ1Y3Qgdm13X3RocF9tYW5hZ2VyICpybWFuID0gdG9fdGhwX21hbmFnZXIo bWFuKTsKPiBAQCAtMTc2LDcgKzE3Niw3IEBAIHN0YXRpYyB2b2lkIHZtd190aHBfZGVidWcoc3Ry dWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gICAJc3Bpbl91bmxvY2soJnJtYW4tPmxv Y2spOwo+ICAgfQo+ICAgCj4gLWNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9mdW5j IHZtd190aHBfZnVuYyA9IHsKPiArY29uc3Qgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2Z1 bmMgdm13X3RocF9mdW5jID0gewo+ICAgCS5nZXRfbm9kZSA9IHZtd190aHBfZ2V0X25vZGUsCj4g ICAJLnB1dF9ub2RlID0gdm13X3RocF9wdXRfbm9kZSwKPiAgIAkuZGVidWcgPSB2bXdfdGhwX2Rl YnVnCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmggYi9pbmNsdWRl L2RybS90dG0vdHRtX2JvX2FwaS5oCj4gaW5kZXggZWI0NjVlOWNhMGMxLi4xNTk1OGRmZjExZDIg MTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAo+ICsrKyBiL2luY2x1 ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKPiBAQCAtNTQsNyArNTQsNyBAQCBzdHJ1Y3QgdHRtX3Bs YWNlOwo+ICAgCj4gICBzdHJ1Y3QgdHRtX2xydV9idWxrX21vdmU7Cj4gICAKPiAtc3RydWN0IHR0 bV9tZW1fdHlwZV9tYW5hZ2VyOwo+ICtzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXI7Cj4gICAK PiAgIC8qKgo+ICAgICogc3RydWN0IHR0bV9idXNfcGxhY2VtZW50Cj4gQEAgLTUzNCwxNCArNTM0 LDE0IEBAIGludCB0dG1fYm9fY3JlYXRlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1bnNp Z25lZCBsb25nIHNpemUsCj4gICAJCSAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICoqcF9ibyk7 Cj4gICAKPiAgIC8qKgo+IC0gKiB0dG1fbWVtX3R5cGVfbWFuYWdlcl9pbml0Cj4gKyAqIHR0bV9y ZXNvdXJjZV9tYW5hZ2VyX2luaXQKPiAgICAqCj4gICAgKiBAbWFuOiBtZW1vcnkgbWFuYWdlciBv YmplY3QgdG8gaW5pdAo+ICAgICogQHBfc2l6ZTogc2l6ZSBtYW5hZ2VkIGFyZWEgaW4gcGFnZXMu Cj4gICAgKgo+ICAgICogSW5pdGlhbGlzZSBjb3JlIHBhcnRzIG9mIGEgbWFuYWdlciBvYmplY3Qu Cj4gICAgKi8KPiAtdm9pZCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9pbml0KHN0cnVjdCB0dG1fbWVt X3R5cGVfbWFuYWdlciAqbWFuLAo+ICt2b2lkIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2luaXQoc3Ry dWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gICAJCQkgICAgICAgdW5zaWduZWQgbG9u ZyBwX3NpemUpOwo+ICAgCj4gICAvKioKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKPiBpbmRleCBm MjMxZmUzNGU3NDQuLmQxZWZmN2RlNGZhMyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS90dG0v dHRtX2JvX2RyaXZlci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAo+ IEBAIC00NSwxMSArNDUsMTEgQEAKPiAgIAo+ICAgI2RlZmluZSBUVE1fTUFYX0JPX1BSSU9SSVRZ CTRVCj4gICAKPiAtc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyOwo+ICtzdHJ1Y3QgdHRtX3Jl c291cmNlX21hbmFnZXI7Cj4gICAKPiAtc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2Z1bmMg ewo+ICtzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXJfZnVuYyB7Cj4gICAJLyoqCj4gLQkgKiBz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgbWVtYmVyIGdldF9ub2RlCj4gKwkgKiBzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXIgbWVtYmVyIGdldF9ub2RlCj4gICAJICoKPiAgIAkgKiBAbWFu OiBQb2ludGVyIHRvIGEgbWVtb3J5IHR5cGUgbWFuYWdlci4KPiAgIAkgKiBAYm86IFBvaW50ZXIg dG8gdGhlIGJ1ZmZlciBvYmplY3Qgd2UncmUgYWxsb2NhdGluZyBzcGFjZSBmb3IuCj4gQEAgLTY5 LDIwICs2OSwyMCBAQCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJfZnVuYyB7Cj4gICAJICog dGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYSBuZWdhdGl2ZSBlcnJvciBjb2RlLgo+ICAgCSAq Cj4gICAJICogTm90ZSB0aGF0IEBtZW06Om1tX25vZGUgd2lsbCBvbmx5IGJlIGRlcmVmZXJlbmNl ZCBieQo+IC0JICogc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyIGZ1bmN0aW9ucyBhbmQgb3B0 aW9uYWxseSBieSB0aGUgZHJpdmVyLAo+ICsJICogc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2Vy IGZ1bmN0aW9ucyBhbmQgb3B0aW9uYWxseSBieSB0aGUgZHJpdmVyLAo+ICAgCSAqIHdoaWNoIGhh cyBrbm93bGVkZ2Ugb2YgdGhlIHVuZGVybHlpbmcgdHlwZS4KPiAgIAkgKgo+ICAgCSAqIFRoaXMg ZnVuY3Rpb24gbWF5IG5vdCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gYXRvbWljIGNvbnRleHQsIHNv Cj4gICAJICogYW4gaW1wbGVtZW50YXRpb24gY2FuIGFuZCBtdXN0IHVzZSBlaXRoZXIgYSBtdXRl eCBvciBhIHNwaW5sb2NrIHRvCj4gICAJICogcHJvdGVjdCBhbnkgZGF0YSBzdHJ1Y3R1cmVzIG1h bmFnaW5nIHRoZSBzcGFjZS4KPiAgIAkgKi8KPiAtCWludCAgKCpnZXRfbm9kZSkoc3RydWN0IHR0 bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gKwlpbnQgICgqZ2V0X25vZGUpKHN0cnVjdCB0dG1f cmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ICAgCQkJIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCj4gICAJCQkgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4gICAJCQkgc3RydWN0 IHR0bV9tZW1fcmVnICptZW0pOwo+ICAgCj4gICAJLyoqCj4gLQkgKiBzdHJ1Y3QgdHRtX21lbV90 eXBlX21hbmFnZXIgbWVtYmVyIHB1dF9ub2RlCj4gKwkgKiBzdHJ1Y3QgdHRtX3Jlc291cmNlX21h bmFnZXIgbWVtYmVyIHB1dF9ub2RlCj4gICAJICoKPiAgIAkgKiBAbWFuOiBQb2ludGVyIHRvIGEg bWVtb3J5IHR5cGUgbWFuYWdlci4KPiAgIAkgKiBAbWVtOiBQb2ludGVyIHRvIGEgc3RydWN0IHR0 bV9tZW1fcmVnIHRvIGJlIGZpbGxlZCBpbi4KPiBAQCAtOTEsMTEgKzkxLDExIEBAIHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlcl9mdW5jIHsKPiAgIAkgKiBhbmQgdGhhdCBhcmUgaWRlbnRpZmll ZCBieSBAbWVtOjptbV9ub2RlIGFuZCBAbWVtOjpzdGFydC4gTWF5IG5vdAo+ICAgCSAqIGJlIGNh bGxlZCBmcm9tIHdpdGhpbiBhdG9taWMgY29udGV4dC4KPiAgIAkgKi8KPiAtCXZvaWQgKCpwdXRf bm9kZSkoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCj4gKwl2b2lkICgqcHV0X25v ZGUpKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ICAgCQkJIHN0cnVjdCB0dG1f bWVtX3JlZyAqbWVtKTsKPiAgIAo+ICAgCS8qKgo+IC0JICogc3RydWN0IHR0bV9tZW1fdHlwZV9t YW5hZ2VyIG1lbWJlciBkZWJ1Zwo+ICsJICogc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyIG1l bWJlciBkZWJ1Zwo+ICAgCSAqCj4gICAJICogQG1hbjogUG9pbnRlciB0byBhIG1lbW9yeSB0eXBl IG1hbmFnZXIuCj4gICAJICogQHByaW50ZXI6IFByZWZpeCB0byBiZSB1c2VkIGluIHByaW50b3V0 IHRvIGlkZW50aWZ5IHRoZSBjYWxsZXIuCj4gQEAgLTEwNCwxMiArMTA0LDEyIEBAIHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlcl9mdW5jIHsKPiAgIAkgKiB0eXBlIG1hbmFnZXIgdG8gYWlkIGRl YnVnZ2luZyBvZiBvdXQtb2YtbWVtb3J5IGNvbmRpdGlvbnMuCj4gICAJICogSXQgbWF5IG5vdCBi ZSBjYWxsZWQgZnJvbSB3aXRoaW4gYXRvbWljIGNvbnRleHQuCj4gICAJICovCj4gLQl2b2lkICgq ZGVidWcpKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ICsJdm9pZCAoKmRlYnVn KShzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiAgIAkJICAgICAgc3RydWN0IGRy bV9wcmludGVyICpwcmludGVyKTsKPiAgIH07Cj4gICAKPiAgIC8qKgo+IC0gKiBzdHJ1Y3QgdHRt X21lbV90eXBlX21hbmFnZXIKPiArICogc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyCj4gICAg Kgo+ICAgICogQHVzZV90eXBlOiBUaGUgbWVtb3J5IHR5cGUgaXMgZW5hYmxlZC4KPiAgICAqIEBm bGFnczogVFRNX01FTVRZUEVfWFggZmxhZ3MgaWRlbnRpZnlpbmcgdGhlIHRyYWl0cyBvZiB0aGUg bWVtb3J5Cj4gQEAgLTEzNiw3ICsxMzYsNyBAQCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXJf ZnVuYyB7Cj4gICAKPiAgIAo+ICAgCj4gLXN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciB7Cj4g K3N0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciB7Cj4gICAJLyoKPiAgIAkgKiBObyBwcm90ZWN0 aW9uLiBDb25zdGFudCBmcm9tIHN0YXJ0Lgo+ICAgCSAqLwo+IEBAIC0xNDUsNyArMTQ1LDcgQEAg c3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyIHsKPiAgIAl1aW50NjRfdCBzaXplOwo+ICAgCXVp bnQzMl90IGF2YWlsYWJsZV9jYWNoaW5nOwo+ICAgCXVpbnQzMl90IGRlZmF1bHRfY2FjaGluZzsK PiAtCWNvbnN0IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9mdW5jICpmdW5jOwo+ICsJY29u c3Qgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyX2Z1bmMgKmZ1bmM7Cj4gICAJc3RydWN0IG11 dGV4IGlvX3Jlc2VydmVfbXV0ZXg7Cj4gICAJYm9vbCB1c2VfaW9fcmVzZXJ2ZV9scnU7Cj4gICAJ c3BpbmxvY2tfdCBtb3ZlX2xvY2s7Cj4gQEAgLTM5MCw3ICszOTAsNyBAQCBleHRlcm4gc3RydWN0 IHR0bV9ib19nbG9iYWwgewo+ICAgICogc3RydWN0IHR0bV9ib19kZXZpY2UgLSBCdWZmZXIgb2Jq ZWN0IGRyaXZlciBkZXZpY2Utc3BlY2lmaWMgZGF0YS4KPiAgICAqCj4gICAgKiBAZHJpdmVyOiBQ b2ludGVyIHRvIGEgc3RydWN0IHR0bV9ib19kcml2ZXIgc3RydWN0IHNldHVwIGJ5IHRoZSBkcml2 ZXIuCj4gLSAqIEBtYW46IEFuIGFycmF5IG9mIG1lbV90eXBlX21hbmFnZXJzLgo+ICsgKiBAbWFu OiBBbiBhcnJheSBvZiByZXNvdXJjZV9tYW5hZ2Vycy4KPiAgICAqIEB2bWFfbWFuYWdlcjogQWRk cmVzcyBzcGFjZSBtYW5hZ2VyIChwb2ludGVyKQo+ICAgICogbHJ1X2xvY2s6IFNwaW5sb2NrIHRo YXQgcHJvdGVjdHMgdGhlIGJ1ZmZlcitkZXZpY2UgbHJ1IGxpc3RzIGFuZAo+ICAgICogZGRlc3Ry b3kgbGlzdHMuCj4gQEAgLTQxMSw4ICs0MTEsOCBAQCBzdHJ1Y3QgdHRtX2JvX2RldmljZSB7Cj4g ICAJLyoKPiAgIAkgKiBhY2Nlc3MgdmlhIHR0bV9tYW5hZ2VyX3R5cGUuCj4gICAJICovCj4gLQlz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgc3lzbWFuOwo+IC0Jc3RydWN0IHR0bV9tZW1fdHlw ZV9tYW5hZ2VyICptYW5fZHJ2W1RUTV9OVU1fTUVNX1RZUEVTXTsKPiArCXN0cnVjdCB0dG1fcmVz b3VyY2VfbWFuYWdlciBzeXNtYW47Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1h bl9kcnZbVFRNX05VTV9NRU1fVFlQRVNdOwo+ICAgCS8qCj4gICAJICogUHJvdGVjdGVkIGJ5IGlu dGVybmFsIGxvY2tzLgo+ICAgCSAqLwo+IEBAIC00NDAsNyArNDQwLDcgQEAgc3RydWN0IHR0bV9i b19kZXZpY2Ugewo+ICAgCWJvb2wgbm9fcmV0cnk7Cj4gICB9Owo+ICAgCj4gLXN0YXRpYyBpbmxp bmUgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICp0dG1fbWFuYWdlcl90eXBlKHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2LAo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCB0dG1fcmVzb3VyY2Vf bWFuYWdlciAqdHRtX21hbmFnZXJfdHlwZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAg IAkJCQkJCQkgICAgaW50IG1lbV90eXBlKQo+ICAgewo+ICAgCXJldHVybiBiZGV2LT5tYW5fZHJ2 W21lbV90eXBlXTsKPiBAQCAtNDQ4LDcgKzQ0OCw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHR0 bV9tZW1fdHlwZV9tYW5hZ2VyICp0dG1fbWFuYWdlcl90eXBlKHN0cnVjdCB0dG1fYm9fZGV2aWNl Cj4gICAKPiAgIHN0YXRpYyBpbmxpbmUgdm9pZCB0dG1fc2V0X2RyaXZlcl9tYW5hZ2VyKHN0cnVj dCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ICAgCQkJCQkgIGludCB0eXBlLAo+IC0JCQkJCSAgc3Ry dWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW5hZ2VyKQo+ICsJCQkJCSAgc3RydWN0IHR0bV9y ZXNvdXJjZV9tYW5hZ2VyICptYW5hZ2VyKQo+ICAgewo+ICAgCWJkZXYtPm1hbl9kcnZbdHlwZV0g PSBtYW5hZ2VyOwo+ICAgfQo+IEBAIC01NzAsOCArNTcwLDggQEAgdm9pZCB0dG1fYm9fdW5tYXBf dmlydHVhbF9sb2NrZWQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7Cj4gICAKPiAgIGlu dCB0dG1fbWVtX2lvX3Jlc2VydmVfdm0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7Cj4g ICB2b2lkIHR0bV9tZW1faW9fZnJlZV92bShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsK PiAtaW50IHR0bV9tZW1faW9fbG9jayhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwg Ym9vbCBpbnRlcnJ1cHRpYmxlKTsKPiAtdm9pZCB0dG1fbWVtX2lvX3VubG9jayhzdHJ1Y3QgdHRt X21lbV90eXBlX21hbmFnZXIgKm1hbik7Cj4gK2ludCB0dG1fbWVtX2lvX2xvY2soc3RydWN0IHR0 bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sIGJvb2wgaW50ZXJydXB0aWJsZSk7Cj4gK3ZvaWQgdHRt X21lbV9pb191bmxvY2soc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4pOwo+ICAgCj4g ICAvKioKPiAgICAqIHR0bV9ib19yZXNlcnZlOgo+IEBAIC02NjUsNyArNjY1LDcgQEAgc3RhdGlj IGlubGluZSB2b2lkIHR0bV9ib191bnJlc2VydmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bykKPiAgIH0KPiAgIAo+ICAgLyoqCj4gLSAqIHR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2Vk Cj4gKyAqIHR0bV9yZXNvdXJjZV9tYW5hZ2VyX3NldF91c2VkCj4gICAgKgo+ICAgICogQG1hbjog QSBtZW1vcnkgbWFuYWdlciBvYmplY3QuCj4gICAgKiBAdXNlZDogdXNhZ2Ugc3RhdGUgdG8gc2V0 Lgo+IEBAIC02NzMsMTMgKzY3MywxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdHRtX2JvX3VucmVz ZXJ2ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQo+ICAgICogU2V0IHRoZSBtYW5hZ2Vy IGluIHVzZSBmbGFnLiBJZiBkaXNhYmxlZCB0aGUgbWFuYWdlciBpcyBubyBsb25nZXIKPiAgICAq IHVzZWQgZm9yIG9iamVjdCBwbGFjZW1lbnQuCj4gICAgKi8KPiAtc3RhdGljIGlubGluZSB2b2lk IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX3NldF91c2VkKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdl ciAqbWFuLCBib29sIHVzZWQpCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCB0dG1fcmVzb3VyY2VfbWFu YWdlcl9zZXRfdXNlZChzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwgYm9vbCB1c2Vk KQo+ICAgewo+ICAgCW1hbi0+dXNlX3R5cGUgPSB1c2VkOwo+ICAgfQo+ICAgCj4gICAvKioKPiAt ICogdHRtX21lbV90eXBlX21hbmFnZXJfdXNlZAo+ICsgKiB0dG1fcmVzb3VyY2VfbWFuYWdlcl91 c2VkCj4gICAgKgo+ICAgICogQG1hbjogTWFuYWdlciB0byBnZXQgdXNlZCBzdGF0ZSBmb3IKPiAg ICAqCj4gQEAgLTY4NywyNiArNjg3LDI2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0dG1fbWVtX3R5 cGVfbWFuYWdlcl9zZXRfdXNlZChzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hCj4gICAg KiBSZXR1cm5zOgo+ICAgICogdHJ1ZSBpcyB1c2VkLCBmYWxzZSBpZiBub3QuCj4gICAgKi8KPiAt c3RhdGljIGlubGluZSBib29sIHR0bV9tZW1fdHlwZV9tYW5hZ2VyX3VzZWQoc3RydWN0IHR0bV9t ZW1fdHlwZV9tYW5hZ2VyICptYW4pCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCB0dG1fcmVzb3VyY2Vf bWFuYWdlcl91c2VkKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuKQo+ICAgewo+ICAg CXJldHVybiBtYW4tPnVzZV90eXBlOwo+ICAgfQo+ICAgCj4gICAvKioKPiAtICogdHRtX21lbV90 eXBlX21hbmFnZXJfY2xlYW51cAo+ICsgKiB0dG1fcmVzb3VyY2VfbWFuYWdlcl9jbGVhbnVwCj4g ICAgKgo+ICAgICogQG1hbjogQSBtZW1vcnkgbWFuYWdlciBvYmplY3QuCj4gICAgKgo+ICAgICog Q2xlYW51cCB0aGUgbW92ZSBmZW5jZXMgZnJvbSB0aGUgbWVtb3J5IG1hbmFnZXIgb2JqZWN0Lgo+ ICAgICovCj4gLXN0YXRpYyBpbmxpbmUgdm9pZCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9jbGVhbnVw KHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQo+ICtzdGF0aWMgaW5saW5lIHZvaWQg dHRtX3Jlc291cmNlX21hbmFnZXJfY2xlYW51cChzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIg Km1hbikKPiAgIHsKPiAgIAlkbWFfZmVuY2VfcHV0KG1hbi0+bW92ZSk7Cj4gICAJbWFuLT5tb3Zl ID0gTlVMTDsKPiAgIH0KPiAgIAo+ICAgLyoKPiAtICogdHRtX21lbV90eXBlX21hbmFnZXJfZm9y Y2VfbGlzdF9jbGVhbgo+ICsgKiB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mb3JjZV9saXN0X2NsZWFu Cj4gICAgKgo+ICAgICogQGJkZXYgLSBkZXZpY2UgdG8gdXNlCj4gICAgKiBAbWFuIC0gbWFuYWdl ciB0byB1c2UKPiBAQCAtNzE0LDggKzcxNCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0dG1fbWVt X3R5cGVfbWFuYWdlcl9jbGVhbnVwKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuCj4g ICAgKiBGb3JjZSBhbGwgdGhlIG9iamVjdHMgb3V0IG9mIGEgbWVtb3J5IG1hbmFnZXIgdW50aWwg Y2xlYW4uCj4gICAgKiBQYXJ0IG9mIG1lbW9yeSBtYW5hZ2VyIGNsZWFudXAgc2VxdWVuY2UuCj4g ICAgKi8KPiAtaW50IHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2ZvcmNlX2xpc3RfY2xlYW4oc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4gLQkJCQkJICBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFn ZXIgKm1hbik7Cj4gK2ludCB0dG1fcmVzb3VyY2VfbWFuYWdlcl9mb3JjZV9saXN0X2NsZWFuKHN0 cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+ICsJCQkJCSAgc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICptYW4pOwo+ICAgCj4gICAvKgo+ICAgICogdHRtX2JvX3V0aWwuYwo+IEBAIC04NjQs MTIgKzg2NCwxMiBAQCBpbnQgdHRtX3JhbmdlX21hbl9maW5pKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAo+ICAgCQkgICAgICAgdW5zaWduZWQgdHlwZSk7Cj4gICAKPiAgIC8qKgo+IC0gKiB0 dG1fbWVtX3R5cGVfbWFuYWdlcl9kZWJ1Zwo+ICsgKiB0dG1fcmVzb3VyY2VfbWFuYWdlcl9kZWJ1 Zwo+ICAgICoKPiAgICAqIEBtYW46IG1hbmFnZXIgdHlwZSB0byBkdW1wLgo+ICAgICogQHA6IHBy aW50ZXIgdG8gdXNlIGZvciBkZWJ1Zy4KPiAgICAqLwo+IC12b2lkIHR0bV9tZW1fdHlwZV9tYW5h Z2VyX2RlYnVnKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAo+ICt2b2lkIHR0bV9y ZXNvdXJjZV9tYW5hZ2VyX2RlYnVnKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ ICAgCQkJCXN0cnVjdCBkcm1fcHJpbnRlciAqcCk7Cj4gICAKPiAgICNlbmRpZgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==