From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E5530C2BBC7 for ; Tue, 14 Apr 2020 01:36:22 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A4F3A2075E for ; Tue, 14 Apr 2020 01:36:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=lca.pw header.i=@lca.pw header.b="ZXn2T+dC" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A4F3A2075E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=lca.pw Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=iommu-bounces@lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 679F287BC2; Tue, 14 Apr 2020 01:36:22 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RnDrNhzqtmOK; Tue, 14 Apr 2020 01:36:21 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by hemlock.osuosl.org (Postfix) with ESMTP id 7893587874; Tue, 14 Apr 2020 01:36:21 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 5DE79C1797; Tue, 14 Apr 2020 01:36:21 +0000 (UTC) Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 442BFC0172 for ; Tue, 14 Apr 2020 01:36:19 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 3C80687BC0 for ; Tue, 14 Apr 2020 01:36:19 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IPkpVIAe3VRs for ; Tue, 14 Apr 2020 01:36:18 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail-qt1-f196.google.com (mail-qt1-f196.google.com [209.85.160.196]) by hemlock.osuosl.org (Postfix) with ESMTPS id E23A687874 for ; Tue, 14 Apr 2020 01:36:17 +0000 (UTC) Received: by mail-qt1-f196.google.com with SMTP id c16so3166106qtv.1 for ; Mon, 13 Apr 2020 18:36:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lca.pw; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=dXQotSOk2qSJpkL8ODPR0cF2dsns6oh9latebcWKpWw=; b=ZXn2T+dCyGt/hJPrquqf8BBD0V7faB5epnVMunbr/xeiiyrpiJFHFIpsWYz8CWZm99 jBBs9g5N8E5XQOlADuRZm9K+vRk83NUGg2CXhND7EImHFJNRCNnH75RgVTGQH9O86pSs nZdJG/DmIgruWxstH0ajl4yDdKwcp3XIZseCjfkeT3PzxfpZNKRAfnc8tTj59rDhd7Ig sWQUavfV4dsyjswYEiLX2WsQrUNECVVO1jfldri2u6l8RlmgcIYicYOLIsBeCQdnczFV NRT5lWonJoPE4AOmCacgtl4zwMqGoGQ9hZXmSY5Ff4AukWxEU5ZN/vXkrj/+fOWbvgAp fNkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=dXQotSOk2qSJpkL8ODPR0cF2dsns6oh9latebcWKpWw=; b=TqJ/6oTlDbbXJP+SEqS1hAm+eNU3cJ+Y/C4ZTzoh8z2aVFki9wailE7CB5UBl7BUkF x95FOrIMtjYCMuLEtwvhtkwCame+MUwgwyQPWYmwRC2RKcaASfOdGDjINjWFz3CZfd4A ZYEZn+hdhshtlDNwnZ6TE9xP97TpzSD17Wk4uTeOclTKibfiq0axpkO3ZAOkOoD8jlHr kJEOrjQu+Y1qi4panudcDaekkILn3abZj1zRDORZjfVWt0ON7NcF5/UCVMPPlkmaYisH 97M0ORN8NSqkDlYMhUURmkboaQaHK4AXVEygxvc98WFtcosw30jB54izieYixMwIxUEp TEAA== X-Gm-Message-State: AGi0PuZ2KRs6yfOk7AYQyMv+8KEguaD510ipEVqk78mlHDySfpvkVKsq moX2RZNsDPPntOGlNp2ynMAGgg== X-Google-Smtp-Source: APiQypLisfcHpWJFsLswpdXcbJ/nAChf+Oxr+sSDafAEgmbCiRYEIgG4skSlBnxIsyyK00qjymNGTw== X-Received: by 2002:ac8:4e45:: with SMTP id e5mr14283372qtw.101.1586828176628; Mon, 13 Apr 2020 18:36:16 -0700 (PDT) Received: from [192.168.1.153] (pool-71-184-117-43.bstnma.fios.verizon.net. [71.184.117.43]) by smtp.gmail.com with ESMTPSA id x14sm6160100qtr.33.2020.04.13.18.36.15 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Apr 2020 18:36:16 -0700 (PDT) Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\)) Subject: Re: [RFC PATCH] iommu/amd: fix a race in fetch_pte() From: Qian Cai In-Reply-To: <20200408141915.GJ3103@8bytes.org> Date: Mon, 13 Apr 2020 21:36:15 -0400 Message-Id: <527B0883-F59D-4C7A-8102-743872801EFC@lca.pw> References: <20200407021246.10941-1-cai@lca.pw> <7664E2E7-04D4-44C3-AB7E-A4334CDEC373@lca.pw> <20200408141915.GJ3103@8bytes.org> To: Joerg Roedel X-Mailer: Apple Mail (2.3608.80.23.2.2) Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org X-BeenThere: iommu@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Development issues for Linux IOMMU support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: iommu-bounces@lists.linux-foundation.org Sender: "iommu" Cgo+IE9uIEFwciA4LCAyMDIwLCBhdCAxMDoxOSBBTSwgSm9lcmcgUm9lZGVsIDxqb3JvQDhieXRl cy5vcmc+IHdyb3RlOgo+IAo+IEhpIFFpYW4sCj4gCj4gT24gVHVlLCBBcHIgMDcsIDIwMjAgYXQg MTE6MzY6MDVBTSAtMDQwMCwgUWlhbiBDYWkgd3JvdGU6Cj4+IEFmdGVyIGZ1cnRoZXIgdGVzdGlu ZywgdGhlIGNoYW5nZSBhbG9uZyBpcyBpbnN1ZmZpY2llbnQuIFdoYXQgSSBhbSBjaGFzaW5nIHJp Z2h0Cj4+IG5vdyBpcyB0aGUgc3dhcCBkZXZpY2Ugd2lsbCBnbyBvZmZsaW5lIGFmdGVyIGhlYXZ5 IG1lbW9yeSBwcmVzc3VyZSBiZWxvdy4gVGhlCj4+IHN5bXB0b20gaXMgc2ltaWxhciB0byB3aGF0 IHdlIGhhdmUgaW4gdGhlIGNvbW1pdCwKPj4gCj4+IDc1NDI2NWJjYWI3OCAo4oCcaW9tbXUvYW1k OiBGaXggcmFjZSBpbiBpbmNyZWFzZV9hZGRyZXNzX3NwYWNlKCnigJ0pCj4+IAo+PiBBcHBhcmVu dGx5LCBpdCBpcyBubyBwb3NzaWJsZSB0byB0YWtlIHRoZSBkb21haW4tPmxvY2sgaW4gZmV0Y2hf cHRlKCkgYmVjYXVzZSBpdAo+PiBjb3VsZCBzbGVlcC4KPiAKPiBUaGFua3MgYSBsb3QgZm9yIGZp bmRpbmcgYW5kIHRyYWNraW5nIGRvd24gYW5vdGhlciByYWNlIGluIHRoZSBBTUQgSU9NTVUKPiBw YWdlLXRhYmxlIGNvZGUuICBUaGUgZG9tYWluLT5sb2NrIGlzIGEgc3Bpbi1sb2NrIGFuZCB0YWtp bmcgaXQgY2FuJ3QKPiBzbGVlcC4gQnV0IGZldGNoX3B0ZSgpIGlzIGEgZmFzdC1wYXRoIGFuZCBt dXN0IG5vdCB0YWtlIGFueSBsb2Nrcy4KPiAKPiBJIHRoaW5rIHRoZSBiZXN0IGZpeCBpcyB0byB1 cGRhdGUgdGhlIHB0X3Jvb3QgYW5kIG1vZGUgb2YgdGhlIGRvbWFpbgo+IGF0b21pY2FsbHkgYnkg c3RvcmluZyB0aGUgbW9kZSBpbiB0aGUgbG93ZXIgMTIgYml0cyBvZiBwdF9yb290LiBUaGlzIHdh eQo+IHRoZXkgYXJlIHN0b3JlZCB0b2dldGhlciBhbmQgY2FuIGJlIHJlYWQvd3JpdGUgYXRvbWlj YWxseS4KCkxpa2UgdGhpcz8KCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lvbW11L2FtZF9pb21tdS5j IGIvZHJpdmVycy9pb21tdS9hbWRfaW9tbXUuYwppbmRleCAyMGNjZTM2NmU5NTEuLmIzNmM2YjA3 Y2JmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pb21tdS9hbWRfaW9tbXUuYworKysgYi9kcml2ZXJz L2lvbW11L2FtZF9pb21tdS5jCkBAIC0xMzk3LDEzICsxMzk3LDEzIEBAIHN0YXRpYyBzdHJ1Y3Qg cGFnZSAqZnJlZV9zdWJfcHQodW5zaWduZWQgbG9uZyByb290LCBpbnQgbW9kZSwKIAogc3RhdGlj IHZvaWQgZnJlZV9wYWdldGFibGUoc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW4pCiB7 Ci0JdW5zaWduZWQgbG9uZyByb290ID0gKHVuc2lnbmVkIGxvbmcpZG9tYWluLT5wdF9yb290Owor CWludCBsZXZlbCA9IGlvbW11X2dldF9tb2RlKGRvbWFpbi0+cHRfcm9vdCk7CisJdW5zaWduZWQg bG9uZyByb290ID0gaW9tbXVfZ2V0X3Jvb3QoZG9tYWluLT5wdF9yb290KTsKIAlzdHJ1Y3QgcGFn ZSAqZnJlZWxpc3QgPSBOVUxMOwogCi0JQlVHX09OKGRvbWFpbi0+bW9kZSA8IFBBR0VfTU9ERV9O T05FIHx8Ci0JICAgICAgIGRvbWFpbi0+bW9kZSA+IFBBR0VfTU9ERV82X0xFVkVMKTsKKwlCVUdf T04obGV2ZWwgPCBQQUdFX01PREVfTk9ORSB8fCBsZXZlbCA+IFBBR0VfTU9ERV82X0xFVkVMKTsK IAotCWZyZWVsaXN0ID0gZnJlZV9zdWJfcHQocm9vdCwgZG9tYWluLT5tb2RlLCBmcmVlbGlzdCk7 CisJZnJlZWxpc3QgPSBmcmVlX3N1Yl9wdChyb290LCBsZXZlbCwgZnJlZWxpc3QpOwogCiAJZnJl ZV9wYWdlX2xpc3QoZnJlZWxpc3QpOwogfQpAQCAtMTQxNywyNCArMTQxNywyNyBAQCBzdGF0aWMg Ym9vbCBpbmNyZWFzZV9hZGRyZXNzX3NwYWNlKHN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9t YWluLAogCQkJCSAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKIAkJCQkgICBnZnBfdCBnZnApCiB7 CisJaW50IGxldmVsOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJYm9vbCByZXQgPSBmYWxzZTsK IAl1NjQgKnB0ZTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsK IAotCWlmIChhZGRyZXNzIDw9IFBNX0xFVkVMX1NJWkUoZG9tYWluLT5tb2RlKSB8fAotCSAgICBX QVJOX09OX09OQ0UoZG9tYWluLT5tb2RlID09IFBBR0VfTU9ERV82X0xFVkVMKSkKKwlsZXZlbCA9 IGlvbW11X2dldF9tb2RlKGRvbWFpbi0+cHRfcm9vdCk7CisKKwlpZiAoYWRkcmVzcyA8PSBQTV9M RVZFTF9TSVpFKGxldmVsKSB8fAorCSAgICBXQVJOX09OX09OQ0UobGV2ZWwgPT0gUEFHRV9NT0RF XzZfTEVWRUwpKQogCQlnb3RvIG91dDsKIAogCXB0ZSA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdl KGdmcCk7CiAJaWYgKCFwdGUpCiAJCWdvdG8gb3V0OwogCi0JKnB0ZSAgICAgICAgICAgICA9IFBN X0xFVkVMX1BERShkb21haW4tPm1vZGUsCi0JCQkJCWlvbW11X3ZpcnRfdG9fcGh5cyhkb21haW4t PnB0X3Jvb3QpKTsKLQlkb21haW4tPnB0X3Jvb3QgID0gcHRlOwotCWRvbWFpbi0+bW9kZSAgICAr PSAxOworCSpwdGUgPSBQTV9MRVZFTF9QREUobGV2ZWwsCisJCWlvbW11X3ZpcnRfdG9fcGh5cygo dm9pZCAqKWlvbW11X2dldF9yb290KGRvbWFpbi0+cHRfcm9vdCkpKTsKKworCVdSSVRFX09OQ0Uo ZG9tYWluLT5wdF9yb290LCAodW5zaWduZWQgbG9uZylwdGUgKyBsZXZlbCArIDEpOwogCiAJcmV0 ID0gdHJ1ZTsKIApAQCAtMTQ1MiwxNSArMTQ1NSwxNyBAQCBzdGF0aWMgdTY0ICphbGxvY19wdGUo c3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW4sCiAJCSAgICAgIGJvb2wgKnVwZGF0ZWQp CiB7CiAJaW50IGxldmVsLCBlbmRfbHZsOwotCXU2NCAqcHRlLCAqcGFnZTsKKwl1NjQgKnB0ZSwg KnBhZ2UsICpwdF9yb290LCAqcm9vdDsKIAogCUJVR19PTighaXNfcG93ZXJfb2ZfMihwYWdlX3Np emUpKTsKIAotCXdoaWxlIChhZGRyZXNzID4gUE1fTEVWRUxfU0laRShkb21haW4tPm1vZGUpKQor CXdoaWxlIChhZGRyZXNzID4gUE1fTEVWRUxfU0laRShpb21tdV9nZXRfbW9kZShkb21haW4tPnB0 X3Jvb3QpKSkKIAkJKnVwZGF0ZWQgPSBpbmNyZWFzZV9hZGRyZXNzX3NwYWNlKGRvbWFpbiwgYWRk cmVzcywgZ2ZwKSB8fCAqdXBkYXRlZDsKIAotCWxldmVsICAgPSBkb21haW4tPm1vZGUgLSAxOwot CXB0ZSAgICAgPSAmZG9tYWluLT5wdF9yb290W1BNX0xFVkVMX0lOREVYKGxldmVsLCBhZGRyZXNz KV07CisJcHRfcm9vdCA9IFJFQURfT05DRShkb21haW4tPnB0X3Jvb3QpOworCXJvb3QgICAgPSAo dm9pZCAqKWlvbW11X2dldF9yb290KHB0X3Jvb3QpOworCWxldmVsICAgPSBpb21tdV9nZXRfbW9k ZShwdF9yb290KSAtIDE7CisJcHRlICAgICA9ICZyb290W1BNX0xFVkVMX0lOREVYKGxldmVsLCBh ZGRyZXNzKV07CiAJYWRkcmVzcyA9IFBBR0VfU0laRV9BTElHTihhZGRyZXNzLCBwYWdlX3NpemUp OwogCWVuZF9sdmwgPSBQQUdFX1NJWkVfTEVWRUwocGFnZV9zaXplKTsKIApAQCAtMTUzNiwxNiAr MTU0MSwxOCBAQCBzdGF0aWMgdTY0ICpmZXRjaF9wdGUoc3RydWN0IHByb3RlY3Rpb25fZG9tYWlu ICpkb21haW4sCiAJCSAgICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKIAkJICAgICAgdW5zaWdu ZWQgbG9uZyAqcGFnZV9zaXplKQogewotCWludCBsZXZlbDsKIAl1NjQgKnB0ZTsKKwl1NjQgKnB0 X3Jvb3QgPSBSRUFEX09OQ0UoZG9tYWluLT5wdF9yb290KTsKKwl1NjQgKnJvb3QgICAgPSAodm9p ZCAqKWlvbW11X2dldF9yb290KHB0X3Jvb3QpOworCWludCBsZXZlbCAgICA9IGlvbW11X2dldF9t b2RlKHB0X3Jvb3QpOwogCiAJKnBhZ2Vfc2l6ZSA9IDA7CiAKLQlpZiAoYWRkcmVzcyA+IFBNX0xF VkVMX1NJWkUoZG9tYWluLT5tb2RlKSkKKwlpZiAoYWRkcmVzcyA+IFBNX0xFVkVMX1NJWkUobGV2 ZWwpKQogCQlyZXR1cm4gTlVMTDsKIAotCWxldmVsCSAgID0gIGRvbWFpbi0+bW9kZSAtIDE7Ci0J cHRlCSAgID0gJmRvbWFpbi0+cHRfcm9vdFtQTV9MRVZFTF9JTkRFWChsZXZlbCwgYWRkcmVzcyld OworCWxldmVsLS07CisJcHRlCSAgID0gJnJvb3RbUE1fTEVWRUxfSU5ERVgobGV2ZWwsIGFkZHJl c3MpXTsKIAkqcGFnZV9zaXplID0gIFBURV9MRVZFTF9QQUdFX1NJWkUobGV2ZWwpOwogCiAJd2hp bGUgKGxldmVsID4gMCkgewpAQCAtMTgxNCwxMiArMTgyMSwxMyBAQCBzdGF0aWMgc3RydWN0IHBy b3RlY3Rpb25fZG9tYWluICpkbWFfb3BzX2RvbWFpbl9hbGxvYyh2b2lkKQogCWlmIChwcm90ZWN0 aW9uX2RvbWFpbl9pbml0KGRvbWFpbikpCiAJCWdvdG8gZnJlZV9kb21haW47CiAKLQlkb21haW4t Pm1vZGUgPSBQQUdFX01PREVfM19MRVZFTDsKIAlkb21haW4tPnB0X3Jvb3QgPSAodm9pZCAqKWdl dF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKIAlkb21haW4tPmZsYWdzID0gUERfRE1BX09QU19N QVNLOwogCWlmICghZG9tYWluLT5wdF9yb290KQogCQlnb3RvIGZyZWVfZG9tYWluOwogCisJZG9t YWluLT5wdF9yb290ID0gaW9tbXVfc2V0X21vZGUoZG9tYWluLT5wdF9yb290LCBQQUdFX01PREVf M19MRVZFTCk7CisKIAlpZiAoaW9tbXVfZ2V0X2RtYV9jb29raWUoJmRvbWFpbi0+ZG9tYWluKSA9 PSAtRU5PTUVNKQogCQlnb3RvIGZyZWVfZG9tYWluOwogCkBAIC0xODQ3LDEwICsxODU1LDEwIEBA IHN0YXRpYyB2b2lkIHNldF9kdGVfZW50cnkodTE2IGRldmlkLCBzdHJ1Y3QgcHJvdGVjdGlvbl9k b21haW4gKmRvbWFpbiwKIAl1NjQgZmxhZ3MgPSAwOwogCXUzMiBvbGRfZG9taWQ7CiAKLQlpZiAo ZG9tYWluLT5tb2RlICE9IFBBR0VfTU9ERV9OT05FKQotCQlwdGVfcm9vdCA9IGlvbW11X3ZpcnRf dG9fcGh5cyhkb21haW4tPnB0X3Jvb3QpOworCWlmIChpb21tdV9nZXRfbW9kZShkb21haW4tPnB0 X3Jvb3QpICE9IFBBR0VfTU9ERV9OT05FKQorCQlwdGVfcm9vdCA9IGlvbW11X3ZpcnRfdG9fcGh5 cygodm9pZCAqKWlvbW11X2dldF9yb290KGRvbWFpbi0+cHRfcm9vdCkpOwogCi0JcHRlX3Jvb3Qg fD0gKGRvbWFpbi0+bW9kZSAmIERFVl9FTlRSWV9NT0RFX01BU0spCisJcHRlX3Jvb3QgfD0gKCh1 bnNpZ25lZCBsb25nKWRvbWFpbi0+cHRfcm9vdCAmIERFVl9FTlRSWV9NT0RFX01BU0spCiAJCSAg ICA8PCBERVZfRU5UUllfTU9ERV9TSElGVDsKIAlwdGVfcm9vdCB8PSBEVEVfRkxBR19JUiB8IERU RV9GTEFHX0lXIHwgRFRFX0ZMQUdfViB8IERURV9GTEFHX1RWOwogCkBAIC0yMzgyLDEzICsyMzkw LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgaW9tbXVfZG9tYWluICphbWRfaW9tbXVfZG9tYWluX2FsbG9j KHVuc2lnbmVkIHR5cGUpCiAJCWlmICghcGRvbWFpbikKIAkJCXJldHVybiBOVUxMOwogCi0JCXBk b21haW4tPm1vZGUgICAgPSBQQUdFX01PREVfM19MRVZFTDsKIAkJcGRvbWFpbi0+cHRfcm9vdCA9 ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpOwogCQlpZiAoIXBkb21haW4tPnB0 X3Jvb3QpIHsKIAkJCXByb3RlY3Rpb25fZG9tYWluX2ZyZWUocGRvbWFpbik7CiAJCQlyZXR1cm4g TlVMTDsKIAkJfQogCisJCXBkb21haW4tPnB0X3Jvb3QgPSBpb21tdV9zZXRfbW9kZShwZG9tYWlu LT5wdF9yb290LAorCQkJCQkJICBQQUdFX01PREVfM19MRVZFTCk7CiAJCXBkb21haW4tPmRvbWFp bi5nZW9tZXRyeS5hcGVydHVyZV9zdGFydCA9IDA7CiAJCXBkb21haW4tPmRvbWFpbi5nZW9tZXRy eS5hcGVydHVyZV9lbmQgICA9IH4wVUxMOwogCQlwZG9tYWluLT5kb21haW4uZ2VvbWV0cnkuZm9y Y2VfYXBlcnR1cmUgPSB0cnVlOwpAQCAtMjQwNiw3ICsyNDE1LDggQEAgc3RhdGljIHN0cnVjdCBp b21tdV9kb21haW4gKmFtZF9pb21tdV9kb21haW5fYWxsb2ModW5zaWduZWQgdHlwZSkKIAkJaWYg KCFwZG9tYWluKQogCQkJcmV0dXJuIE5VTEw7CiAKLQkJcGRvbWFpbi0+bW9kZSA9IFBBR0VfTU9E RV9OT05FOworCQlwZG9tYWluLT5wdF9yb290ID0gaW9tbXVfc2V0X21vZGUocGRvbWFpbi0+cHRf cm9vdCwKKwkJCQkJCSAgUEFHRV9NT0RFX05PTkUpOwogCQlicmVhazsKIAlkZWZhdWx0OgogCQly ZXR1cm4gTlVMTDsKQEAgLTI0MzUsNyArMjQ0NSw3IEBAIHN0YXRpYyB2b2lkIGFtZF9pb21tdV9k b21haW5fZnJlZShzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb20pCiAJCWRtYV9vcHNfZG9tYWluX2Zy ZWUoZG9tYWluKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJaWYgKGRvbWFpbi0+bW9kZSAhPSBQ QUdFX01PREVfTk9ORSkKKwkJaWYgKGlvbW11X2dldF9tb2RlKGRvbWFpbi0+cHRfcm9vdCkgIT0g UEFHRV9NT0RFX05PTkUpCiAJCQlmcmVlX3BhZ2V0YWJsZShkb21haW4pOwogCiAJCWlmIChkb21h aW4tPmZsYWdzICYgUERfSU9NTVVWMl9NQVNLKQpAQCAtMjUyMSw3ICsyNTMxLDcgQEAgc3RhdGlj IGludCBhbWRfaW9tbXVfbWFwKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbSwgdW5zaWduZWQgbG9u ZyBpb3ZhLAogCWludCBwcm90ID0gMDsKIAlpbnQgcmV0OwogCi0JaWYgKGRvbWFpbi0+bW9kZSA9 PSBQQUdFX01PREVfTk9ORSkKKwlpZiAoaW9tbXVfZ2V0X21vZGUoZG9tYWluLT5wdF9yb290KSA9 PSBQQUdFX01PREVfTk9ORSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAoaW9tbXVfcHJvdCAm IElPTU1VX1JFQUQpCkBAIC0yNTQyLDcgKzI1NTIsNyBAQCBzdGF0aWMgc2l6ZV90IGFtZF9pb21t dV91bm1hcChzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb20sIHVuc2lnbmVkIGxvbmcgaW92YSwKIHsK IAlzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbiA9IHRvX3Bkb21haW4oZG9tKTsKIAot CWlmIChkb21haW4tPm1vZGUgPT0gUEFHRV9NT0RFX05PTkUpCisJaWYgKGlvbW11X2dldF9tb2Rl KGRvbWFpbi0+cHRfcm9vdCkgPT0gUEFHRV9NT0RFX05PTkUpCiAJCXJldHVybiAwOwogCiAJcmV0 dXJuIGlvbW11X3VubWFwX3BhZ2UoZG9tYWluLCBpb3ZhLCBwYWdlX3NpemUpOwpAQCAtMjU1NSw3 ICsyNTY1LDcgQEAgc3RhdGljIHBoeXNfYWRkcl90IGFtZF9pb21tdV9pb3ZhX3RvX3BoeXMoc3Ry dWN0IGlvbW11X2RvbWFpbiAqZG9tLAogCXVuc2lnbmVkIGxvbmcgb2Zmc2V0X21hc2ssIHB0ZV9w Z3NpemU7CiAJdTY0ICpwdGUsIF9fcHRlOwogCi0JaWYgKGRvbWFpbi0+bW9kZSA9PSBQQUdFX01P REVfTk9ORSkKKwlpZiAoaW9tbXVfZ2V0X21vZGUoZG9tYWluLT5wdF9yb290KSA9PSBQQUdFX01P REVfTk9ORSkKIAkJcmV0dXJuIGlvdmE7CiAKIAlwdGUgPSBmZXRjaF9wdGUoZG9tYWluLCBpb3Zh LCAmcHRlX3Bnc2l6ZSk7CkBAIC0yNzEzLDcgKzI3MjMsNyBAQCB2b2lkIGFtZF9pb21tdV9kb21h aW5fZGlyZWN0X21hcChzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb20pCiAJc3Bpbl9sb2NrX2lycXNh dmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOwogCiAJLyogVXBkYXRlIGRhdGEgc3RydWN0dXJlICov Ci0JZG9tYWluLT5tb2RlICAgID0gUEFHRV9NT0RFX05PTkU7CisJZG9tYWluLT5wdF9yb290ID0g aW9tbXVfc2V0X21vZGUoZG9tYWluLT5wdF9yb290LCBQQUdFX01PREVfTk9ORSk7CiAKIAkvKiBN YWtlIGNoYW5nZXMgdmlzaWJsZSB0byBJT01NVXMgKi8KIAl1cGRhdGVfZG9tYWluKGRvbWFpbik7 CkBAIC0yOTEwLDcgKzI5MjAsNyBAQCBzdGF0aWMgaW50IF9fc2V0X2djcjMoc3RydWN0IHByb3Rl Y3Rpb25fZG9tYWluICpkb21haW4sIGludCBwYXNpZCwKIHsKIAl1NjQgKnB0ZTsKIAotCWlmIChk b21haW4tPm1vZGUgIT0gUEFHRV9NT0RFX05PTkUpCisJaWYgKGlvbW11X2dldF9tb2RlKGRvbWFp bi0+cHRfcm9vdCkgIT0gUEFHRV9NT0RFX05PTkUpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJcHRl ID0gX19nZXRfZ2NyM19wdGUoZG9tYWluLT5nY3IzX3RibCwgZG9tYWluLT5nbHgsIHBhc2lkLCB0 cnVlKTsKQEAgLTI5MjYsNyArMjkzNiw3IEBAIHN0YXRpYyBpbnQgX19jbGVhcl9nY3IzKHN0cnVj dCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluLCBpbnQgcGFzaWQpCiB7CiAJdTY0ICpwdGU7CiAK LQlpZiAoZG9tYWluLT5tb2RlICE9IFBBR0VfTU9ERV9OT05FKQorCWlmIChpb21tdV9nZXRfbW9k ZShkb21haW4tPnB0X3Jvb3QpICE9IFBBR0VfTU9ERV9OT05FKQogCQlyZXR1cm4gLUVJTlZBTDsK IAogCXB0ZSA9IF9fZ2V0X2djcjNfcHRlKGRvbWFpbi0+Z2NyM190YmwsIGRvbWFpbi0+Z2x4LCBw YXNpZCwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hbWRfaW9tbXVfcHJvdG8u aCBiL2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11X3Byb3RvLmgKaW5kZXggOTJjMmJhNjQ2OGEwLi4z NGQ0ZGQ2NmNmOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11X3Byb3RvLmgK KysrIGIvZHJpdmVycy9pb21tdS9hbWRfaW9tbXVfcHJvdG8uaApAQCAtNjcsNiArNjcsMjEgQEAg c3RhdGljIGlubGluZSBpbnQgYW1kX2lvbW11X2NyZWF0ZV9pcnFfZG9tYWluKHN0cnVjdCBhbWRf aW9tbXUgKmlvbW11KQogZXh0ZXJuIGludCBhbWRfaW9tbXVfY29tcGxldGVfcHByKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LCBpbnQgcGFzaWQsCiAJCQkJICBpbnQgc3RhdHVzLCBpbnQgdGFnKTsKIAor c3RhdGljIGlubGluZSBpbnQgaW9tbXVfZ2V0X21vZGUodm9pZCAqcHRfcm9vdCkKK3sKKwlyZXR1 cm4gKHVuc2lnbmVkIGxvbmcpcHRfcm9vdCAmIH5QQUdFX01BU0s7Cit9CisKK3N0YXRpYyBpbmxp bmUgdW5zaWduZWQgbG9uZyBpb21tdV9nZXRfcm9vdCh2b2lkICpwdF9yb290KQoreworCXJldHVy biAodW5zaWduZWQgbG9uZylwdF9yb290ICYgUEFHRV9NQVNLOworfQorCitzdGF0aWMgaW5saW5l IHZvaWQgKmlvbW11X3NldF9tb2RlKHZvaWQgKnB0X3Jvb3QsIGludCBtb2RlKQoreworCXJldHVy biAodm9pZCAqKShpb21tdV9nZXRfcm9vdChwdF9yb290KSArIG1vZGUpOworfQorCiBzdGF0aWMg aW5saW5lIGJvb2wgaXNfcmQ4OTBfaW9tbXUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAJcmV0 dXJuIChwZGV2LT52ZW5kb3IgPT0gUENJX1ZFTkRPUl9JRF9BVEkpICYmCmRpZmYgLS1naXQgYS9k cml2ZXJzL2lvbW11L2FtZF9pb21tdV90eXBlcy5oIGIvZHJpdmVycy9pb21tdS9hbWRfaW9tbXVf dHlwZXMuaAppbmRleCBjYThjNDUyMjA0NWIuLjIyMWFkZWZhNTZhMCAxMDA2NDQKLS0tIGEvZHJp dmVycy9pb21tdS9hbWRfaW9tbXVfdHlwZXMuaAorKysgYi9kcml2ZXJzL2lvbW11L2FtZF9pb21t dV90eXBlcy5oCkBAIC00NjgsOCArNDY4LDggQEAgc3RydWN0IHByb3RlY3Rpb25fZG9tYWluIHsK IAkJCQkgICAgICAgaW9tbXUgY29yZSBjb2RlICovCiAJc3BpbmxvY2tfdCBsb2NrOwkvKiBtb3N0 bHkgdXNlZCB0byBsb2NrIHRoZSBwYWdlIHRhYmxlKi8KIAl1MTYgaWQ7CQkJLyogdGhlIGRvbWFp biBpZCB3cml0dGVuIHRvIHRoZSBkZXZpY2UgdGFibGUgKi8KLQlpbnQgbW9kZTsJCS8qIHBhZ2lu ZyBtb2RlICgwLTYgbGV2ZWxzKSAqLwotCXU2NCAqcHRfcm9vdDsJCS8qIHBhZ2UgdGFibGUgcm9v dCBwb2ludGVyICovCisJdTY0ICpwdF9yb290OwkJLyogcGFnZSB0YWJsZSByb290IHBvaW50ZXIg YW5kIHBhZ2luZyBtb2RlICgwLTYKKwkJCQkgICBsZXZlbHMpICovCiAJaW50IGdseDsJCS8qIE51 bWJlciBvZiBsZXZlbHMgZm9yIEdDUjMgdGFibGUgKi8KIAl1NjQgKmdjcjNfdGJsOwkJLyogR3Vl c3QgQ1IzIHRhYmxlICovCiAJdW5zaWduZWQgbG9uZyBmbGFnczsJLyogZmxhZ3MgdG8gZmluZCBv dXQgdHlwZSBvZiBkb21haW4gKi8KLS0gCjIuMjEuMCAoQXBwbGUgR2l0LTEyMi4yKQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppb21tdSBtYWlsaW5nIGxp c3QKaW9tbXVAbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZv dW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vaW9tbXU=