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 21B42E77180 for ; Tue, 10 Dec 2024 08:48:59 +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=OWQakwcjkXSdsPZcV0TgMK6ufCIzw9XMSWAdTlUlDNQ=; b=0fjobcLMz51OIv AammQVJ4MIXRqzEUyhj5wf//BvIXI1BafjKO73X2RPNMhhkSqb+BELS8FJk1q8a8uSPVwBwR7Vc4L Mz+5PvOBxUzzZSNFWZe2374K4VoGnTwNMX/38gBzUGDvpqcRNYBLbiXEXAGRLIymX2cGbWSL7hIEl mRLNAuRJd3KQ+kOIute1eubYeA99pDCAFlo/oUdmf3kxB932N1PZg2Y5F1ypNFattaMQc1XJpPGWm l+UjUBOtk8PVb6rTxzz1jAJtZ18ijsTqDOf7JAYJfSJDFBygeLVYwrj9j4ufqSm+LCRTZPa07uldL Js5AEOKYxt6/BPZ5Eqkw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tKvvI-0000000Am4w-2o2y; Tue, 10 Dec 2024 08:48:52 +0000 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tKvvG-0000000Am43-0Sir for linux-riscv@lists.infradead.org; Tue, 10 Dec 2024 08:48:51 +0000 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-723f37dd76cso4708552b3a.0 for ; Tue, 10 Dec 2024 00:48:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1733820525; x=1734425325; 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=4xdi3z9/CNbVcJitr9EduQ8bN9iyAWrkkGNI8Z3BdOU=; b=VOVILGGbhZgbxTJsyXC73qfdl7w90vF9sgrqB8Ex8+ChhbRCVFORxMhjJvVDA9IlEd gKIhl3AUTRWA2Qbgo42VPspC7RNt9mJCUy14cuVnjhW/daKeKmsaxehWHKmLsVbGiQWj oZywKFgj5Avg2p1LzpW0SGXoraxhlzGFjmYtoO900UMslgkZAJmWW7qN07jQLXpKLZIg A1875/ATqtcpTJTUX4UP0V30rcGYkXfTrEvgug8d+SovFBtQo5XiTUBps5836SN5UD49 znEIJ9CQpGU0agzpOo9sZmunqx5tEkTS2rQl6UYQ0ouRePbuhTuC6ZNekAhxl26+w+xz svaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733820525; x=1734425325; 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=4xdi3z9/CNbVcJitr9EduQ8bN9iyAWrkkGNI8Z3BdOU=; b=NiGy/BsUN9s12ERYJakU1ttkqRd4UTiRH5ZPyfKY6QSrzJBtQcLa7Lq4I+8S8WLXm1 oeVMpxsiffclvAwNGSogtpkSDhr7dKEjx/tafEOomH4hYh+Id0KHXP6/dYMd75jU0JxJ fjEhk4zURRKDdPFC3JCmiHv8Ft+XAN8lpK62H1Ts4HpgwqzBVbEw8SdVmn15P1AWeJm+ PwVVSqEhKG+fcC0MeOuTlm4ZwX7BJEEFpwnY5xupdhD/7ziWmpyjiECvBXWUI89OlFvy q8zxv9YBMHZD9NP4VKBSwnAdewq4luXc5RjlH8uZZrbw2ti1V76kggd0A6EghCHrGBig ycOw== X-Forwarded-Encrypted: i=1; AJvYcCXYp+tyE4wmEskU51HobOXtQE6pr3ThceW9FC/tCE1x8rhbrx/JnAeXV70ft2McdDdg8vy8ZWPzaHbzfQ==@lists.infradead.org X-Gm-Message-State: AOJu0YyhPEzS9L5kogqoYUVsoH84qEklUSHGBZ4rRu0Cc53pqkoAuxfV ofLY77TvMjkKtQb1i//yVlYC0ZM3vSqPbbYSDXpaOOE8Tk6RwBUjZqmEBKBEjdavWUEjj/G6e2O QB24gl3YK3NADr2/Fmvz3nH8p0/Wz8oqcR4GToQ== X-Gm-Gg: ASbGnctdgWpyF7U0BovAQSZw7v2Bp6gkqKIBQZIFaYCwlcw+vgmKH+uCL1rIFY+wcs9 BXZ03qet/jinUk7RpbcxhaO/5POHOnog2clCQhYC7Vp9sEt1p X-Google-Smtp-Source: AGHT+IEeuMu8uXi3ZE16bp1ukXRs8K6CpNq5yl10CKIHFHI15DQEAFvQNF0rRvfgKbd84KwQSI2khPon70vuDsQN4WY= X-Received: by 2002:a05:6a20:b598:b0:1e1:afa9:d38b with SMTP id adf61e73a8af0-1e1b1a79bf7mr6372667637.8.1733820525586; Tue, 10 Dec 2024 00:48:45 -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: Xu Lu Date: Tue, 10 Dec 2024 16:48:34 +0800 Message-ID: Subject: Re: [External] [RFC PATCH v2 02/10] iommu/riscv: support HPM and interrupt handling To: yunhui cui Cc: Zong Li , 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-20241210_004850_149176_CCBB3B7B X-CRM114-Status: GOOD ( 29.53 ) 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 SGkgWm9uZyBMaSwKClRoYW5rcyBmb3IgeW91ciBqb2IuIFdlIGhhdmUgdGVzdGVkIHlvdXIgaW9t bXUgcG11IGRyaXZlciBhbmQgaGF2ZQpzb21lIGZlZWRiYWNrcy4KCjEuIE1heWJlIGl0IGlzIGJl dHRlciB0byBjbGVhciBpcHNyLlBNSVAgZmlyc3QgYW5kIHRoZW4gaGFuZGxlIHRoZSBwbXUKb3Zm IGlycSBpbiByaXNjdl9pb21tdV9ocG1faXJxX2hhbmRsZXIoKS4gT3RoZXJ3aXNlLCBpZiBhIG5l dyBvdmVyZmxvdwpoYXBwZW5zIGFmdGVyIHRoZSByaXNjdl9pb21tdV9wbXVfaGFuZGxlX2lycSgp IGFuZCBiZWZvcmUgcG1pcCBjbGVhciwKd2Ugd2lsbCBkcm9wIGl0LgoKMi4gVGhlIHBlcmlvZF9s ZWZ0IGNhbiBiZSBtZXNzZWQgaW4gcmlzY3ZfaW9tbXVfcG11X3VwZGF0ZSgpIGFzCnJpc2N2X2lv bW11X3BtdV9nZXRfY291bnRlcigpIGFsd2F5cyByZXR1cm4gdGhlIHdob2xlIHJlZ2lzdGVyIHZh bHVlCndoaWxlIGJpdCA2MyBpbiBocG1jeWNsZSBhY3R1YWxseSBpbmRpY2F0ZXMgd2hldGhlciBv dmVyZmxvdyBoYXBwZW5zCmluc3RlYWQgb2YgY3VycmVudCB2YWx1ZS4gTWF5YmUgdGhlc2UgdHdv IGZ1bmN0aW9ucyBzaG91bGQgYmUKaW1wbGVtZW50ZWQgYXM6CgpzdGF0aWMgdm9pZCByaXNjdl9p b21tdV9wbXVfc2V0X2NvdW50ZXIoc3RydWN0IHJpc2N2X2lvbW11X3BtdSAqcG11LCB1MzIgaWR4 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0IHZhbHVlKQp7CiAg ICAgICAgdm9pZCBfX2lvbWVtICphZGRyID0gcG11LT5yZWcgKyBSSVNDVl9JT01NVV9SRUdfSU9I UE1DWUNMRVM7CgogICAgICAgIGlmIChXQVJOX09OX09OQ0UoaWR4IDwgMCB8fCBpZHggPiBwbXUt Pm51bV9jb3VudGVycykpCiAgICAgICAgICAgICAgICByZXR1cm47CgogICAgICAgIGlmIChpZHgg PT0gMCkKICAgICAgICAgICAgICAgIHZhbHVlID0gKHZhbHVlICYgflJJU0NWX0lPTU1VX0lPSFBN Q1lDTEVTX09GKSB8CiAgICAgICAgICAgICAgICAgICAgICAgIChyZWFkcShhZGRyKSAmIFJJU0NW X0lPTU1VX0lPSFBNQ1lDTEVTX09GKTsKCiAgICAgICAgd3JpdGVxKEZJRUxEX1BSRVAoUklTQ1Zf SU9NTVVfSU9IUE1DVFJfQ09VTlRFUiwgdmFsdWUpLCBhZGRyICsgaWR4ICogOCk7Cn0KCnN0YXRp YyB1NjQgcmlzY3ZfaW9tbXVfcG11X2dldF9jb3VudGVyKHN0cnVjdCByaXNjdl9pb21tdV9wbXUg KnBtdSwgdTMyIGlkeCkKewogICAgICAgIHZvaWQgX19pb21lbSAqYWRkciA9IHBtdS0+cmVnICsg UklTQ1ZfSU9NTVVfUkVHX0lPSFBNQ1lDTEVTOwogICAgICAgIHU2NCB2YWx1ZTsKCiAgICAgICAg aWYgKFdBUk5fT05fT05DRShpZHggPCAwIHx8IGlkeCA+IHBtdS0+bnVtX2NvdW50ZXJzKSkKICAg ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwoKICAgICAgICB2YWx1ZSA9IHJlYWRxKGFkZHIg KyBpZHggKiA4KTsKCiAgICAgICAgaWYgKGlkeCA9PSAwKQogICAgICAgICAgICAgICAgcmV0dXJu IEZJRUxEX0dFVChSSVNDVl9JT01NVV9JT0hQTUNZQ0xFU19DT1VOVEVSLCB2YWx1ZSk7CgogICAg ICAgIHJldHVybiBGSUVMRF9HRVQoUklTQ1ZfSU9NTVVfSU9IUE1DVFJfQ09VTlRFUiwgdmFsdWUp Owp9CgpQbGVhc2UgaWdub3JlIG1lIGlmIHRoZXNlIGlzc3VlcyBoYXZlIGFscmVhZHkgYmVlbiBk aXNjdXNzZWQuCgpCZXN0IHJlZ2FyZHMsCgpYdSBMdQoKT24gVHVlLCBEZWMgMTAsIDIwMjQgYXQg Mzo1NeKAr1BNIHl1bmh1aSBjdWkgPGN1aXl1bmh1aUBieXRlZGFuY2UuY29tPiB3cm90ZToKPgo+ IEFkZCBMdXh1IGluIHRoZSBsb29wLgo+Cj4gT24gRnJpLCBKdW4gMTQsIDIwMjQgYXQgMTA6MjLi gK9QTSBab25nIExpIDx6b25nLmxpQHNpZml2ZS5jb20+IHdyb3RlOgo+ID4KPiA+IFRoaXMgcGF0 Y2ggaW5pdGlhbGl6ZSB0aGUgcG11IHN0dWZmIGFuZCB1bmluaXRpYWxpemUgaXQgd2hlbiBkcml2 ZXIKPiA+IHJlbW92aW5nLiBUaGUgaW50ZXJydXB0IGhhbmRsaW5nIGlzIGFsc28gcHJvdmlkZWQs IHRoaXMgaGFuZGxlciBuZWVkIHRvCj4gPiBiZSBwcmltYXJ5IGhhbmRsZXIgaW5zdGVhZCBvZiB0 aHJlYWQgZnVuY3Rpb24sIGJlY2F1c2UgcHRfcmVncyBpcyBlbXB0eQo+ID4gd2hlbiB0aHJlYWRp bmcgdGhlIElSUSwgYnV0IHB0X3JlZ3MgaXMgbmVjZXNzYXJ5IGJ5IHBlcmZfZXZlbnRfb3ZlcmZs b3cuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogWm9uZyBMaSA8em9uZy5saUBzaWZpdmUuY29tPgo+ ID4gLS0tCj4gPiAgZHJpdmVycy9pb21tdS9yaXNjdi9pb21tdS5jIHwgNjUgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gIDEgZmlsZSBjaGFuZ2VkLCA2NSBpbnNlcnRp b25zKCspCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvcmlzY3YvaW9tbXUuYyBi L2RyaXZlcnMvaW9tbXUvcmlzY3YvaW9tbXUuYwo+ID4gaW5kZXggOGI2YTY0YzFhZDhkLi4xNzE2 YjIyNTFmMzggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2lvbW11L3Jpc2N2L2lvbW11LmMKPiA+ ICsrKyBiL2RyaXZlcnMvaW9tbXUvcmlzY3YvaW9tbXUuYwo+ID4gQEAgLTU0MCw2ICs1NDAsNjIg QEAgc3RhdGljIGlycXJldHVybl90IHJpc2N2X2lvbW11X2ZsdHFfcHJvY2VzcyhpbnQgaXJxLCB2 b2lkICpkYXRhKQo+ID4gICAgICAgICByZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gPiAgfQo+ID4KPiA+ ICsvKgo+ID4gKyAqIElPTU1VIEhhcmR3YXJlIHBlcmZvcm1hbmNlIG1vbml0b3IKPiA+ICsgKi8K PiA+ICsKPiA+ICsvKiBIUE0gaW50ZXJydXB0IHByaW1hcnkgaGFuZGxlciAqLwo+ID4gK3N0YXRp YyBpcnFyZXR1cm5fdCByaXNjdl9pb21tdV9ocG1faXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAq ZGV2X2lkKQo+ID4gK3sKPiA+ICsgICAgICAgc3RydWN0IHJpc2N2X2lvbW11X2RldmljZSAqaW9t bXUgPSAoc3RydWN0IHJpc2N2X2lvbW11X2RldmljZSAqKWRldl9pZDsKPiA+ICsKPiA+ICsgICAg ICAgLyogUHJvY2VzcyBwbXUgaXJxICovCj4gPiArICAgICAgIHJpc2N2X2lvbW11X3BtdV9oYW5k bGVfaXJxKCZpb21tdS0+cG11KTsKPiA+ICsKPiA+ICsgICAgICAgLyogQ2xlYXIgcGVyZm9ybWFu Y2UgbW9uaXRvcmluZyBpbnRlcnJ1cHQgcGVuZGluZyAqLwo+ID4gKyAgICAgICByaXNjdl9pb21t dV93cml0ZWwoaW9tbXUsIFJJU0NWX0lPTU1VX1JFR19JUFNSLCBSSVNDVl9JT01NVV9JUFNSX1BN SVApOwo+ID4gKwo+ID4gKyAgICAgICByZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gPiArfQo+ID4gKwo+ ID4gKy8qIEhQTSBpbml0aWFsaXphdGlvbiAqLwo+ID4gK3N0YXRpYyBpbnQgcmlzY3ZfaW9tbXVf aHBtX2VuYWJsZShzdHJ1Y3QgcmlzY3ZfaW9tbXVfZGV2aWNlICppb21tdSkKPiA+ICt7Cj4gPiAr ICAgICAgIGludCByYzsKPiA+ICsKPiA+ICsgICAgICAgaWYgKCEoaW9tbXUtPmNhcHMgJiBSSVND Vl9JT01NVV9DQVBBQklMSVRJRVNfSFBNKSkKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsK PiA+ICsKPiA+ICsgICAgICAgLyoKPiA+ICsgICAgICAgICogcHRfcmVncyBpcyBlbXB0eSB3aGVu IHRocmVhZGluZyB0aGUgSVJRLCBidXQgcHRfcmVncyBpcyBuZWNlc3NhcnkKPiA+ICsgICAgICAg ICogYnkgcGVyZl9ldmVudF9vdmVyZmxvdy4gVXNlIHByaW1hcnkgaGFuZGxlciBpbnN0ZWFkIG9m IHRocmVhZAo+ID4gKyAgICAgICAgKiBmdW5jdGlvbiBmb3IgUE0gSVJRLgo+ID4gKyAgICAgICAg Kgo+ID4gKyAgICAgICAgKiBTZXQgdGhlIElSUUZfT05FU0hPVCBmbGFnIGJlY2F1c2UgdGhpcyBJ UlEgbWlnaHQgYmUgc2hhcmVkIHdpdGgKPiA+ICsgICAgICAgICogb3RoZXIgdGhyZWFkZWQgSVJR cyBieSBvdGhlciBxdWV1ZXMuCj4gPiArICAgICAgICAqLwo+ID4gKyAgICAgICByYyA9IGRldm1f cmVxdWVzdF9pcnEoaW9tbXUtPmRldiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlvbW11LT5pcnFzW3Jpc2N2X2lvbW11X3F1ZXVlX3ZlYyhpb21tdSwgUklTQ1ZfSU9NTVVfSVBT Ul9QTUlQKV0sCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaXNjdl9pb21tdV9o cG1faXJxX2hhbmRsZXIsIElSUUZfT05FU0hPVCB8IElSUUZfU0hBUkVELCBOVUxMLCBpb21tdSk7 Cj4gPiArICAgICAgIGlmIChyYykKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gcmM7Cj4gPiAr Cj4gPiArICAgICAgIHJldHVybiByaXNjdl9pb21tdV9wbXVfaW5pdCgmaW9tbXUtPnBtdSwgaW9t bXUtPnJlZywgZGV2X25hbWUoaW9tbXUtPmRldikpOwo+ID4gK30KPiA+ICsKPiA+ICsvKiBIUE0g dW5pbml0aWFsaXphdGlvbiAqLwo+ID4gK3N0YXRpYyB2b2lkIHJpc2N2X2lvbW11X2hwbV9kaXNh YmxlKHN0cnVjdCByaXNjdl9pb21tdV9kZXZpY2UgKmlvbW11KQo+ID4gK3sKPiA+ICsgICAgICAg aWYgKCEoaW9tbXUtPmNhcHMgJiBSSVNDVl9JT01NVV9DQVBBQklMSVRJRVNfSFBNKSkKPiA+ICsg ICAgICAgICAgICAgICByZXR1cm47Cj4gPiArCj4gPiArICAgICAgIGRldm1fZnJlZV9pcnEoaW9t bXUtPmRldiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICBpb21tdS0+aXJxc1tyaXNjdl9pb21t dV9xdWV1ZV92ZWMoaW9tbXUsIFJJU0NWX0lPTU1VX0lQU1JfUE1JUCldLAo+ID4gKyAgICAgICAg ICAgICAgICAgICAgIGlvbW11KTsKPiA+ICsKPiA+ICsgICAgICAgcmlzY3ZfaW9tbXVfcG11X3Vu aW5pdCgmaW9tbXUtPnBtdSk7Cj4gPiArfQo+ID4gKwo+ID4gIC8qIExvb2t1cCBhbmQgaW5pdGlh bGl6ZSBkZXZpY2UgY29udGV4dCBpbmZvIHN0cnVjdHVyZS4gKi8KPiA+ICBzdGF0aWMgc3RydWN0 IHJpc2N2X2lvbW11X2RjICpyaXNjdl9pb21tdV9nZXRfZGMoc3RydWN0IHJpc2N2X2lvbW11X2Rl dmljZSAqaW9tbXUsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGRldmlkKQo+ID4gQEAgLTE2MTIsNiArMTY2OCw5IEBAIHZv aWQgcmlzY3ZfaW9tbXVfcmVtb3ZlKHN0cnVjdCByaXNjdl9pb21tdV9kZXZpY2UgKmlvbW11KQo+ ID4gICAgICAgICByaXNjdl9pb21tdV9pb2Rpcl9zZXRfbW9kZShpb21tdSwgUklTQ1ZfSU9NTVVf RERUUF9JT01NVV9NT0RFX09GRik7Cj4gPiAgICAgICAgIHJpc2N2X2lvbW11X3F1ZXVlX2Rpc2Fi bGUoJmlvbW11LT5jbWRxKTsKPiA+ICAgICAgICAgcmlzY3ZfaW9tbXVfcXVldWVfZGlzYWJsZSgm aW9tbXUtPmZsdHEpOwo+ID4gKwo+ID4gKyAgICAgICBpZiAoaW9tbXUtPmNhcHMgJiBSSVNDVl9J T01NVV9DQVBBQklMSVRJRVNfSFBNKQo+ID4gKyAgICAgICAgICAgICAgIHJpc2N2X2lvbW11X3Bt dV91bmluaXQoJmlvbW11LT5wbXUpOwo+ID4gIH0KPiA+Cj4gPiAgaW50IHJpc2N2X2lvbW11X2lu aXQoc3RydWN0IHJpc2N2X2lvbW11X2RldmljZSAqaW9tbXUpCj4gPiBAQCAtMTY1MSw2ICsxNzEw LDEwIEBAIGludCByaXNjdl9pb21tdV9pbml0KHN0cnVjdCByaXNjdl9pb21tdV9kZXZpY2UgKmlv bW11KQo+ID4gICAgICAgICBpZiAocmMpCj4gPiAgICAgICAgICAgICAgICAgZ290byBlcnJfcXVl dWVfZGlzYWJsZTsKPiA+Cj4gPiArICAgICAgIHJjID0gcmlzY3ZfaW9tbXVfaHBtX2VuYWJsZShp b21tdSk7Cj4gPiArICAgICAgIGlmIChyYykKPiA+ICsgICAgICAgICAgICAgICBnb3RvIGVycl9o cG1fZGlzYWJsZTsKPiA+ICsKPiA+ICAgICAgICAgcmMgPSBpb21tdV9kZXZpY2Vfc3lzZnNfYWRk KCZpb21tdS0+aW9tbXUsIE5VTEwsIE5VTEwsICJyaXNjdi1pb21tdUAlcyIsCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZfbmFtZShpb21tdS0+ZGV2KSk7Cj4gPiAg ICAgICAgIGlmIChyYykgewo+ID4gQEAgLTE2NjksNiArMTczMiw4IEBAIGludCByaXNjdl9pb21t dV9pbml0KHN0cnVjdCByaXNjdl9pb21tdV9kZXZpY2UgKmlvbW11KQo+ID4gIGVycl9yZW1vdmVf c3lzZnM6Cj4gPiAgICAgICAgIGlvbW11X2RldmljZV9zeXNmc19yZW1vdmUoJmlvbW11LT5pb21t dSk7Cj4gPiAgZXJyX2lvZGlyX29mZjoKPiA+ICsgICAgICAgcmlzY3ZfaW9tbXVfaHBtX2Rpc2Fi bGUoaW9tbXUpOwo+ID4gK2Vycl9ocG1fZGlzYWJsZToKPiA+ICAgICAgICAgcmlzY3ZfaW9tbXVf aW9kaXJfc2V0X21vZGUoaW9tbXUsIFJJU0NWX0lPTU1VX0REVFBfSU9NTVVfTU9ERV9PRkYpOwo+ ID4gIGVycl9xdWV1ZV9kaXNhYmxlOgo+ID4gICAgICAgICByaXNjdl9pb21tdV9xdWV1ZV9kaXNh YmxlKCZpb21tdS0+Zmx0cSk7Cj4gPiAtLQo+ID4gMi4xNy4xCj4gPgo+ID4KPgo+IFRoYW5rcywK PiBZdW5odWkKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK