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 F0B67CA0FF8 for ; Sat, 2 Sep 2023 04:54:06 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=vWC31Y5cLrcXQOKgQXHJISZRXuhvGagJXSkXaf0VpWs=; b=rMeAc4dqfP5ev7 pIk/hFM6PPRN22VO3azsPrhts2a+d5oBfjeEY7DcZGTMWN6/xsvsBSZ0hhCizXl2EClDaATOsD6/j UGBWvgt0VTDHlDcIfP79L7nVVwzmurjuo4Hjw50MCVglrJjunrfGrKzmKZpSJBPpixqCB3uODeBf/ +i7Y+s6Ogl1E9Qxm+hrlhkKtOZNrrag1EVEsmJZkR7JWtCDT3c5jkWKKpxAQjJeSlUQs8Myb5FtTl kcCPwNR7zCA7VlFcR/TENhqpU3JedIryjiRbO4AZRKfd1nqaiXC/saXCA55q4A09F+7pnmfsJwDgP tvtQOF3zt/dNbePTPRdw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qcIdk-00140t-06; Sat, 02 Sep 2023 04:53:44 +0000 Received: from mail-qk1-x734.google.com ([2607:f8b0:4864:20::734]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qcIdg-00140I-2C for linux-arm-kernel@lists.infradead.org; Sat, 02 Sep 2023 04:53:42 +0000 Received: by mail-qk1-x734.google.com with SMTP id af79cd13be357-76ef8b91a72so161540885a.0 for ; Fri, 01 Sep 2023 21:53:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1693630419; x=1694235219; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=mSrdqkK/YWmlh3vCPMhy+g/xG+srgnlt8Tk8MZ4U6lw=; b=U2sZbVCDMx/zVYM2c67U9fGxUdgNlh1Ia64rIw34a4eZw+qicALdp6IN2csPnhZOcs rNWRY/kddS4jmmWkfEZQbciHoJEwVIPXkcBwiD1oMRT+eD7C/1j0WLf95/+9p6u2AvJx w4pkjCxAlAB93Ye+isM/H7mpj2d05ROGYfDXDaCSjGGM+NQEQAPCAU4Tx4LOWr/3GDYv AM1dghPVwxkAQduPpQtKgokfWcnST0lelAbgL2/aCbLqlxHOZ3YSgJztCepq9A4An7uT pWXQXNH2WXB+YjZKlNsWTOincCSZ5YfLbFbrDFvlBplcn1DtDxmeCM6Ze/GwnjEziDc4 LtNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693630419; x=1694235219; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mSrdqkK/YWmlh3vCPMhy+g/xG+srgnlt8Tk8MZ4U6lw=; b=URS/wOABtzPhGiQo7ARR3lVwD6EPjk+vgOxhgg7/0D78e+ic0ZIsnIVz6ZPZcaR5PY HHwgP4kvTj33+0RFMiWqxQ0RM94QBLYC+o39O1R1hRyxXleV8AwBDK7z0wNPWAn9x8XY JdYoCKaJ4Gna3q1eeLFIXIoEwE2TJph/QRFAHlIRGXPT8Rh6bnBkZti8G5xitvmuNgBY DwiCIb6ESx6xVcF7GM+ukUojUHTGbmh47bnij8aS0KrsGmAH2+Y2/UK0y2E06fsUq7hT 0UfEsEcS1NeRO2NCqszIqpqZom8QDP1/Br+Vx9iTY0sYQxKdaY5hQybsXRGhl95nwMVy UTEA== X-Gm-Message-State: AOJu0Yzvwqt6y9XevEPQLyWoANuTsuNarI9wHBluQ201REOEaG615ozY zPMjDycWGdXQNFZAYd21Q7hx X-Google-Smtp-Source: AGHT+IGqrcIpxRkoq9FWOnm8ggRiN0EmtrGNqwZRIcpgch1RX8Lec7OaIvtoqd+eHR15wKkD43mpHQ== X-Received: by 2002:a05:620a:11b7:b0:76f:1742:2f6c with SMTP id c23-20020a05620a11b700b0076f17422f6cmr4567182qkk.66.1693630418878; Fri, 01 Sep 2023 21:53:38 -0700 (PDT) Received: from thinkpad ([117.217.187.8]) by smtp.gmail.com with ESMTPSA id c2-20020a639602000000b0056365ee8603sm3627992pge.67.2023.09.01.21.53.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 01 Sep 2023 21:53:38 -0700 (PDT) Date: Sat, 2 Sep 2023 10:23:28 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: tglx@linutronix.de, aisheng.dong@nxp.com, bhelgaas@google.com, devicetree@vger.kernel.org, festevam@gmail.com, imx@lists.linux.dev, jdmason@kudzu.us, kernel@pengutronix.de, kishon@ti.com, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lorenzo.pieralisi@arm.com, lpieralisi@kernel.org, maz@kernel.org, ntb@lists.linux.dev, peng.fan@nxp.com, robh+dt@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: Re: [PATCH 1/3] PCI: endpoint: Add RC-to-EP doorbell support using platform MSI controller Message-ID: <20230902045328.GB2913@thinkpad> References: <20230426203436.1277307-1-Frank.Li@nxp.com> <20230426203436.1277307-2-Frank.Li@nxp.com> <20230902045214.GA2913@thinkpad> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230902045214.GA2913@thinkpad> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230901_215340_723158_0E6C6FDD X-CRM114-Status: GOOD ( 41.33 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gU2F0LCBTZXAgMDIsIDIwMjMgYXQgMTA6MjI6MjVBTSArMDUzMCwgTWFuaXZhbm5hbiBTYWRo YXNpdmFtIHdyb3RlOgo+IE9uIFdlZCwgQXByIDI2LCAyMDIzIGF0IDA0OjM0OjM0UE0gLTA0MDAs IEZyYW5rIExpIHdyb3RlOgo+ID4gVGhpcyBjb21taXQgaW50cm9kdWNlcyBhIGNvbW1vbiBtZXRo b2QgZm9yIHNlbmRpbmcgbWVzc2FnZXMgZnJvbSB0aGUgUm9vdCBDb21wbGV4Cj4gPiAoUkMpIHRv IHRoZSBFbmRwb2ludCAoRVApIGJ5IHV0aWxpemluZyB0aGUgcGxhdGZvcm0gTVNJIGludGVycnVw dCBjb250cm9sbGVyLAo+ID4gc3VjaCBhcyBBUk0gR0lDLCBhcyBhbiBFUCBkb29yYmVsbC4gTWFw cyB0aGUgbWVtb3J5IGFzc2lnbmVkIGZvciB0aGUgQkFSIHJlZ2lvbgo+ID4gYnkgdGhlIFBDSSBo b3N0IHRvIHRoZSBtZXNzYWdlIGFkZHJlc3Mgb2YgdGhlIHBsYXRmb3JtIE1TSSBpbnRlcnJ1cHQg Y29udHJvbGxlcgo+ID4gaW4gdGhlIFBDSSBFUC4gQXMgYSByZXN1bHQsIHdoZW4gdGhlIFBDSSBS QyB3cml0ZXMgdG8gdGhlIEJBUiByZWdpb24sIGl0IHRyaWdnZXJzCj4gPiBhbiBJUlEgYXQgdGhl IEVQLiBUaGlzIGltcGxlbWVudGF0aW9uIHNlcnZlcyBhcyBhIGNvbW1vbiBtZXRob2QgZm9yIGFs bCBlbmRwb2ludAo+ID4gZnVuY3Rpb24gZHJpdmVycy4KPiA+IAo+ID4gSG93ZXZlciwgaXQgY3Vy cmVudGx5IHN1cHBvcnRzIG9ubHkgb25lIEVQIHBoeXNpY2FsIGZ1bmN0aW9uIGR1ZSB0byBsaW1p dGF0aW9ucwo+ID4gaW4gQVJNIE1TSS9JTVMgcmVhZGluZXNzLgo+ID4gCj4gCj4gSSd2ZSBwcm92 aWRlZCBnZW5lcmljIGNvbW1lbnRzIGJlbG93LCBidXQgSSB3aWxsIGRvIG9uZSBtb3JlIHRob3Jv dWdoIHJldmlldwo+IGFmdGVyIHNlZWluZyBlcGYtdGVzdCBkcml2ZXIgcGF0Y2guCj4gCj4gPiBT aWduZWQtb2ZmLWJ5OiBGcmFuayBMaSA8RnJhbmsuTGlAbnhwLmNvbT4KPiA+IC0tLQo+ID4gIGRy aXZlcnMvcGNpL2VuZHBvaW50L3BjaS1lcGYtY29yZS5jIHwgMTA5ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysKPiA+ICBpbmNsdWRlL2xpbnV4L3BjaS1lcGYuaCAgICAgICAgICAgICB8ICAx NiArKysrCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5zZXJ0aW9ucygrKQo+ID4gCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvZW5kcG9pbnQvcGNpLWVwZi1jb3JlLmMgYi9kcml2ZXJz L3BjaS9lbmRwb2ludC9wY2ktZXBmLWNvcmUuYwo+ID4gaW5kZXggMzU1YTZmNTZmY2VhLi45NGFj ODJiZjg0YzUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL3BjaS9lbmRwb2ludC9wY2ktZXBmLWNv cmUuYwo+ID4gKysrIGIvZHJpdmVycy9wY2kvZW5kcG9pbnQvcGNpLWVwZi1jb3JlLmMKPiA+IEBA IC02LDEwICs2LDEyIEBACj4gPiAgICogQXV0aG9yOiBLaXNob24gVmlqYXkgQWJyYWhhbSBJIDxr aXNob25AdGkuY29tPgo+ID4gICAqLwo+ID4gIAo+ID4gKyNpbmNsdWRlIDxsaW51eC9pcnFyZXR1 cm4uaD4KPiAKPiBXaHkgaXMgdGhpcyBuZWVkZWQ/Cj4gCj4gPiAgI2luY2x1ZGUgPGxpbnV4L2Rl dmljZS5oPgo+ID4gICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgo+ID4gICNpbmNsdWRl IDxsaW51eC9zbGFiLmg+Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ID4gKyNpbmNs dWRlIDxsaW51eC9tc2kuaD4KPiA+ICAKPiA+ICAjaW5jbHVkZSA8bGludXgvcGNpLWVwYy5oPgo+ ID4gICNpbmNsdWRlIDxsaW51eC9wY2ktZXBmLmg+Cj4gPiBAQCAtMzAwLDYgKzMwMiwxMTMgQEAg dm9pZCAqcGNpX2VwZl9hbGxvY19zcGFjZShzdHJ1Y3QgcGNpX2VwZiAqZXBmLCBzaXplX3Qgc2l6 ZSwgZW51bSBwY2lfYmFybm8gYmFyLAo+ID4gIH0KPiA+ICBFWFBPUlRfU1lNQk9MX0dQTChwY2lf ZXBmX2FsbG9jX3NwYWNlKTsKPiA+ICAKPiA+ICtzdGF0aWMgZW51bSBpcnFyZXR1cm4gcGNpX2Vw Zl9pbnRlcnJ1cHRfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkYXRhKQo+IAo+IHN0YXRpYyBpcnFy ZXR1cm5fdAo+IAo+IHMvcGNpX2VwZl9pbnRlcnJ1cHRfaGFuZGxlci9wY2lfZXBmX2Rvb3JiZWxs X2hhbmRsZXIKPiAKPiA+ICt7Cj4gPiArCXN0cnVjdCBwY2lfZXBmICplcGYgPSBkYXRhOwo+ID4g Kwo+ID4gKwlpZiAoZXBmLT5ldmVudF9vcHMgJiYgZXBmLT5ldmVudF9vcHMtPmRvb3JiZWxsKQo+ ID4gKwkJZXBmLT5ldmVudF9vcHMtPmRvb3JiZWxsKGVwZiwgaXJxIC0gZXBmLT52aXJxX2Jhc2Up Owo+ID4gKwo+ID4gKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRp YyB2b2lkIHBjaV9lcGZfd3JpdGVfbXNpX21zZyhzdHJ1Y3QgbXNpX2Rlc2MgKmRlc2MsIHN0cnVj dCBtc2lfbXNnICptc2cpCj4gPiArewo+ID4gKwlzdHJ1Y3QgcGNpX2VwYyAqZXBjID0gY29udGFp bmVyX29mKGRlc2MtPmRldiwgc3RydWN0IHBjaV9lcGMsIGRldik7Cj4gPiArCXN0cnVjdCBwY2lf ZXBmICplcGY7Cj4gPiArCj4gPiArCS8qIFRvZG86IE5lZWQgY2hlY2sgY29ycmVjdCBlcGYgaWYg bXVsdGkgZXBmIHN1cHBvcnRlZCAqLwo+ID4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVwZiwgJmVw Yy0+cGNpX2VwZiwgbGlzdCkgewo+ID4gKwkJaWYgKGVwZi0+bXNnICYmIGRlc2MtPm1zaV9pbmRl eCA8IGVwZi0+bnVtX21zZ3MpCj4gPiArCQkJZXBmLT5tc2dbZGVzYy0+bXNpX2luZGV4XSA9ICpt c2c7Cj4gPiArCX0KPiA+ICt9Cj4gPiArCj4gPiAraW50IHBjaV9lcGZfYWxsb2NfZG9vcmJlbGwo c3RydWN0IHBjaV9lcGYgKmVwZiwgdTE2IG51bV9tc2dzKQo+ID4gK3sKPiA+ICsJc3RydWN0IGly cV9kb21haW4gKmRvbWFpbjsKPiA+ICsJc3RydWN0IHBjaV9lcGMgKmVwYzsKPiA+ICsJc3RydWN0 IGRldmljZSAqZGV2Owo+ID4gKwlpbnQgdmlycTsKPiA+ICsJaW50IHJldDsKPiA+ICsJaW50IGk7 Cj4gPiArCj4gPiArCWVwYyA9IGVwZi0+ZXBjOwo+ID4gKwlkZXYgPSAmZXBjLT5kZXY7Cj4gCj4g ImVwY19kZXYiIHRvIG1ha2UgaXQgZXhwbGljaXQKPiAKPiA+ICsKPiA+ICsJLyoKPiA+ICsJICog Q3VycmVudCBvbmx5IHN1cHBvcnQgMSBmdW5jdGlvbi4KPiAKPiBXaGF0IGRvZXMgdGhpcyBtZWFu IGV4YWN0bHk/IEV2ZW4gYSBzaW5nbGUgRVBDIGNhbiBzdXBwb3J0IG11bHRpcGxlIEVQRnMKPiAK ClBsZWFzZSBpZ25vcmUgYWJvdmUgY29tbWVudC4KCi0gTWFuaQoKPiA+ICsJICogUENJIElNUyhp bnRlcnJ1cHQgbWVzc2FnZSBzdG9yZSkgQVJNIHN1cHBvcnQgaGF2ZSBub3QgYmVlbgo+ID4gKwkg KiByZWFkeSB5ZXQuCj4gCj4gTm8gbmVlZCB0byBtZW50aW9uIHBsYXRmb3JtIGlycSBjb250cm9s bGVyIG5hbWUuCj4gCj4gPiArCSAqLwo+ID4gKwlpZiAoZXBjLT5mdW5jdGlvbl9udW1fbWFwICE9 IDEpCj4gCj4gV2h5IGNhbid0IHlvdSB1c2UsIGVwZi0+ZnVuY19ubz8KPiAKPiA+ICsJCXJldHVy biAtRU9QTk9UU1VQUDsKPiA+ICsKPiA+ICsJZG9tYWluID0gZGV2X2dldF9tc2lfZG9tYWluKGRl di0+cGFyZW50KTsKPiA+ICsJaWYgKCFkb21haW4pCj4gPiArCQlyZXR1cm4gLUVPUE5UU1VQUDsK PiAKPiBOZXdsaW5lCj4gCj4gPiArCWRldl9zZXRfbXNpX2RvbWFpbihkZXYsIGRvbWFpbik7Cj4g PiArCj4gPiArCS8qIHVzZSBwYXJlbnQgb2Zfbm9kZSB0byBnZXQgZGV2aWNlIGlkIGluZm9ybWF0 aW9uICovCj4gPiArCWRldi0+b2Zfbm9kZSA9IGRldi0+cGFyZW50LT5vZl9ub2RlOwo+ID4gKwo+ IAo+IFdoeSBkbyB5b3UgbmVlZCBvZl9ub2RlIGFzc2lnbm1lbnQgaW5zaWRlIEVQRiBjb3JlPwo+ IAo+ID4gKwllcGYtPm1zZyA9IGtjYWxsb2MobnVtX21zZ3MsIHNpemVvZihzdHJ1Y3QgbXNpX21z ZyksIEdGUF9LRVJORUwpOwo+ID4gKwlpZiAoIWVwZi0+bXNnKQo+ID4gKwkJcmV0dXJuIC1FTk9N RU07Cj4gPiArCj4gPiArCWVwZi0+bnVtX21zZ3MgPSBudW1fbXNnczsKPiA+ICsKPiAKPiBNb3Zl IHRoaXMgdG8gdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbiwgYWZ0ZXIgY2hlY2tzLgo+IAo+ID4g KwlyZXQgPSBwbGF0Zm9ybV9tc2lfZG9tYWluX2FsbG9jX2lycXMoZGV2LCBudW1fbXNncywgcGNp X2VwZl93cml0ZV9tc2lfbXNnKTsKPiA+ICsJaWYgKHJldCkgewo+ID4gKwkJZGV2X2VycihkZXYs ICJDYW4ndCBhbGxvY2F0ZSBNU0kgZnJvbSBzeXN0ZW0gTVNJIGNvbnRyb2xsZXJcbiIpOwo+IAo+ ICJGYWlsZWQgdG8gYWxsb2NhdGUgTVNJIgo+IAo+ID4gKwkJZ290byBlcnJfbWVtOwo+IAo+IGVy cl9mcmVlX21lbQo+IAo+ID4gKwl9Cj4gPiArCj4gPiArCWZvciAoaSA9IDA7IGkgPCBudW1fbXNn czsgaSsrKSB7Cj4gPiArCQl2aXJxID0gbXNpX2dldF92aXJxKGRldiwgaSk7Cj4gPiArCQlpZiAo aSA9PSAwKQo+ID4gKwkJCWVwZi0+dmlycV9iYXNlID0gdmlycTsKPiA+ICsKPiA+ICsJCXJldCA9 IHJlcXVlc3RfaXJxKHZpcnEsIHBjaV9lcGZfaW50ZXJydXB0X2hhbmRsZXIsIDAsCj4gPiArCQkJ CSAgInBjaS1lcGYtZG9vcmJlbGwiLCBlcGYpOwo+IAo+IElSUSBuYW1lIHNob3VsZCBoYXZlIGFu IGluZGV4LCBvdGhlcndpc2UgYWxsIG9mIHRoZW0gd2lsbCBoYXZlIHRoZSBzYW1lIG5hbWUuCj4g Cj4gPiArCj4gPiArCQlpZiAocmV0KSB7Cj4gPiArCQkJZGV2X2VycihkZXYsICJGYWlsdXJlIHJl cXVlc3QgZG9vcmJlbGwgSVJRXG4iKTsKPiAKPiAiRmFpbGVkIHRvIHJlcXVlc3QgZG9vcmJlbGwi Cj4gCj4gPiArCQkJZ290byBlcnJfaXJxOwo+IAo+IGVycl9mcmVlX2lycQo+IAo+ID4gKwkJfQo+ ID4gKwl9Cj4gPiArCj4gPiArCWVwZi0+bnVtX21zZ3MgPSBudW1fbXNnczsKPiAKPiBOZXdsaW5l Cj4gCj4gPiArCXJldHVybiByZXQ7Cj4gPiArCj4gPiArZXJyX2lycToKPiA+ICsJcGxhdGZvcm1f bXNpX2RvbWFpbl9mcmVlX2lycXMoZGV2KTsKPiA+ICtlcnJfbWVtOgo+ID4gKwlrZnJlZShlcGYt Pm1zZyk7Cj4gPiArCWVwZi0+bXNnID0gTlVMTDsKPiA+ICsJZXBmLT5udW1fbXNncyA9IDA7Cj4g PiArCj4gPiArCXJldHVybiByZXQ7Cj4gPiArfQo+ID4gK0VYUE9SVF9TWU1CT0xfR1BMKHBjaV9l cGZfYWxsb2NfZG9vcmJlbGwpOwo+ID4gKwo+ID4gK3ZvaWQgcGNpX2VwZl9mcmVlX2Rvb3JiZWxs KHN0cnVjdCBwY2lfZXBmICplcGYpCj4gPiArewo+ID4gKwlzdHJ1Y3QgcGNpX2VwYyAqZXBjOwo+ ID4gKwlpbnQgaTsKPiA+ICsKPiA+ICsJZXBjID0gZXBmLT5lcGM7Cj4gPiArCj4gPiArCWZvciAo aSA9IDA7IGkgPCBlcGYtPm51bV9tc2dzOyBpKyspCj4gPiArCQlmcmVlX2lycShlcGYtPnZpcnFf YmFzZSArIGksIGVwZik7Cj4gPiArCj4gPiArCXBsYXRmb3JtX21zaV9kb21haW5fZnJlZV9pcnFz KCZlcGMtPmRldik7Cj4gPiArCWtmcmVlKGVwZi0+bXNnKTsKPiA+ICsJZXBmLT5tc2cgPSBOVUxM Owo+ID4gKwllcGYtPm51bV9tc2dzID0gMDsKPiA+ICt9Cj4gPiArRVhQT1JUX1NZTUJPTF9HUEwo cGNpX2VwZl9mcmVlX2Rvb3JiZWxsKTsKPiA+ICsKPiA+ICBzdGF0aWMgdm9pZCBwY2lfZXBmX3Jl bW92ZV9jZnMoc3RydWN0IHBjaV9lcGZfZHJpdmVyICpkcml2ZXIpCj4gPiAgewo+ID4gIAlzdHJ1 Y3QgY29uZmlnX2dyb3VwICpncm91cCwgKnRtcDsKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L3BjaS1lcGYuaCBiL2luY2x1ZGUvbGludXgvcGNpLWVwZi5oCj4gPiBpbmRleCBiODQ0MWRi MmZhNTIuLmUxODdlM2VlNDhkMiAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvbGludXgvcGNpLWVw Zi5oCj4gPiArKysgYi9pbmNsdWRlL2xpbnV4L3BjaS1lcGYuaAo+ID4gQEAgLTc1LDYgKzc1LDcg QEAgc3RydWN0IHBjaV9lcGZfb3BzIHsKPiA+ICBzdHJ1Y3QgcGNpX2VwY19ldmVudF9vcHMgewo+ ID4gIAlpbnQgKCpjb3JlX2luaXQpKHN0cnVjdCBwY2lfZXBmICplcGYpOwo+ID4gIAlpbnQgKCps aW5rX3VwKShzdHJ1Y3QgcGNpX2VwZiAqZXBmKTsKPiA+ICsJaW50ICgqZG9vcmJlbGwpKHN0cnVj dCBwY2lfZXBmICplcGYsIGludCBpbmRleCk7Cj4gPiAgfTsKPiA+ICAKPiA+ICAvKioKPiA+IEBA IC0xNzMsNiArMTc0LDkgQEAgc3RydWN0IHBjaV9lcGYgewo+ID4gIAl1bnNpZ25lZCBsb25nCQl2 ZnVuY3Rpb25fbnVtX21hcDsKPiA+ICAJc3RydWN0IGxpc3RfaGVhZAlwY2lfdmVwZjsKPiA+ICAJ Y29uc3Qgc3RydWN0IHBjaV9lcGNfZXZlbnRfb3BzICpldmVudF9vcHM7Cj4gPiArCXN0cnVjdCBt c2lfbXNnICptc2c7Cj4gPiArCXUxNiBudW1fbXNnczsKPiA+ICsJaW50IHZpcnFfYmFzZTsKPiA+ ICB9Owo+ID4gIAo+ID4gIC8qKgo+ID4gQEAgLTIxNiw0ICsyMjAsMTYgQEAgaW50IHBjaV9lcGZf YmluZChzdHJ1Y3QgcGNpX2VwZiAqZXBmKTsKPiA+ICB2b2lkIHBjaV9lcGZfdW5iaW5kKHN0cnVj dCBwY2lfZXBmICplcGYpOwo+ID4gIGludCBwY2lfZXBmX2FkZF92ZXBmKHN0cnVjdCBwY2lfZXBm ICplcGZfcGYsIHN0cnVjdCBwY2lfZXBmICplcGZfdmYpOwo+ID4gIHZvaWQgcGNpX2VwZl9yZW1v dmVfdmVwZihzdHJ1Y3QgcGNpX2VwZiAqZXBmX3BmLCBzdHJ1Y3QgcGNpX2VwZiAqZXBmX3ZmKTsK PiA+ICtpbnQgcGNpX2VwZl9hbGxvY19kb29yYmVsbChzdHJ1Y3QgcGNpX2VwZiAqZXBmLCB1MTYg bnVtcyk7Cj4gPiArdm9pZCBwY2lfZXBmX2ZyZWVfZG9vcmJlbGwoc3RydWN0IHBjaV9lcGYgKmVw Zik7Cj4gPiArCj4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgbXNpX21zZyAqZXBmX2dldF9tc2co c3RydWN0IHBjaV9lcGYgKmVwZikKPiA+ICt7Cj4gPiArCXJldHVybiBlcGYtPm1zZzsKPiA+ICt9 Cj4gPiArCj4gPiArc3RhdGljIGlubGluZSB1MTYgZXBmX2dldF9tc2dfbnVtKHN0cnVjdCBwY2lf ZXBmICplcGYpCj4gPiArewo+ID4gKwlyZXR1cm4gZXBmLT5udW1fbXNnczsKPiA+ICt9Cj4gCj4g SSBkb24ndCBzZWUgYSBuZWVkIGZvciB0aGVzZSB0d28gZnVuY3Rpb25zIGFzIHRoZXkgYXJlIGRv aW5nIGp1c3QgZGVyZWZlcmVuY2VzLgo+IAo+IC0gTWFuaQo+IAo+ID4gICNlbmRpZiAvKiBfX0xJ TlVYX1BDSV9FUEZfSCAqLwo+ID4gLS0gCj4gPiAyLjM0LjEKPiA+IAo+IAo+IC0tIAo+IOCuruCu o+Cuv+CuteCuo+CvjeCuo+CuqeCvjSDgrprgrqTgrr7grprgrr/grrXgrq7gr40KCi0tIArgrq7g rqPgrr/grrXgrqPgr43grqPgrqngr40g4K6a4K6k4K6+4K6a4K6/4K614K6u4K+NCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==