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 1B974C433E0 for ; Tue, 4 Aug 2020 11:41:45 +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 E888E208A9 for ; Tue, 4 Aug 2020 11:41:44 +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="uQ3a1x/P" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E888E208A9 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 6489B6E463; Tue, 4 Aug 2020 11:41:44 +0000 (UTC) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2068.outbound.protection.outlook.com [40.107.236.68]) by gabe.freedesktop.org (Postfix) with ESMTPS id B82AC6E46B for ; Tue, 4 Aug 2020 11:41:41 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hWcmQ1eJ3PKrsz+BRJ1J8GnbuTkPyHPsd/cYirPep6D35/R2XnLtv9K5Mg15aA5M8tQAVeKyiaQ+pXy2IKSsRZd0+xRMU67zBiIJ5L7Pd8XYFMNOKPsbv1VkXh/R5t48DgQOyD3JVxfOKXSzvWHlnoqh0hFytIe2CKmokSD2BCTxotluhax4bHvBv03/i/4NrM1jG1m46I0b886dRLZ0ioCNobgUQcjz4EvYDmAtH6BdL9nxeO0jrKNDfQhWyFyiS4/GPql3Owl+FVTTbKM3UN4lVQmPRBkcspGsLI2nx+NLWUyEaUAUp3XS5rix7xikF61AWs+4JBGdCcqWPyCItA== 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=YjcGmo7bNEZJdVhS/tUApJt3VUpbimTWd0+fHwO1VE8=; b=fGpm+nTZggS9YuLtCzOwHCVwqbW7LsJHrbDOxazeAgwWWuv5ngkTTwq9ZdiTZRL8iSY+KT2zwh82+iziu85WOxWWxWGHAtAAbRAEMeNLxW1bkUQFKk8Suzy7d1JdN3mdmRMz74DtRbIQl3ssH2gueJc8UZ/4RiiTXlt8FCSLaXKFUcJSj1HO1Vrn0NDo/5FEfStPBJ6qjRRH605cnmr9SFPSIpnDj+/+d35CdH7JTipgaRG3+JQM+A+VcHfHCguz/rn30FJDyd3clM5TSWvjALIeTpkZHdq3LBBMU2wtKysaQj7HE+LsYpIEBoFXVhlgsAjXX7kUbJGd6c56T9mGwQ== 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=YjcGmo7bNEZJdVhS/tUApJt3VUpbimTWd0+fHwO1VE8=; b=uQ3a1x/PEcjB3Y3mdzQXHZAz5m/tqjpcGc5qzHYpvpdvNP+NJowW3IFbcDB3z8wmkvG1GdOOR6HPDeS7WxLtWrpBRybwdaJk8x1At6UY8JNIVBdC5PAvhp/8t2edhFJ7i8piSIMRsXpmHq1lhLlXkmljWHz9e7811/nUVfXL0O0= 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:39 +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:39 +0000 Subject: Re: [PATCH 59/59] drm/ttm: rename ttm_mem_reg to ttm_resource. To: Dave Airlie , dri-devel@lists.freedesktop.org References: <20200804025632.3868079-1-airlied@gmail.com> <20200804025632.3868079-60-airlied@gmail.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <3361e2dc-914c-5cff-c78a-636cf679b517@amd.com> Date: Tue, 4 Aug 2020 13:41:34 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <20200804025632.3868079-60-airlied@gmail.com> Content-Language: en-US X-ClientProxiedBy: FR2P281CA0019.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::6) 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 FR2P281CA0019.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:14::6) 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:38 +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: 473efa12-40d1-4a03-8911-08d8386b5999 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: D7lblRX/QTjIJBQRzJfSpgMcdfHseX837zK9CU3JaN9V+C7dFe30dWzIDhbNguoYdrwfjO/xOQWAGTaYSjOwKy2uuarN3thZcFsaDybtejjbUE4VFiqtQZjf0cCumLo6nSbs3FlA+tf51iXq6TLDQGkkyDplJsFnFD62Q84j7KGHYDORkUHD+QM3m5MccOW9/eKrjoWcRApb/bbkC9XPPioHB3k5S+iJxumhfrKGERHGefK+6/nCQYlLHGouXoidsttlRWJw+vwLmLXmqwOMjhQsgRCCPo6xb/HiBBveGkSnZgm039EbjEn81kAqyU1lH2mzdLSAYmfLyaDGM5GDGt32H8AVPmJgk/kjJCwsAQtu8Rw5I9Kcv94VRcH3N0qG 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: hF+cOql3w2rUlUeF06nQJsvAZoTwdWZDidhojkpFTdzBh2Pa+uYC85sZvBsSrhsFBuVDxUi/+pjCpZeEpSEnceGVCwr48pQYJoKK/8Zq4wOg6MhjzCktaPrnjmNH36QATW5nh32Nod0l4XhL2MEenGFvLaOGL3OBiCPYeXAJzlNjeStefz/FF/OffFRJlHzC6uF1zGL7kCmOnYVF7yYOeFEdIu3jgUtAbqUtHs7unKu21Bl/7YUzKsQuBqevCRwPljbLkt8qz+C6XQIVyKQOlXjgKnzJQy4Zi/knhlgtSRE3G7fixawodP+ttw8vputlz0oSiYuk2iivIgOszMB46bn9WRjNz6fbJniejPUtVor5xmjn43HIsq4ALsur3t5oTOb4TNiqfYkNMVxvmmCDG2UNKjwBdjw5GJADGTT2DhfxTtOOzPuF+PBh8LlvZtLbXUSpUyzR4UHq2LmYl/NKP/4H6IqHMQKBo9qJN969LGNwVYqleMbUb54d7BY8WtJ42ielSQk7KK/aJyNrvX0m9o0Mc39jIozgr+PEysymo8NU//DyRaSNt4S3SfGwr3grxGQgdeALwt16kJ+gZa6YKOWwg415HERFiPTVLq6MEnZTCwcc1Hb6az3sw/SFk+NSMsb/870JBf2B9/YaKtNO7R+p1dsiQ5W1Ht2TGXCXPea6x5/AzToa92VYb0OVz1HmNqHS8vNsFIwKqSQs2SiSsQ== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 473efa12-40d1-4a03-8911-08d8386b5999 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:39.3053 (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: BIlOW0Lfg+mGl7Wr3elrMroxxhhIk7+6qBCyN7g8vpaS/GYTx0TlVbnLmpawIPL0 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+Cj4gVGhpcyBuYW1lIGJldHRlciByZWZsZWN0cyB3 aGF0IHRoZSBvYmplY3QgZG9lcy4gSSBkaWRuJ3QgcmVuYW1lCj4gYWxsIHRoZSBwb2ludGVycyBp dCBzZWVtZWQgdG9vIG1lc3N5Lgo+Cj4gU2lnbmVkLW9mZi1ieTogRGF2ZSBBaXJsaWUgPGFpcmxp ZWRAcmVkaGF0LmNvbT4KCkFja2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29l bmlnQGFtZC5jb20+Cgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2d0dF9tZ3IuYyAgIHwgIDYgKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfb2JqZWN0LmMgICAgfCAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X29iamVjdC5oICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV90dG0uYyAgICAgICB8IDQ2ICsrKysrKysrKy0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaCAgICAgICB8IDEwICsrLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jICAgICAgICB8ICAyICstCj4gICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdnJhbV9tZ3IuYyAgfCAxMiArKy0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYyAgICAgICAgIHwgIDYgKy0tCj4gICBk cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgICAgICAgICAgfCAyOCArKysrKy0t LS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5oICAgICAgICAgIHwg MTQgKysrLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvMDAzOS5jICAg ICAgfCAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9ibzUwMzkuYyAg ICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm83NGMxLmMg ICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvODViNS5j ICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9ibzkwMzku YyAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm85MGI1 LmMgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvYTBi NS5jICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcnYu aCAgICAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfbWVt LmMgICAgICAgICB8ICA4ICsrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf bWVtLmggICAgICAgICB8IDEwICsrLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfc2dkbWEuYyAgICAgICB8ICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X3R0bS5jICAgICAgICAgfCAgOCArKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u djE3X2ZlbmNlLmMgICAgICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bnY1MF9mZW5jZS5jICAgICAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhs X2Rydi5oICAgICAgICAgICAgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4 bF90dG0uYyAgICAgICAgICAgICAgICAgfCAxNCArKystLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uLmggICAgICAgICAgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9vYmplY3QuYyAgICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fb2JqZWN0LmggICAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX3R0bS5jICAgICAgICAgICB8IDI4ICsrKysrLS0tLS0tCj4gICBkcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jICAgICAgICAgICAgfCAgMiArLQo+ICAgZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fYWdwX2JhY2tlbmQuYyAgICAgICAgIHwgIDIgKy0KPiAgIGRy aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgICAgICB8IDI2ICsrKysrLS0t LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgICAgICAgICAgICAgfCA0 NiArKysrKysrKystLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9yYW5nZV9t YW5hZ2VyLmMgICAgICAgfCAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fdHQuYyAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2JvLmMgICAgICAgICAgICB8ICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9kcnYuaCAgICAgICAgICAgfCAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfZ21yaWRfbWFuYWdlci5jIHwgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3Jlc291cmNlLmMgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF90aHAuYyAgICAgICAgICAgfCAgNiArLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X3R0bV9idWZmZXIuYyAgICB8ICA4ICsrLS0KPiAgIGluY2x1ZGUvZHJtL3R0bS90dG1f Ym9fYXBpLmggICAgICAgICAgICAgICAgICB8IDEwICsrLS0KPiAgIGluY2x1ZGUvZHJtL3R0bS90 dG1fYm9fZHJpdmVyLmggICAgICAgICAgICAgICB8IDQyICsrKysrKysrLS0tLS0tLS0tCj4gICBp bmNsdWRlL2RybS90dG0vdHRtX3R0LmggICAgICAgICAgICAgICAgICAgICAgfCAxMCArKy0tCj4g ICA0NSBmaWxlcyBjaGFuZ2VkLCAyMDIgaW5zZXJ0aW9ucygrKSwgMjAyIGRlbGV0aW9ucygtKQo+ Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9ndHRfbWdy LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ3R0X21nci5jCj4gaW5kZXgg OGI2MDBiODA0ZjM0Li5mYjE0MTU0ODg1NzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2d0dF9tZ3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9ndHRfbWdyLmMKPiBAQCAtMTcxLDcgKzE3MSw3IEBAIHZvaWQgYW1kZ3B1 X2d0dF9tZ3JfZmluaShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgICAqCj4gICAgKiBD aGVjayBpZiBhIG1lbSBvYmplY3QgaGFzIGFscmVhZHkgYWRkcmVzcyBzcGFjZSBhbGxvY2F0ZWQu Cj4gICAgKi8KPiAtYm9vbCBhbWRncHVfZ3R0X21ncl9oYXNfZ2FydF9hZGRyKHN0cnVjdCB0dG1f bWVtX3JlZyAqbWVtKQo+ICtib29sIGFtZGdwdV9ndHRfbWdyX2hhc19nYXJ0X2FkZHIoc3RydWN0 IHR0bV9yZXNvdXJjZSAqbWVtKQo+ICAgewo+ICAgCXJldHVybiBtZW0tPm1tX25vZGUgIT0gTlVM TDsKPiAgIH0KPiBAQCAtMTg5LDcgKzE4OSw3IEBAIGJvb2wgYW1kZ3B1X2d0dF9tZ3JfaGFzX2dh cnRfYWRkcihzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiAgIHN0YXRpYyBpbnQgYW1kZ3B1X2d0 dF9tZ3JfbmV3KHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ICAgCQkJICAgICAg c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8sCj4gICAJCQkgICAgICBjb25zdCBzdHJ1Y3Qg dHRtX3BsYWNlICpwbGFjZSwKPiAtCQkJICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4g KwkJCSAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgYW1k Z3B1X2d0dF9tZ3IgKm1nciA9IHRvX2d0dF9tZ3IobWFuKTsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X2d0 dF9ub2RlICpub2RlOwo+IEBAIC0yNTAsNyArMjUwLDcgQEAgc3RhdGljIGludCBhbWRncHVfZ3R0 X21ncl9uZXcoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gICAgKiBGcmVlIHRo ZSBhbGxvY2F0ZWQgR1RUIGFnYWluLgo+ICAgICovCj4gICBzdGF0aWMgdm9pZCBhbWRncHVfZ3R0 X21ncl9kZWwoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gLQkJCSAgICAgICBz dHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiArCQkJICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2Ug Km1lbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X2d0dF9tZ3IgKm1nciA9IHRvX2d0dF9tZ3Io bWFuKTsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X2d0dF9ub2RlICpub2RlID0gbWVtLT5tbV9ub2RlOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPiBpbmRleCBjZTk4 ZGY1YjBjMjEuLjQzZjQ5NjYzMzFkZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfb2JqZWN0LmMKPiBAQCAtMTI2OCwxMSArMTI2OCwxMSBAQCBpbnQgYW1kZ3B1X2Jv X2dldF9tZXRhZGF0YShzdHJ1Y3QgYW1kZ3B1X2JvICpibywgdm9pZCAqYnVmZmVyLAo+ICAgICov Cj4gICB2b2lkIGFtZGdwdV9ib19tb3ZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+ICAgCQkJICAgYm9vbCBldmljdCwKPiAtCQkJICAgc3RydWN0IHR0bV9tZW1fcmVnICpu ZXdfbWVtKQo+ICsJCQkgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfbWVtKQo+ICAgewo+ICAg CXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KGJvLT5iZGV2KTsK PiAgIAlzdHJ1Y3QgYW1kZ3B1X2JvICphYm87Cj4gLQlzdHJ1Y3QgdHRtX21lbV9yZWcgKm9sZF9t ZW0gPSAmYm8tPm1lbTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm9sZF9tZW0gPSAmYm8tPm1l bTsKPiAgIAo+ICAgCWlmICghYW1kZ3B1X2JvX2lzX2FtZGdwdV9ibyhibykpCj4gICAJCXJldHVy bjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVj dC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oCj4gaW5kZXgg ZTAxZTg5MDM3NDFlLi41ZGRiNmNmOTYwMzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X29iamVjdC5oCj4gQEAgLTI4Myw3ICsyODMsNyBAQCBpbnQgYW1kZ3B1X2Jv X2dldF9tZXRhZGF0YShzdHJ1Y3QgYW1kZ3B1X2JvICpibywgdm9pZCAqYnVmZmVyLAo+ICAgCQkJ ICAgdWludDY0X3QgKmZsYWdzKTsKPiAgIHZvaWQgYW1kZ3B1X2JvX21vdmVfbm90aWZ5KHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJCQkgICBib29sIGV2aWN0LAo+IC0JCQkgICBz dHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pOwo+ICsJCQkgICBzdHJ1Y3QgdHRtX3Jlc291cmNl ICpuZXdfbWVtKTsKPiAgIHZvaWQgYW1kZ3B1X2JvX3JlbGVhc2Vfbm90aWZ5KHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8pOwo+ICAgaW50IGFtZGdwdV9ib19mYXVsdF9yZXNlcnZlX25vdGlm eShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsKPiAgIHZvaWQgYW1kZ3B1X2JvX2ZlbmNl KHN0cnVjdCBhbWRncHVfYm8gKmJvLCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCj4gaW5kZXggY2FlN2VhZGE3MjE1Li42ODIx NzJkNTlmNjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3R0bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCj4g QEAgLTE4Myw5ICsxODMsOSBAQCBzdGF0aWMgaW50IGFtZGdwdV92ZXJpZnlfYWNjZXNzKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0cnVjdCBmaWxlICpmaWxwKQo+ICAgICogQXNzaWdu IHRoZSBtZW1vcnkgZnJvbSBuZXdfbWVtIHRvIHRoZSBtZW1vcnkgb2YgdGhlIGJ1ZmZlciBvYmpl Y3QgYm8uCj4gICAgKi8KPiAgIHN0YXRpYyB2b2lkIGFtZGdwdV9tb3ZlX251bGwoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKPiAtCQkJICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19t ZW0pCj4gKwkJCSAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X21lbSkKPiAgIHsKPiAtCXN0 cnVjdCB0dG1fbWVtX3JlZyAqb2xkX21lbSA9ICZiby0+bWVtOwo+ICsJc3RydWN0IHR0bV9yZXNv dXJjZSAqb2xkX21lbSA9ICZiby0+bWVtOwo+ICAgCj4gICAJQlVHX09OKG9sZF9tZW0tPm1tX25v ZGUgIT0gTlVMTCk7Cj4gICAJKm9sZF9tZW0gPSAqbmV3X21lbTsKPiBAQCAtMjAyLDcgKzIwMiw3 IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9tb3ZlX251bGwoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKPiAgICAqLwo+ICAgc3RhdGljIHVpbnQ2NF90IGFtZGdwdV9tbV9ub2RlX2FkZHIoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAkJCQkgICAgc3RydWN0IGRybV9tbV9ub2Rl ICptbV9ub2RlLAo+IC0JCQkJICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICsJCQkJICAg IHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSkKPiAgIHsKPiAgIAl1aW50NjRfdCBhZGRyID0gMDsK PiAgIAo+IEBAIC0yMjIsNyArMjIyLDcgQEAgc3RhdGljIHVpbnQ2NF90IGFtZGdwdV9tbV9ub2Rl X2FkZHIoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgICAqIEBvZmZzZXQ6IFRoZSBv ZmZzZXQgdGhhdCBkcm1fbW1fbm9kZSBpcyB1c2VkIGZvciBmaW5kaW5nLgo+ICAgICoKPiAgICAq Lwo+IC1zdGF0aWMgc3RydWN0IGRybV9tbV9ub2RlICphbWRncHVfZmluZF9tbV9ub2RlKHN0cnVj dCB0dG1fbWVtX3JlZyAqbWVtLAo+ICtzdGF0aWMgc3RydWN0IGRybV9tbV9ub2RlICphbWRncHVf ZmluZF9tbV9ub2RlKHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPiAgIAkJCQkJICAgICAgIHVp bnQ2NF90ICpvZmZzZXQpCj4gICB7Cj4gICAJc3RydWN0IGRybV9tbV9ub2RlICptbV9ub2RlID0g bWVtLT5tbV9ub2RlOwo+IEBAIC0yNTAsNyArMjUwLDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fbW1f bm9kZSAqYW1kZ3B1X2ZpbmRfbW1fbm9kZShzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwKPiAgICAq IHRoZSBwaHlzaWNhbCBhZGRyZXNzIGZvciBsb2NhbCBtZW1vcnkuCj4gICAgKi8KPiAgIHN0YXRp YyBpbnQgYW1kZ3B1X3R0bV9tYXBfYnVmZmVyKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8s Cj4gLQkJCQkgc3RydWN0IHR0bV9tZW1fcmVnICptZW0sCj4gKwkJCQkgc3RydWN0IHR0bV9yZXNv dXJjZSAqbWVtLAo+ICAgCQkJCSBzdHJ1Y3QgZHJtX21tX25vZGUgKm1tX25vZGUsCj4gICAJCQkJ IHVuc2lnbmVkIG51bV9wYWdlcywgdWludDY0X3Qgb2Zmc2V0LAo+ICAgCQkJCSB1bnNpZ25lZCB3 aW5kb3csIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKPiBAQCAtNDc0LDggKzQ3NCw4IEBAIGlu dCBhbWRncHVfdHRtX2NvcHlfbWVtX3RvX21lbShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwK PiAgICAqLwo+ICAgc3RhdGljIGludCBhbWRncHVfbW92ZV9ibGl0KHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCj4gICAJCQkgICAgYm9vbCBldmljdCwgYm9vbCBub193YWl0X2dwdSwKPiAt CQkJICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X21lbSwKPiAtCQkJICAgIHN0cnVjdCB0dG1f bWVtX3JlZyAqb2xkX21lbSkKPiArCQkJICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm5ld19tZW0s Cj4gKwkJCSAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfbWVtKQo+ICAgewo+ICAgCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KGJvLT5iZGV2KTsKPiAgIAlz dHJ1Y3QgYW1kZ3B1X2JvICphYm8gPSB0dG1fdG9fYW1kZ3B1X2JvKGJvKTsKPiBAQCAtNTM0LDEw ICs1MzQsMTAgQEAgc3RhdGljIGludCBhbWRncHVfbW92ZV9ibGl0KHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCj4gICAgKi8KPiAgIHN0YXRpYyBpbnQgYW1kZ3B1X21vdmVfdnJhbV9yYW0o c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKPiAgIAkJCQlzdHJ1Y3Qg dHRtX29wZXJhdGlvbl9jdHggKmN0eCwKPiAtCQkJCXN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X21l bSkKPiArCQkJCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm5ld19tZW0pCj4gICB7Cj4gLQlzdHJ1Y3Qg dHRtX21lbV9yZWcgKm9sZF9tZW0gPSAmYm8tPm1lbTsKPiAtCXN0cnVjdCB0dG1fbWVtX3JlZyB0 bXBfbWVtOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZSAqb2xkX21lbSA9ICZiby0+bWVtOwo+ICsJ c3RydWN0IHR0bV9yZXNvdXJjZSB0bXBfbWVtOwo+ICAgCXN0cnVjdCB0dG1fcGxhY2UgcGxhY2Vt ZW50czsKPiAgIAlzdHJ1Y3QgdHRtX3BsYWNlbWVudCBwbGFjZW1lbnQ7Cj4gICAJaW50IHI7Cj4g QEAgLTU5MCwxMCArNTkwLDEwIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X21vdmVfdnJhbV9yYW0oc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKPiAgICAqLwo+ICAgc3RhdGlj IGludCBhbWRncHVfbW92ZV9yYW1fdnJhbShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBi b29sIGV2aWN0LAo+ICAgCQkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+IC0JCQkJ c3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKQo+ICsJCQkJc3RydWN0IHR0bV9yZXNvdXJjZSAq bmV3X21lbSkKPiAgIHsKPiAtCXN0cnVjdCB0dG1fbWVtX3JlZyAqb2xkX21lbSA9ICZiby0+bWVt Owo+IC0Jc3RydWN0IHR0bV9tZW1fcmVnIHRtcF9tZW07Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNl ICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlIHRtcF9tZW07Cj4g ICAJc3RydWN0IHR0bV9wbGFjZW1lbnQgcGxhY2VtZW50Owo+ICAgCXN0cnVjdCB0dG1fcGxhY2Ug cGxhY2VtZW50czsKPiAgIAlpbnQgcjsKPiBAQCAtNjM2LDcgKzYzNiw3IEBAIHN0YXRpYyBpbnQg YW1kZ3B1X21vdmVfcmFtX3ZyYW0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBl dmljdCwKPiAgICAqIENhbGxlZCBieSBhbWRncHVfYm9fbW92ZSgpCj4gICAgKi8KPiAgIHN0YXRp YyBib29sIGFtZGdwdV9tZW1fdmlzaWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAt CQkJICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICsJCQkgICAgICAgc3RydWN0IHR0 bV9yZXNvdXJjZSAqbWVtKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZXMgPSBt ZW0tPm1tX25vZGU7Cj4gICAKPiBAQCAtNjQ2LDcgKzY0Niw3IEBAIHN0YXRpYyBib29sIGFtZGdw dV9tZW1fdmlzaWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAgIAlpZiAobWVtLT5t ZW1fdHlwZSAhPSBUVE1fUExfVlJBTSkKPiAgIAkJcmV0dXJuIGZhbHNlOwo+ICAgCj4gLQkvKiB0 dG1fbWVtX3JlZ19pb3JlbWFwIG9ubHkgc3VwcG9ydHMgY29udGlndW91cyBtZW1vcnkgKi8KPiAr CS8qIHR0bV9yZXNvdXJjZV9pb3JlbWFwIG9ubHkgc3VwcG9ydHMgY29udGlndW91cyBtZW1vcnkg Ki8KPiAgIAlpZiAobm9kZXMtPnNpemUgIT0gbWVtLT5udW1fcGFnZXMpCj4gICAJCXJldHVybiBm YWxzZTsKPiAgIAo+IEBAIC02NjEsMTEgKzY2MSwxMSBAQCBzdGF0aWMgYm9vbCBhbWRncHVfbWVt X3Zpc2libGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4gICAgKi8KPiAgIHN0YXRpYyBp bnQgYW1kZ3B1X2JvX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmlj dCwKPiAgIAkJCSAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCj4gLQkJCSAgc3RydWN0 IHR0bV9tZW1fcmVnICpuZXdfbWVtKQo+ICsJCQkgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm5ld19t ZW0pCj4gICB7Cj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXY7Cj4gICAJc3RydWN0IGFt ZGdwdV9ibyAqYWJvOwo+IC0Jc3RydWN0IHR0bV9tZW1fcmVnICpvbGRfbWVtID0gJmJvLT5tZW07 Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gICAJaW50IHI7 Cj4gICAKPiAgIAkvKiBDYW4ndCBtb3ZlIGEgcGlubmVkIEJPICovCj4gQEAgLTc0Nyw3ICs3NDcs NyBAQCBzdGF0aWMgaW50IGFtZGdwdV9ib19tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sIGJvb2wgZXZpY3QsCj4gICAgKgo+ICAgICogQ2FsbGVkIGJ5IHR0bV9tZW1faW9fcmVzZXJ2 ZSgpIHVsdGltYXRlbHkgdmlhIHR0bV9ib192bV9mYXVsdCgpCj4gICAgKi8KPiAtc3RhdGljIGlu dCBhbWRncHVfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBz dHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiArc3RhdGljIGludCBhbWRncHVfdHRtX2lvX21lbV9y ZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpt ZW0pCj4gICB7Cj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2Fk ZXYoYmRldik7Cj4gICAJc3RydWN0IGRybV9tbV9ub2RlICptbV9ub2RlID0gbWVtLT5tbV9ub2Rl Owo+IEBAIC03NzEsNyArNzcxLDcgQEAgc3RhdGljIGludCBhbWRncHVfdHRtX2lvX21lbV9yZXNl cnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX21lbV8KPiAgIAkJCXJl dHVybiAtRUlOVkFMOwo+ICAgCQkvKiBPbmx5IHBoeXNpY2FsbHkgY29udGlndW91cyBidWZmZXJz IGFwcGx5LiBJbiBhIGNvbnRpZ3VvdXMKPiAgIAkJICogYnVmZmVyLCBzaXplIG9mIHRoZSBmaXJz dCBtbV9ub2RlIHdvdWxkIG1hdGNoIHRoZSBudW1iZXIgb2YKPiAtCQkgKiBwYWdlcyBpbiB0dG1f bWVtX3JlZy4KPiArCQkgKiBwYWdlcyBpbiB0dG1fcmVzb3VyY2UuCj4gICAJCSAqLwo+ICAgCQlp ZiAoYWRldi0+bW1hbi5hcGVyX2Jhc2Vfa2FkZHIgJiYKPiAgIAkJICAgIChtbV9ub2RlLT5zaXpl ID09IG1lbS0+bnVtX3BhZ2VzKSkKPiBAQCAtMTExNiw3ICsxMTE2LDcgQEAgc3RhdGljIGludCBh bWRncHVfdHRtX2dhcnRfYmluZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAgICAqIFRo aXMgaGFuZGxlcyBiaW5kaW5nIEdUVCBtZW1vcnkgdG8gdGhlIGRldmljZSBhZGRyZXNzIHNwYWNl Lgo+ICAgICovCj4gICBzdGF0aWMgaW50IGFtZGdwdV90dG1fYmFja2VuZF9iaW5kKHN0cnVjdCB0 dG1fdHQgKnR0bSwKPiAtCQkJCSAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqYm9fbWVtKQo+ICsJCQkJ ICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqYm9fbWVtKQo+ICAgewo+ICAgCXN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KHR0bS0+YmRldik7Cj4gICAJc3RydWN0IGFt ZGdwdV90dG1fdHQgKmd0dCA9ICh2b2lkKil0dG07Cj4gQEAgLTExNjcsNyArMTE2Nyw3IEBAIGlu dCBhbWRncHVfdHRtX2FsbG9jX2dhcnQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPiAg IAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGFtZGdwdV90dG1fYWRldihiby0+YmRldik7 Cj4gICAJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07Cj4g ICAJc3RydWN0IGFtZGdwdV90dG1fdHQgKmd0dCA9ICh2b2lkKiliby0+dHRtOwo+IC0Jc3RydWN0 IHR0bV9tZW1fcmVnIHRtcDsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2UgdG1wOwo+ICAgCXN0cnVj dCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKPiAgIAlzdHJ1Y3QgdHRtX3BsYWNlIHBsYWNlbWVu dHM7Cj4gICAJdWludDY0X3QgYWRkciwgZmxhZ3M7Cj4gQEAgLTE1MDcsNyArMTUwNyw3IEBAIGJv b2wgYW1kZ3B1X3R0bV90dF9pc19yZWFkb25seShzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4gICAgKgo+ ICAgICogRmlndXJlIG91dCB0aGUgZmxhZ3MgdG8gdXNlIGZvciBhIFZNIFBERSAoUGFnZSBEaXJl Y3RvcnkgRW50cnkpLgo+ICAgICovCj4gLXVpbnQ2NF90IGFtZGdwdV90dG1fdHRfcGRlX2ZsYWdz KHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4gK3VpbnQ2NF90 IGFtZGdwdV90dG1fdHRfcGRlX2ZsYWdzKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9y ZXNvdXJjZSAqbWVtKQo+ICAgewo+ICAgCXVpbnQ2NF90IGZsYWdzID0gMDsKPiAgIAo+IEBAIC0x NTMzLDcgKzE1MzMsNyBAQCB1aW50NjRfdCBhbWRncHVfdHRtX3R0X3BkZV9mbGFncyhzdHJ1Y3Qg dHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICAgICogRmlndXJlIG91dCB0 aGUgZmxhZ3MgdG8gdXNlIGZvciBhIFZNIFBURSAoUGFnZSBUYWJsZSBFbnRyeSkuCj4gICAgKi8K PiAgIHVpbnQ2NF90IGFtZGdwdV90dG1fdHRfcHRlX2ZsYWdzKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LCBzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4gLQkJCQkgc3RydWN0IHR0bV9tZW1fcmVnICpt ZW0pCj4gKwkJCQkgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+ICAgewo+ICAgCXVpbnQ2NF90 IGZsYWdzID0gYW1kZ3B1X3R0bV90dF9wZGVfZmxhZ3ModHRtLCBtZW0pOwo+ICAgCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaCBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+IGluZGV4IDNkYjI5YWUxZjgwMi4uMzZi MDI0ZmQwNzdlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV90dG0uaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+ IEBAIC02Myw3ICs2Myw3IEBAIHN0cnVjdCBhbWRncHVfbW1hbiB7Cj4gICAKPiAgIHN0cnVjdCBh bWRncHVfY29weV9tZW0gewo+ICAgCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdAkqYm87Cj4gLQlz dHJ1Y3QgdHRtX21lbV9yZWcJCSptZW07Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlCQkqbWVtOwo+ ICAgCXVuc2lnbmVkIGxvbmcJCQlvZmZzZXQ7Cj4gICB9Owo+ICAgCj4gQEAgLTcyLDEzICs3Miwx MyBAQCB2b2lkIGFtZGdwdV9ndHRfbWdyX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp Owo+ICAgaW50IGFtZGdwdV92cmFtX21ncl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KTsKPiAgIHZvaWQgYW1kZ3B1X3ZyYW1fbWdyX2Zpbmkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYpOwo+ICAgCj4gLWJvb2wgYW1kZ3B1X2d0dF9tZ3JfaGFzX2dhcnRfYWRkcihzdHJ1Y3QgdHRt X21lbV9yZWcgKm1lbSk7Cj4gK2Jvb2wgYW1kZ3B1X2d0dF9tZ3JfaGFzX2dhcnRfYWRkcihzdHJ1 Y3QgdHRtX3Jlc291cmNlICptZW0pOwo+ICAgdWludDY0X3QgYW1kZ3B1X2d0dF9tZ3JfdXNhZ2Uo c3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4pOwo+ICAgaW50IGFtZGdwdV9ndHRfbWdy X3JlY292ZXIoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4pOwo+ICAgCj4gICB1NjQg YW1kZ3B1X3ZyYW1fbWdyX2JvX3Zpc2libGVfc2l6ZShzdHJ1Y3QgYW1kZ3B1X2JvICpibyk7Cj4g ICBpbnQgYW1kZ3B1X3ZyYW1fbWdyX2FsbG9jX3NndChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKPiAtCQkJICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0sCj4gKwkJCSAgICAgIHN0cnVj dCB0dG1fcmVzb3VyY2UgKm1lbSwKPiAgIAkJCSAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiwKPiAg IAkJCSAgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKPiAgIAkJCSAgICAgIHN0cnVj dCBzZ190YWJsZSAqKnNndCk7Cj4gQEAgLTE0Miw5ICsxNDIsOSBAQCBib29sIGFtZGdwdV90dG1f dHRfdXNlcnB0cl9pbnZhbGlkYXRlZChzdHJ1Y3QgdHRtX3R0ICp0dG0sCj4gICAJCQkJICAgICAg IGludCAqbGFzdF9pbnZhbGlkYXRlZCk7Cj4gICBib29sIGFtZGdwdV90dG1fdHRfaXNfdXNlcnB0 cihzdHJ1Y3QgdHRtX3R0ICp0dG0pOwo+ICAgYm9vbCBhbWRncHVfdHRtX3R0X2lzX3JlYWRvbmx5 KHN0cnVjdCB0dG1fdHQgKnR0bSk7Cj4gLXVpbnQ2NF90IGFtZGdwdV90dG1fdHRfcGRlX2ZsYWdz KHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pOwo+ICt1aW50NjRf dCBhbWRncHVfdHRtX3R0X3BkZV9mbGFncyhzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1f cmVzb3VyY2UgKm1lbSk7Cj4gICB1aW50NjRfdCBhbWRncHVfdHRtX3R0X3B0ZV9mbGFncyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IHR0bV90dCAqdHRtLAo+IC0JCQkJIHN0cnVj dCB0dG1fbWVtX3JlZyAqbWVtKTsKPiArCQkJCSBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pOwo+ ICAgCj4gICBpbnQgYW1kZ3B1X3R0bV9kZWJ1Z2ZzX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPiBpbmRl eCA3MWUwMDVjZjI5NTIuLjhiYzIyNTM5MzliZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92bS5jCj4gQEAgLTE3NjUsNyArMTc2NSw3IEBAIGludCBhbWRncHVfdm1fYm9f dXBkYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X2JvX3ZhICpi b192YSwKPiAgIAlzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSA9IGJvX3ZhLT5iYXNlLnZtOwo+ICAgCXN0 cnVjdCBhbWRncHVfYm9fdmFfbWFwcGluZyAqbWFwcGluZzsKPiAgIAlkbWFfYWRkcl90ICpwYWdl c19hZGRyID0gTlVMTDsKPiAtCXN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtOwo+ICsJc3RydWN0IHR0 bV9yZXNvdXJjZSAqbWVtOwo+ICAgCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZXM7Cj4gICAJc3Ry dWN0IGRtYV9mZW5jZSAqKmxhc3RfdXBkYXRlOwo+ICAgCXN0cnVjdCBkbWFfcmVzdiAqcmVzdjsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZyYW1fbWdy LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdnJhbV9tZ3IuYwo+IGluZGV4 IGIyMjdlMzgwMDk0Zi4uNDRmMjBiMzA0MjBlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92cmFtX21nci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3ZyYW1fbWdyLmMKPiBAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyB1 NjQgYW1kZ3B1X3ZyYW1fbWdyX3Zpc19zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ ICAgdTY0IGFtZGdwdV92cmFtX21ncl9ib192aXNpYmxlX3NpemUoc3RydWN0IGFtZGdwdV9ibyAq Ym8pCj4gICB7Cj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2Fk ZXYoYm8tPnRiby5iZGV2KTsKPiAtCXN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtID0gJmJvLT50Ym8u bWVtOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtID0gJmJvLT50Ym8ubWVtOwo+ICAgCXN0 cnVjdCBkcm1fbW1fbm9kZSAqbm9kZXMgPSBtZW0tPm1tX25vZGU7Cj4gICAJdW5zaWduZWQgcGFn ZXMgPSBtZW0tPm51bV9wYWdlczsKPiAgIAl1NjQgdXNhZ2U7Cj4gQEAgLTI5MiwxMyArMjkyLDEz IEBAIHU2NCBhbWRncHVfdnJhbV9tZ3JfYm9fdmlzaWJsZV9zaXplKHN0cnVjdCBhbWRncHVfYm8g KmJvKQo+ICAgLyoqCj4gICAgKiBhbWRncHVfdnJhbV9tZ3JfdmlydF9zdGFydCAtIHVwZGF0ZSB2 aXJ0dWFsIHN0YXJ0IGFkZHJlc3MKPiAgICAqCj4gLSAqIEBtZW06IHR0bV9tZW1fcmVnIHRvIHVw ZGF0ZQo+ICsgKiBAbWVtOiB0dG1fcmVzb3VyY2UgdG8gdXBkYXRlCj4gICAgKiBAbm9kZToganVz dCBhbGxvY2F0ZWQgbm9kZQo+ICAgICoKPiAgICAqIENhbGN1bGF0ZSBhIHZpcnR1YWwgQk8gc3Rh cnQgYWRkcmVzcyB0byBlYXNpbHkgY2hlY2sgaWYgZXZlcnl0aGluZyBpcyBDUFUKPiAgICAqIGFj Y2Vzc2libGUuCj4gICAgKi8KPiAtc3RhdGljIHZvaWQgYW1kZ3B1X3ZyYW1fbWdyX3ZpcnRfc3Rh cnQoc3RydWN0IHR0bV9tZW1fcmVnICptZW0sCj4gK3N0YXRpYyB2b2lkIGFtZGdwdV92cmFtX21n cl92aXJ0X3N0YXJ0KHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPiAgIAkJCQkgICAgICAgc3Ry dWN0IGRybV9tbV9ub2RlICpub2RlKQo+ICAgewo+ICAgCXVuc2lnbmVkIGxvbmcgc3RhcnQ7Cj4g QEAgLTMyNCw3ICszMjQsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfdnJhbV9tZ3JfdmlydF9zdGFy dChzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwKPiAgIHN0YXRpYyBpbnQgYW1kZ3B1X3ZyYW1fbWdy X25ldyhzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiAgIAkJCSAgICAgICBzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKnRibywKPiAgIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdHRt X3BsYWNlICpwbGFjZSwKPiAtCQkJICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICsJ CQkgICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+ICAgewo+ICAgCXN0cnVjdCBhbWRn cHVfdnJhbV9tZ3IgKm1nciA9IHRvX3ZyYW1fbWdyKG1hbik7Cj4gICAJc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYgPSBtZ3ItPmFkZXY7Cj4gQEAgLTQ0MCw3ICs0NDAsNyBAQCBzdGF0aWMgaW50 IGFtZGdwdV92cmFtX21ncl9uZXcoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4g ICAgKiBGcmVlIHRoZSBhbGxvY2F0ZWQgVlJBTSBhZ2Fpbi4KPiAgICAqLwo+ICAgc3RhdGljIHZv aWQgYW1kZ3B1X3ZyYW1fbWdyX2RlbChzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwK PiAtCQkJCXN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICsJCQkJc3RydWN0IHR0bV9yZXNvdXJj ZSAqbWVtKQo+ICAgewo+ICAgCXN0cnVjdCBhbWRncHVfdnJhbV9tZ3IgKm1nciA9IHRvX3ZyYW1f bWdyKG1hbik7Cj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBtZ3ItPmFkZXY7Cj4g QEAgLTQ4MCw3ICs0ODAsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfdnJhbV9tZ3JfZGVsKHN0cnVj dCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ICAgICogQWxsb2NhdGUgYW5kIGZpbGwgYSBz ZyB0YWJsZSBmcm9tIGEgVlJBTSBhbGxvY2F0aW9uLgo+ICAgICovCj4gICBpbnQgYW1kZ3B1X3Zy YW1fbWdyX2FsbG9jX3NndChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAtCQkJICAgICAg c3RydWN0IHR0bV9tZW1fcmVnICptZW0sCj4gKwkJCSAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2Ug Km1lbSwKPiAgIAkJCSAgICAgIHN0cnVjdCBkZXZpY2UgKmRldiwKPiAgIAkJCSAgICAgIGVudW0g ZG1hX2RhdGFfZGlyZWN0aW9uIGRpciwKPiAgIAkJCSAgICAgIHN0cnVjdCBzZ190YWJsZSAqKnNn dCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMKPiBpbmRleCBlMzY2MGQwMDk4 N2QuLmI0MTA5MzBkOTRhMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92 cmFtX2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIu Ywo+IEBAIC02NTMsNyArNjUzLDcgQEAgc3RhdGljIHZvaWQgZHJtX2dlbV92cmFtX2JvX2RyaXZl cl9ldmljdF9mbGFncyhzdHJ1Y3QgZHJtX2dlbV92cmFtX29iamVjdCAqZ2JvLAo+ICAgCj4gICBz dGF0aWMgdm9pZCBkcm1fZ2VtX3ZyYW1fYm9fZHJpdmVyX21vdmVfbm90aWZ5KHN0cnVjdCBkcm1f Z2VtX3ZyYW1fb2JqZWN0ICpnYm8sCj4gICAJCQkJCSAgICAgICBib29sIGV2aWN0LAo+IC0JCQkJ CSAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pCj4gKwkJCQkJICAgICAgIHN0cnVj dCB0dG1fcmVzb3VyY2UgKm5ld19tZW0pCj4gICB7Cj4gICAJc3RydWN0IHR0bV9ib19rbWFwX29i aiAqa21hcCA9ICZnYm8tPmttYXA7Cj4gICAKPiBAQCAtMTAyMCw3ICsxMDIwLDcgQEAgc3RhdGlj IHZvaWQgYm9fZHJpdmVyX2V2aWN0X2ZsYWdzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8s Cj4gICAKPiAgIHN0YXRpYyB2b2lkIGJvX2RyaXZlcl9tb3ZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAo+ICAgCQkJCSAgYm9vbCBldmljdCwKPiAtCQkJCSAgc3RydWN0IHR0 bV9tZW1fcmVnICpuZXdfbWVtKQo+ICsJCQkJICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfbWVt KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpnYm87Cj4gICAKPiBAQCAt MTAzNCw3ICsxMDM0LDcgQEAgc3RhdGljIHZvaWQgYm9fZHJpdmVyX21vdmVfbm90aWZ5KHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQgYm9fZHJp dmVyX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAo+IC0JCQkJICAg IHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICsJCQkJICAgIHN0cnVjdCB0dG1fcmVzb3VyY2Ug Km1lbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX3ZyYW1fbW0gKnZtbSA9IGRybV92cmFtX21tX29m X2JkZXYoYmRldik7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCj4gaW5k ZXggYWViZWM0NWI4NDE2Li44MGQyMmE5ODk1MGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9iby5jCj4gQEAgLTY2Niw3ICs2NjYsNyBAQCBub3V2ZWF1X2JvX2V2aWN0X2ZsYWdz KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbCkK PiAgIAo+ICAgc3RhdGljIGludAo+ICAgbm91dmVhdV9ib19tb3ZlX3ByZXAoc3RydWN0IG5vdXZl YXVfZHJtICpkcm0sIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gLQkJICAgICBzdHJ1 Y3QgdHRtX21lbV9yZWcgKnJlZykKPiArCQkgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJlZykK PiAgIHsKPiAgIAlzdHJ1Y3Qgbm91dmVhdV9tZW0gKm9sZF9tZW0gPSBub3V2ZWF1X21lbSgmYm8t Pm1lbSk7Cj4gICAJc3RydWN0IG5vdXZlYXVfbWVtICpuZXdfbWVtID0gbm91dmVhdV9tZW0ocmVn KTsKPiBAQCAtNjk4LDcgKzY5OCw3IEBAIG5vdXZlYXVfYm9fbW92ZV9wcmVwKHN0cnVjdCBub3V2 ZWF1X2RybSAqZHJtLCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgCj4gICBzdGF0 aWMgaW50Cj4gICBub3V2ZWF1X2JvX21vdmVfbTJtZihzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLCBpbnQgZXZpY3QsIGJvb2wgaW50ciwKPiAtCQkgICAgIGJvb2wgbm9fd2FpdF9ncHUsIHN0 cnVjdCB0dG1fbWVtX3JlZyAqbmV3X3JlZykKPiArCQkgICAgIGJvb2wgbm9fd2FpdF9ncHUsIHN0 cnVjdCB0dG1fcmVzb3VyY2UgKm5ld19yZWcpCj4gICB7Cj4gICAJc3RydWN0IG5vdXZlYXVfZHJt ICpkcm0gPSBub3V2ZWF1X2JkZXYoYm8tPmJkZXYpOwo+ICAgCXN0cnVjdCBub3V2ZWF1X2NoYW5u ZWwgKmNoYW4gPSBkcm0tPnR0bS5jaGFuOwo+IEBAIC03MDgsNyArNzA4LDcgQEAgbm91dmVhdV9i b19tb3ZlX20ybWYoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgaW50IGV2aWN0LCBib29s IGludHIsCj4gICAKPiAgIAkvKiBjcmVhdGUgdGVtcG9yYXJ5IHZtYXMgZm9yIHRoZSB0cmFuc2Zl ciBhbmQgYXR0YWNoIHRoZW0gdG8gdGhlCj4gICAJICogb2xkIG52a21fbWVtIG5vZGUsIHRoZXNl IHdpbGwgZ2V0IGNsZWFuZWQgdXAgYWZ0ZXIgdHRtIGhhcwo+IC0JICogZGVzdHJveWVkIHRoZSB0 dG1fbWVtX3JlZwo+ICsJICogZGVzdHJveWVkIHRoZSB0dG1fcmVzb3VyY2UKPiAgIAkgKi8KPiAg IAlpZiAoZHJtLT5jbGllbnQuZGV2aWNlLmluZm8uZmFtaWx5ID49IE5WX0RFVklDRV9JTkZPX1Yw X1RFU0xBKSB7Cj4gICAJCXJldCA9IG5vdXZlYXVfYm9fbW92ZV9wcmVwKGRybSwgYm8sIG5ld19y ZWcpOwo+IEBAIC03NDQsNyArNzQ0LDcgQEAgbm91dmVhdV9ib19tb3ZlX2luaXQoc3RydWN0IG5v dXZlYXVfZHJtICpkcm0pCj4gICAJCXMzMiBvY2xhc3M7Cj4gICAJCWludCAoKmV4ZWMpKHN0cnVj dCBub3V2ZWF1X2NoYW5uZWwgKiwKPiAgIAkJCSAgICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KiwKPiAtCQkJICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqLCBzdHJ1Y3QgdHRtX21lbV9yZWcgKik7 Cj4gKwkJCSAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICosIHN0cnVjdCB0dG1fcmVzb3VyY2UgKik7 Cj4gICAJCWludCAoKmluaXQpKHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKiwgdTMyIGhhbmRsZSk7 Cj4gICAJfSBfbWV0aG9kc1tdID0gewo+ICAgCQl7ICAiQ09QWSIsIDQsIDB4YzViNSwgbnZlMF9i b19tb3ZlX2NvcHksIG52ZTBfYm9fbW92ZV9pbml0IH0sCj4gQEAgLTgwNSw3ICs4MDUsNyBAQCBu b3V2ZWF1X2JvX21vdmVfaW5pdChzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSkKPiAgIAo+ICAgc3Rh dGljIGludAo+ICAgbm91dmVhdV9ib19tb3ZlX2ZsaXBkKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sIGJvb2wgZXZpY3QsIGJvb2wgaW50ciwKPiAtCQkgICAgICBib29sIG5vX3dhaXRfZ3B1 LCBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19yZWcpCj4gKwkJICAgICAgYm9vbCBub193YWl0X2dw dSwgc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X3JlZykKPiAgIHsKPiAgIAlzdHJ1Y3QgdHRtX29w ZXJhdGlvbl9jdHggY3R4ID0geyBpbnRyLCBub193YWl0X2dwdSB9Owo+ICAgCXN0cnVjdCB0dG1f cGxhY2UgcGxhY2VtZW50X21lbXR5cGUgPSB7Cj4gQEAgLTgxNCw3ICs4MTQsNyBAQCBub3V2ZWF1 X2JvX21vdmVfZmxpcGQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwg Ym9vbCBpbnRyLAo+ICAgCQkuZmxhZ3MgPSBUVE1fUExfRkxBR19UVCB8IFRUTV9QTF9NQVNLX0NB Q0hJTkcKPiAgIAl9Owo+ICAgCXN0cnVjdCB0dG1fcGxhY2VtZW50IHBsYWNlbWVudDsKPiAtCXN0 cnVjdCB0dG1fbWVtX3JlZyB0bXBfcmVnOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZSB0bXBfcmVn Owo+ICAgCWludCByZXQ7Cj4gICAKPiAgIAlwbGFjZW1lbnQubnVtX3BsYWNlbWVudCA9IHBsYWNl bWVudC5udW1fYnVzeV9wbGFjZW1lbnQgPSAxOwo+IEBAIC04NDIsNyArODQyLDcgQEAgbm91dmVh dV9ib19tb3ZlX2ZsaXBkKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZpY3Qs IGJvb2wgaW50ciwKPiAgIAo+ICAgc3RhdGljIGludAo+ICAgbm91dmVhdV9ib19tb3ZlX2ZsaXBz KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZpY3QsIGJvb2wgaW50ciwKPiAt CQkgICAgICBib29sIG5vX3dhaXRfZ3B1LCBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19yZWcpCj4g KwkJICAgICAgYm9vbCBub193YWl0X2dwdSwgc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X3JlZykK PiAgIHsKPiAgIAlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBpbnRyLCBub193YWl0 X2dwdSB9Owo+ICAgCXN0cnVjdCB0dG1fcGxhY2UgcGxhY2VtZW50X21lbXR5cGUgPSB7Cj4gQEAg LTg1MSw3ICs4NTEsNyBAQCBub3V2ZWF1X2JvX21vdmVfZmxpcHMoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywgYm9vbCBldmljdCwgYm9vbCBpbnRyLAo+ICAgCQkuZmxhZ3MgPSBUVE1fUExf RkxBR19UVCB8IFRUTV9QTF9NQVNLX0NBQ0hJTkcKPiAgIAl9Owo+ICAgCXN0cnVjdCB0dG1fcGxh Y2VtZW50IHBsYWNlbWVudDsKPiAtCXN0cnVjdCB0dG1fbWVtX3JlZyB0bXBfcmVnOwo+ICsJc3Ry dWN0IHR0bV9yZXNvdXJjZSB0bXBfcmVnOwo+ICAgCWludCByZXQ7Cj4gICAKPiAgIAlwbGFjZW1l bnQubnVtX3BsYWNlbWVudCA9IHBsYWNlbWVudC5udW1fYnVzeV9wbGFjZW1lbnQgPSAxOwo+IEBA IC04NzgsNyArODc4LDcgQEAgbm91dmVhdV9ib19tb3ZlX2ZsaXBzKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sIGJvb2wgZXZpY3QsIGJvb2wgaW50ciwKPiAgIAo+ICAgc3RhdGljIHZvaWQK PiAgIG5vdXZlYXVfYm9fbW92ZV9udGZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJv b2wgZXZpY3QsCj4gLQkJICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19yZWcpCj4gKwkJICAg ICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfcmVnKQo+ICAgewo+ICAgCXN0cnVjdCBub3V2ZWF1 X21lbSAqbWVtID0gbmV3X3JlZyA/IG5vdXZlYXVfbWVtKG5ld19yZWcpIDogTlVMTDsKPiAgIAlz dHJ1Y3Qgbm91dmVhdV9ibyAqbnZibyA9IG5vdXZlYXVfYm8oYm8pOwo+IEBAIC05MTAsNyArOTEw LDcgQEAgbm91dmVhdV9ib19tb3ZlX250Znkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywg Ym9vbCBldmljdCwKPiAgIH0KPiAgIAo+ICAgc3RhdGljIGludAo+IC1ub3V2ZWF1X2JvX3ZtX2Jp bmQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IHR0bV9tZW1fcmVnICpuZXdf cmVnLAo+ICtub3V2ZWF1X2JvX3ZtX2JpbmQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywg c3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X3JlZywKPiAgIAkJICAgc3RydWN0IG5vdXZlYXVfZHJt X3RpbGUgKipuZXdfdGlsZSkKPiAgIHsKPiAgIAlzdHJ1Y3Qgbm91dmVhdV9kcm0gKmRybSA9IG5v dXZlYXVfYmRldihiby0+YmRldik7Cj4gQEAgLTk0NiwxMSArOTQ2LDExIEBAIG5vdXZlYXVfYm9f dm1fY2xlYW51cChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgc3RhdGljIGludAo+ ICAgbm91dmVhdV9ib19tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZp Y3QsCj4gICAJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+IC0JCXN0cnVjdCB0dG1f bWVtX3JlZyAqbmV3X3JlZykKPiArCQlzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfcmVnKQo+ICAg ewo+ICAgCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9iZGV2KGJvLT5iZGV2KTsK PiAgIAlzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibyA9IG5vdXZlYXVfYm8oYm8pOwo+IC0Jc3RydWN0 IHR0bV9tZW1fcmVnICpvbGRfcmVnID0gJmJvLT5tZW07Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNl ICpvbGRfcmVnID0gJmJvLT5tZW07Cj4gICAJc3RydWN0IG5vdXZlYXVfZHJtX3RpbGUgKm5ld190 aWxlID0gTlVMTDsKPiAgIAlpbnQgcmV0ID0gMDsKPiAgIAo+IEBAIC0xMDE5LDcgKzEwMTksNyBA QCBub3V2ZWF1X2JvX3ZlcmlmeV9hY2Nlc3Moc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywg c3RydWN0IGZpbGUgKmZpbHApCj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQKPiAtbm91dmVhdV90 dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1f bWVtX3JlZyAqcmVnKQo+ICtub3V2ZWF1X3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVnKQo+ICAgewo+ICAgCXN0cnVj dCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9iZGV2KGJkZXYpOwo+ICAgCXN0cnVjdCBudmtt X2RldmljZSAqZGV2aWNlID0gbnZ4eF9kZXZpY2UoJmRybS0+Y2xpZW50LmRldmljZSk7Cj4gQEAg LTEwOTksNyArMTA5OSw3IEBAIG5vdXZlYXVfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1f Ym9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX21lbV9yZWcgKnJlZykKPiAgIH0KPiAgIAo+ICAg c3RhdGljIHZvaWQKPiAtbm91dmVhdV90dG1faW9fbWVtX2ZyZWUoc3RydWN0IHR0bV9ib19kZXZp Y2UgKmJkZXYsIHN0cnVjdCB0dG1fbWVtX3JlZyAqcmVnKQo+ICtub3V2ZWF1X3R0bV9pb19tZW1f ZnJlZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVn KQo+ICAgewo+ICAgCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9iZGV2KGJkZXYp Owo+ICAgCXN0cnVjdCBub3V2ZWF1X21lbSAqbWVtID0gbm91dmVhdV9tZW0ocmVnKTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5oIGIvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5oCj4gaW5kZXggNTI0ODljZTdkMDI5Li5hZWNiNzQ4 MWRmMGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5oCj4gQEAgLTEzOSwy OCArMTM5LDI4IEBAIG5vdXZlYXVfYm9fbmV3X3Bpbl9tYXAoc3RydWN0IG5vdXZlYXVfY2xpICpj bGksIHU2NCBzaXplLCBpbnQgYWxpZ24sIHUzMiBmbGFncywKPiAgIAo+ICAgaW50IG52MDRfYm9f bW92ZV9pbml0KHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKiwgdTMyKTsKPiAgIGludCBudjA0X2Jv X21vdmVfbTJtZihzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICosIHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqLAo+IC0JCSAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqLCBzdHJ1Y3QgdHRtX21lbV9y ZWcgKik7Cj4gKwkJICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqLCBzdHJ1Y3QgdHRtX3Jlc291 cmNlICopOwo+ICAgCj4gICBpbnQgbnY1MF9ib19tb3ZlX2luaXQoc3RydWN0IG5vdXZlYXVfY2hh bm5lbCAqLCB1MzIpOwo+ICAgaW50IG52NTBfYm9fbW92ZV9tMm1mKHN0cnVjdCBub3V2ZWF1X2No YW5uZWwgKiwgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICosCj4gLQkJICAgICAgc3RydWN0IHR0 bV9tZW1fcmVnICosIHN0cnVjdCB0dG1fbWVtX3JlZyAqKTsKPiArCQkgICAgICBzdHJ1Y3QgdHRt X3Jlc291cmNlICosIHN0cnVjdCB0dG1fcmVzb3VyY2UgKik7Cj4gICAKPiAgIGludCBudjg0X2Jv X21vdmVfZXhlYyhzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICosIHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqLAo+IC0JCSAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqLCBzdHJ1Y3QgdHRtX21lbV9y ZWcgKik7Cj4gKwkJICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqLCBzdHJ1Y3QgdHRtX3Jlc291 cmNlICopOwo+ICAgCj4gICBpbnQgbnZhM19ib19tb3ZlX2NvcHkoc3RydWN0IG5vdXZlYXVfY2hh bm5lbCAqLCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKiwKPiAtCQkgICAgICBzdHJ1Y3QgdHRt X21lbV9yZWcgKiwgc3RydWN0IHR0bV9tZW1fcmVnICopOwo+ICsJCSAgICAgIHN0cnVjdCB0dG1f cmVzb3VyY2UgKiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqKTsKPiAgIAo+ICAgaW50IG52YzBfYm9f bW92ZV9pbml0KHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKiwgdTMyKTsKPiAgIGludCBudmMwX2Jv X21vdmVfbTJtZihzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICosIHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqLAo+IC0JCSAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqLCBzdHJ1Y3QgdHRtX21lbV9y ZWcgKik7Cj4gKwkJICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqLCBzdHJ1Y3QgdHRtX3Jlc291 cmNlICopOwo+ICAgCj4gICBpbnQgbnZjMF9ib19tb3ZlX2NvcHkoc3RydWN0IG5vdXZlYXVfY2hh bm5lbCAqLCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKiwKPiAtCQkgICAgICBzdHJ1Y3QgdHRt X21lbV9yZWcgKiwgc3RydWN0IHR0bV9tZW1fcmVnICopOwo+ICsJCSAgICAgIHN0cnVjdCB0dG1f cmVzb3VyY2UgKiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqKTsKPiAgIAo+ICAgaW50IG52ZTBfYm9f bW92ZV9pbml0KHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKiwgdTMyKTsKPiAgIGludCBudmUwX2Jv X21vdmVfY29weShzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICosIHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqLAo+IC0JCSAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqLCBzdHJ1Y3QgdHRtX21lbV9y ZWcgKik7Cj4gKwkJICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqLCBzdHJ1Y3QgdHRtX3Jlc291 cmNlICopOwo+ICAgCj4gICAjZGVmaW5lIE5WQk9fV1IzMl8oYixvLGRyLGYpIG5vdXZlYXVfYm9f d3IzMigoYiksIChvKS80ICsgKGRyKSwgKGYpKQo+ICAgI2RlZmluZSBOVkJPX1JEMzJfKGIsbyxk cikgICBub3V2ZWF1X2JvX3JkMzIoKGIpLCAobykvNCArIChkcikpCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8wMDM5LmMgYi9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X2JvMDAzOS5jCj4gaW5kZXggYmY3YWUyY2VjYWY2Li43MzkwMTMyMTI5 ZmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9ibzAwMzku Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8wMDM5LmMKPiBAQCAt MzYsNyArMzYsNyBAQAo+ICAgCj4gICBzdGF0aWMgaW5saW5lIHVpbnQzMl90Cj4gICBub3V2ZWF1 X2JvX21lbV9jdHhkbWEoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAtCQkgICAgICBz dHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuLCBzdHJ1Y3QgdHRtX21lbV9yZWcgKnJlZykKPiAr CQkgICAgICBzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuLCBzdHJ1Y3QgdHRtX3Jlc291cmNl ICpyZWcpCj4gICB7Cj4gICAJaWYgKHJlZy0+bWVtX3R5cGUgPT0gVFRNX1BMX1RUKQo+ICAgCQly ZXR1cm4gTnZEbWFUVDsKPiBAQCAtNDUsNyArNDUsNyBAQCBub3V2ZWF1X2JvX21lbV9jdHhkbWEo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAo+ICAgaW50Cj4gICBudjA0X2JvX21v dmVfbTJtZihzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuLCBzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLAo+IC0JCSAgc3RydWN0IHR0bV9tZW1fcmVnICpvbGRfcmVnLCBzdHJ1Y3QgdHRt X21lbV9yZWcgKm5ld19yZWcpCj4gKwkJICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfcmVnLCBz dHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfcmVnKQo+ICAgewo+ICAgCXN0cnVjdCBudmlmX3B1c2gg KnB1c2ggPSBjaGFuLT5jaGFuLnB1c2g7Cj4gICAJdTMyIHNyY19jdHhkbWEgPSBub3V2ZWF1X2Jv X21lbV9jdHhkbWEoYm8sIGNoYW4sIG9sZF9yZWcpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvNTAzOS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9ibzUwMzkuYwo+IGluZGV4IGY5YjliODVhYmU0NC4uNGM3NWM3YjM4MDRjIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm81MDM5LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvNTAzOS5jCj4gQEAgLTM3LDcgKzM3 LDcgQEAKPiAgIAo+ICAgaW50Cj4gICBudjUwX2JvX21vdmVfbTJtZihzdHJ1Y3Qgbm91dmVhdV9j aGFubmVsICpjaGFuLCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+IC0JCSAgc3RydWN0 IHR0bV9tZW1fcmVnICpvbGRfcmVnLCBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19yZWcpCj4gKwkJ ICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfcmVnLCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdf cmVnKQo+ICAgewo+ICAgCXN0cnVjdCBub3V2ZWF1X21lbSAqbWVtID0gbm91dmVhdV9tZW0ob2xk X3JlZyk7Cj4gICAJc3RydWN0IG52aWZfcHVzaCAqcHVzaCA9IGNoYW4tPmNoYW4ucHVzaDsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9ibzc0YzEuYyBiL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm83NGMxLmMKPiBpbmRleCAxYjVmZDc4ZGRj YmEuLmVkNmMwOWQ2Nzg0MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X2JvNzRjMS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9i bzc0YzEuYwo+IEBAIC0zNCw3ICszNCw3IEBACj4gICAKPiAgIGludAo+ICAgbnY4NF9ib19tb3Zl X2V4ZWMoc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiwgc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpibywKPiAtCQkgIHN0cnVjdCB0dG1fbWVtX3JlZyAqb2xkX3JlZywgc3RydWN0IHR0bV9t ZW1fcmVnICpuZXdfcmVnKQo+ICsJCSAgc3RydWN0IHR0bV9yZXNvdXJjZSAqb2xkX3JlZywgc3Ry dWN0IHR0bV9yZXNvdXJjZSAqbmV3X3JlZykKPiAgIHsKPiAgIAlzdHJ1Y3Qgbm91dmVhdV9tZW0g Km1lbSA9IG5vdXZlYXVfbWVtKG9sZF9yZWcpOwo+ICAgCXN0cnVjdCBudmlmX3B1c2ggKnB1c2gg PSBjaGFuLT5jaGFuLnB1c2g7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L25vdXZlYXVfYm84NWI1LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvODVi NS5jCj4gaW5kZXggZjBkZjE3MmIwMjllLi5kZWMyOWIyZDhiYjIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9ibzg1YjUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L25vdXZlYXVfYm84NWI1LmMKPiBAQCAtMzgsNyArMzgsNyBAQAo+ICAgCj4g ICBpbnQKPiAgIG52YTNfYm9fbW92ZV9jb3B5KHN0cnVjdCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4s IHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gLQkJICBzdHJ1Y3QgdHRtX21lbV9yZWcg Km9sZF9yZWcsIHN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X3JlZykKPiArCQkgIHN0cnVjdCB0dG1f cmVzb3VyY2UgKm9sZF9yZWcsIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm5ld19yZWcpCj4gICB7Cj4g ICAJc3RydWN0IG5vdXZlYXVfbWVtICptZW0gPSBub3V2ZWF1X21lbShvbGRfcmVnKTsKPiAgIAlz dHJ1Y3QgbnZpZl9wdXNoICpwdXNoID0gY2hhbi0+Y2hhbi5wdXNoOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvOTAzOS5jIGIvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvbm91dmVhdV9ibzkwMzkuYwo+IGluZGV4IDUyZmVmYjM3MDY0Yy4uNzc2YjA0OTc2 Y2RmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm85MDM5 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvOTAzOS5jCj4gQEAg LTM2LDcgKzM2LDcgQEAKPiAgIAo+ICAgaW50Cj4gICBudmMwX2JvX21vdmVfbTJtZihzdHJ1Y3Qg bm91dmVhdV9jaGFubmVsICpjaGFuLCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+IC0J CSAgc3RydWN0IHR0bV9tZW1fcmVnICpvbGRfcmVnLCBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19y ZWcpCj4gKwkJICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfcmVnLCBzdHJ1Y3QgdHRtX3Jlc291 cmNlICpuZXdfcmVnKQo+ICAgewo+ICAgCXN0cnVjdCBudmlmX3B1c2ggKnB1c2ggPSBjaGFuLT5j aGFuLnB1c2g7Cj4gICAJc3RydWN0IG5vdXZlYXVfbWVtICptZW0gPSBub3V2ZWF1X21lbShvbGRf cmVnKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9ibzkw YjUuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm85MGI1LmMKPiBpbmRleCAz NGI3OWQ1NjFjN2YuLjg0OTlmNTgyMTNlMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X2JvOTBiNS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv bm91dmVhdV9ibzkwYjUuYwo+IEBAIC0zMSw3ICszMSw3IEBACj4gICAKPiAgIGludAo+ICAgbnZj MF9ib19tb3ZlX2NvcHkoc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqY2hhbiwgc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKPiAtCQkgIHN0cnVjdCB0dG1fbWVtX3JlZyAqb2xkX3JlZywgc3Ry dWN0IHR0bV9tZW1fcmVnICpuZXdfcmVnKQo+ICsJCSAgc3RydWN0IHR0bV9yZXNvdXJjZSAqb2xk X3JlZywgc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X3JlZykKPiAgIHsKPiAgIAlzdHJ1Y3Qgbm91 dmVhdV9tZW0gKm1lbSA9IG5vdXZlYXVfbWVtKG9sZF9yZWcpOwo+ICAgCXN0cnVjdCBudmlmX3B1 c2ggKnB1c2ggPSBjaGFuLT5jaGFuLnB1c2g7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L25vdXZlYXVfYm9hMGI1LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2 ZWF1X2JvYTBiNS5jCj4gaW5kZXggMzk0ZTI5MDEyZTUwLi41NzUyMTI0NzJlN2EgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9ib2EwYjUuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm9hMGI1LmMKPiBAQCAtMzYsNyArMzYsNyBA QAo+ICAgCj4gICBpbnQKPiAgIG52ZTBfYm9fbW92ZV9jb3B5KHN0cnVjdCBub3V2ZWF1X2NoYW5u ZWwgKmNoYW4sIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gLQkJICBzdHJ1Y3QgdHRt X21lbV9yZWcgKm9sZF9yZWcsIHN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X3JlZykKPiArCQkgIHN0 cnVjdCB0dG1fcmVzb3VyY2UgKm9sZF9yZWcsIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm5ld19yZWcp Cj4gICB7Cj4gICAJc3RydWN0IG5vdXZlYXVfbWVtICptZW0gPSBub3V2ZWF1X21lbShvbGRfcmVn KTsKPiAgIAlzdHJ1Y3QgbnZpZl9wdXNoICpwdXNoID0gY2hhbi0+Y2hhbi5wdXNoOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcnYuaAo+IGluZGV4IGFlNzZhNTg2NWE1YS4uZjYzYWM3 MmFhNTU2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oCj4gQEAgLTE1 Nyw3ICsxNTcsNyBAQCBzdHJ1Y3Qgbm91dmVhdV9kcm0gewo+ICAgCQlhdG9taWNfdCB2YWxpZGF0 ZV9zZXF1ZW5jZTsKPiAgIAkJaW50ICgqbW92ZSkoc3RydWN0IG5vdXZlYXVfY2hhbm5lbCAqLAo+ ICAgCQkJICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqLAo+IC0JCQkgICAgc3RydWN0IHR0 bV9tZW1fcmVnICosIHN0cnVjdCB0dG1fbWVtX3JlZyAqKTsKPiArCQkJICAgIHN0cnVjdCB0dG1f cmVzb3VyY2UgKiwgc3RydWN0IHR0bV9yZXNvdXJjZSAqKTsKPiAgIAkJc3RydWN0IG5vdXZlYXVf Y2hhbm5lbCAqY2hhbjsKPiAgIAkJc3RydWN0IG52aWZfb2JqZWN0IGNvcHk7Cj4gICAJCWludCBt dHJyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X21lbS5j IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9tZW0uYwo+IGluZGV4IGIxYmI1NDJk MzExNS4uMjY5ZDg3MDdhY2MzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L25vdXZlYXVfbWVtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X21l bS5jCj4gQEAgLTkyLDcgKzkyLDcgQEAgbm91dmVhdV9tZW1fZmluaShzdHJ1Y3Qgbm91dmVhdV9t ZW0gKm1lbSkKPiAgIH0KPiAgIAo+ICAgaW50Cj4gLW5vdXZlYXVfbWVtX2hvc3Qoc3RydWN0IHR0 bV9tZW1fcmVnICpyZWcsIHN0cnVjdCB0dG1fZG1hX3R0ICp0dCkKPiArbm91dmVhdV9tZW1faG9z dChzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcsIHN0cnVjdCB0dG1fZG1hX3R0ICp0dCkKPiAgIHsK PiAgIAlzdHJ1Y3Qgbm91dmVhdV9tZW0gKm1lbSA9IG5vdXZlYXVfbWVtKHJlZyk7Cj4gICAJc3Ry dWN0IG5vdXZlYXVfY2xpICpjbGkgPSBtZW0tPmNsaTsKPiBAQCAtMTMwLDcgKzEzMCw3IEBAIG5v dXZlYXVfbWVtX2hvc3Qoc3RydWN0IHR0bV9tZW1fcmVnICpyZWcsIHN0cnVjdCB0dG1fZG1hX3R0 ICp0dCkKPiAgIH0KPiAgIAo+ICAgaW50Cj4gLW5vdXZlYXVfbWVtX3ZyYW0oc3RydWN0IHR0bV9t ZW1fcmVnICpyZWcsIGJvb2wgY29udGlnLCB1OCBwYWdlKQo+ICtub3V2ZWF1X21lbV92cmFtKHN0 cnVjdCB0dG1fcmVzb3VyY2UgKnJlZywgYm9vbCBjb250aWcsIHU4IHBhZ2UpCj4gICB7Cj4gICAJ c3RydWN0IG5vdXZlYXVfbWVtICptZW0gPSBub3V2ZWF1X21lbShyZWcpOwo+ICAgCXN0cnVjdCBu b3V2ZWF1X2NsaSAqY2xpID0gbWVtLT5jbGk7Cj4gQEAgLTE3Myw3ICsxNzMsNyBAQCBub3V2ZWF1 X21lbV92cmFtKHN0cnVjdCB0dG1fbWVtX3JlZyAqcmVnLCBib29sIGNvbnRpZywgdTggcGFnZSkK PiAgIH0KPiAgIAo+ICAgdm9pZAo+IC1ub3V2ZWF1X21lbV9kZWwoc3RydWN0IHR0bV9tZW1fcmVn ICpyZWcpCj4gK25vdXZlYXVfbWVtX2RlbChzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcpCj4gICB7 Cj4gICAJc3RydWN0IG5vdXZlYXVfbWVtICptZW0gPSBub3V2ZWF1X21lbShyZWcpOwo+ICAgCW5v dXZlYXVfbWVtX2ZpbmkobWVtKTsKPiBAQCAtMTgzLDcgKzE4Myw3IEBAIG5vdXZlYXVfbWVtX2Rl bChzdHJ1Y3QgdHRtX21lbV9yZWcgKnJlZykKPiAgIAo+ICAgaW50Cj4gICBub3V2ZWF1X21lbV9u ZXcoc3RydWN0IG5vdXZlYXVfY2xpICpjbGksIHU4IGtpbmQsIHU4IGNvbXAsCj4gLQkJc3RydWN0 IHR0bV9tZW1fcmVnICpyZWcpCj4gKwkJc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVnKQo+ICAgewo+ ICAgCXN0cnVjdCBub3V2ZWF1X21lbSAqbWVtOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfbWVtLmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9u b3V2ZWF1X21lbS5oCj4gaW5kZXggZjZkMDM5ZTczODEyLi4zZmUxY2ZlZDU3YTEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9tZW0uaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfbWVtLmgKPiBAQCAtNyw3ICs3LDcgQEAgc3RydWN0 IHR0bV9kbWFfdHQ7Cj4gICAjaW5jbHVkZSA8bnZpZi92bW0uaD4KPiAgIAo+ICAgc3RhdGljIGlu bGluZSBzdHJ1Y3Qgbm91dmVhdV9tZW0gKgo+IC1ub3V2ZWF1X21lbShzdHJ1Y3QgdHRtX21lbV9y ZWcgKnJlZykKPiArbm91dmVhdV9tZW0oc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVnKQo+ICAgewo+ ICAgCXJldHVybiByZWctPm1tX25vZGU7Cj4gICB9Cj4gQEAgLTIxLDEwICsyMSwxMCBAQCBzdHJ1 Y3Qgbm91dmVhdV9tZW0gewo+ICAgfTsKPiAgIAo+ICAgaW50IG5vdXZlYXVfbWVtX25ldyhzdHJ1 Y3Qgbm91dmVhdV9jbGkgKiwgdTgga2luZCwgdTggY29tcCwKPiAtCQkgICAgc3RydWN0IHR0bV9t ZW1fcmVnICopOwo+IC12b2lkIG5vdXZlYXVfbWVtX2RlbChzdHJ1Y3QgdHRtX21lbV9yZWcgKik7 Cj4gLWludCBub3V2ZWF1X21lbV92cmFtKHN0cnVjdCB0dG1fbWVtX3JlZyAqLCBib29sIGNvbnRp ZywgdTggcGFnZSk7Cj4gLWludCBub3V2ZWF1X21lbV9ob3N0KHN0cnVjdCB0dG1fbWVtX3JlZyAq LCBzdHJ1Y3QgdHRtX2RtYV90dCAqKTsKPiArCQkgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqKTsK PiArdm9pZCBub3V2ZWF1X21lbV9kZWwoc3RydWN0IHR0bV9yZXNvdXJjZSAqKTsKPiAraW50IG5v dXZlYXVfbWVtX3ZyYW0oc3RydWN0IHR0bV9yZXNvdXJjZSAqLCBib29sIGNvbnRpZywgdTggcGFn ZSk7Cj4gK2ludCBub3V2ZWF1X21lbV9ob3N0KHN0cnVjdCB0dG1fcmVzb3VyY2UgKiwgc3RydWN0 IHR0bV9kbWFfdHQgKik7Cj4gICB2b2lkIG5vdXZlYXVfbWVtX2Zpbmkoc3RydWN0IG5vdXZlYXVf bWVtICopOwo+ICAgaW50IG5vdXZlYXVfbWVtX21hcChzdHJ1Y3Qgbm91dmVhdV9tZW0gKiwgc3Ry dWN0IG52aWZfdm1tICosIHN0cnVjdCBudmlmX3ZtYSAqKTsKPiAgICNlbmRpZgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3NnZG1hLmMgYi9kcml2ZXJzL2dw dS9kcm0vbm91dmVhdS9ub3V2ZWF1X3NnZG1hLmMKPiBpbmRleCBjM2NjZjY2MWI3YTYuLmVlZjc1 YzUzYTE5NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3Nn ZG1hLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3NnZG1hLmMKPiBA QCAtMjYsNyArMjYsNyBAQCBub3V2ZWF1X3NnZG1hX2Rlc3Ryb3koc3RydWN0IHR0bV90dCAqdHRt KQo+ICAgfQo+ICAgCj4gICBzdGF0aWMgaW50Cj4gLW52MDRfc2dkbWFfYmluZChzdHJ1Y3QgdHRt X3R0ICp0dG0sIHN0cnVjdCB0dG1fbWVtX3JlZyAqcmVnKQo+ICtudjA0X3NnZG1hX2JpbmQoc3Ry dWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcpCj4gICB7Cj4gICAJc3Ry dWN0IG5vdXZlYXVfc2dkbWFfYmUgKm52YmUgPSAoc3RydWN0IG5vdXZlYXVfc2dkbWFfYmUgKil0 dG07Cj4gICAJc3RydWN0IG5vdXZlYXVfbWVtICptZW0gPSBub3V2ZWF1X21lbShyZWcpOwo+IEBA IC02MCw3ICs2MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdHRtX2JhY2tlbmRfZnVuYyBudjA0X3NnZG1h X2JhY2tlbmQgPSB7Cj4gICB9Owo+ICAgCj4gICBzdGF0aWMgaW50Cj4gLW52NTBfc2dkbWFfYmlu ZChzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fbWVtX3JlZyAqcmVnKQo+ICtudjUwX3Nn ZG1hX2JpbmQoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcpCj4g ICB7Cj4gICAJc3RydWN0IG5vdXZlYXVfc2dkbWFfYmUgKm52YmUgPSAoc3RydWN0IG5vdXZlYXVf c2dkbWFfYmUgKil0dG07Cj4gICAJc3RydWN0IG5vdXZlYXVfbWVtICptZW0gPSBub3V2ZWF1X21l bShyZWcpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0 bS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV90dG0uYwo+IGluZGV4IGQ2YWQw OTc3ZGM3ZC4uOWU5NmI2ZmYyNGNmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfdHRtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1 X3R0bS5jCj4gQEAgLTMyLDcgKzMyLDcgQEAKPiAgICNpbmNsdWRlIDxjb3JlL3RlZ3JhLmg+Cj4g ICAKPiAgIHN0YXRpYyB2b2lkCj4gLW5vdXZlYXVfbWFuYWdlcl9kZWwoc3RydWN0IHR0bV9yZXNv dXJjZV9tYW5hZ2VyICptYW4sIHN0cnVjdCB0dG1fbWVtX3JlZyAqcmVnKQo+ICtub3V2ZWF1X21h bmFnZXJfZGVsKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLCBzdHJ1Y3QgdHRtX3Jl c291cmNlICpyZWcpCj4gICB7Cj4gICAJbm91dmVhdV9tZW1fZGVsKHJlZyk7Cj4gICB9Cj4gQEAg LTQxLDcgKzQxLDcgQEAgc3RhdGljIGludAo+ICAgbm91dmVhdV92cmFtX21hbmFnZXJfbmV3KHN0 cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ICAgCQkJIHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCj4gICAJCQkgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4gLQkJ CSBzdHJ1Y3QgdHRtX21lbV9yZWcgKnJlZykKPiArCQkJIHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJl ZykKPiAgIHsKPiAgIAlzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZibyA9IG5vdXZlYXVfYm8oYm8pOwo+ ICAgCXN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9iZGV2KGJvLT5iZGV2KTsKPiBA QCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgaW50Cj4gICBub3V2ZWF1X2dhcnRfbWFuYWdlcl9uZXco c3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gICAJCQkgc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKPiAgIAkJCSBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPiAt CQkJIHN0cnVjdCB0dG1fbWVtX3JlZyAqcmVnKQo+ICsJCQkgc3RydWN0IHR0bV9yZXNvdXJjZSAq cmVnKQo+ICAgewo+ICAgCXN0cnVjdCBub3V2ZWF1X2JvICpudmJvID0gbm91dmVhdV9ibyhibyk7 Cj4gICAJc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2JkZXYoYm8tPmJkZXYpOwo+ IEBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBpbnQKPiAgIG52MDRfZ2FydF9tYW5hZ2VyX25ldyhz dHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiAgIAkJICAgICAgc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKPiAgIAkJICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxh Y2UsCj4gLQkJICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICpyZWcpCj4gKwkJICAgICAgc3RydWN0 IHR0bV9yZXNvdXJjZSAqcmVnKQo+ICAgewo+ICAgCXN0cnVjdCBub3V2ZWF1X2JvICpudmJvID0g bm91dmVhdV9ibyhibyk7Cj4gICAJc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2Jk ZXYoYm8tPmJkZXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjE3 X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjE3X2ZlbmNlLmMKPiBpbmRleCBj ZDFlODdhNTI4YTQuLjZiNjk3ZWU2YmMwZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9udjE3X2ZlbmNlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjE3 X2ZlbmNlLmMKPiBAQCAtNzgsNyArNzgsNyBAQCBudjE3X2ZlbmNlX2NvbnRleHRfbmV3KHN0cnVj dCBub3V2ZWF1X2NoYW5uZWwgKmNoYW4pCj4gICB7Cj4gICAJc3RydWN0IG52MTBfZmVuY2VfcHJp diAqcHJpdiA9IGNoYW4tPmRybS0+ZmVuY2U7Cj4gICAJc3RydWN0IG52MTBfZmVuY2VfY2hhbiAq ZmN0eDsKPiAtCXN0cnVjdCB0dG1fbWVtX3JlZyAqcmVnID0gJnByaXYtPmJvLT5iby5tZW07Cj4g KwlzdHJ1Y3QgdHRtX3Jlc291cmNlICpyZWcgPSAmcHJpdi0+Ym8tPmJvLm1lbTsKPiAgIAl1MzIg c3RhcnQgPSByZWctPnN0YXJ0ICogUEFHRV9TSVpFOwo+ICAgCXUzMiBsaW1pdCA9IHN0YXJ0ICsg cmVnLT5zaXplIC0gMTsKPiAgIAlpbnQgcmV0ID0gMDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbnY1MF9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1 MF9mZW5jZS5jCj4gaW5kZXggZWJiNzQwNjg2YjQ0Li40OWI0NmY1MTA3M2MgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9mZW5jZS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbnY1MF9mZW5jZS5jCj4gQEAgLTM3LDcgKzM3LDcgQEAgbnY1MF9mZW5j ZV9jb250ZXh0X25ldyhzdHJ1Y3Qgbm91dmVhdV9jaGFubmVsICpjaGFuKQo+ICAgewo+ICAgCXN0 cnVjdCBudjEwX2ZlbmNlX3ByaXYgKnByaXYgPSBjaGFuLT5kcm0tPmZlbmNlOwo+ICAgCXN0cnVj dCBudjEwX2ZlbmNlX2NoYW4gKmZjdHg7Cj4gLQlzdHJ1Y3QgdHRtX21lbV9yZWcgKnJlZyA9ICZw cml2LT5iby0+Ym8ubWVtOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVnID0gJnByaXYtPmJv LT5iby5tZW07Cj4gICAJdTMyIHN0YXJ0ID0gcmVnLT5zdGFydCAqIFBBR0VfU0laRTsKPiAgIAl1 MzIgbGltaXQgPSBzdGFydCArIHJlZy0+c2l6ZSAtIDE7Cj4gICAJaW50IHJldDsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vcXhs L3F4bF9kcnYuaAo+IGluZGV4IDk2OTE0NDlhZWZkYi4uYWFlOTBhOWVlMWRiIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3F4bC9xeGxfZHJ2LmgKPiBAQCAtMzUwLDcgKzM1MCw3IEBAIGludCBxeGxfbW9kZV9kdW1iX21t YXAoc3RydWN0IGRybV9maWxlICpmaWxwLAo+ICAgaW50IHF4bF90dG1faW5pdChzdHJ1Y3QgcXhs X2RldmljZSAqcWRldik7Cj4gICB2b2lkIHF4bF90dG1fZmluaShzdHJ1Y3QgcXhsX2RldmljZSAq cWRldik7Cj4gICBpbnQgcXhsX3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwKPiAtCQkJICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pOwo+ICsJCQkgICBzdHJ1 Y3QgdHRtX3Jlc291cmNlICptZW0pOwo+ICAgCj4gICAvKiBxeGwgaW1hZ2UgKi8KPiAgIAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF90dG0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9xeGwvcXhsX3R0bS5jCj4gaW5kZXggMWMwNmZlNzgwODE1Li5kYzMxZjNmZWEzM2MgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vcXhsL3F4bF90dG0uYwo+IEBAIC03MSw3ICs3MSw3IEBAIHN0YXRpYyB2b2lkIHF4bF9l dmljdF9mbGFncyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgfQo+ICAgCj4gICBp bnQgcXhsX3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAt CQkJICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4gKwkJCSAgIHN0cnVjdCB0dG1fcmVzb3Vy Y2UgKm1lbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgcXhsX2RldmljZSAqcWRldiA9IHF4bF9nZXRfcWRl dihiZGV2KTsKPiAgIAo+IEBAIC0xMTEsNyArMTExLDcgQEAgc3RydWN0IHF4bF90dG1fdHQgewo+ ICAgfTsKPiAgIAo+ICAgc3RhdGljIGludCBxeGxfdHRtX2JhY2tlbmRfYmluZChzdHJ1Y3QgdHRt X3R0ICp0dG0sCj4gLQkJCQlzdHJ1Y3QgdHRtX21lbV9yZWcgKmJvX21lbSkKPiArCQkJCXN0cnVj dCB0dG1fcmVzb3VyY2UgKmJvX21lbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgcXhsX3R0bV90dCAqZ3R0 ID0gKHZvaWQgKil0dG07Cj4gICAKPiBAQCAtMTYzLDkgKzE2Myw5IEBAIHN0YXRpYyBzdHJ1Y3Qg dHRtX3R0ICpxeGxfdHRtX3R0X2NyZWF0ZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBxeGxfbW92ZV9udWxsKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCj4gLQkJCSAgICAgc3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKQo+ICsJ CQkgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm5ld19tZW0pCj4gICB7Cj4gLQlzdHJ1Y3QgdHRt X21lbV9yZWcgKm9sZF9tZW0gPSAmYm8tPm1lbTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm9s ZF9tZW0gPSAmYm8tPm1lbTsKPiAgIAo+ICAgCUJVR19PTihvbGRfbWVtLT5tbV9ub2RlICE9IE5V TEwpOwo+ICAgCSpvbGRfbWVtID0gKm5ld19tZW07Cj4gQEAgLTE3NCw5ICsxNzQsOSBAQCBzdGF0 aWMgdm9pZCBxeGxfbW92ZV9udWxsKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAK PiAgIHN0YXRpYyBpbnQgcXhsX2JvX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywg Ym9vbCBldmljdCwKPiAgIAkJICAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4LAo+ IC0JCSAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pCj4gKwkJICAgICAgIHN0cnVj dCB0dG1fcmVzb3VyY2UgKm5ld19tZW0pCj4gICB7Cj4gLQlzdHJ1Y3QgdHRtX21lbV9yZWcgKm9s ZF9tZW0gPSAmYm8tPm1lbTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm9sZF9tZW0gPSAmYm8t Pm1lbTsKPiAgIAlpbnQgcmV0Owo+ICAgCj4gICAJcmV0ID0gdHRtX2JvX3dhaXQoYm8sIGN0eC0+ aW50ZXJydXB0aWJsZSwgY3R4LT5ub193YWl0X2dwdSk7Cj4gQEAgLTE5Miw3ICsxOTIsNyBAQCBz dGF0aWMgaW50IHF4bF9ib19tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wg ZXZpY3QsCj4gICAKPiAgIHN0YXRpYyB2b2lkIHF4bF9ib19tb3ZlX25vdGlmeShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgCQkJICAgICAgIGJvb2wgZXZpY3QsCj4gLQkJCSAgICAg ICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pCj4gKwkJCSAgICAgICBzdHJ1Y3QgdHRtX3Jl c291cmNlICpuZXdfbWVtKQo+ICAgewo+ICAgCXN0cnVjdCBxeGxfYm8gKnFibzsKPiAgIAlzdHJ1 Y3QgcXhsX2RldmljZSAqcWRldjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKPiBpbmRleCBiN2Mz ZmIyYmZiNTQuLmNjNGY1OGQxNjU4OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAo+IEBA IC0yODU3LDcgKzI4NTcsNyBAQCBpbnQgcmFkZW9uX3ZtX2NsZWFyX2ludmFsaWRzKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCQkJICAgICBzdHJ1Y3QgcmFkZW9uX3ZtICp2bSk7Cj4g ICBpbnQgcmFkZW9uX3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAg IAkJCXN0cnVjdCByYWRlb25fYm9fdmEgKmJvX3ZhLAo+IC0JCQlzdHJ1Y3QgdHRtX21lbV9yZWcg Km1lbSk7Cj4gKwkJCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSk7Cj4gICB2b2lkIHJhZGVvbl92 bV9ib19pbnZhbGlkYXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCQkJICAgICBz dHJ1Y3QgcmFkZW9uX2JvICpibyk7Cj4gICBzdHJ1Y3QgcmFkZW9uX2JvX3ZhICpyYWRlb25fdm1f Ym9fZmluZChzdHJ1Y3QgcmFkZW9uX3ZtICp2bSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9vYmplY3QuYwo+IGluZGV4IGYzZGVlMDEyNTBkYS4uYmI3NTgyYWZkODAzIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMKPiBAQCAtNzc1LDcgKzc3NSw3IEBAIGlu dCByYWRlb25fYm9fY2hlY2tfdGlsaW5nKHN0cnVjdCByYWRlb25fYm8gKmJvLCBib29sIGhhc19t b3ZlZCwKPiAgIAo+ICAgdm9pZCByYWRlb25fYm9fbW92ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKPiAgIAkJCSAgIGJvb2wgZXZpY3QsCj4gLQkJCSAgIHN0cnVjdCB0dG1f bWVtX3JlZyAqbmV3X21lbSkKPiArCQkJICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X21lbSkK PiAgIHsKPiAgIAlzdHJ1Y3QgcmFkZW9uX2JvICpyYm87Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmggYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9vYmplY3QuaAo+IGluZGV4IDYwMjc1YjgyMmY3OS4uNDRiNDcyNDFlZTQyIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmgKPiBAQCAtMTY1LDcgKzE2 NSw3IEBAIGV4dGVybiBpbnQgcmFkZW9uX2JvX2NoZWNrX3RpbGluZyhzdHJ1Y3QgcmFkZW9uX2Jv ICpibywgYm9vbCBoYXNfbW92ZWQsCj4gICAJCQkJYm9vbCBmb3JjZV9kcm9wKTsKPiAgIGV4dGVy biB2b2lkIHJhZGVvbl9ib19tb3ZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAo+ICAgCQkJCSAgYm9vbCBldmljdCwKPiAtCQkJCSAgc3RydWN0IHR0bV9tZW1fcmVnICpuZXdf bWVtKTsKPiArCQkJCSAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X21lbSk7Cj4gICBleHRlcm4g aW50IHJhZGVvbl9ib19mYXVsdF9yZXNlcnZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvKTsKPiAgIGV4dGVybiBpbnQgcmFkZW9uX2JvX2dldF9zdXJmYWNlX3JlZyhzdHJ1Y3Qg cmFkZW9uX2JvICpibyk7Cj4gICBleHRlcm4gdm9pZCByYWRlb25fYm9fZmVuY2Uoc3RydWN0IHJh ZGVvbl9ibyAqYm8sIHN0cnVjdCByYWRlb25fZmVuY2UgKmZlbmNlLAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX3R0bS5jCj4gaW5kZXggMDViNWYyOWYyYjYxLi5hMDY4ZDY5NjBjMjMgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdHRtLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYwo+IEBAIC0xNjYsOSArMTY2LDkgQEAgc3Rh dGljIGludCByYWRlb25fdmVyaWZ5X2FjY2VzcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LCBzdHJ1Y3QgZmlsZSAqZmlscCkKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgcmFkZW9uX21v dmVfbnVsbChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+IC0JCQkgICAgIHN0cnVjdCB0 dG1fbWVtX3JlZyAqbmV3X21lbSkKPiArCQkJICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdf bWVtKQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fcmVnICpvbGRfbWVtID0gJmJvLT5tZW07Cj4g KwlzdHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gICAKPiAgIAlCVUdf T04ob2xkX21lbS0+bW1fbm9kZSAhPSBOVUxMKTsKPiAgIAkqb2xkX21lbSA9ICpuZXdfbWVtOwo+ IEBAIC0xNzcsOCArMTc3LDggQEAgc3RhdGljIHZvaWQgcmFkZW9uX21vdmVfbnVsbChzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgCj4gICBzdGF0aWMgaW50IHJhZGVvbl9tb3ZlX2Js aXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAkJCWJvb2wgZXZpY3QsIGJvb2wg bm9fd2FpdF9ncHUsCj4gLQkJCXN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X21lbSwKPiAtCQkJc3Ry dWN0IHR0bV9tZW1fcmVnICpvbGRfbWVtKQo+ICsJCQlzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdf bWVtLAo+ICsJCQlzdHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfbWVtKQo+ICAgewo+ICAgCXN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2Owo+ICAgCXVpbnQ2NF90IG9sZF9zdGFydCwgbmV3X3N0YXJ0 Owo+IEBAIC0yMzMsMTEgKzIzMywxMSBAQCBzdGF0aWMgaW50IHJhZGVvbl9tb3ZlX2JsaXQoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIHN0YXRpYyBpbnQgcmFkZW9uX21vdmVfdnJh bV9yYW0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAkJCQlib29sIGV2aWN0LCBi b29sIGludGVycnVwdGlibGUsCj4gICAJCQkJYm9vbCBub193YWl0X2dwdSwKPiAtCQkJCXN0cnVj dCB0dG1fbWVtX3JlZyAqbmV3X21lbSkKPiArCQkJCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm5ld19t ZW0pCj4gICB7Cj4gICAJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsgaW50ZXJydXB0 aWJsZSwgbm9fd2FpdF9ncHUgfTsKPiAtCXN0cnVjdCB0dG1fbWVtX3JlZyAqb2xkX21lbSA9ICZi by0+bWVtOwo+IC0Jc3RydWN0IHR0bV9tZW1fcmVnIHRtcF9tZW07Cj4gKwlzdHJ1Y3QgdHRtX3Jl c291cmNlICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlIHRtcF9t ZW07Cj4gICAJc3RydWN0IHR0bV9wbGFjZSBwbGFjZW1lbnRzOwo+ICAgCXN0cnVjdCB0dG1fcGxh Y2VtZW50IHBsYWNlbWVudDsKPiAgIAlpbnQgcjsKPiBAQCAtMjc4LDExICsyNzgsMTEgQEAgc3Rh dGljIGludCByYWRlb25fbW92ZV92cmFtX3JhbShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAo+ICAgc3RhdGljIGludCByYWRlb25fbW92ZV9yYW1fdnJhbShzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvLAo+ICAgCQkJCWJvb2wgZXZpY3QsIGJvb2wgaW50ZXJydXB0aWJsZSwKPiAgIAkJ CQlib29sIG5vX3dhaXRfZ3B1LAo+IC0JCQkJc3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKQo+ ICsJCQkJc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X21lbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgdHRt X29wZXJhdGlvbl9jdHggY3R4ID0geyBpbnRlcnJ1cHRpYmxlLCBub193YWl0X2dwdSB9Owo+IC0J c3RydWN0IHR0bV9tZW1fcmVnICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gLQlzdHJ1Y3QgdHRtX21l bV9yZWcgdG1wX21lbTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm9sZF9tZW0gPSAmYm8tPm1l bTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2UgdG1wX21lbTsKPiAgIAlzdHJ1Y3QgdHRtX3BsYWNl bWVudCBwbGFjZW1lbnQ7Cj4gICAJc3RydWN0IHR0bV9wbGFjZSBwbGFjZW1lbnRzOwo+ICAgCWlu dCByOwo+IEBAIC0zMTUsMTEgKzMxNSwxMSBAQCBzdGF0aWMgaW50IHJhZGVvbl9tb3ZlX3JhbV92 cmFtKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAKPiAgIHN0YXRpYyBpbnQgcmFk ZW9uX2JvX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgYm9vbCBldmljdCwKPiAg IAkJCSAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCj4gLQkJCSAgc3RydWN0IHR0bV9t ZW1fcmVnICpuZXdfbWVtKQo+ICsJCQkgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm5ld19tZW0pCj4g ICB7Cj4gICAJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXY7Cj4gICAJc3RydWN0IHJhZGVvbl9i byAqcmJvOwo+IC0Jc3RydWN0IHR0bV9tZW1fcmVnICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gKwlz dHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gICAJaW50IHI7Cj4gICAK PiAgIAlyID0gdHRtX2JvX3dhaXQoYm8sIGN0eC0+aW50ZXJydXB0aWJsZSwgY3R4LT5ub193YWl0 X2dwdSk7Cj4gQEAgLTM3Niw3ICszNzYsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl9ib19tb3ZlKHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZpY3QsCj4gICAJcmV0dXJuIDA7Cj4g ICB9Cj4gICAKPiAtc3RhdGljIGludCByYWRlb25fdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiArc3RhdGljIGlu dCByYWRlb25fdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBz dHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4gICB7Cj4gICAJc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYgPSByYWRlb25fZ2V0X3JkZXYoYmRldik7Cj4gICAKPiBAQCAtNTQ0LDcgKzU0NCw3IEBA IHN0YXRpYyB2b2lkIHJhZGVvbl90dG1fdHRfdW5waW5fdXNlcnB0cihzdHJ1Y3QgdHRtX3R0ICp0 dG0pCj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQgcmFkZW9uX3R0bV9iYWNrZW5kX2JpbmQoc3Ry dWN0IHR0bV90dCAqdHRtLAo+IC0JCQkJICAgc3RydWN0IHR0bV9tZW1fcmVnICpib19tZW0pCj4g KwkJCQkgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpib19tZW0pCj4gICB7Cj4gICAJc3RydWN0IHJh ZGVvbl90dG1fdHQgKmd0dCA9ICh2b2lkKil0dG07Cj4gICAJdWludDMyX3QgZmxhZ3MgPSBSQURF T05fR0FSVF9QQUdFX1ZBTElEIHwgUkFERU9OX0dBUlRfUEFHRV9SRUFEIHwKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX3ZtLmMKPiBpbmRleCBmNjBmYWUwYWVkMTEuLjcxZTJjMzc4NWFiOSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdm0uYwo+IEBAIC05MTEsNyArOTExLDcgQEAgc3Rh dGljIHZvaWQgcmFkZW9uX3ZtX2ZlbmNlX3B0cyhzdHJ1Y3QgcmFkZW9uX3ZtICp2bSwKPiAgICAq Lwo+ICAgaW50IHJhZGVvbl92bV9ib191cGRhdGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYs Cj4gICAJCQlzdHJ1Y3QgcmFkZW9uX2JvX3ZhICpib192YSwKPiAtCQkJc3RydWN0IHR0bV9tZW1f cmVnICptZW0pCj4gKwkJCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSkKPiAgIHsKPiAgIAlzdHJ1 Y3QgcmFkZW9uX3ZtICp2bSA9IGJvX3ZhLT52bTsKPiAgIAlzdHJ1Y3QgcmFkZW9uX2liIGliOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9hZ3BfYmFja2VuZC5jIGIvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fYWdwX2JhY2tlbmQuYwo+IGluZGV4IDM4ZjEzNTExNDBlMi4u MDlmZTgwZTIxNWM1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2FncF9i YWNrZW5kLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9hZ3BfYmFja2VuZC5jCj4g QEAgLTQ4LDcgKzQ4LDcgQEAgc3RydWN0IHR0bV9hZ3BfYmFja2VuZCB7Cj4gICAJc3RydWN0IGFn cF9icmlkZ2VfZGF0YSAqYnJpZGdlOwo+ICAgfTsKPiAgIAo+IC1zdGF0aWMgaW50IHR0bV9hZ3Bf YmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fbWVtX3JlZyAqYm9fbWVtKQo+ICtz dGF0aWMgaW50IHR0bV9hZ3BfYmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fcmVz b3VyY2UgKmJvX21lbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgdHRtX2FncF9iYWNrZW5kICphZ3BfYmUg PSBjb250YWluZXJfb2YodHRtLCBzdHJ1Y3QgdHRtX2FncF9iYWNrZW5kLCB0dG0pOwo+ICAgCXN0 cnVjdCBwYWdlICpkdW1teV9yZWFkX3BhZ2UgPSB0dG1fYm9fZ2xvYi5kdW1teV9yZWFkX3BhZ2U7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9iby5jCj4gaW5kZXggNDg4NDBhM2NmNGM0Li4xZWE1ZGU5NzZlYzMgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvLmMKPiBAQCAtMTQ1LDcgKzE0NSw3IEBAIHN0YXRpYyBpbmxpbmUg dWludDMyX3QgdHRtX2JvX3R5cGVfZmxhZ3ModW5zaWduZWQgdHlwZSkKPiAgIH0KPiAgIAo+ICAg c3RhdGljIHZvaWQgdHRtX2JvX2FkZF9tZW1fdG9fbHJ1KHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCj4gLQkJCQkgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICsJCQkJICBzdHJ1Y3Qg dHRtX3Jlc291cmNlICptZW0pCj4gICB7Cj4gICAJc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYg PSBiby0+YmRldjsKPiAgIAlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbjsKPiBAQCAt MjY4LDcgKzI2OCw3IEBAIHZvaWQgdHRtX2JvX2J1bGtfbW92ZV9scnVfdGFpbChzdHJ1Y3QgdHRt X2xydV9idWxrX21vdmUgKmJ1bGspCj4gICBFWFBPUlRfU1lNQk9MKHR0bV9ib19idWxrX21vdmVf bHJ1X3RhaWwpOwo+ICAgCj4gICBzdGF0aWMgaW50IHR0bV9ib19oYW5kbGVfbW92ZV9tZW0oc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAtCQkJCSAgc3RydWN0IHR0bV9tZW1fcmVnICpt ZW0sIGJvb2wgZXZpY3QsCj4gKwkJCQkgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwgYm9vbCBl dmljdCwKPiAgIAkJCQkgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQo+ICAgewo+ICAg CXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4gQEAgLTY0Miw3ICs2NDIs NyBAQCBzdGF0aWMgaW50IHR0bV9ib19ldmljdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAo+ICAgCQkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4gICB7Cj4gICAJc3RydWN0 IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPiAtCXN0cnVjdCB0dG1fbWVtX3JlZyBl dmljdF9tZW07Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlIGV2aWN0X21lbTsKPiAgIAlzdHJ1Y3Qg dHRtX3BsYWNlbWVudCBwbGFjZW1lbnQ7Cj4gICAJaW50IHJldCA9IDA7Cj4gICAKPiBAQCAtODQx LDcgKzg0MSw3IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwKPiAgIAo+ICAgc3RhdGljIGludCB0dG1fYm9fbWVtX2dldChzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgCQkJICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpw bGFjZSwKPiAtCQkJICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiArCQkJICBzdHJ1Y3QgdHRt X3Jlc291cmNlICptZW0pCj4gICB7Cj4gICAJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICpt YW4gPSB0dG1fbWFuYWdlcl90eXBlKGJvLT5iZGV2LCBtZW0tPm1lbV90eXBlKTsKPiAgIAo+IEBA IC04NTIsNyArODUyLDcgQEAgc3RhdGljIGludCB0dG1fYm9fbWVtX2dldChzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAo+ICAgCXJldHVybiBtYW4tPmZ1bmMtPmdldF9ub2RlKG1hbiwgYm8s IHBsYWNlLCBtZW0pOwo+ICAgfQo+ICAgCj4gLXZvaWQgdHRtX2JvX21lbV9wdXQoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4gK3ZvaWQgdHRt X2JvX21lbV9wdXQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IHR0bV9yZXNv dXJjZSAqbWVtKQo+ICAgewo+ICAgCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuID0g dHRtX21hbmFnZXJfdHlwZShiby0+YmRldiwgbWVtLT5tZW1fdHlwZSk7Cj4gICAKPiBAQCAtODcw LDcgKzg3MCw3IEBAIEVYUE9SVF9TWU1CT0wodHRtX2JvX21lbV9wdXQpOwo+ICAgICovCj4gICBz dGF0aWMgaW50IHR0bV9ib19hZGRfbW92ZV9mZW5jZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+ICAgCQkJCSBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiAtCQkJCSBz dHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwKPiArCQkJCSBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0s Cj4gICAJCQkJIGJvb2wgbm9fd2FpdF9ncHUpCj4gICB7Cj4gICAJc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2U7Cj4gQEAgLTkwNyw3ICs5MDcsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19hZGRfbW92ZV9m ZW5jZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgICovCj4gICBzdGF0aWMgaW50 IHR0bV9ib19tZW1fZm9yY2Vfc3BhY2Uoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAg IAkJCQkgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAo+IC0JCQkJICBzdHJ1Y3QgdHRt X21lbV9yZWcgKm1lbSwKPiArCQkJCSAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtLAo+ICAgCQkJ CSAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4gICB7Cj4gICAJc3RydWN0IHR0bV9i b19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPiBAQCAtOTg4LDcgKzk4OCw3IEBAIHN0YXRpYyBi b29sIHR0bV9ib19tdF9jb21wYXRpYmxlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFu LAo+ICAgICovCj4gICBzdGF0aWMgaW50IHR0bV9ib19tZW1fcGxhY2VtZW50KHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCj4gICAJCQkJY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2Us Cj4gLQkJCQlzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwKPiArCQkJCXN0cnVjdCB0dG1fcmVzb3Vy Y2UgKm1lbSwKPiAgIAkJCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPiAgIHsKPiAg IAlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+IEBAIC0xMDM2LDcgKzEw MzYsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19tZW1fcGxhY2VtZW50KHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCj4gICAgKi8KPiAgIGludCB0dG1fYm9fbWVtX3NwYWNlKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCj4gICAJCQlzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50 LAo+IC0JCQlzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwKPiArCQkJc3RydWN0IHR0bV9yZXNvdXJj ZSAqbWVtLAo+ICAgCQkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4gICB7Cj4gICAJ c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsKPiBAQCAtMTExNCw3ICsxMTE0 LDcgQEAgc3RhdGljIGludCB0dG1fYm9fbW92ZV9idWZmZXIoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpibywKPiAgIAkJCSAgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQo+ICAg ewo+ICAgCWludCByZXQgPSAwOwo+IC0Jc3RydWN0IHR0bV9tZW1fcmVnIG1lbTsKPiArCXN0cnVj dCB0dG1fcmVzb3VyY2UgbWVtOwo+ICAgCj4gICAJZG1hX3Jlc3ZfYXNzZXJ0X2hlbGQoYm8tPmJh c2UucmVzdik7Cj4gICAKPiBAQCAtMTE0MCw3ICsxMTQwLDcgQEAgc3RhdGljIGludCB0dG1fYm9f bW92ZV9idWZmZXIoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAo+ICAgc3RhdGlj IGJvb2wgdHRtX2JvX3BsYWNlc19jb21wYXQoY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2Vz LAo+ICAgCQkJCSB1bnNpZ25lZCBudW1fcGxhY2VtZW50LAo+IC0JCQkJIHN0cnVjdCB0dG1fbWVt X3JlZyAqbWVtLAo+ICsJCQkJIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPiAgIAkJCQkgdWlu dDMyX3QgKm5ld19mbGFncykKPiAgIHsKPiAgIAl1bnNpZ25lZCBpOwo+IEBAIC0xMTYzLDcgKzEx NjMsNyBAQCBzdGF0aWMgYm9vbCB0dG1fYm9fcGxhY2VzX2NvbXBhdChjb25zdCBzdHJ1Y3QgdHRt X3BsYWNlICpwbGFjZXMsCj4gICB9Cj4gICAKPiAgIGJvb2wgdHRtX2JvX21lbV9jb21wYXQoc3Ry dWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCwKPiAtCQkgICAgICAgc3RydWN0IHR0bV9tZW1f cmVnICptZW0sCj4gKwkJICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPiAgIAkJICAg ICAgIHVpbnQzMl90ICpuZXdfZmxhZ3MpCj4gICB7Cj4gICAJaWYgKHR0bV9ib19wbGFjZXNfY29t cGF0KHBsYWNlbWVudC0+cGxhY2VtZW50LCBwbGFjZW1lbnQtPm51bV9wbGFjZW1lbnQsCj4gQEAg LTE3MzIsNyArMTczMiw3IEBAIGludCB0dG1fYm9fc3dhcG91dChzdHJ1Y3QgdHRtX2JvX2dsb2Jh bCAqZ2xvYiwgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgpCj4gICAJaWYgKGJvLT5tZW0u bWVtX3R5cGUgIT0gVFRNX1BMX1NZU1RFTSB8fAo+ICAgCSAgICBiby0+dHRtLT5jYWNoaW5nX3N0 YXRlICE9IHR0X2NhY2hlZCkgewo+ICAgCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0g eyBmYWxzZSwgZmFsc2UgfTsKPiAtCQlzdHJ1Y3QgdHRtX21lbV9yZWcgZXZpY3RfbWVtOwo+ICsJ CXN0cnVjdCB0dG1fcmVzb3VyY2UgZXZpY3RfbWVtOwo+ICAgCj4gICAJCWV2aWN0X21lbSA9IGJv LT5tZW07Cj4gICAJCWV2aWN0X21lbS5tbV9ub2RlID0gTlVMTDsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym9fdXRpbC5jCj4gaW5kZXggOGVmMGRlOGUzNmM1Li40OTYxNThhY2Q1YjkgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fYm9fdXRpbC5jCj4gQEAgLTUyLDEwICs1MiwxMCBAQCB2b2lkIHR0bV9ib19m cmVlX29sZF9ub2RlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCj4gICAKPiAgIGludCB0 dG1fYm9fbW92ZV90dG0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAkJICAgc3Ry dWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCj4gLQkJICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAq bmV3X21lbSkKPiArCQkgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X21lbSkKPiAgIHsKPiAg IAlzdHJ1Y3QgdHRtX3R0ICp0dG0gPSBiby0+dHRtOwo+IC0Jc3RydWN0IHR0bV9tZW1fcmVnICpv bGRfbWVtID0gJmJvLT5tZW07Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfbWVtID0gJmJv LT5tZW07Cj4gICAJaW50IHJldDsKPiAgIAo+ICAgCWlmIChvbGRfbWVtLT5tZW1fdHlwZSAhPSBU VE1fUExfU1lTVEVNKSB7Cj4gQEAgLTEyNyw3ICsxMjcsNyBAQCBzdGF0aWMgaW50IHR0bV9tZW1f aW9fZXZpY3Qoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4pCj4gICB9Cj4gICAKPiAg IGludCB0dG1fbWVtX2lvX3Jlc2VydmUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4gLQkJ ICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICsJCSAgICAgICBzdHJ1Y3QgdHRtX3Jl c291cmNlICptZW0pCj4gICB7Cj4gICAJc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4g PSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG1lbS0+bWVtX3R5cGUpOwo+ICAgCWludCByZXQ7Cj4g QEAgLTE0OSw3ICsxNDksNyBAQCBpbnQgdHRtX21lbV9pb19yZXNlcnZlKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+ICAgfQo+ICAgCj4gICB2b2lkIHR0bV9tZW1faW9fZnJlZShzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwKPiAtCQkgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ ICsJCSAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+ICAgewo+ICAgCWlmICgtLW1lbS0+ YnVzLmlvX3Jlc2VydmVkX2NvdW50KQo+ICAgCQlyZXR1cm47Cj4gQEAgLTE2Myw3ICsxNjMsNyBA QCB2b2lkIHR0bV9tZW1faW9fZnJlZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAgIGlu dCB0dG1fbWVtX2lvX3Jlc2VydmVfdm0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPiAg IHsKPiAgIAlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9tYW5hZ2VyX3R5 cGUoYm8tPmJkZXYsIGJvLT5tZW0ubWVtX3R5cGUpOwo+IC0Jc3RydWN0IHR0bV9tZW1fcmVnICpt ZW0gPSAmYm8tPm1lbTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSA9ICZiby0+bWVtOwo+ ICAgCWludCByZXQ7Cj4gICAKPiAgIAlpZiAobWVtLT5idXMuaW9fcmVzZXJ2ZWRfdm0pCj4gQEAg LTE4MSw3ICsxODEsNyBAQCBpbnQgdHRtX21lbV9pb19yZXNlcnZlX3ZtKHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8pCj4gICAKPiAgIHZvaWQgdHRtX21lbV9pb19mcmVlX3ZtKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8pCj4gICB7Cj4gLQlzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSA9 ICZiby0+bWVtOwo+ICsJc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtID0gJmJvLT5tZW07Cj4gICAK PiAgIAlpZiAoIW1lbS0+YnVzLmlvX3Jlc2VydmVkX3ZtKQo+ICAgCQlyZXR1cm47Cj4gQEAgLTE5 MSw4ICsxOTEsOCBAQCB2b2lkIHR0bV9tZW1faW9fZnJlZV92bShzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvKQo+ICAgCXR0bV9tZW1faW9fZnJlZShiby0+YmRldiwgbWVtKTsKPiAgIH0KPiAg IAo+IC1zdGF0aWMgaW50IHR0bV9tZW1fcmVnX2lvcmVtYXAoc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYsCj4gLQkJCSAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwKPiArc3RhdGljIGlu dCB0dG1fcmVzb3VyY2VfaW9yZW1hcChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiArCQkJ ICAgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPiAgIAkJCSAgICAgICB2b2lkICoqdmly dHVhbCkKPiAgIHsKPiAgIAlzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiA9IHR0bV9t YW5hZ2VyX3R5cGUoYmRldiwgbWVtLT5tZW1fdHlwZSk7Cj4gQEAgLTIyNiw4ICsyMjYsOCBAQCBz dGF0aWMgaW50IHR0bV9tZW1fcmVnX2lvcmVtYXAoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiAtc3RhdGljIHZvaWQgdHRtX21lbV9yZWdfaW91 bm1hcChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAtCQkJCXN0cnVjdCB0dG1fbWVtX3Jl ZyAqbWVtLAo+ICtzdGF0aWMgdm9pZCB0dG1fcmVzb3VyY2VfaW91bm1hcChzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiwKPiArCQkJCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPiAgIAkJCQl2 b2lkICp2aXJ0dWFsKQo+ICAgewo+ICAgCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFu Owo+IEBAIC0zMDAsMTMgKzMwMCwxMyBAQCBzdGF0aWMgaW50IHR0bV9jb3B5X3R0bV9pb19wYWdl KHN0cnVjdCB0dG1fdHQgKnR0bSwgdm9pZCAqZHN0LAo+ICAgCj4gICBpbnQgdHRtX2JvX21vdmVf bWVtY3B5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJCSAgICAgICBzdHJ1Y3Qg dHRtX29wZXJhdGlvbl9jdHggKmN0eCwKPiAtCQkgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICpu ZXdfbWVtKQo+ICsJCSAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfbWVtKQo+ICAgewo+ ICAgCXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4gICAJc3RydWN0IHR0 bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG5ld19tZW0t Pm1lbV90eXBlKTsKPiAgIAlzdHJ1Y3QgdHRtX3R0ICp0dG0gPSBiby0+dHRtOwo+IC0Jc3RydWN0 IHR0bV9tZW1fcmVnICpvbGRfbWVtID0gJmJvLT5tZW07Cj4gLQlzdHJ1Y3QgdHRtX21lbV9yZWcg b2xkX2NvcHkgPSAqb2xkX21lbTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm9sZF9tZW0gPSAm Ym8tPm1lbTsKPiArCXN0cnVjdCB0dG1fcmVzb3VyY2Ugb2xkX2NvcHkgPSAqb2xkX21lbTsKPiAg IAl2b2lkICpvbGRfaW9tYXA7Cj4gICAJdm9pZCAqbmV3X2lvbWFwOwo+ICAgCWludCByZXQ7Cj4g QEAgLTMxOSwxMCArMzE5LDEwIEBAIGludCB0dG1fYm9fbW92ZV9tZW1jcHkoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0Owo+ICAgCj4g LQlyZXQgPSB0dG1fbWVtX3JlZ19pb3JlbWFwKGJkZXYsIG9sZF9tZW0sICZvbGRfaW9tYXApOwo+ ICsJcmV0ID0gdHRtX3Jlc291cmNlX2lvcmVtYXAoYmRldiwgb2xkX21lbSwgJm9sZF9pb21hcCk7 Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsKPiAtCXJldCA9IHR0bV9tZW1fcmVnX2lv cmVtYXAoYmRldiwgbmV3X21lbSwgJm5ld19pb21hcCk7Cj4gKwlyZXQgPSB0dG1fcmVzb3VyY2Vf aW9yZW1hcChiZGV2LCBuZXdfbWVtLCAmbmV3X2lvbWFwKTsKPiAgIAlpZiAocmV0KQo+ICAgCQln b3RvIG91dDsKPiAgIAo+IEBAIC0zOTAsOSArMzkwLDkgQEAgaW50IHR0bV9ib19tb3ZlX21lbWNw eShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgCX0KPiAgIAo+ICAgb3V0MToKPiAt CXR0bV9tZW1fcmVnX2lvdW5tYXAoYmRldiwgb2xkX21lbSwgbmV3X2lvbWFwKTsKPiArCXR0bV9y ZXNvdXJjZV9pb3VubWFwKGJkZXYsIG9sZF9tZW0sIG5ld19pb21hcCk7Cj4gICBvdXQ6Cj4gLQl0 dG1fbWVtX3JlZ19pb3VubWFwKGJkZXYsICZvbGRfY29weSwgb2xkX2lvbWFwKTsKPiArCXR0bV9y ZXNvdXJjZV9pb3VubWFwKGJkZXYsICZvbGRfY29weSwgb2xkX2lvbWFwKTsKPiAgIAo+ICAgCS8q Cj4gICAJICogT24gZXJyb3IsIGtlZXAgdGhlIG1tIG5vZGUhCj4gQEAgLTUwMiw3ICs1MDIsNyBA QCBzdGF0aWMgaW50IHR0bV9ib19pb3JlbWFwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8s Cj4gICAJCQkgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKPiAgIAkJCSAgc3RydWN0IHR0bV9ib19rbWFw X29iaiAqbWFwKQo+ICAgewo+IC0Jc3RydWN0IHR0bV9tZW1fcmVnICptZW0gPSAmYm8tPm1lbTsK PiArCXN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSA9ICZiby0+bWVtOwo+ICAgCj4gICAJaWYgKGJv LT5tZW0uYnVzLmFkZHIpIHsKPiAgIAkJbWFwLT5ib19rbWFwX3R5cGUgPSB0dG1fYm9fbWFwX3By ZW1hcHBlZDsKPiBAQCAtNTI2LDcgKzUyNiw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2ttYXBfdHRt KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJCQkgICB1bnNpZ25lZCBsb25nIG51 bV9wYWdlcywKPiAgIAkJCSAgIHN0cnVjdCB0dG1fYm9fa21hcF9vYmogKm1hcCkKPiAgIHsKPiAt CXN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtID0gJmJvLT5tZW07Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291 cmNlICptZW0gPSAmYm8tPm1lbTsKPiAgIAlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0g ewo+ICAgCQkuaW50ZXJydXB0aWJsZSA9IGZhbHNlLAo+ICAgCQkubm9fd2FpdF9ncHUgPSBmYWxz ZQo+IEBAIC02MzEsMTEgKzYzMSwxMSBAQCBFWFBPUlRfU1lNQk9MKHR0bV9ib19rdW5tYXApOwo+ ICAgaW50IHR0bV9ib19tb3ZlX2FjY2VsX2NsZWFudXAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKPiAgIAkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLAo+ICAgCQkJICAgICAg Ym9vbCBldmljdCwKPiAtCQkJICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICpuZXdfbWVtKQo+ICsJ CQkgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfbWVtKQo+ICAgewo+ICAgCXN0cnVjdCB0 dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4gICAJc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICptYW4gPSB0dG1fbWFuYWdlcl90eXBlKGJkZXYsIG5ld19tZW0tPm1lbV90eXBlKTsK PiAtCXN0cnVjdCB0dG1fbWVtX3JlZyAqb2xkX21lbSA9ICZiby0+bWVtOwo+ICsJc3RydWN0IHR0 bV9yZXNvdXJjZSAqb2xkX21lbSA9ICZiby0+bWVtOwo+ICAgCWludCByZXQ7Cj4gICAJc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpnaG9zdF9vYmo7Cj4gICAKPiBAQCAtNjkyLDEwICs2OTIsMTAg QEAgRVhQT1JUX1NZTUJPTCh0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKTsKPiAgIAo+ICAgaW50 IHR0bV9ib19waXBlbGluZV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJ CQkgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGJvb2wgZXZpY3QsCj4gLQkJCSBzdHJ1Y3QgdHRt X21lbV9yZWcgKm5ld19tZW0pCj4gKwkJCSBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfbWVtKQo+ ICAgewo+ICAgCXN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gYm8tPmJkZXY7Cj4gLQlzdHJ1 Y3QgdHRtX21lbV9yZWcgKm9sZF9tZW0gPSAmYm8tPm1lbTsKPiArCXN0cnVjdCB0dG1fcmVzb3Vy Y2UgKm9sZF9tZW0gPSAmYm8tPm1lbTsKPiAgIAo+ICAgCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFu YWdlciAqZnJvbSA9IHR0bV9tYW5hZ2VyX3R5cGUoYmRldiwgb2xkX21lbS0+bWVtX3R5cGUpOwo+ ICAgCXN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqdG8gPSB0dG1fbWFuYWdlcl90eXBlKGJk ZXYsIG5ld19tZW0tPm1lbV90eXBlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0 bS90dG1fcmFuZ2VfbWFuYWdlci5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmFuZ2VfbWFu YWdlci5jCj4gaW5kZXggMjJkZTlmMjA5NDQ5Li43NDQyZDgxMWY4NjcgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmFuZ2VfbWFuYWdlci5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3R0bS90dG1fcmFuZ2VfbWFuYWdlci5jCj4gQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGlj IGlubGluZSBzdHJ1Y3QgdHRtX3JhbmdlX21hbmFnZXIgKnRvX3JhbmdlX21hbmFnZXIoc3RydWN0 IHR0bV9yZXNvdXJjZV9tYW4KPiAgIHN0YXRpYyBpbnQgdHRtX3JhbmdlX21hbl9nZXRfbm9kZShz dHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiAgIAkJCQkgIHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8sCj4gICAJCQkJICBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwK PiAtCQkJCSAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4gKwkJCQkgIHN0cnVjdCB0dG1fcmVz b3VyY2UgKm1lbSkKPiAgIHsKPiAgIAlzdHJ1Y3QgdHRtX3JhbmdlX21hbmFnZXIgKnJtYW4gPSB0 b19yYW5nZV9tYW5hZ2VyKG1hbik7Cj4gICAJc3RydWN0IGRybV9tbSAqbW0gPSAmcm1hbi0+bW07 Cj4gQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIGludCB0dG1fcmFuZ2VfbWFuX2dldF9ub2RlKHN0 cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9p ZCB0dG1fcmFuZ2VfbWFuX3B1dF9ub2RlKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFu LAo+IC0JCQkJICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4gKwkJCQkgICBzdHJ1Y3QgdHRt X3Jlc291cmNlICptZW0pCj4gICB7Cj4gICAJc3RydWN0IHR0bV9yYW5nZV9tYW5hZ2VyICpybWFu ID0gdG9fcmFuZ2VfbWFuYWdlcihtYW4pOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS90dG0vdHRtX3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV90dC5jCj4gaW5kZXgg OWQxYzcxNzczODRjLi4xY2NmMWVmMDUwZDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fdHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3R0LmMKPiBAQCAt MzE2LDcgKzMxNiw3IEBAIHZvaWQgdHRtX3R0X3VuYmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4g ICAJfQo+ICAgfQo+ICAgCj4gLWludCB0dG1fdHRfYmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0 cnVjdCB0dG1fbWVtX3JlZyAqYm9fbWVtLAo+ICtpbnQgdHRtX3R0X2JpbmQoc3RydWN0IHR0bV90 dCAqdHRtLCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpib19tZW0sCj4gICAJCXN0cnVjdCB0dG1fb3Bl cmF0aW9uX2N0eCAqY3R4KQo+ICAgewo+ICAgCWludCByZXQgPSAwOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfYm8uYwo+IGluZGV4IDFlNTljMDE5YWZmYS4uMzIyOTQ1MWQwNzA2IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jCj4gQEAgLTExMzUsMTQgKzExMzUsMTQgQEAgdm9p ZCB2bXdfYm9fc3dhcF9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPiAgICAq IHZtd19ib19tb3ZlX25vdGlmeSAtIFRUTSBtb3ZlX25vdGlmeV9jYWxsYmFjawo+ICAgICoKPiAg ICAqIEBibzogVGhlIFRUTSBidWZmZXIgb2JqZWN0IGFib3V0IHRvIG1vdmUuCj4gLSAqIEBtZW06 IFRoZSBzdHJ1Y3QgdHRtX21lbV9yZWcgaW5kaWNhdGluZyB0byB3aGF0IG1lbW9yeQo+ICsgKiBA bWVtOiBUaGUgc3RydWN0IHR0bV9yZXNvdXJjZSBpbmRpY2F0aW5nIHRvIHdoYXQgbWVtb3J5Cj4g ICAgKiAgICAgICByZWdpb24gdGhlIG1vdmUgaXMgdGFraW5nIHBsYWNlLgo+ICAgICoKPiAgICAq IERldGFjaGVzIGNhY2hlZCBtYXBzIGFuZCBkZXZpY2UgYmluZGluZ3MgdGhhdCByZXF1aXJlIHRo YXQgdGhlCj4gICAgKiBidWZmZXIgZG9lc24ndCBtb3ZlLgo+ICAgICovCj4gICB2b2lkIHZtd19i b19tb3ZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+IC0JCQlzdHJ1Y3Qg dHRtX21lbV9yZWcgKm1lbSkKPiArCQkJc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQo+ICAgewo+ ICAgCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfZHJ2LmgKPiBpbmRleCBhYTc2M2M2YjExNDYuLjg3MWFkNzM4ZGFkYiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCj4gQEAgLTc5Myw3ICs3OTMsNyBAQCBleHRl cm4gdm9pZCB2bXdfcmVzb3VyY2VfdW5yZXNlcnZlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywK PiAgIAkJCQkgICBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKm5ld19iYWNrdXAsCj4gICAJCQkJ ICAgdW5zaWduZWQgbG9uZyBuZXdfYmFja3VwX29mZnNldCk7Cj4gICBleHRlcm4gdm9pZCB2bXdf cXVlcnlfbW92ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAtCQkJCSAg c3RydWN0IHR0bV9tZW1fcmVnICptZW0pOwo+ICsJCQkJICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpt ZW0pOwo+ICAgZXh0ZXJuIGludCB2bXdfcXVlcnlfcmVhZGJhY2tfYWxsKHN0cnVjdCB2bXdfYnVm ZmVyX29iamVjdCAqZHhfcXVlcnlfbW9iKTsKPiAgIGV4dGVybiB2b2lkIHZtd19yZXNvdXJjZV9l dmljdF9hbGwoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdik7Cj4gICBleHRlcm4gdm9pZCB2 bXdfcmVzb3VyY2VfdW5iaW5kX2xpc3Qoc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8pOwo+ IEBAIC04NzgsNyArODc4LDcgQEAgZXh0ZXJuIHZvaWQgdm13X2JvX2ZlbmNlX3NpbmdsZShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgZXh0ZXJuIHZvaWQgKnZtd19ib19tYXBfYW5k X2NhY2hlKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvKTsKPiAgIGV4dGVybiB2b2lkIHZt d19ib191bm1hcChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibyk7Cj4gICBleHRlcm4gdm9p ZCB2bXdfYm9fbW92ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAtCQkJ ICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKTsKPiArCQkJICAgICAgIHN0cnVjdCB0dG1f cmVzb3VyY2UgKm1lbSk7Cj4gICBleHRlcm4gdm9pZCB2bXdfYm9fc3dhcF9ub3RpZnkoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibyk7Cj4gICBleHRlcm4gc3RydWN0IHZtd19idWZmZXJfb2Jq ZWN0ICoKPiAgIHZtd191c2VyX2JvX25vcmVmX2xvb2t1cChzdHJ1Y3QgdHRtX29iamVjdF9maWxl ICp0ZmlsZSwgdTMyIGhhbmRsZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2dtcmlkX21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2dtcmlkX21hbmFnZXIuYwo+IGluZGV4IGM4ZmU2ZTljZjA5Mi4uM2ZlYTdhNmM3Y2ZhIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2dtcmlkX21hbmFnZXIuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2dtcmlkX21hbmFnZXIuYwo+IEBA IC01Myw3ICs1Myw3IEBAIHN0YXRpYyBzdHJ1Y3Qgdm13Z2Z4X2dtcmlkX21hbiAqdG9fZ21yaWRf bWFuYWdlcihzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hCj4gICBzdGF0aWMgaW50IHZt d19nbXJpZF9tYW5fZ2V0X25vZGUoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4g ICAJCQkJICBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgCQkJCSAgY29uc3Qgc3Ry dWN0IHR0bV9wbGFjZSAqcGxhY2UsCj4gLQkJCQkgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ ICsJCQkJICBzdHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4gICB7Cj4gICAJc3RydWN0IHZtd2dm eF9nbXJpZF9tYW4gKmdtYW4gPSB0b19nbXJpZF9tYW5hZ2VyKG1hbik7Cj4gICAJaW50IGlkOwo+ IEBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBpbnQgdm13X2dtcmlkX21hbl9nZXRfbm9kZShzdHJ1 Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQg dm13X2dtcmlkX21hbl9wdXRfbm9kZShzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwK PiAtCQkJCSAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICsJCQkJICAgc3RydWN0IHR0bV9y ZXNvdXJjZSAqbWVtKQo+ICAgewo+ICAgCXN0cnVjdCB2bXdnZnhfZ21yaWRfbWFuICpnbWFuID0g dG9fZ21yaWRfbWFuYWdlcihtYW4pOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9yZXNvdXJjZS5jCj4gaW5kZXggYzg0NDEwMzA2MzdhLi5jMGYxNTYwNzhkZGEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKPiBAQCAtODU1LDcgKzg1NSw3 IEBAIGludCB2bXdfcXVlcnlfcmVhZGJhY2tfYWxsKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAq ZHhfcXVlcnlfbW9iKQo+ICAgICogc3RhdGVzIGZyb20gdGhlIGRldmljZS4KPiAgICAqLwo+ICAg dm9pZCB2bXdfcXVlcnlfbW92ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK PiAtCQkJICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4gKwkJCSAgIHN0cnVjdCB0dG1fcmVz b3VyY2UgKm1lbSkKPiAgIHsKPiAgIAlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmR4X3F1ZXJ5 X21vYjsKPiAgIAlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2Owo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90aHAuYyBiL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3RocC5jCj4gaW5kZXggNmNhYzdiMDkxMjA1Li5mNTk0ZTJlNmFi N2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdGhwLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90aHAuYwo+IEBAIC0yOSw3ICsyOSw3 IEBAIHN0YXRpYyBzdHJ1Y3Qgdm13X3RocF9tYW5hZ2VyICp0b190aHBfbWFuYWdlcihzdHJ1Y3Qg dHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbikKPiAgIHN0YXRpYyBpbnQgdm13X3RocF9pbnNlcnRf YWxpZ25lZChzdHJ1Y3QgZHJtX21tICptbSwgc3RydWN0IGRybV9tbV9ub2RlICpub2RlLAo+ICAg CQkJCSAgdW5zaWduZWQgbG9uZyBhbGlnbl9wYWdlcywKPiAgIAkJCQkgIGNvbnN0IHN0cnVjdCB0 dG1fcGxhY2UgKnBsYWNlLAo+IC0JCQkJICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSwKPiArCQkJ CSAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtLAo+ICAgCQkJCSAgdW5zaWduZWQgbG9uZyBscGZu LAo+ICAgCQkJCSAgZW51bSBkcm1fbW1faW5zZXJ0X21vZGUgbW9kZSkKPiAgIHsKPiBAQCAtNDcs NyArNDcsNyBAQCBzdGF0aWMgaW50IHZtd190aHBfaW5zZXJ0X2FsaWduZWQoc3RydWN0IGRybV9t bSAqbW0sIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwKPiAgIHN0YXRpYyBpbnQgdm13X3RocF9n ZXRfbm9kZShzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPiAgIAkJCSAgICBzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgCQkJICAgIGNvbnN0IHN0cnVjdCB0dG1fcGxh Y2UgKnBsYWNlLAo+IC0JCQkgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4gKwkJCSAgICBz dHJ1Y3QgdHRtX3Jlc291cmNlICptZW0pCj4gICB7Cj4gICAJc3RydWN0IHZtd190aHBfbWFuYWdl ciAqcm1hbiA9IHRvX3RocF9tYW5hZ2VyKG1hbik7Cj4gICAJc3RydWN0IGRybV9tbSAqbW0gPSAm cm1hbi0+bW07Cj4gQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgaW50IHZtd190aHBfZ2V0X25v ZGUoc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4sCj4gICAKPiAgIAo+ICAgc3RhdGlj IHZvaWQgdm13X3RocF9wdXRfbm9kZShzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwK PiAtCQkJICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKPiArCQkJICAgICBzdHJ1Y3QgdHRt X3Jlc291cmNlICptZW0pCj4gICB7Cj4gICAJc3RydWN0IHZtd190aHBfbWFuYWdlciAqcm1hbiA9 IHRvX3RocF9tYW5hZ2VyKG1hbik7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfdHRtX2J1ZmZlci5jCj4gaW5kZXggM2ExNDFhMDhkNGJkLi43MjQ3MzQ3YTliY2EgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jCj4gQEAgLTUzOSw3 ICs1MzksNyBAQCBjb25zdCBzdHJ1Y3Qgdm13X3NnX3RhYmxlICp2bXdfYm9fc2dfdGFibGUoc3Ry dWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKPiAgIH0KPiAgIAo+ICAgCj4gLXN0YXRpYyBpbnQg dm13X3R0bV9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9tZW1fcmVnICpib19t ZW0pCj4gK3N0YXRpYyBpbnQgdm13X3R0bV9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0 IHR0bV9yZXNvdXJjZSAqYm9fbWVtKQo+ICAgewo+ICAgCXN0cnVjdCB2bXdfdHRtX3R0ICp2bXdf YmUgPQo+ICAgCQljb250YWluZXJfb2YodHRtLCBzdHJ1Y3Qgdm13X3R0bV90dCwgZG1hX3R0bS50 dG0pOwo+IEBAIC03MTEsNyArNzExLDcgQEAgc3RhdGljIGludCB2bXdfdmVyaWZ5X2FjY2Vzcyhz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgZmlsZSAqZmlscCkKPiAgIAlyZXR1 cm4gdm13X3VzZXJfYm9fdmVyaWZ5X2FjY2VzcyhibywgdGZpbGUpOwo+ICAgfQo+ICAgCj4gLXN0 YXRpYyBpbnQgdm13X3R0bV9pb19tZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRl diwgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCj4gK3N0YXRpYyBpbnQgdm13X3R0bV9pb19tZW1f cmVzZXJ2ZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAq bWVtKQo+ICAgewo+ICAgCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjb250YWluZXJf b2YoYmRldiwgc3RydWN0IHZtd19wcml2YXRlLCBiZGV2KTsKPiAgIAo+IEBAIC03NDEsNyArNzQx LDcgQEAgc3RhdGljIGludCB2bXdfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX21lbV9yZWcKPiAgICAqIHZtd19tb3ZlX25vdGlmeSAtIFRU TSBtb3ZlX25vdGlmeV9jYWxsYmFjawo+ICAgICoKPiAgICAqIEBibzogVGhlIFRUTSBidWZmZXIg b2JqZWN0IGFib3V0IHRvIG1vdmUuCj4gLSAqIEBtZW06IFRoZSBzdHJ1Y3QgdHRtX21lbV9yZWcg aW5kaWNhdGluZyB0byB3aGF0IG1lbW9yeQo+ICsgKiBAbWVtOiBUaGUgc3RydWN0IHR0bV9yZXNv dXJjZSBpbmRpY2F0aW5nIHRvIHdoYXQgbWVtb3J5Cj4gICAgKiAgICAgICByZWdpb24gdGhlIG1v dmUgaXMgdGFraW5nIHBsYWNlLgo+ICAgICoKPiAgICAqIENhbGxzIG1vdmVfbm90aWZ5IGZvciBh bGwgc3Vic3lzdGVtcyBuZWVkaW5nIGl0Lgo+IEBAIC03NDksNyArNzQ5LDcgQEAgc3RhdGljIGlu dCB2bXdfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCBzdHJ1 Y3QgdHRtX21lbV9yZWcKPiAgICAqLwo+ICAgc3RhdGljIHZvaWQgdm13X21vdmVfbm90aWZ5KHN0 cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJCQkgICAgYm9vbCBldmljdCwKPiAtCQkJ ICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQo+ICsJCQkgICAgc3RydWN0IHR0bV9yZXNvdXJj ZSAqbWVtKQo+ICAgewo+ICAgCXZtd19ib19tb3ZlX25vdGlmeShibywgbWVtKTsKPiAgIAl2bXdf cXVlcnlfbW92ZV9ub3RpZnkoYm8sIG1lbSk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0 bS90dG1fYm9fYXBpLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oCj4gaW5kZXggMTU5 NThkZmYxMWQyLi4yNDdkNGY4MDM0NDMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19hcGkuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKPiBAQCAtODEs NyArODEsNyBAQCBzdHJ1Y3QgdHRtX2J1c19wbGFjZW1lbnQgewo+ICAgCj4gICAKPiAgIC8qKgo+ IC0gKiBzdHJ1Y3QgdHRtX21lbV9yZWcKPiArICogc3RydWN0IHR0bV9yZXNvdXJjZQo+ICAgICoK PiAgICAqIEBtbV9ub2RlOiBNZW1vcnkgbWFuYWdlciBub2RlLgo+ICAgICogQHNpemU6IFJlcXVl c3RlZCBzaXplIG9mIG1lbW9yeSByZWdpb24uCj4gQEAgLTk0LDcgKzk0LDcgQEAgc3RydWN0IHR0 bV9idXNfcGxhY2VtZW50IHsKPiAgICAqIGJ1ZmZlciBvYmplY3QuCj4gICAgKi8KPiAgIAo+IC1z dHJ1Y3QgdHRtX21lbV9yZWcgewo+ICtzdHJ1Y3QgdHRtX3Jlc291cmNlIHsKPiAgIAl2b2lkICpt bV9ub2RlOwo+ICAgCXVuc2lnbmVkIGxvbmcgc3RhcnQ7Cj4gICAJdW5zaWduZWQgbG9uZyBzaXpl Owo+IEBAIC0xODcsNyArMTg3LDcgQEAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0IHsKPiAgIAkg KiBNZW1iZXJzIHByb3RlY3RlZCBieSB0aGUgYm86OnJlc3Y6OnJlc2VydmVkIGxvY2suCj4gICAJ ICovCj4gICAKPiAtCXN0cnVjdCB0dG1fbWVtX3JlZyBtZW07Cj4gKwlzdHJ1Y3QgdHRtX3Jlc291 cmNlIG1lbTsKPiAgIAlzdHJ1Y3QgZmlsZSAqcGVyc2lzdGVudF9zd2FwX3N0b3JhZ2U7Cj4gICAJ c3RydWN0IHR0bV90dCAqdHRtOwo+ICAgCWJvb2wgZXZpY3RlZDsKPiBAQCAtMzE2LDEyICszMTYs MTIgQEAgaW50IHR0bV9ib193YWl0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wg aW50ZXJydXB0aWJsZSwgYm9vbCBub193YWl0KTsKPiAgICAqIHR0bV9ib19tZW1fY29tcGF0IC0g Q2hlY2sgaWYgcHJvcG9zZWQgcGxhY2VtZW50IGlzIGNvbXBhdGlibGUgd2l0aCBhIGJvCj4gICAg Kgo+ICAgICogQHBsYWNlbWVudDogIFJldHVybiBpbW1lZGlhdGVseSBpZiBidWZmZXIgaXMgYnVz eS4KPiAtICogQG1lbTogIFRoZSBzdHJ1Y3QgdHRtX21lbV9yZWcgaW5kaWNhdGluZyB0aGUgcmVn aW9uIHdoZXJlIHRoZSBibyByZXNpZGVzCj4gKyAqIEBtZW06ICBUaGUgc3RydWN0IHR0bV9yZXNv dXJjZSBpbmRpY2F0aW5nIHRoZSByZWdpb24gd2hlcmUgdGhlIGJvIHJlc2lkZXMKPiAgICAqIEBu ZXdfZmxhZ3M6IERlc2NyaWJlcyBjb21wYXRpYmxlIHBsYWNlbWVudCBmb3VuZAo+ICAgICoKPiAg ICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcGxhY2VtZW50IGlzIGNvbXBhdGlibGUKPiAgICAqLwo+ IC1ib29sIHR0bV9ib19tZW1fY29tcGF0KHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQs IHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtLAo+ICtib29sIHR0bV9ib19tZW1fY29tcGF0KHN0cnVj dCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSwKPiAg IAkJICAgICAgIHVpbnQzMl90ICpuZXdfZmxhZ3MpOwo+ICAgCj4gICAvKioKPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1f Ym9fZHJpdmVyLmgKPiBpbmRleCBkMWVmZjdkZTRmYTMuLjU3NmM5MWM4NWE2YiAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCj4gKysrIGIvaW5jbHVkZS9kcm0v dHRtL3R0bV9ib19kcml2ZXIuaAo+IEBAIC01NSw3ICs1NSw3IEBAIHN0cnVjdCB0dG1fcmVzb3Vy Y2VfbWFuYWdlcl9mdW5jIHsKPiAgIAkgKiBAYm86IFBvaW50ZXIgdG8gdGhlIGJ1ZmZlciBvYmpl Y3Qgd2UncmUgYWxsb2NhdGluZyBzcGFjZSBmb3IuCj4gICAJICogQHBsYWNlbWVudDogUGxhY2Vt ZW50IGRldGFpbHMuCj4gICAJICogQGZsYWdzOiBBZGRpdGlvbmFsIHBsYWNlbWVudCBmbGFncy4K PiAtCSAqIEBtZW06IFBvaW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX21lbV9yZWcgdG8gYmUgZmlsbGVk IGluLgo+ICsJICogQG1lbTogUG9pbnRlciB0byBhIHN0cnVjdCB0dG1fcmVzb3VyY2UgdG8gYmUg ZmlsbGVkIGluLgo+ICAgCSAqCj4gICAJICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYWxsb2NhdGUg c3BhY2UgaW4gdGhlIG1lbW9yeSB0eXBlIG1hbmFnZWQKPiAgIAkgKiBieSBAbWFuLiBQbGFjZW1l bnQgZGV0YWlscyBpZgo+IEBAIC03OSwyMCArNzksMjAgQEAgc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyX2Z1bmMgewo+ICAgCWludCAgKCpnZXRfbm9kZSkoc3RydWN0IHR0bV9yZXNvdXJjZV9t YW5hZ2VyICptYW4sCj4gICAJCQkgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAkJ CSBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPiAtCQkJIHN0cnVjdCB0dG1fbWVtX3Jl ZyAqbWVtKTsKPiArCQkJIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSk7Cj4gICAKPiAgIAkvKioK PiAgIAkgKiBzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgbWVtYmVyIHB1dF9ub2RlCj4gICAJ ICoKPiAgIAkgKiBAbWFuOiBQb2ludGVyIHRvIGEgbWVtb3J5IHR5cGUgbWFuYWdlci4KPiAtCSAq IEBtZW06IFBvaW50ZXIgdG8gYSBzdHJ1Y3QgdHRtX21lbV9yZWcgdG8gYmUgZmlsbGVkIGluLgo+ ICsJICogQG1lbTogUG9pbnRlciB0byBhIHN0cnVjdCB0dG1fcmVzb3VyY2UgdG8gYmUgZmlsbGVk IGluLgo+ICAgCSAqCj4gICAJICogVGhpcyBmdW5jdGlvbiBmcmVlcyBtZW1vcnkgdHlwZSByZXNv dXJjZXMgcHJldmlvdXNseSBhbGxvY2F0ZWQKPiAgIAkgKiBhbmQgdGhhdCBhcmUgaWRlbnRpZmll ZCBieSBAbWVtOjptbV9ub2RlIGFuZCBAbWVtOjpzdGFydC4gTWF5IG5vdAo+ICAgCSAqIGJlIGNh bGxlZCBmcm9tIHdpdGhpbiBhdG9taWMgY29udGV4dC4KPiAgIAkgKi8KPiAgIAl2b2lkICgqcHV0 X25vZGUpKHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+IC0JCQkgc3RydWN0IHR0 bV9tZW1fcmVnICptZW0pOwo+ICsJCQkgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKTsKPiAgIAo+ ICAgCS8qKgo+ICAgCSAqIHN0cnVjdCB0dG1fcmVzb3VyY2VfbWFuYWdlciBtZW1iZXIgZGVidWcK PiBAQCAtMjUxLDcgKzI1MSw3IEBAIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHsKPiAgIAkgKi8KPiAg IAlpbnQgKCptb3ZlKShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBib29sIGV2aWN0LAo+ ICAgCQkgICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCj4gLQkJICAgIHN0cnVjdCB0 dG1fbWVtX3JlZyAqbmV3X21lbSk7Cj4gKwkJICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm5ld19t ZW0pOwo+ICAgCj4gICAJLyoqCj4gICAJICogc3RydWN0IHR0bV9ib19kcml2ZXJfbWVtYmVyIHZl cmlmeV9hY2Nlc3MKPiBAQCAtMjc3LDcgKzI3Nyw3IEBAIHN0cnVjdCB0dG1fYm9fZHJpdmVyIHsK PiAgIAkgKi8KPiAgIAl2b2lkICgqbW92ZV9ub3RpZnkpKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCj4gICAJCQkgICAgYm9vbCBldmljdCwKPiAtCQkJICAgIHN0cnVjdCB0dG1fbWVtX3Jl ZyAqbmV3X21lbSk7Cj4gKwkJCSAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfbWVtKTsKPiAg IAkvKiBub3RpZnkgdGhlIGRyaXZlciB3ZSBhcmUgdGFraW5nIGEgZmF1bHQgb24gdGhpcyBCTwo+ ICAgCSAqIGFuZCBoYXZlIHJlc2VydmVkIGl0ICovCj4gICAJaW50ICgqZmF1bHRfcmVzZXJ2ZV9u b3RpZnkpKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwo+IEBAIC0yOTQsOSArMjk0LDkg QEAgc3RydWN0IHR0bV9ib19kcml2ZXIgewo+ICAgCSAqIGFyZSBiYWxhbmNlZC4KPiAgIAkgKi8K PiAgIAlpbnQgKCppb19tZW1fcmVzZXJ2ZSkoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4g LQkJCSAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKTsKPiArCQkJICAgICAgc3RydWN0IHR0 bV9yZXNvdXJjZSAqbWVtKTsKPiAgIAl2b2lkICgqaW9fbWVtX2ZyZWUpKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LAo+IC0JCQkgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pOwo+ICsJCQkg ICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKTsKPiAgIAo+ICAgCS8qKgo+ICAgCSAqIFJldHVy biB0aGUgcGZuIGZvciBhIGdpdmVuIHBhZ2Vfb2Zmc2V0IGluc2lkZSB0aGUgQk8uCj4gQEAgLTUw OCw3ICs1MDgsNyBAQCB0dG1fZmxhZ19tYXNrZWQodWludDMyX3QgKm9sZCwgdWludDMyX3QgbmV3 LCB1aW50MzJfdCBtYXNrKQo+ICAgICogQGJvOiBQb2ludGVyIHRvIGEgc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0LiB0aGUgZGF0YSBvZiB3aGljaAo+ICAgICogd2Ugd2FudCB0byBhbGxvY2F0ZSBz cGFjZSBmb3IuCj4gICAgKiBAcHJvcG9zZWRfcGxhY2VtZW50OiBQcm9wb3NlZCBuZXcgcGxhY2Vt ZW50IGZvciB0aGUgYnVmZmVyIG9iamVjdC4KPiAtICogQG1lbTogQSBzdHJ1Y3QgdHRtX21lbV9y ZWcuCj4gKyAqIEBtZW06IEEgc3RydWN0IHR0bV9yZXNvdXJjZS4KPiAgICAqIEBpbnRlcnJ1cHRp YmxlOiBTbGVlcCBpbnRlcnJ1cHRpYmxlIHdoZW4gc2xpcGluZy4KPiAgICAqIEBub193YWl0X2dw dTogUmV0dXJuIGltbWVkaWF0ZWx5IGlmIHRoZSBHUFUgaXMgYnVzeS4KPiAgICAqCj4gQEAgLTUy MywxMCArNTIzLDEwIEBAIHR0bV9mbGFnX21hc2tlZCh1aW50MzJfdCAqb2xkLCB1aW50MzJfdCBu ZXcsIHVpbnQzMl90IG1hc2spCj4gICAgKi8KPiAgIGludCB0dG1fYm9fbWVtX3NwYWNlKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJCSAgICAgc3RydWN0IHR0bV9wbGFjZW1lbnQg KnBsYWNlbWVudCwKPiAtCQkgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtLAo+ICsJCSAgICAg c3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtLAo+ICAgCQkgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9u X2N0eCAqY3R4KTsKPiAgIAo+IC12b2lkIHR0bV9ib19tZW1fcHV0KHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKTsKPiArdm9pZCB0dG1fYm9fbWVt X3B1dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgdHRtX3Jlc291cmNlICpt ZW0pOwo+ICAgCj4gICBpbnQgdHRtX2JvX2RldmljZV9yZWxlYXNlKHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2KTsKPiAgIAo+IEBAIC03MjIsMTYgKzcyMiwxNiBAQCBpbnQgdHRtX3Jlc291cmNl X21hbmFnZXJfZm9yY2VfbGlzdF9jbGVhbihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAg ICAqLwo+ICAgCj4gICBpbnQgdHRtX21lbV9pb19yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAo+IC0JCSAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSk7Cj4gKwkJICAgICAg IHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSk7Cj4gICB2b2lkIHR0bV9tZW1faW9fZnJlZShzdHJ1 Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAtCQkgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVt KTsKPiArCQkgICAgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKm1lbSk7Cj4gICAvKioKPiAgICAqIHR0 bV9ib19tb3ZlX3R0bQo+ICAgICoKPiAgICAqIEBibzogQSBwb2ludGVyIHRvIGEgc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0Lgo+ICAgICogQGludGVycnVwdGlibGU6IFNsZWVwIGludGVycnVwdGli bGUgaWYgd2FpdGluZy4KPiAgICAqIEBub193YWl0X2dwdTogUmV0dXJuIGltbWVkaWF0ZWx5IGlm IHRoZSBHUFUgaXMgYnVzeS4KPiAtICogQG5ld19tZW06IHN0cnVjdCB0dG1fbWVtX3JlZyBpbmRp Y2F0aW5nIHdoZXJlIHRvIG1vdmUuCj4gKyAqIEBuZXdfbWVtOiBzdHJ1Y3QgdHRtX3Jlc291cmNl IGluZGljYXRpbmcgd2hlcmUgdG8gbW92ZS4KPiAgICAqCj4gICAgKiBPcHRpbWl6ZWQgbW92ZSBm dW5jdGlvbiBmb3IgYSBidWZmZXIgb2JqZWN0IHdpdGggYm90aCBvbGQgYW5kCj4gICAgKiBuZXcg cGxhY2VtZW50IGJhY2tlZCBieSBhIFRUTS4gVGhlIGZ1bmN0aW9uIHdpbGwsIGlmIHN1Y2Nlc3Nm dWwsCj4gQEAgLTc0NSw3ICs3NDUsNyBAQCB2b2lkIHR0bV9tZW1faW9fZnJlZShzdHJ1Y3QgdHRt X2JvX2RldmljZSAqYmRldiwKPiAgIAo+ICAgaW50IHR0bV9ib19tb3ZlX3R0bShzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgCQkgICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpj dHgsCj4gLQkJICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X21lbSk7Cj4gKwkJICAgIHN0cnVj dCB0dG1fcmVzb3VyY2UgKm5ld19tZW0pOwo+ICAgCj4gICAvKioKPiAgICAqIHR0bV9ib19tb3Zl X21lbWNweQo+IEBAIC03NTMsNyArNzUzLDcgQEAgaW50IHR0bV9ib19tb3ZlX3R0bShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+ICAgICogQGJvOiBBIHBvaW50ZXIgdG8gYSBzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QuCj4gICAgKiBAaW50ZXJydXB0aWJsZTogU2xlZXAgaW50ZXJydXB0 aWJsZSBpZiB3YWl0aW5nLgo+ICAgICogQG5vX3dhaXRfZ3B1OiBSZXR1cm4gaW1tZWRpYXRlbHkg aWYgdGhlIEdQVSBpcyBidXN5Lgo+IC0gKiBAbmV3X21lbTogc3RydWN0IHR0bV9tZW1fcmVnIGlu ZGljYXRpbmcgd2hlcmUgdG8gbW92ZS4KPiArICogQG5ld19tZW06IHN0cnVjdCB0dG1fcmVzb3Vy Y2UgaW5kaWNhdGluZyB3aGVyZSB0byBtb3ZlLgo+ICAgICoKPiAgICAqIEZhbGxiYWNrIG1vdmUg ZnVuY3Rpb24gZm9yIGEgbWFwcGFibGUgYnVmZmVyIG9iamVjdCBpbiBtYXBwYWJsZSBtZW1vcnku Cj4gICAgKiBUaGUgZnVuY3Rpb24gd2lsbCwgaWYgc3VjY2Vzc2Z1bCwKPiBAQCAtNzY3LDcgKzc2 Nyw3IEBAIGludCB0dG1fYm9fbW92ZV90dG0oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK PiAgIAo+ICAgaW50IHR0bV9ib19tb3ZlX21lbWNweShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLAo+ICAgCQkgICAgICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCj4gLQkJICAg ICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X21lbSk7Cj4gKwkJICAgICAgIHN0cnVjdCB0dG1f cmVzb3VyY2UgKm5ld19tZW0pOwo+ICAgCj4gICAvKioKPiAgICAqIHR0bV9ib19mcmVlX29sZF9u b2RlCj4gQEAgLTc4NCw3ICs3ODQsNyBAQCB2b2lkIHR0bV9ib19mcmVlX29sZF9ub2RlKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwo+ICAgICogQGJvOiBBIHBvaW50ZXIgdG8gYSBzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QuCj4gICAgKiBAZmVuY2U6IEEgZmVuY2Ugb2JqZWN0IHRoYXQg c2lnbmFscyB3aGVuIG1vdmluZyBpcyBjb21wbGV0ZS4KPiAgICAqIEBldmljdDogVGhpcyBpcyBh biBldmljdCBtb3ZlLiBEb24ndCByZXR1cm4gdW50aWwgdGhlIGJ1ZmZlciBpcyBpZGxlLgo+IC0g KiBAbmV3X21lbTogc3RydWN0IHR0bV9tZW1fcmVnIGluZGljYXRpbmcgd2hlcmUgdG8gbW92ZS4K PiArICogQG5ld19tZW06IHN0cnVjdCB0dG1fcmVzb3VyY2UgaW5kaWNhdGluZyB3aGVyZSB0byBt b3ZlLgo+ICAgICoKPiAgICAqIEFjY2VsZXJhdGVkIG1vdmUgZnVuY3Rpb24gdG8gYmUgY2FsbGVk IHdoZW4gYW4gYWNjZWxlcmF0ZWQgbW92ZQo+ICAgICogaGFzIGJlZW4gc2NoZWR1bGVkLiBUaGUg ZnVuY3Rpb24gd2lsbCBjcmVhdGUgYSBuZXcgdGVtcG9yYXJ5IGJ1ZmZlciBvYmplY3QKPiBAQCAt Nzk1LDcgKzc5NSw3IEBAIHZvaWQgdHRtX2JvX2ZyZWVfb2xkX25vZGUoc3RydWN0IHR0bV9idWZm ZXJfb2JqZWN0ICpibyk7Cj4gICAgKi8KPiAgIGludCB0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVw KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJCQkgICAgICBzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSwgYm9vbCBldmljdCwKPiAtCQkJICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICpu ZXdfbWVtKTsKPiArCQkJICAgICAgc3RydWN0IHR0bV9yZXNvdXJjZSAqbmV3X21lbSk7Cj4gICAK PiAgIC8qKgo+ICAgICogdHRtX2JvX3BpcGVsaW5lX21vdmUuCj4gQEAgLTgwMywxNCArODAzLDE0 IEBAIGludCB0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8sCj4gICAgKiBAYm86IEEgcG9pbnRlciB0byBhIHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dC4KPiAgICAqIEBmZW5jZTogQSBmZW5jZSBvYmplY3QgdGhhdCBzaWduYWxzIHdoZW4gbW92aW5n IGlzIGNvbXBsZXRlLgo+ICAgICogQGV2aWN0OiBUaGlzIGlzIGFuIGV2aWN0IG1vdmUuIERvbid0 IHJldHVybiB1bnRpbCB0aGUgYnVmZmVyIGlzIGlkbGUuCj4gLSAqIEBuZXdfbWVtOiBzdHJ1Y3Qg dHRtX21lbV9yZWcgaW5kaWNhdGluZyB3aGVyZSB0byBtb3ZlLgo+ICsgKiBAbmV3X21lbTogc3Ry dWN0IHR0bV9yZXNvdXJjZSBpbmRpY2F0aW5nIHdoZXJlIHRvIG1vdmUuCj4gICAgKgo+ICAgICog RnVuY3Rpb24gZm9yIHBpcGVsaW5pbmcgYWNjZWxlcmF0ZWQgbW92ZXMuIEVpdGhlciBmcmVlIHRo ZSBtZW1vcnkKPiAgICAqIGltbWVkaWF0ZWx5IG9yIGhhbmcgaXQgb24gYSB0ZW1wb3JhcnkgYnVm ZmVyIG9iamVjdC4KPiAgICAqLwo+ICAgaW50IHR0bV9ib19waXBlbGluZV9tb3ZlKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sCj4gICAJCQkgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIGJv b2wgZXZpY3QsCj4gLQkJCSBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pOwo+ICsJCQkgc3Ry dWN0IHR0bV9yZXNvdXJjZSAqbmV3X21lbSk7Cj4gICAKPiAgIC8qKgo+ICAgICogdHRtX2JvX3Bp cGVsaW5lX2d1dHRpbmcuCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fdHQuaCBi L2luY2x1ZGUvZHJtL3R0bS90dG1fdHQuaAo+IGluZGV4IDVlMjM5M2ZlNDJjNi4uMjQxY2M0MDgz OWVkIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fdHQuaAo+ICsrKyBiL2luY2x1 ZGUvZHJtL3R0bS90dG1fdHQuaAo+IEBAIC0zMCw3ICszMCw3IEBACj4gICAjaW5jbHVkZSA8bGlu dXgvdHlwZXMuaD4KPiAgIAo+ICAgc3RydWN0IHR0bV90dDsKPiAtc3RydWN0IHR0bV9tZW1fcmVn Owo+ICtzdHJ1Y3QgdHRtX3Jlc291cmNlOwo+ICAgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0Owo+ ICAgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4Owo+ICAgCj4gQEAgLTUzLDE0ICs1MywxNCBAQCBz dHJ1Y3QgdHRtX2JhY2tlbmRfZnVuYyB7Cj4gICAJICogc3RydWN0IHR0bV9iYWNrZW5kX2Z1bmMg bWVtYmVyIGJpbmQKPiAgIAkgKgo+ICAgCSAqIEB0dG06IFBvaW50ZXIgdG8gYSBzdHJ1Y3QgdHRt X3R0Lgo+IC0JICogQGJvX21lbTogUG9pbnRlciB0byBhIHN0cnVjdCB0dG1fbWVtX3JlZyBkZXNj cmliaW5nIHRoZQo+ICsJICogQGJvX21lbTogUG9pbnRlciB0byBhIHN0cnVjdCB0dG1fcmVzb3Vy Y2UgZGVzY3JpYmluZyB0aGUKPiAgIAkgKiBtZW1vcnkgdHlwZSBhbmQgbG9jYXRpb24gZm9yIGJp bmRpbmcuCj4gICAJICoKPiAgIAkgKiBCaW5kIHRoZSBiYWNrZW5kIHBhZ2VzIGludG8gdGhlIGFw ZXJ0dXJlIGluIHRoZSBsb2NhdGlvbgo+ICAgCSAqIGluZGljYXRlZCBieSBAYm9fbWVtLiBUaGlz IGZ1bmN0aW9uIHNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZQo+ICAgCSAqIGRpZmZlcmVuY2VzIGJl dHdlZW4gYXBlcnR1cmUgYW5kIHN5c3RlbSBwYWdlIHNpemVzLgo+ICAgCSAqLwo+IC0JaW50ICgq YmluZCkgKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9tZW1fcmVnICpib19tZW0pOwo+ ICsJaW50ICgqYmluZCkgKHN0cnVjdCB0dG1fdHQgKnR0bSwgc3RydWN0IHR0bV9yZXNvdXJjZSAq Ym9fbWVtKTsKPiAgIAo+ICAgCS8qKgo+ICAgCSAqIHN0cnVjdCB0dG1fYmFja2VuZF9mdW5jIG1l bWJlciB1bmJpbmQKPiBAQCAtMTc5LDExICsxNzksMTEgQEAgdm9pZCB0dG1fZG1hX3R0X2Zpbmko c3RydWN0IHR0bV9kbWFfdHQgKnR0bV9kbWEpOwo+ICAgICogdHRtX3R0bV9iaW5kOgo+ICAgICoK PiAgICAqIEB0dG06IFRoZSBzdHJ1Y3QgdHRtX3R0IGNvbnRhaW5pbmcgYmFja2luZyBwYWdlcy4K PiAtICogQGJvX21lbTogVGhlIHN0cnVjdCB0dG1fbWVtX3JlZyBpZGVudGlmeWluZyB0aGUgYmlu ZGluZyBsb2NhdGlvbi4KPiArICogQGJvX21lbTogVGhlIHN0cnVjdCB0dG1fcmVzb3VyY2UgaWRl bnRpZnlpbmcgdGhlIGJpbmRpbmcgbG9jYXRpb24uCj4gICAgKgo+ICAgICogQmluZCB0aGUgcGFn ZXMgb2YgQHR0bSB0byBhbiBhcGVydHVyZSBsb2NhdGlvbiBpZGVudGlmaWVkIGJ5IEBib19tZW0K PiAgICAqLwo+IC1pbnQgdHRtX3R0X2JpbmQoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRt X21lbV9yZWcgKmJvX21lbSwKPiAraW50IHR0bV90dF9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwg c3RydWN0IHR0bV9yZXNvdXJjZSAqYm9fbWVtLAo+ICAgCQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9j dHggKmN0eCk7Cj4gICAKPiAgIC8qKgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==