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 8A5DAC6FD1D for ; Tue, 14 Mar 2023 12:53:36 +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:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Qjsq0tsmpzifJzaw0zxufFJS+a+/E387c6WLbIWAfY0=; b=XFuTKJzVmnVRks sQju56u6u6+g/SL2CbcCtRl+CB1u0mxuqC4ZvPwKDxNFKd8xiEfd7XtIVqy110ec4RdKtBLEC7xYt C8QKBRXjPoioZcOySLThXGfrrq8d9NrajZqnp8q9MzP4u2wb04+GpY6aT6jP/BeBI9xYzzSzdIpbQ VjOfRdxFQ2EpvGk4JdBqrSXan5cOnfAj24icTU1LXi6YNg0HdAnftdae3JZaUyju+rmFawUqdCp9e qReFFgt7MCR3RvbE3+p1KPgEe8QbgNaVbV+2shjJZPx0YFyq79fCgdq5wiJjmsGExkfb8W6bQhO+z xv2yYZ2CKVkONVfLj07Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pc48t-00AE14-1I; Tue, 14 Mar 2023 12:52:39 +0000 Received: from mga03.intel.com ([134.134.136.65]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pc48q-00ADzu-0o for linux-arm-kernel@lists.infradead.org; Tue, 14 Mar 2023 12:52:38 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678798356; x=1710334356; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=rmow8MmVfNohfbbu6S6MxBXECwf/J7vfVWyiDy1C384=; b=IYDHUowrcMU8lYpu/TZlkshNMk2Uq2WE5uWlmEL71ayhF+JvCU1Oclbm UhxTSwj09XLDMC4t4XgemH6iFzBMPCQaJAOauCATr6DY8zO5VtQaaVOTc 9eOLNmxfbauT1Qw8/7fchiv5gceGj6HjKM3RZRRjNE4t0QlCzsOiuD8eE UtIuAF3D9C938fsqTTPA3E9qJqt0KdjYy6vrWrz1shINvsQyFUnv42Zf6 JPrFfRqoMtLz8Gyw7K7uJObeZtrpIABR/nHd7Kzqjd7ihv3AanUcGYQ1m oZ0fci3OPwJLLLEFTFSGjuR3TLhU3LZXq8NqnmSPn5I09xO3Eh/+dxv2k g==; X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="339777494" X-IronPort-AV: E=Sophos;i="5.98,259,1673942400"; d="scan'208";a="339777494" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2023 05:52:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10648"; a="768077784" X-IronPort-AV: E=Sophos;i="5.98,259,1673942400"; d="scan'208";a="768077784" Received: from julieape-mobl.amr.corp.intel.com (HELO [10.209.119.116]) ([10.209.119.116]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2023 05:52:32 -0700 Message-ID: <646638fa-42e8-624a-068b-9c8a26ebfd98@linux.intel.com> Date: Tue, 14 Mar 2023 05:52:31 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0 Thunderbird/102.4.2 Subject: Re: [PATCH v2 1/2] PCI/ATS: Add a helper function to configure ATS STU of a PF Content-Language: en-US To: Ganapatrao Kulkarni , Bjorn Helgaas Cc: linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, iommu@lists.linux.dev, joro@8bytes.org, bhelgaas@google.com, robin.murphy@arm.com, will@kernel.org, jean-philippe@linaro.org, darren@os.amperecomputing.com, scott@os.amperecomputing.com References: <20230313211201.GA1540091@bhelgaas> <6339c50a-8dfe-f3a2-63d7-504abd4e62f0@linux.intel.com> From: Sathyanarayanan Kuppuswamy In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230314_055236_327922_A4B796FD X-CRM114-Status: GOOD ( 32.37 ) 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 CgpPbiAzLzE0LzIzIDM6MDggQU0sIEdhbmFwYXRyYW8gS3Vsa2Fybmkgd3JvdGU6Cj4gCj4gCj4g T24gMTQtMDMtMjAyMyAwNDowMCBhbSwgU2F0aHlhbmFyYXlhbmFuIEt1cHB1c3dhbXkgd3JvdGU6 Cj4+IEhpIEt1bGthcm5pLAo+Pgo+PiBPbiAzLzEzLzIzIDI6MTIgUE0sIEJqb3JuIEhlbGdhYXMg d3JvdGU6Cj4+PiBPbiBNb24sIEZlYiAyNywgMjAyMyBhdCAwODoyMTozNlBNIC0wODAwLCBHYW5h cGF0cmFvIEt1bGthcm5pIHdyb3RlOgo+Pj4+IEFzIHBlciBQQ0kgc3BlY2lmaWNhdGlvbiAoUENJ IEV4cHJlc3MgQmFzZSBTcGVjaWZpY2F0aW9uIFJldmlzaW9uCj4+Pj4gNi4wLCBTZWN0aW9uIDEw LjUpIGJvdGggUEYgYW5kIFZGcyBvZiBhIFBDSSBFUCBhcmUgcGVybWl0dGVkIHRvIGJlIGVuYWJs ZWQKPj4+PiBpbmRlcGVuZGVudGx5IGZvciBBVFMgY2FwYWJpbGl0eSwgaG93ZXZlciB0aGUgU1RV KFNtYWxsZXN0IFRyYW5zbGF0aW9uCj4+Pj4gVW5pdCkgaXMgc2hhcmVkIGJldHdlZW4gUEYgYW5k IFZGcy4gRm9yIFZGcywgaXQgaXMgaGFyZHdpcmVkIHRvIFplcm8gYW5kCj4+Pj4gdGhlIGFzc29j aWF0ZWQgUEYncyB2YWx1ZSBhcHBsaWVzIHRvIFZGcy4KPj4+Pgo+Pj4+IEluIHRoZSBjdXJyZW50 IGNvZGUsIHRoZSBTVFUgaXMgYmVpbmcgY29uZmlndXJlZCB3aGlsZSBlbmFibGluZyB0aGUgUEYg QVRTLgo+Pj4+IEhlbmNlLCBpdCBpcyBub3QgYWJsZSB0byBlbmFibGUgQVRTIGZvciBWRnMsIGlm IGl0IGlzIG5vdCBlbmFibGVkIG9uIHRoZQo+Pj4+IGFzc29jaWF0ZWQgUEYgYWxyZWFkeS4KPj4+ Pgo+Pj4+IEFkZGluZyBhIGZ1bmN0aW9uIHBjaV9hdHNfc3R1X2NvbmZpZ3VyZSgpLCB3aGljaCBj YW4gYmUgY2FsbGVkIHRvCj4+Pj4gY29uZmlndXJlIHRoZSBTVFUgZHVyaW5nIFBGIGVudW1lcmF0 aW9uLgo+Pj4+IExhdHRlciBlbnVtZXJhdGlvbnMgb2YgVkZzIGNhbiBzdWNjZXNzZnVsbHkgZW5h YmxlIEFUUyBpbmRlcGVuZGVudGx5Lgo+Pj4KPj4+IHMvU1RVKFNtYWxsZXN0L1NUVSAoU21hbGxl c3QvIChhZGQgc3BhY2UgYmVmb3JlIHBhcmVuKQo+Pj4gcy9BZGRpbmcgYSBmdW5jdGlvbiBwY2lf YXRzX3N0dV9jb25maWd1cmUoKS9BZGQgcGNpX2F0c19zdHVfY29uZmlndXJlKCkvCj4+PiBzL0xh dHRlci9TdWJzZXF1ZW50Lwo+Pj4KPj4+IEFkZCBibGFuayBsaW5lIGJldHdlZW4gcGFyYWdyYXBo cyAoaXQgbG9va3MgbGlrZSAiTGF0dGVyIGVudW1lcmF0aW9ucyIKPj4+IGlzIGludGVuZGVkIHRv IHN0YXJ0IGEgbmV3IHBhcmFncmFwaCkuCj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IEdhbmFwYXRy YW8gS3Vsa2FybmkgPGdhbmt1bGthcm5pQG9zLmFtcGVyZWNvbXB1dGluZy5jb20+Cj4+Pgo+Pj4g QWNrZWQtYnk6IEJqb3JuIEhlbGdhYXMgPGJoZWxnYWFzQGdvb2dsZS5jb20+Cj4+Pgo+Pj4gR2l2 ZW4gYW4gYWNrIGZvciB0aGUgSU9NTVUgcGF0Y2gsIEknZCBiZSBoYXBweSB0byBtZXJnZSBib3Ro IChhbmQgSQo+Pj4gY2FuIGRvIHRoZSBjb21taXQgbG9nIHR3ZWFrcyk7IGp1c3QgbGV0IG1lIGtu b3cuCj4+Pgo+Pj4gT25lIGNvbW1lbnQvcXVlc3Rpb24gYmVsb3cuCj4+Pgo+Pj4+IC0tLQo+Pj4+ IMKgIGRyaXZlcnMvcGNpL2F0cy5jwqDCoMKgwqDCoMKgIHwgMzMgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tCj4+Pj4gwqAgaW5jbHVkZS9saW51eC9wY2ktYXRzLmggfMKgIDMgKysr Cj4+Pj4gwqAgMiBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2F0cy5jIGIvZHJpdmVycy9wY2kv YXRzLmMKPj4+PiBpbmRleCBmOWNjMmUxMGI2NzYuLjE2MTFiZmExZDVkYSAxMDA2NDQKPj4+PiAt LS0gYS9kcml2ZXJzL3BjaS9hdHMuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvcGNpL2F0cy5jCj4+Pj4g QEAgLTQ2LDYgKzQ2LDM1IEBAIGJvb2wgcGNpX2F0c19zdXBwb3J0ZWQoc3RydWN0IHBjaV9kZXYg KmRldikKPj4+PiDCoCB9Cj4+Pj4gwqAgRVhQT1JUX1NZTUJPTF9HUEwocGNpX2F0c19zdXBwb3J0 ZWQpOwo+Pj4+IMKgICsvKioKPj4+PiArICogcGNpX2F0c19zdHVfY29uZmlndXJlIC0gQ29uZmln dXJlIFNUVSBvZiBhIFBGLgo+Pj4+ICsgKiBAZGV2OiB0aGUgUENJIGRldmljZQo+Pj4+ICsgKiBA cHM6IHRoZSBJT01NVSBwYWdlIHNoaWZ0Cj4+Pj4gKyAqCj4+Pj4gKyAqIFJldHVybnMgMCBvbiBz dWNjZXNzLCBvciBuZWdhdGl2ZSBvbiBmYWlsdXJlLgo+Pj4+ICsgKi8KPj4+PiAraW50IHBjaV9h dHNfc3R1X2NvbmZpZ3VyZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcHMpCj4+Pj4gK3sKPj4+ PiArwqDCoMKgIHUxNiBjdHJsOwo+Pj4+ICsKPj4+PiArwqDCoMKgIGlmIChkZXYtPmF0c19lbmFi bGVkIHx8IGRldi0+aXNfdmlydGZuKQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+ Cj4+PiBJIG1pZ2h0IHJldHVybiBhbiBlcnJvciBmb3IgdGhlIFZGIGNhc2Ugb24gdGhlIGFzc3Vt cHRpb24gdGhhdCBpdCdzCj4+PiBsaWtlbHkgYW4gZXJyb3IgaW4gdGhlIGNhbGxlci7CoCBJIGd1 ZXNzIG9uZSBjb3VsZCBhcmd1ZSB0aGF0IGl0Cj4+PiBzaW1wbGlmaWVzIHRoZSBjYWxsZXIgaWYg aXQgZG9lc24ndCBoYXZlIHRvIGNoZWNrIGZvciBQRiB2cyBWRi7CoCBCdXQKPj4+IHRoZSBmYWN0 IHRoYXQgU1RVIGlzIHNoYXJlZCBiZXR3ZWVuIFBGIGFuZCBWRnMgaXMgYW4gaW1wb3J0YW50IHBh cnQgb2YKPj4+IHVuZGVyc3RhbmRpbmcgaG93IEFUUyB3b3Jrcywgc28gdGhlIGNhbGxlciBzaG91 bGQgYmUgYXdhcmUgb2YgdGhlCj4+PiBkaXN0aW5jdGlvbiBhbnl3YXkuCj4+Cj4+IEkgaGF2ZSBh bHJlYWR5IGFza2VkIHRoaXMgcXVlc3Rpb24uIEJ1dCBsZXQgbWUgcmVwZWF0IGl0Lgo+Pgo+PiBX ZSBkb24ndCBoYXZlIGFueSBjaGVja3MgZm9yIHRoZSBQRiBjYXNlIGhlcmUuIFRoYXQgbWVhbnMg eW91IGNhbiByZS1jb25maWd1cmUKPj4gdGhlIFNUVSBhcyBtYW55IHRpbWVzIGFzIHlvdSB3YW50 IHVudGlsIEFUUyBpcyBlbmFibGVkIGluIFBGLiBTbywgaWYgdGhlcmUgYXJlCj4+IGFjdGl2ZSBW RnMgd2hpY2ggdXNlcyB0aGlzIFNUVSwgY2FuIFBGIHJlLWNvbmZpZ3VyZSB0aGUgU1RVIGF0IHdp bGw/Cj4+Cj4gCj4gSU1PLCBTaW5jZSBTVFUgaXMgc2hhcmVkLCBwcm9ncmFtbWluZyBpdCBtdWx0 aXBsZSB0aW1lcyBpcyBub3QgZXhwZWN0ZWQgZnJvbSBjYWxsZXJzIGNvZGUgZG8gaXQsIGhvd2V2 ZXIgd2UgY2FuIGFkZCBiZWxvdyBjaGVjayB0byBhbGxvdyB0byBwcm9ncmFtIFNUVSBvbmNlIGZy b20gYSBQRi4KPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvYXRzLmMgYi9kcml2ZXJzL3Bj aS9hdHMuYwo+IGluZGV4IDE2MTFiZmExZDVkYS4uZjdiYjAxMDY4ZTE4IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvcGNpL2F0cy5jCj4gKysrIGIvZHJpdmVycy9wY2kvYXRzLmMKPiBAQCAtNjAsNiAr NjAsMTAgQEAgaW50IHBjaV9hdHNfc3R1X2NvbmZpZ3VyZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBp bnQgcHMpCj4gwqDCoMKgwqDCoMKgwqAgaWYgKGRldi0+YXRzX2VuYWJsZWQgfHwgZGV2LT5pc192 aXJ0Zm4pCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAwOwo+IAo+ICvC oMKgwqDCoMKgwqAgLyogQ29uZmlndXJlZCBhbHJlYWR5ICovCj4gK8KgwqDCoMKgwqDCoCBpZiAo ZGV2LT5hdHNfc3R1KQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAwOwo+ ICsKClRoZW9yZXRpY2FsbHksIHlvdSBjYW4gcmUtY29uZmlndXJlIFNUVSBhcyBsb25nIGFzIG5v IG9uZSBpcyB1c2luZyBpdC4gSW5zdGVhZCBvZiB0aGlzIGNoZWNrLCBpcwp0aGVyZSBhIHdheSB0 byBjaGVjayB3aGV0aGVyIHRoZXJlIGFyZSBhY3RpdmUgVk1zIHdoaWNoIGVuYWJsZXMgQVRTPwoK PiDCoMKgwqDCoMKgwqDCoCBpZiAoIXBjaV9hdHNfc3VwcG9ydGVkKGRldikpCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOwo+Pj4KPj4+PiArCj4+Pj4gK8Kg wqDCoCBpZiAoIXBjaV9hdHNfc3VwcG9ydGVkKGRldikpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHJl dHVybiAtRUlOVkFMOwo+Pj4+ICsKPj4+PiArwqDCoMKgIGlmIChwcyA8IFBDSV9BVFNfTUlOX1NU VSkKPj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+Pj4gKwo+Pj4+ICvCoMKg wqAgZGV2LT5hdHNfc3R1ID0gcHM7Cj4+Pj4gK8KgwqDCoCBwY2lfcmVhZF9jb25maWdfd29yZChk ZXYsIGRldi0+YXRzX2NhcCArIFBDSV9BVFNfQ1RSTCwgJmN0cmwpOwo+Pj4+ICvCoMKgwqAgY3Ry bCB8PSBQQ0lfQVRTX0NUUkxfU1RVKGRldi0+YXRzX3N0dSAtIFBDSV9BVFNfTUlOX1NUVSk7Cj4+ Pj4gK8KgwqDCoCBwY2lfd3JpdGVfY29uZmlnX3dvcmQoZGV2LCBkZXYtPmF0c19jYXAgKyBQQ0lf QVRTX0NUUkwsIGN0cmwpOwo+Pj4+ICsKPj4+PiArwqDCoMKgIHJldHVybiAwOwo+Pj4+ICt9Cj4+ Pj4gK0VYUE9SVF9TWU1CT0xfR1BMKHBjaV9hdHNfc3R1X2NvbmZpZ3VyZSk7Cj4+Pj4gKwo+Pj4+ IMKgIC8qKgo+Pj4+IMKgwqAgKiBwY2lfZW5hYmxlX2F0cyAtIGVuYWJsZSB0aGUgQVRTIGNhcGFi aWxpdHkKPj4+PiDCoMKgICogQGRldjogdGhlIFBDSSBkZXZpY2UKPj4+PiBAQCAtNjgsOCArOTcs OCBAQCBpbnQgcGNpX2VuYWJsZV9hdHMoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IHBzKQo+Pj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsKPj4+PiDCoCDCoMKgwqDCoMKgIC8q Cj4+Pj4gLcKgwqDCoMKgICogTm90ZSB0aGF0IGVuYWJsaW5nIEFUUyBvbiBhIFZGIGZhaWxzIHVu bGVzcyBpdCdzIGFscmVhZHkgZW5hYmxlZAo+Pj4+IC3CoMKgwqDCoCAqIHdpdGggdGhlIHNhbWUg U1RVIG9uIHRoZSBQRi4KPj4+PiArwqDCoMKgwqAgKiBOb3RlIHRoYXQgZW5hYmxpbmcgQVRTIG9u IGEgVkYgZmFpbHMgdW5sZXNzIGl0J3MgYWxyZWFkeQo+Pj4+ICvCoMKgwqDCoCAqIGNvbmZpZ3Vy ZWQgd2l0aCB0aGUgc2FtZSBTVFUgb24gdGhlIFBGLgo+Pj4+IMKgwqDCoMKgwqDCoCAqLwo+Pj4+ IMKgwqDCoMKgwqAgY3RybCA9IFBDSV9BVFNfQ1RSTF9FTkFCTEU7Cj4+Pj4gwqDCoMKgwqDCoCBp ZiAoZGV2LT5pc192aXJ0Zm4pIHsKPj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2kt YXRzLmggYi9pbmNsdWRlL2xpbnV4L3BjaS1hdHMuaAo+Pj4+IGluZGV4IGRmNTRjZDViMTVkYi4u N2Q2MmE5MmFhZjIzIDEwMDY0NAo+Pj4+IC0tLSBhL2luY2x1ZGUvbGludXgvcGNpLWF0cy5oCj4+ Pj4gKysrIGIvaW5jbHVkZS9saW51eC9wY2ktYXRzLmgKPj4+PiBAQCAtOCw2ICs4LDcgQEAKPj4+ PiDCoCAvKiBBZGRyZXNzIFRyYW5zbGF0aW9uIFNlcnZpY2UgKi8KPj4+PiDCoCBib29sIHBjaV9h dHNfc3VwcG9ydGVkKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwo+Pj4+IMKgIGludCBwY2lfZW5hYmxl X2F0cyhzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcHMpOwo+Pj4+ICtpbnQgcGNpX2F0c19zdHVf Y29uZmlndXJlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBwcyk7Cj4+Pj4gwqAgdm9pZCBwY2lf ZGlzYWJsZV9hdHMoc3RydWN0IHBjaV9kZXYgKmRldik7Cj4+Pj4gwqAgaW50IHBjaV9hdHNfcXVl dWVfZGVwdGgoc3RydWN0IHBjaV9kZXYgKmRldik7Cj4+Pj4gwqAgaW50IHBjaV9hdHNfcGFnZV9h bGlnbmVkKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwo+Pj4+IEBAIC0xNiw2ICsxNyw4IEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBwY2lfYXRzX3N1cHBvcnRlZChzdHJ1Y3QgcGNpX2RldiAqZCkKPj4+PiDC oCB7IHJldHVybiBmYWxzZTsgfQo+Pj4+IMKgIHN0YXRpYyBpbmxpbmUgaW50IHBjaV9lbmFibGVf YXRzKHN0cnVjdCBwY2lfZGV2ICpkLCBpbnQgcHMpCj4+Pj4gwqAgeyByZXR1cm4gLUVOT0RFVjsg fQo+Pj4+ICtzdGF0aWMgaW5saW5lIGludCBwY2lfYXRzX3N0dV9jb25maWd1cmUoc3RydWN0IHBj aV9kZXYgKmQsIGludCBwcykKPj4+PiAreyByZXR1cm4gLUVOT0RFVjsgfQo+Pj4+IMKgIHN0YXRp YyBpbmxpbmUgdm9pZCBwY2lfZGlzYWJsZV9hdHMoc3RydWN0IHBjaV9kZXYgKmQpIHsgfQo+Pj4+ IMKgIHN0YXRpYyBpbmxpbmUgaW50IHBjaV9hdHNfcXVldWVfZGVwdGgoc3RydWN0IHBjaV9kZXYg KmQpCj4+Pj4gwqAgeyByZXR1cm4gLUVOT0RFVjsgfQo+Pj4+IC0twqAKPj4+PiAyLjM4LjEKPj4+ Pgo+Pj4+Cj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPj4+PiBsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAo+Pj4+IGxpbnV4LWFybS1rZXJu ZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwo+Pj4+IGh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo+Pgo+IAo+IFRoYW5rcywKPiBHYW5hcGF0 Cj4gCgotLSAKU2F0aHlhbmFyYXlhbmFuIEt1cHB1c3dhbXkKTGludXggS2VybmVsIERldmVsb3Bl cgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJt LWtlcm5lbAo=