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 X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5F012C10DCE for ; Fri, 6 Mar 2020 09:23:33 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 212A3207FD for ; Fri, 6 Mar 2020 09:23:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Jtct0EtJ" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 212A3207FD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date: Message-ID:From:References:To:Subject:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=/pWYOuFmHfLBEJliY0Cu4MqIuIR/YsBbMrn+fmDoFTg=; b=Jtct0EtJXtJFac TOW7zi7OLCmtAT+bKLdqfNLjfNCieL9X9eJEuHUp2PxNVi7WA5jcdrq9bLXmv/si8kW5VU8VuZeFG C2zcCXR+80GsjWxnCdGmJ68PrCF7AxPuXXaq/f0v1Mi2Pkmur0mIdp1jUhhJkKXP/hO4mMqPXoygN SsKoF+yHstY/JQsk5pIyKMgQu0cSq461Zq9xL904C21AqwapFIyt+huIOwMzcJolJnCfek4L+oy9e I79lWYcGSByThkKZXrkaK4bK9SNFnwnx2P7loylG/ELeOLHwIJFvoFn28T9AQzNXKhg4azuSFkOKH reE5z+47Ny3FMJyWpfPA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jA9Cc-0001hl-U7; Fri, 06 Mar 2020 09:23:30 +0000 Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jA9CZ-0001hG-JA for linux-nvme@lists.infradead.org; Fri, 06 Mar 2020 09:23:29 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 5093AADE8; Fri, 6 Mar 2020 09:23:26 +0000 (UTC) Subject: Re: [PATCH 27/29] lpfc: nvme: Add Receive LS Request and Send LS Response support to nvme To: James Smart , linux-nvme@lists.infradead.org References: <20200205183753.25959-1-jsmart2021@gmail.com> <20200205183753.25959-28-jsmart2021@gmail.com> From: Hannes Reinecke Openpgp: preference=signencrypt Autocrypt: addr=hare@suse.de; prefer-encrypt=mutual; keydata= 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 azzYF4VRJsdl+d0MCaSy8mUh Message-ID: <5c997192-6954-97d4-ff81-9d67d856185d@suse.de> Date: Fri, 6 Mar 2020 10:23:25 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 MIME-Version: 1.0 In-Reply-To: <20200205183753.25959-28-jsmart2021@gmail.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200306_012327_926496_3281DF4A X-CRM114-Status: GOOD ( 27.09 ) X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paul Ely , martin.petersen@oracle.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org T24gMi81LzIwIDc6MzcgUE0sIEphbWVzIFNtYXJ0IHdyb3RlOgo+IE5vdyB0aGF0IGNvbW1vbiBo ZWxwZXJzIGV4aXN0LCBhZGQgdGhlIGFiaWxpdHkgdG8gcmVjZWl2ZSBOVk1FIExTIHJlcXVlc3Rz Cj4gdG8gdGhlIGRyaXZlci4gTmV3IHJlcXVlc3RzIHdpbGwgYmUgZGVsaXZlcmVkIHRvIHRoZSB0 cmFuc3BvcnQgYnkKPiBudm1lX2ZjX3Jjdl9sc19yZXEoKS4KPiAKPiBJbiBvcmRlciB0byBjb21w bGV0ZSB0aGUgTFMsIGFkZCBzdXBwb3J0IGZvciBTZW5kIExTIFJlc3BvbnNlIGFuZCBzZW5kCj4g TFMgcmVzcG9uc2UgY29tcGxldGlvbiBoYW5kbGluZyB0byB0aGUgZHJpdmVyLgo+IAo+IFNpZ25l ZC1vZmYtYnk6IFBhdWwgRWx5IDxwYXVsLmVseUBicm9hZGNvbS5jb20+Cj4gU2lnbmVkLW9mZi1i eTogSmFtZXMgU21hcnQgPGpzbWFydDIwMjFAZ21haWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL3Nj c2kvbHBmYy9scGZjX252bWUuYyB8IDEzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPiAgZHJpdmVycy9zY3NpL2xwZmMvbHBmY19udm1lLmggfCAgIDkgKysrCj4g IDIgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9zY3NpL2xwZmMvbHBmY19udm1lLmMgYi9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX252bWUu Ywo+IGluZGV4IGM2MDgyYzY1ZDkwMi4uOWY1ZTg5NjRmODNjIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvc2NzaS9scGZjL2xwZmNfbnZtZS5jCj4gKysrIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19u dm1lLmMKPiBAQCAtNDAwLDYgKzQwMCwxMCBAQCBscGZjX252bWVfcmVtb3RlcG9ydF9kZWxldGUo c3RydWN0IG52bWVfZmNfcmVtb3RlX3BvcnQgKnJlbW90ZXBvcnQpCj4gICAqIHJlcXVlc3QuIEFu eSByZW1haW5pbmcgdmFsaWRhdGlvbiBpcyBkb25lIGFuZCB0aGUgTFMgaXMgdGhlbiBmb3J3YXJk ZWQKPiAgICogdG8gdGhlIG52bWUtZmMgdHJhbnNwb3J0IHZpYSBudm1lX2ZjX3Jjdl9sc19yZXEo KS4KPiAgICoKPiArICogVGhlIGNhbGxpbmcgc2VxdWVuY2Ugc2hvdWxkIGJlOiBudm1lX2ZjX3Jj dl9sc19yZXEoKSAtPiAocHJvY2Vzc2luZykKPiArICogLT4gbHBmY19udm1lX3htdF9sc19yc3Av Y21wIC0+IHJlcS0+ZG9uZS4KPiArICogbHBmY19udm1lX3htdF9sc19yc3BfY21wIHNob3VsZCBm cmVlIHRoZSBhbGxvY2F0ZWQgYXhjaGcuCj4gKyAqCj4gICAqIFJldHVybnMgMCBpZiBMUyB3YXMg aGFuZGxlZCBhbmQgZGVsaXZlcmVkIHRvIHRoZSB0cmFuc3BvcnQKPiAgICogUmV0dXJucyAxIGlm IExTIGZhaWxlZCB0byBiZSBoYW5kbGVkIGFuZCBzaG91bGQgYmUgZHJvcHBlZAo+ICAgKi8KPiBA QCAtNDA3LDYgKzQxMSw0NiBAQCBpbnQKPiAgbHBmY19udm1lX2hhbmRsZV9sc3JlcShzdHJ1Y3Qg bHBmY19oYmEgKnBoYmEsCj4gIAkJCXN0cnVjdCBscGZjX2FzeW5jX3hjaGdfY3R4ICpheGNoZykK PiAgewo+ICsjaWYgKElTX0VOQUJMRUQoQ09ORklHX05WTUVfRkMpKQo+ICsJc3RydWN0IGxwZmNf dnBvcnQgKnZwb3J0Owo+ICsJc3RydWN0IGxwZmNfbnZtZV9ycG9ydCAqbHBmY19ycG9ydDsKPiAr CXN0cnVjdCBudm1lX2ZjX3JlbW90ZV9wb3J0ICpyZW1vdGVwb3J0Owo+ICsJc3RydWN0IGxwZmNf bnZtZV9scG9ydCAqbHBvcnQ7Cj4gKwl1aW50MzJfdCAqcGF5bG9hZCA9IGF4Y2hnLT5wYXlsb2Fk Owo+ICsJaW50IHJjOwo+ICsKPiArCXZwb3J0ID0gYXhjaGctPm5kbHAtPnZwb3J0Owo+ICsJbHBm Y19ycG9ydCA9IGF4Y2hnLT5uZGxwLT5ucnBvcnQ7Cj4gKwlpZiAoIWxwZmNfcnBvcnQpCj4gKwkJ cmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJcmVtb3RlcG9ydCA9IGxwZmNfcnBvcnQtPnJlbW90ZXBv cnQ7Cj4gKwlpZiAoIXZwb3J0LT5sb2NhbHBvcnQpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ ICsJbHBvcnQgPSB2cG9ydC0+bG9jYWxwb3J0LT5wcml2YXRlOwo+ICsJaWYgKCFscG9ydCkKPiAr CQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlhdG9taWNfaW5jKCZscG9ydC0+cmN2X2xzX3JlcV9p bik7Cj4gKwo+ICsJcmMgPSBudm1lX2ZjX3Jjdl9sc19yZXEocmVtb3RlcG9ydCwgJmF4Y2hnLT5s c19yc3AsIGF4Y2hnLT5wYXlsb2FkLAo+ICsJCQkJYXhjaGctPnNpemUpOwo+ICsKPiArCWxwZmNf cHJpbnRmX2xvZyhwaGJhLCBLRVJOX0lORk8sIExPR19OVk1FX0RJU0MsCj4gKwkJCSI2MjA1IE5W TUUgVW5zb2wgcmN2OiBzeiAlZCByYyAlZDogJTA4eCAlMDh4ICUwOHggIgo+ICsJCQkiJTA4eCAl MDh4ICUwOHhcbiIsCj4gKwkJCWF4Y2hnLT5zaXplLCByYywKPiArCQkJKnBheWxvYWQsICoocGF5 bG9hZCsxKSwgKihwYXlsb2FkKzIpLAo+ICsJCQkqKHBheWxvYWQrMyksICoocGF5bG9hZCs0KSwg KihwYXlsb2FkKzUpKTsKPiArCj4gKwlpZiAoIXJjKSB7Cj4gKwkJYXRvbWljX2luYygmbHBvcnQt PnJjdl9sc19yZXFfb3V0KTsKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArCj4gKwlhdG9taWNfaW5j KCZscG9ydC0+cmN2X2xzX3JlcV9kcm9wKTsKPiArI2VuZGlmCj4gIAlyZXR1cm4gMTsKPiAgfQo+ ICAKPiBAQCAtODU5LDYgKzkwMyw4MSBAQCBfX2xwZmNfbnZtZV9sc19hYm9ydChzdHJ1Y3QgbHBm Y192cG9ydCAqdnBvcnQsIHN0cnVjdCBscGZjX25vZGVsaXN0ICpuZGxwLAo+ICB9Cj4gIAo+ICAv KioKPiArICogbHBmY19udm1lX3htdF9sc19yc3BfY21wIC0gQ29tcGxldGlvbiBoYW5kbGVyIGZv ciBMUyBSZXNwb25zZQo+ICsgKiBAcGhiYTogUG9pbnRlciB0byBIQkEgY29udGV4dCBvYmplY3Qu Cj4gKyAqIEBjbWR3cWU6IFBvaW50ZXIgdG8gZHJpdmVyIGNvbW1hbmQgV1FFIG9iamVjdC4KPiAr ICogQHdjcWU6IFBvaW50ZXIgdG8gZHJpdmVyIHJlc3BvbnNlIENRRSBvYmplY3QuCj4gKyAqCj4g KyAqIFRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBTTEkgcmluZyBldmVudCBoYW5kbGVyIHdp dGggbm8KPiArICogbG9jayBoZWxkLiBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBjb21wbGV0aW9uIGhh bmRsZXIgZm9yIE5WTUUgTFMgY29tbWFuZHMKPiArICogVGhlIGZ1bmN0aW9uIHVwZGF0ZXMgYW55 IHN0YXRlcyBhbmQgc3RhdGlzdGljcywgdGhlbiBjYWxscyB0aGUKPiArICogZ2VuZXJpYyBjb21w bGV0aW9uIGhhbmRsZXIgdG8gZnJlZSByZXNvdXJjZXMuCj4gKyAqKi8KPiArc3RhdGljIHZvaWQK PiArbHBmY19udm1lX3htdF9sc19yc3BfY21wKHN0cnVjdCBscGZjX2hiYSAqcGhiYSwgc3RydWN0 IGxwZmNfaW9jYnEgKmNtZHdxZSwKPiArCQkJICBzdHJ1Y3QgbHBmY193Y3FlX2NvbXBsZXRlICp3 Y3FlKQo+ICt7Cj4gKwlzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQgPSBjbWR3cWUtPnZwb3J0Owo+ ICsJc3RydWN0IGxwZmNfbnZtZV9scG9ydCAqbHBvcnQ7Cj4gKwl1aW50MzJfdCBzdGF0dXMsIHJl c3VsdDsKPiArCj4gKwlzdGF0dXMgPSBiZl9nZXQobHBmY193Y3FlX2Nfc3RhdHVzLCB3Y3FlKSAm IExQRkNfSU9DQl9TVEFUVVNfTUFTSzsKPiArCXJlc3VsdCA9IHdjcWUtPnBhcmFtZXRlcjsKPiAr Cj4gKwlpZiAoIXZwb3J0LT5sb2NhbHBvcnQpCj4gKwkJZ290byBmaW5pc2g7Cj4gKwo+ICsJbHBv cnQgPSAoc3RydWN0IGxwZmNfbnZtZV9scG9ydCAqKXZwb3J0LT5sb2NhbHBvcnQtPnByaXZhdGU7 Cj4gKwlpZiAobHBvcnQpIHsKPiArCQlpZiAoc3RhdHVzKSB7Cj4gKwkJCWF0b21pY19pbmMoJmxw b3J0LT54bXRfbHNfcnNwX2Vycm9yKTsKPiArCQkJaWYgKHJlc3VsdCA9PSBJT0VSUl9BQk9SVF9S RVFVRVNURUQpCj4gKwkJCQlhdG9taWNfaW5jKCZscG9ydC0+eG10X2xzX3JzcF9hYm9ydGVkKTsK PiArCQkJaWYgKGJmX2dldChscGZjX3djcWVfY194Yiwgd2NxZSkpCj4gKwkJCQlhdG9taWNfaW5j KCZscG9ydC0+eG10X2xzX3JzcF94Yl9zZXQpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCWF0b21pY19p bmMoJmxwb3J0LT54bXRfbHNfcnNwX2NtcGwpOwo+ICsJCX0KPiArCX0KPiArCj4gK2ZpbmlzaDoK PiArCV9fbHBmY19udm1lX3htdF9sc19yc3BfY21wKHBoYmEsIGNtZHdxZSwgd2NxZSk7Cj4gK30K PiArCj4gK3N0YXRpYyBpbnQKPiArbHBmY19udm1lX3htdF9sc19yc3Aoc3RydWN0IG52bWVfZmNf bG9jYWxfcG9ydCAqbG9jYWxwb3J0LAo+ICsJCSAgICAgc3RydWN0IG52bWVfZmNfcmVtb3RlX3Bv cnQgKnJlbW90ZXBvcnQsCj4gKwkJICAgICBzdHJ1Y3QgbnZtZWZjX2xzX3JzcCAqbHNfcnNwKQo+ ICt7Cj4gKwlzdHJ1Y3QgbHBmY19hc3luY194Y2hnX2N0eCAqYXhjaGcgPQo+ICsJCWNvbnRhaW5l cl9vZihsc19yc3AsIHN0cnVjdCBscGZjX2FzeW5jX3hjaGdfY3R4LCBsc19yc3ApOwo+ICsJc3Ry dWN0IGxwZmNfbnZtZV9scG9ydCAqbHBvcnQ7Cj4gKwlpbnQgcmM7Cj4gKwo+ICsJaWYgKGF4Y2hn LT5waGJhLT5wcG9ydC0+bG9hZF9mbGFnICYgRkNfVU5MT0FESU5HKQo+ICsJCXJldHVybiAtRU5P REVWOwo+ICsKPiArCWxwb3J0ID0gKHN0cnVjdCBscGZjX252bWVfbHBvcnQgKilsb2NhbHBvcnQt PnByaXZhdGU7Cj4gKwo+ICsJcmMgPSBfX2xwZmNfbnZtZV94bXRfbHNfcnNwKGF4Y2hnLCBsc19y c3AsIGxwZmNfbnZtZV94bXRfbHNfcnNwX2NtcCk7Cj4gKwo+ICsJaWYgKHJjKSB7Cj4gKwkJYXRv bWljX2luYygmbHBvcnQtPnhtdF9sc19kcm9wKTsKPiArCQkvKgo+ICsJCSAqIHVubGVzcyB0aGUg ZmFpbHVyZSBpcyBkdWUgdG8gaGF2aW5nIGFscmVhZHkgc2VudAo+ICsJCSAqIHRoZSByZXNwb25z ZSwgYW4gYWJvcnQgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIHRoZQo+ICsJCSAqIGV4Y2hhbmdlIGlm IHRoZSByc3AgY2FuJ3QgYmUgc2VudC4KPiArCQkgKi8KPiArCQlpZiAocmMgIT0gLUVBTFJFQURZ KQo+ICsJCQlhdG9taWNfaW5jKCZscG9ydC0+eG10X2xzX2Fib3J0KTsKPiArCQlyZXR1cm4gcmM7 Cj4gKwl9Cj4gKwo+ICsJYXRvbWljX2luYygmbHBvcnQtPnhtdF9sc19yc3ApOwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArCj4gKy8qKgo+ICAgKiBscGZjX252bWVfbHNfYWJvcnQgLSBBYm9ydCBhIHBy aW9yIE5WTUUgTFMgcmVxdWVzdAo+ICAgKiBAbHBmY19udm1lX2xwb3J0OiBUcmFuc3BvcnQgbG9j YWxwb3J0IHRoYXQgTFMgaXMgdG8gYmUgaXNzdWVkIGZyb20uCj4gICAqIEBscGZjX252bWVfcnBv cnQ6IFRyYW5zcG9ydCByZW1vdGVwb3J0IHRoYXQgTFMgaXMgdG8gYmUgc2VudCB0by4KPiBAQCAt MjA5MCw2ICsyMjA5LDcgQEAgc3RhdGljIHN0cnVjdCBudm1lX2ZjX3BvcnRfdGVtcGxhdGUgbHBm Y19udm1lX3RlbXBsYXRlID0gewo+ICAJLmZjcF9pbyAgICAgICA9IGxwZmNfbnZtZV9mY3BfaW9f c3VibWl0LAo+ICAJLmxzX2Fib3J0ICAgICA9IGxwZmNfbnZtZV9sc19hYm9ydCwKPiAgCS5mY3Bf YWJvcnQgICAgPSBscGZjX252bWVfZmNwX2Fib3J0LAo+ICsJLnhtdF9sc19yc3AgICA9IGxwZmNf bnZtZV94bXRfbHNfcnNwLAo+ICAKPiAgCS5tYXhfaHdfcXVldWVzID0gMSwKPiAgCS5tYXhfc2ds X3NlZ21lbnRzID0gTFBGQ19OVk1FX0RFRkFVTFRfU0VHUywKPiBAQCAtMjI4NSw2ICsyNDA1LDE2 IEBAIGxwZmNfbnZtZV9jcmVhdGVfbG9jYWxwb3J0KHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCkK PiAgCQlhdG9taWNfc2V0KCZscG9ydC0+Y21wbF9mY3BfZXJyLCAwKTsKPiAgCQlhdG9taWNfc2V0 KCZscG9ydC0+Y21wbF9sc194YiwgMCk7Cj4gIAkJYXRvbWljX3NldCgmbHBvcnQtPmNtcGxfbHNf ZXJyLCAwKTsKPiArCQlhdG9taWNfc2V0KCZscG9ydC0+eG10X2xzX3JzcCwgMCk7Cj4gKwkJYXRv bWljX3NldCgmbHBvcnQtPnhtdF9sc19kcm9wLCAwKTsKPiArCQlhdG9taWNfc2V0KCZscG9ydC0+ eG10X2xzX3JzcF9jbXBsLCAwKTsKPiArCQlhdG9taWNfc2V0KCZscG9ydC0+eG10X2xzX3JzcF9l cnJvciwgMCk7Cj4gKwkJYXRvbWljX3NldCgmbHBvcnQtPnhtdF9sc19yc3BfYWJvcnRlZCwgMCk7 Cj4gKwkJYXRvbWljX3NldCgmbHBvcnQtPnhtdF9sc19yc3BfeGJfc2V0LCAwKTsKPiArCQlhdG9t aWNfc2V0KCZscG9ydC0+cmN2X2xzX3JlcV9pbiwgMCk7Cj4gKwkJYXRvbWljX3NldCgmbHBvcnQt PnJjdl9sc19yZXFfb3V0LCAwKTsKPiArCQlhdG9taWNfc2V0KCZscG9ydC0+cmN2X2xzX3JlcV9k cm9wLCAwKTsKPiArCj4gIAkJYXRvbWljX3NldCgmbHBvcnQtPmZjNE52bWVMc1JlcXVlc3RzLCAw KTsKPiAgCQlhdG9taWNfc2V0KCZscG9ydC0+ZmM0TnZtZUxzQ21wbHMsIDApOwo+ICAJfQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX252bWUuaCBiL2RyaXZlcnMvc2NzaS9s cGZjL2xwZmNfbnZtZS5oCj4gaW5kZXggMmNlMjlkZmVlZGRhLi5lNGU2OTZmMTI0MzMgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19udm1lLmgKPiArKysgYi9kcml2ZXJzL3Nj c2kvbHBmYy9scGZjX252bWUuaAo+IEBAIC02Nyw2ICs2NywxNSBAQCBzdHJ1Y3QgbHBmY19udm1l X2xwb3J0IHsKPiAgCWF0b21pY190IGNtcGxfZmNwX2VycjsKPiAgCWF0b21pY190IGNtcGxfbHNf eGI7Cj4gIAlhdG9taWNfdCBjbXBsX2xzX2VycjsKPiArCWF0b21pY190IHhtdF9sc19yc3A7Cj4g KwlhdG9taWNfdCB4bXRfbHNfZHJvcDsKPiArCWF0b21pY190IHhtdF9sc19yc3BfY21wbDsKPiAr CWF0b21pY190IHhtdF9sc19yc3BfZXJyb3I7Cj4gKwlhdG9taWNfdCB4bXRfbHNfcnNwX2Fib3J0 ZWQ7Cj4gKwlhdG9taWNfdCB4bXRfbHNfcnNwX3hiX3NldDsKPiArCWF0b21pY190IHJjdl9sc19y ZXFfaW47Cj4gKwlhdG9taWNfdCByY3ZfbHNfcmVxX291dDsKPiArCWF0b21pY190IHJjdl9sc19y ZXFfZHJvcDsKPiAgfTsKPiAgCj4gIHN0cnVjdCBscGZjX252bWVfcnBvcnQgewo+IApBbmQgaGVy ZSdzIG1lLCB3b3JyeWluZyBhYm91dCB0aGUgaW1wYWN0IGEgc2luZ2xlIGF0b21pY190IG1pZ2h0 IGhhdmUgLi4uCkFueSBpZGVhcyBvZiBtYWtpbmcgdGhpcyBjb25kaXRpb25hbCBhbmQgYWxsb3dp bmcgdG8gZW5hYmxlIHN0YXRpc3RpY3MKc2VwYXJhdGVseT8KCkNoZWVycywKCkhhbm5lcwotLSAK RHIuIEhhbm5lcyBSZWluZWNrZQkJICAgICAgICAgICBLZXJuZWwgU3RvcmFnZSBBcmNoaXRlY3QK aGFyZUBzdXNlLmRlCQkJICAgICAgICAgICAgICAgICAgKzQ5IDkxMSA3NDA1MyA2ODgKU1VTRSBT b2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJILCBNYXhmZWxkc3RyLiA1LCA5MDQwOSBOw7xy bmJlcmcKSFJCIDM2ODA5IChBRyBOw7xybmJlcmcpLCBHRjogRmVsaXggSW1lbmTDtnJmZmVyCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1udm1l IG1haWxpbmcgbGlzdApsaW51eC1udm1lQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udm1lCg==