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=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 53548C38A24 for ; Thu, 7 May 2020 12:07:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 255F52075E for ; Thu, 7 May 2020 12:07:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mg.codeaurora.org header.i=@mg.codeaurora.org header.b="wy32FOb0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725857AbgEGMHF (ORCPT ); Thu, 7 May 2020 08:07:05 -0400 Received: from mail26.static.mailgun.info ([104.130.122.26]:56260 "EHLO mail26.static.mailgun.info" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725985AbgEGMHE (ORCPT ); Thu, 7 May 2020 08:07:04 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1588853223; h=Message-ID: References: In-Reply-To: Subject: Cc: To: From: Date: Content-Transfer-Encoding: Content-Type: MIME-Version: Sender; bh=CsTjSpDacRW1HUymiU2kvvRQCndHnkINhBw2dj0kpdw=; b=wy32FOb0exLtrsK6W/oURLgA72jwU1Qt4BsIPjCiuJIIQf8xAV8yXXpmE5hv99MZLs4aevs2 uX2Gd3IhnUa7l1p8MjUShO+ySY+Rl5PkEDhs8bbjFQcKBs3yezM0MqfVzzj/BNrH6F8Pj5IN XlvMRreA5t+hLO1WzvHaPcbZqcY= X-Mailgun-Sending-Ip: 104.130.122.26 X-Mailgun-Sid: WyI1MzIzYiIsICJsaW51eC1hcm0tbXNtQHZnZXIua2VybmVsLm9yZyIsICJiZTllNGEiXQ== Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by mxa.mailgun.org with ESMTP id 5eb3f9d2.7efd1eecbce0-smtp-out-n02; Thu, 07 May 2020 12:06:42 -0000 (UTC) Received: by smtp.codeaurora.org (Postfix, from userid 1001) id AB34DC44799; Thu, 7 May 2020 12:06:42 +0000 (UTC) Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: saiprakash.ranjan) by smtp.codeaurora.org (Postfix) with ESMTPSA id 88106C4478F; Thu, 7 May 2020 12:06:41 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Thu, 07 May 2020 17:36:41 +0530 From: Sai Prakash Ranjan To: Robin Murphy , Rob Clark Cc: Will Deacon , Joerg Roedel , Jordan Crouse , iommu@lists.linux-foundation.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: Re: [PATCH] iomm/arm-smmu: Add stall implementation hook In-Reply-To: <1ced023b-157c-21a0-ac75-1adef7f029f0@arm.com> References: <20200421202004.11686-1-saiprakash.ranjan@codeaurora.org> <1ced023b-157c-21a0-ac75-1adef7f029f0@arm.com> Message-ID: X-Sender: saiprakash.ranjan@codeaurora.org User-Agent: Roundcube Webmail/1.3.9 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Hi Robin, On 2020-05-07 16:25, Robin Murphy wrote: > On 2020-05-07 11:14 am, Sai Prakash Ranjan wrote: >> Hi Will, Robin >> >> On 2020-04-22 01:50, Sai Prakash Ranjan wrote: >>> Add stall implementation hook to enable stalling >>> faults on QCOM platforms which supports it without >>> causing any kind of hardware mishaps. Without this >>> on QCOM platforms, GPU faults can cause unrelated >>> GPU memory accesses to return zeroes. This has the >>> unfortunate result of command-stream reads from CP >>> getting invalid data, causing a cascade of fail. > > I think this came up before, but something about this rationale > doesn't add up - we're not *using* stalls at all, we're still > terminating faulting transactions unconditionally; we're just using > CFCFG to terminate them with a slight delay, rather than immediately. > It's really not clear how or why that makes a difference. Is it a GPU > bug? Or an SMMU bug? Is this reliable (or even a documented workaround > for something), or might things start blowing up again if any other > behaviour subtly changes? I'm not dead set against adding this, but > I'd *really* like to have a lot more confidence in it. > Yes it has come up before, you can find details in below links. - https://patchwork.kernel.org/patch/9953803/ - https://patchwork.kernel.org/patch/10618713/ Rob Clark can add more details on this probably for the GPU faults. As for the reliability, downstream kernel(I mean kernels with which android devices with QCOM chipsets are shipped) has stalling enabled for a long time now and has been stable in the field. So we can say that we are safe with this enabled in QCOM implementation. >>> Suggested-by: Rob Clark >>> Signed-off-by: Sai Prakash Ranjan >>> --- >>> This has been attempted previously by Rob Clark in 2017, 2018. >>> Hopefully we can get something concluded in 2020. >>>  * https://patchwork.kernel.org/patch/9953803/ >>>  * https://patchwork.kernel.org/patch/10618713/ >>> --- >>>  drivers/iommu/arm-smmu-qcom.c | 1 + >>>  drivers/iommu/arm-smmu.c      | 7 +++++++ >>>  drivers/iommu/arm-smmu.h      | 1 + >>>  3 files changed, 9 insertions(+) >>> >>> diff --git a/drivers/iommu/arm-smmu-qcom.c >>> b/drivers/iommu/arm-smmu-qcom.c >>> index 24c071c1d8b0..a13b229389d4 100644 >>> --- a/drivers/iommu/arm-smmu-qcom.c >>> +++ b/drivers/iommu/arm-smmu-qcom.c >>> @@ -32,6 +32,7 @@ static int qcom_sdm845_smmu500_reset(struct >>> arm_smmu_device *smmu) >>> >>>  static const struct arm_smmu_impl qcom_smmu_impl = { >>>      .reset = qcom_sdm845_smmu500_reset, >>> +    .stall = true, >>>  }; >>> >>>  struct arm_smmu_device *qcom_smmu_impl_init(struct arm_smmu_device >>> *smmu) >>> diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c >>> index e622f4e33379..16b03fca9966 100644 >>> --- a/drivers/iommu/arm-smmu.c >>> +++ b/drivers/iommu/arm-smmu.c >>> @@ -488,6 +488,11 @@ static irqreturn_t arm_smmu_context_fault(int >>> irq, void *dev) >>>                  fsr, iova, fsynr, cbfrsynra, idx); >>> >>>      arm_smmu_cb_write(smmu, idx, ARM_SMMU_CB_FSR, fsr); >>> + >>> +    if (smmu->impl && smmu->impl->stall && (fsr & ARM_SMMU_FSR_SS)) >>> +        arm_smmu_cb_write(smmu, idx, ARM_SMMU_CB_RESUME, >>> +                  ARM_SMMU_RESUME_TERMINATE); > > Shouldn't this be *before* the write to FSR, in case the outstanding > fault causes that to be immediately reasserted before we write > CB_RESUME and we end up immediately taking the IRQ a second time? > Yes, I will fixup this in the next version. > (The overall enablement being in impl is sound, but you still don't > get to play "works on my machine" in the architectural code :P) > We could have our own context fault handler in QCOM implementation, but that would just be duplicating things from arm-smmu context fault handler. So I did not think it makes much sense to have our own fault handler in qcom impl just for enabling stall model. Thanks, Sai -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation 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=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 DB280C38A2A for ; Thu, 7 May 2020 12:07:07 +0000 (UTC) Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (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 A1B30207DD for ; Thu, 7 May 2020 12:07:07 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mg.codeaurora.org header.i=@mg.codeaurora.org header.b="wy32FOb0" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A1B30207DD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 5FB2C87416; Thu, 7 May 2020 12:07:07 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3_txwjqEZiDt; Thu, 7 May 2020 12:07:06 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by fraxinus.osuosl.org (Postfix) with ESMTP id B4A0585F88; Thu, 7 May 2020 12:07:06 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 94216C0865; Thu, 7 May 2020 12:07:06 +0000 (UTC) Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 33E42C07FF for ; Thu, 7 May 2020 12:07:05 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id 1BEEB226D8 for ; Thu, 7 May 2020 12:07:05 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D15P9LRBqpWr for ; Thu, 7 May 2020 12:07:03 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail27.static.mailgun.info (mail27.static.mailgun.info [104.130.122.27]) by silver.osuosl.org (Postfix) with ESMTPS id 5B3A6214E9 for ; Thu, 7 May 2020 12:06:59 +0000 (UTC) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1588853223; h=Message-ID: References: In-Reply-To: Subject: Cc: To: From: Date: Content-Transfer-Encoding: Content-Type: MIME-Version: Sender; bh=CsTjSpDacRW1HUymiU2kvvRQCndHnkINhBw2dj0kpdw=; b=wy32FOb0exLtrsK6W/oURLgA72jwU1Qt4BsIPjCiuJIIQf8xAV8yXXpmE5hv99MZLs4aevs2 uX2Gd3IhnUa7l1p8MjUShO+ySY+Rl5PkEDhs8bbjFQcKBs3yezM0MqfVzzj/BNrH6F8Pj5IN XlvMRreA5t+hLO1WzvHaPcbZqcY= X-Mailgun-Sending-Ip: 104.130.122.27 X-Mailgun-Sid: WyI3NDkwMCIsICJpb21tdUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZyIsICJiZTllNGEiXQ== Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by mxa.mailgun.org with ESMTP id 5eb3f9d2.7fc76730bbc8-smtp-out-n03; Thu, 07 May 2020 12:06:42 -0000 (UTC) Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 85DE5C00449; Thu, 7 May 2020 12:06:42 +0000 (UTC) Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: saiprakash.ranjan) by smtp.codeaurora.org (Postfix) with ESMTPSA id 88106C4478F; Thu, 7 May 2020 12:06:41 +0000 (UTC) MIME-Version: 1.0 Date: Thu, 07 May 2020 17:36:41 +0530 From: Sai Prakash Ranjan To: Robin Murphy , Rob Clark Subject: Re: [PATCH] iomm/arm-smmu: Add stall implementation hook In-Reply-To: <1ced023b-157c-21a0-ac75-1adef7f029f0@arm.com> References: <20200421202004.11686-1-saiprakash.ranjan@codeaurora.org> <1ced023b-157c-21a0-ac75-1adef7f029f0@arm.com> Message-ID: X-Sender: saiprakash.ranjan@codeaurora.org User-Agent: Roundcube Webmail/1.3.9 Cc: linux-arm-msm@vger.kernel.org, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Will Deacon , linux-arm-kernel@lists.infradead.org X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Development issues for Linux IOMMU support 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: iommu-bounces@lists.linux-foundation.org Sender: "iommu" SGkgUm9iaW4sCgpPbiAyMDIwLTA1LTA3IDE2OjI1LCBSb2JpbiBNdXJwaHkgd3JvdGU6Cj4gT24g MjAyMC0wNS0wNyAxMToxNCBhbSwgU2FpIFByYWthc2ggUmFuamFuIHdyb3RlOgo+PiBIaSBXaWxs LCBSb2Jpbgo+PiAKPj4gT24gMjAyMC0wNC0yMiAwMTo1MCwgU2FpIFByYWthc2ggUmFuamFuIHdy b3RlOgo+Pj4gQWRkIHN0YWxsIGltcGxlbWVudGF0aW9uIGhvb2sgdG8gZW5hYmxlIHN0YWxsaW5n Cj4+PiBmYXVsdHMgb24gUUNPTSBwbGF0Zm9ybXMgd2hpY2ggc3VwcG9ydHMgaXQgd2l0aG91dAo+ Pj4gY2F1c2luZyBhbnkga2luZCBvZiBoYXJkd2FyZSBtaXNoYXBzLiBXaXRob3V0IHRoaXMKPj4+ IG9uIFFDT00gcGxhdGZvcm1zLCBHUFUgZmF1bHRzIGNhbiBjYXVzZSB1bnJlbGF0ZWQKPj4+IEdQ VSBtZW1vcnkgYWNjZXNzZXMgdG8gcmV0dXJuIHplcm9lcy4gVGhpcyBoYXMgdGhlCj4+PiB1bmZv cnR1bmF0ZSByZXN1bHQgb2YgY29tbWFuZC1zdHJlYW0gcmVhZHMgZnJvbSBDUAo+Pj4gZ2V0dGlu ZyBpbnZhbGlkIGRhdGEsIGNhdXNpbmcgYSBjYXNjYWRlIG9mIGZhaWwuCj4gCj4gSSB0aGluayB0 aGlzIGNhbWUgdXAgYmVmb3JlLCBidXQgc29tZXRoaW5nIGFib3V0IHRoaXMgcmF0aW9uYWxlCj4g ZG9lc24ndCBhZGQgdXAgLSB3ZSdyZSBub3QgKnVzaW5nKiBzdGFsbHMgYXQgYWxsLCB3ZSdyZSBz dGlsbAo+IHRlcm1pbmF0aW5nIGZhdWx0aW5nIHRyYW5zYWN0aW9ucyB1bmNvbmRpdGlvbmFsbHk7 IHdlJ3JlIGp1c3QgdXNpbmcKPiBDRkNGRyB0byB0ZXJtaW5hdGUgdGhlbSB3aXRoIGEgc2xpZ2h0 IGRlbGF5LCByYXRoZXIgdGhhbiBpbW1lZGlhdGVseS4KPiBJdCdzIHJlYWxseSBub3QgY2xlYXIg aG93IG9yIHdoeSB0aGF0IG1ha2VzIGEgZGlmZmVyZW5jZS4gSXMgaXQgYSBHUFUKPiBidWc/IE9y IGFuIFNNTVUgYnVnPyBJcyB0aGlzIHJlbGlhYmxlIChvciBldmVuIGEgZG9jdW1lbnRlZCB3b3Jr YXJvdW5kCj4gZm9yIHNvbWV0aGluZyksIG9yIG1pZ2h0IHRoaW5ncyBzdGFydCBibG93aW5nIHVw IGFnYWluIGlmIGFueSBvdGhlcgo+IGJlaGF2aW91ciBzdWJ0bHkgY2hhbmdlcz8gSSdtIG5vdCBk ZWFkIHNldCBhZ2FpbnN0IGFkZGluZyB0aGlzLCBidXQKPiBJJ2QgKnJlYWxseSogbGlrZSB0byBo YXZlIGEgbG90IG1vcmUgY29uZmlkZW5jZSBpbiBpdC4KPiAKClllcyBpdCBoYXMgY29tZSB1cCBi ZWZvcmUsIHlvdSBjYW4gZmluZCBkZXRhaWxzIGluIGJlbG93IGxpbmtzLgogIC0gaHR0cHM6Ly9w YXRjaHdvcmsua2VybmVsLm9yZy9wYXRjaC85OTUzODAzLwogIC0gaHR0cHM6Ly9wYXRjaHdvcmsu a2VybmVsLm9yZy9wYXRjaC8xMDYxODcxMy8KClJvYiBDbGFyayBjYW4gYWRkIG1vcmUgZGV0YWls cyBvbiB0aGlzIHByb2JhYmx5IGZvciB0aGUgR1BVIGZhdWx0cy4KQXMgZm9yIHRoZSByZWxpYWJp bGl0eSwgZG93bnN0cmVhbSBrZXJuZWwoSSBtZWFuIGtlcm5lbHMgd2l0aCB3aGljaCAKYW5kcm9p ZApkZXZpY2VzIHdpdGggUUNPTSBjaGlwc2V0cyBhcmUgc2hpcHBlZCkgaGFzIHN0YWxsaW5nIGVu YWJsZWQgZm9yIGEgbG9uZyAKdGltZQpub3cgYW5kIGhhcyBiZWVuIHN0YWJsZSBpbiB0aGUgZmll bGQuIFNvIHdlIGNhbiBzYXkgdGhhdCB3ZSBhcmUgc2FmZSAKd2l0aAp0aGlzIGVuYWJsZWQgaW4g UUNPTSBpbXBsZW1lbnRhdGlvbi4KCj4+PiBTdWdnZXN0ZWQtYnk6IFJvYiBDbGFyayA8cm9iZGNs YXJrQGdtYWlsLmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6IFNhaSBQcmFrYXNoIFJhbmphbiA8c2Fp cHJha2FzaC5yYW5qYW5AY29kZWF1cm9yYS5vcmc+Cj4+PiAtLS0KPj4+IFRoaXMgaGFzIGJlZW4g YXR0ZW1wdGVkIHByZXZpb3VzbHkgYnkgUm9iIENsYXJrIGluIDIwMTcsIDIwMTguCj4+PiBIb3Bl ZnVsbHkgd2UgY2FuIGdldCBzb21ldGhpbmcgY29uY2x1ZGVkIGluIDIwMjAuCj4+PiDCoCogaHR0 cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wYXRjaC85OTUzODAzLwo+Pj4gwqAqIGh0dHBzOi8v cGF0Y2h3b3JrLmtlcm5lbC5vcmcvcGF0Y2gvMTA2MTg3MTMvCj4+PiAtLS0KPj4+IMKgZHJpdmVy cy9pb21tdS9hcm0tc21tdS1xY29tLmMgfCAxICsKPj4+IMKgZHJpdmVycy9pb21tdS9hcm0tc21t dS5jwqDCoMKgwqDCoCB8IDcgKysrKysrKwo+Pj4gwqBkcml2ZXJzL2lvbW11L2FybS1zbW11LmjC oMKgwqDCoMKgIHwgMSArCj4+PiDCoDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCj4+ PiAKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2FybS1zbW11LXFjb20uYyAKPj4+IGIv ZHJpdmVycy9pb21tdS9hcm0tc21tdS1xY29tLmMKPj4+IGluZGV4IDI0YzA3MWMxZDhiMC4uYTEz YjIyOTM4OWQ0IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9pb21tdS9hcm0tc21tdS1xY29tLmMK Pj4+ICsrKyBiL2RyaXZlcnMvaW9tbXUvYXJtLXNtbXUtcWNvbS5jCj4+PiBAQCAtMzIsNiArMzIs NyBAQCBzdGF0aWMgaW50IHFjb21fc2RtODQ1X3NtbXU1MDBfcmVzZXQoc3RydWN0Cj4+PiBhcm1f c21tdV9kZXZpY2UgKnNtbXUpCj4+PiAKPj4+IMKgc3RhdGljIGNvbnN0IHN0cnVjdCBhcm1fc21t dV9pbXBsIHFjb21fc21tdV9pbXBsID0gewo+Pj4gwqDCoMKgwqAgLnJlc2V0ID0gcWNvbV9zZG04 NDVfc21tdTUwMF9yZXNldCwKPj4+ICvCoMKgwqAgLnN0YWxsID0gdHJ1ZSwKPj4+IMKgfTsKPj4+ IAo+Pj4gwqBzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlICpxY29tX3NtbXVfaW1wbF9pbml0KHN0cnVj dCBhcm1fc21tdV9kZXZpY2UgCj4+PiAqc21tdSkKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lv bW11L2FybS1zbW11LmMgYi9kcml2ZXJzL2lvbW11L2FybS1zbW11LmMKPj4+IGluZGV4IGU2MjJm NGUzMzM3OS4uMTZiMDNmY2E5OTY2IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9pb21tdS9hcm0t c21tdS5jCj4+PiArKysgYi9kcml2ZXJzL2lvbW11L2FybS1zbW11LmMKPj4+IEBAIC00ODgsNiAr NDg4LDExIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBhcm1fc21tdV9jb250ZXh0X2ZhdWx0KGludAo+ Pj4gaXJxLCB2b2lkICpkZXYpCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBm c3IsIGlvdmEsIGZzeW5yLCBjYmZyc3lucmEsIGlkeCk7Cj4+PiAKPj4+IMKgwqDCoMKgIGFybV9z bW11X2NiX3dyaXRlKHNtbXUsIGlkeCwgQVJNX1NNTVVfQ0JfRlNSLCBmc3IpOwo+Pj4gKwo+Pj4g K8KgwqDCoCBpZiAoc21tdS0+aW1wbCAmJiBzbW11LT5pbXBsLT5zdGFsbCAmJiAoZnNyICYgQVJN X1NNTVVfRlNSX1NTKSkKPj4+ICvCoMKgwqDCoMKgwqDCoCBhcm1fc21tdV9jYl93cml0ZShzbW11 LCBpZHgsIEFSTV9TTU1VX0NCX1JFU1VNRSwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIEFSTV9TTU1VX1JFU1VNRV9URVJNSU5BVEUpOwo+IAo+IFNob3VsZG4ndCB0aGlz IGJlICpiZWZvcmUqIHRoZSB3cml0ZSB0byBGU1IsIGluIGNhc2UgdGhlIG91dHN0YW5kaW5nCj4g ZmF1bHQgY2F1c2VzIHRoYXQgdG8gYmUgaW1tZWRpYXRlbHkgcmVhc3NlcnRlZCBiZWZvcmUgd2Ug d3JpdGUKPiBDQl9SRVNVTUUgYW5kIHdlIGVuZCB1cCBpbW1lZGlhdGVseSB0YWtpbmcgdGhlIElS USBhIHNlY29uZCB0aW1lPwo+IAoKWWVzLCBJIHdpbGwgZml4dXAgdGhpcyBpbiB0aGUgbmV4dCB2 ZXJzaW9uLgoKPiAoVGhlIG92ZXJhbGwgZW5hYmxlbWVudCBiZWluZyBpbiBpbXBsIGlzIHNvdW5k LCBidXQgeW91IHN0aWxsIGRvbid0Cj4gZ2V0IHRvIHBsYXkgIndvcmtzIG9uIG15IG1hY2hpbmUi IGluIHRoZSBhcmNoaXRlY3R1cmFsIGNvZGUgOlApCj4gCgpXZSBjb3VsZCBoYXZlIG91ciBvd24g Y29udGV4dCBmYXVsdCBoYW5kbGVyIGluIFFDT00gaW1wbGVtZW50YXRpb24sCmJ1dCB0aGF0IHdv dWxkIGp1c3QgYmUgZHVwbGljYXRpbmcgdGhpbmdzIGZyb20gYXJtLXNtbXUgY29udGV4dCBmYXVs dApoYW5kbGVyLiBTbyBJIGRpZCBub3QgdGhpbmsgaXQgbWFrZXMgbXVjaCBzZW5zZSB0byBoYXZl IG91ciBvd24KZmF1bHQgaGFuZGxlciBpbiBxY29tIGltcGwganVzdCBmb3IgZW5hYmxpbmcgc3Rh bGwgbW9kZWwuCgpUaGFua3MsClNhaQoKLS0gClFVQUxDT01NIElORElBLCBvbiBiZWhhbGYgb2Yg UXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSAKbWVtYmVyCm9mIENvZGUgQXVy b3JhIEZvcnVtLCBob3N0ZWQgYnkgVGhlIExpbnV4IEZvdW5kYXRpb24KX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaW9tbXUgbWFpbGluZyBsaXN0CmlvbW11 QGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9u Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lvbW11 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=-6.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 132CBC38A2A for ; Thu, 7 May 2020 12:07:01 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 D625A20CC7 for ; Thu, 7 May 2020 12:07:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="S8MrD3LN"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mg.codeaurora.org header.i=@mg.codeaurora.org header.b="KpS8od3b" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D625A20CC7 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-ID:References:In-Reply-To:Subject:To:From: Date:MIME-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=seDmPNrXuzSivJvqP5pnQ1CZ7ObOG3OpBWHPghC9Mo4=; b=S8MrD3LNRObtLmZ/Yg4V1HbNQ 959xcbNpGB84suLFzvBaNYpVVmChk+fqTtAnnNjjr9JlADP2O5XViCnv2SQ9Adx4zmZyidt6kRmIA 6AAc6SZAdM76OPjcBs4UkAeGputMAHLue5QPlJuMzwxXAsd2/iF3YMOT5HJcqaZbwz0L2Ab3jzIhj /djiJOcnIZwbotks4qbdyGELkNV/6nuMUA7HjkT4rPaqxpt5l52B0xive/9aaM+Jwlzs07MDbPXT+ u9+qBLzk1DSfatQiZZ/F0OTaT6m1Zu6tv3sjemSkzjqs7CD6AUe3c9VUG7cFuteT9reHZIxXyBboe NSgoYpQ2g==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jWfIp-0005fd-LI; Thu, 07 May 2020 12:06:59 +0000 Received: from mail27.static.mailgun.info ([104.130.122.27]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jWfId-0005aw-Ql for linux-arm-kernel@lists.infradead.org; Thu, 07 May 2020 12:06:57 +0000 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1588853211; h=Message-ID: References: In-Reply-To: Subject: Cc: To: From: Date: Content-Transfer-Encoding: Content-Type: MIME-Version: Sender; bh=CsTjSpDacRW1HUymiU2kvvRQCndHnkINhBw2dj0kpdw=; b=KpS8od3bdrjj6b4xvAXxiX4cuNXW/WKdXN8+9AQAbtNpWB/8p6T30O5OLNDZl/TIEwGdtvO0 6SMsLUh+6uggYXNVr8TjCg8FYhLq6gPADSD+9ayJSmpWVmmWmuOsOdTT4yuMjm64OiZP/4KJ 0ziP0AWV+TD2lP5T1Ok3ufOb7HE= X-Mailgun-Sending-Ip: 104.130.122.27 X-Mailgun-Sid: WyJiYzAxZiIsICJsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmciLCAiYmU5ZTRhIl0= Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by mxa.mailgun.org with ESMTP id 5eb3f9d2.7f54e90f5c38-smtp-out-n02; Thu, 07 May 2020 12:06:42 -0000 (UTC) Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 670EFC44798; Thu, 7 May 2020 12:06:42 +0000 (UTC) Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: saiprakash.ranjan) by smtp.codeaurora.org (Postfix) with ESMTPSA id 88106C4478F; Thu, 7 May 2020 12:06:41 +0000 (UTC) MIME-Version: 1.0 Date: Thu, 07 May 2020 17:36:41 +0530 From: Sai Prakash Ranjan To: Robin Murphy , Rob Clark Subject: Re: [PATCH] iomm/arm-smmu: Add stall implementation hook In-Reply-To: <1ced023b-157c-21a0-ac75-1adef7f029f0@arm.com> References: <20200421202004.11686-1-saiprakash.ranjan@codeaurora.org> <1ced023b-157c-21a0-ac75-1adef7f029f0@arm.com> Message-ID: X-Sender: saiprakash.ranjan@codeaurora.org User-Agent: Roundcube Webmail/1.3.9 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200507_050651_691685_343885D0 X-CRM114-Status: GOOD ( 22.55 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-arm-msm@vger.kernel.org, Joerg Roedel , iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Jordan Crouse , Will Deacon , linux-arm-kernel@lists.infradead.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgUm9iaW4sCgpPbiAyMDIwLTA1LTA3IDE2OjI1LCBSb2JpbiBNdXJwaHkgd3JvdGU6Cj4gT24g MjAyMC0wNS0wNyAxMToxNCBhbSwgU2FpIFByYWthc2ggUmFuamFuIHdyb3RlOgo+PiBIaSBXaWxs LCBSb2Jpbgo+PiAKPj4gT24gMjAyMC0wNC0yMiAwMTo1MCwgU2FpIFByYWthc2ggUmFuamFuIHdy b3RlOgo+Pj4gQWRkIHN0YWxsIGltcGxlbWVudGF0aW9uIGhvb2sgdG8gZW5hYmxlIHN0YWxsaW5n Cj4+PiBmYXVsdHMgb24gUUNPTSBwbGF0Zm9ybXMgd2hpY2ggc3VwcG9ydHMgaXQgd2l0aG91dAo+ Pj4gY2F1c2luZyBhbnkga2luZCBvZiBoYXJkd2FyZSBtaXNoYXBzLiBXaXRob3V0IHRoaXMKPj4+ IG9uIFFDT00gcGxhdGZvcm1zLCBHUFUgZmF1bHRzIGNhbiBjYXVzZSB1bnJlbGF0ZWQKPj4+IEdQ VSBtZW1vcnkgYWNjZXNzZXMgdG8gcmV0dXJuIHplcm9lcy4gVGhpcyBoYXMgdGhlCj4+PiB1bmZv cnR1bmF0ZSByZXN1bHQgb2YgY29tbWFuZC1zdHJlYW0gcmVhZHMgZnJvbSBDUAo+Pj4gZ2V0dGlu ZyBpbnZhbGlkIGRhdGEsIGNhdXNpbmcgYSBjYXNjYWRlIG9mIGZhaWwuCj4gCj4gSSB0aGluayB0 aGlzIGNhbWUgdXAgYmVmb3JlLCBidXQgc29tZXRoaW5nIGFib3V0IHRoaXMgcmF0aW9uYWxlCj4g ZG9lc24ndCBhZGQgdXAgLSB3ZSdyZSBub3QgKnVzaW5nKiBzdGFsbHMgYXQgYWxsLCB3ZSdyZSBz dGlsbAo+IHRlcm1pbmF0aW5nIGZhdWx0aW5nIHRyYW5zYWN0aW9ucyB1bmNvbmRpdGlvbmFsbHk7 IHdlJ3JlIGp1c3QgdXNpbmcKPiBDRkNGRyB0byB0ZXJtaW5hdGUgdGhlbSB3aXRoIGEgc2xpZ2h0 IGRlbGF5LCByYXRoZXIgdGhhbiBpbW1lZGlhdGVseS4KPiBJdCdzIHJlYWxseSBub3QgY2xlYXIg aG93IG9yIHdoeSB0aGF0IG1ha2VzIGEgZGlmZmVyZW5jZS4gSXMgaXQgYSBHUFUKPiBidWc/IE9y IGFuIFNNTVUgYnVnPyBJcyB0aGlzIHJlbGlhYmxlIChvciBldmVuIGEgZG9jdW1lbnRlZCB3b3Jr YXJvdW5kCj4gZm9yIHNvbWV0aGluZyksIG9yIG1pZ2h0IHRoaW5ncyBzdGFydCBibG93aW5nIHVw IGFnYWluIGlmIGFueSBvdGhlcgo+IGJlaGF2aW91ciBzdWJ0bHkgY2hhbmdlcz8gSSdtIG5vdCBk ZWFkIHNldCBhZ2FpbnN0IGFkZGluZyB0aGlzLCBidXQKPiBJJ2QgKnJlYWxseSogbGlrZSB0byBo YXZlIGEgbG90IG1vcmUgY29uZmlkZW5jZSBpbiBpdC4KPiAKClllcyBpdCBoYXMgY29tZSB1cCBi ZWZvcmUsIHlvdSBjYW4gZmluZCBkZXRhaWxzIGluIGJlbG93IGxpbmtzLgogIC0gaHR0cHM6Ly9w YXRjaHdvcmsua2VybmVsLm9yZy9wYXRjaC85OTUzODAzLwogIC0gaHR0cHM6Ly9wYXRjaHdvcmsu a2VybmVsLm9yZy9wYXRjaC8xMDYxODcxMy8KClJvYiBDbGFyayBjYW4gYWRkIG1vcmUgZGV0YWls cyBvbiB0aGlzIHByb2JhYmx5IGZvciB0aGUgR1BVIGZhdWx0cy4KQXMgZm9yIHRoZSByZWxpYWJp bGl0eSwgZG93bnN0cmVhbSBrZXJuZWwoSSBtZWFuIGtlcm5lbHMgd2l0aCB3aGljaCAKYW5kcm9p ZApkZXZpY2VzIHdpdGggUUNPTSBjaGlwc2V0cyBhcmUgc2hpcHBlZCkgaGFzIHN0YWxsaW5nIGVu YWJsZWQgZm9yIGEgbG9uZyAKdGltZQpub3cgYW5kIGhhcyBiZWVuIHN0YWJsZSBpbiB0aGUgZmll bGQuIFNvIHdlIGNhbiBzYXkgdGhhdCB3ZSBhcmUgc2FmZSAKd2l0aAp0aGlzIGVuYWJsZWQgaW4g UUNPTSBpbXBsZW1lbnRhdGlvbi4KCj4+PiBTdWdnZXN0ZWQtYnk6IFJvYiBDbGFyayA8cm9iZGNs YXJrQGdtYWlsLmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6IFNhaSBQcmFrYXNoIFJhbmphbiA8c2Fp cHJha2FzaC5yYW5qYW5AY29kZWF1cm9yYS5vcmc+Cj4+PiAtLS0KPj4+IFRoaXMgaGFzIGJlZW4g YXR0ZW1wdGVkIHByZXZpb3VzbHkgYnkgUm9iIENsYXJrIGluIDIwMTcsIDIwMTguCj4+PiBIb3Bl ZnVsbHkgd2UgY2FuIGdldCBzb21ldGhpbmcgY29uY2x1ZGVkIGluIDIwMjAuCj4+PiDCoCogaHR0 cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9wYXRjaC85OTUzODAzLwo+Pj4gwqAqIGh0dHBzOi8v cGF0Y2h3b3JrLmtlcm5lbC5vcmcvcGF0Y2gvMTA2MTg3MTMvCj4+PiAtLS0KPj4+IMKgZHJpdmVy cy9pb21tdS9hcm0tc21tdS1xY29tLmMgfCAxICsKPj4+IMKgZHJpdmVycy9pb21tdS9hcm0tc21t dS5jwqDCoMKgwqDCoCB8IDcgKysrKysrKwo+Pj4gwqBkcml2ZXJzL2lvbW11L2FybS1zbW11LmjC oMKgwqDCoMKgIHwgMSArCj4+PiDCoDMgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCj4+ PiAKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2FybS1zbW11LXFjb20uYyAKPj4+IGIv ZHJpdmVycy9pb21tdS9hcm0tc21tdS1xY29tLmMKPj4+IGluZGV4IDI0YzA3MWMxZDhiMC4uYTEz YjIyOTM4OWQ0IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9pb21tdS9hcm0tc21tdS1xY29tLmMK Pj4+ICsrKyBiL2RyaXZlcnMvaW9tbXUvYXJtLXNtbXUtcWNvbS5jCj4+PiBAQCAtMzIsNiArMzIs NyBAQCBzdGF0aWMgaW50IHFjb21fc2RtODQ1X3NtbXU1MDBfcmVzZXQoc3RydWN0Cj4+PiBhcm1f c21tdV9kZXZpY2UgKnNtbXUpCj4+PiAKPj4+IMKgc3RhdGljIGNvbnN0IHN0cnVjdCBhcm1fc21t dV9pbXBsIHFjb21fc21tdV9pbXBsID0gewo+Pj4gwqDCoMKgwqAgLnJlc2V0ID0gcWNvbV9zZG04 NDVfc21tdTUwMF9yZXNldCwKPj4+ICvCoMKgwqAgLnN0YWxsID0gdHJ1ZSwKPj4+IMKgfTsKPj4+ IAo+Pj4gwqBzdHJ1Y3QgYXJtX3NtbXVfZGV2aWNlICpxY29tX3NtbXVfaW1wbF9pbml0KHN0cnVj dCBhcm1fc21tdV9kZXZpY2UgCj4+PiAqc21tdSkKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lv bW11L2FybS1zbW11LmMgYi9kcml2ZXJzL2lvbW11L2FybS1zbW11LmMKPj4+IGluZGV4IGU2MjJm NGUzMzM3OS4uMTZiMDNmY2E5OTY2IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9pb21tdS9hcm0t c21tdS5jCj4+PiArKysgYi9kcml2ZXJzL2lvbW11L2FybS1zbW11LmMKPj4+IEBAIC00ODgsNiAr NDg4LDExIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBhcm1fc21tdV9jb250ZXh0X2ZhdWx0KGludAo+ Pj4gaXJxLCB2b2lkICpkZXYpCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBm c3IsIGlvdmEsIGZzeW5yLCBjYmZyc3lucmEsIGlkeCk7Cj4+PiAKPj4+IMKgwqDCoMKgIGFybV9z bW11X2NiX3dyaXRlKHNtbXUsIGlkeCwgQVJNX1NNTVVfQ0JfRlNSLCBmc3IpOwo+Pj4gKwo+Pj4g K8KgwqDCoCBpZiAoc21tdS0+aW1wbCAmJiBzbW11LT5pbXBsLT5zdGFsbCAmJiAoZnNyICYgQVJN X1NNTVVfRlNSX1NTKSkKPj4+ICvCoMKgwqDCoMKgwqDCoCBhcm1fc21tdV9jYl93cml0ZShzbW11 LCBpZHgsIEFSTV9TTU1VX0NCX1JFU1VNRSwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIEFSTV9TTU1VX1JFU1VNRV9URVJNSU5BVEUpOwo+IAo+IFNob3VsZG4ndCB0aGlz IGJlICpiZWZvcmUqIHRoZSB3cml0ZSB0byBGU1IsIGluIGNhc2UgdGhlIG91dHN0YW5kaW5nCj4g ZmF1bHQgY2F1c2VzIHRoYXQgdG8gYmUgaW1tZWRpYXRlbHkgcmVhc3NlcnRlZCBiZWZvcmUgd2Ug d3JpdGUKPiBDQl9SRVNVTUUgYW5kIHdlIGVuZCB1cCBpbW1lZGlhdGVseSB0YWtpbmcgdGhlIElS USBhIHNlY29uZCB0aW1lPwo+IAoKWWVzLCBJIHdpbGwgZml4dXAgdGhpcyBpbiB0aGUgbmV4dCB2 ZXJzaW9uLgoKPiAoVGhlIG92ZXJhbGwgZW5hYmxlbWVudCBiZWluZyBpbiBpbXBsIGlzIHNvdW5k LCBidXQgeW91IHN0aWxsIGRvbid0Cj4gZ2V0IHRvIHBsYXkgIndvcmtzIG9uIG15IG1hY2hpbmUi IGluIHRoZSBhcmNoaXRlY3R1cmFsIGNvZGUgOlApCj4gCgpXZSBjb3VsZCBoYXZlIG91ciBvd24g Y29udGV4dCBmYXVsdCBoYW5kbGVyIGluIFFDT00gaW1wbGVtZW50YXRpb24sCmJ1dCB0aGF0IHdv dWxkIGp1c3QgYmUgZHVwbGljYXRpbmcgdGhpbmdzIGZyb20gYXJtLXNtbXUgY29udGV4dCBmYXVs dApoYW5kbGVyLiBTbyBJIGRpZCBub3QgdGhpbmsgaXQgbWFrZXMgbXVjaCBzZW5zZSB0byBoYXZl IG91ciBvd24KZmF1bHQgaGFuZGxlciBpbiBxY29tIGltcGwganVzdCBmb3IgZW5hYmxpbmcgc3Rh bGwgbW9kZWwuCgpUaGFua3MsClNhaQoKLS0gClFVQUxDT01NIElORElBLCBvbiBiZWhhbGYgb2Yg UXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gaXMgYSAKbWVtYmVyCm9mIENvZGUgQXVy b3JhIEZvcnVtLCBob3N0ZWQgYnkgVGhlIExpbnV4IEZvdW5kYXRpb24KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK