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=