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=-8.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,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 DC024C433E0 for ; Mon, 15 Jun 2020 16:37:16 +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 B297120679 for ; Mon, 15 Jun 2020 16:37:16 +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="wC91ruEA" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B297120679 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 271A36E400; Mon, 15 Jun 2020 16:37:16 +0000 (UTC) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2084.outbound.protection.outlook.com [40.107.94.84]) by gabe.freedesktop.org (Postfix) with ESMTPS id 944896E3FC; Mon, 15 Jun 2020 16:37:14 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kL/doqxjxNky+vqjPLiayUI8joAhazl77syoLBzi9SN3KzTpjyLG+qwzke0OrMzmsHt4A3p+If6yQp8fRBhQ1OHWRZD4jkOFxTHkqbAa0jGx8j3iKxTFXBbKtWTee3mcsunpSDxtV8s0H43N+djv7o/RsQRj/oMfxc2xNYhwHBue7QTFWFU+jqnpQ6V3Je1wLhT/ByDAWhrfsyMSLwexFPa8Rw9KAc8pb9QiSGm8QTIL7E3ekF6OaaCklOgMN+OMhvFKRsFkwh7pg7GJcGE1HORKgffbfYs1WPHgM6it4+IVrLH+6Nj/eyo5s3FYeDaGhTXPVRPx3dv5DzOrdpQfjA== 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=3yIrKKKXUEIbDGrPv9IHZfWFxlVNUFHKfT4L8pwQQMc=; b=ZrKQG0NQ/D5J+NWlkyywUXAtftcfcxxGLajRjccaK7nHa9PNH3XU0tMxqSioXXX2EzXR2OiTEUV2ffuMMvCyGNT3O1VUG3FBx1Z7Pqe8fSAxu/v/ata29LT2t0e5aq90bEOmFawZOdSWauXPFQ/tYYVxlheFX6xEaNT/7yQLQl0GmC1PYeqrefm6FTq8Z8HG0MFYxXNPjiZAqa4EH+4OkLe9OvPE6I2Wzb2P5yuc+2v+K1rLXwLd4LrMZEujGr7+Tr28H3gBcCoYAa4ki2DWOeh5QhAMBf6UQsTNiHP3Yo0fll2WgjKbmZ/nFa9kpkgUm/5QZ8E2MLXrG85kmpR9tg== 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=3yIrKKKXUEIbDGrPv9IHZfWFxlVNUFHKfT4L8pwQQMc=; b=wC91ruEADZGx4DWKzNQYcm9LAVFCGNL3YqHgxtVQmpYMllFrc2+iqU6YWzJLW+RbI7kRxbjitT58RBPAKsi3apag5whpBBNlkpNDZXlSQhYhZwoFadNIomt8XNpV+dQKJyWU7ujwB0U/L66D9gGe46cnXlQQ4dCimxJ8gRLjVgc= 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 MN2PR12MB3872.namprd12.prod.outlook.com (2603:10b6:208:168::17) by MN2PR12MB4288.namprd12.prod.outlook.com (2603:10b6:208:1d2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3088.18; Mon, 15 Jun 2020 16:37:13 +0000 Received: from MN2PR12MB3872.namprd12.prod.outlook.com ([fe80::8843:c094:fb2a:d60a]) by MN2PR12MB3872.namprd12.prod.outlook.com ([fe80::8843:c094:fb2a:d60a%7]) with mapi id 15.20.3088.029; Mon, 15 Jun 2020 16:37:13 +0000 Subject: Re: [PATCH 3/3] drm/mm: cleanup and improve next_hole_*_addr() To: =?UTF-8?Q?Christian_K=c3=b6nig?= , chris@chris-wilson.co.uk, intel-gfx@lists.freedesktop.org, nirmoy.das@amd.com, dri-devel@lists.freedesktop.org References: <20200615145415.1775-1-christian.koenig@amd.com> <20200615145415.1775-3-christian.koenig@amd.com> From: Nirmoy Message-ID: <170daa8f-811b-8cec-8235-9da9af96243e@amd.com> Date: Mon, 15 Jun 2020 18:38:21 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 In-Reply-To: <20200615145415.1775-3-christian.koenig@amd.com> Content-Language: en-US X-ClientProxiedBy: AM3PR07CA0123.eurprd07.prod.outlook.com (2603:10a6:207:7::33) To MN2PR12MB3872.namprd12.prod.outlook.com (2603:10b6:208:168::17) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.178.76] (217.86.97.86) by AM3PR07CA0123.eurprd07.prod.outlook.com (2603:10a6:207:7::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.7 via Frontend Transport; Mon, 15 Jun 2020 16:37:12 +0000 X-Originating-IP: [217.86.97.86] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 77b3b509-e176-4c17-26bd-08d8114a5b2a X-MS-TrafficTypeDiagnostic: MN2PR12MB4288: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-Forefront-PRVS: 04359FAD81 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uFpildjSgIV63HfwX5cN6wcLXk2wQa7KtZGyRNmi27y9+Z7GsRjZPWtY/EIdX9LqRI2Jw25Hl88cFeRh6JB7C9M4d5Mwhz1W4SYx2pZcqeBZ2RcsPBhkOio4JUQiPASN511b7lRaos9hRl5J2byw2VXmxI7Y4r+eTv9D0f+5hbWEOUMzcPnV/L5Y4thAmH7O2sG+5r/DcEwnxIimL942Eg3d9VitY6m76qXpH+jaAV2E4I29oKvKKPGSPv7sgsT9z819SpsIxdvmkZz6qDHfAIrhH4d2OSMytkYb3jegkGba+9q0ZzsOgad864pAxiYjCsEScht/uLsFlTUYgTFV92HmyJkZHiEKIwt+BaMDGo+t0oCOeumc5WdSDC1YhQWx X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3872.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(396003)(366004)(346002)(136003)(376002)(478600001)(8936002)(66574014)(316002)(16576012)(8676002)(52116002)(36756003)(16526019)(186003)(6486002)(6666004)(2906002)(31686004)(2616005)(956004)(83380400001)(66946007)(53546011)(66476007)(26005)(31696002)(66556008)(5660300002)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: c8X+Hd8v0hTOC6yLqxCpip1frxWFYGDybN2qw2Q+s8uHNUF/K0Su+2fn80fgQzLNrzGZsoWO+bdPmou7TcZTdNVWQ0EoxIO1jaW4JApZOL3G/wslgLmQ2dv8gLHAd1vnOH2mWDL54Jt2fEfs5uPWzYeGDCbdEZkfdDYVcBKUMhKr2AY1Q4tgp4eJ0GiFG9aNolLr2FeLInxIxpsFv0XqaIx9Mn5Zi2Or3RHQTaL5U4Tl041K06qySuMDUiw1moLsZUGkCVzXr3kyUa/q7vi1VHSv3RuhgXCr39wRy8dfKWz25/rONS1uI2w0BL+1WK5Sp4ttQMKSNZ1dInmrkMz4jfpHEo72hoK9A6v3eR3IB44FApeeDEkze7uiyQ9bdLhRmhX5llXYG/jI48/FIZ9Kgb72IJxQBU/zkNePadg7kuiNIJMfK+RS0l3L5h0u93ZVYE6GE/DnA9zKyu7+lJXxU2obzGv4supovdDIGwJB/6o= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 77b3b509-e176-4c17-26bd-08d8114a5b2a X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2020 16:37:12.8895 (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: uodM0MEaUotuIpNVuZvenapaVNkuFrLRg4KoLAClpmakK4Ii8cSp9F6g8++OI5iOaa9jL/T/T5Sk9xULYG1CPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4288 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: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" UmV2aWV3ZWQtYnk6IE5pcm1veSBEYXMgPG5pcm1veS5kYXNAYW1kLmNvbT4KCk9uIDYvMTUvMjAg NDo1NCBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBTa2lwcGluZyBqdXN0IG9uZSBicmFu Y2ggb2YgdGhlIHRyZWUgaXMgbm90IHRoZSBtb3N0Cj4gZWZmZWN0aXZlIGFwcHJvYWNoLgo+Cj4g SW5zdGVhZCB1c2UgYSBtYWNybyB0byBkZWZpbmUgdGhlIHRyYXZlcnNhbCBmdW5jdGlvbnMgYW5k Cj4gc29ydCBvdXQgYm90aCBicmFuY2ggc2lkZXMuCj4KPiBUaGlzIGltcHJvdmVzIHRoZSBwZXJm b3JtYW5jZSBvZiB0aGUgdW5pdCB0ZXN0cyBieQo+IGEgZmFjdG9yIG9mIG1vcmUgdGhhbiA0Lgo+ Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQu Y29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9tbS5jIHwgMTA2ICsrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDM0IGluc2Vy dGlvbnMoKyksIDcyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fbW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYwo+IGluZGV4IDE3N2E1ZGYwZmU5 NS4uYTRhMDRkMjQ2MTM1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYwo+IEBAIC0zMjUsNiArMzI1LDExIEBAIHN0 YXRpYyBzdHJ1Y3QgZHJtX21tX25vZGUgKmJlc3RfaG9sZShzdHJ1Y3QgZHJtX21tICptbSwgdTY0 IHNpemUpCj4gICAJcmV0dXJuIGJlc3Q7Cj4gICB9Cj4gICAKPiArc3RhdGljIGJvb2wgdXNhYmxl X2hvbGVfYWRkcihzdHJ1Y3QgcmJfbm9kZSAqcmIsIHU2NCBzaXplKQo+ICt7Cj4gKwlyZXR1cm4g cmIgJiYgcmJfaG9sZV9hZGRyX3RvX25vZGUocmIpLT5zdWJ0cmVlX21heF9ob2xlID49IHNpemU7 Cj4gK30KPiArCj4gICBzdGF0aWMgc3RydWN0IGRybV9tbV9ub2RlICpmaW5kX2hvbGVfYWRkcihz dHJ1Y3QgZHJtX21tICptbSwgdTY0IGFkZHIsIHU2NCBzaXplKQo+ICAgewo+ICAgCXN0cnVjdCBy Yl9ub2RlICpyYiA9IG1tLT5ob2xlc19hZGRyLnJiX25vZGU7Cj4gQEAgLTMzMyw3ICszMzgsNyBA QCBzdGF0aWMgc3RydWN0IGRybV9tbV9ub2RlICpmaW5kX2hvbGVfYWRkcihzdHJ1Y3QgZHJtX21t ICptbSwgdTY0IGFkZHIsIHU2NCBzaXplKQo+ICAgCXdoaWxlIChyYikgewo+ICAgCQl1NjQgaG9s ZV9zdGFydDsKPiAgIAo+IC0JCWlmIChyYl9ob2xlX2FkZHJfdG9fbm9kZShyYiktPnN1YnRyZWVf bWF4X2hvbGUgPCBzaXplKQo+ICsJCWlmICghdXNhYmxlX2hvbGVfYWRkcihyYiwgc2l6ZSkpCj4g ICAJCQlicmVhazsKPiAgIAo+ICAgCQlub2RlID0gcmJfaG9sZV9hZGRyX3RvX25vZGUocmIpOwo+ IEBAIC0zNzQsODIgKzM3OSwzOSBAQCBmaXJzdF9ob2xlKHN0cnVjdCBkcm1fbW0gKm1tLAo+ICAg fQo+ICAgCj4gICAvKioKPiAtICogbmV4dF9ob2xlX2hpZ2hfYWRkciAtIHJldHVybnMgbmV4dCBo b2xlIGZvciBhIERSTV9NTV9JTlNFUlRfSElHSCBtb2RlIHJlcXVlc3QKPiAtICogQGVudHJ5OiBw cmV2aW91c2x5IHNlbGVjdGVkIGRybV9tbV9ub2RlCj4gLSAqIEBzaXplOiBzaXplIG9mIHRoZSBh IGhvbGUgbmVlZGVkIGZvciB0aGUgcmVxdWVzdAo+IC0gKgo+IC0gKiBUaGlzIGZ1bmN0aW9uIHdp bGwgdmVyaWZ5IHdoZXRoZXIgbGVmdCBzdWJ0cmVlIG9mIEBlbnRyeSBoYXMgaG9sZSBiaWcgZW5v dWdoCj4gLSAqIHRvIGZpdCB0aGUgcmVxdXRlc3RlZCBzaXplLiBJZiBzbywgaXQgd2lsbCByZXR1 cm4gcHJldmlvdXMgbm9kZSBvZiBAZW50cnkgb3IKPiAtICogZWxzZSBpdCB3aWxsIHJldHVybiBw YXJlbnQgbm9kZSBvZiBAZW50cnkKPiArICogREVDTEFSRV9ORVhUX0hPTEVfQUREUiAtIG1hY3Jv IHRvIGRlY2xhcmUgbmV4dCBob2xlIGZ1bmN0aW9ucwo+ICsgKiBAbmFtZTogbmFtZSBvZiBmdW5j dGlvbiB0byBkZWNsYXJlCj4gKyAqIEBmaXJzdDogZmlyc3QgcmIgbWVtYmVyIHRvIHRyYXZlcnNl IChlaXRoZXIgcmJfbGVmdCBvciByYl9yaWdodCkuCj4gKyAqIEBsYXN0OiBsYXN0IHJiIG1lbWJl ciB0byB0cmF2ZXJzZSAoZWl0aGVyIHJiX3JpZ2h0IG9yIHJiX2xlZnQpLgo+ICAgICoKPiAtICog SXQgd2lsbCBhbHNvIHNraXAgdGhlIGNvbXBsZXRlIGxlZnQgc3VidHJlZSBpZiBzdWJ0cmVlX21h eF9ob2xlIG9mIHRoYXQKPiAtICogc3VidHJlZSBpcyBzYW1lIGFzIHRoZSBzdWJ0cmVlX21heF9o b2xlIG9mIHRoZSBAZW50cnkuCj4gLSAqCj4gLSAqIFJldHVybnM6Cj4gLSAqIHByZXZpb3VzIG5v ZGUgb2YgQGVudHJ5IGlmIGxlZnQgc3VidHJlZSBvZiBAZW50cnkgY2FuIHNlcnZlIHRoZSByZXF1 ZXN0IG9yCj4gLSAqIGVsc2UgcmV0dXJuIHBhcmVudCBvZiBAZW50cnkKPiArICogVGhpcyBtYWNy byBkZWNsYXJlcyBhIGZ1bmN0aW9uIHRvIHJldHVybiB0aGUgbmV4dCBob2xlIG9mIHRoZSBhZGRy IHJiIHRyZWUuCj4gKyAqIFdoaWxlIHRyYXZlcnNpbmcgdGhlIHRyZWUgd2UgdGFrZSB0aGUgc2Vh cmNoZWQgc2l6ZSBpbnRvIGFjY291bnQgYW5kIG9ubHkKPiArICogdmlzaXQgYnJhbmNoZXMgd2l0 aCBwb3RlbnRpYWwgYmlnIGVub3VnaCBob2xlcy4KPiAgICAqLwo+IC1zdGF0aWMgc3RydWN0IGRy bV9tbV9ub2RlICoKPiAtbmV4dF9ob2xlX2hpZ2hfYWRkcihzdHJ1Y3QgZHJtX21tX25vZGUgKmVu dHJ5LCB1NjQgc2l6ZSkKPiAtewo+IC0Jc3RydWN0IHJiX25vZGUgKnJiX25vZGUsICpsZWZ0X3Ji X25vZGUsICpwYXJlbnRfcmJfbm9kZTsKPiAtCXN0cnVjdCBkcm1fbW1fbm9kZSAqbGVmdF9ub2Rl Owo+IC0KPiAtCWlmICghZW50cnkpCj4gLQkJcmV0dXJuIE5VTEw7Cj4gICAKPiAtCXJiX25vZGUg PSAmZW50cnktPnJiX2hvbGVfYWRkcjsKPiAtCWlmIChyYl9ub2RlLT5yYl9sZWZ0KSB7Cj4gLQkJ bGVmdF9yYl9ub2RlID0gcmJfbm9kZS0+cmJfbGVmdDsKPiAtCQlwYXJlbnRfcmJfbm9kZSA9IHJi X3BhcmVudChyYl9ub2RlKTsKPiAtCQlsZWZ0X25vZGUgPSByYl9lbnRyeShsZWZ0X3JiX25vZGUs Cj4gLQkJCQkgICAgIHN0cnVjdCBkcm1fbW1fbm9kZSwgcmJfaG9sZV9hZGRyKTsKPiAtCQlpZiAo bGVmdF9ub2RlLT5zdWJ0cmVlX21heF9ob2xlIDwgc2l6ZSAmJgo+IC0JCSAgICBwYXJlbnRfcmJf bm9kZSAmJiBwYXJlbnRfcmJfbm9kZS0+cmJfbGVmdCAhPSByYl9ub2RlKQo+IC0JCQlyZXR1cm4g cmJfaG9sZV9hZGRyX3RvX25vZGUocGFyZW50X3JiX25vZGUpOwo+IC0JfQo+IC0KPiAtCXJldHVy biByYl9ob2xlX2FkZHJfdG9fbm9kZShyYl9wcmV2KHJiX25vZGUpKTsKPiArI2RlZmluZSBERUNM QVJFX05FWFRfSE9MRV9BRERSKG5hbWUsIGZpcnN0LCBsYXN0KQkJCVwKPiArc3RhdGljIHN0cnVj dCBkcm1fbW1fbm9kZSAqbmFtZShzdHJ1Y3QgZHJtX21tX25vZGUgKmVudHJ5LCB1NjQgc2l6ZSkJ XAo+ICt7CQkJCQkJCQkJXAo+ICsJc3RydWN0IHJiX25vZGUgKnBhcmVudCwgKm5vZGUgPSAmZW50 cnktPnJiX2hvbGVfYWRkcjsJCVwKPiArCQkJCQkJCQkJXAo+ICsJaWYgKCFlbnRyeSB8fCBSQl9F TVBUWV9OT0RFKG5vZGUpKQkJCQlcCj4gKwkJcmV0dXJuIE5VTEw7CQkJCQkJXAo+ICsJCQkJCQkJ CQlcCj4gKwlpZiAodXNhYmxlX2hvbGVfYWRkcihub2RlLT5maXJzdCwgc2l6ZSkpIHsJCQlcCj4g KwkJbm9kZSA9IG5vZGUtPmZpcnN0OwkJCQkJXAo+ICsJCXdoaWxlICh1c2FibGVfaG9sZV9hZGRy KG5vZGUtPmxhc3QsIHNpemUpKQkJXAo+ICsJCQlub2RlID0gbm9kZS0+bGFzdDsJCQkJXAo+ICsJ CXJldHVybiByYl9ob2xlX2FkZHJfdG9fbm9kZShub2RlKTsJCQlcCj4gKwl9CQkJCQkJCQlcCj4g KwkJCQkJCQkJCVwKPiArCXdoaWxlICgocGFyZW50ID0gcmJfcGFyZW50KG5vZGUpKSAmJiBub2Rl ID09IHBhcmVudC0+Zmlyc3QpCVwKPiArCQlub2RlID0gcGFyZW50OwkJCQkJCVwKPiArCQkJCQkJ CQkJXAo+ICsJcmV0dXJuIHJiX2hvbGVfYWRkcl90b19ub2RlKHBhcmVudCk7CQkJCVwKPiAgIH0K PiAgIAo+IC0vKioKPiAtICogbmV4dF9ob2xlX2xvd19hZGRyIC0gcmV0dXJucyBuZXh0IGhvbGUg Zm9yIGEgRFJNX01NX0lOU0VSVF9MT1cgbW9kZSByZXF1ZXN0Cj4gLSAqIEBlbnRyeTogcHJldmlv dXNseSBzZWxlY3RlZCBkcm1fbW1fbm9kZQo+IC0gKiBAc2l6ZTogc2l6ZSBvZiB0aGUgYSBob2xl IG5lZWRlZCBmb3IgdGhlIHJlcXVlc3QKPiAtICoKPiAtICogVGhpcyBmdW5jdGlvbiB3aWxsIHZl cmlmeSB3aGV0aGVyIHJpZ2h0IHN1YnRyZWUgb2YgQGVudHJ5IGhhcyBob2xlIGJpZyBlbm91Z2gK PiAtICogdG8gZml0IHRoZSByZXF1dGVzdGVkIHNpemUuIElmIHNvLCBpdCB3aWxsIHJldHVybiBu ZXh0IG5vZGUgb2YgQGVudHJ5IG9yCj4gLSAqIGVsc2UgaXQgd2lsbCByZXR1cm4gcGFyZW50IG5v ZGUgb2YgQGVudHJ5Cj4gLSAqCj4gLSAqIEl0IHdpbGwgYWxzbyBza2lwIHRoZSBjb21wbGV0ZSBy aWdodCBzdWJ0cmVlIGlmIHN1YnRyZWVfbWF4X2hvbGUgb2YgdGhhdAo+IC0gKiBzdWJ0cmVlIGlz IHNhbWUgYXMgdGhlIHN1YnRyZWVfbWF4X2hvbGUgb2YgdGhlIEBlbnRyeS4KPiAtICoKPiAtICog UmV0dXJuczoKPiAtICogbmV4dCBub2RlIG9mIEBlbnRyeSBpZiByaWdodCBzdWJ0cmVlIG9mIEBl bnRyeSBjYW4gc2VydmUgdGhlIHJlcXVlc3Qgb3IKPiAtICogZWxzZSByZXR1cm4gcGFyZW50IG9m IEBlbnRyeQo+IC0gKi8KPiAtc3RhdGljIHN0cnVjdCBkcm1fbW1fbm9kZSAqCj4gLW5leHRfaG9s ZV9sb3dfYWRkcihzdHJ1Y3QgZHJtX21tX25vZGUgKmVudHJ5LCB1NjQgc2l6ZSkKPiAtewo+IC0J c3RydWN0IHJiX25vZGUgKnJiX25vZGUsICpyaWdodF9yYl9ub2RlLCAqcGFyZW50X3JiX25vZGU7 Cj4gLQlzdHJ1Y3QgZHJtX21tX25vZGUgKnJpZ2h0X25vZGU7Cj4gLQo+IC0JaWYgKCFlbnRyeSkK PiAtCQlyZXR1cm4gTlVMTDsKPiAtCj4gLQlyYl9ub2RlID0gJmVudHJ5LT5yYl9ob2xlX2FkZHI7 Cj4gLQlpZiAocmJfbm9kZS0+cmJfcmlnaHQpIHsKPiAtCQlyaWdodF9yYl9ub2RlID0gcmJfbm9k ZS0+cmJfcmlnaHQ7Cj4gLQkJcGFyZW50X3JiX25vZGUgPSByYl9wYXJlbnQocmJfbm9kZSk7Cj4g LQkJcmlnaHRfbm9kZSA9IHJiX2VudHJ5KHJpZ2h0X3JiX25vZGUsCj4gLQkJCQkgICAgICBzdHJ1 Y3QgZHJtX21tX25vZGUsIHJiX2hvbGVfYWRkcik7Cj4gLQkJaWYgKHJpZ2h0X25vZGUtPnN1YnRy ZWVfbWF4X2hvbGUgPCBzaXplICYmCj4gLQkJICAgIHBhcmVudF9yYl9ub2RlICYmIHBhcmVudF9y Yl9ub2RlLT5yYl9yaWdodCAhPSByYl9ub2RlKQo+IC0JCQlyZXR1cm4gcmJfaG9sZV9hZGRyX3Rv X25vZGUocGFyZW50X3JiX25vZGUpOwo+IC0JfQo+IC0KPiAtCXJldHVybiByYl9ob2xlX2FkZHJf dG9fbm9kZShyYl9uZXh0KHJiX25vZGUpKTsKPiAtfQo+ICtERUNMQVJFX05FWFRfSE9MRV9BRERS KG5leHRfaG9sZV9oaWdoX2FkZHIsIHJiX2xlZnQsIHJiX3JpZ2h0KQo+ICtERUNMQVJFX05FWFRf SE9MRV9BRERSKG5leHRfaG9sZV9sb3dfYWRkciwgcmJfcmlnaHQsIHJiX2xlZnQpCj4gICAKPiAg IHN0YXRpYyBzdHJ1Y3QgZHJtX21tX25vZGUgKgo+ICAgbmV4dF9ob2xlKHN0cnVjdCBkcm1fbW0g Km1tLApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK