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=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 6991DCA9EC0 for ; Mon, 28 Oct 2019 20:10:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 362C521721 for ; Mon, 28 Oct 2019 20:10:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=ziepe.ca header.i=@ziepe.ca header.b="Hh/Zj3Y+" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727590AbfJ1UKp (ORCPT ); Mon, 28 Oct 2019 16:10:45 -0400 Received: from mail-qk1-f195.google.com ([209.85.222.195]:45705 "EHLO mail-qk1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725776AbfJ1UKp (ORCPT ); Mon, 28 Oct 2019 16:10:45 -0400 Received: by mail-qk1-f195.google.com with SMTP id q70so9742487qke.12 for ; Mon, 28 Oct 2019 13:10:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jB/ndDNYI+4jh+CyWUF8UUfKQRLegAjGY1TRhiwKQXc=; b=Hh/Zj3Y+Ryj/mU9zMFkCbpMT+v0KWWsJkUCHo1SRF/TME2Wth945w+SYI+g39jEPtr 2TcL6muJgm05AFmLXzPJ2in/FLllzSgw/AhshM/+MYVIyJbvpU0Qap6m7vyyIMRZczjM qoRRoR6DCc1QboYFax8j0T3qz9s4m6qoVjluldwL8VV7L6yIOlMd0/vXcql7RACqDDl7 yEg0VGkJ7zGEKiXYcwRIQgRK1yf/bFeaYVtpI2tN+jQa36SxcmtU4AhWxNj5bkZTFyzo TREK4XNbxKgUHNgwccShMuwBnl2TL/ivSv+RnIdWqzcy2MpngTiiSLCxjHKPz913nWhK 84oQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jB/ndDNYI+4jh+CyWUF8UUfKQRLegAjGY1TRhiwKQXc=; b=dzsM+Osj5yazRE5c3YwPVV3XnmIBEz3O41eEuiYnXKG5cS7WqfyBYR/v7mfpNGBw6h ZsMy1e6rklRMMdrQiL/vmGUocMzT4SqfoAbLGi0lOSK13rtLEMrLEk7zXwstgYVSZAHS B+I5b6QYMeY04tLUd5xKBRK1I6GA+IVERzgMJFmD73pYsqru4VV26Giue8B2pho+9mZE VbI7aAP6b27b5PF6WgiSzyF3KiCgI63gFmEqbzNsQ3d5eMlLe4JPoaUocAZNfOz5IR6E pO8LmlwgYBYo/ndtiGQM0nT/RcnVjxfoQMb25Yav7D919ks5XtMvao6jJsMrsNIbNGrB k6rw== X-Gm-Message-State: APjAAAWvjJVnru7RJB/gAIAgtSl3BrnJP4NG6gKB5oa+BWtOFXQkw8jk tbqTUJQPOZHGcHJUWDZnBtyesWi/sl8= X-Google-Smtp-Source: APXvYqwdtbMFOB3L0H1oyTNxzhFUkpbCkNAYH5f+kI9BJWI3JXGsIu1i9+YKKYVTym2s/kszBv6jdw== X-Received: by 2002:ae9:ee10:: with SMTP id i16mr17214277qkg.14.1572293444241; Mon, 28 Oct 2019 13:10:44 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-142-162-113-180.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.162.113.180]) by smtp.gmail.com with ESMTPSA id l7sm5028902qkg.102.2019.10.28.13.10.43 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 28 Oct 2019 13:10:44 -0700 (PDT) Received: from jgg by mlx.ziepe.ca with local (Exim 4.90_1) (envelope-from ) id 1iPBLf-0001gw-Fq; Mon, 28 Oct 2019 17:10:43 -0300 From: Jason Gunthorpe To: linux-mm@kvack.org, Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling@amd.com Cc: linux-rdma@vger.kernel.org, dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, Alex Deucher , Ben Skeggs , Boris Ostrovsky , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Zhou , Dennis Dalessandro , Juergen Gross , Mike Marciniszyn , Oleksandr Andrushchenko , Petr Cvek , Stefano Stabellini , nouveau@lists.freedesktop.org, xen-devel@lists.xenproject.org, Christoph Hellwig , Jason Gunthorpe Subject: [PATCH v2 10/15] nouveau: use mmu_notifier directly for invalidate_range_start Date: Mon, 28 Oct 2019 17:10:27 -0300 Message-Id: <20191028201032.6352-11-jgg@ziepe.ca> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191028201032.6352-1-jgg@ziepe.ca> References: <20191028201032.6352-1-jgg@ziepe.ca> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Jason Gunthorpe There is no reason to get the invalidate_range_start() callback via an indirection through hmm_mirror, just register a normal notifier directly. Cc: Ben Skeggs Cc: dri-devel@lists.freedesktop.org Cc: nouveau@lists.freedesktop.org Cc: Ralph Campbell Signed-off-by: Jason Gunthorpe --- drivers/gpu/drm/nouveau/nouveau_svm.c | 95 ++++++++++++++++++--------- 1 file changed, 63 insertions(+), 32 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_svm.c b/drivers/gpu/drm/nouveau/nouveau_svm.c index 668d4bd0c118f1..577f8811925a59 100644 --- a/drivers/gpu/drm/nouveau/nouveau_svm.c +++ b/drivers/gpu/drm/nouveau/nouveau_svm.c @@ -88,6 +88,7 @@ nouveau_ivmm_find(struct nouveau_svm *svm, u64 inst) } struct nouveau_svmm { + struct mmu_notifier notifier; struct nouveau_vmm *vmm; struct { unsigned long start; @@ -96,7 +97,6 @@ struct nouveau_svmm { struct mutex mutex; - struct mm_struct *mm; struct hmm_mirror mirror; }; @@ -251,10 +251,11 @@ nouveau_svmm_invalidate(struct nouveau_svmm *svmm, u64 start, u64 limit) } static int -nouveau_svmm_sync_cpu_device_pagetables(struct hmm_mirror *mirror, - const struct mmu_notifier_range *update) +nouveau_svmm_invalidate_range_start(struct mmu_notifier *mn, + const struct mmu_notifier_range *update) { - struct nouveau_svmm *svmm = container_of(mirror, typeof(*svmm), mirror); + struct nouveau_svmm *svmm = + container_of(mn, struct nouveau_svmm, notifier); unsigned long start = update->start; unsigned long limit = update->end; @@ -264,6 +265,9 @@ nouveau_svmm_sync_cpu_device_pagetables(struct hmm_mirror *mirror, SVMM_DBG(svmm, "invalidate %016lx-%016lx", start, limit); mutex_lock(&svmm->mutex); + if (unlikely(!svmm->vmm)) + goto out; + if (limit > svmm->unmanaged.start && start < svmm->unmanaged.limit) { if (start < svmm->unmanaged.start) { nouveau_svmm_invalidate(svmm, start, @@ -273,19 +277,31 @@ nouveau_svmm_sync_cpu_device_pagetables(struct hmm_mirror *mirror, } nouveau_svmm_invalidate(svmm, start, limit); + +out: mutex_unlock(&svmm->mutex); return 0; } -static void -nouveau_svmm_release(struct hmm_mirror *mirror) +static void nouveau_svmm_free_notifier(struct mmu_notifier *mn) +{ + kfree(container_of(mn, struct nouveau_svmm, notifier)); +} + +static const struct mmu_notifier_ops nouveau_mn_ops = { + .invalidate_range_start = nouveau_svmm_invalidate_range_start, + .free_notifier = nouveau_svmm_free_notifier, +}; + +static int +nouveau_svmm_sync_cpu_device_pagetables(struct hmm_mirror *mirror, + const struct mmu_notifier_range *update) { + return 0; } -static const struct hmm_mirror_ops -nouveau_svmm = { +static const struct hmm_mirror_ops nouveau_svmm = { .sync_cpu_device_pagetables = nouveau_svmm_sync_cpu_device_pagetables, - .release = nouveau_svmm_release, }; void @@ -294,7 +310,10 @@ nouveau_svmm_fini(struct nouveau_svmm **psvmm) struct nouveau_svmm *svmm = *psvmm; if (svmm) { hmm_mirror_unregister(&svmm->mirror); - kfree(*psvmm); + mutex_lock(&svmm->mutex); + svmm->vmm = NULL; + mutex_unlock(&svmm->mutex); + mmu_notifier_put(&svmm->notifier); *psvmm = NULL; } } @@ -320,7 +339,7 @@ nouveau_svmm_init(struct drm_device *dev, void *data, mutex_lock(&cli->mutex); if (cli->svm.cli) { ret = -EBUSY; - goto done; + goto out_free; } /* Allocate a new GPU VMM that can support SVM (managed by the @@ -335,24 +354,33 @@ nouveau_svmm_init(struct drm_device *dev, void *data, .fault_replay = true, }, sizeof(struct gp100_vmm_v0), &cli->svm.vmm); if (ret) - goto done; + goto out_free; - /* Enable HMM mirroring of CPU address-space to VMM. */ - svmm->mm = get_task_mm(current); - down_write(&svmm->mm->mmap_sem); + down_write(¤t->mm->mmap_sem); svmm->mirror.ops = &nouveau_svmm; - ret = hmm_mirror_register(&svmm->mirror, svmm->mm); - if (ret == 0) { - cli->svm.svmm = svmm; - cli->svm.cli = cli; - } - up_write(&svmm->mm->mmap_sem); - mmput(svmm->mm); + ret = hmm_mirror_register(&svmm->mirror, current->mm); + if (ret) + goto out_mm_unlock; -done: + svmm->notifier.ops = &nouveau_mn_ops; + ret = __mmu_notifier_register(&svmm->notifier, current->mm); if (ret) - nouveau_svmm_fini(&svmm); + goto out_hmm_unregister; + /* Note, ownership of svmm transfers to mmu_notifier */ + + cli->svm.svmm = svmm; + cli->svm.cli = cli; + up_write(¤t->mm->mmap_sem); mutex_unlock(&cli->mutex); + return 0; + +out_hmm_unregister: + hmm_mirror_unregister(&svmm->mirror); +out_mm_unlock: + up_write(¤t->mm->mmap_sem); +out_free: + mutex_unlock(&cli->mutex); + kfree(svmm); return ret; } @@ -494,12 +522,12 @@ nouveau_range_fault(struct nouveau_svmm *svmm, struct hmm_range *range) ret = hmm_range_register(range, &svmm->mirror); if (ret) { - up_read(&svmm->mm->mmap_sem); + up_read(&svmm->notifier.mm->mmap_sem); return (int)ret; } if (!hmm_range_wait_until_valid(range, HMM_RANGE_DEFAULT_TIMEOUT)) { - up_read(&svmm->mm->mmap_sem); + up_read(&svmm->notifier.mm->mmap_sem); return -EBUSY; } @@ -507,7 +535,7 @@ nouveau_range_fault(struct nouveau_svmm *svmm, struct hmm_range *range) if (ret <= 0) { if (ret == 0) ret = -EBUSY; - up_read(&svmm->mm->mmap_sem); + up_read(&svmm->notifier.mm->mmap_sem); hmm_range_unregister(range); return ret; } @@ -587,12 +615,15 @@ nouveau_svm_fault(struct nvif_notify *notify) args.i.p.version = 0; for (fi = 0; fn = fi + 1, fi < buffer->fault_nr; fi = fn) { + struct mm_struct *mm; + /* Cancel any faults from non-SVM channels. */ if (!(svmm = buffer->fault[fi]->svmm)) { nouveau_svm_fault_cancel_fault(svm, buffer->fault[fi]); continue; } SVMM_DBG(svmm, "addr %016llx", buffer->fault[fi]->addr); + mm = svmm->notifier.mm; /* We try and group handling of faults within a small * window into a single update. @@ -609,11 +640,11 @@ nouveau_svm_fault(struct nvif_notify *notify) /* Intersect fault window with the CPU VMA, cancelling * the fault if the address is invalid. */ - down_read(&svmm->mm->mmap_sem); - vma = find_vma_intersection(svmm->mm, start, limit); + down_read(&mm->mmap_sem); + vma = find_vma_intersection(mm, start, limit); if (!vma) { SVMM_ERR(svmm, "wndw %016llx-%016llx", start, limit); - up_read(&svmm->mm->mmap_sem); + up_read(&mm->mmap_sem); nouveau_svm_fault_cancel_fault(svm, buffer->fault[fi]); continue; } @@ -623,7 +654,7 @@ nouveau_svm_fault(struct nvif_notify *notify) if (buffer->fault[fi]->addr != start) { SVMM_ERR(svmm, "addr %016llx", buffer->fault[fi]->addr); - up_read(&svmm->mm->mmap_sem); + up_read(&mm->mmap_sem); nouveau_svm_fault_cancel_fault(svm, buffer->fault[fi]); continue; } @@ -704,7 +735,7 @@ nouveau_svm_fault(struct nvif_notify *notify) NULL); svmm->vmm->vmm.object.client->super = false; mutex_unlock(&svmm->mutex); - up_read(&svmm->mm->mmap_sem); + up_read(&mm->mmap_sem); } /* Cancel any faults in the window whose pages didn't manage -- 2.23.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Gunthorpe Subject: [PATCH v2 10/15] nouveau: use mmu_notifier directly for invalidate_range_start Date: Mon, 28 Oct 2019 17:10:27 -0300 Message-ID: <20191028201032.6352-11-jgg@ziepe.ca> References: <20191028201032.6352-1-jgg@ziepe.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191028201032.6352-1-jgg@ziepe.ca> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: linux-mm@kvack.org, Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling@amd.com Cc: Juergen Gross , David Zhou , Mike Marciniszyn , Stefano Stabellini , Oleksandr Andrushchenko , linux-rdma@vger.kernel.org, nouveau@lists.freedesktop.org, Dennis Dalessandro , amd-gfx@lists.freedesktop.org, Christoph Hellwig , Jason Gunthorpe , dri-devel@lists.freedesktop.org, Alex Deucher , xen-devel@lists.xenproject.org, Boris Ostrovsky , Petr Cvek , =?UTF-8?q?Christian=20K=C3=B6nig?= , Ben Skeggs List-Id: nouveau.vger.kernel.org RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKVGhlcmUgaXMgbm8gcmVh c29uIHRvIGdldCB0aGUgaW52YWxpZGF0ZV9yYW5nZV9zdGFydCgpIGNhbGxiYWNrIHZpYSBhbgpp bmRpcmVjdGlvbiB0aHJvdWdoIGhtbV9taXJyb3IsIGp1c3QgcmVnaXN0ZXIgYSBub3JtYWwgbm90 aWZpZXIgZGlyZWN0bHkuCgpDYzogQmVuIFNrZWdncyA8YnNrZWdnc0ByZWRoYXQuY29tPgpDYzog ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpDYzogbm91dmVhdUBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKQ2M6IFJhbHBoIENhbXBiZWxsIDxyY2FtcGJlbGxAbnZpZGlhLmNvbT4KU2lnbmVk LW9mZi1ieTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfc3ZtLmMgfCA5NSArKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3N2bS5jIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYwppbmRleCA2NjhkNGJkMGMxMThmMS4u NTc3Zjg4MTE5MjVhNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfc3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYwpAQCAt ODgsNiArODgsNyBAQCBub3V2ZWF1X2l2bW1fZmluZChzdHJ1Y3Qgbm91dmVhdV9zdm0gKnN2bSwg dTY0IGluc3QpCiB9CiAKIHN0cnVjdCBub3V2ZWF1X3N2bW0geworCXN0cnVjdCBtbXVfbm90aWZp ZXIgbm90aWZpZXI7CiAJc3RydWN0IG5vdXZlYXVfdm1tICp2bW07CiAJc3RydWN0IHsKIAkJdW5z aWduZWQgbG9uZyBzdGFydDsKQEAgLTk2LDcgKzk3LDYgQEAgc3RydWN0IG5vdXZlYXVfc3ZtbSB7 CiAKIAlzdHJ1Y3QgbXV0ZXggbXV0ZXg7CiAKLQlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKIAlzdHJ1 Y3QgaG1tX21pcnJvciBtaXJyb3I7CiB9OwogCkBAIC0yNTEsMTAgKzI1MSwxMSBAQCBub3V2ZWF1 X3N2bW1faW52YWxpZGF0ZShzdHJ1Y3Qgbm91dmVhdV9zdm1tICpzdm1tLCB1NjQgc3RhcnQsIHU2 NCBsaW1pdCkKIH0KIAogc3RhdGljIGludAotbm91dmVhdV9zdm1tX3N5bmNfY3B1X2RldmljZV9w YWdldGFibGVzKHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IsCi0JCQkJCWNvbnN0IHN0cnVjdCBt bXVfbm90aWZpZXJfcmFuZ2UgKnVwZGF0ZSkKK25vdXZlYXVfc3ZtbV9pbnZhbGlkYXRlX3Jhbmdl X3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAorCQkJCSAgICBjb25zdCBzdHJ1Y3QgbW11 X25vdGlmaWVyX3JhbmdlICp1cGRhdGUpCiB7Ci0Jc3RydWN0IG5vdXZlYXVfc3ZtbSAqc3ZtbSA9 IGNvbnRhaW5lcl9vZihtaXJyb3IsIHR5cGVvZigqc3ZtbSksIG1pcnJvcik7CisJc3RydWN0IG5v dXZlYXVfc3ZtbSAqc3ZtbSA9CisJCWNvbnRhaW5lcl9vZihtbiwgc3RydWN0IG5vdXZlYXVfc3Zt bSwgbm90aWZpZXIpOwogCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSB1cGRhdGUtPnN0YXJ0OwogCXVu c2lnbmVkIGxvbmcgbGltaXQgPSB1cGRhdGUtPmVuZDsKIApAQCAtMjY0LDYgKzI2NSw5IEBAIG5v dXZlYXVfc3ZtbV9zeW5jX2NwdV9kZXZpY2VfcGFnZXRhYmxlcyhzdHJ1Y3QgaG1tX21pcnJvciAq bWlycm9yLAogCVNWTU1fREJHKHN2bW0sICJpbnZhbGlkYXRlICUwMTZseC0lMDE2bHgiLCBzdGFy dCwgbGltaXQpOwogCiAJbXV0ZXhfbG9jaygmc3ZtbS0+bXV0ZXgpOworCWlmICh1bmxpa2VseSgh c3ZtbS0+dm1tKSkKKwkJZ290byBvdXQ7CisKIAlpZiAobGltaXQgPiBzdm1tLT51bm1hbmFnZWQu c3RhcnQgJiYgc3RhcnQgPCBzdm1tLT51bm1hbmFnZWQubGltaXQpIHsKIAkJaWYgKHN0YXJ0IDwg c3ZtbS0+dW5tYW5hZ2VkLnN0YXJ0KSB7CiAJCQlub3V2ZWF1X3N2bW1faW52YWxpZGF0ZShzdm1t LCBzdGFydCwKQEAgLTI3MywxOSArMjc3LDMxIEBAIG5vdXZlYXVfc3ZtbV9zeW5jX2NwdV9kZXZp Y2VfcGFnZXRhYmxlcyhzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLAogCX0KIAogCW5vdXZlYXVf c3ZtbV9pbnZhbGlkYXRlKHN2bW0sIHN0YXJ0LCBsaW1pdCk7CisKK291dDoKIAltdXRleF91bmxv Y2soJnN2bW0tPm11dGV4KTsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQKLW5vdXZlYXVf c3ZtbV9yZWxlYXNlKHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IpCitzdGF0aWMgdm9pZCBub3V2 ZWF1X3N2bW1fZnJlZV9ub3RpZmllcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbikKK3sKKwlrZnJl ZShjb250YWluZXJfb2YobW4sIHN0cnVjdCBub3V2ZWF1X3N2bW0sIG5vdGlmaWVyKSk7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX29wcyBub3V2ZWF1X21uX29wcyA9IHsK KwkuaW52YWxpZGF0ZV9yYW5nZV9zdGFydCA9IG5vdXZlYXVfc3ZtbV9pbnZhbGlkYXRlX3Jhbmdl X3N0YXJ0LAorCS5mcmVlX25vdGlmaWVyID0gbm91dmVhdV9zdm1tX2ZyZWVfbm90aWZpZXIsCit9 OworCitzdGF0aWMgaW50Citub3V2ZWF1X3N2bW1fc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJsZXMo c3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwKKwkJCQkJY29uc3Qgc3RydWN0IG1tdV9ub3RpZmll cl9yYW5nZSAqdXBkYXRlKQogeworCXJldHVybiAwOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0 IGhtbV9taXJyb3Jfb3BzCi1ub3V2ZWF1X3N2bW0gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGht bV9taXJyb3Jfb3BzIG5vdXZlYXVfc3ZtbSA9IHsKIAkuc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJs ZXMgPSBub3V2ZWF1X3N2bW1fc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJsZXMsCi0JLnJlbGVhc2Ug PSBub3V2ZWF1X3N2bW1fcmVsZWFzZSwKIH07CiAKIHZvaWQKQEAgLTI5NCw3ICszMTAsMTAgQEAg bm91dmVhdV9zdm1tX2Zpbmkoc3RydWN0IG5vdXZlYXVfc3ZtbSAqKnBzdm1tKQogCXN0cnVjdCBu b3V2ZWF1X3N2bW0gKnN2bW0gPSAqcHN2bW07CiAJaWYgKHN2bW0pIHsKIAkJaG1tX21pcnJvcl91 bnJlZ2lzdGVyKCZzdm1tLT5taXJyb3IpOwotCQlrZnJlZSgqcHN2bW0pOworCQltdXRleF9sb2Nr KCZzdm1tLT5tdXRleCk7CisJCXN2bW0tPnZtbSA9IE5VTEw7CisJCW11dGV4X3VubG9jaygmc3Zt bS0+bXV0ZXgpOworCQltbXVfbm90aWZpZXJfcHV0KCZzdm1tLT5ub3RpZmllcik7CiAJCSpwc3Zt bSA9IE5VTEw7CiAJfQogfQpAQCAtMzIwLDcgKzMzOSw3IEBAIG5vdXZlYXVfc3ZtbV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJbXV0ZXhfbG9jaygmY2xpLT5tdXRl eCk7CiAJaWYgKGNsaS0+c3ZtLmNsaSkgewogCQlyZXQgPSAtRUJVU1k7Ci0JCWdvdG8gZG9uZTsK KwkJZ290byBvdXRfZnJlZTsKIAl9CiAKIAkvKiBBbGxvY2F0ZSBhIG5ldyBHUFUgVk1NIHRoYXQg Y2FuIHN1cHBvcnQgU1ZNIChtYW5hZ2VkIGJ5IHRoZQpAQCAtMzM1LDI0ICszNTQsMzMgQEAgbm91 dmVhdV9zdm1tX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCQku ZmF1bHRfcmVwbGF5ID0gdHJ1ZSwKIAkJCSAgICB9LCBzaXplb2Yoc3RydWN0IGdwMTAwX3ZtbV92 MCksICZjbGktPnN2bS52bW0pOwogCWlmIChyZXQpCi0JCWdvdG8gZG9uZTsKKwkJZ290byBvdXRf ZnJlZTsKIAotCS8qIEVuYWJsZSBITU0gbWlycm9yaW5nIG9mIENQVSBhZGRyZXNzLXNwYWNlIHRv IFZNTS4gKi8KLQlzdm1tLT5tbSA9IGdldF90YXNrX21tKGN1cnJlbnQpOwotCWRvd25fd3JpdGUo JnN2bW0tPm1tLT5tbWFwX3NlbSk7CisJZG93bl93cml0ZSgmY3VycmVudC0+bW0tPm1tYXBfc2Vt KTsKIAlzdm1tLT5taXJyb3Iub3BzID0gJm5vdXZlYXVfc3ZtbTsKLQlyZXQgPSBobW1fbWlycm9y X3JlZ2lzdGVyKCZzdm1tLT5taXJyb3IsIHN2bW0tPm1tKTsKLQlpZiAocmV0ID09IDApIHsKLQkJ Y2xpLT5zdm0uc3ZtbSA9IHN2bW07Ci0JCWNsaS0+c3ZtLmNsaSA9IGNsaTsKLQl9Ci0JdXBfd3Jp dGUoJnN2bW0tPm1tLT5tbWFwX3NlbSk7Ci0JbW1wdXQoc3ZtbS0+bW0pOworCXJldCA9IGhtbV9t aXJyb3JfcmVnaXN0ZXIoJnN2bW0tPm1pcnJvciwgY3VycmVudC0+bW0pOworCWlmIChyZXQpCisJ CWdvdG8gb3V0X21tX3VubG9jazsKIAotZG9uZToKKwlzdm1tLT5ub3RpZmllci5vcHMgPSAmbm91 dmVhdV9tbl9vcHM7CisJcmV0ID0gX19tbXVfbm90aWZpZXJfcmVnaXN0ZXIoJnN2bW0tPm5vdGlm aWVyLCBjdXJyZW50LT5tbSk7CiAJaWYgKHJldCkKLQkJbm91dmVhdV9zdm1tX2ZpbmkoJnN2bW0p OworCQlnb3RvIG91dF9obW1fdW5yZWdpc3RlcjsKKwkvKiBOb3RlLCBvd25lcnNoaXAgb2Ygc3Zt bSB0cmFuc2ZlcnMgdG8gbW11X25vdGlmaWVyICovCisKKwljbGktPnN2bS5zdm1tID0gc3ZtbTsK KwljbGktPnN2bS5jbGkgPSBjbGk7CisJdXBfd3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7 CiAJbXV0ZXhfdW5sb2NrKCZjbGktPm11dGV4KTsKKwlyZXR1cm4gMDsKKworb3V0X2htbV91bnJl Z2lzdGVyOgorCWhtbV9taXJyb3JfdW5yZWdpc3Rlcigmc3ZtbS0+bWlycm9yKTsKK291dF9tbV91 bmxvY2s6CisJdXBfd3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7CitvdXRfZnJlZToKKwlt dXRleF91bmxvY2soJmNsaS0+bXV0ZXgpOworCWtmcmVlKHN2bW0pOwogCXJldHVybiByZXQ7CiB9 CiAKQEAgLTQ5NCwxMiArNTIyLDEyIEBAIG5vdXZlYXVfcmFuZ2VfZmF1bHQoc3RydWN0IG5vdXZl YXVfc3ZtbSAqc3ZtbSwgc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiAKIAlyZXQgPSBobW1fcmFu Z2VfcmVnaXN0ZXIocmFuZ2UsICZzdm1tLT5taXJyb3IpOwogCWlmIChyZXQpIHsKLQkJdXBfcmVh ZCgmc3ZtbS0+bW0tPm1tYXBfc2VtKTsKKwkJdXBfcmVhZCgmc3ZtbS0+bm90aWZpZXIubW0tPm1t YXBfc2VtKTsKIAkJcmV0dXJuIChpbnQpcmV0OwogCX0KIAogCWlmICghaG1tX3JhbmdlX3dhaXRf dW50aWxfdmFsaWQocmFuZ2UsIEhNTV9SQU5HRV9ERUZBVUxUX1RJTUVPVVQpKSB7Ci0JCXVwX3Jl YWQoJnN2bW0tPm1tLT5tbWFwX3NlbSk7CisJCXVwX3JlYWQoJnN2bW0tPm5vdGlmaWVyLm1tLT5t bWFwX3NlbSk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCkBAIC01MDcsNyArNTM1LDcgQEAgbm91 dmVhdV9yYW5nZV9mYXVsdChzdHJ1Y3Qgbm91dmVhdV9zdm1tICpzdm1tLCBzdHJ1Y3QgaG1tX3Jh bmdlICpyYW5nZSkKIAlpZiAocmV0IDw9IDApIHsKIAkJaWYgKHJldCA9PSAwKQogCQkJcmV0ID0g LUVCVVNZOwotCQl1cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQl1cF9yZWFkKCZzdm1t LT5ub3RpZmllci5tbS0+bW1hcF9zZW0pOwogCQlobW1fcmFuZ2VfdW5yZWdpc3RlcihyYW5nZSk7 CiAJCXJldHVybiByZXQ7CiAJfQpAQCAtNTg3LDEyICs2MTUsMTUgQEAgbm91dmVhdV9zdm1fZmF1 bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAJYXJncy5pLnAudmVyc2lvbiA9IDA7CiAK IAlmb3IgKGZpID0gMDsgZm4gPSBmaSArIDEsIGZpIDwgYnVmZmVyLT5mYXVsdF9ucjsgZmkgPSBm bikgeworCQlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKKwogCQkvKiBDYW5jZWwgYW55IGZhdWx0cyBm cm9tIG5vbi1TVk0gY2hhbm5lbHMuICovCiAJCWlmICghKHN2bW0gPSBidWZmZXItPmZhdWx0W2Zp XS0+c3ZtbSkpIHsKIAkJCW5vdXZlYXVfc3ZtX2ZhdWx0X2NhbmNlbF9mYXVsdChzdm0sIGJ1ZmZl ci0+ZmF1bHRbZmldKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCVNWTU1fREJHKHN2bW0sICJhZGRy ICUwMTZsbHgiLCBidWZmZXItPmZhdWx0W2ZpXS0+YWRkcik7CisJCW1tID0gc3ZtbS0+bm90aWZp ZXIubW07CiAKIAkJLyogV2UgdHJ5IGFuZCBncm91cCBoYW5kbGluZyBvZiBmYXVsdHMgd2l0aGlu IGEgc21hbGwKIAkJICogd2luZG93IGludG8gYSBzaW5nbGUgdXBkYXRlLgpAQCAtNjA5LDExICs2 NDAsMTEgQEAgbm91dmVhdV9zdm1fZmF1bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAJ CS8qIEludGVyc2VjdCBmYXVsdCB3aW5kb3cgd2l0aCB0aGUgQ1BVIFZNQSwgY2FuY2VsbGluZwog CQkgKiB0aGUgZmF1bHQgaWYgdGhlIGFkZHJlc3MgaXMgaW52YWxpZC4KIAkJICovCi0JCWRvd25f cmVhZCgmc3ZtbS0+bW0tPm1tYXBfc2VtKTsKLQkJdm1hID0gZmluZF92bWFfaW50ZXJzZWN0aW9u KHN2bW0tPm1tLCBzdGFydCwgbGltaXQpOworCQlkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7CisJ CXZtYSA9IGZpbmRfdm1hX2ludGVyc2VjdGlvbihtbSwgc3RhcnQsIGxpbWl0KTsKIAkJaWYgKCF2 bWEpIHsKIAkJCVNWTU1fRVJSKHN2bW0sICJ3bmR3ICUwMTZsbHgtJTAxNmxseCIsIHN0YXJ0LCBs aW1pdCk7Ci0JCQl1cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQkJdXBfcmVhZCgmbW0t Pm1tYXBfc2VtKTsKIAkJCW5vdXZlYXVfc3ZtX2ZhdWx0X2NhbmNlbF9mYXVsdChzdm0sIGJ1ZmZl ci0+ZmF1bHRbZmldKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC02MjMsNyArNjU0LDcgQEAgbm91 dmVhdV9zdm1fZmF1bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAKIAkJaWYgKGJ1ZmZl ci0+ZmF1bHRbZmldLT5hZGRyICE9IHN0YXJ0KSB7CiAJCQlTVk1NX0VSUihzdm1tLCAiYWRkciAl MDE2bGx4IiwgYnVmZmVyLT5mYXVsdFtmaV0tPmFkZHIpOwotCQkJdXBfcmVhZCgmc3ZtbS0+bW0t Pm1tYXBfc2VtKTsKKwkJCXVwX3JlYWQoJm1tLT5tbWFwX3NlbSk7CiAJCQlub3V2ZWF1X3N2bV9m YXVsdF9jYW5jZWxfZmF1bHQoc3ZtLCBidWZmZXItPmZhdWx0W2ZpXSk7CiAJCQljb250aW51ZTsK IAkJfQpAQCAtNzA0LDcgKzczNSw3IEBAIG5vdXZlYXVfc3ZtX2ZhdWx0KHN0cnVjdCBudmlmX25v dGlmeSAqbm90aWZ5KQogCQkJCQkJTlVMTCk7CiAJCQlzdm1tLT52bW0tPnZtbS5vYmplY3QuY2xp ZW50LT5zdXBlciA9IGZhbHNlOwogCQkJbXV0ZXhfdW5sb2NrKCZzdm1tLT5tdXRleCk7Ci0JCQl1 cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQkJdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsK IAkJfQogCiAJCS8qIENhbmNlbCBhbnkgZmF1bHRzIGluIHRoZSB3aW5kb3cgd2hvc2UgcGFnZXMg ZGlkbid0IG1hbmFnZQotLSAKMi4yMy4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL3hlbi1kZXZlbA== 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=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT 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 5CFB4CA9EC1 for ; Mon, 28 Oct 2019 21:08:22 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3B64A217D6 for ; Mon, 28 Oct 2019 21:08:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3B64A217D6 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ziepe.ca Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7B2046EA79; Mon, 28 Oct 2019 21:08:01 +0000 (UTC) Received: from mail-qk1-x744.google.com (mail-qk1-x744.google.com [IPv6:2607:f8b0:4864:20::744]) by gabe.freedesktop.org (Postfix) with ESMTPS id 49ED489DC9 for ; Mon, 28 Oct 2019 20:10:45 +0000 (UTC) Received: by mail-qk1-x744.google.com with SMTP id g21so9746484qkm.11 for ; Mon, 28 Oct 2019 13:10:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jB/ndDNYI+4jh+CyWUF8UUfKQRLegAjGY1TRhiwKQXc=; b=nXsznXeTL+PVBq6rcQuFFk+i+TTWFx83ufP/tL/XLUBf0ZnCr8FueFysppgeFKs0Wq fngfJ9N2eOAeW0dLxYvq5wzaEyUtcddKLtuhC83m81tkt6NmdeQ0fUHMO0nsZDUuwfG3 izGn9Ep5m/eJVIeYpvaEevj4+Hf40qHfRwalZLDYwMBsq3WtUTHNNcSRuZM6GtP43pNv US1MNWr3PQnylF02AoHdcIyel8FP4f9Nn4OJJHb7gfm0z4oTBTcGF2jS3f2egO1/sBWI phLvGXWziJqg2avVoTLFOBy3iDxJuMALvrm6x3EOgNmUHSy/9SqvZvgWEGCqDvogjgRt XrGg== X-Gm-Message-State: APjAAAWeLQxnrllkw6V2pCKomH6hqlP0tnjPfS0vKUJGKpWOvWydLJRU Tbn42xQcUjttMV5P9TjbfP06oA== X-Google-Smtp-Source: APXvYqwdtbMFOB3L0H1oyTNxzhFUkpbCkNAYH5f+kI9BJWI3JXGsIu1i9+YKKYVTym2s/kszBv6jdw== X-Received: by 2002:ae9:ee10:: with SMTP id i16mr17214277qkg.14.1572293444241; Mon, 28 Oct 2019 13:10:44 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-142-162-113-180.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.162.113.180]) by smtp.gmail.com with ESMTPSA id l7sm5028902qkg.102.2019.10.28.13.10.43 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 28 Oct 2019 13:10:44 -0700 (PDT) Received: from jgg by mlx.ziepe.ca with local (Exim 4.90_1) (envelope-from ) id 1iPBLf-0001gw-Fq; Mon, 28 Oct 2019 17:10:43 -0300 From: Jason Gunthorpe To: linux-mm@kvack.org, Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling@amd.com Subject: [PATCH v2 10/15] nouveau: use mmu_notifier directly for invalidate_range_start Date: Mon, 28 Oct 2019 17:10:27 -0300 Message-Id: <20191028201032.6352-11-jgg@ziepe.ca> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191028201032.6352-1-jgg@ziepe.ca> References: <20191028201032.6352-1-jgg@ziepe.ca> MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 28 Oct 2019 21:07:58 +0000 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jB/ndDNYI+4jh+CyWUF8UUfKQRLegAjGY1TRhiwKQXc=; b=Hh/Zj3Y+Ryj/mU9zMFkCbpMT+v0KWWsJkUCHo1SRF/TME2Wth945w+SYI+g39jEPtr 2TcL6muJgm05AFmLXzPJ2in/FLllzSgw/AhshM/+MYVIyJbvpU0Qap6m7vyyIMRZczjM qoRRoR6DCc1QboYFax8j0T3qz9s4m6qoVjluldwL8VV7L6yIOlMd0/vXcql7RACqDDl7 yEg0VGkJ7zGEKiXYcwRIQgRK1yf/bFeaYVtpI2tN+jQa36SxcmtU4AhWxNj5bkZTFyzo TREK4XNbxKgUHNgwccShMuwBnl2TL/ivSv+RnIdWqzcy2MpngTiiSLCxjHKPz913nWhK 84oQ== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Mike Marciniszyn , Stefano Stabellini , Oleksandr Andrushchenko , linux-rdma@vger.kernel.org, nouveau@lists.freedesktop.org, Dennis Dalessandro , amd-gfx@lists.freedesktop.org, Christoph Hellwig , Jason Gunthorpe , dri-devel@lists.freedesktop.org, Alex Deucher , xen-devel@lists.xenproject.org, Boris Ostrovsky , Petr Cvek , =?UTF-8?q?Christian=20K=C3=B6nig?= , Ben Skeggs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191028201027.DTxOdPbm7mAJyQJrsjbhk0agGzCiOU5Hpq-dcBpGh-w@z> RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKVGhlcmUgaXMgbm8gcmVh c29uIHRvIGdldCB0aGUgaW52YWxpZGF0ZV9yYW5nZV9zdGFydCgpIGNhbGxiYWNrIHZpYSBhbgpp bmRpcmVjdGlvbiB0aHJvdWdoIGhtbV9taXJyb3IsIGp1c3QgcmVnaXN0ZXIgYSBub3JtYWwgbm90 aWZpZXIgZGlyZWN0bHkuCgpDYzogQmVuIFNrZWdncyA8YnNrZWdnc0ByZWRoYXQuY29tPgpDYzog ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpDYzogbm91dmVhdUBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKQ2M6IFJhbHBoIENhbXBiZWxsIDxyY2FtcGJlbGxAbnZpZGlhLmNvbT4KU2lnbmVk LW9mZi1ieTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfc3ZtLmMgfCA5NSArKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3N2bS5jIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYwppbmRleCA2NjhkNGJkMGMxMThmMS4u NTc3Zjg4MTE5MjVhNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfc3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYwpAQCAt ODgsNiArODgsNyBAQCBub3V2ZWF1X2l2bW1fZmluZChzdHJ1Y3Qgbm91dmVhdV9zdm0gKnN2bSwg dTY0IGluc3QpCiB9CiAKIHN0cnVjdCBub3V2ZWF1X3N2bW0geworCXN0cnVjdCBtbXVfbm90aWZp ZXIgbm90aWZpZXI7CiAJc3RydWN0IG5vdXZlYXVfdm1tICp2bW07CiAJc3RydWN0IHsKIAkJdW5z aWduZWQgbG9uZyBzdGFydDsKQEAgLTk2LDcgKzk3LDYgQEAgc3RydWN0IG5vdXZlYXVfc3ZtbSB7 CiAKIAlzdHJ1Y3QgbXV0ZXggbXV0ZXg7CiAKLQlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKIAlzdHJ1 Y3QgaG1tX21pcnJvciBtaXJyb3I7CiB9OwogCkBAIC0yNTEsMTAgKzI1MSwxMSBAQCBub3V2ZWF1 X3N2bW1faW52YWxpZGF0ZShzdHJ1Y3Qgbm91dmVhdV9zdm1tICpzdm1tLCB1NjQgc3RhcnQsIHU2 NCBsaW1pdCkKIH0KIAogc3RhdGljIGludAotbm91dmVhdV9zdm1tX3N5bmNfY3B1X2RldmljZV9w YWdldGFibGVzKHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IsCi0JCQkJCWNvbnN0IHN0cnVjdCBt bXVfbm90aWZpZXJfcmFuZ2UgKnVwZGF0ZSkKK25vdXZlYXVfc3ZtbV9pbnZhbGlkYXRlX3Jhbmdl X3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAorCQkJCSAgICBjb25zdCBzdHJ1Y3QgbW11 X25vdGlmaWVyX3JhbmdlICp1cGRhdGUpCiB7Ci0Jc3RydWN0IG5vdXZlYXVfc3ZtbSAqc3ZtbSA9 IGNvbnRhaW5lcl9vZihtaXJyb3IsIHR5cGVvZigqc3ZtbSksIG1pcnJvcik7CisJc3RydWN0IG5v dXZlYXVfc3ZtbSAqc3ZtbSA9CisJCWNvbnRhaW5lcl9vZihtbiwgc3RydWN0IG5vdXZlYXVfc3Zt bSwgbm90aWZpZXIpOwogCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSB1cGRhdGUtPnN0YXJ0OwogCXVu c2lnbmVkIGxvbmcgbGltaXQgPSB1cGRhdGUtPmVuZDsKIApAQCAtMjY0LDYgKzI2NSw5IEBAIG5v dXZlYXVfc3ZtbV9zeW5jX2NwdV9kZXZpY2VfcGFnZXRhYmxlcyhzdHJ1Y3QgaG1tX21pcnJvciAq bWlycm9yLAogCVNWTU1fREJHKHN2bW0sICJpbnZhbGlkYXRlICUwMTZseC0lMDE2bHgiLCBzdGFy dCwgbGltaXQpOwogCiAJbXV0ZXhfbG9jaygmc3ZtbS0+bXV0ZXgpOworCWlmICh1bmxpa2VseSgh c3ZtbS0+dm1tKSkKKwkJZ290byBvdXQ7CisKIAlpZiAobGltaXQgPiBzdm1tLT51bm1hbmFnZWQu c3RhcnQgJiYgc3RhcnQgPCBzdm1tLT51bm1hbmFnZWQubGltaXQpIHsKIAkJaWYgKHN0YXJ0IDwg c3ZtbS0+dW5tYW5hZ2VkLnN0YXJ0KSB7CiAJCQlub3V2ZWF1X3N2bW1faW52YWxpZGF0ZShzdm1t LCBzdGFydCwKQEAgLTI3MywxOSArMjc3LDMxIEBAIG5vdXZlYXVfc3ZtbV9zeW5jX2NwdV9kZXZp Y2VfcGFnZXRhYmxlcyhzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLAogCX0KIAogCW5vdXZlYXVf c3ZtbV9pbnZhbGlkYXRlKHN2bW0sIHN0YXJ0LCBsaW1pdCk7CisKK291dDoKIAltdXRleF91bmxv Y2soJnN2bW0tPm11dGV4KTsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQKLW5vdXZlYXVf c3ZtbV9yZWxlYXNlKHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IpCitzdGF0aWMgdm9pZCBub3V2 ZWF1X3N2bW1fZnJlZV9ub3RpZmllcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbikKK3sKKwlrZnJl ZShjb250YWluZXJfb2YobW4sIHN0cnVjdCBub3V2ZWF1X3N2bW0sIG5vdGlmaWVyKSk7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX29wcyBub3V2ZWF1X21uX29wcyA9IHsK KwkuaW52YWxpZGF0ZV9yYW5nZV9zdGFydCA9IG5vdXZlYXVfc3ZtbV9pbnZhbGlkYXRlX3Jhbmdl X3N0YXJ0LAorCS5mcmVlX25vdGlmaWVyID0gbm91dmVhdV9zdm1tX2ZyZWVfbm90aWZpZXIsCit9 OworCitzdGF0aWMgaW50Citub3V2ZWF1X3N2bW1fc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJsZXMo c3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwKKwkJCQkJY29uc3Qgc3RydWN0IG1tdV9ub3RpZmll cl9yYW5nZSAqdXBkYXRlKQogeworCXJldHVybiAwOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0 IGhtbV9taXJyb3Jfb3BzCi1ub3V2ZWF1X3N2bW0gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGht bV9taXJyb3Jfb3BzIG5vdXZlYXVfc3ZtbSA9IHsKIAkuc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJs ZXMgPSBub3V2ZWF1X3N2bW1fc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJsZXMsCi0JLnJlbGVhc2Ug PSBub3V2ZWF1X3N2bW1fcmVsZWFzZSwKIH07CiAKIHZvaWQKQEAgLTI5NCw3ICszMTAsMTAgQEAg bm91dmVhdV9zdm1tX2Zpbmkoc3RydWN0IG5vdXZlYXVfc3ZtbSAqKnBzdm1tKQogCXN0cnVjdCBu b3V2ZWF1X3N2bW0gKnN2bW0gPSAqcHN2bW07CiAJaWYgKHN2bW0pIHsKIAkJaG1tX21pcnJvcl91 bnJlZ2lzdGVyKCZzdm1tLT5taXJyb3IpOwotCQlrZnJlZSgqcHN2bW0pOworCQltdXRleF9sb2Nr KCZzdm1tLT5tdXRleCk7CisJCXN2bW0tPnZtbSA9IE5VTEw7CisJCW11dGV4X3VubG9jaygmc3Zt bS0+bXV0ZXgpOworCQltbXVfbm90aWZpZXJfcHV0KCZzdm1tLT5ub3RpZmllcik7CiAJCSpwc3Zt bSA9IE5VTEw7CiAJfQogfQpAQCAtMzIwLDcgKzMzOSw3IEBAIG5vdXZlYXVfc3ZtbV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJbXV0ZXhfbG9jaygmY2xpLT5tdXRl eCk7CiAJaWYgKGNsaS0+c3ZtLmNsaSkgewogCQlyZXQgPSAtRUJVU1k7Ci0JCWdvdG8gZG9uZTsK KwkJZ290byBvdXRfZnJlZTsKIAl9CiAKIAkvKiBBbGxvY2F0ZSBhIG5ldyBHUFUgVk1NIHRoYXQg Y2FuIHN1cHBvcnQgU1ZNIChtYW5hZ2VkIGJ5IHRoZQpAQCAtMzM1LDI0ICszNTQsMzMgQEAgbm91 dmVhdV9zdm1tX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCQku ZmF1bHRfcmVwbGF5ID0gdHJ1ZSwKIAkJCSAgICB9LCBzaXplb2Yoc3RydWN0IGdwMTAwX3ZtbV92 MCksICZjbGktPnN2bS52bW0pOwogCWlmIChyZXQpCi0JCWdvdG8gZG9uZTsKKwkJZ290byBvdXRf ZnJlZTsKIAotCS8qIEVuYWJsZSBITU0gbWlycm9yaW5nIG9mIENQVSBhZGRyZXNzLXNwYWNlIHRv IFZNTS4gKi8KLQlzdm1tLT5tbSA9IGdldF90YXNrX21tKGN1cnJlbnQpOwotCWRvd25fd3JpdGUo JnN2bW0tPm1tLT5tbWFwX3NlbSk7CisJZG93bl93cml0ZSgmY3VycmVudC0+bW0tPm1tYXBfc2Vt KTsKIAlzdm1tLT5taXJyb3Iub3BzID0gJm5vdXZlYXVfc3ZtbTsKLQlyZXQgPSBobW1fbWlycm9y X3JlZ2lzdGVyKCZzdm1tLT5taXJyb3IsIHN2bW0tPm1tKTsKLQlpZiAocmV0ID09IDApIHsKLQkJ Y2xpLT5zdm0uc3ZtbSA9IHN2bW07Ci0JCWNsaS0+c3ZtLmNsaSA9IGNsaTsKLQl9Ci0JdXBfd3Jp dGUoJnN2bW0tPm1tLT5tbWFwX3NlbSk7Ci0JbW1wdXQoc3ZtbS0+bW0pOworCXJldCA9IGhtbV9t aXJyb3JfcmVnaXN0ZXIoJnN2bW0tPm1pcnJvciwgY3VycmVudC0+bW0pOworCWlmIChyZXQpCisJ CWdvdG8gb3V0X21tX3VubG9jazsKIAotZG9uZToKKwlzdm1tLT5ub3RpZmllci5vcHMgPSAmbm91 dmVhdV9tbl9vcHM7CisJcmV0ID0gX19tbXVfbm90aWZpZXJfcmVnaXN0ZXIoJnN2bW0tPm5vdGlm aWVyLCBjdXJyZW50LT5tbSk7CiAJaWYgKHJldCkKLQkJbm91dmVhdV9zdm1tX2ZpbmkoJnN2bW0p OworCQlnb3RvIG91dF9obW1fdW5yZWdpc3RlcjsKKwkvKiBOb3RlLCBvd25lcnNoaXAgb2Ygc3Zt bSB0cmFuc2ZlcnMgdG8gbW11X25vdGlmaWVyICovCisKKwljbGktPnN2bS5zdm1tID0gc3ZtbTsK KwljbGktPnN2bS5jbGkgPSBjbGk7CisJdXBfd3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7 CiAJbXV0ZXhfdW5sb2NrKCZjbGktPm11dGV4KTsKKwlyZXR1cm4gMDsKKworb3V0X2htbV91bnJl Z2lzdGVyOgorCWhtbV9taXJyb3JfdW5yZWdpc3Rlcigmc3ZtbS0+bWlycm9yKTsKK291dF9tbV91 bmxvY2s6CisJdXBfd3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7CitvdXRfZnJlZToKKwlt dXRleF91bmxvY2soJmNsaS0+bXV0ZXgpOworCWtmcmVlKHN2bW0pOwogCXJldHVybiByZXQ7CiB9 CiAKQEAgLTQ5NCwxMiArNTIyLDEyIEBAIG5vdXZlYXVfcmFuZ2VfZmF1bHQoc3RydWN0IG5vdXZl YXVfc3ZtbSAqc3ZtbSwgc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiAKIAlyZXQgPSBobW1fcmFu Z2VfcmVnaXN0ZXIocmFuZ2UsICZzdm1tLT5taXJyb3IpOwogCWlmIChyZXQpIHsKLQkJdXBfcmVh ZCgmc3ZtbS0+bW0tPm1tYXBfc2VtKTsKKwkJdXBfcmVhZCgmc3ZtbS0+bm90aWZpZXIubW0tPm1t YXBfc2VtKTsKIAkJcmV0dXJuIChpbnQpcmV0OwogCX0KIAogCWlmICghaG1tX3JhbmdlX3dhaXRf dW50aWxfdmFsaWQocmFuZ2UsIEhNTV9SQU5HRV9ERUZBVUxUX1RJTUVPVVQpKSB7Ci0JCXVwX3Jl YWQoJnN2bW0tPm1tLT5tbWFwX3NlbSk7CisJCXVwX3JlYWQoJnN2bW0tPm5vdGlmaWVyLm1tLT5t bWFwX3NlbSk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCkBAIC01MDcsNyArNTM1LDcgQEAgbm91 dmVhdV9yYW5nZV9mYXVsdChzdHJ1Y3Qgbm91dmVhdV9zdm1tICpzdm1tLCBzdHJ1Y3QgaG1tX3Jh bmdlICpyYW5nZSkKIAlpZiAocmV0IDw9IDApIHsKIAkJaWYgKHJldCA9PSAwKQogCQkJcmV0ID0g LUVCVVNZOwotCQl1cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQl1cF9yZWFkKCZzdm1t LT5ub3RpZmllci5tbS0+bW1hcF9zZW0pOwogCQlobW1fcmFuZ2VfdW5yZWdpc3RlcihyYW5nZSk7 CiAJCXJldHVybiByZXQ7CiAJfQpAQCAtNTg3LDEyICs2MTUsMTUgQEAgbm91dmVhdV9zdm1fZmF1 bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAJYXJncy5pLnAudmVyc2lvbiA9IDA7CiAK IAlmb3IgKGZpID0gMDsgZm4gPSBmaSArIDEsIGZpIDwgYnVmZmVyLT5mYXVsdF9ucjsgZmkgPSBm bikgeworCQlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKKwogCQkvKiBDYW5jZWwgYW55IGZhdWx0cyBm cm9tIG5vbi1TVk0gY2hhbm5lbHMuICovCiAJCWlmICghKHN2bW0gPSBidWZmZXItPmZhdWx0W2Zp XS0+c3ZtbSkpIHsKIAkJCW5vdXZlYXVfc3ZtX2ZhdWx0X2NhbmNlbF9mYXVsdChzdm0sIGJ1ZmZl ci0+ZmF1bHRbZmldKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCVNWTU1fREJHKHN2bW0sICJhZGRy ICUwMTZsbHgiLCBidWZmZXItPmZhdWx0W2ZpXS0+YWRkcik7CisJCW1tID0gc3ZtbS0+bm90aWZp ZXIubW07CiAKIAkJLyogV2UgdHJ5IGFuZCBncm91cCBoYW5kbGluZyBvZiBmYXVsdHMgd2l0aGlu IGEgc21hbGwKIAkJICogd2luZG93IGludG8gYSBzaW5nbGUgdXBkYXRlLgpAQCAtNjA5LDExICs2 NDAsMTEgQEAgbm91dmVhdV9zdm1fZmF1bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAJ CS8qIEludGVyc2VjdCBmYXVsdCB3aW5kb3cgd2l0aCB0aGUgQ1BVIFZNQSwgY2FuY2VsbGluZwog CQkgKiB0aGUgZmF1bHQgaWYgdGhlIGFkZHJlc3MgaXMgaW52YWxpZC4KIAkJICovCi0JCWRvd25f cmVhZCgmc3ZtbS0+bW0tPm1tYXBfc2VtKTsKLQkJdm1hID0gZmluZF92bWFfaW50ZXJzZWN0aW9u KHN2bW0tPm1tLCBzdGFydCwgbGltaXQpOworCQlkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7CisJ CXZtYSA9IGZpbmRfdm1hX2ludGVyc2VjdGlvbihtbSwgc3RhcnQsIGxpbWl0KTsKIAkJaWYgKCF2 bWEpIHsKIAkJCVNWTU1fRVJSKHN2bW0sICJ3bmR3ICUwMTZsbHgtJTAxNmxseCIsIHN0YXJ0LCBs aW1pdCk7Ci0JCQl1cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQkJdXBfcmVhZCgmbW0t Pm1tYXBfc2VtKTsKIAkJCW5vdXZlYXVfc3ZtX2ZhdWx0X2NhbmNlbF9mYXVsdChzdm0sIGJ1ZmZl ci0+ZmF1bHRbZmldKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC02MjMsNyArNjU0LDcgQEAgbm91 dmVhdV9zdm1fZmF1bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAKIAkJaWYgKGJ1ZmZl ci0+ZmF1bHRbZmldLT5hZGRyICE9IHN0YXJ0KSB7CiAJCQlTVk1NX0VSUihzdm1tLCAiYWRkciAl MDE2bGx4IiwgYnVmZmVyLT5mYXVsdFtmaV0tPmFkZHIpOwotCQkJdXBfcmVhZCgmc3ZtbS0+bW0t Pm1tYXBfc2VtKTsKKwkJCXVwX3JlYWQoJm1tLT5tbWFwX3NlbSk7CiAJCQlub3V2ZWF1X3N2bV9m YXVsdF9jYW5jZWxfZmF1bHQoc3ZtLCBidWZmZXItPmZhdWx0W2ZpXSk7CiAJCQljb250aW51ZTsK IAkJfQpAQCAtNzA0LDcgKzczNSw3IEBAIG5vdXZlYXVfc3ZtX2ZhdWx0KHN0cnVjdCBudmlmX25v dGlmeSAqbm90aWZ5KQogCQkJCQkJTlVMTCk7CiAJCQlzdm1tLT52bW0tPnZtbS5vYmplY3QuY2xp ZW50LT5zdXBlciA9IGZhbHNlOwogCQkJbXV0ZXhfdW5sb2NrKCZzdm1tLT5tdXRleCk7Ci0JCQl1 cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQkJdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsK IAkJfQogCiAJCS8qIENhbmNlbCBhbnkgZmF1bHRzIGluIHRoZSB3aW5kb3cgd2hvc2UgcGFnZXMg ZGlkbid0IG1hbmFnZQotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw= 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=-9.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 E01FDCA9EC3 for ; Mon, 28 Oct 2019 20:11:16 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 AD374208C0 for ; Mon, 28 Oct 2019 20:11:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=ziepe.ca header.i=@ziepe.ca header.b="Hh/Zj3Y+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AD374208C0 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ziepe.ca Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iPBLi-0001S1-Ur; Mon, 28 Oct 2019 20:10:46 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iPBLh-0001Rw-PV for xen-devel@lists.xenproject.org; Mon, 28 Oct 2019 20:10:46 +0000 X-Inumbo-ID: 05f718f0-f9bf-11e9-beca-bc764e2007e4 Received: from mail-qk1-x742.google.com (unknown [2607:f8b0:4864:20::742]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 05f718f0-f9bf-11e9-beca-bc764e2007e4; Mon, 28 Oct 2019 20:10:44 +0000 (UTC) Received: by mail-qk1-x742.google.com with SMTP id 71so9800497qkl.0 for ; Mon, 28 Oct 2019 13:10:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jB/ndDNYI+4jh+CyWUF8UUfKQRLegAjGY1TRhiwKQXc=; b=Hh/Zj3Y+Ryj/mU9zMFkCbpMT+v0KWWsJkUCHo1SRF/TME2Wth945w+SYI+g39jEPtr 2TcL6muJgm05AFmLXzPJ2in/FLllzSgw/AhshM/+MYVIyJbvpU0Qap6m7vyyIMRZczjM qoRRoR6DCc1QboYFax8j0T3qz9s4m6qoVjluldwL8VV7L6yIOlMd0/vXcql7RACqDDl7 yEg0VGkJ7zGEKiXYcwRIQgRK1yf/bFeaYVtpI2tN+jQa36SxcmtU4AhWxNj5bkZTFyzo TREK4XNbxKgUHNgwccShMuwBnl2TL/ivSv+RnIdWqzcy2MpngTiiSLCxjHKPz913nWhK 84oQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jB/ndDNYI+4jh+CyWUF8UUfKQRLegAjGY1TRhiwKQXc=; b=K9RIVts4J0SRBt7L2jXAs/iiKWRS2kyjJCLd/FHW4a9KpbQeIwwsLCNSUZ8wz+ee2V At/hY+jbJZyMM25m9Pm9MfFJn2DAnaW1ONFAerZJtOvR1Nwl9+1FHNbxiryzg/3bnR94 739VZVMdS+cUeAdGjh3O4/l919oP0UrHOI7sEzkb23wKz87A478tTA31kGM8yfc3fAVd lkQdw+tndhwy4mQI472cmhDQtyUSQN6wC8y58CrXHm+WypGL7/eYli/AyL69ht7boImf QXSBDsVUizLnj3NEa9be3BYvHFkz03SpmTvkxu97QxWm4YF/DpTVtwAvsvAWYLD+KYEp vlqg== X-Gm-Message-State: APjAAAVKQRFFUAj/E7FhVzVEvnEA6R69/iRL8crvs3yz6Szq2771DPrZ N2LCLwqhIcota0Jt9klcY2UdCw== X-Google-Smtp-Source: APXvYqwdtbMFOB3L0H1oyTNxzhFUkpbCkNAYH5f+kI9BJWI3JXGsIu1i9+YKKYVTym2s/kszBv6jdw== X-Received: by 2002:ae9:ee10:: with SMTP id i16mr17214277qkg.14.1572293444241; Mon, 28 Oct 2019 13:10:44 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-142-162-113-180.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.162.113.180]) by smtp.gmail.com with ESMTPSA id l7sm5028902qkg.102.2019.10.28.13.10.43 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 28 Oct 2019 13:10:44 -0700 (PDT) Received: from jgg by mlx.ziepe.ca with local (Exim 4.90_1) (envelope-from ) id 1iPBLf-0001gw-Fq; Mon, 28 Oct 2019 17:10:43 -0300 From: Jason Gunthorpe To: linux-mm@kvack.org, Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling@amd.com Date: Mon, 28 Oct 2019 17:10:27 -0300 Message-Id: <20191028201032.6352-11-jgg@ziepe.ca> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191028201032.6352-1-jgg@ziepe.ca> References: <20191028201032.6352-1-jgg@ziepe.ca> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v2 10/15] nouveau: use mmu_notifier directly for invalidate_range_start X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , David Zhou , Mike Marciniszyn , Stefano Stabellini , Oleksandr Andrushchenko , linux-rdma@vger.kernel.org, nouveau@lists.freedesktop.org, Dennis Dalessandro , amd-gfx@lists.freedesktop.org, Christoph Hellwig , Jason Gunthorpe , dri-devel@lists.freedesktop.org, Alex Deucher , xen-devel@lists.xenproject.org, Boris Ostrovsky , Petr Cvek , =?UTF-8?q?Christian=20K=C3=B6nig?= , Ben Skeggs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKVGhlcmUgaXMgbm8gcmVh c29uIHRvIGdldCB0aGUgaW52YWxpZGF0ZV9yYW5nZV9zdGFydCgpIGNhbGxiYWNrIHZpYSBhbgpp bmRpcmVjdGlvbiB0aHJvdWdoIGhtbV9taXJyb3IsIGp1c3QgcmVnaXN0ZXIgYSBub3JtYWwgbm90 aWZpZXIgZGlyZWN0bHkuCgpDYzogQmVuIFNrZWdncyA8YnNrZWdnc0ByZWRoYXQuY29tPgpDYzog ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpDYzogbm91dmVhdUBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKQ2M6IFJhbHBoIENhbXBiZWxsIDxyY2FtcGJlbGxAbnZpZGlhLmNvbT4KU2lnbmVk LW9mZi1ieTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfc3ZtLmMgfCA5NSArKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3N2bS5jIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYwppbmRleCA2NjhkNGJkMGMxMThmMS4u NTc3Zjg4MTE5MjVhNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfc3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYwpAQCAt ODgsNiArODgsNyBAQCBub3V2ZWF1X2l2bW1fZmluZChzdHJ1Y3Qgbm91dmVhdV9zdm0gKnN2bSwg dTY0IGluc3QpCiB9CiAKIHN0cnVjdCBub3V2ZWF1X3N2bW0geworCXN0cnVjdCBtbXVfbm90aWZp ZXIgbm90aWZpZXI7CiAJc3RydWN0IG5vdXZlYXVfdm1tICp2bW07CiAJc3RydWN0IHsKIAkJdW5z aWduZWQgbG9uZyBzdGFydDsKQEAgLTk2LDcgKzk3LDYgQEAgc3RydWN0IG5vdXZlYXVfc3ZtbSB7 CiAKIAlzdHJ1Y3QgbXV0ZXggbXV0ZXg7CiAKLQlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKIAlzdHJ1 Y3QgaG1tX21pcnJvciBtaXJyb3I7CiB9OwogCkBAIC0yNTEsMTAgKzI1MSwxMSBAQCBub3V2ZWF1 X3N2bW1faW52YWxpZGF0ZShzdHJ1Y3Qgbm91dmVhdV9zdm1tICpzdm1tLCB1NjQgc3RhcnQsIHU2 NCBsaW1pdCkKIH0KIAogc3RhdGljIGludAotbm91dmVhdV9zdm1tX3N5bmNfY3B1X2RldmljZV9w YWdldGFibGVzKHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IsCi0JCQkJCWNvbnN0IHN0cnVjdCBt bXVfbm90aWZpZXJfcmFuZ2UgKnVwZGF0ZSkKK25vdXZlYXVfc3ZtbV9pbnZhbGlkYXRlX3Jhbmdl X3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAorCQkJCSAgICBjb25zdCBzdHJ1Y3QgbW11 X25vdGlmaWVyX3JhbmdlICp1cGRhdGUpCiB7Ci0Jc3RydWN0IG5vdXZlYXVfc3ZtbSAqc3ZtbSA9 IGNvbnRhaW5lcl9vZihtaXJyb3IsIHR5cGVvZigqc3ZtbSksIG1pcnJvcik7CisJc3RydWN0IG5v dXZlYXVfc3ZtbSAqc3ZtbSA9CisJCWNvbnRhaW5lcl9vZihtbiwgc3RydWN0IG5vdXZlYXVfc3Zt bSwgbm90aWZpZXIpOwogCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSB1cGRhdGUtPnN0YXJ0OwogCXVu c2lnbmVkIGxvbmcgbGltaXQgPSB1cGRhdGUtPmVuZDsKIApAQCAtMjY0LDYgKzI2NSw5IEBAIG5v dXZlYXVfc3ZtbV9zeW5jX2NwdV9kZXZpY2VfcGFnZXRhYmxlcyhzdHJ1Y3QgaG1tX21pcnJvciAq bWlycm9yLAogCVNWTU1fREJHKHN2bW0sICJpbnZhbGlkYXRlICUwMTZseC0lMDE2bHgiLCBzdGFy dCwgbGltaXQpOwogCiAJbXV0ZXhfbG9jaygmc3ZtbS0+bXV0ZXgpOworCWlmICh1bmxpa2VseSgh c3ZtbS0+dm1tKSkKKwkJZ290byBvdXQ7CisKIAlpZiAobGltaXQgPiBzdm1tLT51bm1hbmFnZWQu c3RhcnQgJiYgc3RhcnQgPCBzdm1tLT51bm1hbmFnZWQubGltaXQpIHsKIAkJaWYgKHN0YXJ0IDwg c3ZtbS0+dW5tYW5hZ2VkLnN0YXJ0KSB7CiAJCQlub3V2ZWF1X3N2bW1faW52YWxpZGF0ZShzdm1t LCBzdGFydCwKQEAgLTI3MywxOSArMjc3LDMxIEBAIG5vdXZlYXVfc3ZtbV9zeW5jX2NwdV9kZXZp Y2VfcGFnZXRhYmxlcyhzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLAogCX0KIAogCW5vdXZlYXVf c3ZtbV9pbnZhbGlkYXRlKHN2bW0sIHN0YXJ0LCBsaW1pdCk7CisKK291dDoKIAltdXRleF91bmxv Y2soJnN2bW0tPm11dGV4KTsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQKLW5vdXZlYXVf c3ZtbV9yZWxlYXNlKHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IpCitzdGF0aWMgdm9pZCBub3V2 ZWF1X3N2bW1fZnJlZV9ub3RpZmllcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbikKK3sKKwlrZnJl ZShjb250YWluZXJfb2YobW4sIHN0cnVjdCBub3V2ZWF1X3N2bW0sIG5vdGlmaWVyKSk7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX29wcyBub3V2ZWF1X21uX29wcyA9IHsK KwkuaW52YWxpZGF0ZV9yYW5nZV9zdGFydCA9IG5vdXZlYXVfc3ZtbV9pbnZhbGlkYXRlX3Jhbmdl X3N0YXJ0LAorCS5mcmVlX25vdGlmaWVyID0gbm91dmVhdV9zdm1tX2ZyZWVfbm90aWZpZXIsCit9 OworCitzdGF0aWMgaW50Citub3V2ZWF1X3N2bW1fc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJsZXMo c3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwKKwkJCQkJY29uc3Qgc3RydWN0IG1tdV9ub3RpZmll cl9yYW5nZSAqdXBkYXRlKQogeworCXJldHVybiAwOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0 IGhtbV9taXJyb3Jfb3BzCi1ub3V2ZWF1X3N2bW0gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGht bV9taXJyb3Jfb3BzIG5vdXZlYXVfc3ZtbSA9IHsKIAkuc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJs ZXMgPSBub3V2ZWF1X3N2bW1fc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJsZXMsCi0JLnJlbGVhc2Ug PSBub3V2ZWF1X3N2bW1fcmVsZWFzZSwKIH07CiAKIHZvaWQKQEAgLTI5NCw3ICszMTAsMTAgQEAg bm91dmVhdV9zdm1tX2Zpbmkoc3RydWN0IG5vdXZlYXVfc3ZtbSAqKnBzdm1tKQogCXN0cnVjdCBu b3V2ZWF1X3N2bW0gKnN2bW0gPSAqcHN2bW07CiAJaWYgKHN2bW0pIHsKIAkJaG1tX21pcnJvcl91 bnJlZ2lzdGVyKCZzdm1tLT5taXJyb3IpOwotCQlrZnJlZSgqcHN2bW0pOworCQltdXRleF9sb2Nr KCZzdm1tLT5tdXRleCk7CisJCXN2bW0tPnZtbSA9IE5VTEw7CisJCW11dGV4X3VubG9jaygmc3Zt bS0+bXV0ZXgpOworCQltbXVfbm90aWZpZXJfcHV0KCZzdm1tLT5ub3RpZmllcik7CiAJCSpwc3Zt bSA9IE5VTEw7CiAJfQogfQpAQCAtMzIwLDcgKzMzOSw3IEBAIG5vdXZlYXVfc3ZtbV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJbXV0ZXhfbG9jaygmY2xpLT5tdXRl eCk7CiAJaWYgKGNsaS0+c3ZtLmNsaSkgewogCQlyZXQgPSAtRUJVU1k7Ci0JCWdvdG8gZG9uZTsK KwkJZ290byBvdXRfZnJlZTsKIAl9CiAKIAkvKiBBbGxvY2F0ZSBhIG5ldyBHUFUgVk1NIHRoYXQg Y2FuIHN1cHBvcnQgU1ZNIChtYW5hZ2VkIGJ5IHRoZQpAQCAtMzM1LDI0ICszNTQsMzMgQEAgbm91 dmVhdV9zdm1tX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCQku ZmF1bHRfcmVwbGF5ID0gdHJ1ZSwKIAkJCSAgICB9LCBzaXplb2Yoc3RydWN0IGdwMTAwX3ZtbV92 MCksICZjbGktPnN2bS52bW0pOwogCWlmIChyZXQpCi0JCWdvdG8gZG9uZTsKKwkJZ290byBvdXRf ZnJlZTsKIAotCS8qIEVuYWJsZSBITU0gbWlycm9yaW5nIG9mIENQVSBhZGRyZXNzLXNwYWNlIHRv IFZNTS4gKi8KLQlzdm1tLT5tbSA9IGdldF90YXNrX21tKGN1cnJlbnQpOwotCWRvd25fd3JpdGUo JnN2bW0tPm1tLT5tbWFwX3NlbSk7CisJZG93bl93cml0ZSgmY3VycmVudC0+bW0tPm1tYXBfc2Vt KTsKIAlzdm1tLT5taXJyb3Iub3BzID0gJm5vdXZlYXVfc3ZtbTsKLQlyZXQgPSBobW1fbWlycm9y X3JlZ2lzdGVyKCZzdm1tLT5taXJyb3IsIHN2bW0tPm1tKTsKLQlpZiAocmV0ID09IDApIHsKLQkJ Y2xpLT5zdm0uc3ZtbSA9IHN2bW07Ci0JCWNsaS0+c3ZtLmNsaSA9IGNsaTsKLQl9Ci0JdXBfd3Jp dGUoJnN2bW0tPm1tLT5tbWFwX3NlbSk7Ci0JbW1wdXQoc3ZtbS0+bW0pOworCXJldCA9IGhtbV9t aXJyb3JfcmVnaXN0ZXIoJnN2bW0tPm1pcnJvciwgY3VycmVudC0+bW0pOworCWlmIChyZXQpCisJ CWdvdG8gb3V0X21tX3VubG9jazsKIAotZG9uZToKKwlzdm1tLT5ub3RpZmllci5vcHMgPSAmbm91 dmVhdV9tbl9vcHM7CisJcmV0ID0gX19tbXVfbm90aWZpZXJfcmVnaXN0ZXIoJnN2bW0tPm5vdGlm aWVyLCBjdXJyZW50LT5tbSk7CiAJaWYgKHJldCkKLQkJbm91dmVhdV9zdm1tX2ZpbmkoJnN2bW0p OworCQlnb3RvIG91dF9obW1fdW5yZWdpc3RlcjsKKwkvKiBOb3RlLCBvd25lcnNoaXAgb2Ygc3Zt bSB0cmFuc2ZlcnMgdG8gbW11X25vdGlmaWVyICovCisKKwljbGktPnN2bS5zdm1tID0gc3ZtbTsK KwljbGktPnN2bS5jbGkgPSBjbGk7CisJdXBfd3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7 CiAJbXV0ZXhfdW5sb2NrKCZjbGktPm11dGV4KTsKKwlyZXR1cm4gMDsKKworb3V0X2htbV91bnJl Z2lzdGVyOgorCWhtbV9taXJyb3JfdW5yZWdpc3Rlcigmc3ZtbS0+bWlycm9yKTsKK291dF9tbV91 bmxvY2s6CisJdXBfd3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7CitvdXRfZnJlZToKKwlt dXRleF91bmxvY2soJmNsaS0+bXV0ZXgpOworCWtmcmVlKHN2bW0pOwogCXJldHVybiByZXQ7CiB9 CiAKQEAgLTQ5NCwxMiArNTIyLDEyIEBAIG5vdXZlYXVfcmFuZ2VfZmF1bHQoc3RydWN0IG5vdXZl YXVfc3ZtbSAqc3ZtbSwgc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiAKIAlyZXQgPSBobW1fcmFu Z2VfcmVnaXN0ZXIocmFuZ2UsICZzdm1tLT5taXJyb3IpOwogCWlmIChyZXQpIHsKLQkJdXBfcmVh ZCgmc3ZtbS0+bW0tPm1tYXBfc2VtKTsKKwkJdXBfcmVhZCgmc3ZtbS0+bm90aWZpZXIubW0tPm1t YXBfc2VtKTsKIAkJcmV0dXJuIChpbnQpcmV0OwogCX0KIAogCWlmICghaG1tX3JhbmdlX3dhaXRf dW50aWxfdmFsaWQocmFuZ2UsIEhNTV9SQU5HRV9ERUZBVUxUX1RJTUVPVVQpKSB7Ci0JCXVwX3Jl YWQoJnN2bW0tPm1tLT5tbWFwX3NlbSk7CisJCXVwX3JlYWQoJnN2bW0tPm5vdGlmaWVyLm1tLT5t bWFwX3NlbSk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCkBAIC01MDcsNyArNTM1LDcgQEAgbm91 dmVhdV9yYW5nZV9mYXVsdChzdHJ1Y3Qgbm91dmVhdV9zdm1tICpzdm1tLCBzdHJ1Y3QgaG1tX3Jh bmdlICpyYW5nZSkKIAlpZiAocmV0IDw9IDApIHsKIAkJaWYgKHJldCA9PSAwKQogCQkJcmV0ID0g LUVCVVNZOwotCQl1cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQl1cF9yZWFkKCZzdm1t LT5ub3RpZmllci5tbS0+bW1hcF9zZW0pOwogCQlobW1fcmFuZ2VfdW5yZWdpc3RlcihyYW5nZSk7 CiAJCXJldHVybiByZXQ7CiAJfQpAQCAtNTg3LDEyICs2MTUsMTUgQEAgbm91dmVhdV9zdm1fZmF1 bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAJYXJncy5pLnAudmVyc2lvbiA9IDA7CiAK IAlmb3IgKGZpID0gMDsgZm4gPSBmaSArIDEsIGZpIDwgYnVmZmVyLT5mYXVsdF9ucjsgZmkgPSBm bikgeworCQlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKKwogCQkvKiBDYW5jZWwgYW55IGZhdWx0cyBm cm9tIG5vbi1TVk0gY2hhbm5lbHMuICovCiAJCWlmICghKHN2bW0gPSBidWZmZXItPmZhdWx0W2Zp XS0+c3ZtbSkpIHsKIAkJCW5vdXZlYXVfc3ZtX2ZhdWx0X2NhbmNlbF9mYXVsdChzdm0sIGJ1ZmZl ci0+ZmF1bHRbZmldKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCVNWTU1fREJHKHN2bW0sICJhZGRy ICUwMTZsbHgiLCBidWZmZXItPmZhdWx0W2ZpXS0+YWRkcik7CisJCW1tID0gc3ZtbS0+bm90aWZp ZXIubW07CiAKIAkJLyogV2UgdHJ5IGFuZCBncm91cCBoYW5kbGluZyBvZiBmYXVsdHMgd2l0aGlu IGEgc21hbGwKIAkJICogd2luZG93IGludG8gYSBzaW5nbGUgdXBkYXRlLgpAQCAtNjA5LDExICs2 NDAsMTEgQEAgbm91dmVhdV9zdm1fZmF1bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAJ CS8qIEludGVyc2VjdCBmYXVsdCB3aW5kb3cgd2l0aCB0aGUgQ1BVIFZNQSwgY2FuY2VsbGluZwog CQkgKiB0aGUgZmF1bHQgaWYgdGhlIGFkZHJlc3MgaXMgaW52YWxpZC4KIAkJICovCi0JCWRvd25f cmVhZCgmc3ZtbS0+bW0tPm1tYXBfc2VtKTsKLQkJdm1hID0gZmluZF92bWFfaW50ZXJzZWN0aW9u KHN2bW0tPm1tLCBzdGFydCwgbGltaXQpOworCQlkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7CisJ CXZtYSA9IGZpbmRfdm1hX2ludGVyc2VjdGlvbihtbSwgc3RhcnQsIGxpbWl0KTsKIAkJaWYgKCF2 bWEpIHsKIAkJCVNWTU1fRVJSKHN2bW0sICJ3bmR3ICUwMTZsbHgtJTAxNmxseCIsIHN0YXJ0LCBs aW1pdCk7Ci0JCQl1cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQkJdXBfcmVhZCgmbW0t Pm1tYXBfc2VtKTsKIAkJCW5vdXZlYXVfc3ZtX2ZhdWx0X2NhbmNlbF9mYXVsdChzdm0sIGJ1ZmZl ci0+ZmF1bHRbZmldKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC02MjMsNyArNjU0LDcgQEAgbm91 dmVhdV9zdm1fZmF1bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAKIAkJaWYgKGJ1ZmZl ci0+ZmF1bHRbZmldLT5hZGRyICE9IHN0YXJ0KSB7CiAJCQlTVk1NX0VSUihzdm1tLCAiYWRkciAl MDE2bGx4IiwgYnVmZmVyLT5mYXVsdFtmaV0tPmFkZHIpOwotCQkJdXBfcmVhZCgmc3ZtbS0+bW0t Pm1tYXBfc2VtKTsKKwkJCXVwX3JlYWQoJm1tLT5tbWFwX3NlbSk7CiAJCQlub3V2ZWF1X3N2bV9m YXVsdF9jYW5jZWxfZmF1bHQoc3ZtLCBidWZmZXItPmZhdWx0W2ZpXSk7CiAJCQljb250aW51ZTsK IAkJfQpAQCAtNzA0LDcgKzczNSw3IEBAIG5vdXZlYXVfc3ZtX2ZhdWx0KHN0cnVjdCBudmlmX25v dGlmeSAqbm90aWZ5KQogCQkJCQkJTlVMTCk7CiAJCQlzdm1tLT52bW0tPnZtbS5vYmplY3QuY2xp ZW50LT5zdXBlciA9IGZhbHNlOwogCQkJbXV0ZXhfdW5sb2NrKCZzdm1tLT5tdXRleCk7Ci0JCQl1 cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQkJdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsK IAkJfQogCiAJCS8qIENhbmNlbCBhbnkgZmF1bHRzIGluIHRoZSB3aW5kb3cgd2hvc2UgcGFnZXMg ZGlkbid0IG1hbmFnZQotLSAKMi4yMy4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL3hlbi1kZXZlbA== 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=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT 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 76891CA9EC0 for ; Mon, 28 Oct 2019 20:17:20 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5894721721 for ; Mon, 28 Oct 2019 20:17:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5894721721 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ziepe.ca Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A64B86EA00; Mon, 28 Oct 2019 20:17:17 +0000 (UTC) Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3E4B589CBC for ; Mon, 28 Oct 2019 20:10:45 +0000 (UTC) Received: by mail-qk1-x742.google.com with SMTP id a194so9752154qkg.10 for ; Mon, 28 Oct 2019 13:10:45 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jB/ndDNYI+4jh+CyWUF8UUfKQRLegAjGY1TRhiwKQXc=; b=AJglkhkdzIsuBFK9XuG22Gbu3euMcrxg6AALrLkizrw95nnp4FXDKr7psbl53EP8l0 40mZ172pnHHvZdKvz7yf7hMLZqtGSldKd1nqJdJnSnUtDgk9r2/iUWu6qvTxrwdHdOe2 fd5jYLs4kPwXYhcXfbNjH2FvonAOM9viJrDuOa3TSimaLd1LL7wlRRyOvDttaSGVMGOh dTGKXeC8cCNWlyFrYtaCjeLvns+fvFnDc6xOEQY+Dp+pNKpu9fVaR8FGDF8uN02Yflq3 Vg94YMc7cwiiEDL6a0tKKS+BsRLHKlt5cKCv9Pu7dSNmNSb8+eBW+tVh6Hg2p9lawen3 a7rQ== X-Gm-Message-State: APjAAAVM+5u107iAob3ZHrc4kPP/3wgFOLleF2P4rzvbkGcK0nUrGK2i UzdJ3PSYVIyq8vKzDMMGEcGzPA== X-Google-Smtp-Source: APXvYqwdtbMFOB3L0H1oyTNxzhFUkpbCkNAYH5f+kI9BJWI3JXGsIu1i9+YKKYVTym2s/kszBv6jdw== X-Received: by 2002:ae9:ee10:: with SMTP id i16mr17214277qkg.14.1572293444241; Mon, 28 Oct 2019 13:10:44 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-142-162-113-180.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.162.113.180]) by smtp.gmail.com with ESMTPSA id l7sm5028902qkg.102.2019.10.28.13.10.43 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 28 Oct 2019 13:10:44 -0700 (PDT) Received: from jgg by mlx.ziepe.ca with local (Exim 4.90_1) (envelope-from ) id 1iPBLf-0001gw-Fq; Mon, 28 Oct 2019 17:10:43 -0300 From: Jason Gunthorpe To: linux-mm@kvack.org, Jerome Glisse , Ralph Campbell , John Hubbard , Felix.Kuehling@amd.com Subject: [PATCH v2 10/15] nouveau: use mmu_notifier directly for invalidate_range_start Date: Mon, 28 Oct 2019 17:10:27 -0300 Message-Id: <20191028201032.6352-11-jgg@ziepe.ca> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191028201032.6352-1-jgg@ziepe.ca> References: <20191028201032.6352-1-jgg@ziepe.ca> MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 28 Oct 2019 20:17:16 +0000 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jB/ndDNYI+4jh+CyWUF8UUfKQRLegAjGY1TRhiwKQXc=; b=Hh/Zj3Y+Ryj/mU9zMFkCbpMT+v0KWWsJkUCHo1SRF/TME2Wth945w+SYI+g39jEPtr 2TcL6muJgm05AFmLXzPJ2in/FLllzSgw/AhshM/+MYVIyJbvpU0Qap6m7vyyIMRZczjM qoRRoR6DCc1QboYFax8j0T3qz9s4m6qoVjluldwL8VV7L6yIOlMd0/vXcql7RACqDDl7 yEg0VGkJ7zGEKiXYcwRIQgRK1yf/bFeaYVtpI2tN+jQa36SxcmtU4AhWxNj5bkZTFyzo TREK4XNbxKgUHNgwccShMuwBnl2TL/ivSv+RnIdWqzcy2MpngTiiSLCxjHKPz913nWhK 84oQ== X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , David Zhou , Mike Marciniszyn , Stefano Stabellini , Oleksandr Andrushchenko , linux-rdma@vger.kernel.org, nouveau@lists.freedesktop.org, Dennis Dalessandro , amd-gfx@lists.freedesktop.org, Christoph Hellwig , Jason Gunthorpe , dri-devel@lists.freedesktop.org, Alex Deucher , xen-devel@lists.xenproject.org, Boris Ostrovsky , Petr Cvek , =?UTF-8?q?Christian=20K=C3=B6nig?= , Ben Skeggs Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" Message-ID: <20191028201027.BHGPWiyGM6-uSoHz10QjlrYHJsYfzYEVzvlyCXSzGkk@z> RnJvbTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgoKVGhlcmUgaXMgbm8gcmVh c29uIHRvIGdldCB0aGUgaW52YWxpZGF0ZV9yYW5nZV9zdGFydCgpIGNhbGxiYWNrIHZpYSBhbgpp bmRpcmVjdGlvbiB0aHJvdWdoIGhtbV9taXJyb3IsIGp1c3QgcmVnaXN0ZXIgYSBub3JtYWwgbm90 aWZpZXIgZGlyZWN0bHkuCgpDYzogQmVuIFNrZWdncyA8YnNrZWdnc0ByZWRoYXQuY29tPgpDYzog ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpDYzogbm91dmVhdUBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKQ2M6IFJhbHBoIENhbXBiZWxsIDxyY2FtcGJlbGxAbnZpZGlhLmNvbT4KU2lnbmVk LW9mZi1ieTogSmFzb24gR3VudGhvcnBlIDxqZ2dAbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfc3ZtLmMgfCA5NSArKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3N2bS5jIGIvZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYwppbmRleCA2NjhkNGJkMGMxMThmMS4u NTc3Zjg4MTE5MjVhNTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfc3ZtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9zdm0uYwpAQCAt ODgsNiArODgsNyBAQCBub3V2ZWF1X2l2bW1fZmluZChzdHJ1Y3Qgbm91dmVhdV9zdm0gKnN2bSwg dTY0IGluc3QpCiB9CiAKIHN0cnVjdCBub3V2ZWF1X3N2bW0geworCXN0cnVjdCBtbXVfbm90aWZp ZXIgbm90aWZpZXI7CiAJc3RydWN0IG5vdXZlYXVfdm1tICp2bW07CiAJc3RydWN0IHsKIAkJdW5z aWduZWQgbG9uZyBzdGFydDsKQEAgLTk2LDcgKzk3LDYgQEAgc3RydWN0IG5vdXZlYXVfc3ZtbSB7 CiAKIAlzdHJ1Y3QgbXV0ZXggbXV0ZXg7CiAKLQlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKIAlzdHJ1 Y3QgaG1tX21pcnJvciBtaXJyb3I7CiB9OwogCkBAIC0yNTEsMTAgKzI1MSwxMSBAQCBub3V2ZWF1 X3N2bW1faW52YWxpZGF0ZShzdHJ1Y3Qgbm91dmVhdV9zdm1tICpzdm1tLCB1NjQgc3RhcnQsIHU2 NCBsaW1pdCkKIH0KIAogc3RhdGljIGludAotbm91dmVhdV9zdm1tX3N5bmNfY3B1X2RldmljZV9w YWdldGFibGVzKHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IsCi0JCQkJCWNvbnN0IHN0cnVjdCBt bXVfbm90aWZpZXJfcmFuZ2UgKnVwZGF0ZSkKK25vdXZlYXVfc3ZtbV9pbnZhbGlkYXRlX3Jhbmdl X3N0YXJ0KHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLAorCQkJCSAgICBjb25zdCBzdHJ1Y3QgbW11 X25vdGlmaWVyX3JhbmdlICp1cGRhdGUpCiB7Ci0Jc3RydWN0IG5vdXZlYXVfc3ZtbSAqc3ZtbSA9 IGNvbnRhaW5lcl9vZihtaXJyb3IsIHR5cGVvZigqc3ZtbSksIG1pcnJvcik7CisJc3RydWN0IG5v dXZlYXVfc3ZtbSAqc3ZtbSA9CisJCWNvbnRhaW5lcl9vZihtbiwgc3RydWN0IG5vdXZlYXVfc3Zt bSwgbm90aWZpZXIpOwogCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSB1cGRhdGUtPnN0YXJ0OwogCXVu c2lnbmVkIGxvbmcgbGltaXQgPSB1cGRhdGUtPmVuZDsKIApAQCAtMjY0LDYgKzI2NSw5IEBAIG5v dXZlYXVfc3ZtbV9zeW5jX2NwdV9kZXZpY2VfcGFnZXRhYmxlcyhzdHJ1Y3QgaG1tX21pcnJvciAq bWlycm9yLAogCVNWTU1fREJHKHN2bW0sICJpbnZhbGlkYXRlICUwMTZseC0lMDE2bHgiLCBzdGFy dCwgbGltaXQpOwogCiAJbXV0ZXhfbG9jaygmc3ZtbS0+bXV0ZXgpOworCWlmICh1bmxpa2VseSgh c3ZtbS0+dm1tKSkKKwkJZ290byBvdXQ7CisKIAlpZiAobGltaXQgPiBzdm1tLT51bm1hbmFnZWQu c3RhcnQgJiYgc3RhcnQgPCBzdm1tLT51bm1hbmFnZWQubGltaXQpIHsKIAkJaWYgKHN0YXJ0IDwg c3ZtbS0+dW5tYW5hZ2VkLnN0YXJ0KSB7CiAJCQlub3V2ZWF1X3N2bW1faW52YWxpZGF0ZShzdm1t LCBzdGFydCwKQEAgLTI3MywxOSArMjc3LDMxIEBAIG5vdXZlYXVfc3ZtbV9zeW5jX2NwdV9kZXZp Y2VfcGFnZXRhYmxlcyhzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLAogCX0KIAogCW5vdXZlYXVf c3ZtbV9pbnZhbGlkYXRlKHN2bW0sIHN0YXJ0LCBsaW1pdCk7CisKK291dDoKIAltdXRleF91bmxv Y2soJnN2bW0tPm11dGV4KTsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQKLW5vdXZlYXVf c3ZtbV9yZWxlYXNlKHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IpCitzdGF0aWMgdm9pZCBub3V2 ZWF1X3N2bW1fZnJlZV9ub3RpZmllcihzdHJ1Y3QgbW11X25vdGlmaWVyICptbikKK3sKKwlrZnJl ZShjb250YWluZXJfb2YobW4sIHN0cnVjdCBub3V2ZWF1X3N2bW0sIG5vdGlmaWVyKSk7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgbW11X25vdGlmaWVyX29wcyBub3V2ZWF1X21uX29wcyA9IHsK KwkuaW52YWxpZGF0ZV9yYW5nZV9zdGFydCA9IG5vdXZlYXVfc3ZtbV9pbnZhbGlkYXRlX3Jhbmdl X3N0YXJ0LAorCS5mcmVlX25vdGlmaWVyID0gbm91dmVhdV9zdm1tX2ZyZWVfbm90aWZpZXIsCit9 OworCitzdGF0aWMgaW50Citub3V2ZWF1X3N2bW1fc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJsZXMo c3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwKKwkJCQkJY29uc3Qgc3RydWN0IG1tdV9ub3RpZmll cl9yYW5nZSAqdXBkYXRlKQogeworCXJldHVybiAwOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0 IGhtbV9taXJyb3Jfb3BzCi1ub3V2ZWF1X3N2bW0gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGht bV9taXJyb3Jfb3BzIG5vdXZlYXVfc3ZtbSA9IHsKIAkuc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJs ZXMgPSBub3V2ZWF1X3N2bW1fc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJsZXMsCi0JLnJlbGVhc2Ug PSBub3V2ZWF1X3N2bW1fcmVsZWFzZSwKIH07CiAKIHZvaWQKQEAgLTI5NCw3ICszMTAsMTAgQEAg bm91dmVhdV9zdm1tX2Zpbmkoc3RydWN0IG5vdXZlYXVfc3ZtbSAqKnBzdm1tKQogCXN0cnVjdCBu b3V2ZWF1X3N2bW0gKnN2bW0gPSAqcHN2bW07CiAJaWYgKHN2bW0pIHsKIAkJaG1tX21pcnJvcl91 bnJlZ2lzdGVyKCZzdm1tLT5taXJyb3IpOwotCQlrZnJlZSgqcHN2bW0pOworCQltdXRleF9sb2Nr KCZzdm1tLT5tdXRleCk7CisJCXN2bW0tPnZtbSA9IE5VTEw7CisJCW11dGV4X3VubG9jaygmc3Zt bS0+bXV0ZXgpOworCQltbXVfbm90aWZpZXJfcHV0KCZzdm1tLT5ub3RpZmllcik7CiAJCSpwc3Zt bSA9IE5VTEw7CiAJfQogfQpAQCAtMzIwLDcgKzMzOSw3IEBAIG5vdXZlYXVfc3ZtbV9pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJbXV0ZXhfbG9jaygmY2xpLT5tdXRl eCk7CiAJaWYgKGNsaS0+c3ZtLmNsaSkgewogCQlyZXQgPSAtRUJVU1k7Ci0JCWdvdG8gZG9uZTsK KwkJZ290byBvdXRfZnJlZTsKIAl9CiAKIAkvKiBBbGxvY2F0ZSBhIG5ldyBHUFUgVk1NIHRoYXQg Y2FuIHN1cHBvcnQgU1ZNIChtYW5hZ2VkIGJ5IHRoZQpAQCAtMzM1LDI0ICszNTQsMzMgQEAgbm91 dmVhdV9zdm1tX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCQku ZmF1bHRfcmVwbGF5ID0gdHJ1ZSwKIAkJCSAgICB9LCBzaXplb2Yoc3RydWN0IGdwMTAwX3ZtbV92 MCksICZjbGktPnN2bS52bW0pOwogCWlmIChyZXQpCi0JCWdvdG8gZG9uZTsKKwkJZ290byBvdXRf ZnJlZTsKIAotCS8qIEVuYWJsZSBITU0gbWlycm9yaW5nIG9mIENQVSBhZGRyZXNzLXNwYWNlIHRv IFZNTS4gKi8KLQlzdm1tLT5tbSA9IGdldF90YXNrX21tKGN1cnJlbnQpOwotCWRvd25fd3JpdGUo JnN2bW0tPm1tLT5tbWFwX3NlbSk7CisJZG93bl93cml0ZSgmY3VycmVudC0+bW0tPm1tYXBfc2Vt KTsKIAlzdm1tLT5taXJyb3Iub3BzID0gJm5vdXZlYXVfc3ZtbTsKLQlyZXQgPSBobW1fbWlycm9y X3JlZ2lzdGVyKCZzdm1tLT5taXJyb3IsIHN2bW0tPm1tKTsKLQlpZiAocmV0ID09IDApIHsKLQkJ Y2xpLT5zdm0uc3ZtbSA9IHN2bW07Ci0JCWNsaS0+c3ZtLmNsaSA9IGNsaTsKLQl9Ci0JdXBfd3Jp dGUoJnN2bW0tPm1tLT5tbWFwX3NlbSk7Ci0JbW1wdXQoc3ZtbS0+bW0pOworCXJldCA9IGhtbV9t aXJyb3JfcmVnaXN0ZXIoJnN2bW0tPm1pcnJvciwgY3VycmVudC0+bW0pOworCWlmIChyZXQpCisJ CWdvdG8gb3V0X21tX3VubG9jazsKIAotZG9uZToKKwlzdm1tLT5ub3RpZmllci5vcHMgPSAmbm91 dmVhdV9tbl9vcHM7CisJcmV0ID0gX19tbXVfbm90aWZpZXJfcmVnaXN0ZXIoJnN2bW0tPm5vdGlm aWVyLCBjdXJyZW50LT5tbSk7CiAJaWYgKHJldCkKLQkJbm91dmVhdV9zdm1tX2ZpbmkoJnN2bW0p OworCQlnb3RvIG91dF9obW1fdW5yZWdpc3RlcjsKKwkvKiBOb3RlLCBvd25lcnNoaXAgb2Ygc3Zt bSB0cmFuc2ZlcnMgdG8gbW11X25vdGlmaWVyICovCisKKwljbGktPnN2bS5zdm1tID0gc3ZtbTsK KwljbGktPnN2bS5jbGkgPSBjbGk7CisJdXBfd3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7 CiAJbXV0ZXhfdW5sb2NrKCZjbGktPm11dGV4KTsKKwlyZXR1cm4gMDsKKworb3V0X2htbV91bnJl Z2lzdGVyOgorCWhtbV9taXJyb3JfdW5yZWdpc3Rlcigmc3ZtbS0+bWlycm9yKTsKK291dF9tbV91 bmxvY2s6CisJdXBfd3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7CitvdXRfZnJlZToKKwlt dXRleF91bmxvY2soJmNsaS0+bXV0ZXgpOworCWtmcmVlKHN2bW0pOwogCXJldHVybiByZXQ7CiB9 CiAKQEAgLTQ5NCwxMiArNTIyLDEyIEBAIG5vdXZlYXVfcmFuZ2VfZmF1bHQoc3RydWN0IG5vdXZl YXVfc3ZtbSAqc3ZtbSwgc3RydWN0IGhtbV9yYW5nZSAqcmFuZ2UpCiAKIAlyZXQgPSBobW1fcmFu Z2VfcmVnaXN0ZXIocmFuZ2UsICZzdm1tLT5taXJyb3IpOwogCWlmIChyZXQpIHsKLQkJdXBfcmVh ZCgmc3ZtbS0+bW0tPm1tYXBfc2VtKTsKKwkJdXBfcmVhZCgmc3ZtbS0+bm90aWZpZXIubW0tPm1t YXBfc2VtKTsKIAkJcmV0dXJuIChpbnQpcmV0OwogCX0KIAogCWlmICghaG1tX3JhbmdlX3dhaXRf dW50aWxfdmFsaWQocmFuZ2UsIEhNTV9SQU5HRV9ERUZBVUxUX1RJTUVPVVQpKSB7Ci0JCXVwX3Jl YWQoJnN2bW0tPm1tLT5tbWFwX3NlbSk7CisJCXVwX3JlYWQoJnN2bW0tPm5vdGlmaWVyLm1tLT5t bWFwX3NlbSk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCkBAIC01MDcsNyArNTM1LDcgQEAgbm91 dmVhdV9yYW5nZV9mYXVsdChzdHJ1Y3Qgbm91dmVhdV9zdm1tICpzdm1tLCBzdHJ1Y3QgaG1tX3Jh bmdlICpyYW5nZSkKIAlpZiAocmV0IDw9IDApIHsKIAkJaWYgKHJldCA9PSAwKQogCQkJcmV0ID0g LUVCVVNZOwotCQl1cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQl1cF9yZWFkKCZzdm1t LT5ub3RpZmllci5tbS0+bW1hcF9zZW0pOwogCQlobW1fcmFuZ2VfdW5yZWdpc3RlcihyYW5nZSk7 CiAJCXJldHVybiByZXQ7CiAJfQpAQCAtNTg3LDEyICs2MTUsMTUgQEAgbm91dmVhdV9zdm1fZmF1 bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAJYXJncy5pLnAudmVyc2lvbiA9IDA7CiAK IAlmb3IgKGZpID0gMDsgZm4gPSBmaSArIDEsIGZpIDwgYnVmZmVyLT5mYXVsdF9ucjsgZmkgPSBm bikgeworCQlzdHJ1Y3QgbW1fc3RydWN0ICptbTsKKwogCQkvKiBDYW5jZWwgYW55IGZhdWx0cyBm cm9tIG5vbi1TVk0gY2hhbm5lbHMuICovCiAJCWlmICghKHN2bW0gPSBidWZmZXItPmZhdWx0W2Zp XS0+c3ZtbSkpIHsKIAkJCW5vdXZlYXVfc3ZtX2ZhdWx0X2NhbmNlbF9mYXVsdChzdm0sIGJ1ZmZl ci0+ZmF1bHRbZmldKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCVNWTU1fREJHKHN2bW0sICJhZGRy ICUwMTZsbHgiLCBidWZmZXItPmZhdWx0W2ZpXS0+YWRkcik7CisJCW1tID0gc3ZtbS0+bm90aWZp ZXIubW07CiAKIAkJLyogV2UgdHJ5IGFuZCBncm91cCBoYW5kbGluZyBvZiBmYXVsdHMgd2l0aGlu IGEgc21hbGwKIAkJICogd2luZG93IGludG8gYSBzaW5nbGUgdXBkYXRlLgpAQCAtNjA5LDExICs2 NDAsMTEgQEAgbm91dmVhdV9zdm1fZmF1bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAJ CS8qIEludGVyc2VjdCBmYXVsdCB3aW5kb3cgd2l0aCB0aGUgQ1BVIFZNQSwgY2FuY2VsbGluZwog CQkgKiB0aGUgZmF1bHQgaWYgdGhlIGFkZHJlc3MgaXMgaW52YWxpZC4KIAkJICovCi0JCWRvd25f cmVhZCgmc3ZtbS0+bW0tPm1tYXBfc2VtKTsKLQkJdm1hID0gZmluZF92bWFfaW50ZXJzZWN0aW9u KHN2bW0tPm1tLCBzdGFydCwgbGltaXQpOworCQlkb3duX3JlYWQoJm1tLT5tbWFwX3NlbSk7CisJ CXZtYSA9IGZpbmRfdm1hX2ludGVyc2VjdGlvbihtbSwgc3RhcnQsIGxpbWl0KTsKIAkJaWYgKCF2 bWEpIHsKIAkJCVNWTU1fRVJSKHN2bW0sICJ3bmR3ICUwMTZsbHgtJTAxNmxseCIsIHN0YXJ0LCBs aW1pdCk7Ci0JCQl1cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQkJdXBfcmVhZCgmbW0t Pm1tYXBfc2VtKTsKIAkJCW5vdXZlYXVfc3ZtX2ZhdWx0X2NhbmNlbF9mYXVsdChzdm0sIGJ1ZmZl ci0+ZmF1bHRbZmldKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC02MjMsNyArNjU0LDcgQEAgbm91 dmVhdV9zdm1fZmF1bHQoc3RydWN0IG52aWZfbm90aWZ5ICpub3RpZnkpCiAKIAkJaWYgKGJ1ZmZl ci0+ZmF1bHRbZmldLT5hZGRyICE9IHN0YXJ0KSB7CiAJCQlTVk1NX0VSUihzdm1tLCAiYWRkciAl MDE2bGx4IiwgYnVmZmVyLT5mYXVsdFtmaV0tPmFkZHIpOwotCQkJdXBfcmVhZCgmc3ZtbS0+bW0t Pm1tYXBfc2VtKTsKKwkJCXVwX3JlYWQoJm1tLT5tbWFwX3NlbSk7CiAJCQlub3V2ZWF1X3N2bV9m YXVsdF9jYW5jZWxfZmF1bHQoc3ZtLCBidWZmZXItPmZhdWx0W2ZpXSk7CiAJCQljb250aW51ZTsK IAkJfQpAQCAtNzA0LDcgKzczNSw3IEBAIG5vdXZlYXVfc3ZtX2ZhdWx0KHN0cnVjdCBudmlmX25v dGlmeSAqbm90aWZ5KQogCQkJCQkJTlVMTCk7CiAJCQlzdm1tLT52bW0tPnZtbS5vYmplY3QuY2xp ZW50LT5zdXBlciA9IGZhbHNlOwogCQkJbXV0ZXhfdW5sb2NrKCZzdm1tLT5tdXRleCk7Ci0JCQl1 cF9yZWFkKCZzdm1tLT5tbS0+bW1hcF9zZW0pOworCQkJdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsK IAkJfQogCiAJCS8qIENhbmNlbCBhbnkgZmF1bHRzIGluIHRoZSB3aW5kb3cgd2hvc2UgcGFnZXMg ZGlkbid0IG1hbmFnZQotLSAKMi4yMy4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2FtZC1nZng=