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 884B2C001DF for ; Wed, 2 Aug 2023 04:28:31 +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=EMvQNjSeBRge7p9lhWQF23AL4OP11jwzsIJMeFKMnqw=; b=Qryhu+yHseW82/ iHcCHuYr8GVZLwUTHO/jdQA367HoYrLZZeTPdpjv8A+mpoPNYnwv+zBwe4SHOmGSvGlT3Gs3YKVAX 8Wg6iJN7dMr+7V07Y+v78MAuQpmmJbfOAXF6RGrGTAUioz2gGttLOcu77x46dh2waMn7y/nyMq5vP tjfhq2znb1ZKjTJPoT3HTePAUpvrrzc7tONJd1PWyRR3ABMqPWJvhQ5ZuC+YcxFaKw3jgWOlhP5bW U2sACN6lqAZWb29NdLLRV42On6dbPplfEpnz/eoTx956pu24c7bG0LiIpcZkKLNv2w+kdQsI6cnWL Q1OTm9m3qCEYuMLIVjLQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qR3Ss-003x8w-2F; Wed, 02 Aug 2023 04:28:02 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qR3Sp-003x8V-11 for linux-arm-kernel@lists.infradead.org; Wed, 02 Aug 2023 04:28:01 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 80FCA61714; Wed, 2 Aug 2023 04:27:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D64E7C433C8; Wed, 2 Aug 2023 04:27:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690950475; bh=ARGKpRK5ccFF2WBp3+o3ZTCFCi+lfX0QrM54lqQi0UI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=kRG+gKVSB7Mblt8WIHhzCa/OClFhK1yeWc5s+AthWAvAdW5Ta+iCcOvQR2KKRlr86 xpinFfXVKCXYpA0j/LtQ45hIK2rXuaTd+DKKJTOBYvM5Mq/U3NXOrhhqwfATdw+a5n jAM46Dau1s3Y78/ZzWy1IqRt1ch0MxzpY8OzBWPvzFHy9wMvqtoA7Idk7pdrlJEv1u s3ek3MEVhjX6GyvL7AsWPVB4WsYackSprXdvCoyu1bl/cor0/1sYvyoFefEs2NkaQN GvL4BZ/a3NF4qMCFoDp+IDVz+Lr3u+l11m7AbnZLSbeEfN3WXVk7u1XFUYIH9NaOP5 gW4pO65QuhDPg== Date: Wed, 2 Aug 2023 09:57:38 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: lpieralisi@kernel.org, bhelgaas@google.com, devicetree@vger.kernel.org, gustavo.pimentel@synopsys.com, helgaas@kernel.org, imx@lists.linux.dev, kw@linux.com, leoyang.li@nxp.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, manivannan.sadhasivam@linaro.org, minghuan.lian@nxp.com, mingkai.hu@nxp.com, robh+dt@kernel.org, roy.zang@nxp.com, shawnguo@kernel.org, zhiqiang.hou@nxp.com Subject: Re: [PATCH v6 1/2] PCI: dwc: Implement general suspend/resume functionality for L2/L3 transitions Message-ID: <20230802042738.GD2370@thinkpad> References: <20230731194010.73016-1-Frank.Li@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20230731194010.73016-1-Frank.Li@nxp.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230801_212759_457765_5EF8309D X-CRM114-Status: GOOD ( 28.89 ) 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 T24gTW9uLCBKdWwgMzEsIDIwMjMgYXQgMDM6NDA6MDlQTSAtMDQwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gSW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbiBkd19wY2llX2dldF9sdHNzbSB0byByZXRyaWV2 ZSBTTUxIX0xUU1NfU1RBVEUuCj4gCj4gQWRkIGNhbGxiYWNrIC5wbWVfdHVybl9vZmYgYW5kIC5l eGl0X2Zyb21fbDIgZm9yIHBsYXRmb3JtIHNwZWNpZmljIFBNRQo+IGhhbmRsZS4KCnMvaGFuZGxl L2hhbmRsaW5nCgo+IAo+IEFkZCBjb21tb24gZHdfcGNpZV9zdXNwZW5kKHJlc3VtZSlfbm9pcnEo KSBBUEkgdG8gYXZvaWQgZHVwbGljYXRlZCBjb2RlCj4gaW4gZHdjIHBjaSBob3N0IGNvbnRyb2xs ZXIgcGxhdGZvcm0gZHJpdmVyLgo+IAo+IFR5cGljYWwgTDIgZW50cnkgd29ya2Zsb3cvZHdfcGNp ZV9zdXNwZW5kX25vaXJxKCkKPiAKPiAxLiBUcmFuc21pdCBQTUUgdHVybiBvZmYgc2lnbmFsIHRv IFBDSSBkZXZpY2VzIGFuZCB3YWl0IGZvciBQTUVfVG9fQWNrLgo+IDIuIEF3YWl0IGxpbmsgZW50 ZXJpbmcgTDJfSURMRSBzdGF0ZS4KPiAKPiBUeXBpY2FsIEwyIGV4aXQgd29ya2Zsb3cvZHdfcGNp ZV9yZXN1bWVfbm9pcnEoKQo+IAo+IDEuIElzc3VlIGV4aXQgZnJvbSBMMiBjb21tYW5kLgo+IDIu IFJlaW5pdGlhbGl6ZSBQQ0kgaG9zdC4KPiAzLiBXYWl0IGZvciBsaW5rIHRvIGJlY29tZSBhY3Rp dmUuCj4gCj4gU2lnbmVkLW9mZi1ieTogRnJhbmsgTGkgPEZyYW5rLkxpQG54cC5jb20+Cj4gLS0t Cj4gQ2hhbmdlIGZyb20gdjUgdG8gdjY6Cj4gLSByZWZpbmUgY29tbWl0IG1lc3NhZ2UKPiAgIGNo YW5nZSBhY2NvcmRpbmcgdG8gTWFuaXZhbm5hbidzIGNvbW1lbnRzLgo+ICAgLSByZW1vdmUgcmVk dW5jYXRlIHN0ZXAgZHdfcGNpZV9zZXRfZHN0YXRlKCkKPiAgIC0gcmV0dXJuIDAgd2hlbiAucG1l X3R1cm5fb2ZmIGlzIHplcm8KPiAgIC0gY2FsbCBob3N0X2RlaW5pdCgpIGluIHN1c3BlbmQKPiAg IC0gY2hlY2sgLmhvc3RfZGVpbml0IGFuZCAuaG9zdF9pbml0IHBvaW50IGJlZm9yZSBjYWxsLgo+ IAo+IENoYW5nZSBmcm9tIHY0IHRvIHY1Ogo+IC0gQ2xvc2VzOiBodHRwczovL2xvcmUua2VybmVs Lm9yZy9vZS1rYnVpbGQtYWxsLzIwMjMwNzIxMTkwNC56RXh3NFE4SC1sa3BAaW50ZWwuY29tLwo+ IENoYW5nZSBmcm9tIHYzIHRvIHY0Ogo+IC0gY2hhbmdlIGFjY29yZGluZyB0byBNYW5pdmFubmFu J3MgY29tbWVudHMuCj4gICBJIGhvcGUgSSBoYXZlIG5vdCBtaXNzZWQgYW55dGhpbmcuIHF1aXRl IGxvbmcgZGlzY3VzcyB0aHJlYWQKPiBDaGFuZ2UgZnJvbSB2MiB0byB2MzoKPiAtIEJhc2ljIHJl d3JpdGUgd2hvbGUgcGF0Y2ggYWNjb3JkaW5nIHJvYiBoZXJyeSBzdWdnZXN0aW9uLgo+ICAgcHV0 IGNvbW1vbiBmdW5jdGlvbiBpbnRvIGR3Yywgc28gbW9yZSBzb2MgY2FuIHNoYXJlIHRoZSBzYW1l IGxvZ2ljLgo+IAo+ICAuLi4vcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS1ob3N0 LmMgfCA3OCArKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaWUtZGVzaWdud2FyZS5oICB8IDI4ICsrKysrKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMDYg aW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3 Yy9wY2llLWRlc2lnbndhcmUtaG9zdC5jIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNp ZS1kZXNpZ253YXJlLWhvc3QuYwo+IGluZGV4IDk5NTIwNTdjODgxOWMuLjE4MjJjMDRkMzcwYjIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJl LWhvc3QuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2Fy ZS1ob3N0LmMKPiBAQCAtOCw2ICs4LDcgQEAKPiAgICogQXV0aG9yOiBKaW5nb28gSGFuIDxqZzEu aGFuQHNhbXN1bmcuY29tPgo+ICAgKi8KPiAgCj4gKyNpbmNsdWRlIDxsaW51eC9pb3BvbGwuaD4K PiAgI2luY2x1ZGUgPGxpbnV4L2lycWNoaXAvY2hhaW5lZF9pcnEuaD4KPiAgI2luY2x1ZGUgPGxp bnV4L2lycWRvbWFpbi5oPgo+ICAjaW5jbHVkZSA8bGludXgvbXNpLmg+Cj4gQEAgLTgwNywzICs4 MDgsODAgQEAgaW50IGR3X3BjaWVfc2V0dXBfcmMoc3RydWN0IGR3X3BjaWVfcnAgKnBwKQo+ICAJ cmV0dXJuIDA7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoZHdfcGNpZV9zZXR1cF9yYyk7Cj4g Kwo+ICtpbnQgZHdfcGNpZV9zdXNwZW5kX25vaXJxKHN0cnVjdCBkd19wY2llICpwY2kpCj4gK3sK PiArCXU4IG9mZnNldCA9IGR3X3BjaWVfZmluZF9jYXBhYmlsaXR5KHBjaSwgUENJX0NBUF9JRF9F WFApOwo+ICsJdTMyIHZhbDsKPiArCWludCByZXQ7Cj4gKwo+ICsJLyoKPiArCSAqIElmIEwxU1Mg aXMgc3VwcG9ydGVkLCB0aGVuIGRvIG5vdCBwdXQgdGhlIGxpbmsgaW50byBMMiBhcyBzb21lCj4g KwkgKiBkZXZpY2VzIHN1Y2ggYXMgTlZNZSBleHBlY3QgbG93IHJlc3VtZSBsYXRlbmN5Lgo+ICsJ ICovCj4gKwlpZiAoZHdfcGNpZV9yZWFkd19kYmkocGNpLCBvZmZzZXQgKyBQQ0lfRVhQX0xOS0NU TCkgJiBQQ0lfRVhQX0xOS0NUTF9BU1BNX0wxKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWlmIChk d19wY2llX2dldF9sdHNzbShwY2kpIDw9IERXX1BDSUVfTFRTU01fREVURUNUX0FDVCkKPiArCQly ZXR1cm4gMDsKPiArCj4gKwlpZiAoIXBjaS0+cHAub3BzLT5wbWVfdHVybl9vZmYpCj4gKwkJcmV0 dXJuIDA7Cj4gKwo+ICsJcGNpLT5wcC5vcHMtPnBtZV90dXJuX29mZigmcGNpLT5wcCk7Cj4gKwo+ ICsJLyoKPiArCSAqIFBDSSBFeHByZXNzIEJhc2UgU3BlY2lmaWNhdGlvbiBSZXYgNC4wIDUuMy4z LjIuMSBQTUUgU3luY2hyb25pemF0aW9uCgpSZXYgNC4wIFNlY3Rpb24gNS4zLjMuMi4xCgo+ICsJ ICogUmVjb21tYW5kcyAxbXMgdG8gMTBtcyB0aW1lb3V0IHRvIGNoZWNrIEwyIHJlYWR5CgpSZWNv bW1lbmRzCgpBbHNvIGFkZCBhIGZ1bGwgc3RvcCBhdCB0aGUgZW5kIG9mIGxpbmUuCgo+ICsJICov Cj4gKwlyZXQgPSByZWFkX3BvbGxfdGltZW91dChkd19wY2llX2dldF9sdHNzbSwgdmFsLCB2YWwg PT0gRFdfUENJRV9MVFNTTV9MMl9JRExFLAo+ICsJCQkJMTAwLCAxMDAwMCwgZmFsc2UsIHBjaSk7 CgpzbGVlcF91cyB2YWx1ZSBzaG91bGQgYmUgMTAwMCBmb3IgMW1zLgoKPiArCWlmIChyZXQpIHsK PiArCQlkZXZfZXJyKHBjaS0+ZGV2LCAiVGltZW91dCB3YWl0aW5nIGZvciBMMiBlbnRyeSEgTFRT U006IDB4JXhcbiIsIHZhbCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlpZiAocGNp LT5wcC5vcHMtPmhvc3RfZGVpbml0KQo+ICsJCXBjaS0+cHAub3BzLT5ob3N0X2RlaW5pdCgmcGNp LT5wcCk7Cj4gKwo+ICsJcGNpLT5zdXNwZW5kZWQgPSB0cnVlOwo+ICsKPiArCXJldHVybiByZXQ7 Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwoZHdfcGNpZV9zdXNwZW5kX25vaXJxKTsKPiArCj4g K2ludCBkd19wY2llX3Jlc3VtZV9ub2lycShzdHJ1Y3QgZHdfcGNpZSAqcGNpKQo+ICt7Cj4gKwlp bnQgcmV0Owo+ICsKPiArCWlmICghcGNpLT5zdXNwZW5kZWQpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ ICsJcGNpLT5zdXNwZW5kZWQgPSBmYWxzZTsKPiArCj4gKwlpZiAoIXBjaS0+cHAub3BzLT5leGl0 X2Zyb21fbDIpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJcGNpLT5wcC5vcHMtPmV4aXRfZnJvbV9s MigmcGNpLT5wcCk7Cj4gKwo+ICsJaWYgKHBjaS0+cHAub3BzLT5ob3N0X2luaXQpIHsKPiArCQly ZXQgPSBwY2ktPnBwLm9wcy0+aG9zdF9pbml0KCZwY2ktPnBwKTsKPiArCQlpZiAocmV0KSB7Cj4g KwkJCWRldl9lcnIocGNpLT5kZXYsICJIb3N0IGluaXQgZmFpbGVkISByZXQgPSAweCV4XG4iLCBy ZXQpOwoKV2h5IGRvIHlvdSB3YW50IHRvIHByaW50ICJyZXQiIGluIGhleD8KCkhvdyBhYm91dCwK CmRldl9lcnIocGNpLT5kZXYsICJIb3N0IGluaXQgZmFpbGVkOiAlZFxuIiwgcmV0KTsKClJlc3Qg bG9va3MgZ29vZCEKCi0gTWFuaQoKPiArCQkJcmV0dXJuIHJldDsKPiArCQl9Cj4gKwl9Cj4gKwo+ ICsJZHdfcGNpZV9zZXR1cF9yYygmcGNpLT5wcCk7Cj4gKwo+ICsJcmV0ID0gZHdfcGNpZV9zdGFy dF9saW5rKHBjaSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0ID0g ZHdfcGNpZV93YWl0X2Zvcl9saW5rKHBjaSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7 Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MX0dQTChkd19wY2llX3Jl c3VtZV9ub2lycSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3Bj aWUtZGVzaWdud2FyZS5oIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253 YXJlLmgKPiBpbmRleCA3OTcxM2NlMDc1Y2MxLi5jYmJhM2VkMTliM2MwIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtZGVzaWdud2FyZS5oCj4gKysrIGIvZHJp dmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpZS1kZXNpZ253YXJlLmgKPiBAQCAtMjg4LDEwICsy ODgsMjEgQEAgZW51bSBkd19wY2llX2NvcmVfcnN0IHsKPiAgCURXX1BDSUVfTlVNX0NPUkVfUlNU Uwo+ICB9Owo+ICAKPiArZW51bSBkd19wY2llX2x0c3NtIHsKPiArCURXX1BDSUVfTFRTU01fVU5L Tk9XTiA9IDB4RkZGRkZGRkYsCj4gKwkvKiBOZWVkIHRvIGFsaWduIHdpdGggUENJRV9QT1JUX0RF QlVHMCBiaXRzIDA6NSAqLwo+ICsJRFdfUENJRV9MVFNTTV9ERVRFQ1RfUVVJRVQgPSAweDAsCj4g KwlEV19QQ0lFX0xUU1NNX0RFVEVDVF9BQ1QgPSAweDEsCj4gKwlEV19QQ0lFX0xUU1NNX0wwID0g MHgxMSwKPiArCURXX1BDSUVfTFRTU01fTDJfSURMRSA9IDB4MTUsCj4gK307Cj4gKwo+ICBzdHJ1 Y3QgZHdfcGNpZV9ob3N0X29wcyB7Cj4gIAlpbnQgKCpob3N0X2luaXQpKHN0cnVjdCBkd19wY2ll X3JwICpwcCk7Cj4gIAl2b2lkICgqaG9zdF9kZWluaXQpKHN0cnVjdCBkd19wY2llX3JwICpwcCk7 Cj4gIAlpbnQgKCptc2lfaG9zdF9pbml0KShzdHJ1Y3QgZHdfcGNpZV9ycCAqcHApOwo+ICsJdm9p ZCAoKnBtZV90dXJuX29mZikoc3RydWN0IGR3X3BjaWVfcnAgKnBwKTsKPiArCXZvaWQgKCpleGl0 X2Zyb21fbDIpKHN0cnVjdCBkd19wY2llX3JwICpwcCk7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgZHdf cGNpZV9ycCB7Cj4gQEAgLTM2NCw2ICszNzUsNyBAQCBzdHJ1Y3QgZHdfcGNpZV9vcHMgewo+ICAJ dm9pZCAgICAoKndyaXRlX2RiaTIpKHN0cnVjdCBkd19wY2llICpwY2llLCB2b2lkIF9faW9tZW0g KmJhc2UsIHUzMiByZWcsCj4gIAkJCSAgICAgIHNpemVfdCBzaXplLCB1MzIgdmFsKTsKPiAgCWlu dAkoKmxpbmtfdXApKHN0cnVjdCBkd19wY2llICpwY2llKTsKPiArCWVudW0gZHdfcGNpZV9sdHNz bSAoKmdldF9sdHNzbSkoc3RydWN0IGR3X3BjaWUgKnBjaWUpOwo+ICAJaW50CSgqc3RhcnRfbGlu aykoc3RydWN0IGR3X3BjaWUgKnBjaWUpOwo+ICAJdm9pZAkoKnN0b3BfbGluaykoc3RydWN0IGR3 X3BjaWUgKnBjaWUpOwo+ICB9Owo+IEBAIC0zOTMsNiArNDA1LDcgQEAgc3RydWN0IGR3X3BjaWUg ewo+ICAJc3RydWN0IHJlc2V0X2NvbnRyb2xfYnVsa19kYXRhCWFwcF9yc3RzW0RXX1BDSUVfTlVN X0FQUF9SU1RTXTsKPiAgCXN0cnVjdCByZXNldF9jb250cm9sX2J1bGtfZGF0YQljb3JlX3JzdHNb RFdfUENJRV9OVU1fQ09SRV9SU1RTXTsKPiAgCXN0cnVjdCBncGlvX2Rlc2MJCSpwZV9yc3Q7Cj4g Kwlib29sCQkJc3VzcGVuZGVkOwo+ICB9Owo+ICAKPiAgI2RlZmluZSB0b19kd19wY2llX2Zyb21f cHAocG9ydCkgY29udGFpbmVyX29mKChwb3J0KSwgc3RydWN0IGR3X3BjaWUsIHBwKQo+IEBAIC00 MzAsNiArNDQzLDkgQEAgdm9pZCBkd19wY2llX2lhdHVfZGV0ZWN0KHN0cnVjdCBkd19wY2llICpw Y2kpOwo+ICBpbnQgZHdfcGNpZV9lZG1hX2RldGVjdChzdHJ1Y3QgZHdfcGNpZSAqcGNpKTsKPiAg dm9pZCBkd19wY2llX2VkbWFfcmVtb3ZlKHN0cnVjdCBkd19wY2llICpwY2kpOwo+ICAKPiAraW50 IGR3X3BjaWVfc3VzcGVuZF9ub2lycShzdHJ1Y3QgZHdfcGNpZSAqcGNpKTsKPiAraW50IGR3X3Bj aWVfcmVzdW1lX25vaXJxKHN0cnVjdCBkd19wY2llICpwY2kpOwo+ICsKPiAgc3RhdGljIGlubGlu ZSB2b2lkIGR3X3BjaWVfd3JpdGVsX2RiaShzdHJ1Y3QgZHdfcGNpZSAqcGNpLCB1MzIgcmVnLCB1 MzIgdmFsKQo+ICB7Cj4gIAlkd19wY2llX3dyaXRlX2RiaShwY2ksIHJlZywgMHg0LCB2YWwpOwo+ IEBAIC01MDEsNiArNTE3LDE4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkd19wY2llX3N0b3BfbGlu ayhzdHJ1Y3QgZHdfcGNpZSAqcGNpKQo+ICAJCXBjaS0+b3BzLT5zdG9wX2xpbmsocGNpKTsKPiAg fQo+ICAKPiArc3RhdGljIGlubGluZSBlbnVtIGR3X3BjaWVfbHRzc20gZHdfcGNpZV9nZXRfbHRz c20oc3RydWN0IGR3X3BjaWUgKnBjaSkKPiArewo+ICsJdTMyIHZhbDsKPiArCj4gKwlpZiAocGNp LT5vcHMgJiYgcGNpLT5vcHMtPmdldF9sdHNzbSkKPiArCQlyZXR1cm4gcGNpLT5vcHMtPmdldF9s dHNzbShwY2kpOwo+ICsKPiArCXZhbCA9IGR3X3BjaWVfcmVhZGxfZGJpKHBjaSwgUENJRV9QT1JU X0RFQlVHMCk7Cj4gKwo+ICsJcmV0dXJuIChlbnVtIGR3X3BjaWVfbHRzc20pRklFTERfR0VUKFBP UlRfTE9HSUNfTFRTU01fU1RBVEVfTUFTSywgdmFsKTsKPiArfQo+ICsKPiAgI2lmZGVmIENPTkZJ R19QQ0lFX0RXX0hPU1QKPiAgaXJxcmV0dXJuX3QgZHdfaGFuZGxlX21zaV9pcnEoc3RydWN0IGR3 X3BjaWVfcnAgKnBwKTsKPiAgaW50IGR3X3BjaWVfc2V0dXBfcmMoc3RydWN0IGR3X3BjaWVfcnAg KnBwKTsKPiAtLSAKPiAyLjM0LjEKPiAKCi0tIArgrq7grqPgrr/grrXgrqPgr43grqPgrqngr40g 4K6a4K6k4K6+4K6a4K6/4K614K6u4K+NCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==