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=-11.1 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 9ACBBC4363A for ; Mon, 5 Oct 2020 10:54:51 +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 33C3E2075A for ; Mon, 5 Oct 2020 10:54:51 +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="esH0OI36" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 33C3E2075A 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 8D67089D40; Mon, 5 Oct 2020 10:54:50 +0000 (UTC) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2080.outbound.protection.outlook.com [40.107.93.80]) by gabe.freedesktop.org (Postfix) with ESMTPS id AADE389A32 for ; Mon, 5 Oct 2020 10:54:49 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lKyRefIPofLhY3WS7brG82bgPQGukj89wiomSI7xPzzerCN+Yq1Cb8PPn0L1hVaD9DWiJV7kKf0MwSGBlHV6T18G4UKz7Cq0FHGS/MW7dbulpwOtYVzLqP9YkpiVRwJ7tbPHey8B2OVKP4dGroRTBC4BSS8ypEgnr1FNwOW9AcOHikjwrAx4PH59jsvUTNjYKbH8UELAnfnT7LW7zOrtVona/3HLRGlSymxSkaod5HfEa1//7G2LdrqiHatm/BO9iHoKnwE/7QFvznP7ukAPMZchIArtf7Dgn0h74eUxsw1V+4Ptdi4JSdaXTl6KihDeNk6NdUoUVpwhd98bVmCObQ== 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=S0CA3XAOCkHJCHRcirCilvr6SxriLNSP1jJUaSGoGig=; b=NFpLvE4DlmaYvoU6uWrNbyqNEXsLvMt/NfFlauWWR6beROa84fYwTupkUk9YDrvwMuYggZd1XrNxsxW/ikNqPpdwEsLx4xsaa8znifivqt6X4wLbMgzbIMohz1x8rdEgcDsEONUxue+AiDK6+MHXlzr4HAmIxoDX/BYJeXrUF/OacHM7OP7+WS8rZ4roYOt/Lrda+/wFyyOWmpb+3PAERkAa0TnugSqgwcm0SnZgKCO8NQ8d0cDrTWpJugqRI2XSayYBLehjoy9+k7e3S9P05n74b9bR4RWSsrTqht/LWn3JnunikpnpY4YIf65xBN3wRpViBFV9PIleTLcjpCnj5w== 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=S0CA3XAOCkHJCHRcirCilvr6SxriLNSP1jJUaSGoGig=; b=esH0OI36AEXuR7K5q+D4HaRw6QoTzzxGh83M/hK3QncsFknl8BJnZCfLfYQDEF/8ZqMnNu8eG9Gp9e2gwT+AhRnI+THoLSzYy9xypjbFWkr8EcamiThC7JjjCR7AaI8Ufc6FCk5mRIj+MuSVoSOhUhxX9nbEkC12YniWnZlgguc= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by MN2PR12MB4334.namprd12.prod.outlook.com (2603:10b6:208:1d1::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.34; Mon, 5 Oct 2020 10:54:47 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::f8f7:7403:1c92:3a60]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::f8f7:7403:1c92:3a60%6]) with mapi id 15.20.3433.044; Mon, 5 Oct 2020 10:54:47 +0000 Subject: Re: [RFC PATCH v3 1/4] RDMA/umem: Support importing dma-buf as user memory region To: Jianxin Xiong , linux-rdma@vger.kernel.org, dri-devel@lists.freedesktop.org References: <1601838751-148544-1-git-send-email-jianxin.xiong@intel.com> <1601838751-148544-2-git-send-email-jianxin.xiong@intel.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Mon, 5 Oct 2020 12:54:40 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <1601838751-148544-2-git-send-email-jianxin.xiong@intel.com> Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] X-ClientProxiedBy: AM0PR10CA0033.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::13) 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 AM0PR10CA0033.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.37 via Frontend Transport; Mon, 5 Oct 2020 10:54:45 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: f9c32f1d-1328-4c6a-2c41-08d8691d130f X-MS-TrafficTypeDiagnostic: MN2PR12MB4334: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1013; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4JqAOtp2b2kQM1NwlBLQyNckD0bVi0i83dFqT3sk0N6urf96PgMP+USI59KwXt1hucFD0ACG5Z6zYPhpnfiB/FGicjdCDb7Nb2nyFmgjAoOuKZCow/0jTZpNRtWcXLAL7wt9nVvFz8TIhZ7wy2moV0UYO21/ISXAyMm6O5aL/KTUPttuONjIFyvBC/rLHVdNBDkn17gf1UPRfqmjBHiCxY6rbpQovQVVuA5Pap0cArM/g8ES651GnocvsZ5nDbTpRfv0wBAXNb574MMuxbWIvHn9GUSMNpfTK8wGzPG77V4E59RnsK8nvDs0H4vaMwlVtFXYPquf5Qd1zcOP1dpQx0jDQzPUy0pDEDEHo8lazIEoEyGwwc4z7OFBiWZiFw02 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)(136003)(396003)(39860400002)(346002)(366004)(376002)(36756003)(31686004)(2906002)(8676002)(8936002)(478600001)(4326008)(66556008)(66946007)(6666004)(2616005)(54906003)(66574015)(31696002)(83380400001)(86362001)(66476007)(316002)(6486002)(16526019)(30864003)(5660300002)(52116002)(186003)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: BmHgl9KoIn1P7FKKLxR2UQUiMoDE5qOGBTjFiVmuBV3L4Oot3kC/k+27Hy9CrCRkOn/ra9DRjC9d+kmt+m2jo9eVsSSPONo5fVIlklOFZBQWeV+Y39WlV4EGyAlmgucE6XF92m1IcNIPw7YilDOW9GSHutXnrWLMXu46xdmZ4mPXpZppbzyMGcj9PhxmBIobj/5RCW63NKbbpZoLHy3ggHwzfVQtd9vBQe0q/JRQBjRKzlo2JoiHVlbvLU57YFmYPIy/Lrc/3/QPZCPI2fdzFVWbZw+ConEkV3nkUfqgbkoEI+om/Ca23avYRyEnAejwQhmC72QLrgZoDdjG3UWVWvx+SSBvZz70wIJWyGdS2lLtqo4EVdrAlXHFKTR8z9zMbTEcsUb0zXIcQo2G356j1BHc6gnFn1SXGVRlDdoqxL7YfeBPwDWggD2XRtUQATEZ68WEeBHPh+AEuijB8VUHaaHW/AgQjDGnXY25FZwzS608Zta/x0laX+aIyv64K38r9ARNUUxh3C0/ODKa6iWZ6v5VtV4pWyFOnupAt7vYo0CEPnsBImmpGeBqVBLNL8l3LDAhpSpy3ZsGtjK+fc2mOEhkA6pStYwU2B0nrPY46+8c5AZI5u1D3hGa6XJnxgESqj8jiz8G/ZT4Y1edPw24noUJUdPWMiSPeyQuRGWgOHTLmdDlkSWSGlMzewNh63sNAtjj9DQ72CyyHDtOIOnhnA== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: f9c32f1d-1328-4c6a-2c41-08d8691d130f X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Oct 2020 10:54:46.9883 (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: vshLQVcojMK+Zqg8Fn5OEG1rgDvAbP2tqMKU7IElHNoU6TxW2r2NGnb6TEbk+ONU X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4334 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: Jason Gunthorpe , Doug Ledford , Leon Romanovsky , Daniel Vetter Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgSmlhbnhpbiwKCkFtIDA0LjEwLjIwIHVtIDIxOjEyIHNjaHJpZWIgSmlhbnhpbiBYaW9uZzoK PiBEbWEtYnVmIGlzIGEgc3RhbmRhcmQgY3Jvc3MtZHJpdmVyIGJ1ZmZlciBzaGFyaW5nIG1lY2hh bmlzbSB0aGF0IGNhbiBiZQo+IHVzZWQgdG8gc3VwcG9ydCBwZWVyLXRvLXBlZXIgYWNjZXNzIGZy b20gUkRNQSBkZXZpY2VzLgo+Cj4gRGV2aWNlIG1lbW9yeSBleHBvcnRlZCB2aWEgZG1hLWJ1ZiBp cyBhc3NvY2lhdGVkIHdpdGggYSBmaWxlIGRlc2NyaXB0b3IuCj4gVGhpcyBpcyBwYXNzZWQgdG8g dGhlIHVzZXIgc3BhY2UgYXMgYSBwcm9wZXJ0eSBhc3NvY2lhdGVkIHdpdGggdGhlCj4gYnVmZmVy IGFsbG9jYXRpb24uIFdoZW4gdGhlIGJ1ZmZlciBpcyByZWdpc3RlcmVkIGFzIGEgbWVtb3J5IHJl Z2lvbiwKPiB0aGUgZmlsZSBkZXNjcmlwdG9yIGlzIHBhc3NlZCB0byB0aGUgUkRNQSBkcml2ZXIg YWxvbmcgd2l0aCBvdGhlcgo+IHBhcmFtZXRlcnMuCj4KPiBJbXBsZW1lbnQgdGhlIGNvbW1vbiBj b2RlIGZvciBpbXBvcnRpbmcgZG1hLWJ1ZiBvYmplY3QgYW5kIG1hcHBpbmcKPiBkbWEtYnVmIHBh Z2VzLgo+Cj4gU2lnbmVkLW9mZi1ieTogSmlhbnhpbiBYaW9uZyA8amlhbnhpbi54aW9uZ0BpbnRl bC5jb20+Cj4gUmV2aWV3ZWQtYnk6IFNlYW4gSGVmdHkgPHNlYW4uaGVmdHlAaW50ZWwuY29tPgo+ IEFja2VkLWJ5OiBNaWNoYWVsIEouIFJ1aGwgPG1pY2hhZWwuai5ydWhsQGludGVsLmNvbT4KCndl bGwgZmlyc3Qgb2YgYWxsIHJlYWxseSBuaWNlIHdvcmsgeW91IGhhdmUgZG9uZSBoZXJlLgoKU2lu Y2UgSSdtIG5vdCBhbiBleHBlcnQgb24gUkRNQSBvciBpdHMgZHJpdmVycyBJIGNhbid0IHJlYWxs eSByZXZpZXcgYW55IApvZiB0aGF0IHBhcnQuCgpCdXQgYXQgbGVhc3QgZnJvbSB0aGUgRE1BLWJ1 ZiBzaWRlIGl0IGxvb2tzIGxpa2UgeW91IGFyZSB1c2luZyB0aGUgCmludGVyZmFjZSBjb3JyZWN0 bHkgYXMgaW50ZW5kZWQuCgpTbyBmZWVsIGZyZWUgdG8gYWRkIGFuIEFja2VkLWJ5OiBDaHJpc3Rp YW4gS8O2bmlnIAo8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPiBpZiBpdCBoZWxwcy4KClRoYW5r cywKQ2hyaXN0aWFuLgoKPiAtLS0KPiAgIGRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL01ha2VmaWxl ICAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYyAgICAgICAg fCAgIDQgKwo+ICAgZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbV9kbWFidWYuYyB8IDI5MSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBkcml2ZXJzL2luZmluaWJhbmQv Y29yZS91bWVtX2RtYWJ1Zi5oIHwgIDE0ICsrCj4gICBkcml2ZXJzL2luZmluaWJhbmQvY29yZS91 bWVtX29kcC5jICAgIHwgIDEyICsrCj4gICBpbmNsdWRlL3JkbWEvaWJfdW1lbS5oICAgICAgICAg ICAgICAgIHwgIDE5ICsrLQo+ICAgNiBmaWxlcyBjaGFuZ2VkLCAzNDAgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2luZmluaWJhbmQv Y29yZS91bWVtX2RtYWJ1Zi5jCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9pbmZpbmli YW5kL2NvcmUvdW1lbV9kbWFidWYuaAo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFu ZC9jb3JlL01ha2VmaWxlIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvTWFrZWZpbGUKPiBpbmRl eCAyNGNiNzFhLi5iOGQ1MWE3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3Jl L01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvTWFrZWZpbGUKPiBAQCAt NDAsNSArNDAsNSBAQCBpYl91dmVyYnMteSA6PQkJCXV2ZXJic19tYWluLm8gdXZlcmJzX2NtZC5v IHV2ZXJic19tYXJzaGFsbC5vIFwKPiAgIAkJCQl1dmVyYnNfc3RkX3R5cGVzX3NycS5vIFwKPiAg IAkJCQl1dmVyYnNfc3RkX3R5cGVzX3dxLm8gXAo+ICAgCQkJCXV2ZXJic19zdGRfdHlwZXNfcXAu bwo+IC1pYl91dmVyYnMtJChDT05GSUdfSU5GSU5JQkFORF9VU0VSX01FTSkgKz0gdW1lbS5vCj4g K2liX3V2ZXJicy0kKENPTkZJR19JTkZJTklCQU5EX1VTRVJfTUVNKSArPSB1bWVtLm8gdW1lbV9k bWFidWYubwo+ICAgaWJfdXZlcmJzLSQoQ09ORklHX0lORklOSUJBTkRfT05fREVNQU5EX1BBR0lO RykgKz0gdW1lbV9vZHAubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91 bWVtLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMKPiBpbmRleCA4MzFiZmY4Li41 OWVjMzZjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYwo+ICsr KyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYwo+IEBAIC0yLDYgKzIsNyBAQAo+ICAg ICogQ29weXJpZ2h0IChjKSAyMDA1IFRvcHNwaW4gQ29tbXVuaWNhdGlvbnMuICBBbGwgcmlnaHRz IHJlc2VydmVkLgo+ICAgICogQ29weXJpZ2h0IChjKSAyMDA1IENpc2NvIFN5c3RlbXMuICBBbGwg cmlnaHRzIHJlc2VydmVkLgo+ICAgICogQ29weXJpZ2h0IChjKSAyMDA1IE1lbGxhbm94IFRlY2hu b2xvZ2llcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KPiArICogQ29weXJpZ2h0IChjKSAyMDIwIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgo+ICAgICoKPiAgICAqIFRoaXMg c29mdHdhcmUgaXMgYXZhaWxhYmxlIHRvIHlvdSB1bmRlciBhIGNob2ljZSBvZiBvbmUgb2YgdHdv Cj4gICAgKiBsaWNlbnNlcy4gIFlvdSBtYXkgY2hvb3NlIHRvIGJlIGxpY2Vuc2VkIHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VCj4gQEAgLTQyLDYgKzQzLDcgQEAKPiAgICNpbmNsdWRlIDxyZG1h L2liX3VtZW1fb2RwLmg+Cj4gICAKPiAgICNpbmNsdWRlICJ1dmVyYnMuaCIKPiArI2luY2x1ZGUg InVtZW1fZG1hYnVmLmgiCj4gICAKPiAgIHN0YXRpYyB2b2lkIF9faWJfdW1lbV9yZWxlYXNlKHN0 cnVjdCBpYl9kZXZpY2UgKmRldiwgc3RydWN0IGliX3VtZW0gKnVtZW0sIGludCBkaXJ0eSkKPiAg IHsKPiBAQCAtMzE4LDYgKzMyMCw4IEBAIHZvaWQgaWJfdW1lbV9yZWxlYXNlKHN0cnVjdCBpYl91 bWVtICp1bWVtKQo+ICAgewo+ICAgCWlmICghdW1lbSkKPiAgIAkJcmV0dXJuOwo+ICsJaWYgKHVt ZW0tPmlzX2RtYWJ1ZikKPiArCQlyZXR1cm4gaWJfdW1lbV9kbWFidWZfcmVsZWFzZSh1bWVtKTsK PiAgIAlpZiAodW1lbS0+aXNfb2RwKQo+ICAgCQlyZXR1cm4gaWJfdW1lbV9vZHBfcmVsZWFzZSh0 b19pYl91bWVtX29kcCh1bWVtKSk7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmli YW5kL2NvcmUvdW1lbV9kbWFidWYuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fZG1h YnVmLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjEwZWQ2NDYKPiAt LS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbV9kbWFidWYu Ywo+IEBAIC0wLDAgKzEsMjkxIEBACj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiAoR1BM LTIuMCBPUiBCU0QtMy1DbGF1c2UpCj4gKy8qCj4gKyAqIENvcHlyaWdodCAoYykgMjAyMCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KPiArICovCj4gKwo+ICsjaW5jbHVk ZSA8bGludXgvZG1hLWJ1Zi5oPgo+ICsjaW5jbHVkZSA8bGludXgvZG1hLXJlc3YuaD4KPiArI2lu Y2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Cj4gKyNpbmNsdWRlIDxyZG1hL2liX3VtZW1fb2Rw Lmg+Cj4gKwo+ICsjaW5jbHVkZSAidXZlcmJzLmgiCj4gKwo+ICtzdHJ1Y3QgaWJfdW1lbV9kbWFi dWYgewo+ICsJc3RydWN0IGliX3VtZW1fb2RwIHVtZW1fb2RwOwo+ICsJc3RydWN0IGRtYV9idWZf YXR0YWNobWVudCAqYXR0YWNoOwo+ICsJc3RydWN0IHNnX3RhYmxlICpzZ3Q7Cj4gKwlhdG9taWNf dCBub3RpZmllcl9zZXE7Cj4gK307Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBpYl91bWVt X2RtYWJ1ZiAqdG9faWJfdW1lbV9kbWFidWYoc3RydWN0IGliX3VtZW0gKnVtZW0pCj4gK3sKPiAr CXN0cnVjdCBpYl91bWVtX29kcCAqdW1lbV9vZHAgPSB0b19pYl91bWVtX29kcCh1bWVtKTsKPiAr CXJldHVybiBjb250YWluZXJfb2YodW1lbV9vZHAsIHN0cnVjdCBpYl91bWVtX2RtYWJ1ZiwgdW1l bV9vZHApOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpYl91bWVtX2RtYWJ1Zl9pbnZhbGlkYXRl X2NiKHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKmF0dGFjaCkKPiArewo+ICsJc3RydWN0IGli X3VtZW1fZG1hYnVmICp1bWVtX2RtYWJ1ZiA9IGF0dGFjaC0+aW1wb3J0ZXJfcHJpdjsKPiArCXN0 cnVjdCBpYl91bWVtX29kcCAqdW1lbV9vZHAgPSAmdW1lbV9kbWFidWYtPnVtZW1fb2RwOwo+ICsJ c3RydWN0IG1tdV9ub3RpZmllcl9yYW5nZSByYW5nZSA9IHt9Owo+ICsJdW5zaWduZWQgbG9uZyBj dXJyZW50X3NlcTsKPiArCj4gKwkvKiBubyBjb25jdXJyZW50IGludmFsaWRhdGlvbiBkdWUgdG8g dGhlIGRtYV9yZXN2IGxvY2sgKi8KPiArCj4gKwlkbWFfcmVzdl9hc3NlcnRfaGVsZCh1bWVtX2Rt YWJ1Zi0+YXR0YWNoLT5kbWFidWYtPnJlc3YpOwo+ICsKPiArCWlmICghdW1lbV9kbWFidWYtPnNn dCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJcmFuZ2Uuc3RhcnQgPSBpYl91bWVtX3N0YXJ0KHVtZW1f b2RwKTsKPiArCXJhbmdlLmVuZCA9IGliX3VtZW1fZW5kKHVtZW1fb2RwKTsKPiArCXJhbmdlLmZs YWdzID0gTU1VX05PVElGSUVSX1JBTkdFX0JMT0NLQUJMRTsKPiArCWN1cnJlbnRfc2VxID0gYXRv bWljX3JlYWQoJnVtZW1fZG1hYnVmLT5ub3RpZmllcl9zZXEpOwo+ICsJdW1lbV9vZHAtPm5vdGlm aWVyLm9wcy0+aW52YWxpZGF0ZSgmdW1lbV9vZHAtPm5vdGlmaWVyLCAmcmFuZ2UsCj4gKwkJCQkJ ICAgY3VycmVudF9zZXEpOwo+ICsKPiArCWF0b21pY19pbmMoJnVtZW1fZG1hYnVmLT5ub3RpZmll cl9zZXEpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgc3RydWN0IGRtYV9idWZfYXR0YWNoX29wcyBpYl91 bWVtX2RtYWJ1Zl9hdHRhY2hfb3BzID0gewo+ICsJLmFsbG93X3BlZXIycGVlciA9IDEsCj4gKwku bW92ZV9ub3RpZnkgPSBpYl91bWVtX2RtYWJ1Zl9pbnZhbGlkYXRlX2NiLAo+ICt9Owo+ICsKPiAr c3RhdGljIGlubGluZSBpbnQgaWJfdW1lbV9kbWFidWZfaW5pdF9vZHAoc3RydWN0IGliX3VtZW1f b2RwICp1bWVtX29kcCkKPiArewo+ICsJc2l6ZV90IHBhZ2Vfc2l6ZSA9IDFVTCA8PCB1bWVtX29k cC0+cGFnZV9zaGlmdDsKPiArCXVuc2lnbmVkIGxvbmcgc3RhcnQ7Cj4gKwl1bnNpZ25lZCBsb25n IGVuZDsKPiArCXNpemVfdCBwYWdlczsKPiArCj4gKwl1bWVtX29kcC0+dW1lbS5pc19vZHAgPSAx Owo+ICsJbXV0ZXhfaW5pdCgmdW1lbV9vZHAtPnVtZW1fbXV0ZXgpOwo+ICsKPiArCXN0YXJ0ID0g QUxJR05fRE9XTih1bWVtX29kcC0+dW1lbS5hZGRyZXNzLCBwYWdlX3NpemUpOwo+ICsJaWYgKGNo ZWNrX2FkZF9vdmVyZmxvdyh1bWVtX29kcC0+dW1lbS5hZGRyZXNzLAo+ICsJCQkgICAgICAgKHVu c2lnbmVkIGxvbmcpdW1lbV9vZHAtPnVtZW0ubGVuZ3RoLAo+ICsJCQkgICAgICAgJmVuZCkpCj4g KwkJcmV0dXJuIC1FT1ZFUkZMT1c7Cj4gKwllbmQgPSBBTElHTihlbmQsIHBhZ2Vfc2l6ZSk7Cj4g KwlpZiAodW5saWtlbHkoZW5kIDwgcGFnZV9zaXplKSkKPiArCQlyZXR1cm4gLUVPVkVSRkxPVzsK PiArCj4gKwlwYWdlcyA9IChlbmQgLSBzdGFydCkgPj4gdW1lbV9vZHAtPnBhZ2Vfc2hpZnQ7Cj4g KwlpZiAoIXBhZ2VzKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCS8qIHVzZWQgZm9yIGli X3VtZW1fc3RhcnQoKSAmIGliX3VtZW1fZW5kKCkgKi8KPiArCXVtZW1fb2RwLT5ub3RpZmllci5p bnRlcnZhbF90cmVlLnN0YXJ0ID0gc3RhcnQ7Cj4gKwl1bWVtX29kcC0+bm90aWZpZXIuaW50ZXJ2 YWxfdHJlZS5sYXN0ID0gZW5kIC0gMTsKPiArCj4gKwkvKiB1bWVtX29kcC0+cGFnZV9saXN0IGlz IG5ldmVyIHVzZWQgZm9yIGRtYS1idWYgKi8KPiArCj4gKwl1bWVtX29kcC0+ZG1hX2xpc3QgPSBr dmNhbGxvYygKPiArCQlwYWdlcywgc2l6ZW9mKCp1bWVtX29kcC0+ZG1hX2xpc3QpLCBHRlBfS0VS TkVMKTsKPiArCWlmICghdW1lbV9vZHAtPmRtYV9saXN0KQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdHJ1Y3QgaWJfdW1lbSAqaWJfdW1lbV9kbWFi dWZfZ2V0KHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwKPiArCQkJCSAgIHVuc2lnbmVkIGxvbmcg YWRkciwgc2l6ZV90IHNpemUsCj4gKwkJCQkgICBpbnQgZG1hYnVmX2ZkLCBpbnQgYWNjZXNzLAo+ ICsJCQkJICAgY29uc3Qgc3RydWN0IG1tdV9pbnRlcnZhbF9ub3RpZmllcl9vcHMgKm9wcykKPiAr ewo+ICsJc3RydWN0IGRtYV9idWYgKmRtYWJ1ZjsKPiArCXN0cnVjdCBpYl91bWVtX2RtYWJ1ZiAq dW1lbV9kbWFidWY7Cj4gKwlzdHJ1Y3QgaWJfdW1lbSAqdW1lbTsKPiArCXN0cnVjdCBpYl91bWVt X29kcCAqdW1lbV9vZHA7Cj4gKwl1bnNpZ25lZCBsb25nIGVuZDsKPiArCWxvbmcgcmV0Owo+ICsK PiArCWlmIChjaGVja19hZGRfb3ZlcmZsb3coYWRkciwgc2l6ZSwgJmVuZCkpCj4gKwkJcmV0dXJu IEVSUl9QVFIoLUVJTlZBTCk7Cj4gKwo+ICsJaWYgKHVubGlrZWx5KFBBR0VfQUxJR04oZW5kKSA8 IFBBR0VfU0laRSkpCj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Cj4gKwo+ICsJdW1lbV9k bWFidWYgPSBremFsbG9jKHNpemVvZigqdW1lbV9kbWFidWYpLCBHRlBfS0VSTkVMKTsKPiArCWlm ICghdW1lbV9kbWFidWYpCj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gKwo+ICsJdW1l bSA9ICZ1bWVtX2RtYWJ1Zi0+dW1lbV9vZHAudW1lbTsKPiArCXVtZW0tPmliZGV2ID0gZGV2aWNl Owo+ICsJdW1lbS0+bGVuZ3RoID0gc2l6ZTsKPiArCXVtZW0tPmFkZHJlc3MgPSBhZGRyOwo+ICsJ dW1lbS0+d3JpdGFibGUgPSBpYl9hY2Nlc3Nfd3JpdGFibGUoYWNjZXNzKTsKPiArCXVtZW0tPmlz X2RtYWJ1ZiA9IDE7Cj4gKwo+ICsJZG1hYnVmID0gZG1hX2J1Zl9nZXQoZG1hYnVmX2ZkKTsKPiAr CWlmIChJU19FUlIoZG1hYnVmKSkgewo+ICsJCXJldCA9IFBUUl9FUlIoZG1hYnVmKTsKPiArCQln b3RvIG91dF9mcmVlX3VtZW07Cj4gKwl9Cj4gKwo+ICsJLyogYWx3YXlzIGF0dGFjaCBkeW5hbWlj YWxseSB0byBwYXNzIHRoZSBhbGxvd19wZWVyMnBlZXIgZmxhZyAqLwo+ICsJdW1lbV9kbWFidWYt PmF0dGFjaCA9IGRtYV9idWZfZHluYW1pY19hdHRhY2goCj4gKwkJCQkJZG1hYnVmLAo+ICsJCQkJ CWRldmljZS0+ZG1hX2RldmljZSwKPiArCQkJCQkmaWJfdW1lbV9kbWFidWZfYXR0YWNoX29wcywK PiArCQkJCQl1bWVtX2RtYWJ1Zik7Cj4gKwlpZiAoSVNfRVJSKHVtZW1fZG1hYnVmLT5hdHRhY2gp KSB7Cj4gKwkJcmV0ID0gUFRSX0VSUih1bWVtX2RtYWJ1Zi0+YXR0YWNoKTsKPiArCQlnb3RvIG91 dF9yZWxlYXNlX2RtYWJ1ZjsKPiArCX0KPiArCj4gKwl1bWVtX29kcCA9ICZ1bWVtX2RtYWJ1Zi0+ dW1lbV9vZHA7Cj4gKwl1bWVtX29kcC0+cGFnZV9zaGlmdCA9IFBBR0VfU0hJRlQ7Cj4gKwlpZiAo YWNjZXNzICYgSUJfQUNDRVNTX0hVR0VUTEIpIHsKPiArCQkvKiBkb24ndCBzdXBwb3J0IGh1Z2Vf dGxiIGF0IHRoaXMgcG9pbnQgKi8KPiArCQlyZXQgPSAtRUlOVkFMOwo+ICsJCWdvdG8gb3V0X2Rl dGFjaF9kbWFidWY7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gaWJfdW1lbV9kbWFidWZfaW5pdF9vZHAo dW1lbV9vZHApOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIG91dF9kZXRhY2hfZG1hYnVmOwo+ICsK PiArCXVtZW1fb2RwLT5ub3RpZmllci5vcHMgPSBvcHM7Cj4gKwlyZXR1cm4gdW1lbTsKPiArCj4g K291dF9kZXRhY2hfZG1hYnVmOgo+ICsJZG1hX2J1Zl9kZXRhY2goZG1hYnVmLCB1bWVtX2RtYWJ1 Zi0+YXR0YWNoKTsKPiArCj4gK291dF9yZWxlYXNlX2RtYWJ1ZjoKPiArCWRtYV9idWZfcHV0KGRt YWJ1Zik7Cj4gKwo+ICtvdXRfZnJlZV91bWVtOgo+ICsJa2ZyZWUodW1lbV9kbWFidWYpOwo+ICsJ cmV0dXJuIEVSUl9QVFIocmV0KTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGliX3VtZW1fZG1hYnVm X2dldCk7Cj4gKwo+ICt1bnNpZ25lZCBsb25nIGliX3VtZW1fZG1hYnVmX25vdGlmaWVyX3JlYWRf YmVnaW4oc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCkKPiArewo+ICsJc3RydWN0IGliX3Vt ZW1fZG1hYnVmICp1bWVtX2RtYWJ1ZiA9IHRvX2liX3VtZW1fZG1hYnVmKCZ1bWVtX29kcC0+dW1l bSk7Cj4gKwo+ICsJcmV0dXJuIGF0b21pY19yZWFkKCZ1bWVtX2RtYWJ1Zi0+bm90aWZpZXJfc2Vx KTsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGliX3VtZW1fZG1hYnVmX25vdGlmaWVyX3JlYWRfYmVn aW4pOwo+ICsKPiAraW50IGliX3VtZW1fZG1hYnVmX25vdGlmaWVyX3JlYWRfcmV0cnkoc3RydWN0 IGliX3VtZW1fb2RwICp1bWVtX29kcCwKPiArCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIGN1cnJl bnRfc2VxKQo+ICt7Cj4gKwlzdHJ1Y3QgaWJfdW1lbV9kbWFidWYgKnVtZW1fZG1hYnVmID0gdG9f aWJfdW1lbV9kbWFidWYoJnVtZW1fb2RwLT51bWVtKTsKPiArCj4gKwlyZXR1cm4gKGF0b21pY19y ZWFkKCZ1bWVtX2RtYWJ1Zi0+bm90aWZpZXJfc2VxKSAhPSBjdXJyZW50X3NlcSk7Cj4gK30KPiAr RVhQT1JUX1NZTUJPTChpYl91bWVtX2RtYWJ1Zl9ub3RpZmllcl9yZWFkX3JldHJ5KTsKPiArCj4g K2ludCBpYl91bWVtX2RtYWJ1Zl9tYXBfcGFnZXMoc3RydWN0IGliX3VtZW0gKnVtZW0sIHU2NCB1 c2VyX3ZpcnQsIHU2NCBiY250LAo+ICsJCQkgICAgIHU2NCBhY2Nlc3NfbWFzaywgdW5zaWduZWQg bG9uZyBjdXJyZW50X3NlcSkKPiArewo+ICsJc3RydWN0IGliX3VtZW1fZG1hYnVmICp1bWVtX2Rt YWJ1ZiA9IHRvX2liX3VtZW1fZG1hYnVmKHVtZW0pOwo+ICsJc3RydWN0IGliX3VtZW1fb2RwICp1 bWVtX29kcCA9ICZ1bWVtX2RtYWJ1Zi0+dW1lbV9vZHA7Cj4gKwl1NjQgc3RhcnQsIGVuZCwgYWRk cjsKPiArCWludCBqLCBrLCByZXQgPSAwLCB1c2VyX3BhZ2VzLCBwYWdlcywgdG90YWxfcGFnZXM7 Cj4gKwl1bnNpZ25lZCBpbnQgcGFnZV9zaGlmdDsKPiArCXNpemVfdCBwYWdlX3NpemU7Cj4gKwlz dHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOwo+ICsJc3RydWN0IHNnX3RhYmxlICpzZ3Q7Cj4gKwo+ICsJ aWYgKGFjY2Vzc19tYXNrID09IDApCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJaWYgKHVz ZXJfdmlydCA8IGliX3VtZW1fc3RhcnQodW1lbV9vZHApIHx8Cj4gKwkgICAgdXNlcl92aXJ0ICsg YmNudCA+IGliX3VtZW1fZW5kKHVtZW1fb2RwKSkKPiArCQlyZXR1cm4gLUVGQVVMVDsKPiArCj4g KwlwYWdlX3NoaWZ0ID0gdW1lbV9vZHAtPnBhZ2Vfc2hpZnQ7Cj4gKwlwYWdlX3NpemUgPSAxVUwg PDwgcGFnZV9zaGlmdDsKPiArCXN0YXJ0ID0gQUxJR05fRE9XTih1c2VyX3ZpcnQsIHBhZ2Vfc2l6 ZSk7Cj4gKwllbmQgPSBBTElHTih1c2VyX3ZpcnQgKyBiY250LCBwYWdlX3NpemUpOwo+ICsJdXNl cl9wYWdlcyA9IChlbmQgLSBzdGFydCkgPj4gcGFnZV9zaGlmdDsKPiArCj4gKwltdXRleF9sb2Nr KCZ1bWVtX29kcC0+dW1lbV9tdXRleCk7Cj4gKwo+ICsJLyogY2hlY2sgZm9yIG9uLW9uZ29pbmcg aW52YWxpZGF0aW9ucyAqLwo+ICsJaWYgKGliX3VtZW1fZG1hYnVmX25vdGlmaWVyX3JlYWRfcmV0 cnkodW1lbV9vZHAsIGN1cnJlbnRfc2VxKSkgewo+ICsJCXJldCA9IC1FQUdBSU47Cj4gKwkJZ290 byBvdXQ7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gdXNlcl9wYWdlczsKPiArCWlmICh1bWVtX2RtYWJ1 Zi0+c2d0KQo+ICsJCWdvdG8gb3V0Owo+ICsKPiArCWRtYV9yZXN2X2xvY2sodW1lbV9kbWFidWYt PmF0dGFjaC0+ZG1hYnVmLT5yZXN2LCBOVUxMKTsKPiArCXNndCA9IGRtYV9idWZfbWFwX2F0dGFj aG1lbnQodW1lbV9kbWFidWYtPmF0dGFjaCwKPiArCQkJCSAgICAgRE1BX0JJRElSRUNUSU9OQUwp Owo+ICsJZG1hX3Jlc3ZfdW5sb2NrKHVtZW1fZG1hYnVmLT5hdHRhY2gtPmRtYWJ1Zi0+cmVzdik7 Cj4gKwo+ICsJaWYgKElTX0VSUihzZ3QpKSB7Cj4gKwkJcmV0ID0gUFRSX0VSUihzZ3QpOwo+ICsJ CWdvdG8gb3V0Owo+ICsJfQo+ICsKPiArCXVtZW0tPnNnX2hlYWQgPSAqc2d0Owo+ICsJdW1lbS0+ bm1hcCA9IHNndC0+bmVudHM7Cj4gKwl1bWVtX2RtYWJ1Zi0+c2d0ID0gc2d0Owo+ICsKPiArCWsg PSAwOwo+ICsJdG90YWxfcGFnZXMgPSBpYl91bWVtX29kcF9udW1fcGFnZXModW1lbV9vZHApOwo+ ICsJZm9yX2VhY2hfc2codW1lbS0+c2dfaGVhZC5zZ2wsIHNnLCB1bWVtLT5zZ19oZWFkLm5lbnRz LCBqKSB7Cj4gKwkJYWRkciA9IHNnX2RtYV9hZGRyZXNzKHNnKTsKPiArCQlwYWdlcyA9IHNnX2Rt YV9sZW4oc2cpID4+IHBhZ2Vfc2hpZnQ7Cj4gKwkJd2hpbGUgKHBhZ2VzID4gMCAmJiBrIDwgdG90 YWxfcGFnZXMpIHsKPiArCQkJdW1lbV9vZHAtPmRtYV9saXN0W2srK10gPSBhZGRyIHwgYWNjZXNz X21hc2s7Cj4gKwkJCXVtZW1fb2RwLT5ucGFnZXMrKzsKPiArCQkJYWRkciArPSBwYWdlX3NpemU7 Cj4gKwkJCXBhZ2VzLS07Cj4gKwkJfQo+ICsJfQo+ICsKPiArCVdBUk5fT04oayAhPSB0b3RhbF9w YWdlcyk7Cj4gKwo+ICtvdXQ6Cj4gKwltdXRleF91bmxvY2soJnVtZW1fb2RwLT51bWVtX211dGV4 KTsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3ZvaWQgaWJfdW1lbV9kbWFidWZfdW5tYXBf cGFnZXMoc3RydWN0IGliX3VtZW0gKnVtZW0pCj4gK3sKPiArCXN0cnVjdCBpYl91bWVtX2RtYWJ1 ZiAqdW1lbV9kbWFidWYgPSB0b19pYl91bWVtX2RtYWJ1Zih1bWVtKTsKPiArCXN0cnVjdCBpYl91 bWVtX29kcCAqdW1lbV9vZHAgPSAmdW1lbV9kbWFidWYtPnVtZW1fb2RwOwo+ICsJaW50IG5wYWdl cyA9IGliX3VtZW1fb2RwX251bV9wYWdlcyh1bWVtX29kcCk7Cj4gKwlpbnQgaTsKPiArCj4gKwls b2NrZGVwX2Fzc2VydF9oZWxkKCZ1bWVtX29kcC0+dW1lbV9tdXRleCk7Cj4gKwlkbWFfcmVzdl9h c3NlcnRfaGVsZCh1bWVtX2RtYWJ1Zi0+YXR0YWNoLT5kbWFidWYtPnJlc3YpOwo+ICsKPiArCWlm ICghdW1lbV9kbWFidWYtPnNndCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJZG1hX2J1Zl91bm1hcF9h dHRhY2htZW50KHVtZW1fZG1hYnVmLT5hdHRhY2gsIHVtZW1fZG1hYnVmLT5zZ3QsCj4gKwkJCQkg RE1BX0JJRElSRUNUSU9OQUwpOwo+ICsKPiArCXVtZW1fZG1hYnVmLT5zZ3QgPSBOVUxMOwo+ICsK PiArCWZvciAoaSA9IDA7IGkgPCBucGFnZXM7IGkrKykKPiArCQl1bWVtX29kcC0+ZG1hX2xpc3Rb aV0gPSAwOwo+ICsJdW1lbV9vZHAtPm5wYWdlcyA9IDA7Cj4gK30KPiArCj4gK3ZvaWQgaWJfdW1l bV9kbWFidWZfcmVsZWFzZShzdHJ1Y3QgaWJfdW1lbSAqdW1lbSkKPiArewo+ICsJc3RydWN0IGli X3VtZW1fZG1hYnVmICp1bWVtX2RtYWJ1ZiA9IHRvX2liX3VtZW1fZG1hYnVmKHVtZW0pOwo+ICsJ c3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCA9ICZ1bWVtX2RtYWJ1Zi0+dW1lbV9vZHA7Cj4g KwlzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmID0gdW1lbV9kbWFidWYtPmF0dGFjaC0+ZG1hYnVmOwo+ ICsKPiArCW11dGV4X2xvY2soJnVtZW1fb2RwLT51bWVtX211dGV4KTsKPiArCWRtYV9yZXN2X2xv Y2sodW1lbV9kbWFidWYtPmF0dGFjaC0+ZG1hYnVmLT5yZXN2LCBOVUxMKTsKPiArCWliX3VtZW1f ZG1hYnVmX3VubWFwX3BhZ2VzKHVtZW0pOwo+ICsJZG1hX3Jlc3ZfdW5sb2NrKHVtZW1fZG1hYnVm LT5hdHRhY2gtPmRtYWJ1Zi0+cmVzdik7Cj4gKwltdXRleF91bmxvY2soJnVtZW1fb2RwLT51bWVt X211dGV4KTsKPiArCWt2ZnJlZSh1bWVtX29kcC0+ZG1hX2xpc3QpOwo+ICsJZG1hX2J1Zl9kZXRh Y2goZG1hYnVmLCB1bWVtX2RtYWJ1Zi0+YXR0YWNoKTsKPiArCWRtYV9idWZfcHV0KGRtYWJ1Zik7 Cj4gKwlrZnJlZSh1bWVtX2RtYWJ1Zik7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZp bmliYW5kL2NvcmUvdW1lbV9kbWFidWYuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW1f ZG1hYnVmLmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmI5Mzc4YmQK PiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbV9kbWFi dWYuaAo+IEBAIC0wLDAgKzEsMTQgQEAKPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChH UEwtMi4wIE9SIEJTRC0zLUNsYXVzZSkgKi8KPiArLyoKPiArICogQ29weXJpZ2h0IChjKSAyMDIw IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgo+ICsgKi8KPiArCj4gKyNp Zm5kZWYgVU1FTV9ETUFCVUZfSAo+ICsjZGVmaW5lIFVNRU1fRE1BQlVGX0gKPiArCj4gK2ludCBp Yl91bWVtX2RtYWJ1Zl9tYXBfcGFnZXMoc3RydWN0IGliX3VtZW0gKnVtZW0sIHU2NCB1c2VyX3Zp cnQsIHU2NCBiY250LAo+ICsJCQkgICAgIHU2NCBhY2Nlc3NfbWFzaywgdW5zaWduZWQgbG9uZyBj dXJyZW50X3NlcSk7Cj4gK3ZvaWQgaWJfdW1lbV9kbWFidWZfdW5tYXBfcGFnZXMoc3RydWN0IGli X3VtZW0gKnVtZW0pOwo+ICt2b2lkIGliX3VtZW1fZG1hYnVmX3JlbGVhc2Uoc3RydWN0IGliX3Vt ZW0gKnVtZW0pOwo+ICsKPiArI2VuZGlmIC8qIFVNRU1fRE1BQlVGX0ggKi8KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbV9vZHAuYyBiL2RyaXZlcnMvaW5maW5pYmFu ZC9jb3JlL3VtZW1fb2RwLmMKPiBpbmRleCBjYzZiNGJlLi43ZTExNjE5IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW1fb2RwLmMKPiArKysgYi9kcml2ZXJzL2luZmlu aWJhbmQvY29yZS91bWVtX29kcC5jCj4gQEAgLTEsNSArMSw2IEBACj4gICAvKgo+ICAgICogQ29w eXJpZ2h0IChjKSAyMDE0IE1lbGxhbm94IFRlY2hub2xvZ2llcy4gQWxsIHJpZ2h0cyByZXNlcnZl ZC4KPiArICogQ29weXJpZ2h0IChjKSAyMDIwIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLgo+ICAgICoKPiAgICAqIFRoaXMgc29mdHdhcmUgaXMgYXZhaWxhYmxlIHRvIHlv dSB1bmRlciBhIGNob2ljZSBvZiBvbmUgb2YgdHdvCj4gICAgKiBsaWNlbnNlcy4gIFlvdSBtYXkg Y2hvb3NlIHRvIGJlIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCj4gQEAgLTQ3 LDYgKzQ4LDcgQEAKPiAgICNpbmNsdWRlIDxyZG1hL2liX3VtZW1fb2RwLmg+Cj4gICAKPiAgICNp bmNsdWRlICJ1dmVyYnMuaCIKPiArI2luY2x1ZGUgInVtZW1fZG1hYnVmLmgiCj4gICAKPiAgIHN0 YXRpYyBpbmxpbmUgaW50IGliX2luaXRfdW1lbV9vZHAoc3RydWN0IGliX3VtZW1fb2RwICp1bWVt X29kcCwKPiAgIAkJCQkgICBjb25zdCBzdHJ1Y3QgbW11X2ludGVydmFsX25vdGlmaWVyX29wcyAq b3BzKQo+IEBAIC0yNjMsNiArMjY1LDkgQEAgc3RydWN0IGliX3VtZW1fb2RwICppYl91bWVtX29k cF9nZXQoc3RydWN0IGliX2RldmljZSAqZGV2aWNlLAo+ICAgCj4gICB2b2lkIGliX3VtZW1fb2Rw X3JlbGVhc2Uoc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCkKPiAgIHsKPiArCWlmICh1bWVt X29kcC0+dW1lbS5pc19kbWFidWYpCj4gKwkJcmV0dXJuIGliX3VtZW1fZG1hYnVmX3JlbGVhc2Uo JnVtZW1fb2RwLT51bWVtKTsKPiArCj4gICAJLyoKPiAgIAkgKiBFbnN1cmUgdGhhdCBubyBtb3Jl IHBhZ2VzIGFyZSBtYXBwZWQgaW4gdGhlIHVtZW0uCj4gICAJICoKPiBAQCAtMzkyLDYgKzM5Nywx MCBAQCBpbnQgaWJfdW1lbV9vZHBfbWFwX2RtYV9wYWdlcyhzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVt ZW1fb2RwLCB1NjQgdXNlcl92aXJ0LAo+ICAgCXVuc2lnbmVkIGludCBmbGFncyA9IDAsIHBhZ2Vf c2hpZnQ7Cj4gICAJcGh5c19hZGRyX3QgcCA9IDA7Cj4gICAKPiArCWlmICh1bWVtX29kcC0+dW1l bS5pc19kbWFidWYpCj4gKwkJcmV0dXJuIGliX3VtZW1fZG1hYnVmX21hcF9wYWdlcygmdW1lbV9v ZHAtPnVtZW0sIHVzZXJfdmlydCwKPiArCQkJCQkJYmNudCwgYWNjZXNzX21hc2ssIGN1cnJlbnRf c2VxKTsKPiArCj4gICAJaWYgKGFjY2Vzc19tYXNrID09IDApCj4gICAJCXJldHVybiAtRUlOVkFM Owo+ICAgCj4gQEAgLTUxNyw2ICs1MjYsOSBAQCB2b2lkIGliX3VtZW1fb2RwX3VubWFwX2RtYV9w YWdlcyhzdHJ1Y3QgaWJfdW1lbV9vZHAgKnVtZW1fb2RwLCB1NjQgdmlydCwKPiAgIAl1NjQgYWRk cjsKPiAgIAlzdHJ1Y3QgaWJfZGV2aWNlICpkZXYgPSB1bWVtX29kcC0+dW1lbS5pYmRldjsKPiAg IAo+ICsJaWYgKHVtZW1fb2RwLT51bWVtLmlzX2RtYWJ1ZikKPiArCQlyZXR1cm4gaWJfdW1lbV9k bWFidWZfdW5tYXBfcGFnZXMoJnVtZW1fb2RwLT51bWVtKTsKPiArCj4gICAJbG9ja2RlcF9hc3Nl cnRfaGVsZCgmdW1lbV9vZHAtPnVtZW1fbXV0ZXgpOwo+ICAgCj4gICAJdmlydCA9IG1heF90KHU2 NCwgdmlydCwgaWJfdW1lbV9zdGFydCh1bWVtX29kcCkpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L3JkbWEvaWJfdW1lbS5oIGIvaW5jbHVkZS9yZG1hL2liX3VtZW0uaAo+IGluZGV4IDcxZjU3M2Eu LmI4ZWE2OTMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9yZG1hL2liX3VtZW0uaAo+ICsrKyBiL2lu Y2x1ZGUvcmRtYS9pYl91bWVtLmgKPiBAQCAtMSw2ICsxLDcgQEAKPiAgIC8qIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIExpbnV4LU9wZW5JQiAqLwo+ICAgLyoKPiAgICAqIENv cHlyaWdodCAoYykgMjAwNyBDaXNjbyBTeXN0ZW1zLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KPiAr ICogQ29weXJpZ2h0IChjKSAyMDIwIEludGVsIENvcnBvcmF0aW9uLiAgQWxsIHJpZ2h0cyByZXNl cnZlZC4KPiAgICAqLwo+ICAgCj4gICAjaWZuZGVmIElCX1VNRU1fSAo+IEBAIC0xMyw2ICsxNCw3 IEBACj4gICAKPiAgIHN0cnVjdCBpYl91Y29udGV4dDsKPiAgIHN0cnVjdCBpYl91bWVtX29kcDsK PiArc3RydWN0IGliX3VtZW1fZG1hYnVmOwo+ICAgCj4gICBzdHJ1Y3QgaWJfdW1lbSB7Cj4gICAJ c3RydWN0IGliX2RldmljZSAgICAgICAqaWJkZXY7Cj4gQEAgLTIxLDYgKzIzLDcgQEAgc3RydWN0 IGliX3VtZW0gewo+ICAgCXVuc2lnbmVkIGxvbmcJCWFkZHJlc3M7Cj4gICAJdTMyIHdyaXRhYmxl IDogMTsKPiAgIAl1MzIgaXNfb2RwIDogMTsKPiArCXUzMiBpc19kbWFidWYgOiAxOwo+ICAgCXN0 cnVjdCB3b3JrX3N0cnVjdAl3b3JrOwo+ICAgCXN0cnVjdCBzZ190YWJsZSBzZ19oZWFkOwo+ICAg CWludCAgICAgICAgICAgICBubWFwOwo+IEBAIC01MSw2ICs1NCwxMyBAQCBpbnQgaWJfdW1lbV9j b3B5X2Zyb20odm9pZCAqZHN0LCBzdHJ1Y3QgaWJfdW1lbSAqdW1lbSwgc2l6ZV90IG9mZnNldCwK PiAgIHVuc2lnbmVkIGxvbmcgaWJfdW1lbV9maW5kX2Jlc3RfcGdzeihzdHJ1Y3QgaWJfdW1lbSAq dW1lbSwKPiAgIAkJCQkgICAgIHVuc2lnbmVkIGxvbmcgcGdzel9iaXRtYXAsCj4gICAJCQkJICAg ICB1bnNpZ25lZCBsb25nIHZpcnQpOwo+ICtzdHJ1Y3QgaWJfdW1lbSAqaWJfdW1lbV9kbWFidWZf Z2V0KHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwKPiArCQkJCSAgIHVuc2lnbmVkIGxvbmcgYWRk ciwgc2l6ZV90IHNpemUsCj4gKwkJCQkgICBpbnQgZG1hYnVmX2ZkLCBpbnQgYWNjZXNzLAo+ICsJ CQkJICAgY29uc3Qgc3RydWN0IG1tdV9pbnRlcnZhbF9ub3RpZmllcl9vcHMgKm9wcyk7Cj4gK3Vu c2lnbmVkIGxvbmcgaWJfdW1lbV9kbWFidWZfbm90aWZpZXJfcmVhZF9iZWdpbihzdHJ1Y3QgaWJf dW1lbV9vZHAgKnVtZW1fb2RwKTsKPiAraW50IGliX3VtZW1fZG1hYnVmX25vdGlmaWVyX3JlYWRf cmV0cnkoc3RydWN0IGliX3VtZW1fb2RwICp1bWVtX29kcCwKPiArCQkJCSAgICAgICB1bnNpZ25l ZCBsb25nIGN1cnJlbnRfc2VxKTsKPiAgIAo+ICAgI2Vsc2UgLyogQ09ORklHX0lORklOSUJBTkRf VVNFUl9NRU0gKi8KPiAgIAo+IEBAIC03Myw3ICs4MywxNCBAQCBzdGF0aWMgaW5saW5lIGludCBp Yl91bWVtX2ZpbmRfYmVzdF9wZ3N6KHN0cnVjdCBpYl91bWVtICp1bWVtLAo+ICAgCQkJCQkgdW5z aWduZWQgbG9uZyB2aXJ0KSB7Cj4gICAJcmV0dXJuIC1FSU5WQUw7Cj4gICB9Cj4gK3N0YXRpYyBp bmxpbmUgc3RydWN0IGliX3VtZW0gKmliX3VtZW1fZG1hYnVmX2dldChzdHJ1Y3QgaWJfZGV2aWNl ICpkZXZpY2UsCj4gKwkJCQkJCSB1bnNpZ25lZCBsb25nIGFkZHIsCj4gKwkJCQkJCSBzaXplX3Qg c2l6ZSwgaW50IGRtYWJ1Zl9mZCwKPiArCQkJCQkJIGludCBhY2Nlc3MsCj4gKwkJCQkJCSBzdHJ1 Y3QgbW11X2ludGVydmFsX25vdGlmaWVyX29wcyAqb3BzKQo+ICt7Cj4gKwlyZXR1cm4gRVJSX1BU UigtRUlOVkFMKTsKPiArfQo+ICAgCj4gICAjZW5kaWYgLyogQ09ORklHX0lORklOSUJBTkRfVVNF Ul9NRU0gKi8KPiAtCj4gICAjZW5kaWYgLyogSUJfVU1FTV9IICovCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK