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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 51816E7718B for ; Fri, 27 Dec 2024 08:38:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6hVRh001NhigGesZbXuUQAFGSpzAROeDiPYCPJkG7c0=; b=VuQlKEef0/C9G0 aAdonqJBAra1SeIYocnheblsMS2vVr1UI32Ldl5QjA7YiROX6M3iS3sCagMzu/82iPiG/QJ4sWZ1d MFFgOCV8a2KdcOfaesmotKOoiqyL3JT5Tj5i+1yhLLw4TQCVRgIIAp5LwDfOOKB4yFWr018vUScUc OQ3G41/vneQimiOmHjfVj8urNmyh3Ko/NIn2h+CHIBDRWJ2SVjWoaadYRSpSIbPbD47RwpfBVf5vW GvjQL6Lo/VAEyTkkLkxd771zu/EUSMXvELWNp2gQhnNu8tg6pWncGLP/AI/gYXXOyuPodigY9VMNH cOTeoxFaSPKbhl6b4vDA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tR5rC-0000000HOQN-10lg; Fri, 27 Dec 2024 08:38:06 +0000 Received: from mail-io1-xd35.google.com ([2607:f8b0:4864:20::d35]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tR5r0-0000000HONL-3AC7 for linux-riscv@lists.infradead.org; Fri, 27 Dec 2024 08:37:55 +0000 Received: by mail-io1-xd35.google.com with SMTP id ca18e2360f4ac-844ee43460aso568648539f.1 for ; Fri, 27 Dec 2024 00:37:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1735288673; x=1735893473; darn=lists.infradead.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=nSZdTXx1oWeAD96ChZR/AxHkCGEYuuBJCiYM9eU7Hho=; b=Jweux25uKcMfqqoxFZKeimIadaQzAk9pQJ4wj/c8rWBe2fHh9/cXdmyVxfyL99Df+Q SldSlY0XdzK1HIC0nbB84LCAWR2QE6YEXd2vYY/I1AlR1mtUq4IjHEM6+tx9Gk+9rDIo Kdz2tWu9UaWLoQB6nmlNy6nsIuQDY7PyP11f4KZrodL8N576h7gJ3R/Zwu1Yr2nAofY6 tLo2QGOqFfz+/5F5pFperZ1Y4hZowdFqTkwPbea3pSFPSdiSAyyTL81RROFAFaSddMQV 8bIvOwqUtWowyORZIoCv1jFLkFjRLqzeBNiG+pfdK3W9SZk8zTTzR1Jy8mk3QlYhzq7J E+iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735288673; x=1735893473; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nSZdTXx1oWeAD96ChZR/AxHkCGEYuuBJCiYM9eU7Hho=; b=kC1Lf8zbbr1111pUY56guN2+mRRGaep+lHTqe11O0rdExj5WEIomCbP9aojpwfJlvq rN/uCxHYw5TvDcjvVishfc1NDtkUQHyHblcNcT4mmqyFYj9aUXHU6XGFCmyIqyRCxTC2 +JoKicGDB0L8XRYZA0Oa1AISl9d7/gcTMeM7lIrVejY00zbmR/OgofiJGG+/JNMQmc+X 39BYjD6VqDx2oBgQH16r6lm7hgFYPCR/vjS/wqiXpLVl8qw5dsA7pPsZOlhqyz2VGsa6 B/r2pT5iC7fPm8I90XZ+yqFJHz7ovQGKPKEuVx66iAjxFoW7dP1D93pWTeSoiTzFwi+p x9xQ== X-Forwarded-Encrypted: i=1; AJvYcCWaPxe/omluCA7QpK9tHzO/sRqAyMolBZgOItdomO3KMGYxq+/T79ZBnunfLEPAdHXtVlZFxQiQ29XZbw==@lists.infradead.org X-Gm-Message-State: AOJu0YwavWQ9VP9T2aNghpDp3ORl0GFVN3oxkwHxYdBwfUyqiRQiFSkq 08Ra/4t+e927cySnFX9gf8HcGgrikKwBk8sMuWvNkkZ0i9lSjHmFh5qaQZlZfuEbzLzZ4qmVfoY W+QWqI6PtZglcOqXwn0YuX8r0LJ0Cd+4O8+Gx8A== X-Gm-Gg: ASbGncspH+Y306vdRzxlVUaTUueaoARpESR2xG04BhMqBmdFB0JBdsKm/BuJHhKPiK0 yOZkzQShOZgJg0fHS1tNXFZzMIsdrd5vImfZhmuVL X-Google-Smtp-Source: AGHT+IF90MNCmZOGukHpWTbUxyha7YkUKCqLcQ50bedAQaFq1n4y6BkEM/676ICpqo7GYQyEkbuSs6cWm/+EFcva0PE= X-Received: by 2002:a05:6602:1511:b0:844:b6bd:4b35 with SMTP id ca18e2360f4ac-8499e2ac0e5mr2763403339f.0.1735288672940; Fri, 27 Dec 2024 00:37:52 -0800 (PST) MIME-Version: 1.0 References: <20240614142156.29420-1-zong.li@sifive.com> <20240614142156.29420-3-zong.li@sifive.com> In-Reply-To: From: Zong Li Date: Fri, 27 Dec 2024 16:37:42 +0800 Message-ID: Subject: Re: [External] [RFC PATCH v2 02/10] iommu/riscv: support HPM and interrupt handling To: Xu Lu Cc: yunhui cui , joro@8bytes.org, will@kernel.org, robin.murphy@arm.com, tjeznach@rivosinc.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, jgg@ziepe.ca, kevin.tian@intel.com, linux-kernel@vger.kernel.org, iommu@lists.linux.dev, linux-riscv@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241227_003754_857625_4A549CD1 X-CRM114-Status: GOOD ( 34.60 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gVHVlLCBEZWMgMTAsIDIwMjQgYXQgNDo0OOKAr1BNIFh1IEx1IDxsdXh1Lmtlcm5lbEBieXRl ZGFuY2UuY29tPiB3cm90ZToKPgo+IEhpIFpvbmcgTGksCj4KPiBUaGFua3MgZm9yIHlvdXIgam9i LiBXZSBoYXZlIHRlc3RlZCB5b3VyIGlvbW11IHBtdSBkcml2ZXIgYW5kIGhhdmUKPiBzb21lIGZl ZWRiYWNrcy4KPgo+IDEuIE1heWJlIGl0IGlzIGJldHRlciB0byBjbGVhciBpcHNyLlBNSVAgZmly c3QgYW5kIHRoZW4gaGFuZGxlIHRoZSBwbXUKPiBvdmYgaXJxIGluIHJpc2N2X2lvbW11X2hwbV9p cnFfaGFuZGxlcigpLiBPdGhlcndpc2UsIGlmIGEgbmV3IG92ZXJmbG93Cj4gaGFwcGVucyBhZnRl ciB0aGUgcmlzY3ZfaW9tbXVfcG11X2hhbmRsZV9pcnEoKSBhbmQgYmVmb3JlIHBtaXAgY2xlYXIs Cj4gd2Ugd2lsbCBkcm9wIGl0LgoKWWVzLCB5b3UgYXJlIHJpZ2h0LiBMZXQgbWUgY2hhbmdlIHRo ZSBvcmRlciBpbiB0aGUgbmV4dCB2ZXJzaW9uLgoKPgo+IDIuIFRoZSBwZXJpb2RfbGVmdCBjYW4g YmUgbWVzc2VkIGluIHJpc2N2X2lvbW11X3BtdV91cGRhdGUoKSBhcwo+IHJpc2N2X2lvbW11X3Bt dV9nZXRfY291bnRlcigpIGFsd2F5cyByZXR1cm4gdGhlIHdob2xlIHJlZ2lzdGVyIHZhbHVlCj4g d2hpbGUgYml0IDYzIGluIGhwbWN5Y2xlIGFjdHVhbGx5IGluZGljYXRlcyB3aGV0aGVyIG92ZXJm bG93IGhhcHBlbnMKPiBpbnN0ZWFkIG9mIGN1cnJlbnQgdmFsdWUuIE1heWJlIHRoZXNlIHR3byBm dW5jdGlvbnMgc2hvdWxkIGJlCj4gaW1wbGVtZW50ZWQgYXM6CgpUaGFua3MgZm9yIGNhdGNoIHRo YXQuIEkgd2lsbCBmaXggdGhlbSBpbiB0aGUgbmV4dCB2ZXJzaW9uLgoKPgo+IHN0YXRpYyB2b2lk IHJpc2N2X2lvbW11X3BtdV9zZXRfY291bnRlcihzdHJ1Y3QgcmlzY3ZfaW9tbXVfcG11ICpwbXUs IHUzMiBpZHgsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU2NCB2 YWx1ZSkKPiB7Cj4gICAgICAgICB2b2lkIF9faW9tZW0gKmFkZHIgPSBwbXUtPnJlZyArIFJJU0NW X0lPTU1VX1JFR19JT0hQTUNZQ0xFUzsKPgo+ICAgICAgICAgaWYgKFdBUk5fT05fT05DRShpZHgg PCAwIHx8IGlkeCA+IHBtdS0+bnVtX2NvdW50ZXJzKSkKPiAgICAgICAgICAgICAgICAgcmV0dXJu Owo+Cj4gICAgICAgICBpZiAoaWR4ID09IDApCj4gICAgICAgICAgICAgICAgIHZhbHVlID0gKHZh bHVlICYgflJJU0NWX0lPTU1VX0lPSFBNQ1lDTEVTX09GKSB8Cj4gICAgICAgICAgICAgICAgICAg ICAgICAgKHJlYWRxKGFkZHIpICYgUklTQ1ZfSU9NTVVfSU9IUE1DWUNMRVNfT0YpOwo+Cj4gICAg ICAgICB3cml0ZXEoRklFTERfUFJFUChSSVNDVl9JT01NVV9JT0hQTUNUUl9DT1VOVEVSLCB2YWx1 ZSksIGFkZHIgKyBpZHggKiA4KTsKPiB9Cj4KPiBzdGF0aWMgdTY0IHJpc2N2X2lvbW11X3BtdV9n ZXRfY291bnRlcihzdHJ1Y3QgcmlzY3ZfaW9tbXVfcG11ICpwbXUsIHUzMiBpZHgpCj4gewo+ICAg ICAgICAgdm9pZCBfX2lvbWVtICphZGRyID0gcG11LT5yZWcgKyBSSVNDVl9JT01NVV9SRUdfSU9I UE1DWUNMRVM7Cj4gICAgICAgICB1NjQgdmFsdWU7Cj4KPiAgICAgICAgIGlmIChXQVJOX09OX09O Q0UoaWR4IDwgMCB8fCBpZHggPiBwbXUtPm51bV9jb3VudGVycykpCj4gICAgICAgICAgICAgICAg IHJldHVybiAtRUlOVkFMOwo+Cj4gICAgICAgICB2YWx1ZSA9IHJlYWRxKGFkZHIgKyBpZHggKiA4 KTsKPgo+ICAgICAgICAgaWYgKGlkeCA9PSAwKQo+ICAgICAgICAgICAgICAgICByZXR1cm4gRklF TERfR0VUKFJJU0NWX0lPTU1VX0lPSFBNQ1lDTEVTX0NPVU5URVIsIHZhbHVlKTsKPgo+ICAgICAg ICAgcmV0dXJuIEZJRUxEX0dFVChSSVNDVl9JT01NVV9JT0hQTUNUUl9DT1VOVEVSLCB2YWx1ZSk7 Cj4gfQo+Cj4gUGxlYXNlIGlnbm9yZSBtZSBpZiB0aGVzZSBpc3N1ZXMgaGF2ZSBhbHJlYWR5IGJl ZW4gZGlzY3Vzc2VkLgo+Cj4gQmVzdCByZWdhcmRzLAo+Cj4gWHUgTHUKPgo+IE9uIFR1ZSwgRGVj IDEwLCAyMDI0IGF0IDM6NTXigK9QTSB5dW5odWkgY3VpIDxjdWl5dW5odWlAYnl0ZWRhbmNlLmNv bT4gd3JvdGU6Cj4gPgo+ID4gQWRkIEx1eHUgaW4gdGhlIGxvb3AuCj4gPgo+ID4gT24gRnJpLCBK dW4gMTQsIDIwMjQgYXQgMTA6MjLigK9QTSBab25nIExpIDx6b25nLmxpQHNpZml2ZS5jb20+IHdy b3RlOgo+ID4gPgo+ID4gPiBUaGlzIHBhdGNoIGluaXRpYWxpemUgdGhlIHBtdSBzdHVmZiBhbmQg dW5pbml0aWFsaXplIGl0IHdoZW4gZHJpdmVyCj4gPiA+IHJlbW92aW5nLiBUaGUgaW50ZXJydXB0 IGhhbmRsaW5nIGlzIGFsc28gcHJvdmlkZWQsIHRoaXMgaGFuZGxlciBuZWVkIHRvCj4gPiA+IGJl IHByaW1hcnkgaGFuZGxlciBpbnN0ZWFkIG9mIHRocmVhZCBmdW5jdGlvbiwgYmVjYXVzZSBwdF9y ZWdzIGlzIGVtcHR5Cj4gPiA+IHdoZW4gdGhyZWFkaW5nIHRoZSBJUlEsIGJ1dCBwdF9yZWdzIGlz IG5lY2Vzc2FyeSBieSBwZXJmX2V2ZW50X292ZXJmbG93Lgo+ID4gPgo+ID4gPiBTaWduZWQtb2Zm LWJ5OiBab25nIExpIDx6b25nLmxpQHNpZml2ZS5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVy cy9pb21tdS9yaXNjdi9pb21tdS5jIHwgNjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKykKPiA+ID4KPiA+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvcmlzY3YvaW9tbXUuYyBiL2RyaXZlcnMvaW9t bXUvcmlzY3YvaW9tbXUuYwo+ID4gPiBpbmRleCA4YjZhNjRjMWFkOGQuLjE3MTZiMjI1MWYzOCAx MDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9pb21tdS9yaXNjdi9pb21tdS5jCj4gPiA+ICsrKyBi L2RyaXZlcnMvaW9tbXUvcmlzY3YvaW9tbXUuYwo+ID4gPiBAQCAtNTQwLDYgKzU0MCw2MiBAQCBz dGF0aWMgaXJxcmV0dXJuX3QgcmlzY3ZfaW9tbXVfZmx0cV9wcm9jZXNzKGludCBpcnEsIHZvaWQg KmRhdGEpCj4gPiA+ICAgICAgICAgcmV0dXJuIElSUV9IQU5ETEVEOwo+ID4gPiAgfQo+ID4gPgo+ ID4gPiArLyoKPiA+ID4gKyAqIElPTU1VIEhhcmR3YXJlIHBlcmZvcm1hbmNlIG1vbml0b3IKPiA+ ID4gKyAqLwo+ID4gPiArCj4gPiA+ICsvKiBIUE0gaW50ZXJydXB0IHByaW1hcnkgaGFuZGxlciAq Lwo+ID4gPiArc3RhdGljIGlycXJldHVybl90IHJpc2N2X2lvbW11X2hwbV9pcnFfaGFuZGxlcihp bnQgaXJxLCB2b2lkICpkZXZfaWQpCj4gPiA+ICt7Cj4gPiA+ICsgICAgICAgc3RydWN0IHJpc2N2 X2lvbW11X2RldmljZSAqaW9tbXUgPSAoc3RydWN0IHJpc2N2X2lvbW11X2RldmljZSAqKWRldl9p ZDsKPiA+ID4gKwo+ID4gPiArICAgICAgIC8qIFByb2Nlc3MgcG11IGlycSAqLwo+ID4gPiArICAg ICAgIHJpc2N2X2lvbW11X3BtdV9oYW5kbGVfaXJxKCZpb21tdS0+cG11KTsKPiA+ID4gKwo+ID4g PiArICAgICAgIC8qIENsZWFyIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgaW50ZXJydXB0IHBlbmRp bmcgKi8KPiA+ID4gKyAgICAgICByaXNjdl9pb21tdV93cml0ZWwoaW9tbXUsIFJJU0NWX0lPTU1V X1JFR19JUFNSLCBSSVNDVl9JT01NVV9JUFNSX1BNSVApOwo+ID4gPiArCj4gPiA+ICsgICAgICAg cmV0dXJuIElSUV9IQU5ETEVEOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICsvKiBIUE0gaW5pdGlh bGl6YXRpb24gKi8KPiA+ID4gK3N0YXRpYyBpbnQgcmlzY3ZfaW9tbXVfaHBtX2VuYWJsZShzdHJ1 Y3QgcmlzY3ZfaW9tbXVfZGV2aWNlICppb21tdSkKPiA+ID4gK3sKPiA+ID4gKyAgICAgICBpbnQg cmM7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICBpZiAoIShpb21tdS0+Y2FwcyAmIFJJU0NWX0lPTU1V X0NBUEFCSUxJVElFU19IUE0pKQo+ID4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7Cj4gPiA+ ICsKPiA+ID4gKyAgICAgICAvKgo+ID4gPiArICAgICAgICAqIHB0X3JlZ3MgaXMgZW1wdHkgd2hl biB0aHJlYWRpbmcgdGhlIElSUSwgYnV0IHB0X3JlZ3MgaXMgbmVjZXNzYXJ5Cj4gPiA+ICsgICAg ICAgICogYnkgcGVyZl9ldmVudF9vdmVyZmxvdy4gVXNlIHByaW1hcnkgaGFuZGxlciBpbnN0ZWFk IG9mIHRocmVhZAo+ID4gPiArICAgICAgICAqIGZ1bmN0aW9uIGZvciBQTSBJUlEuCj4gPiA+ICsg ICAgICAgICoKPiA+ID4gKyAgICAgICAgKiBTZXQgdGhlIElSUUZfT05FU0hPVCBmbGFnIGJlY2F1 c2UgdGhpcyBJUlEgbWlnaHQgYmUgc2hhcmVkIHdpdGgKPiA+ID4gKyAgICAgICAgKiBvdGhlciB0 aHJlYWRlZCBJUlFzIGJ5IG90aGVyIHF1ZXVlcy4KPiA+ID4gKyAgICAgICAgKi8KPiA+ID4gKyAg ICAgICByYyA9IGRldm1fcmVxdWVzdF9pcnEoaW9tbXUtPmRldiwKPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW9tbXUtPmlycXNbcmlzY3ZfaW9tbXVfcXVldWVfdmVjKGlvbW11 LCBSSVNDVl9JT01NVV9JUFNSX1BNSVApXSwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmlzY3ZfaW9tbXVfaHBtX2lycV9oYW5kbGVyLCBJUlFGX09ORVNIT1QgfCBJUlFGX1NI QVJFRCwgTlVMTCwgaW9tbXUpOwo+ID4gPiArICAgICAgIGlmIChyYykKPiA+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiByYzsKPiA+ID4gKwo+ID4gPiArICAgICAgIHJldHVybiByaXNjdl9pb21t dV9wbXVfaW5pdCgmaW9tbXUtPnBtdSwgaW9tbXUtPnJlZywgZGV2X25hbWUoaW9tbXUtPmRldikp Owo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICsvKiBIUE0gdW5pbml0aWFsaXphdGlvbiAqLwo+ID4g PiArc3RhdGljIHZvaWQgcmlzY3ZfaW9tbXVfaHBtX2Rpc2FibGUoc3RydWN0IHJpc2N2X2lvbW11 X2RldmljZSAqaW9tbXUpCj4gPiA+ICt7Cj4gPiA+ICsgICAgICAgaWYgKCEoaW9tbXUtPmNhcHMg JiBSSVNDVl9JT01NVV9DQVBBQklMSVRJRVNfSFBNKSkKPiA+ID4gKyAgICAgICAgICAgICAgIHJl dHVybjsKPiA+ID4gKwo+ID4gPiArICAgICAgIGRldm1fZnJlZV9pcnEoaW9tbXUtPmRldiwKPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgIGlvbW11LT5pcnFzW3Jpc2N2X2lvbW11X3F1ZXVlX3Zl Yyhpb21tdSwgUklTQ1ZfSU9NTVVfSVBTUl9QTUlQKV0sCj4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICBpb21tdSk7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICByaXNjdl9pb21tdV9wbXVfdW5pbml0 KCZpb21tdS0+cG11KTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgLyogTG9va3VwIGFuZCBpbml0 aWFsaXplIGRldmljZSBjb250ZXh0IGluZm8gc3RydWN0dXJlLiAqLwo+ID4gPiAgc3RhdGljIHN0 cnVjdCByaXNjdl9pb21tdV9kYyAqcmlzY3ZfaW9tbXVfZ2V0X2RjKHN0cnVjdCByaXNjdl9pb21t dV9kZXZpY2UgKmlvbW11LAo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRldmlkKQo+ID4gPiBAQCAtMTYxMiw2ICsxNjY4 LDkgQEAgdm9pZCByaXNjdl9pb21tdV9yZW1vdmUoc3RydWN0IHJpc2N2X2lvbW11X2RldmljZSAq aW9tbXUpCj4gPiA+ICAgICAgICAgcmlzY3ZfaW9tbXVfaW9kaXJfc2V0X21vZGUoaW9tbXUsIFJJ U0NWX0lPTU1VX0REVFBfSU9NTVVfTU9ERV9PRkYpOwo+ID4gPiAgICAgICAgIHJpc2N2X2lvbW11 X3F1ZXVlX2Rpc2FibGUoJmlvbW11LT5jbWRxKTsKPiA+ID4gICAgICAgICByaXNjdl9pb21tdV9x dWV1ZV9kaXNhYmxlKCZpb21tdS0+Zmx0cSk7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICBpZiAoaW9t bXUtPmNhcHMgJiBSSVNDVl9JT01NVV9DQVBBQklMSVRJRVNfSFBNKQo+ID4gPiArICAgICAgICAg ICAgICAgcmlzY3ZfaW9tbXVfcG11X3VuaW5pdCgmaW9tbXUtPnBtdSk7Cj4gPiA+ICB9Cj4gPiA+ Cj4gPiA+ICBpbnQgcmlzY3ZfaW9tbXVfaW5pdChzdHJ1Y3QgcmlzY3ZfaW9tbXVfZGV2aWNlICpp b21tdSkKPiA+ID4gQEAgLTE2NTEsNiArMTcxMCwxMCBAQCBpbnQgcmlzY3ZfaW9tbXVfaW5pdChz dHJ1Y3QgcmlzY3ZfaW9tbXVfZGV2aWNlICppb21tdSkKPiA+ID4gICAgICAgICBpZiAocmMpCj4g PiA+ICAgICAgICAgICAgICAgICBnb3RvIGVycl9xdWV1ZV9kaXNhYmxlOwo+ID4gPgo+ID4gPiAr ICAgICAgIHJjID0gcmlzY3ZfaW9tbXVfaHBtX2VuYWJsZShpb21tdSk7Cj4gPiA+ICsgICAgICAg aWYgKHJjKQo+ID4gPiArICAgICAgICAgICAgICAgZ290byBlcnJfaHBtX2Rpc2FibGU7Cj4gPiA+ ICsKPiA+ID4gICAgICAgICByYyA9IGlvbW11X2RldmljZV9zeXNmc19hZGQoJmlvbW11LT5pb21t dSwgTlVMTCwgTlVMTCwgInJpc2N2LWlvbW11QCVzIiwKPiA+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGV2X25hbWUoaW9tbXUtPmRldikpOwo+ID4gPiAgICAgICAgIGlm IChyYykgewo+ID4gPiBAQCAtMTY2OSw2ICsxNzMyLDggQEAgaW50IHJpc2N2X2lvbW11X2luaXQo c3RydWN0IHJpc2N2X2lvbW11X2RldmljZSAqaW9tbXUpCj4gPiA+ICBlcnJfcmVtb3ZlX3N5c2Zz Ogo+ID4gPiAgICAgICAgIGlvbW11X2RldmljZV9zeXNmc19yZW1vdmUoJmlvbW11LT5pb21tdSk7 Cj4gPiA+ICBlcnJfaW9kaXJfb2ZmOgo+ID4gPiArICAgICAgIHJpc2N2X2lvbW11X2hwbV9kaXNh YmxlKGlvbW11KTsKPiA+ID4gK2Vycl9ocG1fZGlzYWJsZToKPiA+ID4gICAgICAgICByaXNjdl9p b21tdV9pb2Rpcl9zZXRfbW9kZShpb21tdSwgUklTQ1ZfSU9NTVVfRERUUF9JT01NVV9NT0RFX09G Rik7Cj4gPiA+ICBlcnJfcXVldWVfZGlzYWJsZToKPiA+ID4gICAgICAgICByaXNjdl9pb21tdV9x dWV1ZV9kaXNhYmxlKCZpb21tdS0+Zmx0cSk7Cj4gPiA+IC0tCj4gPiA+IDIuMTcuMQo+ID4gPgo+ ID4gPgo+ID4KPiA+IFRoYW5rcywKPiA+IFl1bmh1aQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJp c2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1h bi9saXN0aW5mby9saW51eC1yaXNjdgo=