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=-15.4 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,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 AEE90C433DB for ; Fri, 5 Feb 2021 08:51:07 +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 4BD2664F45 for ; Fri, 5 Feb 2021 08:51:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4BD2664F45 Authentication-Results: mail.kernel.org; dmarc=fail (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 01B796E174; Fri, 5 Feb 2021 08:51:06 +0000 (UTC) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2072.outbound.protection.outlook.com [40.107.236.72]) by gabe.freedesktop.org (Postfix) with ESMTPS id 814DD6E174 for ; Fri, 5 Feb 2021 08:51:03 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y6Pz6J6rgkR42dypFDsnFFhMdyaJvZJrzVAWOm0d1Z9FdeB/Le7BzWss6dBtuRFvF/grczMIXrFa79rkibsV5gribDR7tdG5/UO7Zata7YHmGITk1f6f7h6K7Fx8E/78bsJB0yUdLUR8MJu8KvooYZVXV8LFBSSG165E8YeNqak8GAg5aeZBJAtlnHhy4m/2fgM72SWCxX7R2FYykxh6tC8M3HC8X7thDn2nuvlVNbH6lOVGxewq7pAJMo/OMznKjpC+9ZVEVdQWu0x/KhwjLhkJTx8Q4UjchWVA1gpKrscJ51+C+4plCgoptcYPOyapkVnAXe6UINQ/QK5syf9Ilw== 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=e+O+WE+wgw/rRrjMA6U0TSX1otQT8BiVNpgkLxI6Po4=; b=mwqO+PWCExd9dfgu1YrWpI77tvG2LvI8W8wQPpQss8VpN5S/3djqXkyScKsmlj/mZN2XDoXZMv9ZHs0VR0bO2aP1gUS1YlIF7IAtsI9gx6eLB57HAXT5MMF8syMpRoj/s0YojslGA0jfu9vDNUaSHKvu18VL1FU11BGZYZqBv/to12G0EykxRRyN6bKq/iOIWxFl4+BnPIoyzyZf56dL8MZE0Pk/2Ut0mYdEi2CmQuxVO62Qp/d4rCL89P2bTHjYQrj1GCFBjIrPmgAaSAZWjZsPmFOgrbxqx25SNpywtQ57uxO91YjL6TB8lKBPPmSNXs85BwDxoaMkwDS5QhoB+w== 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=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e+O+WE+wgw/rRrjMA6U0TSX1otQT8BiVNpgkLxI6Po4=; b=4k7x2R2HlmdezC+fXsxZRxb9JuEGMmpXdzj+kXZC0PhsFP2+eTRVt2ZTPK4eCa7d4ysNjA8/nahEq92tEjnik8tB7pqnq78Czqzr2OQuAT2J59spW8ekcRsIRrE+eXO0636eWkPzCWxOwF/gy878oeI3rTX2u0qc/rVCWEM2iIw= Authentication-Results: lists.freedesktop.org; dkim=none (message not signed) header.d=none; lists.freedesktop.org; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by MN2PR12MB4608.namprd12.prod.outlook.com (2603:10b6:208:fd::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.24; Fri, 5 Feb 2021 08:51:00 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::c1ff:dcf1:9536:a1f2]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::c1ff:dcf1:9536:a1f2%2]) with mapi id 15.20.3825.023; Fri, 5 Feb 2021 08:51:00 +0000 Subject: Re: [RFC][PATCH v6 4/7] drm: ttm_pool: Rework ttm_pool to use drm_page_pool To: John Stultz , lkml References: <20210205080621.3102035-1-john.stultz@linaro.org> <20210205080621.3102035-5-john.stultz@linaro.org> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <28ba71e1-0101-6cb6-5909-df0c4fc0c4d6@amd.com> Date: Fri, 5 Feb 2021 09:50:49 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <20210205080621.3102035-5-john.stultz@linaro.org> Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] X-ClientProxiedBy: AM0PR10CA0086.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::39) 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 AM0PR10CA0086.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.19 via Frontend Transport; Fri, 5 Feb 2021 08:50:55 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 0980959a-2fe6-4eac-1632-08d8c9b32926 X-MS-TrafficTypeDiagnostic: MN2PR12MB4608: 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: 2VAnDLotcpVEwghTkf/MAR64PYZ2QuZyWeRAjp2lCi58u+Pq8fGJI0Act2KE2bG+BaqUc2rAhXvw18RcD2Q7IGr3uYg7B4diwtt2b4LJE2HJmcKPi8fXr+TzK4v+eFeD8mOvFtfubsKU3XhZXtWnqzWtxNghP/KLSC2qGLZl2KdQwYV2wf4qu8zfmSW5lv1SHTzrCkzIsxmy1TBEiDBsTveZoGsKNbBlg5t72ZZcjer2gvE+iFam6rfbv+5M1M5/9GLmn7dVlozctMQCNZA+zT0PEbLfMxMG6kNPylq3t3j9MGqt6WYmfUQAOA0cibVE0Z6hIJEXBZ8CqSpj8U84/Tk529ODSD2vv0AkV5H6YWsvhCIqgnCoRefVR8cR78DHj6z/poaSCIWcz2RNgbP7YCDJFEZl3y9WZCR8bfm78PRsHoEbRVjMaDqaeCQx+FkvJ8Y6aay95UYdXAMZb54v4fwAOeY0haVhtXMICO17jU/GSyQfREGSAUhGggWgzNnBr7qF88lOsWqw7p5eEQPTpyf93+HwPmf4/S3N/tyxgm5t4owWQwzz3QnodNgKsJyZBGt5bKVytgPhea1XfM3ihLD1oLQHqo3gIy8ZkKbIU/s= 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; SFS:(4636009)(376002)(366004)(39860400002)(346002)(136003)(396003)(83380400001)(8936002)(110136005)(8676002)(54906003)(316002)(31686004)(31696002)(5660300002)(66946007)(86362001)(30864003)(66556008)(66476007)(186003)(6666004)(52116002)(16526019)(4326008)(2906002)(7416002)(2616005)(6486002)(36756003)(478600001)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?cGVlV3J1eEMrNGJsRVBqM2dsdHhyQzJ6WTBYQVMxTFY0YmltdGZ2V3FPWVBq?= =?utf-8?B?akMvUU4rMVhKcWFwaDhpVm5pd1lBQTg0SXVab0lNUzZDa3R5QytMN1l4dUIv?= =?utf-8?B?RUZDZlJRWHdOL0NGREk0Q3QwMHZDNU5naDNlNVFUZ3RIcUhWS1JuOEFURGlW?= =?utf-8?B?S3d5Yjl5cDdrNVlhYXJyRFhhZVowWXNxNnFVVElwUy85WHhiaHY1My9qcXlw?= =?utf-8?B?bmJZK2JYVklnL1BVWW1ISWJlenIzdTRoaU9KWmxoSHQ5THNHRlVwK1dwdUxW?= =?utf-8?B?a0l4eUMreHR2TVkzZnZscTZHSmFRMlBKd1pRNDNvbnY1UEhtaFUrY2FNaFR4?= =?utf-8?B?NGdRSDJPY2E0ZHoxSTNUSWwvUWg0YVc3bHpLTnlGckovalM4Z1pIQlR2Wks5?= =?utf-8?B?bFV2MmhROStuekJ6NzFKdjZPaC81K2VFbTcxMmhtN3ovekNSUzN5LzRTeUxL?= =?utf-8?B?aWdnUlF6ZjJYWGhnSmZtVEhBei83Vm1LYWJUcWtpV1J1NHFYNno5aTZGU2JB?= =?utf-8?B?K3psb1ViQzZzSThHVk1ENU9tYkNLL0lXTXRhYnBOSjhWNFVYUmsyOHVVMDFV?= =?utf-8?B?S0g4V241WGtpNWsyRmxlODV0R05TMEVxTG42Rkh2dVNUK3RYV2czbTBMcks5?= =?utf-8?B?RFhXUGI2WlIrbDRhYjlqVmVxWVVpcDhDUUgycGF3YnJpSTlSVXRwMUNBSy82?= =?utf-8?B?d0NrWTFhWE10WXRWL3F6QWhic0pRNVEzRzkveG5IVm1jd0QrN0orNDhjMmNC?= =?utf-8?B?LzJKZlkxUEE5b2J1RDh6Tm5UZU9UVHZSS2hLMjg5TjVCV3RoaCtNbVZEUmJQ?= =?utf-8?B?NVV4S1B2eHA3SlgvSFFsZUJ6UEhkQVcwZVMrU3R1RzA3cWt5Z3U3ZkdrWGVp?= =?utf-8?B?YWIvZFltZDBxVHF4WC9wTS9wVGdmTzc2Vlc4Nm1UUlcxNklUakZPS3dWYm9q?= =?utf-8?B?dUR0cVFnNjJVWXlNSGlaSWN2cTFSS1lVNG5hWHJrbUlkMVFlbEZsUGVnWVdZ?= =?utf-8?B?WDNPZ21IanRLS1NVY0Znc0swSEIwMlV5NDhna2dPUUtHM0NVNEJlWHF4ak12?= =?utf-8?B?M25iOXpOQk5VN0l0U3VZVEZQTW1jTXUwcUwwaGIvR3daaHVoVHdhV25nNTJn?= =?utf-8?B?SEg0RjdJd3d0S2tLTkFkUTVGT3dXLzMxWEhSdnVxRjRnc2ozYmwzS3NTdTMz?= =?utf-8?B?MktRQi81ekpDRUlQSXVqNXZOQzZ0T2lsbGIyd3lqZmpFYnFUNGVNK1ppYmZa?= =?utf-8?B?ZFVqcENKNmZQbzFlNzV1RU04dEtNT3IzTkw1S2Uwd2tUajJXZkVxZGQxSlRx?= =?utf-8?B?QUpEV2pkNWx6ZFVINnF6VGxPZ2lEYUxURUJuN054Y0hwOWl1WTZKdkZ2Zmp1?= =?utf-8?B?WlFFSEhBNkJGRVBwQ1gvUzRXY0daN1VleTQvRXNjRUY3cVltVXNSeE5YTnN0?= =?utf-8?B?OGFWcXJUQkpVd1IyTE5EWjNnMEZzWnlKK01PL0JkclZONjFMalBGZThSNm53?= =?utf-8?B?Z1pRM0FPYkp2SFV1UFQ2YUFiUUhjcU1EZ1U3blg3RVdvM1VkTXFFQVZ1aVk4?= =?utf-8?B?LzcxS2ptMVBCYlBxOW8ybWdMbHZ2US9VczZ4Rk1xdlN1NWNWUlRpZ0NxZi9X?= =?utf-8?B?NnZHWXV3YVVHbzZtS2lpZzlHN3dGdUErNkY3ODZUVTZSQzdyQXVLOFlNM0U4?= =?utf-8?B?VzdMck16UEhTVGhjYk9aK1EvVTlheEZCekwzMldXRGJjYTlBdERJOWpidnRi?= =?utf-8?B?b3ZTU09KQ1hXQ0pPYzhaRzVDOEpudWdaTlZiZ2pIclZWK2ZjQVRaTkRpVjB2?= =?utf-8?B?Wm9HVUdVdVdhdHVtbCtLYkZiaVcrek11UkFva2Z2L01qVnhsTmRmQks5N09Q?= =?utf-8?Q?5xbxnk7hZlrjk?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0980959a-2fe6-4eac-1632-08d8c9b32926 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2021 08:51:00.3753 (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: wDrI3YEauqNOiTGc+l1U58ugNkpIkjwtIbMnzbqENmO8v0mzpO3ypncI1+wEdKtM X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4608 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: dri-devel@lists.freedesktop.org, Sandeep Patil , Chris Goldsworthy , Ezequiel Garcia , Robin Murphy , James Jones , Liam Mark , Laura Abbott , Hridya Valsaraju , =?UTF-8?Q?=c3=98rjan_Eide?= , linux-media@vger.kernel.org, Suren Baghdasaryan , Daniel Mentz Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QW0gMDUuMDIuMjEgdW0gMDk6MDYgc2NocmllYiBKb2huIFN0dWx0ejoKPiBUaGlzIHBhdGNoIHJl d29ya3MgdGhlIHR0bV9wb29sIGxvZ2ljIHRvIHV0aWxpemUgdGhlIHJlY2VudGx5Cj4gYWRkZWQg ZHJtX3BhZ2VfcG9vbCBjb2RlLgo+Cj4gQmFzaWNhbGx5IGFsbCB0aGUgdHRtX3Bvb2xfdHlwZSBz dHJ1Y3R1cmVzIGFyZSByZXBsYWNlZCB3aXRoCj4gZHJtX3BhZ2VfcG9vbCBwb2ludGVycywgYW5k IHNpbmNlIHRoZSBkcm1fcGFnZV9wb29sIGxvZ2ljIGhhcwo+IGl0cyBvd24gc2hyaW5rZXIsIHdl IGNhbiByZW1vdmUgYWxsIG9mIHRoZSB0dG1fcG9vbCBzaHJpbmtlcgo+IGxvZ2ljLgo+Cj4gTk9U RTogVGhlcmUgaXMgb25lIG1pc21hdGNoIGluIHRoZSBpbnRlcmZhY2VzIEknbSBub3QgdG90YWxs eQo+IGhhcHB5IHdpdGguIFRoZSB0dG1fcG9vbCB0cmFja3MgYWxsIG9mIGl0cyBwb29sZWQgcGFn ZXMgYWNyb3NzCj4gYSBudW1iZXIgb2YgZGlmZmVyZW50IHBvb2xzLCBhbmQgdHJpZXMgdG8ga2Vl cCB0aGlzIHNpemUgdW5kZXIKPiB0aGUgc3BlY2lmaWVkIHBhZ2VfcG9vbF9zaXplIHZhbHVlLiBX aXRoIHRoZSBkcm1fcGFnZV9wb29sLAo+IHRoZXJlIG1heSBvdGhlciB1c2VycywgaG93ZXZlciB0 aGVyZSBpcyBzdGlsbCBvbmUgZ2xvYmFsCj4gc2hyaW5rZXIgbGlzdCBvZiBwb29scy4gU28gd2Ug Y2FuJ3QgZWFzaWx5IHJlZHVjZSB0aGUgdHRtCj4gcG9vbCB1bmRlciB0aGUgdHRtIHNwZWNpZmll ZCBzaXplIHdpdGhvdXQgcG90ZW50aWFsbHkgZG9pbmcKPiBhIGxvdCBvZiBzaHJpbmtpbmcgdG8g b3RoZXIgbm9uLXR0bSBwb29scy4gU28gZWl0aGVyIHdlIGNhbjoKPiAgICAxKSBUcnkgdG8gc3Bs aXQgaXQgc28gZWFjaCB1c2VyIG9mIGRybV9wYWdlX3Bvb2xzIG1hbmFnZXMgaXRzCj4gICAgICAg b3duIHBvb2wgc2hyaW5raW5nLgo+ICAgIDIpIFB1c2ggdGhlIG1heCB2YWx1ZSBpbnRvIHRoZSBk cm1fcGFnZV9wb29sLCBhbmQgaGF2ZSBpdAo+ICAgICAgIG1hbmFnZSBzaHJpbmtpbmcgdG8gZml0 IHVuZGVyIHRoYXQgZ2xvYmFsIG1heC4gVGhlbiBzaGFyZQo+ICAgICAgIHRob3NlIHNpemUvbWF4 IHZhbHVlcyBvdXQgc28gdGhlIHR0bV9wb29sIGRlYnVnIG91dHB1dAo+ICAgICAgIGNhbiBoYXZl IG1vcmUgY29udGV4dC4KPgo+IEkndmUgdGFrZW4gdGhlIHNlY29uZCBwYXRoIGluIHRoaXMgcGF0 Y2ggc2V0LCBidXQgd2FudGVkIHRvIGNhbGwKPiBpdCBvdXQgc28gZm9sa3MgY291bGQgbG9vayBj bG9zZWx5LgoKT3B0aW9uIDM6IE1vdmUgdGhlIGRlYnVnZ2luZyBjb2RlIGludG8gdGhlIGRybV9w YWdlX3Bvb2wgYXMgd2VsbC4KCkkgc3Ryb25nIHRoaW5rIHRoYXQgd2lsbCBiZSBhIGhhcmQgcmVx dWlyZW1lbnQgZnJvbSBEYW5pZWwgZm9yIAp1cHN0cmVhbWluZyB0aGlzLgoKQ2hyaXN0aWFuLgoK Pgo+IFRob3VnaHRzIHdvdWxkIGJlIGdyZWF0bHkgYXBwcmVjaWF0ZWQgaGVyZSEKPgo+IENjOiBE YW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+Cj4gQ2M6IENocmlzdGlhbiBLb2VuaWcgPGNo cmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiBDYzogU3VtaXQgU2Vtd2FsIDxzdW1pdC5zZW13YWxA bGluYXJvLm9yZz4KPiBDYzogTGlhbSBNYXJrIDxsbWFya0Bjb2RlYXVyb3JhLm9yZz4KPiBDYzog Q2hyaXMgR29sZHN3b3J0aHkgPGNnb2xkc3dvQGNvZGVhdXJvcmEub3JnPgo+IENjOiBMYXVyYSBB YmJvdHQgPGxhYmJvdHRAa2VybmVsLm9yZz4KPiBDYzogQnJpYW4gU3RhcmtleSA8QnJpYW4uU3Rh cmtleUBhcm0uY29tPgo+IENjOiBIcmlkeWEgVmFsc2FyYWp1IDxocmlkeWFAZ29vZ2xlLmNvbT4K PiBDYzogU3VyZW4gQmFnaGRhc2FyeWFuIDxzdXJlbmJAZ29vZ2xlLmNvbT4KPiBDYzogU2FuZGVl cCBQYXRpbCA8c3NwYXRpbEBnb29nbGUuY29tPgo+IENjOiBEYW5pZWwgTWVudHogPGRhbmllbG1l bnR6QGdvb2dsZS5jb20+Cj4gQ2M6IMOYcmphbiBFaWRlIDxvcmphbi5laWRlQGFybS5jb20+Cj4g Q2M6IFJvYmluIE11cnBoeSA8cm9iaW4ubXVycGh5QGFybS5jb20+Cj4gQ2M6IEV6ZXF1aWVsIEdh cmNpYSA8ZXplcXVpZWxAY29sbGFib3JhLmNvbT4KPiBDYzogU2ltb24gU2VyIDxjb250YWN0QGVt ZXJzaW9uLmZyPgo+IENjOiBKYW1lcyBKb25lcyA8amFqb25lc0BudmlkaWEuY29tPgo+IENjOiBs aW51eC1tZWRpYUB2Z2VyLmtlcm5lbC5vcmcKPiBDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+IFNpZ25lZC1vZmYtYnk6IEpvaG4gU3R1bHR6IDxqb2huLnN0dWx0ekBsaW5hcm8u b3JnPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL0tjb25maWcgICAgICAgIHwgICAxICsKPiAg IGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYyB8IDE5OSArKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KPiAgIGluY2x1ZGUvZHJtL3R0bS90dG1fcG9vbC5oICAgICB8ICAyMyAr LS0tCj4gICAzIGZpbGVzIGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKyksIDE4MiBkZWxldGlvbnMo LSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZyBiL2RyaXZlcnMvZ3B1 L2RybS9LY29uZmlnCj4gaW5kZXggZDE2YmYzNDBlZDJlLi5kNDI3YWJlZmFiZmIgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vS2Nv bmZpZwo+IEBAIC0xODEsNiArMTgxLDcgQEAgY29uZmlnIERSTV9QQUdFX1BPT0wKPiAgIGNvbmZp ZyBEUk1fVFRNCj4gICAJdHJpc3RhdGUKPiAgIAlkZXBlbmRzIG9uIERSTSAmJiBNTVUKPiArCXNl bGVjdCBEUk1fUEFHRV9QT09MCj4gICAJaGVscAo+ICAgCSAgR1BVIG1lbW9yeSBtYW5hZ2VtZW50 IHN1YnN5c3RlbSBmb3IgZGV2aWNlcyB3aXRoIG11bHRpcGxlCj4gICAJICBHUFUgbWVtb3J5IHR5 cGVzLiBXaWxsIGJlIGVuYWJsZWQgYXV0b21hdGljYWxseSBpZiBhIGRldmljZSBkcml2ZXIKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcG9vbC5jIGIvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fcG9vbC5jCj4gaW5kZXggZWNhMzY2NzhmOTY3Li5kYmJhZjU1Y2E1ZGYgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcG9vbC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3R0bS90dG1fcG9vbC5jCj4gQEAgLTM3LDYgKzM3LDcgQEAKPiAgICNpZmRlZiBD T05GSUdfWDg2Cj4gICAjaW5jbHVkZSA8YXNtL3NldF9tZW1vcnkuaD4KPiAgICNlbmRpZgo+ICsj aW5jbHVkZSA8ZHJtL3BhZ2VfcG9vbC5oPgo+ICAgI2luY2x1ZGUgPGRybS90dG0vdHRtX3Bvb2wu aD4KPiAgICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19kcml2ZXIuaD4KPiAgICNpbmNsdWRlIDxk cm0vdHRtL3R0bV90dC5oPgo+IEBAIC02MywxNSArNjQsMTMgQEAgbW9kdWxlX3BhcmFtKHBhZ2Vf cG9vbF9zaXplLCB1bG9uZywgMDY0NCk7Cj4gICAKPiAgIHN0YXRpYyBhdG9taWNfbG9uZ190IGFs bG9jYXRlZF9wYWdlczsKPiAgIAo+IC1zdGF0aWMgc3RydWN0IHR0bV9wb29sX3R5cGUgZ2xvYmFs X3dyaXRlX2NvbWJpbmVkW01BWF9PUkRFUl07Cj4gLXN0YXRpYyBzdHJ1Y3QgdHRtX3Bvb2xfdHlw ZSBnbG9iYWxfdW5jYWNoZWRbTUFYX09SREVSXTsKPiArc3RhdGljIHN0cnVjdCBkcm1fcGFnZV9w b29sICpnbG9iYWxfd3JpdGVfY29tYmluZWRbTUFYX09SREVSXTsKPiArc3RhdGljIHN0cnVjdCBk cm1fcGFnZV9wb29sICpnbG9iYWxfdW5jYWNoZWRbTUFYX09SREVSXTsKPiAgIAo+IC1zdGF0aWMg c3RydWN0IHR0bV9wb29sX3R5cGUgZ2xvYmFsX2RtYTMyX3dyaXRlX2NvbWJpbmVkW01BWF9PUkRF Ul07Cj4gLXN0YXRpYyBzdHJ1Y3QgdHRtX3Bvb2xfdHlwZSBnbG9iYWxfZG1hMzJfdW5jYWNoZWRb TUFYX09SREVSXTsKPiArc3RhdGljIHN0cnVjdCBkcm1fcGFnZV9wb29sICpnbG9iYWxfZG1hMzJf d3JpdGVfY29tYmluZWRbTUFYX09SREVSXTsKPiArc3RhdGljIHN0cnVjdCBkcm1fcGFnZV9wb29s ICpnbG9iYWxfZG1hMzJfdW5jYWNoZWRbTUFYX09SREVSXTsKPiAgIAo+ICAgc3RhdGljIHN0cnVj dCBtdXRleCBzaHJpbmtlcl9sb2NrOwo+IC1zdGF0aWMgc3RydWN0IGxpc3RfaGVhZCBzaHJpbmtl cl9saXN0Owo+IC1zdGF0aWMgc3RydWN0IHNocmlua2VyIG1tX3Nocmlua2VyOwo+ICAgCj4gICAv KiBBbGxvY2F0ZSBwYWdlcyBvZiBzaXplIDEgPDwgb3JkZXIgd2l0aCB0aGUgZ2l2ZW4gZ2ZwX2Zs YWdzICovCj4gICBzdGF0aWMgc3RydWN0IHBhZ2UgKnR0bV9wb29sX2FsbG9jX3BhZ2Uoc3RydWN0 IHR0bV9wb29sICpwb29sLCBnZnBfdCBnZnBfZmxhZ3MsCj4gQEAgLTIyMyw3OSArMjIyLDI2IEBA IHN0YXRpYyB2b2lkIHR0bV9wb29sX3VubWFwKHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwgZG1hX2Fk ZHJfdCBkbWFfYWRkciwKPiAgIAkJICAgICAgIERNQV9CSURJUkVDVElPTkFMKTsKPiAgIH0KPiAg IAo+IC0vKiBHaXZlIHBhZ2VzIGludG8gYSBzcGVjaWZpYyBwb29sX3R5cGUgKi8KPiAtc3RhdGlj IHZvaWQgdHRtX3Bvb2xfdHlwZV9naXZlKHN0cnVjdCB0dG1fcG9vbF90eXBlICpwdCwgc3RydWN0 IHBhZ2UgKnApCj4gLXsKPiAtCXNwaW5fbG9jaygmcHQtPmxvY2spOwo+IC0JbGlzdF9hZGQoJnAt PmxydSwgJnB0LT5wYWdlcyk7Cj4gLQlzcGluX3VubG9jaygmcHQtPmxvY2spOwo+IC0JYXRvbWlj X2xvbmdfYWRkKDEgPDwgcHQtPm9yZGVyLCAmYWxsb2NhdGVkX3BhZ2VzKTsKPiAtfQo+IC0KPiAt LyogVGFrZSBwYWdlcyBmcm9tIGEgc3BlY2lmaWMgcG9vbF90eXBlLCByZXR1cm4gTlVMTCB3aGVu IG5vdGhpbmcgYXZhaWxhYmxlICovCj4gLXN0YXRpYyBzdHJ1Y3QgcGFnZSAqdHRtX3Bvb2xfdHlw ZV90YWtlKHN0cnVjdCB0dG1fcG9vbF90eXBlICpwdCkKPiAtewo+IC0Jc3RydWN0IHBhZ2UgKnA7 Cj4gLQo+IC0Jc3Bpbl9sb2NrKCZwdC0+bG9jayk7Cj4gLQlwID0gbGlzdF9maXJzdF9lbnRyeV9v cl9udWxsKCZwdC0+cGFnZXMsIHR5cGVvZigqcCksIGxydSk7Cj4gLQlpZiAocCkgewo+IC0JCWF0 b21pY19sb25nX3N1YigxIDw8IHB0LT5vcmRlciwgJmFsbG9jYXRlZF9wYWdlcyk7Cj4gLQkJbGlz dF9kZWwoJnAtPmxydSk7Cj4gLQl9Cj4gLQlzcGluX3VubG9jaygmcHQtPmxvY2spOwo+IC0KPiAt CXJldHVybiBwOwo+IC19Cj4gLQo+IC0vKiBJbml0aWFsaXplIGFuZCBhZGQgYSBwb29sIHR5cGUg dG8gdGhlIGdsb2JhbCBzaHJpbmtlciBsaXN0ICovCj4gLXN0YXRpYyB2b2lkIHR0bV9wb29sX3R5 cGVfaW5pdChzdHJ1Y3QgdHRtX3Bvb2xfdHlwZSAqcHQsIHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwK PiAtCQkJICAgICAgIGVudW0gdHRtX2NhY2hpbmcgY2FjaGluZywgdW5zaWduZWQgaW50IG9yZGVy KQo+IC17Cj4gLQlwdC0+cG9vbCA9IHBvb2w7Cj4gLQlwdC0+Y2FjaGluZyA9IGNhY2hpbmc7Cj4g LQlwdC0+b3JkZXIgPSBvcmRlcjsKPiAtCXNwaW5fbG9ja19pbml0KCZwdC0+bG9jayk7Cj4gLQlJ TklUX0xJU1RfSEVBRCgmcHQtPnBhZ2VzKTsKPiAtCj4gLQltdXRleF9sb2NrKCZzaHJpbmtlcl9s b2NrKTsKPiAtCWxpc3RfYWRkX3RhaWwoJnB0LT5zaHJpbmtlcl9saXN0LCAmc2hyaW5rZXJfbGlz dCk7Cj4gLQltdXRleF91bmxvY2soJnNocmlua2VyX2xvY2spOwo+IC19Cj4gLQo+IC0vKiBSZW1v dmUgYSBwb29sX3R5cGUgZnJvbSB0aGUgZ2xvYmFsIHNocmlua2VyIGxpc3QgYW5kIGZyZWUgYWxs IHBhZ2VzICovCj4gLXN0YXRpYyB2b2lkIHR0bV9wb29sX3R5cGVfZmluaShzdHJ1Y3QgdHRtX3Bv b2xfdHlwZSAqcHQpCj4gLXsKPiAtCXN0cnVjdCBwYWdlICpwLCAqdG1wOwo+IC0KPiAtCW11dGV4 X2xvY2soJnNocmlua2VyX2xvY2spOwo+IC0JbGlzdF9kZWwoJnB0LT5zaHJpbmtlcl9saXN0KTsK PiAtCW11dGV4X3VubG9jaygmc2hyaW5rZXJfbG9jayk7Cj4gLQo+IC0JbGlzdF9mb3JfZWFjaF9l bnRyeV9zYWZlKHAsIHRtcCwgJnB0LT5wYWdlcywgbHJ1KQo+IC0JCXR0bV9wb29sX2ZyZWVfcGFn ZShwLCBwdC0+b3JkZXIpOwo+IC19Cj4gLQo+ICAgLyogUmV0dXJuIHRoZSBwb29sX3R5cGUgdG8g dXNlIGZvciB0aGUgZ2l2ZW4gY2FjaGluZyBhbmQgb3JkZXIgKi8KPiAtc3RhdGljIHN0cnVjdCB0 dG1fcG9vbF90eXBlICp0dG1fcG9vbF9zZWxlY3RfdHlwZShzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2ws Cj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX3BhZ2VfcG9vbCAqdHRtX3Bvb2xfc2VsZWN0X3R5cGUoc3Ry dWN0IHR0bV9wb29sICpwb29sLAo+ICAgCQkJCQkJICBlbnVtIHR0bV9jYWNoaW5nIGNhY2hpbmcs Cj4gICAJCQkJCQkgIHVuc2lnbmVkIGludCBvcmRlcikKPiAgIHsKPiAgIAlpZiAocG9vbC0+dXNl X2RtYV9hbGxvYykKPiAtCQlyZXR1cm4gJnBvb2wtPmNhY2hpbmdbY2FjaGluZ10ub3JkZXJzW29y ZGVyXTsKPiArCQlyZXR1cm4gcG9vbC0+Y2FjaGluZ1tjYWNoaW5nXS5vcmRlcnNbb3JkZXJdOwo+ ICAgCj4gICAjaWZkZWYgQ09ORklHX1g4Ngo+ICAgCXN3aXRjaCAoY2FjaGluZykgewo+ICAgCWNh c2UgdHRtX3dyaXRlX2NvbWJpbmVkOgo+ICAgCQlpZiAocG9vbC0+dXNlX2RtYTMyKQo+IC0JCQly ZXR1cm4gJmdsb2JhbF9kbWEzMl93cml0ZV9jb21iaW5lZFtvcmRlcl07Cj4gKwkJCXJldHVybiBn bG9iYWxfZG1hMzJfd3JpdGVfY29tYmluZWRbb3JkZXJdOwo+ICAgCj4gLQkJcmV0dXJuICZnbG9i YWxfd3JpdGVfY29tYmluZWRbb3JkZXJdOwo+ICsJCXJldHVybiBnbG9iYWxfd3JpdGVfY29tYmlu ZWRbb3JkZXJdOwo+ICAgCWNhc2UgdHRtX3VuY2FjaGVkOgo+ICAgCQlpZiAocG9vbC0+dXNlX2Rt YTMyKQo+IC0JCQlyZXR1cm4gJmdsb2JhbF9kbWEzMl91bmNhY2hlZFtvcmRlcl07Cj4gKwkJCXJl dHVybiBnbG9iYWxfZG1hMzJfdW5jYWNoZWRbb3JkZXJdOwo+ICAgCj4gLQkJcmV0dXJuICZnbG9i YWxfdW5jYWNoZWRbb3JkZXJdOwo+ICsJCXJldHVybiBnbG9iYWxfdW5jYWNoZWRbb3JkZXJdOwo+ ICAgCWRlZmF1bHQ6Cj4gICAJCWJyZWFrOwo+ICAgCX0KPiBAQCAtMzA0LDMwICsyNTAsNiBAQCBz dGF0aWMgc3RydWN0IHR0bV9wb29sX3R5cGUgKnR0bV9wb29sX3NlbGVjdF90eXBlKHN0cnVjdCB0 dG1fcG9vbCAqcG9vbCwKPiAgIAlyZXR1cm4gTlVMTDsKPiAgIH0KPiAgIAo+IC0vKiBGcmVlIHBh Z2VzIHVzaW5nIHRoZSBnbG9iYWwgc2hyaW5rZXIgbGlzdCAqLwo+IC1zdGF0aWMgdW5zaWduZWQg aW50IHR0bV9wb29sX3Nocmluayh2b2lkKQo+IC17Cj4gLQlzdHJ1Y3QgdHRtX3Bvb2xfdHlwZSAq cHQ7Cj4gLQl1bnNpZ25lZCBpbnQgbnVtX2ZyZWVkOwo+IC0Jc3RydWN0IHBhZ2UgKnA7Cj4gLQo+ IC0JbXV0ZXhfbG9jaygmc2hyaW5rZXJfbG9jayk7Cj4gLQlwdCA9IGxpc3RfZmlyc3RfZW50cnko JnNocmlua2VyX2xpc3QsIHR5cGVvZigqcHQpLCBzaHJpbmtlcl9saXN0KTsKPiAtCj4gLQlwID0g dHRtX3Bvb2xfdHlwZV90YWtlKHB0KTsKPiAtCWlmIChwKSB7Cj4gLQkJdHRtX3Bvb2xfZnJlZV9w YWdlKHAsIHB0LT5vcmRlcik7Cj4gLQkJbnVtX2ZyZWVkID0gMSA8PCBwdC0+b3JkZXI7Cj4gLQl9 IGVsc2Ugewo+IC0JCW51bV9mcmVlZCA9IDA7Cj4gLQl9Cj4gLQo+IC0JbGlzdF9tb3ZlX3RhaWwo JnB0LT5zaHJpbmtlcl9saXN0LCAmc2hyaW5rZXJfbGlzdCk7Cj4gLQltdXRleF91bmxvY2soJnNo cmlua2VyX2xvY2spOwo+IC0KPiAtCXJldHVybiBudW1fZnJlZWQ7Cj4gLX0KPiAtCj4gICAvKiBS ZXR1cm4gdGhlIGFsbG9jYXRpb24gb3JkZXIgYmFzZWQgZm9yIGEgcGFnZSAqLwo+ICAgc3RhdGlj IHVuc2lnbmVkIGludCB0dG1fcG9vbF9wYWdlX29yZGVyKHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwg c3RydWN0IHBhZ2UgKnApCj4gICB7Cj4gQEAgLTM3NywxMCArMjk5LDEwIEBAIGludCB0dG1fcG9v bF9hbGxvYyhzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2wsIHN0cnVjdCB0dG1fdHQgKnR0LAo+ICAgCWZv ciAob3JkZXIgPSBtaW4oTUFYX09SREVSIC0gMVVMLCBfX2ZscyhudW1fcGFnZXMpKTsgbnVtX3Bh Z2VzOwo+ICAgCSAgICAgb3JkZXIgPSBtaW5fdCh1bnNpZ25lZCBpbnQsIG9yZGVyLCBfX2Zscyhu dW1fcGFnZXMpKSkgewo+ICAgCQlib29sIGFwcGx5X2NhY2hpbmcgPSBmYWxzZTsKPiAtCQlzdHJ1 Y3QgdHRtX3Bvb2xfdHlwZSAqcHQ7Cj4gKwkJc3RydWN0IGRybV9wYWdlX3Bvb2wgKnB0Owo+ICAg Cj4gICAJCXB0ID0gdHRtX3Bvb2xfc2VsZWN0X3R5cGUocG9vbCwgdHQtPmNhY2hpbmcsIG9yZGVy KTsKPiAtCQlwID0gcHQgPyB0dG1fcG9vbF90eXBlX3Rha2UocHQpIDogTlVMTDsKPiArCQlwID0g cHQgPyBkcm1fcGFnZV9wb29sX2ZldGNoKHB0KSA6IE5VTEw7Cj4gICAJCWlmIChwKSB7Cj4gICAJ CQlhcHBseV9jYWNoaW5nID0gdHJ1ZTsKPiAgIAkJfSBlbHNlIHsKPiBAQCAtNDYyLDcgKzM4NCw3 IEBAIHZvaWQgdHRtX3Bvb2xfZnJlZShzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2wsIHN0cnVjdCB0dG1f dHQgKnR0KQo+ICAgCWZvciAoaSA9IDA7IGkgPCB0dC0+bnVtX3BhZ2VzOyApIHsKPiAgIAkJc3Ry dWN0IHBhZ2UgKnAgPSB0dC0+cGFnZXNbaV07Cj4gICAJCXVuc2lnbmVkIGludCBvcmRlciwgbnVt X3BhZ2VzOwo+IC0JCXN0cnVjdCB0dG1fcG9vbF90eXBlICpwdDsKPiArCQlzdHJ1Y3QgZHJtX3Bh Z2VfcG9vbCAqcHQ7Cj4gICAKPiAgIAkJb3JkZXIgPSB0dG1fcG9vbF9wYWdlX29yZGVyKHBvb2ws IHApOwo+ICAgCQludW1fcGFnZXMgPSAxVUxMIDw8IG9yZGVyOwo+IEBAIC00NzMsMTUgKzM5NSwx MiBAQCB2b2lkIHR0bV9wb29sX2ZyZWUoc3RydWN0IHR0bV9wb29sICpwb29sLCBzdHJ1Y3QgdHRt X3R0ICp0dCkKPiAgIAo+ICAgCQlwdCA9IHR0bV9wb29sX3NlbGVjdF90eXBlKHBvb2wsIHR0LT5j YWNoaW5nLCBvcmRlcik7Cj4gICAJCWlmIChwdCkKPiAtCQkJdHRtX3Bvb2xfdHlwZV9naXZlKHB0 LCB0dC0+cGFnZXNbaV0pOwo+ICsJCQlkcm1fcGFnZV9wb29sX2FkZChwdCwgdHQtPnBhZ2VzW2ld KTsKPiAgIAkJZWxzZQo+ICAgCQkJdHRtX3Bvb2xfZnJlZV9wYWdlKHR0LT5wYWdlc1tpXSwgb3Jk ZXIpOwo+ICAgCj4gICAJCWkgKz0gbnVtX3BhZ2VzOwo+ICAgCX0KPiAtCj4gLQl3aGlsZSAoYXRv bWljX2xvbmdfcmVhZCgmYWxsb2NhdGVkX3BhZ2VzKSA+IHBhZ2VfcG9vbF9zaXplKQo+IC0JCXR0 bV9wb29sX3NocmluaygpOwo+ICAgfQo+ICAgRVhQT1JUX1NZTUJPTCh0dG1fcG9vbF9mcmVlKTsK PiAgIAo+IEBAIC01MDgsOCArNDI3LDggQEAgdm9pZCB0dG1fcG9vbF9pbml0KHN0cnVjdCB0dG1f cG9vbCAqcG9vbCwgc3RydWN0IGRldmljZSAqZGV2LAo+ICAgCj4gICAJZm9yIChpID0gMDsgaSA8 IFRUTV9OVU1fQ0FDSElOR19UWVBFUzsgKytpKQo+ICAgCQlmb3IgKGogPSAwOyBqIDwgTUFYX09S REVSOyArK2opCj4gLQkJCXR0bV9wb29sX3R5cGVfaW5pdCgmcG9vbC0+Y2FjaGluZ1tpXS5vcmRl cnNbal0sCj4gLQkJCQkJICAgcG9vbCwgaSwgaik7Cj4gKwkJCXBvb2wtPmNhY2hpbmdbaV0ub3Jk ZXJzW2pdID0gZHJtX3BhZ2VfcG9vbF9jcmVhdGUoaiwKPiArCQkJCQkJCXR0bV9wb29sX2ZyZWVf cGFnZSk7Cj4gICB9Cj4gICAKPiAgIC8qKgo+IEBAIC01MjYsMzMgKzQ0NSwxOCBAQCB2b2lkIHR0 bV9wb29sX2Zpbmkoc3RydWN0IHR0bV9wb29sICpwb29sKQo+ICAgCj4gICAJZm9yIChpID0gMDsg aSA8IFRUTV9OVU1fQ0FDSElOR19UWVBFUzsgKytpKQo+ICAgCQlmb3IgKGogPSAwOyBqIDwgTUFY X09SREVSOyArK2opCj4gLQkJCXR0bV9wb29sX3R5cGVfZmluaSgmcG9vbC0+Y2FjaGluZ1tpXS5v cmRlcnNbal0pOwo+ICsJCQlkcm1fcGFnZV9wb29sX2Rlc3Ryb3kocG9vbC0+Y2FjaGluZ1tpXS5v cmRlcnNbal0pOwo+ICAgfQo+ICAgCj4gICAjaWZkZWYgQ09ORklHX0RFQlVHX0ZTCj4gLS8qIENv dW50IHRoZSBudW1iZXIgb2YgcGFnZXMgYXZhaWxhYmxlIGluIGEgcG9vbF90eXBlICovCj4gLXN0 YXRpYyB1bnNpZ25lZCBpbnQgdHRtX3Bvb2xfdHlwZV9jb3VudChzdHJ1Y3QgdHRtX3Bvb2xfdHlw ZSAqcHQpCj4gLXsKPiAtCXVuc2lnbmVkIGludCBjb3VudCA9IDA7Cj4gLQlzdHJ1Y3QgcGFnZSAq cDsKPiAtCj4gLQlzcGluX2xvY2soJnB0LT5sb2NrKTsKPiAtCS8qIE9ubHkgdXNlZCBmb3IgZGVi dWdmcywgdGhlIG92ZXJoZWFkIGRvZXNuJ3QgbWF0dGVyICovCj4gLQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KHAsICZwdC0+cGFnZXMsIGxydSkKPiAtCQkrK2NvdW50Owo+IC0Jc3Bpbl91bmxvY2soJnB0 LT5sb2NrKTsKPiAtCj4gLQlyZXR1cm4gY291bnQ7Cj4gLX0KPiAtCj4gICAvKiBEdW1wIGluZm9y bWF0aW9uIGFib3V0IHRoZSBkaWZmZXJlbnQgcG9vbCB0eXBlcyAqLwo+IC1zdGF0aWMgdm9pZCB0 dG1fcG9vbF9kZWJ1Z2ZzX29yZGVycyhzdHJ1Y3QgdHRtX3Bvb2xfdHlwZSAqcHQsCj4gK3N0YXRp YyB2b2lkIHR0bV9wb29sX2RlYnVnZnNfb3JkZXJzKHN0cnVjdCBkcm1fcGFnZV9wb29sICoqcHQs Cj4gICAJCQkJICAgIHN0cnVjdCBzZXFfZmlsZSAqbSkKPiAgIHsKPiAgIAl1bnNpZ25lZCBpbnQg aTsKPiAgIAo+ICAgCWZvciAoaSA9IDA7IGkgPCBNQVhfT1JERVI7ICsraSkKPiAtCQlzZXFfcHJp bnRmKG0sICIgJTh1IiwgdHRtX3Bvb2xfdHlwZV9jb3VudCgmcHRbaV0pKTsKPiArCQlzZXFfcHJp bnRmKG0sICIgJTh1IiwgZHJtX3BhZ2VfcG9vbF9nZXRfc2l6ZShwdFtpXSkpOwo+ICAgCXNlcV9w dXRzKG0sICJcbiIpOwo+ICAgfQo+ICAgCj4gQEAgLTYwMiw3ICs1MDYsMTAgQEAgaW50IHR0bV9w b29sX2RlYnVnZnMoc3RydWN0IHR0bV9wb29sICpwb29sLCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4g ICAJfQo+ICAgCj4gICAJc2VxX3ByaW50ZihtLCAiXG50b3RhbFx0OiAlOGx1IG9mICU4bHVcbiIs Cj4gLQkJICAgYXRvbWljX2xvbmdfcmVhZCgmYWxsb2NhdGVkX3BhZ2VzKSwgcGFnZV9wb29sX3Np emUpOwo+ICsJCSAgIGF0b21pY19sb25nX3JlYWQoJmFsbG9jYXRlZF9wYWdlcyksCj4gKwkJICAg ZHJtX3BhZ2VfcG9vbF9nZXRfbWF4KCkpOwo+ICsJc2VxX3ByaW50ZihtLCAiKCU4bHUgaW4gbm9u LXR0bSBwb29scylcbiIsIGRybV9wYWdlX3Bvb2xfZ2V0X3RvdGFsKCkgLQo+ICsJCQkJCWF0b21p Y19sb25nX3JlYWQoJmFsbG9jYXRlZF9wYWdlcykpOwo+ICAgCj4gICAJbXV0ZXhfdW5sb2NrKCZz aHJpbmtlcl9sb2NrKTsKPiAgIAo+IEBAIC02MTIsMjggKzUxOSw2IEBAIEVYUE9SVF9TWU1CT0wo dHRtX3Bvb2xfZGVidWdmcyk7Cj4gICAKPiAgICNlbmRpZgo+ICAgCj4gLS8qIEFzIGxvbmcgYXMg cGFnZXMgYXJlIGF2YWlsYWJsZSBtYWtlIHN1cmUgdG8gcmVsZWFzZSBhdCBsZWFzdCBvbmUgKi8K PiAtc3RhdGljIHVuc2lnbmVkIGxvbmcgdHRtX3Bvb2xfc2hyaW5rZXJfc2NhbihzdHJ1Y3Qgc2hy aW5rZXIgKnNocmluaywKPiAtCQkJCQkgICAgc3RydWN0IHNocmlua19jb250cm9sICpzYykKPiAt ewo+IC0JdW5zaWduZWQgbG9uZyBudW1fZnJlZWQgPSAwOwo+IC0KPiAtCWRvCj4gLQkJbnVtX2Zy ZWVkICs9IHR0bV9wb29sX3NocmluaygpOwo+IC0Jd2hpbGUgKCFudW1fZnJlZWQgJiYgYXRvbWlj X2xvbmdfcmVhZCgmYWxsb2NhdGVkX3BhZ2VzKSk7Cj4gLQo+IC0JcmV0dXJuIG51bV9mcmVlZDsK PiAtfQo+IC0KPiAtLyogUmV0dXJuIHRoZSBudW1iZXIgb2YgcGFnZXMgYXZhaWxhYmxlIG9yIFNI UklOS19FTVBUWSBpZiB3ZSBoYXZlIG5vbmUgKi8KPiAtc3RhdGljIHVuc2lnbmVkIGxvbmcgdHRt X3Bvb2xfc2hyaW5rZXJfY291bnQoc3RydWN0IHNocmlua2VyICpzaHJpbmssCj4gLQkJCQkJICAg ICBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKnNjKQo+IC17Cj4gLQl1bnNpZ25lZCBsb25nIG51bV9w YWdlcyA9IGF0b21pY19sb25nX3JlYWQoJmFsbG9jYXRlZF9wYWdlcyk7Cj4gLQo+IC0JcmV0dXJu IG51bV9wYWdlcyA/IG51bV9wYWdlcyA6IFNIUklOS19FTVBUWTsKPiAtfQo+IC0KPiAgIC8qKgo+ ICAgICogdHRtX3Bvb2xfbWdyX2luaXQgLSBJbml0aWFsaXplIGdsb2JhbHMKPiAgICAqCj4gQEAg LTY0OCwyNCArNTMzLDIxIEBAIGludCB0dG1fcG9vbF9tZ3JfaW5pdCh1bnNpZ25lZCBsb25nIG51 bV9wYWdlcykKPiAgIAlpZiAoIXBhZ2VfcG9vbF9zaXplKQo+ICAgCQlwYWdlX3Bvb2xfc2l6ZSA9 IG51bV9wYWdlczsKPiAgIAo+ICsJZHJtX3BhZ2VfcG9vbF9zZXRfbWF4KHBhZ2VfcG9vbF9zaXpl KTsKPiArCj4gICAJbXV0ZXhfaW5pdCgmc2hyaW5rZXJfbG9jayk7Cj4gLQlJTklUX0xJU1RfSEVB RCgmc2hyaW5rZXJfbGlzdCk7Cj4gICAKPiAgIAlmb3IgKGkgPSAwOyBpIDwgTUFYX09SREVSOyAr K2kpIHsKPiAtCQl0dG1fcG9vbF90eXBlX2luaXQoJmdsb2JhbF93cml0ZV9jb21iaW5lZFtpXSwg TlVMTCwKPiAtCQkJCSAgIHR0bV93cml0ZV9jb21iaW5lZCwgaSk7Cj4gLQkJdHRtX3Bvb2xfdHlw ZV9pbml0KCZnbG9iYWxfdW5jYWNoZWRbaV0sIE5VTEwsIHR0bV91bmNhY2hlZCwgaSk7Cj4gLQo+ IC0JCXR0bV9wb29sX3R5cGVfaW5pdCgmZ2xvYmFsX2RtYTMyX3dyaXRlX2NvbWJpbmVkW2ldLCBO VUxMLAo+IC0JCQkJICAgdHRtX3dyaXRlX2NvbWJpbmVkLCBpKTsKPiAtCQl0dG1fcG9vbF90eXBl X2luaXQoJmdsb2JhbF9kbWEzMl91bmNhY2hlZFtpXSwgTlVMTCwKPiAtCQkJCSAgIHR0bV91bmNh Y2hlZCwgaSk7Cj4gKwkJZ2xvYmFsX3dyaXRlX2NvbWJpbmVkW2ldID0gZHJtX3BhZ2VfcG9vbF9j cmVhdGUoaSwKPiArCQkJCQkJCXR0bV9wb29sX2ZyZWVfcGFnZSk7Cj4gKwkJZ2xvYmFsX3VuY2Fj aGVkW2ldID0gZHJtX3BhZ2VfcG9vbF9jcmVhdGUoaSwKPiArCQkJCQkJCXR0bV9wb29sX2ZyZWVf cGFnZSk7Cj4gKwkJZ2xvYmFsX2RtYTMyX3dyaXRlX2NvbWJpbmVkW2ldID0gZHJtX3BhZ2VfcG9v bF9jcmVhdGUoaSwKPiArCQkJCQkJCXR0bV9wb29sX2ZyZWVfcGFnZSk7Cj4gKwkJZ2xvYmFsX2Rt YTMyX3VuY2FjaGVkW2ldID0gZHJtX3BhZ2VfcG9vbF9jcmVhdGUoaSwKPiArCQkJCQkJCXR0bV9w b29sX2ZyZWVfcGFnZSk7Cj4gICAJfQo+IC0KPiAtCW1tX3Nocmlua2VyLmNvdW50X29iamVjdHMg PSB0dG1fcG9vbF9zaHJpbmtlcl9jb3VudDsKPiAtCW1tX3Nocmlua2VyLnNjYW5fb2JqZWN0cyA9 IHR0bV9wb29sX3Nocmlua2VyX3NjYW47Cj4gLQltbV9zaHJpbmtlci5zZWVrcyA9IDE7Cj4gLQly ZXR1cm4gcmVnaXN0ZXJfc2hyaW5rZXIoJm1tX3Nocmlua2VyKTsKPiArCXJldHVybiAwOwo+ICAg fQo+ICAgCj4gICAvKioKPiBAQCAtNjc4LDEzICs1NjAsMTAgQEAgdm9pZCB0dG1fcG9vbF9tZ3Jf ZmluaSh2b2lkKQo+ICAgCXVuc2lnbmVkIGludCBpOwo+ICAgCj4gICAJZm9yIChpID0gMDsgaSA8 IE1BWF9PUkRFUjsgKytpKSB7Cj4gLQkJdHRtX3Bvb2xfdHlwZV9maW5pKCZnbG9iYWxfd3JpdGVf Y29tYmluZWRbaV0pOwo+IC0JCXR0bV9wb29sX3R5cGVfZmluaSgmZ2xvYmFsX3VuY2FjaGVkW2ld KTsKPiArCQlkcm1fcGFnZV9wb29sX2Rlc3Ryb3koZ2xvYmFsX3dyaXRlX2NvbWJpbmVkW2ldKTsK PiArCQlkcm1fcGFnZV9wb29sX2Rlc3Ryb3koZ2xvYmFsX3VuY2FjaGVkW2ldKTsKPiAgIAo+IC0J CXR0bV9wb29sX3R5cGVfZmluaSgmZ2xvYmFsX2RtYTMyX3dyaXRlX2NvbWJpbmVkW2ldKTsKPiAt CQl0dG1fcG9vbF90eXBlX2ZpbmkoJmdsb2JhbF9kbWEzMl91bmNhY2hlZFtpXSk7Cj4gKwkJZHJt X3BhZ2VfcG9vbF9kZXN0cm95KGdsb2JhbF9kbWEzMl93cml0ZV9jb21iaW5lZFtpXSk7Cj4gKwkJ ZHJtX3BhZ2VfcG9vbF9kZXN0cm95KGdsb2JhbF9kbWEzMl91bmNhY2hlZFtpXSk7Cj4gICAJfQo+ IC0KPiAtCXVucmVnaXN0ZXJfc2hyaW5rZXIoJm1tX3Nocmlua2VyKTsKPiAtCVdBUk5fT04oIWxp c3RfZW1wdHkoJnNocmlua2VyX2xpc3QpKTsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vdHRtL3R0bV9wb29sLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX3Bvb2wuaAo+IGluZGV4IDQz MjE3MjhiZGQxMS4uNDYwYWIyMzJmZDIyIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90 dG1fcG9vbC5oCj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9wb29sLmgKPiBAQCAtMzYsMjcg KzM2LDYgQEAgc3RydWN0IHR0bV90dDsKPiAgIHN0cnVjdCB0dG1fcG9vbDsKPiAgIHN0cnVjdCB0 dG1fb3BlcmF0aW9uX2N0eDsKPiAgIAo+IC0vKioKPiAtICogdHRtX3Bvb2xfdHlwZSAtIFBvb2wg Zm9yIGEgY2VydGFpbiBtZW1vcnkgdHlwZQo+IC0gKgo+IC0gKiBAcG9vbDogdGhlIHBvb2wgd2Ug YmVsb25nIHRvLCBtaWdodCBiZSBOVUxMIGZvciB0aGUgZ2xvYmFsIG9uZXMKPiAtICogQG9yZGVy OiB0aGUgYWxsb2NhdGlvbiBvcmRlciBvdXIgcGFnZXMgaGF2ZQo+IC0gKiBAY2FjaGluZzogdGhl IGNhY2hpbmcgdHlwZSBvdXIgcGFnZXMgaGF2ZQo+IC0gKiBAc2hyaW5rZXJfbGlzdDogb3VyIHBs YWNlIG9uIHRoZSBnbG9iYWwgc2hyaW5rZXIgbGlzdAo+IC0gKiBAbG9jazogcHJvdGVjdGlvbiBv ZiB0aGUgcGFnZSBsaXN0Cj4gLSAqIEBwYWdlczogdGhlIGxpc3Qgb2YgcGFnZXMgaW4gdGhlIHBv b2wKPiAtICovCj4gLXN0cnVjdCB0dG1fcG9vbF90eXBlIHsKPiAtCXN0cnVjdCB0dG1fcG9vbCAq cG9vbDsKPiAtCXVuc2lnbmVkIGludCBvcmRlcjsKPiAtCWVudW0gdHRtX2NhY2hpbmcgY2FjaGlu ZzsKPiAtCj4gLQlzdHJ1Y3QgbGlzdF9oZWFkIHNocmlua2VyX2xpc3Q7Cj4gLQo+IC0Jc3Bpbmxv Y2tfdCBsb2NrOwo+IC0Jc3RydWN0IGxpc3RfaGVhZCBwYWdlczsKPiAtfTsKPiAtCj4gICAvKioK PiAgICAqIHR0bV9wb29sIC0gUG9vbCBmb3IgYWxsIGNhY2hpbmcgYW5kIG9yZGVycwo+ICAgICoK PiBAQCAtNzEsNyArNTAsNyBAQCBzdHJ1Y3QgdHRtX3Bvb2wgewo+ICAgCWJvb2wgdXNlX2RtYTMy Owo+ICAgCj4gICAJc3RydWN0IHsKPiAtCQlzdHJ1Y3QgdHRtX3Bvb2xfdHlwZSBvcmRlcnNbTUFY X09SREVSXTsKPiArCQlzdHJ1Y3QgZHJtX3BhZ2VfcG9vbCAqb3JkZXJzW01BWF9PUkRFUl07Cj4g ICAJfSBjYWNoaW5nW1RUTV9OVU1fQ0FDSElOR19UWVBFU107Cj4gICB9Owo+ICAgCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK