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=-18.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A, 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 839C3C433ED for ; Tue, 11 May 2021 16:05:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4D8C861927 for ; Tue, 11 May 2021 16:05:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231379AbhEKQGn (ORCPT ); Tue, 11 May 2021 12:06:43 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:23557 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231259AbhEKQGm (ORCPT ); Tue, 11 May 2021 12:06:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620749136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+Z2k7kEMuOxvMNfv9wyuet8mFypiPJLma4wFOmFQFhU=; b=UgAv0poP5eOdNcZI7JJQNujJzdA6qJNVrrSoWKPdcary+JlmutyrggXX/TkD1G1ARdDk/Q w6HoEuWy1pEovUbpbn0dZoJV9H7KfDHQkU81wMjXYSqxdLGi8E6+iyHljkb++fhuowA30V WcfQjKKS45nJrvQx2Fuc30Y6sOlGkhs= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-326-Z7LXlEqAMSavyp-h4tVVsA-1; Tue, 11 May 2021 12:05:32 -0400 X-MC-Unique: Z7LXlEqAMSavyp-h4tVVsA-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 73FD4107ACED; Tue, 11 May 2021 16:05:29 +0000 (UTC) Received: from [10.3.115.19] (ovpn-115-19.phx2.redhat.com [10.3.115.19]) by smtp.corp.redhat.com (Postfix) with ESMTP id B81FA5C232; Tue, 11 May 2021 16:05:26 +0000 (UTC) Subject: Re: [PATCH 01/16] PCI/P2PDMA: Pass gfp_mask flags to upstream_bridge_distance_warn() To: John Hubbard , Logan Gunthorpe , linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org Cc: Stephen Bates , Christoph Hellwig , Dan Williams , Jason Gunthorpe , =?UTF-8?Q?Christian_K=c3=b6nig?= , Matthew Wilcox , Daniel Vetter , Jakowski Andrzej , Minturn Dave B , Jason Ekstrand , Dave Hansen , Xiong Jianxin , Bjorn Helgaas , Ira Weiny , Robin Murphy , Bjorn Helgaas References: <20210408170123.8788-1-logang@deltatee.com> <20210408170123.8788-2-logang@deltatee.com> From: Don Dutile Message-ID: Date: Tue, 11 May 2021 12:05:26 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org On 5/1/21 11:58 PM, John Hubbard wrote: > On 4/8/21 10:01 AM, Logan Gunthorpe wrote: >> In order to call upstream_bridge_distance_warn() from a dma_map function, >> it must not sleep. The only reason it does sleep is to allocate the seqbuf >> to print which devices are within the ACS path. >> >> Switch the kmalloc call to use a passed in gfp_mask and don't print that >> message if the buffer fails to be allocated. >> >> Signed-off-by: Logan Gunthorpe >> Acked-by: Bjorn Helgaas >> --- >>   drivers/pci/p2pdma.c | 21 +++++++++++---------- >>   1 file changed, 11 insertions(+), 10 deletions(-) >> >> diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c >> index 196382630363..bd89437faf06 100644 >> --- a/drivers/pci/p2pdma.c >> +++ b/drivers/pci/p2pdma.c >> @@ -267,7 +267,7 @@ static int pci_bridge_has_acs_redir(struct pci_dev *pdev) >>     static void seq_buf_print_bus_devfn(struct seq_buf *buf, struct pci_dev *pdev) >>   { >> -    if (!buf) >> +    if (!buf || !buf->buffer) > > This is not great, sort of from an overall design point of view, even though > it makes the rest of the patch work. See below for other ideas, that will > avoid the need for this sort of odd point fix. > +1. In fact, I didn't see how the kmalloc was changed... you refactored the code to pass-in the GFP_KERNEL that was originally hard-coded into upstream_bridge_distance_warn(); I don't see how that avoided the kmalloc() call. in fact, I also see you lost a failed kmalloc() check, so it seems to have taken a step back. >>           return; >>         seq_buf_printf(buf, "%s;", pci_name(pdev)); >> @@ -495,25 +495,26 @@ upstream_bridge_distance(struct pci_dev *provider, struct pci_dev *client, >>     static enum pci_p2pdma_map_type >>   upstream_bridge_distance_warn(struct pci_dev *provider, struct pci_dev *client, >> -                  int *dist) >> +                  int *dist, gfp_t gfp_mask) >>   { >>       struct seq_buf acs_list; >>       bool acs_redirects; >>       int ret; >>   -    seq_buf_init(&acs_list, kmalloc(PAGE_SIZE, GFP_KERNEL), PAGE_SIZE); >> -    if (!acs_list.buffer) >> -        return -ENOMEM; > > Another odd thing: this used to check for memory failure and just give > up, and now it doesn't. Yes, I realize that it all still works at the > moment, but this is quirky and we shouldn't stop here. > > Instead, a cleaner approach would be to push the memory allocation > slightly higher up the call stack, out to the > pci_p2pdma_distance_many(). So pci_p2pdma_distance_many() should make > the kmalloc() call, and fail out if it can't get a page for the seq_buf > buffer. Then you don't have to do all this odd stuff. > > Furthermore, the call sites can then decide for themselves which GFP > flags, GFP_ATOMIC or GFP_KERNEL or whatever they want for kmalloc(). > agree, good proposal to avoid a sleep due to kmalloc(). > A related thing: this whole exercise would go better if there were a > preparatory patch or two that changed the return codes in this file to > something less crazy. There are too many functions that can fail, but > are treated as if they sort-of-mostly-would-never-fail, in the hopes of > using the return value directly for counting and such. This is badly > mistaken, and it leads developers to try to avoid returning -ENOMEM > (which is what we need here). > > Really, these functions should all be doing "0 for success, -ERRNO for > failure, and pass other values, including results, in the arg list". > WFM! > >> +    seq_buf_init(&acs_list, kmalloc(PAGE_SIZE, gfp_mask), PAGE_SIZE); >>         ret = upstream_bridge_distance(provider, client, dist, &acs_redirects, >>                          &acs_list); >>       if (acs_redirects) { >>           pci_warn(client, "ACS redirect is set between the client and provider (%s)\n", >>                pci_name(provider)); >> -        /* Drop final semicolon */ >> -        acs_list.buffer[acs_list.len-1] = 0; >> -        pci_warn(client, "to disable ACS redirect for this path, add the kernel parameter: pci=disable_acs_redir=%s\n", >> -             acs_list.buffer); >> + >> +        if (acs_list.buffer) { >> +            /* Drop final semicolon */ >> +            acs_list.buffer[acs_list.len - 1] = 0; >> +            pci_warn(client, "to disable ACS redirect for this path, add the kernel parameter: pci=disable_acs_redir=%s\n", >> +                 acs_list.buffer); >> +        } >>       } >>         if (ret == PCI_P2PDMA_MAP_NOT_SUPPORTED) { >> @@ -566,7 +567,7 @@ int pci_p2pdma_distance_many(struct pci_dev *provider, struct device **clients, >>             if (verbose) >>               ret = upstream_bridge_distance_warn(provider, >> -                    pci_client, &distance); >> +                    pci_client, &distance, GFP_KERNEL); >>           else >>               ret = upstream_bridge_distance(provider, pci_client, >>                                  &distance, NULL, NULL); >> > > 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=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 48B41C433B4 for ; Tue, 11 May 2021 16:07:21 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 9196661154 for ; Tue, 11 May 2021 16:07:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9196661154 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=l7o/Q78Azaf4j1fWA7M7NaBsqUZ5g+K3DOznxBBbkdw=; b=ZpDNhQ5f1meJxplsjMfCKw7AX 7FNpcsiWwVo73EdNHiWgJM6G4HltH2jeOlb5LcgL4vKITEsXiGxFnMY4oUdNHRZm2/0//eIJIdHdp knnLbL+JHWt3iLciw4lOT9Wxjuel7VHgNNty8v82/e5KqwKfbyM4KTkOyW9YTH0a4CV+UNGeag2Xo v5hBnhsXzKaa8WmZjsl6Thu5rQ/xVkd/o/Sf0LTttjg6O2UaINfhNoW2Ncmx3MfhHonW60C3I4uAQ 0bnHDCZZdRvfKEmG3R9WLcXE0HiG9lRGCmQzDHFcRhkT5DawF152Nt/ytlWJ7GuhxT3xnvdkzo/P8 +zrbEgh7A==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lgUuh-000fdd-NL; Tue, 11 May 2021 16:07:15 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgUuX-000fcP-H6 for linux-nvme@desiato.infradead.org; Tue, 11 May 2021 16:07:05 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To: Subject:Sender:Reply-To:Content-ID:Content-Description; bh=+Z2k7kEMuOxvMNfv9wyuet8mFypiPJLma4wFOmFQFhU=; b=nHROm8pZsMKYixEFQyKqtgI9+w zTs0Vn8ADogfQwZMFiIM7niIjcSVtLd81nBiMGDA1aNAhmT+37mmPDogw7gO7yihct1bSF7zPcqPH OR5A70Yk3N2Awsh0G30lnwEACsnLEcDKWueJ8l987EBlh+9WhylIEKXCMKkRu26UfDPd37KjPpy29 f4ZksRFnynU335IHTfLlJ59oh2mbVSPj4Ady4I58Q3aSE5hJMWP4GAGTXl7rjHBDCY3TTXmlu4Sxl 2QfvAlEpbf/GGsa1V13LIkqa010akvmnMVVDYzLWQRNyQjNV6ssiKT6QTlO5vF5hhEZNx9zy7a5yA T4Mhk69Q==; Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgUuU-009jwy-LD for linux-nvme@lists.infradead.org; Tue, 11 May 2021 16:07:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620749221; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+Z2k7kEMuOxvMNfv9wyuet8mFypiPJLma4wFOmFQFhU=; b=MmP85dFgzS8qR690dFkSBE/M4UyOegT4Fwp+fvZajlrrC1fqVpZTG0k+cmxhLaW2SOLeGQ 6Sx5gpNlFUO2eClhfdE+GsFzRqoJAyTG6HT5cMiMlHeaqEr4N3lbK+4mGYxh116tCeRf2e ilT7YoqqdrF9llsuJUAiTcYa12MBFWc= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-326-Z7LXlEqAMSavyp-h4tVVsA-1; Tue, 11 May 2021 12:05:32 -0400 X-MC-Unique: Z7LXlEqAMSavyp-h4tVVsA-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 73FD4107ACED; Tue, 11 May 2021 16:05:29 +0000 (UTC) Received: from [10.3.115.19] (ovpn-115-19.phx2.redhat.com [10.3.115.19]) by smtp.corp.redhat.com (Postfix) with ESMTP id B81FA5C232; Tue, 11 May 2021 16:05:26 +0000 (UTC) Subject: Re: [PATCH 01/16] PCI/P2PDMA: Pass gfp_mask flags to upstream_bridge_distance_warn() To: John Hubbard , Logan Gunthorpe , linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org Cc: Stephen Bates , Christoph Hellwig , Dan Williams , Jason Gunthorpe , =?UTF-8?Q?Christian_K=c3=b6nig?= , Matthew Wilcox , Daniel Vetter , Jakowski Andrzej , Minturn Dave B , Jason Ekstrand , Dave Hansen , Xiong Jianxin , Bjorn Helgaas , Ira Weiny , Robin Murphy , Bjorn Helgaas References: <20210408170123.8788-1-logang@deltatee.com> <20210408170123.8788-2-logang@deltatee.com> From: Don Dutile Message-ID: Date: Tue, 11 May 2021 12:05:26 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210511_090702_915002_E031B5A5 X-CRM114-Status: GOOD ( 41.85 ) X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org T24gNS8xLzIxIDExOjU4IFBNLCBKb2huIEh1YmJhcmQgd3JvdGU6Cj4gT24gNC84LzIxIDEwOjAx IEFNLCBMb2dhbiBHdW50aG9ycGUgd3JvdGU6Cj4+IEluIG9yZGVyIHRvIGNhbGwgdXBzdHJlYW1f YnJpZGdlX2Rpc3RhbmNlX3dhcm4oKSBmcm9tIGEgZG1hX21hcCBmdW5jdGlvbiwKPj4gaXQgbXVz dCBub3Qgc2xlZXAuIFRoZSBvbmx5IHJlYXNvbiBpdCBkb2VzIHNsZWVwIGlzIHRvIGFsbG9jYXRl IHRoZSBzZXFidWYKPj4gdG8gcHJpbnQgd2hpY2ggZGV2aWNlcyBhcmUgd2l0aGluIHRoZSBBQ1Mg cGF0aC4KPj4KPj4gU3dpdGNoIHRoZSBrbWFsbG9jIGNhbGwgdG8gdXNlIGEgcGFzc2VkIGluIGdm cF9tYXNrIGFuZCBkb24ndCBwcmludCB0aGF0Cj4+IG1lc3NhZ2UgaWYgdGhlIGJ1ZmZlciBmYWls cyB0byBiZSBhbGxvY2F0ZWQuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IExvZ2FuIEd1bnRob3JwZSA8 bG9nYW5nQGRlbHRhdGVlLmNvbT4KPj4gQWNrZWQtYnk6IEJqb3JuIEhlbGdhYXMgPGJoZWxnYWFz QGdvb2dsZS5jb20+Cj4+IC0tLQo+PiDCoCBkcml2ZXJzL3BjaS9wMnBkbWEuYyB8IDIxICsrKysr KysrKysrLS0tLS0tLS0tLQo+PiDCoCAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwg MTAgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wMnBkbWEuYyBi L2RyaXZlcnMvcGNpL3AycGRtYS5jCj4+IGluZGV4IDE5NjM4MjYzMDM2My4uYmQ4OTQzN2ZhZjA2 IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL3BjaS9wMnBkbWEuYwo+PiArKysgYi9kcml2ZXJzL3Bj aS9wMnBkbWEuYwo+PiBAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0YXRpYyBpbnQgcGNpX2JyaWRnZV9o YXNfYWNzX3JlZGlyKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+PiDCoCDCoCBzdGF0aWMgdm9pZCBz ZXFfYnVmX3ByaW50X2J1c19kZXZmbihzdHJ1Y3Qgc2VxX2J1ZiAqYnVmLCBzdHJ1Y3QgcGNpX2Rl diAqcGRldikKPj4gwqAgewo+PiAtwqDCoMKgIGlmICghYnVmKQo+PiArwqDCoMKgIGlmICghYnVm IHx8ICFidWYtPmJ1ZmZlcikKPgo+IFRoaXMgaXMgbm90IGdyZWF0LCBzb3J0IG9mIGZyb20gYW4g b3ZlcmFsbCBkZXNpZ24gcG9pbnQgb2YgdmlldywgZXZlbiB0aG91Z2gKPiBpdCBtYWtlcyB0aGUg cmVzdCBvZiB0aGUgcGF0Y2ggd29yay4gU2VlIGJlbG93IGZvciBvdGhlciBpZGVhcywgdGhhdCB3 aWxsCj4gYXZvaWQgdGhlIG5lZWQgZm9yIHRoaXMgc29ydCBvZiBvZGQgcG9pbnQgZml4Lgo+Cisx LgpJbiBmYWN0LCBJIGRpZG4ndCBzZWUgaG93IHRoZSBrbWFsbG9jIHdhcyBjaGFuZ2VkLi4uIHlv dSByZWZhY3RvcmVkIHRoZSBjb2RlIHRvIHBhc3MtaW4gdGhlCkdGUF9LRVJORUwgdGhhdCB3YXMg b3JpZ2luYWxseSBoYXJkLWNvZGVkIGludG8gdXBzdHJlYW1fYnJpZGdlX2Rpc3RhbmNlX3dhcm4o KTsKSSBkb24ndCBzZWUgaG93IHRoYXQgYXZvaWRlZCB0aGUga21hbGxvYygpIGNhbGwuCmluIGZh Y3QsIEkgYWxzbyBzZWUgeW91IGxvc3QgYSBmYWlsZWQga21hbGxvYygpIGNoZWNrLCBzbyBpdCBz ZWVtcyB0byBoYXZlIHRha2VuIGEgc3RlcCBiYWNrLgoKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJl dHVybjsKPj4gwqAgwqDCoMKgwqDCoCBzZXFfYnVmX3ByaW50ZihidWYsICIlczsiLCBwY2lfbmFt ZShwZGV2KSk7Cj4+IEBAIC00OTUsMjUgKzQ5NSwyNiBAQCB1cHN0cmVhbV9icmlkZ2VfZGlzdGFu Y2Uoc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLCBzdHJ1Y3QgcGNpX2RldiAqY2xpZW50LAo+PiDC oCDCoCBzdGF0aWMgZW51bSBwY2lfcDJwZG1hX21hcF90eXBlCj4+IMKgIHVwc3RyZWFtX2JyaWRn ZV9kaXN0YW5jZV93YXJuKHN0cnVjdCBwY2lfZGV2ICpwcm92aWRlciwgc3RydWN0IHBjaV9kZXYg KmNsaWVudCwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ICpkaXN0 KQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgKmRpc3QsIGdmcF90 IGdmcF9tYXNrKQo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAgc3RydWN0IHNlcV9idWYgYWNzX2xpc3Q7 Cj4+IMKgwqDCoMKgwqAgYm9vbCBhY3NfcmVkaXJlY3RzOwo+PiDCoMKgwqDCoMKgIGludCByZXQ7 Cj4+IMKgIC3CoMKgwqAgc2VxX2J1Zl9pbml0KCZhY3NfbGlzdCwga21hbGxvYyhQQUdFX1NJWkUs IEdGUF9LRVJORUwpLCBQQUdFX1NJWkUpOwo+PiAtwqDCoMKgIGlmICghYWNzX2xpc3QuYnVmZmVy KQo+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9NRU07Cj4KPiBBbm90aGVyIG9kZCB0aGlu ZzogdGhpcyB1c2VkIHRvIGNoZWNrIGZvciBtZW1vcnkgZmFpbHVyZSBhbmQganVzdCBnaXZlCj4g dXAsIGFuZCBub3cgaXQgZG9lc24ndC4gWWVzLCBJIHJlYWxpemUgdGhhdCBpdCBhbGwgc3RpbGwg d29ya3MgYXQgdGhlCj4gbW9tZW50LCBidXQgdGhpcyBpcyBxdWlya3kgYW5kIHdlIHNob3VsZG4n dCBzdG9wIGhlcmUuCj4KPiBJbnN0ZWFkLCBhIGNsZWFuZXIgYXBwcm9hY2ggd291bGQgYmUgdG8g cHVzaCB0aGUgbWVtb3J5IGFsbG9jYXRpb24KPiBzbGlnaHRseSBoaWdoZXIgdXAgdGhlIGNhbGwg c3RhY2ssIG91dCB0byB0aGUKPiBwY2lfcDJwZG1hX2Rpc3RhbmNlX21hbnkoKS4gU28gcGNpX3Ay cGRtYV9kaXN0YW5jZV9tYW55KCkgc2hvdWxkIG1ha2UKPiB0aGUga21hbGxvYygpIGNhbGwsIGFu ZCBmYWlsIG91dCBpZiBpdCBjYW4ndCBnZXQgYSBwYWdlIGZvciB0aGUgc2VxX2J1Zgo+IGJ1ZmZl ci4gVGhlbiB5b3UgZG9uJ3QgaGF2ZSB0byBkbyBhbGwgdGhpcyBvZGQgc3R1ZmYuCj4KPiBGdXJ0 aGVybW9yZSwgdGhlIGNhbGwgc2l0ZXMgY2FuIHRoZW4gZGVjaWRlIGZvciB0aGVtc2VsdmVzIHdo aWNoIEdGUAo+IGZsYWdzLCBHRlBfQVRPTUlDIG9yIEdGUF9LRVJORUwgb3Igd2hhdGV2ZXIgdGhl eSB3YW50IGZvciBrbWFsbG9jKCkuCj4KYWdyZWUsIGdvb2QgcHJvcG9zYWwgdG8gYXZvaWQgYSBz bGVlcCBkdWUgdG8ga21hbGxvYygpLgoKPiBBIHJlbGF0ZWQgdGhpbmc6IHRoaXMgd2hvbGUgZXhl cmNpc2Ugd291bGQgZ28gYmV0dGVyIGlmIHRoZXJlIHdlcmUgYQo+IHByZXBhcmF0b3J5IHBhdGNo IG9yIHR3byB0aGF0IGNoYW5nZWQgdGhlIHJldHVybiBjb2RlcyBpbiB0aGlzIGZpbGUgdG8KPiBz b21ldGhpbmcgbGVzcyBjcmF6eS4gVGhlcmUgYXJlIHRvbyBtYW55IGZ1bmN0aW9ucyB0aGF0IGNh biBmYWlsLCBidXQKPiBhcmUgdHJlYXRlZCBhcyBpZiB0aGV5IHNvcnQtb2YtbW9zdGx5LXdvdWxk LW5ldmVyLWZhaWwsIGluIHRoZSBob3BlcyBvZgo+IHVzaW5nIHRoZSByZXR1cm4gdmFsdWUgZGly ZWN0bHkgZm9yIGNvdW50aW5nIGFuZCBzdWNoLiBUaGlzIGlzIGJhZGx5Cj4gbWlzdGFrZW4sIGFu ZCBpdCBsZWFkcyBkZXZlbG9wZXJzIHRvIHRyeSB0byBhdm9pZCByZXR1cm5pbmcgLUVOT01FTQo+ ICh3aGljaCBpcyB3aGF0IHdlIG5lZWQgaGVyZSkuCj4KPiBSZWFsbHksIHRoZXNlIGZ1bmN0aW9u cyBzaG91bGQgYWxsIGJlIGRvaW5nICIwIGZvciBzdWNjZXNzLCAtRVJSTk8gZm9yCj4gZmFpbHVy ZSwgYW5kIHBhc3Mgb3RoZXIgdmFsdWVzLCBpbmNsdWRpbmcgcmVzdWx0cywgaW4gdGhlIGFyZyBs aXN0Ii4KPgpXRk0hCgo+Cj4+ICvCoMKgwqAgc2VxX2J1Zl9pbml0KCZhY3NfbGlzdCwga21hbGxv YyhQQUdFX1NJWkUsIGdmcF9tYXNrKSwgUEFHRV9TSVpFKTsKPj4gwqAgwqDCoMKgwqDCoCByZXQg PSB1cHN0cmVhbV9icmlkZ2VfZGlzdGFuY2UocHJvdmlkZXIsIGNsaWVudCwgZGlzdCwgJmFjc19y ZWRpcmVjdHMsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAmYWNzX2xpc3QpOwo+PiDCoMKgwqDCoMKgIGlmIChhY3NfcmVkaXJlY3RzKSB7Cj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBwY2lfd2FybihjbGllbnQsICJBQ1MgcmVkaXJlY3QgaXMgc2V0IGJl dHdlZW4gdGhlIGNsaWVudCBhbmQgcHJvdmlkZXIgKCVzKVxuIiwKPj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBwY2lfbmFtZShwcm92aWRlcikpOwo+PiAtwqDCoMKgwqDCoMKgwqAgLyog RHJvcCBmaW5hbCBzZW1pY29sb24gKi8KPj4gLcKgwqDCoMKgwqDCoMKgIGFjc19saXN0LmJ1ZmZl clthY3NfbGlzdC5sZW4tMV0gPSAwOwo+PiAtwqDCoMKgwqDCoMKgwqAgcGNpX3dhcm4oY2xpZW50 LCAidG8gZGlzYWJsZSBBQ1MgcmVkaXJlY3QgZm9yIHRoaXMgcGF0aCwgYWRkIHRoZSBrZXJuZWwg cGFyYW1ldGVyOiBwY2k9ZGlzYWJsZV9hY3NfcmVkaXI9JXNcbiIsCj4+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgYWNzX2xpc3QuYnVmZmVyKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgaWYg KGFjc19saXN0LmJ1ZmZlcikgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBEcm9wIGZp bmFsIHNlbWljb2xvbiAqLwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhY3NfbGlzdC5idWZm ZXJbYWNzX2xpc3QubGVuIC0gMV0gPSAwOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwY2lf d2FybihjbGllbnQsICJ0byBkaXNhYmxlIEFDUyByZWRpcmVjdCBmb3IgdGhpcyBwYXRoLCBhZGQg dGhlIGtlcm5lbCBwYXJhbWV0ZXI6IHBjaT1kaXNhYmxlX2Fjc19yZWRpcj0lc1xuIiwKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFjc19saXN0LmJ1ZmZlcik7Cj4+ICvCoMKg wqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqAgfQo+PiDCoCDCoMKgwqDCoMKgIGlmIChyZXQgPT0g UENJX1AyUERNQV9NQVBfTk9UX1NVUFBPUlRFRCkgewo+PiBAQCAtNTY2LDcgKzU2Nyw3IEBAIGlu dCBwY2lfcDJwZG1hX2Rpc3RhbmNlX21hbnkoc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLCBzdHJ1 Y3QgZGV2aWNlICoqY2xpZW50cywKPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICh2ZXJib3Nl KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSB1cHN0cmVhbV9icmlkZ2VfZGlz dGFuY2Vfd2Fybihwcm92aWRlciwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHBjaV9jbGllbnQsICZkaXN0YW5jZSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBwY2lfY2xpZW50LCAmZGlzdGFuY2UsIEdGUF9LRVJORUwpOwo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgZWxzZQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQg PSB1cHN0cmVhbV9icmlkZ2VfZGlzdGFuY2UocHJvdmlkZXIsIHBjaV9jbGllbnQsCj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgJmRpc3RhbmNlLCBOVUxMLCBOVUxMKTsKPj4KPgo+IHRoYW5rcywKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1udm1lIG1haWxpbmcgbGlz dApMaW51eC1udm1lQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udm1lCg== 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=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,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 9C34DC43460 for ; Tue, 11 May 2021 16:05:43 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (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 2983461921 for ; Tue, 11 May 2021 16:05:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2983461921 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id D13FA83CC7; Tue, 11 May 2021 16:05:42 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NpAAHSqPvpwD; Tue, 11 May 2021 16:05:42 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp1.osuosl.org (Postfix) with ESMTP id A190D83C9D; Tue, 11 May 2021 16:05:41 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 6AD84C000E; Tue, 11 May 2021 16:05:41 +0000 (UTC) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 7A398C0001 for ; Tue, 11 May 2021 16:05:38 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 5B644403D5 for ; Tue, 11 May 2021 16:05:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp4.osuosl.org (amavisd-new); dkim=pass (1024-bit key) header.d=redhat.com Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PWoMA8Qr8e9g for ; Tue, 11 May 2021 16:05:37 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by smtp4.osuosl.org (Postfix) with ESMTPS id 30525403D6 for ; Tue, 11 May 2021 16:05:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1620749136; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+Z2k7kEMuOxvMNfv9wyuet8mFypiPJLma4wFOmFQFhU=; b=UgAv0poP5eOdNcZI7JJQNujJzdA6qJNVrrSoWKPdcary+JlmutyrggXX/TkD1G1ARdDk/Q w6HoEuWy1pEovUbpbn0dZoJV9H7KfDHQkU81wMjXYSqxdLGi8E6+iyHljkb++fhuowA30V WcfQjKKS45nJrvQx2Fuc30Y6sOlGkhs= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-326-Z7LXlEqAMSavyp-h4tVVsA-1; Tue, 11 May 2021 12:05:32 -0400 X-MC-Unique: Z7LXlEqAMSavyp-h4tVVsA-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 73FD4107ACED; Tue, 11 May 2021 16:05:29 +0000 (UTC) Received: from [10.3.115.19] (ovpn-115-19.phx2.redhat.com [10.3.115.19]) by smtp.corp.redhat.com (Postfix) with ESMTP id B81FA5C232; Tue, 11 May 2021 16:05:26 +0000 (UTC) Subject: Re: [PATCH 01/16] PCI/P2PDMA: Pass gfp_mask flags to upstream_bridge_distance_warn() To: John Hubbard , Logan Gunthorpe , linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org References: <20210408170123.8788-1-logang@deltatee.com> <20210408170123.8788-2-logang@deltatee.com> From: Don Dutile Message-ID: Date: Tue, 11 May 2021 12:05:26 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Cc: Minturn Dave B , Ira Weiny , Daniel Vetter , Dave Hansen , Robin Murphy , Matthew Wilcox , =?UTF-8?Q?Christian_K=c3=b6nig?= , Jason Gunthorpe , Bjorn Helgaas , Jason Ekstrand , Bjorn Helgaas , Dan Williams , Stephen Bates , Jakowski Andrzej , Christoph Hellwig , Xiong Jianxin 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" T24gNS8xLzIxIDExOjU4IFBNLCBKb2huIEh1YmJhcmQgd3JvdGU6Cj4gT24gNC84LzIxIDEwOjAx IEFNLCBMb2dhbiBHdW50aG9ycGUgd3JvdGU6Cj4+IEluIG9yZGVyIHRvIGNhbGwgdXBzdHJlYW1f YnJpZGdlX2Rpc3RhbmNlX3dhcm4oKSBmcm9tIGEgZG1hX21hcCBmdW5jdGlvbiwKPj4gaXQgbXVz dCBub3Qgc2xlZXAuIFRoZSBvbmx5IHJlYXNvbiBpdCBkb2VzIHNsZWVwIGlzIHRvIGFsbG9jYXRl IHRoZSBzZXFidWYKPj4gdG8gcHJpbnQgd2hpY2ggZGV2aWNlcyBhcmUgd2l0aGluIHRoZSBBQ1Mg cGF0aC4KPj4KPj4gU3dpdGNoIHRoZSBrbWFsbG9jIGNhbGwgdG8gdXNlIGEgcGFzc2VkIGluIGdm cF9tYXNrIGFuZCBkb24ndCBwcmludCB0aGF0Cj4+IG1lc3NhZ2UgaWYgdGhlIGJ1ZmZlciBmYWls cyB0byBiZSBhbGxvY2F0ZWQuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IExvZ2FuIEd1bnRob3JwZSA8 bG9nYW5nQGRlbHRhdGVlLmNvbT4KPj4gQWNrZWQtYnk6IEJqb3JuIEhlbGdhYXMgPGJoZWxnYWFz QGdvb2dsZS5jb20+Cj4+IC0tLQo+PiDCoCBkcml2ZXJzL3BjaS9wMnBkbWEuYyB8IDIxICsrKysr KysrKysrLS0tLS0tLS0tLQo+PiDCoCAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwg MTAgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wMnBkbWEuYyBi L2RyaXZlcnMvcGNpL3AycGRtYS5jCj4+IGluZGV4IDE5NjM4MjYzMDM2My4uYmQ4OTQzN2ZhZjA2 IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL3BjaS9wMnBkbWEuYwo+PiArKysgYi9kcml2ZXJzL3Bj aS9wMnBkbWEuYwo+PiBAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0YXRpYyBpbnQgcGNpX2JyaWRnZV9o YXNfYWNzX3JlZGlyKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+PiDCoCDCoCBzdGF0aWMgdm9pZCBz ZXFfYnVmX3ByaW50X2J1c19kZXZmbihzdHJ1Y3Qgc2VxX2J1ZiAqYnVmLCBzdHJ1Y3QgcGNpX2Rl diAqcGRldikKPj4gwqAgewo+PiAtwqDCoMKgIGlmICghYnVmKQo+PiArwqDCoMKgIGlmICghYnVm IHx8ICFidWYtPmJ1ZmZlcikKPgo+IFRoaXMgaXMgbm90IGdyZWF0LCBzb3J0IG9mIGZyb20gYW4g b3ZlcmFsbCBkZXNpZ24gcG9pbnQgb2YgdmlldywgZXZlbiB0aG91Z2gKPiBpdCBtYWtlcyB0aGUg cmVzdCBvZiB0aGUgcGF0Y2ggd29yay4gU2VlIGJlbG93IGZvciBvdGhlciBpZGVhcywgdGhhdCB3 aWxsCj4gYXZvaWQgdGhlIG5lZWQgZm9yIHRoaXMgc29ydCBvZiBvZGQgcG9pbnQgZml4Lgo+Cisx LgpJbiBmYWN0LCBJIGRpZG4ndCBzZWUgaG93IHRoZSBrbWFsbG9jIHdhcyBjaGFuZ2VkLi4uIHlv dSByZWZhY3RvcmVkIHRoZSBjb2RlIHRvIHBhc3MtaW4gdGhlCkdGUF9LRVJORUwgdGhhdCB3YXMg b3JpZ2luYWxseSBoYXJkLWNvZGVkIGludG8gdXBzdHJlYW1fYnJpZGdlX2Rpc3RhbmNlX3dhcm4o KTsKSSBkb24ndCBzZWUgaG93IHRoYXQgYXZvaWRlZCB0aGUga21hbGxvYygpIGNhbGwuCmluIGZh Y3QsIEkgYWxzbyBzZWUgeW91IGxvc3QgYSBmYWlsZWQga21hbGxvYygpIGNoZWNrLCBzbyBpdCBz ZWVtcyB0byBoYXZlIHRha2VuIGEgc3RlcCBiYWNrLgoKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJl dHVybjsKPj4gwqAgwqDCoMKgwqDCoCBzZXFfYnVmX3ByaW50ZihidWYsICIlczsiLCBwY2lfbmFt ZShwZGV2KSk7Cj4+IEBAIC00OTUsMjUgKzQ5NSwyNiBAQCB1cHN0cmVhbV9icmlkZ2VfZGlzdGFu Y2Uoc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLCBzdHJ1Y3QgcGNpX2RldiAqY2xpZW50LAo+PiDC oCDCoCBzdGF0aWMgZW51bSBwY2lfcDJwZG1hX21hcF90eXBlCj4+IMKgIHVwc3RyZWFtX2JyaWRn ZV9kaXN0YW5jZV93YXJuKHN0cnVjdCBwY2lfZGV2ICpwcm92aWRlciwgc3RydWN0IHBjaV9kZXYg KmNsaWVudCwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50ICpkaXN0 KQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgKmRpc3QsIGdmcF90 IGdmcF9tYXNrKQo+PiDCoCB7Cj4+IMKgwqDCoMKgwqAgc3RydWN0IHNlcV9idWYgYWNzX2xpc3Q7 Cj4+IMKgwqDCoMKgwqAgYm9vbCBhY3NfcmVkaXJlY3RzOwo+PiDCoMKgwqDCoMKgIGludCByZXQ7 Cj4+IMKgIC3CoMKgwqAgc2VxX2J1Zl9pbml0KCZhY3NfbGlzdCwga21hbGxvYyhQQUdFX1NJWkUs IEdGUF9LRVJORUwpLCBQQUdFX1NJWkUpOwo+PiAtwqDCoMKgIGlmICghYWNzX2xpc3QuYnVmZmVy KQo+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9NRU07Cj4KPiBBbm90aGVyIG9kZCB0aGlu ZzogdGhpcyB1c2VkIHRvIGNoZWNrIGZvciBtZW1vcnkgZmFpbHVyZSBhbmQganVzdCBnaXZlCj4g dXAsIGFuZCBub3cgaXQgZG9lc24ndC4gWWVzLCBJIHJlYWxpemUgdGhhdCBpdCBhbGwgc3RpbGwg d29ya3MgYXQgdGhlCj4gbW9tZW50LCBidXQgdGhpcyBpcyBxdWlya3kgYW5kIHdlIHNob3VsZG4n dCBzdG9wIGhlcmUuCj4KPiBJbnN0ZWFkLCBhIGNsZWFuZXIgYXBwcm9hY2ggd291bGQgYmUgdG8g cHVzaCB0aGUgbWVtb3J5IGFsbG9jYXRpb24KPiBzbGlnaHRseSBoaWdoZXIgdXAgdGhlIGNhbGwg c3RhY2ssIG91dCB0byB0aGUKPiBwY2lfcDJwZG1hX2Rpc3RhbmNlX21hbnkoKS4gU28gcGNpX3Ay cGRtYV9kaXN0YW5jZV9tYW55KCkgc2hvdWxkIG1ha2UKPiB0aGUga21hbGxvYygpIGNhbGwsIGFu ZCBmYWlsIG91dCBpZiBpdCBjYW4ndCBnZXQgYSBwYWdlIGZvciB0aGUgc2VxX2J1Zgo+IGJ1ZmZl ci4gVGhlbiB5b3UgZG9uJ3QgaGF2ZSB0byBkbyBhbGwgdGhpcyBvZGQgc3R1ZmYuCj4KPiBGdXJ0 aGVybW9yZSwgdGhlIGNhbGwgc2l0ZXMgY2FuIHRoZW4gZGVjaWRlIGZvciB0aGVtc2VsdmVzIHdo aWNoIEdGUAo+IGZsYWdzLCBHRlBfQVRPTUlDIG9yIEdGUF9LRVJORUwgb3Igd2hhdGV2ZXIgdGhl eSB3YW50IGZvciBrbWFsbG9jKCkuCj4KYWdyZWUsIGdvb2QgcHJvcG9zYWwgdG8gYXZvaWQgYSBz bGVlcCBkdWUgdG8ga21hbGxvYygpLgoKPiBBIHJlbGF0ZWQgdGhpbmc6IHRoaXMgd2hvbGUgZXhl cmNpc2Ugd291bGQgZ28gYmV0dGVyIGlmIHRoZXJlIHdlcmUgYQo+IHByZXBhcmF0b3J5IHBhdGNo IG9yIHR3byB0aGF0IGNoYW5nZWQgdGhlIHJldHVybiBjb2RlcyBpbiB0aGlzIGZpbGUgdG8KPiBz b21ldGhpbmcgbGVzcyBjcmF6eS4gVGhlcmUgYXJlIHRvbyBtYW55IGZ1bmN0aW9ucyB0aGF0IGNh biBmYWlsLCBidXQKPiBhcmUgdHJlYXRlZCBhcyBpZiB0aGV5IHNvcnQtb2YtbW9zdGx5LXdvdWxk LW5ldmVyLWZhaWwsIGluIHRoZSBob3BlcyBvZgo+IHVzaW5nIHRoZSByZXR1cm4gdmFsdWUgZGly ZWN0bHkgZm9yIGNvdW50aW5nIGFuZCBzdWNoLiBUaGlzIGlzIGJhZGx5Cj4gbWlzdGFrZW4sIGFu ZCBpdCBsZWFkcyBkZXZlbG9wZXJzIHRvIHRyeSB0byBhdm9pZCByZXR1cm5pbmcgLUVOT01FTQo+ ICh3aGljaCBpcyB3aGF0IHdlIG5lZWQgaGVyZSkuCj4KPiBSZWFsbHksIHRoZXNlIGZ1bmN0aW9u cyBzaG91bGQgYWxsIGJlIGRvaW5nICIwIGZvciBzdWNjZXNzLCAtRVJSTk8gZm9yCj4gZmFpbHVy ZSwgYW5kIHBhc3Mgb3RoZXIgdmFsdWVzLCBpbmNsdWRpbmcgcmVzdWx0cywgaW4gdGhlIGFyZyBs aXN0Ii4KPgpXRk0hCgo+Cj4+ICvCoMKgwqAgc2VxX2J1Zl9pbml0KCZhY3NfbGlzdCwga21hbGxv YyhQQUdFX1NJWkUsIGdmcF9tYXNrKSwgUEFHRV9TSVpFKTsKPj4gwqAgwqDCoMKgwqDCoCByZXQg PSB1cHN0cmVhbV9icmlkZ2VfZGlzdGFuY2UocHJvdmlkZXIsIGNsaWVudCwgZGlzdCwgJmFjc19y ZWRpcmVjdHMsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAmYWNzX2xpc3QpOwo+PiDCoMKgwqDCoMKgIGlmIChhY3NfcmVkaXJlY3RzKSB7Cj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBwY2lfd2FybihjbGllbnQsICJBQ1MgcmVkaXJlY3QgaXMgc2V0IGJl dHdlZW4gdGhlIGNsaWVudCBhbmQgcHJvdmlkZXIgKCVzKVxuIiwKPj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBwY2lfbmFtZShwcm92aWRlcikpOwo+PiAtwqDCoMKgwqDCoMKgwqAgLyog RHJvcCBmaW5hbCBzZW1pY29sb24gKi8KPj4gLcKgwqDCoMKgwqDCoMKgIGFjc19saXN0LmJ1ZmZl clthY3NfbGlzdC5sZW4tMV0gPSAwOwo+PiAtwqDCoMKgwqDCoMKgwqAgcGNpX3dhcm4oY2xpZW50 LCAidG8gZGlzYWJsZSBBQ1MgcmVkaXJlY3QgZm9yIHRoaXMgcGF0aCwgYWRkIHRoZSBrZXJuZWwg cGFyYW1ldGVyOiBwY2k9ZGlzYWJsZV9hY3NfcmVkaXI9JXNcbiIsCj4+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgYWNzX2xpc3QuYnVmZmVyKTsKPj4gKwo+PiArwqDCoMKgwqDCoMKgwqAgaWYg KGFjc19saXN0LmJ1ZmZlcikgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBEcm9wIGZp bmFsIHNlbWljb2xvbiAqLwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhY3NfbGlzdC5idWZm ZXJbYWNzX2xpc3QubGVuIC0gMV0gPSAwOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwY2lf d2FybihjbGllbnQsICJ0byBkaXNhYmxlIEFDUyByZWRpcmVjdCBmb3IgdGhpcyBwYXRoLCBhZGQg dGhlIGtlcm5lbCBwYXJhbWV0ZXI6IHBjaT1kaXNhYmxlX2Fjc19yZWRpcj0lc1xuIiwKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFjc19saXN0LmJ1ZmZlcik7Cj4+ICvCoMKg wqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqAgfQo+PiDCoCDCoMKgwqDCoMKgIGlmIChyZXQgPT0g UENJX1AyUERNQV9NQVBfTk9UX1NVUFBPUlRFRCkgewo+PiBAQCAtNTY2LDcgKzU2Nyw3IEBAIGlu dCBwY2lfcDJwZG1hX2Rpc3RhbmNlX21hbnkoc3RydWN0IHBjaV9kZXYgKnByb3ZpZGVyLCBzdHJ1 Y3QgZGV2aWNlICoqY2xpZW50cywKPj4gwqAgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICh2ZXJib3Nl KQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSB1cHN0cmVhbV9icmlkZ2VfZGlz dGFuY2Vfd2Fybihwcm92aWRlciwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHBjaV9jbGllbnQsICZkaXN0YW5jZSk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBwY2lfY2xpZW50LCAmZGlzdGFuY2UsIEdGUF9LRVJORUwpOwo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgZWxzZQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQg PSB1cHN0cmVhbV9icmlkZ2VfZGlzdGFuY2UocHJvdmlkZXIsIHBjaV9jbGllbnQsCj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgJmRpc3RhbmNlLCBOVUxMLCBOVUxMKTsKPj4KPgo+IHRoYW5rcywKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlvbW11IG1haWxpbmcgbGlzdAppb21t dUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlv bi5vcmcvbWFpbG1hbi9saXN0aW5mby9pb21tdQ==