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 DC609C47DDB for ; Fri, 26 Jan 2024 21:43:55 +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: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:References: List-Owner; bh=k6DYeFulrXuvgQlPIJBXMoCgvzI94C/gAHkXeb41T+Q=; b=i+IQmsns8Dhxaz 5UnUEkTUGAAnTi9Durx4kKIoQ/6wxyhbPNgn9m+ex4+evazyY1ZE/3MJ9w+ucOCKNqHZMeg0eGxNZ AGEp1uVQyrTS39XscEz0m6YcQbA6SmtZbyEHiAKvVHzpfw3l4jj0YAOVnzlIX7Kn5o90LqnL3BxI1 rIe9VBMiHKnWh/JkFtftWLlsKPzNo5gHmBID3Y82txBMs3KaFuiCPdh0kByXJOgum5u0+U6MFu0b8 gW1jjFoG9i4RJmjw8QBcL6VBtx52C/BQlTqxZ0QHf/yZ2NCrP/uk1OXi90fSrakUZwXU4Z7I02z8F 73HSBwjXFqVXP6M3aEIA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rTTzF-00000005UwL-04Li; Fri, 26 Jan 2024 21:43:45 +0000 Received: from sin.source.kernel.org ([2604:1380:40e1:4800::1]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rTTzB-00000005Uug-3ofM; Fri, 26 Jan 2024 21:43:43 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id A022ACE3510; Fri, 26 Jan 2024 21:43:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 961A3C433C7; Fri, 26 Jan 2024 21:43:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1706305418; bh=dGrX54JKc+ouW6Qe0kG/VCojouMRzfaNqMwu+WvsiFc=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=inziZ7Od0BGG1wapyJIji2rltHuK546vmXLekUOdBNw/zMUrSH2tgyR1YKfQmJn4M N1+zl9watQThzgAgk8RE2pO0XK1QnC0cHtdKlrKTitAUps1IeWFw6GfOy5bjUe+Hv+ V+Cdi+n9V0pzYBeo0IYDQf8PmsTZaH7cv7hgX1k11+wZCP0KsvSbIyiB4LF7xSSMs+ aye2qeqK6Fr+cledVAy1shXdxvxjyXid+UmGLvgkZvxC3UgJ76iEE5eOGXe5LlWYE0 RvRtKuc/RdIa+w13sopOKhLWhybqs1dTXcw0lfTDT2P9mqOdlcBua7lRghb3vl5Ed6 IeFIC4kPDDvOg== Date: Fri, 26 Jan 2024 15:43:36 -0600 From: Bjorn Helgaas To: Thomas Richard Cc: Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Tony Lindgren , Haojian Zhuang , Vignesh R , Aaro Koskinen , Janusz Krzysztofik , Andi Shyti , Peter Rosin , Vinod Koul , Kishon Vijay Abraham I , Philipp Zabel , Tom Joseph , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Rob Herring , Bjorn Helgaas , linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org, linux-i2c@vger.kernel.org, linux-phy@lists.infradead.org, linux-pci@vger.kernel.org, gregory.clement@bootlin.com, theo.lebrun@bootlin.com, thomas.petazzoni@bootlin.com, u-kumar1@ti.com Subject: Re: [PATCH v2 13/15] PCI: cadence: add resume support to cdns_pcie_host_setup() Message-ID: <20240126214336.GA453589@bhelgaas> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240102-j7200-pcie-s2r-v2-13-8e4f7d228ec2@bootlin.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240126_134342_325738_AE67FFB9 X-CRM114-Status: GOOD ( 25.54 ) 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 SW4gc3ViamVjdCwgY2FwaXRhbGl6ZSAiQWRkIC4uLiIgdG8gZm9sbG93IGhpc3RvcmljYWwgY29u dmVudGlvbi4KQWxzbyB0aGUgb3RoZXIgZHJpdmVyL3BjaS8gcGF0Y2hlcy4KCk9uIEZyaSwgSmFu IDI2LCAyMDI0IGF0IDAzOjM2OjU1UE0gKzAxMDAsIFRob21hcyBSaWNoYXJkIHdyb3RlOgo+IEZy b206IFRow6lvIExlYnJ1biA8dGhlby5sZWJydW5AYm9vdGxpbi5jb20+Cj4gCj4gVGhhdCBmdW5j dGlvbiBtaXhlcyBwcm9iZSBzdHJ1Y3R1cmUgaW5pdCBhbmQgaGFyZHdhcmUgY29uZmlnLgo+IFRo ZSB3aG9sZSBoYXJkd2FyZSBjb25maWcgcGFydCBtdXN0IGJlIGRvbmUgYXQgcmVzdW1lIGFmdGVy IGEgc3VzcGVuZCB0bwo+IHJhbS4KPiBXZSB0aGVyZWZvcmUgcGFzcyBpdCBhIGJvb2xlYW4gZmxh ZyBkZXRlcm1pbmluZyBpZiB3ZSBhcmUgYXQgcHJvYmUgb3IgYXQKPiByZXN1bWUuCgpzL1RoYXQg ZnVuY3Rpb24vY2Ruc19wY2llX2hvc3Rfc2V0dXAoKS8gc28gdGhlIGNvbW1pdCBsb2cgc3RhbmRz CmFsb25lIGV2ZW4gd2l0aG91dCB0aGUgc3ViamVjdCBsaW5lLgoKcy9yYW0vUkFNLwoKQWRkIGJs YW5rIGxpbmUgYmV0d2VlbiBwYXJhZ3JhcGhzIChvciByZXdyYXAgaW50byBhIHNpbmdsZSBwYXJh Z3JhcGgpLgoKVGhpcyBpcyBwcmV0dHkgc2ltaWxhciBidXQgc2xpZ2h0bHkgZGlmZmVyZW50IGZy b20gdGhlIERXQyBwYXR0ZXJuOgoKICBpbXg2X3BjaWVfcHJvYmUKICAgIC4uLiBkbyBzdHJ1Y3R1 cmUgaW5pdCAuLi4KICAgIGlmIChSQykKICAgICAgZHdfcGNpZV9ob3N0X2luaXQKCXBwLT5vcHMt PmluaXQKCSAgaW14Nl9wY2llX2hvc3RfaW5pdAoKICBpbXg2X3BjaWVfcmVzdW1lX25vaXJxCiAg ICBpbXg2X3BjaWVfaG9zdF9pbml0CgogIGo3MjFlX3BjaWVfcHJvYmUKICAgIGo3MjFlX3BjaWVf Y3RybF9pbml0CiAgICBpZiAoUkMpCiAgICAgIGNkbnNfcGNpZV9ob3N0X3NldHVwKHRydWUpCgog IGo3MjFlX3BjaWVfcmVzdW1lX25vaXJxCiAgICBqNzIxZV9wY2llX2N0cmxfaW5pdAogICAgaWYg KFJDKQogICAgICBjZG5zX3BjaWVfaG9zdF9zZXR1cChmYWxzZSkKCkl0J2QgYmUgc3VwZXIgbmlj ZSB0byBoYXZlIHRoZW0gdGhlIHNhbWUuICBQYXNzaW5nIGluIGEgInByb2JlIiBmbGFnCndvcmtz IGJ1dCBzZWVtcyBhIGxpdHRsZSBoYXJkZXIgdG8gcmVhZCBpbiBjZG5zX3BjaWVfaG9zdF9zZXR1 cCgpIGFuZAp5b3UgaGF2ZSB0byBrZWVwIHRyYWNrIG9mIHdoYXQgaXQgbWVhbnMgaW4gdGhlIGNh bGxlcnMuCgo+IFNpZ25lZC1vZmYtYnk6IFRow6lvIExlYnJ1biA8dGhlby5sZWJydW5AYm9vdGxp bi5jb20+Cj4gU2lnbmVkLW9mZi1ieTogVGhvbWFzIFJpY2hhcmQgPHRob21hcy5yaWNoYXJkQGJv b3RsaW4uY29tPgo+IC0tLQo+ICBkcml2ZXJzL3BjaS9jb250cm9sbGVyL2NhZGVuY2UvcGNpLWo3 MjFlLmMgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvY2FkZW5jZS9w Y2llLWNhZGVuY2UtaG9zdC5jIHwgNDkgKysrKysrKysrKysrLS0tLS0tLS0tLQo+ICBkcml2ZXJz L3BjaS9jb250cm9sbGVyL2NhZGVuY2UvcGNpZS1jYWRlbmNlLXBsYXQuYyB8ICAyICstCj4gIGRy aXZlcnMvcGNpL2NvbnRyb2xsZXIvY2FkZW5jZS9wY2llLWNhZGVuY2UuaCAgICAgIHwgIDQgKy0K PiAgNCBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9jYWRlbmNlL3BjaS1qNzIxZS5j IGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9jYWRlbmNlL3BjaS1qNzIxZS5jCj4gaW5kZXggMmM4 N2U3NzI4YTY1Li45YjM0M2E0NmRhMTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJv bGxlci9jYWRlbmNlL3BjaS1qNzIxZS5jCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9j YWRlbmNlL3BjaS1qNzIxZS5jCj4gQEAgLTUwOSw3ICs1MDksNyBAQCBzdGF0aWMgaW50IGo3MjFl X3BjaWVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCQkJZ3Bpb2Rfc2V0 X3ZhbHVlX2NhbnNsZWVwKGdwaW9kLCAxKTsKPiAgCQl9Cj4gIAo+IC0JCXJldCA9IGNkbnNfcGNp ZV9ob3N0X3NldHVwKHJjKTsKPiArCQlyZXQgPSBjZG5zX3BjaWVfaG9zdF9zZXR1cChyYywgdHJ1 ZSk7Cj4gIAkJaWYgKHJldCA8IDApIHsKPiAgCQkJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBjaWUt PnJlZmNsayk7Cj4gIAkJCWdvdG8gZXJyX3BjaWVfc2V0dXA7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvcGNpL2NvbnRyb2xsZXIvY2FkZW5jZS9wY2llLWNhZGVuY2UtaG9zdC5jIGIvZHJpdmVycy9w Y2kvY29udHJvbGxlci9jYWRlbmNlL3BjaWUtY2FkZW5jZS1ob3N0LmMKPiBpbmRleCA1YjE0Zjdl ZTNjNzkuLmRkNGQ4NzZhOTEzOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVy L2NhZGVuY2UvcGNpZS1jYWRlbmNlLWhvc3QuYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvY2FkZW5jZS9wY2llLWNhZGVuY2UtaG9zdC5jCj4gQEAgLTQ5NywxNCArNDk3LDE0IEBAIHN0 YXRpYyBpbnQgY2Ruc19wY2llX2hvc3RfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIAlyZXR1 cm4gY2Ruc19wY2llX2hvc3RfaW5pdF9hZGRyZXNzX3RyYW5zbGF0aW9uKHJjKTsKPiAgfQo+ICAK PiAtaW50IGNkbnNfcGNpZV9ob3N0X3NldHVwKHN0cnVjdCBjZG5zX3BjaWVfcmMgKnJjKQo+ICtp bnQgY2Ruc19wY2llX2hvc3Rfc2V0dXAoc3RydWN0IGNkbnNfcGNpZV9yYyAqcmMsIGJvb2wgcHJv YmUpCj4gIHsKPiAgCXN0cnVjdCBkZXZpY2UgKmRldiA9IHJjLT5wY2llLmRldjsKPiAgCXN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2UoZGV2KTsKPiAgCXN0 cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBkZXYtPm9mX25vZGU7Cj4gIAlzdHJ1Y3QgcGNpX2hvc3Rf YnJpZGdlICpicmlkZ2U7Cj4gIAllbnVtIGNkbnNfcGNpZV9ycF9iYXIgYmFyOwo+IC0Jc3RydWN0 IGNkbnNfcGNpZSAqcGNpZTsKPiArCXN0cnVjdCBjZG5zX3BjaWUgKnBjaWUgPSAmcmMtPnBjaWU7 Cj4gIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKPiAgCWludCByZXQ7Cj4gIAo+IEBAIC01MTIsMjYg KzUxMiwyNyBAQCBpbnQgY2Ruc19wY2llX2hvc3Rfc2V0dXAoc3RydWN0IGNkbnNfcGNpZV9yYyAq cmMpCj4gIAlpZiAoIWJyaWRnZSkKPiAgCQlyZXR1cm4gLUVOT01FTTsKPiAgCj4gLQlwY2llID0g JnJjLT5wY2llOwo+IC0JcGNpZS0+aXNfcmMgPSB0cnVlOwo+ICsJaWYgKHByb2JlKSB7Cj4gKwkJ cGNpZS0+aXNfcmMgPSB0cnVlOwo+ICAKPiAtCXJjLT52ZW5kb3JfaWQgPSAweGZmZmY7Cj4gLQlv Zl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgInZlbmRvci1pZCIsICZyYy0+dmVuZG9yX2lkKTsKPiAr CQlyYy0+dmVuZG9yX2lkID0gMHhmZmZmOwo+ICsJCW9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAi dmVuZG9yLWlkIiwgJnJjLT52ZW5kb3JfaWQpOwo+ICAKPiAtCXJjLT5kZXZpY2VfaWQgPSAweGZm ZmY7Cj4gLQlvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImRldmljZS1pZCIsICZyYy0+ZGV2aWNl X2lkKTsKPiArCQlyYy0+ZGV2aWNlX2lkID0gMHhmZmZmOwo+ICsJCW9mX3Byb3BlcnR5X3JlYWRf dTMyKG5wLCAiZGV2aWNlLWlkIiwgJnJjLT5kZXZpY2VfaWQpOwo+ICAKPiAtCXBjaWUtPnJlZ19i YXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlX2J5bmFtZShwZGV2LCAicmVnIik7 Cj4gLQlpZiAoSVNfRVJSKHBjaWUtPnJlZ19iYXNlKSkgewo+IC0JCWRldl9lcnIoZGV2LCAibWlz c2luZyBcInJlZ1wiXG4iKTsKPiAtCQlyZXR1cm4gUFRSX0VSUihwY2llLT5yZWdfYmFzZSk7Cj4g LQl9Cj4gKwkJcGNpZS0+cmVnX2Jhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2Vf YnluYW1lKHBkZXYsICJyZWciKTsKPiArCQlpZiAoSVNfRVJSKHBjaWUtPnJlZ19iYXNlKSkgewo+ ICsJCQlkZXZfZXJyKGRldiwgIm1pc3NpbmcgXCJyZWdcIlxuIik7Cj4gKwkJCXJldHVybiBQVFJf RVJSKHBjaWUtPnJlZ19iYXNlKTsKPiArCQl9Cj4gIAo+IC0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jl c291cmNlX2J5bmFtZShwZGV2LCBJT1JFU09VUkNFX01FTSwgImNmZyIpOwo+IC0JcmMtPmNmZ19i YXNlID0gZGV2bV9wY2lfcmVtYXBfY2ZnX3Jlc291cmNlKGRldiwgcmVzKTsKPiAtCWlmIChJU19F UlIocmMtPmNmZ19iYXNlKSkKPiAtCQlyZXR1cm4gUFRSX0VSUihyYy0+Y2ZnX2Jhc2UpOwo+IC0J cmMtPmNmZ19yZXMgPSByZXM7Cj4gKwkJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlX2J5bmFt ZShwZGV2LCBJT1JFU09VUkNFX01FTSwgImNmZyIpOwo+ICsJCXJjLT5jZmdfYmFzZSA9IGRldm1f cGNpX3JlbWFwX2NmZ19yZXNvdXJjZShkZXYsIHJlcyk7Cj4gKwkJaWYgKElTX0VSUihyYy0+Y2Zn X2Jhc2UpKQo+ICsJCQlyZXR1cm4gUFRSX0VSUihyYy0+Y2ZnX2Jhc2UpOwo+ICsJCXJjLT5jZmdf cmVzID0gcmVzOwo+ICsJfQo+ICAKPiAgCWlmIChyYy0+cXVpcmtfZGV0ZWN0X3F1aWV0X2ZsYWcp Cj4gIAkJY2Ruc19wY2llX2RldGVjdF9xdWlldF9taW5fZGVsYXlfc2V0KCZyYy0+cGNpZSk7Cj4g QEAgLTU1NSwxMiArNTU2LDE0IEBAIGludCBjZG5zX3BjaWVfaG9zdF9zZXR1cChzdHJ1Y3QgY2Ru c19wY2llX3JjICpyYykKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gLQlpZiAo IWJyaWRnZS0+b3BzKQo+IC0JCWJyaWRnZS0+b3BzID0gJmNkbnNfcGNpZV9ob3N0X29wczsKPiAr CWlmIChwcm9iZSkgewo+ICsJCWlmICghYnJpZGdlLT5vcHMpCj4gKwkJCWJyaWRnZS0+b3BzID0g JmNkbnNfcGNpZV9ob3N0X29wczsKPiAgCj4gLQlyZXQgPSBwY2lfaG9zdF9wcm9iZShicmlkZ2Up Owo+IC0JaWYgKHJldCA8IDApCj4gLQkJZ290byBlcnJfaW5pdDsKPiArCQlyZXQgPSBwY2lfaG9z dF9wcm9iZShicmlkZ2UpOwo+ICsJCWlmIChyZXQgPCAwKQo+ICsJCQlnb3RvIGVycl9pbml0Owo+ ICsJfQo+ICAKPiAgCXJldHVybiAwOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvY29u dHJvbGxlci9jYWRlbmNlL3BjaWUtY2FkZW5jZS1wbGF0LmMgYi9kcml2ZXJzL3BjaS9jb250cm9s bGVyL2NhZGVuY2UvcGNpZS1jYWRlbmNlLXBsYXQuYwo+IGluZGV4IDA0NTY4NDVkYWJiOS4uMDcx NDIzMDkxNjY4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvY2FkZW5jZS9w Y2llLWNhZGVuY2UtcGxhdC5jCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9jYWRlbmNl L3BjaWUtY2FkZW5jZS1wbGF0LmMKPiBAQCAtODYsNyArODYsNyBAQCBzdGF0aWMgaW50IGNkbnNf cGxhdF9wY2llX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJCWdvdG8g ZXJyX2dldF9zeW5jOwo+ICAJCX0KPiAgCj4gLQkJcmV0ID0gY2Ruc19wY2llX2hvc3Rfc2V0dXAo cmMpOwo+ICsJCXJldCA9IGNkbnNfcGNpZV9ob3N0X3NldHVwKHJjLCB0cnVlKTsKPiAgCQlpZiAo cmV0KQo+ICAJCQlnb3RvIGVycl9pbml0Owo+ICAJfSBlbHNlIHsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9wY2kvY29udHJvbGxlci9jYWRlbmNlL3BjaWUtY2FkZW5jZS5oIGIvZHJpdmVycy9wY2kv Y29udHJvbGxlci9jYWRlbmNlL3BjaWUtY2FkZW5jZS5oCj4gaW5kZXggMzczY2I1MGZjZDE1Li4z YjBkYTg4OWVkNjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9wY2kvY29udHJvbGxlci9jYWRlbmNl L3BjaWUtY2FkZW5jZS5oCj4gKysrIGIvZHJpdmVycy9wY2kvY29udHJvbGxlci9jYWRlbmNlL3Bj aWUtY2FkZW5jZS5oCj4gQEAgLTUxNSwxMSArNTE1LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBj ZG5zX3BjaWVfbGlua191cChzdHJ1Y3QgY2Ruc19wY2llICpwY2llKQo+ICB9Cj4gIAo+ICAjaWZk ZWYgQ09ORklHX1BDSUVfQ0FERU5DRV9IT1NUCj4gLWludCBjZG5zX3BjaWVfaG9zdF9zZXR1cChz dHJ1Y3QgY2Ruc19wY2llX3JjICpyYyk7Cj4gK2ludCBjZG5zX3BjaWVfaG9zdF9zZXR1cChzdHJ1 Y3QgY2Ruc19wY2llX3JjICpyYywgYm9vbCBwcm9iZSk7Cj4gIHZvaWQgX19pb21lbSAqY2Ruc19w Y2lfbWFwX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBpbnQgZGV2Zm4sCj4gIAkJ CSAgICAgICBpbnQgd2hlcmUpOwo+ICAjZWxzZQo+IC1zdGF0aWMgaW5saW5lIGludCBjZG5zX3Bj aWVfaG9zdF9zZXR1cChzdHJ1Y3QgY2Ruc19wY2llX3JjICpyYykKPiArc3RhdGljIGlubGluZSBp bnQgY2Ruc19wY2llX2hvc3Rfc2V0dXAoc3RydWN0IGNkbnNfcGNpZV9yYyAqcmMsIGJvb2wgcHJv YmUpCj4gIHsKPiAgCXJldHVybiAwOwo+ICB9Cj4gCj4gLS0gCj4gMi4zOS4yCj4gCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==