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=-2.4 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 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 60E89C433DF for ; Tue, 9 Jun 2020 04:02:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 37D4A207C3 for ; Tue, 9 Jun 2020 04:02:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="EOIGmeR3" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727018AbgFIECR (ORCPT ); Tue, 9 Jun 2020 00:02:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54794 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726286AbgFIECL (ORCPT ); Tue, 9 Jun 2020 00:02:11 -0400 Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com [IPv6:2607:f8b0:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4341AC03E97C for ; Mon, 8 Jun 2020 21:02:11 -0700 (PDT) Received: by mail-pl1-x641.google.com with SMTP id n9so7520746plk.1 for ; Mon, 08 Jun 2020 21:02:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=HNzwmKC7EPXO6n3v52ZypjHWMqVja532n8n2Tl/XPzU=; b=EOIGmeR3il5DVPJCDg4teJziBsjPIErqvQL1NApVhk0fIsJZDquLbvnv9AzOPFDTyM 0Td9tgAsoePC+8tWwHQb/vU9PYB6G/Oyp14FK2hqZEG9usC/15NBI+bjl7shOVkS9PTS doO5YZ3ay6n1fRr9qSicgDl1sKMnJOAKnbUGeudLGxamrgFpyJqMg7/hVpo77ptwayW9 gKyrCeWWc3sisMbmchG7OqNyEieqbYZexGGErCFQFvIiSgU0duds+YBbyLJBINOegnCw yZ0gUZKM/VpvoDsNXIFSXtVpSlXS2LMjFDE0fUXYn6WfLpaSP3YHgKbbD3TgUmNi7e1F Z0fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=HNzwmKC7EPXO6n3v52ZypjHWMqVja532n8n2Tl/XPzU=; b=bUBavx7KQL9y+tKwxrkJAG5v5+K7P8kMV2s+fNVKA+mu/bdjkBKJ8zIDGw9vNIGTaa FWxWkxRTvDfrdrBkvCiz/2NFg8SarVrnNOhyRYF6gmDSgs8JdZnWSplo7HHIGeVGv+fk fEEMeT+bKP6PF+Bn9EVXAULmV9aGZpDVPwJOR8dLl5VwecYh/sjCKD7dYAtmSxiXG/0I oSj9IRyFKbGdxHjNyz2uKoo52DAhu2lRYdQOSQ7Yp04+bMMbHMFoD65Vw1nim9kawlKW rjoas4JJmPIY8+Un3iij20cMU7wvZd3fLbRSydVKKogpx8uJE/eAhpSX2O3xoGIbUsfO Awvg== X-Gm-Message-State: AOAM530e1HF6s7GTdMyLOmnUZ0NUvyXcK04Ku+NIYLD1AfCJl3cndcsx 0nLx+juAI082QA92D/QbClr+4Q== X-Google-Smtp-Source: ABdhPJyCOlAhj/JYQL1lnU7VkdOeuU3CmI3RIp+QFxWZE3BRnL4347U0JAtJdOIRBNQs52eLSw55aw== X-Received: by 2002:a17:90a:36cf:: with SMTP id t73mr2680766pjb.100.1591675330529; Mon, 08 Jun 2020 21:02:10 -0700 (PDT) Received: from [10.175.1.166] ([45.135.186.20]) by smtp.gmail.com with ESMTPSA id b24sm8402002pfo.112.2020.06.08.21.02.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 08 Jun 2020 21:02:09 -0700 (PDT) Subject: Re: [PATCH 0/2] Introduce PCI_FIXUP_IOMMU To: Bjorn Helgaas Cc: Joerg Roedel , Bjorn Helgaas , Arnd Bergmann , Lorenzo Pieralisi , Hanjun Guo , Sudeep Holla , "Rafael J. Wysocki" , Len Brown , jean-philippe , Greg Kroah-Hartman , Herbert Xu , kenneth-lee-2012@foxmail.com, Wangzhou , linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, iommu@lists.linux-foundation.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org References: <20200608164148.GA1394249@bjorn-Precision-5520> From: Zhangfei Gao Message-ID: Date: Tue, 9 Jun 2020 12:01:56 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200608164148.GA1394249@bjorn-Precision-5520> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Hi, Bjorn On 2020/6/9 上午12:41, Bjorn Helgaas wrote: > On Mon, Jun 08, 2020 at 10:54:15AM +0800, Zhangfei Gao wrote: >> On 2020/6/6 上午7:19, Bjorn Helgaas wrote: >>> On Thu, Jun 04, 2020 at 09:33:07PM +0800, Zhangfei Gao wrote: >>>> On 2020/6/2 上午1:41, Bjorn Helgaas wrote: >>>>> On Thu, May 28, 2020 at 09:33:44AM +0200, Joerg Roedel wrote: >>>>>> On Wed, May 27, 2020 at 01:18:42PM -0500, Bjorn Helgaas wrote: >>>>>>> Is this slowdown significant? We already iterate over every device >>>>>>> when applying PCI_FIXUP_FINAL quirks, so if we used the existing >>>>>>> PCI_FIXUP_FINAL, we wouldn't be adding a new loop. We would only be >>>>>>> adding two more iterations to the loop in pci_do_fixups() that tries >>>>>>> to match quirks against the current device. I doubt that would be a >>>>>>> measurable slowdown. >>>>>> I don't know how significant it is, but I remember people complaining >>>>>> about adding new PCI quirks because it takes too long for them to run >>>>>> them all. That was in the discussion about the quirk disabling ATS on >>>>>> AMD Stoney systems. >>>>>> >>>>>> So it probably depends on how many PCI devices are in the system whether >>>>>> it causes any measureable slowdown. >>>>> I found this [1] from Paul Menzel, which was a slowdown caused by >>>>> quirk_usb_early_handoff(). I think the real problem is individual >>>>> quirks that take a long time. >>>>> >>>>> The PCI_FIXUP_IOMMU things we're talking about should be fast, and of >>>>> course, they're only run for matching devices anyway. So I'd rather >>>>> keep them as PCI_FIXUP_FINAL than add a whole new phase. >>>>> >>>> Thanks Bjorn for taking time for this. >>>> If so, it would be much simpler. >>>> >>>> +++ b/drivers/iommu/iommu.c >>>> @@ -2418,6 +2418,10 @@ int iommu_fwspec_init(struct device *dev, struct >>>> fwnode_handle *iommu_fwnode, >>>>         fwspec->iommu_fwnode = iommu_fwnode; >>>>         fwspec->ops = ops; >>>>         dev_iommu_fwspec_set(dev, fwspec); >>>> + >>>> +       if (dev_is_pci(dev)) >>>> +               pci_fixup_device(pci_fixup_final, to_pci_dev(dev)); >>>> + >>>> >>>> Then pci_fixup_final will be called twice, the first in pci_bus_add_device. >>>> Here in iommu_fwspec_init is the second time, specifically for iommu_fwspec. >>>> Will send this when 5.8-rc1 is open. >>> Wait, this whole fixup approach seems wrong to me. No matter how you >>> do the fixup, it's still a fixup, which means it requires ongoing >>> maintenance. Surely we don't want to have to add the Vendor/Device ID >>> for every new AMBA device that comes along, do we? >>> >> Here the fake pci device has standard PCI cfg space, but physical >> implementation is base on AMBA >> They can provide pasid feature. >> However, >> 1, does not support tlp since they are not real pci devices. >> 2. does not support pri, instead support stall (provided by smmu) >> And stall is not a pci feature, so it is not described in struct pci_dev, >> but in struct iommu_fwspec. >> So we use this fixup to tell pci system that the devices can support stall, >> and hereby support pasid. > This did not answer my question. Are you proposing that we update a > quirk every time a new AMBA device is released? I don't think that > would be a good model. Yes, you are right, but we do not have any better idea yet. Currently we have three fake pci devices, which support stall and pasid. We have to let pci system know the device can support pasid, because of stall feature, though not support pri. Do you have any other ideas? Thanks 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=-2.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 D163DC433E0 for ; Tue, 9 Jun 2020 04:02:15 +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 8CA352078C for ; Tue, 9 Jun 2020 04:02:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="EOIGmeR3" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8CA352078C 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 fraxinus.osuosl.org (Postfix) with ESMTP id 59F938729F; Tue, 9 Jun 2020 04:02:15 +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 3cul2FAKG6qX; Tue, 9 Jun 2020 04:02:14 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by fraxinus.osuosl.org (Postfix) with ESMTP id BB4CB8729E; Tue, 9 Jun 2020 04:02:14 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 82A84C07FF; Tue, 9 Jun 2020 04:02:14 +0000 (UTC) Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 1C5D3C016F for ; Tue, 9 Jun 2020 04:02:13 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 0EA1A8729F for ; Tue, 9 Jun 2020 04:02:13 +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 1uOZYeJep4A2 for ; Tue, 9 Jun 2020 04:02:11 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pj1-f68.google.com (mail-pj1-f68.google.com [209.85.216.68]) by fraxinus.osuosl.org (Postfix) with ESMTPS id F3B448729E for ; Tue, 9 Jun 2020 04:02:10 +0000 (UTC) Received: by mail-pj1-f68.google.com with SMTP id m2so804588pjv.2 for ; Mon, 08 Jun 2020 21:02:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=HNzwmKC7EPXO6n3v52ZypjHWMqVja532n8n2Tl/XPzU=; b=EOIGmeR3il5DVPJCDg4teJziBsjPIErqvQL1NApVhk0fIsJZDquLbvnv9AzOPFDTyM 0Td9tgAsoePC+8tWwHQb/vU9PYB6G/Oyp14FK2hqZEG9usC/15NBI+bjl7shOVkS9PTS doO5YZ3ay6n1fRr9qSicgDl1sKMnJOAKnbUGeudLGxamrgFpyJqMg7/hVpo77ptwayW9 gKyrCeWWc3sisMbmchG7OqNyEieqbYZexGGErCFQFvIiSgU0duds+YBbyLJBINOegnCw yZ0gUZKM/VpvoDsNXIFSXtVpSlXS2LMjFDE0fUXYn6WfLpaSP3YHgKbbD3TgUmNi7e1F Z0fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=HNzwmKC7EPXO6n3v52ZypjHWMqVja532n8n2Tl/XPzU=; b=b+mm8MJtEz6CdAKUeLqMcMOsZJ8iP8ISk/B8+9Px86pCKsCctAUuvoLXWPo4k72XSJ NmZYgrlTBXKiTkHtRrhNIxHNuYDcv0xjR3vFiK/ELV3+5jiNIN9BUNz40fwhB4vDHRLX e1/pdCgR2+VeImKT/VX0bkokizoQ/nb02dnrz61dtJP8dY5OwHEKpefjOtmz6pK5SrAR F1C+7bDKFlRfUxQ+WhOgAj//rNGhkNcSSLjECymrqlA7CWZ5FH0NG/jtUPkKkfKYN2XH mZK7wqTJObzpMr+rDIVuXW5bA3T6xvdRlhG66oM5rbHrzzkLB1oMhr/9uHHwI6CYsNuh AyGQ== X-Gm-Message-State: AOAM531JiTZYFJIRkpKeW9tAx9tr6EMB/grSJ5lqC90ymt2huWiRycoM Mv57tzRhwllDe6lXS2rjXXbQ+g== X-Google-Smtp-Source: ABdhPJyCOlAhj/JYQL1lnU7VkdOeuU3CmI3RIp+QFxWZE3BRnL4347U0JAtJdOIRBNQs52eLSw55aw== X-Received: by 2002:a17:90a:36cf:: with SMTP id t73mr2680766pjb.100.1591675330529; Mon, 08 Jun 2020 21:02:10 -0700 (PDT) Received: from [10.175.1.166] ([45.135.186.20]) by smtp.gmail.com with ESMTPSA id b24sm8402002pfo.112.2020.06.08.21.02.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 08 Jun 2020 21:02:09 -0700 (PDT) Subject: Re: [PATCH 0/2] Introduce PCI_FIXUP_IOMMU To: Bjorn Helgaas References: <20200608164148.GA1394249@bjorn-Precision-5520> From: Zhangfei Gao Message-ID: Date: Tue, 9 Jun 2020 12:01:56 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200608164148.GA1394249@bjorn-Precision-5520> Content-Language: en-US Cc: jean-philippe , Herbert Xu , Arnd Bergmann , linux-pci@vger.kernel.org, Greg Kroah-Hartman , Hanjun Guo , "Rafael J. Wysocki" , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, linux-acpi@vger.kernel.org, linux-crypto@vger.kernel.org, Sudeep Holla , Bjorn Helgaas , kenneth-lee-2012@foxmail.com, linux-arm-kernel@lists.infradead.org, Len Brown 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" SGksIEJqb3JuCgpPbiAyMDIwLzYvOSDkuIrljYgxMjo0MSwgQmpvcm4gSGVsZ2FhcyB3cm90ZToK PiBPbiBNb24sIEp1biAwOCwgMjAyMCBhdCAxMDo1NDoxNUFNICswODAwLCBaaGFuZ2ZlaSBHYW8g d3JvdGU6Cj4+IE9uIDIwMjAvNi82IOS4iuWNiDc6MTksIEJqb3JuIEhlbGdhYXMgd3JvdGU6Cj4+ PiBPbiBUaHUsIEp1biAwNCwgMjAyMCBhdCAwOTozMzowN1BNICswODAwLCBaaGFuZ2ZlaSBHYW8g d3JvdGU6Cj4+Pj4gT24gMjAyMC82LzIg5LiK5Y2IMTo0MSwgQmpvcm4gSGVsZ2FhcyB3cm90ZToK Pj4+Pj4gT24gVGh1LCBNYXkgMjgsIDIwMjAgYXQgMDk6MzM6NDRBTSArMDIwMCwgSm9lcmcgUm9l ZGVsIHdyb3RlOgo+Pj4+Pj4gT24gV2VkLCBNYXkgMjcsIDIwMjAgYXQgMDE6MTg6NDJQTSAtMDUw MCwgQmpvcm4gSGVsZ2FhcyB3cm90ZToKPj4+Pj4+PiBJcyB0aGlzIHNsb3dkb3duIHNpZ25pZmlj YW50PyAgV2UgYWxyZWFkeSBpdGVyYXRlIG92ZXIgZXZlcnkgZGV2aWNlCj4+Pj4+Pj4gd2hlbiBh cHBseWluZyBQQ0lfRklYVVBfRklOQUwgcXVpcmtzLCBzbyBpZiB3ZSB1c2VkIHRoZSBleGlzdGlu Zwo+Pj4+Pj4+IFBDSV9GSVhVUF9GSU5BTCwgd2Ugd291bGRuJ3QgYmUgYWRkaW5nIGEgbmV3IGxv b3AuICBXZSB3b3VsZCBvbmx5IGJlCj4+Pj4+Pj4gYWRkaW5nIHR3byBtb3JlIGl0ZXJhdGlvbnMg dG8gdGhlIGxvb3AgaW4gcGNpX2RvX2ZpeHVwcygpIHRoYXQgdHJpZXMKPj4+Pj4+PiB0byBtYXRj aCBxdWlya3MgYWdhaW5zdCB0aGUgY3VycmVudCBkZXZpY2UuICBJIGRvdWJ0IHRoYXQgd291bGQg YmUgYQo+Pj4+Pj4+IG1lYXN1cmFibGUgc2xvd2Rvd24uCj4+Pj4+PiBJIGRvbid0IGtub3cgaG93 IHNpZ25pZmljYW50IGl0IGlzLCBidXQgSSByZW1lbWJlciBwZW9wbGUgY29tcGxhaW5pbmcKPj4+ Pj4+IGFib3V0IGFkZGluZyBuZXcgUENJIHF1aXJrcyBiZWNhdXNlIGl0IHRha2VzIHRvbyBsb25n IGZvciB0aGVtIHRvIHJ1bgo+Pj4+Pj4gdGhlbSBhbGwuIFRoYXQgd2FzIGluIHRoZSBkaXNjdXNz aW9uIGFib3V0IHRoZSBxdWlyayBkaXNhYmxpbmcgQVRTIG9uCj4+Pj4+PiBBTUQgU3RvbmV5IHN5 c3RlbXMuCj4+Pj4+Pgo+Pj4+Pj4gU28gaXQgcHJvYmFibHkgZGVwZW5kcyBvbiBob3cgbWFueSBQ Q0kgZGV2aWNlcyBhcmUgaW4gdGhlIHN5c3RlbSB3aGV0aGVyCj4+Pj4+PiBpdCBjYXVzZXMgYW55 IG1lYXN1cmVhYmxlIHNsb3dkb3duLgo+Pj4+PiBJIGZvdW5kIHRoaXMgWzFdIGZyb20gUGF1bCBN ZW56ZWwsIHdoaWNoIHdhcyBhIHNsb3dkb3duIGNhdXNlZCBieQo+Pj4+PiBxdWlya191c2JfZWFy bHlfaGFuZG9mZigpLiAgSSB0aGluayB0aGUgcmVhbCBwcm9ibGVtIGlzIGluZGl2aWR1YWwKPj4+ Pj4gcXVpcmtzIHRoYXQgdGFrZSBhIGxvbmcgdGltZS4KPj4+Pj4KPj4+Pj4gVGhlIFBDSV9GSVhV UF9JT01NVSB0aGluZ3Mgd2UncmUgdGFsa2luZyBhYm91dCBzaG91bGQgYmUgZmFzdCwgYW5kIG9m Cj4+Pj4+IGNvdXJzZSwgdGhleSdyZSBvbmx5IHJ1biBmb3IgbWF0Y2hpbmcgZGV2aWNlcyBhbnl3 YXkuICBTbyBJJ2QgcmF0aGVyCj4+Pj4+IGtlZXAgdGhlbSBhcyBQQ0lfRklYVVBfRklOQUwgdGhh biBhZGQgYSB3aG9sZSBuZXcgcGhhc2UuCj4+Pj4+Cj4+Pj4gVGhhbmtzIEJqb3JuIGZvciB0YWtp bmcgdGltZSBmb3IgdGhpcy4KPj4+PiBJZiBzbywgaXQgd291bGQgYmUgbXVjaCBzaW1wbGVyLgo+ Pj4+Cj4+Pj4gKysrIGIvZHJpdmVycy9pb21tdS9pb21tdS5jCj4+Pj4gQEAgLTI0MTgsNiArMjQx OCwxMCBAQCBpbnQgaW9tbXVfZndzcGVjX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QK Pj4+PiBmd25vZGVfaGFuZGxlICppb21tdV9md25vZGUsCj4+Pj4gICDCoMKgwqDCoMKgwqDCoCBm d3NwZWMtPmlvbW11X2Z3bm9kZSA9IGlvbW11X2Z3bm9kZTsKPj4+PiAgIMKgwqDCoMKgwqDCoMKg IGZ3c3BlYy0+b3BzID0gb3BzOwo+Pj4+ICAgwqDCoMKgwqDCoMKgwqAgZGV2X2lvbW11X2Z3c3Bl Y19zZXQoZGV2LCBmd3NwZWMpOwo+Pj4+ICsKPj4+PiArwqDCoMKgwqDCoMKgIGlmIChkZXZfaXNf cGNpKGRldikpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGNpX2ZpeHVwX2Rl dmljZShwY2lfZml4dXBfZmluYWwsIHRvX3BjaV9kZXYoZGV2KSk7Cj4+Pj4gKwo+Pj4+Cj4+Pj4g VGhlbiBwY2lfZml4dXBfZmluYWwgd2lsbCBiZSBjYWxsZWQgdHdpY2UsIHRoZSBmaXJzdCBpbiBw Y2lfYnVzX2FkZF9kZXZpY2UuCj4+Pj4gSGVyZSBpbiBpb21tdV9md3NwZWNfaW5pdCBpcyB0aGUg c2Vjb25kIHRpbWUsIHNwZWNpZmljYWxseSBmb3IgaW9tbXVfZndzcGVjLgo+Pj4+IFdpbGwgc2Vu ZCB0aGlzIHdoZW4gNS44LXJjMSBpcyBvcGVuLgo+Pj4gV2FpdCwgdGhpcyB3aG9sZSBmaXh1cCBh cHByb2FjaCBzZWVtcyB3cm9uZyB0byBtZS4gIE5vIG1hdHRlciBob3cgeW91Cj4+PiBkbyB0aGUg Zml4dXAsIGl0J3Mgc3RpbGwgYSBmaXh1cCwgd2hpY2ggbWVhbnMgaXQgcmVxdWlyZXMgb25nb2lu Zwo+Pj4gbWFpbnRlbmFuY2UuICBTdXJlbHkgd2UgZG9uJ3Qgd2FudCB0byBoYXZlIHRvIGFkZCB0 aGUgVmVuZG9yL0RldmljZSBJRAo+Pj4gZm9yIGV2ZXJ5IG5ldyBBTUJBIGRldmljZSB0aGF0IGNv bWVzIGFsb25nLCBkbyB3ZT8KPj4+Cj4+IEhlcmUgdGhlIGZha2UgcGNpIGRldmljZSBoYXMgc3Rh bmRhcmQgUENJIGNmZyBzcGFjZSwgYnV0IHBoeXNpY2FsCj4+IGltcGxlbWVudGF0aW9uIGlzIGJh c2Ugb24gQU1CQQo+PiBUaGV5IGNhbiBwcm92aWRlIHBhc2lkIGZlYXR1cmUuCj4+IEhvd2V2ZXIs Cj4+IDEsIGRvZXMgbm90IHN1cHBvcnQgdGxwIHNpbmNlIHRoZXkgYXJlIG5vdCByZWFsIHBjaSBk ZXZpY2VzLgo+PiAyLiBkb2VzIG5vdCBzdXBwb3J0IHByaSwgaW5zdGVhZCBzdXBwb3J0IHN0YWxs IChwcm92aWRlZCBieSBzbW11KQo+PiBBbmQgc3RhbGwgaXMgbm90IGEgcGNpIGZlYXR1cmUsIHNv IGl0IGlzIG5vdCBkZXNjcmliZWQgaW4gc3RydWN0IHBjaV9kZXYsCj4+IGJ1dCBpbiBzdHJ1Y3Qg aW9tbXVfZndzcGVjLgo+PiBTbyB3ZSB1c2UgdGhpcyBmaXh1cCB0byB0ZWxsIHBjaSBzeXN0ZW0g dGhhdCB0aGUgZGV2aWNlcyBjYW4gc3VwcG9ydCBzdGFsbCwKPj4gYW5kIGhlcmVieSBzdXBwb3J0 IHBhc2lkLgo+IFRoaXMgZGlkIG5vdCBhbnN3ZXIgbXkgcXVlc3Rpb24uICBBcmUgeW91IHByb3Bv c2luZyB0aGF0IHdlIHVwZGF0ZSBhCj4gcXVpcmsgZXZlcnkgdGltZSBhIG5ldyBBTUJBIGRldmlj ZSBpcyByZWxlYXNlZD8gIEkgZG9uJ3QgdGhpbmsgdGhhdAo+IHdvdWxkIGJlIGEgZ29vZCBtb2Rl bC4KWWVzLCB5b3UgYXJlIHJpZ2h0LCBidXQgd2UgZG8gbm90IGhhdmUgYW55IGJldHRlciBpZGVh IHlldC4KQ3VycmVudGx5IHdlIGhhdmUgdGhyZWUgZmFrZSBwY2kgZGV2aWNlcywgd2hpY2ggc3Vw cG9ydCBzdGFsbCBhbmQgcGFzaWQuCldlIGhhdmUgdG8gbGV0IHBjaSBzeXN0ZW0ga25vdyB0aGUg ZGV2aWNlIGNhbiBzdXBwb3J0IHBhc2lkLCBiZWNhdXNlIG9mIApzdGFsbCBmZWF0dXJlLCB0aG91 Z2ggbm90IHN1cHBvcnQgcHJpLgpEbyB5b3UgaGF2ZSBhbnkgb3RoZXIgaWRlYXM/CgpUaGFua3MK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaW9tbXUgbWFp bGluZyBsaXN0CmlvbW11QGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMu bGludXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lvbW11 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=-2.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 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 84147C433DF for ; Tue, 9 Jun 2020 04:02:23 +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 51ACB2078C for ; Tue, 9 Jun 2020 04:02:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="FKA/4aJt"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="EOIGmeR3" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 51ACB2078C 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+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:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=TrlkKR0VSgIj8LyjoEgodGGMsgRgUo9n8hAub0wJQT4=; b=FKA/4aJtkOukr3OXTvHLoLK0H QtczJHztEsy4ojfB/C8pBxus9fD9x8AKqVhR5VB7enKNd2iEHwlvEPC5GN28cx+8kOPw0LSA8iRih bnTZxink4JbIeSWJ+rJgkXxMhG66xpaKs0ULj+st37ohzpgv5+3vzLfxKwFfhg6SSw1Dl/U8+XVBI WuGMjt8EpAWbW7uslfi3lUv768BgWPV75hbnwAm5NOC7h4Ln7W9/Na/1jJo2qfqRC4DTYEzpgAgle XOHP2GGU4VVgCJ2FS2TOouwPARXp8qYOTxULNHzgpdCSZAsQDi2H3QLZH1rqtvFIc+yCHP7LMaYPj Jd9TfA7Yw==; 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 1jiVSp-0008DE-Ln; Tue, 09 Jun 2020 04:02:15 +0000 Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jiVSl-0008Cf-SS for linux-arm-kernel@lists.infradead.org; Tue, 09 Jun 2020 04:02:13 +0000 Received: by mail-pl1-x644.google.com with SMTP id bh7so7495361plb.11 for ; Mon, 08 Jun 2020 21:02:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=HNzwmKC7EPXO6n3v52ZypjHWMqVja532n8n2Tl/XPzU=; b=EOIGmeR3il5DVPJCDg4teJziBsjPIErqvQL1NApVhk0fIsJZDquLbvnv9AzOPFDTyM 0Td9tgAsoePC+8tWwHQb/vU9PYB6G/Oyp14FK2hqZEG9usC/15NBI+bjl7shOVkS9PTS doO5YZ3ay6n1fRr9qSicgDl1sKMnJOAKnbUGeudLGxamrgFpyJqMg7/hVpo77ptwayW9 gKyrCeWWc3sisMbmchG7OqNyEieqbYZexGGErCFQFvIiSgU0duds+YBbyLJBINOegnCw yZ0gUZKM/VpvoDsNXIFSXtVpSlXS2LMjFDE0fUXYn6WfLpaSP3YHgKbbD3TgUmNi7e1F Z0fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=HNzwmKC7EPXO6n3v52ZypjHWMqVja532n8n2Tl/XPzU=; b=OxKQR78QglceegZe1I9EdUD00Tn9yyP2OFgR6ZqynoGYiXowpzJjWHgARMyjoI/up1 x3fNuIMNxUGs0Ng32Ln0GQAafWD2p6ZGaFgmTeiOoOPJHbQvAgX9hPEIhJmz+ayaQi4j 7aUaLQtzpVMiHrMcrI2DKCoRHVTTcUcji97GI8Pzes3vYaj+88wdyj2QipvK48ForOp4 xi/UsYZL0Kh2Qlb5n+PGL/E2/ce3AKeyNP0tYAsWvy2UzjyvgUJeORkIFNGWxSnhwsxz uF4EIpPP9l1I6SkEqX+JVJ7CgUrsXHbNblgYfP88rfTbXP7st3RHVXGsJOsYGobWxtvU lpQw== X-Gm-Message-State: AOAM53169OI28P71rwraq43w3V8w/ij5CqR5f80S8Jou/xHb8o0Km96v LstSZsXzD1M76vswf5Oj4/AMRw== X-Google-Smtp-Source: ABdhPJyCOlAhj/JYQL1lnU7VkdOeuU3CmI3RIp+QFxWZE3BRnL4347U0JAtJdOIRBNQs52eLSw55aw== X-Received: by 2002:a17:90a:36cf:: with SMTP id t73mr2680766pjb.100.1591675330529; Mon, 08 Jun 2020 21:02:10 -0700 (PDT) Received: from [10.175.1.166] ([45.135.186.20]) by smtp.gmail.com with ESMTPSA id b24sm8402002pfo.112.2020.06.08.21.02.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 08 Jun 2020 21:02:09 -0700 (PDT) Subject: Re: [PATCH 0/2] Introduce PCI_FIXUP_IOMMU To: Bjorn Helgaas References: <20200608164148.GA1394249@bjorn-Precision-5520> From: Zhangfei Gao Message-ID: Date: Tue, 9 Jun 2020 12:01:56 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200608164148.GA1394249@bjorn-Precision-5520> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200608_210211_951325_560FFFDD X-CRM114-Status: GOOD ( 22.52 ) 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: jean-philippe , Lorenzo Pieralisi , Herbert Xu , Arnd Bergmann , linux-pci@vger.kernel.org, Greg Kroah-Hartman , Joerg Roedel , Hanjun Guo , "Rafael J. Wysocki" , linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, linux-acpi@vger.kernel.org, Wangzhou , linux-crypto@vger.kernel.org, Sudeep Holla , Bjorn Helgaas , kenneth-lee-2012@foxmail.com, linux-arm-kernel@lists.infradead.org, Len Brown 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 SGksIEJqb3JuCgpPbiAyMDIwLzYvOSDkuIrljYgxMjo0MSwgQmpvcm4gSGVsZ2FhcyB3cm90ZToK PiBPbiBNb24sIEp1biAwOCwgMjAyMCBhdCAxMDo1NDoxNUFNICswODAwLCBaaGFuZ2ZlaSBHYW8g d3JvdGU6Cj4+IE9uIDIwMjAvNi82IOS4iuWNiDc6MTksIEJqb3JuIEhlbGdhYXMgd3JvdGU6Cj4+ PiBPbiBUaHUsIEp1biAwNCwgMjAyMCBhdCAwOTozMzowN1BNICswODAwLCBaaGFuZ2ZlaSBHYW8g d3JvdGU6Cj4+Pj4gT24gMjAyMC82LzIg5LiK5Y2IMTo0MSwgQmpvcm4gSGVsZ2FhcyB3cm90ZToK Pj4+Pj4gT24gVGh1LCBNYXkgMjgsIDIwMjAgYXQgMDk6MzM6NDRBTSArMDIwMCwgSm9lcmcgUm9l ZGVsIHdyb3RlOgo+Pj4+Pj4gT24gV2VkLCBNYXkgMjcsIDIwMjAgYXQgMDE6MTg6NDJQTSAtMDUw MCwgQmpvcm4gSGVsZ2FhcyB3cm90ZToKPj4+Pj4+PiBJcyB0aGlzIHNsb3dkb3duIHNpZ25pZmlj YW50PyAgV2UgYWxyZWFkeSBpdGVyYXRlIG92ZXIgZXZlcnkgZGV2aWNlCj4+Pj4+Pj4gd2hlbiBh cHBseWluZyBQQ0lfRklYVVBfRklOQUwgcXVpcmtzLCBzbyBpZiB3ZSB1c2VkIHRoZSBleGlzdGlu Zwo+Pj4+Pj4+IFBDSV9GSVhVUF9GSU5BTCwgd2Ugd291bGRuJ3QgYmUgYWRkaW5nIGEgbmV3IGxv b3AuICBXZSB3b3VsZCBvbmx5IGJlCj4+Pj4+Pj4gYWRkaW5nIHR3byBtb3JlIGl0ZXJhdGlvbnMg dG8gdGhlIGxvb3AgaW4gcGNpX2RvX2ZpeHVwcygpIHRoYXQgdHJpZXMKPj4+Pj4+PiB0byBtYXRj aCBxdWlya3MgYWdhaW5zdCB0aGUgY3VycmVudCBkZXZpY2UuICBJIGRvdWJ0IHRoYXQgd291bGQg YmUgYQo+Pj4+Pj4+IG1lYXN1cmFibGUgc2xvd2Rvd24uCj4+Pj4+PiBJIGRvbid0IGtub3cgaG93 IHNpZ25pZmljYW50IGl0IGlzLCBidXQgSSByZW1lbWJlciBwZW9wbGUgY29tcGxhaW5pbmcKPj4+ Pj4+IGFib3V0IGFkZGluZyBuZXcgUENJIHF1aXJrcyBiZWNhdXNlIGl0IHRha2VzIHRvbyBsb25n IGZvciB0aGVtIHRvIHJ1bgo+Pj4+Pj4gdGhlbSBhbGwuIFRoYXQgd2FzIGluIHRoZSBkaXNjdXNz aW9uIGFib3V0IHRoZSBxdWlyayBkaXNhYmxpbmcgQVRTIG9uCj4+Pj4+PiBBTUQgU3RvbmV5IHN5 c3RlbXMuCj4+Pj4+Pgo+Pj4+Pj4gU28gaXQgcHJvYmFibHkgZGVwZW5kcyBvbiBob3cgbWFueSBQ Q0kgZGV2aWNlcyBhcmUgaW4gdGhlIHN5c3RlbSB3aGV0aGVyCj4+Pj4+PiBpdCBjYXVzZXMgYW55 IG1lYXN1cmVhYmxlIHNsb3dkb3duLgo+Pj4+PiBJIGZvdW5kIHRoaXMgWzFdIGZyb20gUGF1bCBN ZW56ZWwsIHdoaWNoIHdhcyBhIHNsb3dkb3duIGNhdXNlZCBieQo+Pj4+PiBxdWlya191c2JfZWFy bHlfaGFuZG9mZigpLiAgSSB0aGluayB0aGUgcmVhbCBwcm9ibGVtIGlzIGluZGl2aWR1YWwKPj4+ Pj4gcXVpcmtzIHRoYXQgdGFrZSBhIGxvbmcgdGltZS4KPj4+Pj4KPj4+Pj4gVGhlIFBDSV9GSVhV UF9JT01NVSB0aGluZ3Mgd2UncmUgdGFsa2luZyBhYm91dCBzaG91bGQgYmUgZmFzdCwgYW5kIG9m Cj4+Pj4+IGNvdXJzZSwgdGhleSdyZSBvbmx5IHJ1biBmb3IgbWF0Y2hpbmcgZGV2aWNlcyBhbnl3 YXkuICBTbyBJJ2QgcmF0aGVyCj4+Pj4+IGtlZXAgdGhlbSBhcyBQQ0lfRklYVVBfRklOQUwgdGhh biBhZGQgYSB3aG9sZSBuZXcgcGhhc2UuCj4+Pj4+Cj4+Pj4gVGhhbmtzIEJqb3JuIGZvciB0YWtp bmcgdGltZSBmb3IgdGhpcy4KPj4+PiBJZiBzbywgaXQgd291bGQgYmUgbXVjaCBzaW1wbGVyLgo+ Pj4+Cj4+Pj4gKysrIGIvZHJpdmVycy9pb21tdS9pb21tdS5jCj4+Pj4gQEAgLTI0MTgsNiArMjQx OCwxMCBAQCBpbnQgaW9tbXVfZndzcGVjX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QK Pj4+PiBmd25vZGVfaGFuZGxlICppb21tdV9md25vZGUsCj4+Pj4gICDCoMKgwqDCoMKgwqDCoCBm d3NwZWMtPmlvbW11X2Z3bm9kZSA9IGlvbW11X2Z3bm9kZTsKPj4+PiAgIMKgwqDCoMKgwqDCoMKg IGZ3c3BlYy0+b3BzID0gb3BzOwo+Pj4+ICAgwqDCoMKgwqDCoMKgwqAgZGV2X2lvbW11X2Z3c3Bl Y19zZXQoZGV2LCBmd3NwZWMpOwo+Pj4+ICsKPj4+PiArwqDCoMKgwqDCoMKgIGlmIChkZXZfaXNf cGNpKGRldikpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGNpX2ZpeHVwX2Rl dmljZShwY2lfZml4dXBfZmluYWwsIHRvX3BjaV9kZXYoZGV2KSk7Cj4+Pj4gKwo+Pj4+Cj4+Pj4g VGhlbiBwY2lfZml4dXBfZmluYWwgd2lsbCBiZSBjYWxsZWQgdHdpY2UsIHRoZSBmaXJzdCBpbiBw Y2lfYnVzX2FkZF9kZXZpY2UuCj4+Pj4gSGVyZSBpbiBpb21tdV9md3NwZWNfaW5pdCBpcyB0aGUg c2Vjb25kIHRpbWUsIHNwZWNpZmljYWxseSBmb3IgaW9tbXVfZndzcGVjLgo+Pj4+IFdpbGwgc2Vu ZCB0aGlzIHdoZW4gNS44LXJjMSBpcyBvcGVuLgo+Pj4gV2FpdCwgdGhpcyB3aG9sZSBmaXh1cCBh cHByb2FjaCBzZWVtcyB3cm9uZyB0byBtZS4gIE5vIG1hdHRlciBob3cgeW91Cj4+PiBkbyB0aGUg Zml4dXAsIGl0J3Mgc3RpbGwgYSBmaXh1cCwgd2hpY2ggbWVhbnMgaXQgcmVxdWlyZXMgb25nb2lu Zwo+Pj4gbWFpbnRlbmFuY2UuICBTdXJlbHkgd2UgZG9uJ3Qgd2FudCB0byBoYXZlIHRvIGFkZCB0 aGUgVmVuZG9yL0RldmljZSBJRAo+Pj4gZm9yIGV2ZXJ5IG5ldyBBTUJBIGRldmljZSB0aGF0IGNv bWVzIGFsb25nLCBkbyB3ZT8KPj4+Cj4+IEhlcmUgdGhlIGZha2UgcGNpIGRldmljZSBoYXMgc3Rh bmRhcmQgUENJIGNmZyBzcGFjZSwgYnV0IHBoeXNpY2FsCj4+IGltcGxlbWVudGF0aW9uIGlzIGJh c2Ugb24gQU1CQQo+PiBUaGV5IGNhbiBwcm92aWRlIHBhc2lkIGZlYXR1cmUuCj4+IEhvd2V2ZXIs Cj4+IDEsIGRvZXMgbm90IHN1cHBvcnQgdGxwIHNpbmNlIHRoZXkgYXJlIG5vdCByZWFsIHBjaSBk ZXZpY2VzLgo+PiAyLiBkb2VzIG5vdCBzdXBwb3J0IHByaSwgaW5zdGVhZCBzdXBwb3J0IHN0YWxs IChwcm92aWRlZCBieSBzbW11KQo+PiBBbmQgc3RhbGwgaXMgbm90IGEgcGNpIGZlYXR1cmUsIHNv IGl0IGlzIG5vdCBkZXNjcmliZWQgaW4gc3RydWN0IHBjaV9kZXYsCj4+IGJ1dCBpbiBzdHJ1Y3Qg aW9tbXVfZndzcGVjLgo+PiBTbyB3ZSB1c2UgdGhpcyBmaXh1cCB0byB0ZWxsIHBjaSBzeXN0ZW0g dGhhdCB0aGUgZGV2aWNlcyBjYW4gc3VwcG9ydCBzdGFsbCwKPj4gYW5kIGhlcmVieSBzdXBwb3J0 IHBhc2lkLgo+IFRoaXMgZGlkIG5vdCBhbnN3ZXIgbXkgcXVlc3Rpb24uICBBcmUgeW91IHByb3Bv c2luZyB0aGF0IHdlIHVwZGF0ZSBhCj4gcXVpcmsgZXZlcnkgdGltZSBhIG5ldyBBTUJBIGRldmlj ZSBpcyByZWxlYXNlZD8gIEkgZG9uJ3QgdGhpbmsgdGhhdAo+IHdvdWxkIGJlIGEgZ29vZCBtb2Rl bC4KWWVzLCB5b3UgYXJlIHJpZ2h0LCBidXQgd2UgZG8gbm90IGhhdmUgYW55IGJldHRlciBpZGVh IHlldC4KQ3VycmVudGx5IHdlIGhhdmUgdGhyZWUgZmFrZSBwY2kgZGV2aWNlcywgd2hpY2ggc3Vw cG9ydCBzdGFsbCBhbmQgcGFzaWQuCldlIGhhdmUgdG8gbGV0IHBjaSBzeXN0ZW0ga25vdyB0aGUg ZGV2aWNlIGNhbiBzdXBwb3J0IHBhc2lkLCBiZWNhdXNlIG9mIApzdGFsbCBmZWF0dXJlLCB0aG91 Z2ggbm90IHN1cHBvcnQgcHJpLgpEbyB5b3UgaGF2ZSBhbnkgb3RoZXIgaWRlYXM/CgpUaGFua3MK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFy bS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1r ZXJuZWwK