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=-5.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=no 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 AF20EC433DB for ; Mon, 1 Feb 2021 11:13:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 75D2964E9C for ; Mon, 1 Feb 2021 11:13:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233257AbhBALNh (ORCPT ); Mon, 1 Feb 2021 06:13:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43016 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233221AbhBALNh (ORCPT ); Mon, 1 Feb 2021 06:13:37 -0500 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 92B62C061574 for ; Mon, 1 Feb 2021 03:12:56 -0800 (PST) Received: by mail-wm1-x332.google.com with SMTP id c127so12785067wmf.5 for ; Mon, 01 Feb 2021 03:12:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=AdJJsztSa/PfLkxaK9hi3wgOAf3rWJfVmETfVbPhDQM=; b=BJZkUaVlvArotMj35gc4Ryn1jzYpJODmz4BeBqXzrXY8uWYM5d/12aV/f7BgcY6I96 Sz6IrQvhl4kgb1SpJ5/bNviOzCPmpquY54HzywVEmd6hLl0TdDy/tpVkg5EphHmkgaBh t8P55uFMT3rvXvz8DVI44pagXmLgXNXbAq1DIZBYF8TG2YbVC+COX6RmQ2GL3woWeq57 FpWICNVRpruje4QN6AUBZyTEq7ciqt+XUhg00r4CJGPi1Gp4cHMcGh4Tx6or9Jwc0OMV 75G38yLv2UNNalUAfk/h+NfjYgTJo8EO6E1Lr9T4EysKvQ+2BDYaBsJqXEDGw5WaJUn/ u4cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=AdJJsztSa/PfLkxaK9hi3wgOAf3rWJfVmETfVbPhDQM=; b=E5CSfntjAqVYc7RsJEBgRK5nqGxiEyRe94SmyAziBwmfYSMeNvS+/hL8DEMOFqQQET 3ts6CpILdW2JIbC0rpcsk3p2kBWSAbYLv5aWUpiukXpfXdPUMoN0gs+qRkoVSwk4t0hY /z5+b59Meq8xISUFeTJ77hpr7XNnJQPR37Za4vfb4/YbaJ/W0nfVfH17S4nCgc77KQRQ SdG2Y4m7UtbWOpvT3Kw12HK7NQ63qhQXmin15RdBJ0wDGq1bPv/VUGIWKXOsCh+heW7J otKW+c+iSK0VybiN/nkVvQlO7Vx27yqTVOg5VXZ9NuBmv8NPMLgEjPwYPWw3BB3YsVCN NCvg== X-Gm-Message-State: AOAM532oQhf05++5PHRcmzp6RoSX71G7jTKE2muH/BsjAOEGBpxW2FFf Fer4t3b8fmlNniYuOklMZnZJdA== X-Google-Smtp-Source: ABdhPJzbSmxDnOHXTAtKhAr3owNj0X97Hbyhk6zyvU9cBi4RZpPy0aY0Qw5qlS8+s51rHeesopHFbA== X-Received: by 2002:a05:600c:228c:: with SMTP id 12mr14691553wmf.101.1612177975252; Mon, 01 Feb 2021 03:12:55 -0800 (PST) Received: from myrica ([2001:1715:4e26:a7e0:116c:c27a:3e7f:5eaf]) by smtp.gmail.com with ESMTPSA id v25sm21276665wmh.4.2021.02.01.03.12.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Feb 2021 03:12:54 -0800 (PST) Date: Mon, 1 Feb 2021 12:12:35 +0100 From: Jean-Philippe Brucker To: Auger Eric Cc: joro@8bytes.org, will@kernel.org, lorenzo.pieralisi@arm.com, robh+dt@kernel.org, guohanjun@huawei.com, sudeep.holla@arm.com, rjw@rjwysocki.net, lenb@kernel.org, robin.murphy@arm.com, Jonathan.Cameron@huawei.com, iommu@lists.linux-foundation.org, devicetree@vger.kernel.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-accelerators@lists.ozlabs.org, baolu.lu@linux.intel.com, jacob.jun.pan@linux.intel.com, kevin.tian@intel.com, vdumpa@nvidia.com, zhangfei.gao@linaro.org, shameerali.kolothum.thodi@huawei.com, vivek.gautam@arm.com Subject: Re: [PATCH v12 10/10] iommu/arm-smmu-v3: Add stall support for platform devices Message-ID: References: <20210127154322.3959196-1-jean-philippe@linaro.org> <20210127154322.3959196-11-jean-philippe@linaro.org> <0c609eeb-00b0-7573-fed7-5bc1e6c0b0d1@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <0c609eeb-00b0-7573-fed7-5bc1e6c0b0d1@redhat.com> Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org On Sun, Jan 31, 2021 at 07:29:09PM +0100, Auger Eric wrote: > Hi Jean, > > Some rather minor comments§questions below that may not justify a respin. > > On 1/27/21 4:43 PM, Jean-Philippe Brucker wrote: > > -static bool arm_smmu_iopf_supported(struct arm_smmu_master *master) > > +bool arm_smmu_master_iopf_supported(struct arm_smmu_master *master) > > { > > - return false; > > + /* We're not keeping track of SIDs in fault events */ > shall we? [*] below That would require storing the incoming SID into the iommu_fault_event struct, and retrieve it in arm_smmu_page_response(). Easy enough, but I don't think it's needed for existing devices. > > + if (master->num_streams != 1) > > + return false; [...] > > +static int arm_smmu_page_response(struct device *dev, > > + struct iommu_fault_event *unused, > > + struct iommu_page_response *resp) > > +{ > > + struct arm_smmu_cmdq_ent cmd = {0}; > > + struct arm_smmu_master *master = dev_iommu_priv_get(dev); > > + int sid = master->streams[0].id; > [*] > > + > > + if (master->stall_enabled) { > > + cmd.opcode = CMDQ_OP_RESUME; > > + cmd.resume.sid = sid; > > + cmd.resume.stag = resp->grpid; > > + switch (resp->code) { > > + case IOMMU_PAGE_RESP_INVALID: > add fallthrough? I think fallthrough is mainly useful to tell reader and compiler that a break was omitted on purpose. When two cases are stuck together the intent to merge the flow is clear enough in my opinion. GCC's -Wimplicit-fallthrough doesn't warn in this case. > > + case IOMMU_PAGE_RESP_FAILURE: > > + cmd.resume.resp = CMDQ_RESUME_0_RESP_ABORT; > > + break; [...] > > +static int arm_smmu_handle_evt(struct arm_smmu_device *smmu, u64 *evt) > > +{ > > + int ret; > > + u32 reason; > > + u32 perm = 0; > > + struct arm_smmu_master *master; > > + bool ssid_valid = evt[0] & EVTQ_0_SSV; > > + u32 sid = FIELD_GET(EVTQ_0_SID, evt[0]); > > + struct iommu_fault_event fault_evt = { }; > > + struct iommu_fault *flt = &fault_evt.fault; > > + > > + /* Stage-2 is always pinned at the moment */ > > + if (evt[1] & EVTQ_1_S2) > > + return -EFAULT; > > + > > + master = arm_smmu_find_master(smmu, sid); > > + if (!master) > > + return -EINVAL; > > + > > + if (evt[1] & EVTQ_1_RnW) > > + perm |= IOMMU_FAULT_PERM_READ; > > + else > > + perm |= IOMMU_FAULT_PERM_WRITE; > > + > > + if (evt[1] & EVTQ_1_InD) > > + perm |= IOMMU_FAULT_PERM_EXEC; > > + > > + if (evt[1] & EVTQ_1_PnU) > > + perm |= IOMMU_FAULT_PERM_PRIV; > > + > > + switch (FIELD_GET(EVTQ_0_ID, evt[0])) { > > + case EVT_ID_TRANSLATION_FAULT: > > + case EVT_ID_ADDR_SIZE_FAULT: > > + case EVT_ID_ACCESS_FAULT: > > + reason = IOMMU_FAULT_REASON_PTE_FETCH; > Doesn't it rather map to IOMMU_FAULT_REASON_ACCESS? > /* access flag check failed */" Good point, I guess it didn't exist when I wrote this. And ADDR_SIZE_FAULT corresponds to IOMMU_FAULT_REASON_OOR_ADDRESS now, right? By the way the wording on those two fault reasons, "access flag" and "stage", seems arch-specific - x86 names are "accessed flag" and "level". > > + break; > > + case EVT_ID_PERMISSION_FAULT: > > + reason = IOMMU_FAULT_REASON_PERMISSION; > > + break; > > + default: > > + return -EOPNOTSUPP; > > + } > > + > > + if (evt[1] & EVTQ_1_STALL) { > > + flt->type = IOMMU_FAULT_PAGE_REQ; > > + flt->prm = (struct iommu_fault_page_request) { > > + .flags = IOMMU_FAULT_PAGE_REQUEST_LAST_PAGE, > > + .grpid = FIELD_GET(EVTQ_1_STAG, evt[1]), > > + .perm = perm, > > + .addr = FIELD_GET(EVTQ_2_ADDR, evt[2]), > > + }; > > + > > + if (ssid_valid) { > > + flt->prm.flags |= IOMMU_FAULT_PAGE_REQUEST_PASID_VALID; > > + flt->prm.pasid = FIELD_GET(EVTQ_0_SSID, evt[0]); > > + } > > + } else { > > + flt->type = IOMMU_FAULT_DMA_UNRECOV; > > + flt->event = (struct iommu_fault_unrecoverable) { > > + .reason = reason, > > + .flags = IOMMU_FAULT_UNRECOV_ADDR_VALID | > > + IOMMU_FAULT_UNRECOV_FETCH_ADDR_VALID, > nit: shall IOMMU_FAULT_UNRECOV_FETCH_ADDR_VALID be set here? Supported > unrecoverable faults feature the IPA field which is UNKNOWN for S1 > translations. fetch_addr rather was > corresponding to WALK_EABT.Fetch_addr to me. Right I should drop the IPA part entirely, since we don't report S2 faults in this patch. Thanks, Jean > > + .perm = perm, > > + .addr = FIELD_GET(EVTQ_2_ADDR, evt[2]), > > + .fetch_addr = FIELD_GET(EVTQ_3_IPA, evt[3]), > > + }; 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=-3.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no 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 46208C433E0 for ; Mon, 1 Feb 2021 11:13:01 +0000 (UTC) Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (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 ADCC164D7F for ; Mon, 1 Feb 2021 11:13:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org ADCC164D7F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.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 silver.osuosl.org (Postfix) with ESMTP id 6D3352043D; Mon, 1 Feb 2021 11:13:00 +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 cnAALAzX74a2; Mon, 1 Feb 2021 11:12:59 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by silver.osuosl.org (Postfix) with ESMTP id 5512920000; Mon, 1 Feb 2021 11:12:59 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 3A078C0FA7; Mon, 1 Feb 2021 11:12:59 +0000 (UTC) Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 66A6EC013A for ; Mon, 1 Feb 2021 11:12:58 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 5FC45859BA for ; Mon, 1 Feb 2021 11:12:58 +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 063gBrt9w0iX for ; Mon, 1 Feb 2021 11:12:57 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by fraxinus.osuosl.org (Postfix) with ESMTPS id DC869858FC for ; Mon, 1 Feb 2021 11:12:56 +0000 (UTC) Received: by mail-wm1-f45.google.com with SMTP id y187so12822681wmd.3 for ; Mon, 01 Feb 2021 03:12:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=AdJJsztSa/PfLkxaK9hi3wgOAf3rWJfVmETfVbPhDQM=; b=BJZkUaVlvArotMj35gc4Ryn1jzYpJODmz4BeBqXzrXY8uWYM5d/12aV/f7BgcY6I96 Sz6IrQvhl4kgb1SpJ5/bNviOzCPmpquY54HzywVEmd6hLl0TdDy/tpVkg5EphHmkgaBh t8P55uFMT3rvXvz8DVI44pagXmLgXNXbAq1DIZBYF8TG2YbVC+COX6RmQ2GL3woWeq57 FpWICNVRpruje4QN6AUBZyTEq7ciqt+XUhg00r4CJGPi1Gp4cHMcGh4Tx6or9Jwc0OMV 75G38yLv2UNNalUAfk/h+NfjYgTJo8EO6E1Lr9T4EysKvQ+2BDYaBsJqXEDGw5WaJUn/ u4cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=AdJJsztSa/PfLkxaK9hi3wgOAf3rWJfVmETfVbPhDQM=; b=H8yOolguuS8ybp4zhP5a7IjcDS8qkyFUdJfJgyzRzvEr+sYQlPUsm+eOi4q4X4dRzn 5JCt9Gek3QY4lQy95L9ZGVRp66w5tueSzrJTJxNB3BFDjcV51izyU5SVvLK5JiWftgau TDr0XZ1ozO7JRPuHW2FQFERMwOtkJAAWZOQ9bT4m4CUZx8wXv6k0l7kK26EUn8/dhuyn X7YObE2aFKUHL6Cc59tHi9B4L6xhwnLZohGcMgpseV4cMlHBgjtXj0GEOe1lPY8sng8h F8Ddz3pkSK1c6IPqZuY1Ua5IpuTtlxw6y9XQkn328T/74qDRkMybO5Az8AxCkbF5KgXC PXHg== X-Gm-Message-State: AOAM532kYZ7+sG96tLJqEYudWkfkc1SDoV/BeAEEW78P9USj24KdMgKt 1ieyKNFjKDneBrxKmuyqPL2VMw== X-Google-Smtp-Source: ABdhPJzbSmxDnOHXTAtKhAr3owNj0X97Hbyhk6zyvU9cBi4RZpPy0aY0Qw5qlS8+s51rHeesopHFbA== X-Received: by 2002:a05:600c:228c:: with SMTP id 12mr14691553wmf.101.1612177975252; Mon, 01 Feb 2021 03:12:55 -0800 (PST) Received: from myrica ([2001:1715:4e26:a7e0:116c:c27a:3e7f:5eaf]) by smtp.gmail.com with ESMTPSA id v25sm21276665wmh.4.2021.02.01.03.12.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Feb 2021 03:12:54 -0800 (PST) Date: Mon, 1 Feb 2021 12:12:35 +0100 From: Jean-Philippe Brucker To: Auger Eric Subject: Re: [PATCH v12 10/10] iommu/arm-smmu-v3: Add stall support for platform devices Message-ID: References: <20210127154322.3959196-1-jean-philippe@linaro.org> <20210127154322.3959196-11-jean-philippe@linaro.org> <0c609eeb-00b0-7573-fed7-5bc1e6c0b0d1@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <0c609eeb-00b0-7573-fed7-5bc1e6c0b0d1@redhat.com> Cc: vivek.gautam@arm.com, guohanjun@huawei.com, will@kernel.org, linux-acpi@vger.kernel.org, zhangfei.gao@linaro.org, lenb@kernel.org, devicetree@vger.kernel.org, kevin.tian@intel.com, robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org, rjw@rjwysocki.net, iommu@lists.linux-foundation.org, sudeep.holla@arm.com, robin.murphy@arm.com, linux-accelerators@lists.ozlabs.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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" T24gU3VuLCBKYW4gMzEsIDIwMjEgYXQgMDc6Mjk6MDlQTSArMDEwMCwgQXVnZXIgRXJpYyB3cm90 ZToKPiBIaSBKZWFuLAo+IAo+IFNvbWUgcmF0aGVyIG1pbm9yIGNvbW1lbnRzwqdxdWVzdGlvbnMg YmVsb3cgdGhhdCBtYXkgbm90IGp1c3RpZnkgYSByZXNwaW4uCj4gCj4gT24gMS8yNy8yMSA0OjQz IFBNLCBKZWFuLVBoaWxpcHBlIEJydWNrZXIgd3JvdGU6Cj4gPiAtc3RhdGljIGJvb2wgYXJtX3Nt bXVfaW9wZl9zdXBwb3J0ZWQoc3RydWN0IGFybV9zbW11X21hc3RlciAqbWFzdGVyKQo+ID4gK2Jv b2wgYXJtX3NtbXVfbWFzdGVyX2lvcGZfc3VwcG9ydGVkKHN0cnVjdCBhcm1fc21tdV9tYXN0ZXIg Km1hc3RlcikKPiA+ICB7Cj4gPiAtCXJldHVybiBmYWxzZTsKPiA+ICsJLyogV2UncmUgbm90IGtl ZXBpbmcgdHJhY2sgb2YgU0lEcyBpbiBmYXVsdCBldmVudHMgKi8KPiBzaGFsbCB3ZT8gWypdIGJl bG93CgpUaGF0IHdvdWxkIHJlcXVpcmUgc3RvcmluZyB0aGUgaW5jb21pbmcgU0lEIGludG8gdGhl IGlvbW11X2ZhdWx0X2V2ZW50CnN0cnVjdCwgYW5kIHJldHJpZXZlIGl0IGluIGFybV9zbW11X3Bh Z2VfcmVzcG9uc2UoKS4gRWFzeSBlbm91Z2gsIGJ1dCBJCmRvbid0IHRoaW5rIGl0J3MgbmVlZGVk IGZvciBleGlzdGluZyBkZXZpY2VzLgoKPiA+ICsJaWYgKG1hc3Rlci0+bnVtX3N0cmVhbXMgIT0g MSkKPiA+ICsJCXJldHVybiBmYWxzZTsKWy4uLl0KPiA+ICtzdGF0aWMgaW50IGFybV9zbW11X3Bh Z2VfcmVzcG9uc2Uoc3RydWN0IGRldmljZSAqZGV2LAo+ID4gKwkJCQkgIHN0cnVjdCBpb21tdV9m YXVsdF9ldmVudCAqdW51c2VkLAo+ID4gKwkJCQkgIHN0cnVjdCBpb21tdV9wYWdlX3Jlc3BvbnNl ICpyZXNwKQo+ID4gK3sKPiA+ICsJc3RydWN0IGFybV9zbW11X2NtZHFfZW50IGNtZCA9IHswfTsK PiA+ICsJc3RydWN0IGFybV9zbW11X21hc3RlciAqbWFzdGVyID0gZGV2X2lvbW11X3ByaXZfZ2V0 KGRldik7Cj4gPiArCWludCBzaWQgPSBtYXN0ZXItPnN0cmVhbXNbMF0uaWQ7Cj4gWypdCj4gPiAr Cj4gPiArCWlmIChtYXN0ZXItPnN0YWxsX2VuYWJsZWQpIHsKPiA+ICsJCWNtZC5vcGNvZGUJCT0g Q01EUV9PUF9SRVNVTUU7Cj4gPiArCQljbWQucmVzdW1lLnNpZAkJPSBzaWQ7Cj4gPiArCQljbWQu cmVzdW1lLnN0YWcJCT0gcmVzcC0+Z3JwaWQ7Cj4gPiArCQlzd2l0Y2ggKHJlc3AtPmNvZGUpIHsK PiA+ICsJCWNhc2UgSU9NTVVfUEFHRV9SRVNQX0lOVkFMSUQ6Cj4gYWRkIGZhbGx0aHJvdWdoPwoK SSB0aGluayBmYWxsdGhyb3VnaCBpcyBtYWlubHkgdXNlZnVsIHRvIHRlbGwgcmVhZGVyIGFuZCBj b21waWxlciB0aGF0IGEKYnJlYWsgd2FzIG9taXR0ZWQgb24gcHVycG9zZS4gV2hlbiB0d28gY2Fz ZXMgYXJlIHN0dWNrIHRvZ2V0aGVyIHRoZSBpbnRlbnQKdG8gbWVyZ2UgdGhlIGZsb3cgaXMgY2xl YXIgZW5vdWdoIGluIG15IG9waW5pb24uIEdDQydzCi1XaW1wbGljaXQtZmFsbHRocm91Z2ggZG9l c24ndCB3YXJuIGluIHRoaXMgY2FzZS4KCj4gPiArCQljYXNlIElPTU1VX1BBR0VfUkVTUF9GQUlM VVJFOgo+ID4gKwkJCWNtZC5yZXN1bWUucmVzcCA9IENNRFFfUkVTVU1FXzBfUkVTUF9BQk9SVDsK PiA+ICsJCQlicmVhazsKWy4uLl0KPiA+ICtzdGF0aWMgaW50IGFybV9zbW11X2hhbmRsZV9ldnQo c3RydWN0IGFybV9zbW11X2RldmljZSAqc21tdSwgdTY0ICpldnQpCj4gPiArewo+ID4gKwlpbnQg cmV0Owo+ID4gKwl1MzIgcmVhc29uOwo+ID4gKwl1MzIgcGVybSA9IDA7Cj4gPiArCXN0cnVjdCBh cm1fc21tdV9tYXN0ZXIgKm1hc3RlcjsKPiA+ICsJYm9vbCBzc2lkX3ZhbGlkID0gZXZ0WzBdICYg RVZUUV8wX1NTVjsKPiA+ICsJdTMyIHNpZCA9IEZJRUxEX0dFVChFVlRRXzBfU0lELCBldnRbMF0p Owo+ID4gKwlzdHJ1Y3QgaW9tbXVfZmF1bHRfZXZlbnQgZmF1bHRfZXZ0ID0geyB9Owo+ID4gKwlz dHJ1Y3QgaW9tbXVfZmF1bHQgKmZsdCA9ICZmYXVsdF9ldnQuZmF1bHQ7Cj4gPiArCj4gPiArCS8q IFN0YWdlLTIgaXMgYWx3YXlzIHBpbm5lZCBhdCB0aGUgbW9tZW50ICovCj4gPiArCWlmIChldnRb MV0gJiBFVlRRXzFfUzIpCj4gPiArCQlyZXR1cm4gLUVGQVVMVDsKPiA+ICsKPiA+ICsJbWFzdGVy ID0gYXJtX3NtbXVfZmluZF9tYXN0ZXIoc21tdSwgc2lkKTsKPiA+ICsJaWYgKCFtYXN0ZXIpCj4g PiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsKPiA+ICsJaWYgKGV2dFsxXSAmIEVWVFFfMV9Sblcp Cj4gPiArCQlwZXJtIHw9IElPTU1VX0ZBVUxUX1BFUk1fUkVBRDsKPiA+ICsJZWxzZQo+ID4gKwkJ cGVybSB8PSBJT01NVV9GQVVMVF9QRVJNX1dSSVRFOwo+ID4gKwo+ID4gKwlpZiAoZXZ0WzFdICYg RVZUUV8xX0luRCkKPiA+ICsJCXBlcm0gfD0gSU9NTVVfRkFVTFRfUEVSTV9FWEVDOwo+ID4gKwo+ ID4gKwlpZiAoZXZ0WzFdICYgRVZUUV8xX1BuVSkKPiA+ICsJCXBlcm0gfD0gSU9NTVVfRkFVTFRf UEVSTV9QUklWOwo+ID4gKwo+ID4gKwlzd2l0Y2ggKEZJRUxEX0dFVChFVlRRXzBfSUQsIGV2dFsw XSkpIHsKPiA+ICsJY2FzZSBFVlRfSURfVFJBTlNMQVRJT05fRkFVTFQ6Cj4gPiArCWNhc2UgRVZU X0lEX0FERFJfU0laRV9GQVVMVDoKPiA+ICsJY2FzZSBFVlRfSURfQUNDRVNTX0ZBVUxUOgo+ID4g KwkJcmVhc29uID0gSU9NTVVfRkFVTFRfUkVBU09OX1BURV9GRVRDSDsKPiBEb2Vzbid0IGl0IHJh dGhlciBtYXAgdG8gSU9NTVVfRkFVTFRfUkVBU09OX0FDQ0VTUz8KPiAvKiBhY2Nlc3MgZmxhZyBj aGVjayBmYWlsZWQgKi8iCgpHb29kIHBvaW50LCBJIGd1ZXNzIGl0IGRpZG4ndCBleGlzdCB3aGVu IEkgd3JvdGUgdGhpcy4gQW5kIEFERFJfU0laRV9GQVVMVApjb3JyZXNwb25kcyB0byBJT01NVV9G QVVMVF9SRUFTT05fT09SX0FERFJFU1Mgbm93LCByaWdodD8KCkJ5IHRoZSB3YXkgdGhlIHdvcmRp bmcgb24gdGhvc2UgdHdvIGZhdWx0IHJlYXNvbnMsICJhY2Nlc3MgZmxhZyIgYW5kCiJzdGFnZSIs IHNlZW1zIGFyY2gtc3BlY2lmaWMgLSB4ODYgbmFtZXMgYXJlICJhY2Nlc3NlZCBmbGFnIiBhbmQg ImxldmVsIi4KCj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBFVlRfSURfUEVSTUlTU0lPTl9GQVVM VDoKPiA+ICsJCXJlYXNvbiA9IElPTU1VX0ZBVUxUX1JFQVNPTl9QRVJNSVNTSU9OOwo+ID4gKwkJ YnJlYWs7Cj4gPiArCWRlZmF1bHQ6Cj4gPiArCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4gPiArCX0K PiA+ICsKPiA+ICsJaWYgKGV2dFsxXSAmIEVWVFFfMV9TVEFMTCkgewo+ID4gKwkJZmx0LT50eXBl ID0gSU9NTVVfRkFVTFRfUEFHRV9SRVE7Cj4gPiArCQlmbHQtPnBybSA9IChzdHJ1Y3QgaW9tbXVf ZmF1bHRfcGFnZV9yZXF1ZXN0KSB7Cj4gPiArCQkJLmZsYWdzID0gSU9NTVVfRkFVTFRfUEFHRV9S RVFVRVNUX0xBU1RfUEFHRSwKPiA+ICsJCQkuZ3JwaWQgPSBGSUVMRF9HRVQoRVZUUV8xX1NUQUcs IGV2dFsxXSksCj4gPiArCQkJLnBlcm0gPSBwZXJtLAo+ID4gKwkJCS5hZGRyID0gRklFTERfR0VU KEVWVFFfMl9BRERSLCBldnRbMl0pLAo+ID4gKwkJfTsKPiA+ICsKPiA+ICsJCWlmIChzc2lkX3Zh bGlkKSB7Cj4gPiArCQkJZmx0LT5wcm0uZmxhZ3MgfD0gSU9NTVVfRkFVTFRfUEFHRV9SRVFVRVNU X1BBU0lEX1ZBTElEOwo+ID4gKwkJCWZsdC0+cHJtLnBhc2lkID0gRklFTERfR0VUKEVWVFFfMF9T U0lELCBldnRbMF0pOwo+ID4gKwkJfQo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJZmx0LT50eXBlID0g SU9NTVVfRkFVTFRfRE1BX1VOUkVDT1Y7Cj4gPiArCQlmbHQtPmV2ZW50ID0gKHN0cnVjdCBpb21t dV9mYXVsdF91bnJlY292ZXJhYmxlKSB7Cj4gPiArCQkJLnJlYXNvbiA9IHJlYXNvbiwKPiA+ICsJ CQkuZmxhZ3MgPSBJT01NVV9GQVVMVF9VTlJFQ09WX0FERFJfVkFMSUQgfAo+ID4gKwkJCQkgSU9N TVVfRkFVTFRfVU5SRUNPVl9GRVRDSF9BRERSX1ZBTElELAo+IG5pdDogc2hhbGwgSU9NTVVfRkFV TFRfVU5SRUNPVl9GRVRDSF9BRERSX1ZBTElEIGJlIHNldCBoZXJlPyBTdXBwb3J0ZWQKPiB1bnJl Y292ZXJhYmxlIGZhdWx0cyBmZWF0dXJlIHRoZSBJUEEgZmllbGQgd2hpY2ggaXMgVU5LTk9XTiBm b3IgUzEKPiB0cmFuc2xhdGlvbnMuIGZldGNoX2FkZHIgcmF0aGVyIHdhcwo+IGNvcnJlc3BvbmRp bmcgdG8gV0FMS19FQUJULkZldGNoX2FkZHIgdG8gbWUuCgpSaWdodCBJIHNob3VsZCBkcm9wIHRo ZSBJUEEgcGFydCBlbnRpcmVseSwgc2luY2Ugd2UgZG9uJ3QgcmVwb3J0IFMyIGZhdWx0cwppbiB0 aGlzIHBhdGNoLgoKVGhhbmtzLApKZWFuCgo+ID4gKwkJCS5wZXJtID0gcGVybSwKPiA+ICsJCQku YWRkciA9IEZJRUxEX0dFVChFVlRRXzJfQUREUiwgZXZ0WzJdKSwKPiA+ICsJCQkuZmV0Y2hfYWRk ciA9IEZJRUxEX0dFVChFVlRRXzNfSVBBLCBldnRbM10pLAo+ID4gKwkJfTsKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlvbW11IG1haWxpbmcgbGlzdApp b21tdUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRh dGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby9pb21tdQ== 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=-4.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no 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 04A21C433DB for ; Mon, 1 Feb 2021 11:14:09 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 AED6864E9D for ; Mon, 1 Feb 2021 11:14:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AED6864E9D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+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=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=2yrJgFgQWK1ULZmx5l4UN06GlwMA4UHVCnLLL+0C+1Y=; b=V46bfdpHK+W5E5gpDrw1aAWXc mRFx8MQ0r2X/fHBrSLMouLagbrbWePtqgmg3OdtvvDMu5Mtj8RG/aFmRJXFCoptSj/Y5FIdBDuIPt MShIHZXAJWgTy5s/cwtPO/arXQ6vKJASwAMFXkZmQ+aILWFQzRE9KqoUBi9bKVGUX+RVkNOesupte ArAgaT9BC++gojtpD8112Ab+Azgm0dH3xJyknAfxyoprjBavy2khnAGE4RdR+OxcqXgu80BHLx8nT NXqJ2qrCNuzTbh8gISxtwzSAXs0H18qBd3NzhqqIVCNWBlhT+GD40CV0SJNpvPjF5lESXkqqVo+dz rXaQ/RG7Q==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l6X8f-0006rE-EZ; Mon, 01 Feb 2021 11:13:01 +0000 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l6X8c-0006qI-7R for linux-arm-kernel@lists.infradead.org; Mon, 01 Feb 2021 11:12:59 +0000 Received: by mail-wm1-x330.google.com with SMTP id m1so9532609wml.2 for ; Mon, 01 Feb 2021 03:12:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=AdJJsztSa/PfLkxaK9hi3wgOAf3rWJfVmETfVbPhDQM=; b=BJZkUaVlvArotMj35gc4Ryn1jzYpJODmz4BeBqXzrXY8uWYM5d/12aV/f7BgcY6I96 Sz6IrQvhl4kgb1SpJ5/bNviOzCPmpquY54HzywVEmd6hLl0TdDy/tpVkg5EphHmkgaBh t8P55uFMT3rvXvz8DVI44pagXmLgXNXbAq1DIZBYF8TG2YbVC+COX6RmQ2GL3woWeq57 FpWICNVRpruje4QN6AUBZyTEq7ciqt+XUhg00r4CJGPi1Gp4cHMcGh4Tx6or9Jwc0OMV 75G38yLv2UNNalUAfk/h+NfjYgTJo8EO6E1Lr9T4EysKvQ+2BDYaBsJqXEDGw5WaJUn/ u4cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=AdJJsztSa/PfLkxaK9hi3wgOAf3rWJfVmETfVbPhDQM=; b=CkTAIMWFVcm8jfiGm4AW8M+IOG9nglmcF9jf97HEClKZ9UiywSh+hXkLqUD1sYU8dD Kjk9QH42pPQUhfN0vcy2E1mPdThmHGzeXk9fHuSXFPclHz1rK3lpH87DZhvViuAITvZ0 GtVDGCOqw0zIfMXmbNgD822JsalEYIXFGDqUv9Kw4ygkxSa4kxPWoYl0wmsVH0O1KZCB S/uMQm+nzpJP8x5Kaglz9OqTkVNb2mEfJKt4P1pk72nct5MhCsmEH/JMOQZ4GdQ9jVRN yJhrhYolBlSkQZTSQgUlY9+elJZQI1MYOxmC6yHa5ArKqKQX8ieIndm5JzhfErJUrLTv bBjQ== X-Gm-Message-State: AOAM533pJL/kWsr6P6nqr3Wgu6dtDm9gpYW/kqnDiPF5uHLFDxEUK+QC VhaY5J8QdPgZwPQ3QvuNoX6Y4w== X-Google-Smtp-Source: ABdhPJzbSmxDnOHXTAtKhAr3owNj0X97Hbyhk6zyvU9cBi4RZpPy0aY0Qw5qlS8+s51rHeesopHFbA== X-Received: by 2002:a05:600c:228c:: with SMTP id 12mr14691553wmf.101.1612177975252; Mon, 01 Feb 2021 03:12:55 -0800 (PST) Received: from myrica ([2001:1715:4e26:a7e0:116c:c27a:3e7f:5eaf]) by smtp.gmail.com with ESMTPSA id v25sm21276665wmh.4.2021.02.01.03.12.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Feb 2021 03:12:54 -0800 (PST) Date: Mon, 1 Feb 2021 12:12:35 +0100 From: Jean-Philippe Brucker To: Auger Eric Subject: Re: [PATCH v12 10/10] iommu/arm-smmu-v3: Add stall support for platform devices Message-ID: References: <20210127154322.3959196-1-jean-philippe@linaro.org> <20210127154322.3959196-11-jean-philippe@linaro.org> <0c609eeb-00b0-7573-fed7-5bc1e6c0b0d1@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <0c609eeb-00b0-7573-fed7-5bc1e6c0b0d1@redhat.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210201_061258_580709_0BD37293 X-CRM114-Status: GOOD ( 24.40 ) 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: vivek.gautam@arm.com, guohanjun@huawei.com, will@kernel.org, lorenzo.pieralisi@arm.com, joro@8bytes.org, linux-acpi@vger.kernel.org, zhangfei.gao@linaro.org, lenb@kernel.org, devicetree@vger.kernel.org, kevin.tian@intel.com, jacob.jun.pan@linux.intel.com, robh+dt@kernel.org, Jonathan.Cameron@huawei.com, linux-arm-kernel@lists.infradead.org, rjw@rjwysocki.net, shameerali.kolothum.thodi@huawei.com, iommu@lists.linux-foundation.org, sudeep.holla@arm.com, robin.murphy@arm.com, linux-accelerators@lists.ozlabs.org, baolu.lu@linux.intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gU3VuLCBKYW4gMzEsIDIwMjEgYXQgMDc6Mjk6MDlQTSArMDEwMCwgQXVnZXIgRXJpYyB3cm90 ZToKPiBIaSBKZWFuLAo+IAo+IFNvbWUgcmF0aGVyIG1pbm9yIGNvbW1lbnRzwqdxdWVzdGlvbnMg YmVsb3cgdGhhdCBtYXkgbm90IGp1c3RpZnkgYSByZXNwaW4uCj4gCj4gT24gMS8yNy8yMSA0OjQz IFBNLCBKZWFuLVBoaWxpcHBlIEJydWNrZXIgd3JvdGU6Cj4gPiAtc3RhdGljIGJvb2wgYXJtX3Nt bXVfaW9wZl9zdXBwb3J0ZWQoc3RydWN0IGFybV9zbW11X21hc3RlciAqbWFzdGVyKQo+ID4gK2Jv b2wgYXJtX3NtbXVfbWFzdGVyX2lvcGZfc3VwcG9ydGVkKHN0cnVjdCBhcm1fc21tdV9tYXN0ZXIg Km1hc3RlcikKPiA+ICB7Cj4gPiAtCXJldHVybiBmYWxzZTsKPiA+ICsJLyogV2UncmUgbm90IGtl ZXBpbmcgdHJhY2sgb2YgU0lEcyBpbiBmYXVsdCBldmVudHMgKi8KPiBzaGFsbCB3ZT8gWypdIGJl bG93CgpUaGF0IHdvdWxkIHJlcXVpcmUgc3RvcmluZyB0aGUgaW5jb21pbmcgU0lEIGludG8gdGhl IGlvbW11X2ZhdWx0X2V2ZW50CnN0cnVjdCwgYW5kIHJldHJpZXZlIGl0IGluIGFybV9zbW11X3Bh Z2VfcmVzcG9uc2UoKS4gRWFzeSBlbm91Z2gsIGJ1dCBJCmRvbid0IHRoaW5rIGl0J3MgbmVlZGVk IGZvciBleGlzdGluZyBkZXZpY2VzLgoKPiA+ICsJaWYgKG1hc3Rlci0+bnVtX3N0cmVhbXMgIT0g MSkKPiA+ICsJCXJldHVybiBmYWxzZTsKWy4uLl0KPiA+ICtzdGF0aWMgaW50IGFybV9zbW11X3Bh Z2VfcmVzcG9uc2Uoc3RydWN0IGRldmljZSAqZGV2LAo+ID4gKwkJCQkgIHN0cnVjdCBpb21tdV9m YXVsdF9ldmVudCAqdW51c2VkLAo+ID4gKwkJCQkgIHN0cnVjdCBpb21tdV9wYWdlX3Jlc3BvbnNl ICpyZXNwKQo+ID4gK3sKPiA+ICsJc3RydWN0IGFybV9zbW11X2NtZHFfZW50IGNtZCA9IHswfTsK PiA+ICsJc3RydWN0IGFybV9zbW11X21hc3RlciAqbWFzdGVyID0gZGV2X2lvbW11X3ByaXZfZ2V0 KGRldik7Cj4gPiArCWludCBzaWQgPSBtYXN0ZXItPnN0cmVhbXNbMF0uaWQ7Cj4gWypdCj4gPiAr Cj4gPiArCWlmIChtYXN0ZXItPnN0YWxsX2VuYWJsZWQpIHsKPiA+ICsJCWNtZC5vcGNvZGUJCT0g Q01EUV9PUF9SRVNVTUU7Cj4gPiArCQljbWQucmVzdW1lLnNpZAkJPSBzaWQ7Cj4gPiArCQljbWQu cmVzdW1lLnN0YWcJCT0gcmVzcC0+Z3JwaWQ7Cj4gPiArCQlzd2l0Y2ggKHJlc3AtPmNvZGUpIHsK PiA+ICsJCWNhc2UgSU9NTVVfUEFHRV9SRVNQX0lOVkFMSUQ6Cj4gYWRkIGZhbGx0aHJvdWdoPwoK SSB0aGluayBmYWxsdGhyb3VnaCBpcyBtYWlubHkgdXNlZnVsIHRvIHRlbGwgcmVhZGVyIGFuZCBj b21waWxlciB0aGF0IGEKYnJlYWsgd2FzIG9taXR0ZWQgb24gcHVycG9zZS4gV2hlbiB0d28gY2Fz ZXMgYXJlIHN0dWNrIHRvZ2V0aGVyIHRoZSBpbnRlbnQKdG8gbWVyZ2UgdGhlIGZsb3cgaXMgY2xl YXIgZW5vdWdoIGluIG15IG9waW5pb24uIEdDQydzCi1XaW1wbGljaXQtZmFsbHRocm91Z2ggZG9l c24ndCB3YXJuIGluIHRoaXMgY2FzZS4KCj4gPiArCQljYXNlIElPTU1VX1BBR0VfUkVTUF9GQUlM VVJFOgo+ID4gKwkJCWNtZC5yZXN1bWUucmVzcCA9IENNRFFfUkVTVU1FXzBfUkVTUF9BQk9SVDsK PiA+ICsJCQlicmVhazsKWy4uLl0KPiA+ICtzdGF0aWMgaW50IGFybV9zbW11X2hhbmRsZV9ldnQo c3RydWN0IGFybV9zbW11X2RldmljZSAqc21tdSwgdTY0ICpldnQpCj4gPiArewo+ID4gKwlpbnQg cmV0Owo+ID4gKwl1MzIgcmVhc29uOwo+ID4gKwl1MzIgcGVybSA9IDA7Cj4gPiArCXN0cnVjdCBh cm1fc21tdV9tYXN0ZXIgKm1hc3RlcjsKPiA+ICsJYm9vbCBzc2lkX3ZhbGlkID0gZXZ0WzBdICYg RVZUUV8wX1NTVjsKPiA+ICsJdTMyIHNpZCA9IEZJRUxEX0dFVChFVlRRXzBfU0lELCBldnRbMF0p Owo+ID4gKwlzdHJ1Y3QgaW9tbXVfZmF1bHRfZXZlbnQgZmF1bHRfZXZ0ID0geyB9Owo+ID4gKwlz dHJ1Y3QgaW9tbXVfZmF1bHQgKmZsdCA9ICZmYXVsdF9ldnQuZmF1bHQ7Cj4gPiArCj4gPiArCS8q IFN0YWdlLTIgaXMgYWx3YXlzIHBpbm5lZCBhdCB0aGUgbW9tZW50ICovCj4gPiArCWlmIChldnRb MV0gJiBFVlRRXzFfUzIpCj4gPiArCQlyZXR1cm4gLUVGQVVMVDsKPiA+ICsKPiA+ICsJbWFzdGVy ID0gYXJtX3NtbXVfZmluZF9tYXN0ZXIoc21tdSwgc2lkKTsKPiA+ICsJaWYgKCFtYXN0ZXIpCj4g PiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsKPiA+ICsJaWYgKGV2dFsxXSAmIEVWVFFfMV9Sblcp Cj4gPiArCQlwZXJtIHw9IElPTU1VX0ZBVUxUX1BFUk1fUkVBRDsKPiA+ICsJZWxzZQo+ID4gKwkJ cGVybSB8PSBJT01NVV9GQVVMVF9QRVJNX1dSSVRFOwo+ID4gKwo+ID4gKwlpZiAoZXZ0WzFdICYg RVZUUV8xX0luRCkKPiA+ICsJCXBlcm0gfD0gSU9NTVVfRkFVTFRfUEVSTV9FWEVDOwo+ID4gKwo+ ID4gKwlpZiAoZXZ0WzFdICYgRVZUUV8xX1BuVSkKPiA+ICsJCXBlcm0gfD0gSU9NTVVfRkFVTFRf UEVSTV9QUklWOwo+ID4gKwo+ID4gKwlzd2l0Y2ggKEZJRUxEX0dFVChFVlRRXzBfSUQsIGV2dFsw XSkpIHsKPiA+ICsJY2FzZSBFVlRfSURfVFJBTlNMQVRJT05fRkFVTFQ6Cj4gPiArCWNhc2UgRVZU X0lEX0FERFJfU0laRV9GQVVMVDoKPiA+ICsJY2FzZSBFVlRfSURfQUNDRVNTX0ZBVUxUOgo+ID4g KwkJcmVhc29uID0gSU9NTVVfRkFVTFRfUkVBU09OX1BURV9GRVRDSDsKPiBEb2Vzbid0IGl0IHJh dGhlciBtYXAgdG8gSU9NTVVfRkFVTFRfUkVBU09OX0FDQ0VTUz8KPiAvKiBhY2Nlc3MgZmxhZyBj aGVjayBmYWlsZWQgKi8iCgpHb29kIHBvaW50LCBJIGd1ZXNzIGl0IGRpZG4ndCBleGlzdCB3aGVu IEkgd3JvdGUgdGhpcy4gQW5kIEFERFJfU0laRV9GQVVMVApjb3JyZXNwb25kcyB0byBJT01NVV9G QVVMVF9SRUFTT05fT09SX0FERFJFU1Mgbm93LCByaWdodD8KCkJ5IHRoZSB3YXkgdGhlIHdvcmRp bmcgb24gdGhvc2UgdHdvIGZhdWx0IHJlYXNvbnMsICJhY2Nlc3MgZmxhZyIgYW5kCiJzdGFnZSIs IHNlZW1zIGFyY2gtc3BlY2lmaWMgLSB4ODYgbmFtZXMgYXJlICJhY2Nlc3NlZCBmbGFnIiBhbmQg ImxldmVsIi4KCj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBFVlRfSURfUEVSTUlTU0lPTl9GQVVM VDoKPiA+ICsJCXJlYXNvbiA9IElPTU1VX0ZBVUxUX1JFQVNPTl9QRVJNSVNTSU9OOwo+ID4gKwkJ YnJlYWs7Cj4gPiArCWRlZmF1bHQ6Cj4gPiArCQlyZXR1cm4gLUVPUE5PVFNVUFA7Cj4gPiArCX0K PiA+ICsKPiA+ICsJaWYgKGV2dFsxXSAmIEVWVFFfMV9TVEFMTCkgewo+ID4gKwkJZmx0LT50eXBl ID0gSU9NTVVfRkFVTFRfUEFHRV9SRVE7Cj4gPiArCQlmbHQtPnBybSA9IChzdHJ1Y3QgaW9tbXVf ZmF1bHRfcGFnZV9yZXF1ZXN0KSB7Cj4gPiArCQkJLmZsYWdzID0gSU9NTVVfRkFVTFRfUEFHRV9S RVFVRVNUX0xBU1RfUEFHRSwKPiA+ICsJCQkuZ3JwaWQgPSBGSUVMRF9HRVQoRVZUUV8xX1NUQUcs IGV2dFsxXSksCj4gPiArCQkJLnBlcm0gPSBwZXJtLAo+ID4gKwkJCS5hZGRyID0gRklFTERfR0VU KEVWVFFfMl9BRERSLCBldnRbMl0pLAo+ID4gKwkJfTsKPiA+ICsKPiA+ICsJCWlmIChzc2lkX3Zh bGlkKSB7Cj4gPiArCQkJZmx0LT5wcm0uZmxhZ3MgfD0gSU9NTVVfRkFVTFRfUEFHRV9SRVFVRVNU X1BBU0lEX1ZBTElEOwo+ID4gKwkJCWZsdC0+cHJtLnBhc2lkID0gRklFTERfR0VUKEVWVFFfMF9T U0lELCBldnRbMF0pOwo+ID4gKwkJfQo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJZmx0LT50eXBlID0g SU9NTVVfRkFVTFRfRE1BX1VOUkVDT1Y7Cj4gPiArCQlmbHQtPmV2ZW50ID0gKHN0cnVjdCBpb21t dV9mYXVsdF91bnJlY292ZXJhYmxlKSB7Cj4gPiArCQkJLnJlYXNvbiA9IHJlYXNvbiwKPiA+ICsJ CQkuZmxhZ3MgPSBJT01NVV9GQVVMVF9VTlJFQ09WX0FERFJfVkFMSUQgfAo+ID4gKwkJCQkgSU9N TVVfRkFVTFRfVU5SRUNPVl9GRVRDSF9BRERSX1ZBTElELAo+IG5pdDogc2hhbGwgSU9NTVVfRkFV TFRfVU5SRUNPVl9GRVRDSF9BRERSX1ZBTElEIGJlIHNldCBoZXJlPyBTdXBwb3J0ZWQKPiB1bnJl Y292ZXJhYmxlIGZhdWx0cyBmZWF0dXJlIHRoZSBJUEEgZmllbGQgd2hpY2ggaXMgVU5LTk9XTiBm b3IgUzEKPiB0cmFuc2xhdGlvbnMuIGZldGNoX2FkZHIgcmF0aGVyIHdhcwo+IGNvcnJlc3BvbmRp bmcgdG8gV0FMS19FQUJULkZldGNoX2FkZHIgdG8gbWUuCgpSaWdodCBJIHNob3VsZCBkcm9wIHRo ZSBJUEEgcGFydCBlbnRpcmVseSwgc2luY2Ugd2UgZG9uJ3QgcmVwb3J0IFMyIGZhdWx0cwppbiB0 aGlzIHBhdGNoLgoKVGhhbmtzLApKZWFuCgo+ID4gKwkJCS5wZXJtID0gcGVybSwKPiA+ICsJCQku YWRkciA9IEZJRUxEX0dFVChFVlRRXzJfQUREUiwgZXZ0WzJdKSwKPiA+ICsJCQkuZmV0Y2hfYWRk ciA9IEZJRUxEX0dFVChFVlRRXzNfSVBBLCBldnRbM10pLAo+ID4gKwkJfTsKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==