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=-15.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,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 E27F6C433DB for ; Thu, 4 Mar 2021 12:52:42 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 BB5B664ED7 for ; Thu, 4 Mar 2021 12:52:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BB5B664ED7 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=desiato.20200630; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=EZ84ZZ5bjTEriHzUU7YyowsNUmBxbxJkCJDmYw03LF0=; b=nMTfSKspMeIlJC9HAB5Bnn4zh wnHbJm6zd5cdVq8gH2kW6NC2idkrpkqw/R5NLitPVa/j0jwWQd1fWpehKIuodGfE3czYkUe9ahkxk /a1OtFD/zC/CWnIod6DpE7mFw8yJqwhZ/JZKnLwXzvKiiw/b/WMOisdQfKb3xF3Sdh0A5NTBPSKAR qQEsYmVXt66CC+g390B4RJObog0iU6Ad32JqTMxL1j4F0vonKgL57LiMQ0dJtv9vWgZj3KH1keEU8 UMas7MRz1ZzUIk2j2zRpjPorrUbWB4smS/pg3G4pcdoOFfY3k53GrxgysWGzQzNpBj26WT6IbAi0P oGgBw1yTA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lHnSl-008fTR-Th; Thu, 04 Mar 2021 12:52:21 +0000 Received: from mx2.suse.de ([195.135.220.15]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lHnSV-008fQp-AQ for linux-nvme@lists.infradead.org; Thu, 04 Mar 2021 12:52:12 +0000 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id E1E41AAC5; Thu, 4 Mar 2021 12:52:02 +0000 (UTC) Subject: Re: [PATCH v8 15/16] lpfc: vmid: Introducing vmid in io path. To: Muneendra , linux-block@vger.kernel.org, linux-scsi@vger.kernel.org, tj@kernel.org, linux-nvme@lists.infradead.org Cc: jsmart2021@gmail.com, emilne@redhat.com, mkumar@redhat.com, Gaurav Srivastava References: <1614835646-16217-1-git-send-email-muneendra.kumar@broadcom.com> <1614835646-16217-16-git-send-email-muneendra.kumar@broadcom.com> From: Hannes Reinecke Message-ID: <9b48d9ce-405b-5f6e-a4ff-37a996258e5c@suse.de> Date: Thu, 4 Mar 2021 13:52:02 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 MIME-Version: 1.0 In-Reply-To: <1614835646-16217-16-git-send-email-muneendra.kumar@broadcom.com> Content-Language: en-US X-BeenThere: linux-nvme@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-nvme" Errors-To: linux-nvme-bounces+linux-nvme=archiver.kernel.org@lists.infradead.org T24gMy80LzIxIDY6MjcgQU0sIE11bmVlbmRyYSB3cm90ZToKPiBGcm9tOiBHYXVyYXYgU3JpdmFz dGF2YSA8Z2F1cmF2LnNyaXZhc3RhdmFAYnJvYWRjb20uY29tPgo+IAo+IFRoZSBwYXRjaCBpbnRy b2R1Y2VzIHRoZSB2bWlkIGluIHRoZSBpbyBwYXRoLiBJdCBjaGVja3MgaWYgdGhlIHZtaWQgaXMK PiBlbmFibGVkIGFuZCBpZiBpbyBiZWxvbmdzIHRvIGEgdm0gb3Igbm90IGFuZCBhY3RzIGFjY29y ZGluZ2x5LiBPdGhlcgo+IHN1cHBvcmluZyBBUElzIGFyZSBhbHNvIGluY2x1ZGVkIGluIHRoZSBw YXRjaC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBHYXVyYXYgU3JpdmFzdGF2YSAgPGdhdXJhdi5zcml2 YXN0YXZhQGJyb2FkY29tLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBTbWFydCA8anNtYXJ0 MjAyMUBnbWFpbC5jb20+Cj4gCj4gLS0tCj4gdjg6Cj4gQWRkZWQgcHJvcGVyIGVycm9yIGNvZGVz Cj4gdXBkYXRlZCBsb2dpYyB3aGlsZSBoYW5kbGluZyB2bWlkCj4gCj4gdjc6Cj4gTm8gY2hhbmdl Cj4gCj4gdjY6Cj4gTm8gY2hhbmdlCj4gCj4gdjU6Cj4gTm8gY2hhbmdlCj4gCj4gdjQ6Cj4gTm8g Y2hhbmdlCj4gCj4gdjM6Cj4gUmVwbGFjZWQgYmxrY2dfZ2V0X2FwcF9pZGVudGlmaWVyIHdpdGgg YmxrY2dfZ2V0X2ZjX2FwcGlkCj4gCj4gdjI6Cj4gUG9ydGVkIHRoZSBwYXRjaCBvbiB0b3Agb2Yg NS4xMC9zY3NpLXF1ZXVlCj4gQWRkZWQgYSBmaXggZm9yIGlzc3VpbmcgUUZQQSBjb21tYW5kIHdo aWNoIHdhcyBub3QgaW5jbHVkZWQgaW4gdGhlCj4gbGFzdCBzdWJtaXQKPiAtLS0KPiAgIGRyaXZl cnMvc2NzaS9scGZjL2xwZmNfc2NzaS5jIHwgMTY4ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiAgIDEgZmlsZSBjaGFuZ2VkLCAxNjggaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX3Njc2kuYyBiL2RyaXZlcnMvc2NzaS9scGZj L2xwZmNfc2NzaS5jCj4gaW5kZXggYjcxNjAyODc4NTU5Li5kYzBkMDlkNGIyMmEgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19zY3NpLmMKPiArKysgYi9kcml2ZXJzL3Njc2kv bHBmYy9scGZjX3Njc2kuYwo+IEBAIC01Mjc5LDYgKzUyNzksMTU0IEBAIHN0YXRpYyB2b2lkIGxw ZmNfdm1pZF9hc3NpZ25fY3NfY3RsKHN0cnVjdCBscGZjX3Zwb3J0ICp2cG9ydCwKPiAgIAl9Cj4g ICB9Cj4gICAKPiArLyoKPiArICogbHBmY192bWlkX2dldF9hcHBpZC0gZ2V0IHRoZSB2bWlkIGFz c29jaWF0ZWQgd2l0aCB0aGUgdXVpZAo+ICsgKiBAdnBvcnQ6IFRoZSB2aXJ0dWFsIHBvcnQgZm9y IHdoaWNoIHRoaXMgY2FsbCBpcyBiZWluZyBleGVjdXRlZC4KPiArICogQHV1aWQ6IHV1aWQgYXNz b2NpYXRlZCB3aXRoIHRoZSBWRQo+ICsgKiBAY21kOiBhZGRyZXNzIG9mIHNjc2kgY21tZCBkZXNj cmlwdG9yCj4gKyAqIEB0YWc6IFZNSUQgdGFnCj4gKyAqIFJldHVybnMgc3RhdHVzIG9mIHRoZSBm dW5jdGlvbgo+ICsgKi8KPiArc3RhdGljIGludCBscGZjX3ZtaWRfZ2V0X2FwcGlkKHN0cnVjdCBs cGZjX3Zwb3J0ICp2cG9ydCwgY2hhciAqdXVpZCwgc3RydWN0Cj4gKwkJCSAgICAgICBzY3NpX2Nt bmQgKiBjbWQsIHVuaW9uIGxwZmNfdm1pZF9pb190YWcgKnRhZykKPiArewo+ICsJc3RydWN0IGxw ZmNfdm1pZCAqdm1wID0gTlVMTDsKPiArCWludCBoYXNoLCBsZW4sIHJjLCBpOwo+ICsJdTggcGVu ZGluZyA9IDA7Cj4gKwo+ICsJLyogY2hlY2sgaWYgUUZQQSBpcyBjb21wbGV0ZSAqLwo+ICsJaWYg KGxwZmNfdm1pZF9pc190eXBlX3ByaW9yaXR5X3RhZyh2cG9ydCkgJiYgISh2cG9ydC0+dm1pZF9m bGFnICYKPiArCSAgICAgIExQRkNfVk1JRF9RRlBBX0NNUEwpKSB7Cj4gKwkJdnBvcnQtPndvcmtf cG9ydF9ldmVudHMgfD0gV09SS0VSX0NIRUNLX1ZNSURfSVNTVUVfUUZQQTsKPiArCQlyZXR1cm4g LUVBR0FJTjsKPiArCX0KPiArCj4gKwkvKiBzZWFyY2ggaWYgdGhlIHV1aWQgaGFzIGFscmVhZHkg YmVlbiBtYXBwZWQgdG8gdGhlIHZtaWQgKi8KPiArCWxlbiA9IHN0cmxlbih1dWlkKTsKPiArCWhh c2ggPSBscGZjX3ZtaWRfaGFzaF9mbih1dWlkLCBsZW4pOwo+ICsKPiArCS8qIHNlYXJjaCBmb3Ig dGhlIFZNSUQgaW4gdGhlIHRhYmxlICovCj4gKwlyZWFkX2xvY2soJnZwb3J0LT52bWlkX2xvY2sp Owo+ICsJdm1wID0gbHBmY19nZXRfdm1pZF9mcm9tX2hhc3RhYmxlKHZwb3J0LCBoYXNoLCB1dWlk KTsKPiArCXJlYWRfdW5sb2NrKCZ2cG9ydC0+dm1pZF9sb2NrKTsKPiArCj4gKwkvKiBpZiBmb3Vu ZCwgY2hlY2sgaWYgaXRzIGFscmVhZHkgcmVnaXN0ZXJlZCAgKi8KCkFzIHRoZSAndm1wLT5mbGFn JyB2YWx1ZXMgYXJlIF9zZXRfIHVuZGVyIHRoZSB2bWlkX2xvY2sgSSB3b3VsZCBoYXZlIApleHBl Y3RlZCB0aGF0IHdlJ2QgbmVlZCB0byBjaGVjayB0aGVtIHVuZGVyIHRoZSBzYW1lIGxvY2s7IGFm dGVyIGFsbCwgCmFub3RoZXIgdGhyZWFkIG1pZ2h0IG1vZGlmeWluZyB0aGVtLgpBbmQgb25lIGNh bm5vdCBndWFyYW50ZWUgdGhhdCB0aGlzIG9wZXJhdGlvbiBpcyBhdG9taWMsIHNvIHdpdGhvdXQg YSAKbG9jayBJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgYSAnUkVBRF9PTkNFKCknIG9yIHRlc3RfYml0 KCkgaGVyZS4KCj4gKwlpZiAodm1wICAmJiB2bXAtPmZsYWcgJiBMUEZDX1ZNSURfUkVHSVNURVJF RCkgewo+ICsJCWxwZmNfdm1pZF91cGRhdGVfZW50cnkodnBvcnQsIGNtZCwgdm1wLCB0YWcpOwo+ ICsJCXJjID0gMDsKPiArCX0gZWxzZSBpZiAodm1wICYmICh2bXAtPmZsYWcgJiBMUEZDX1ZNSURf UkVRX1JFR0lTVEVSIHx8Cj4gKwkJCSAgIHZtcC0+ZmxhZyAmIExQRkNfVk1JRF9ERV9SRUdJU1RF UikpIHsKPiArCQkvKiBlbHNlIGlmIHJlZ2lzdGVyIG9yIGRlcmVnIHJlcXVlc3QgaGFzIGFscmVh ZHkgYmVlbiBzZW50ICovCj4gKwkJLyogSGVuY2Ugdm1pZCB0YWcgd2lsbCBub3QgYmUgYWRkZWQg Zm9yIHRoaXMgSU8gKi8KPiArCQlyYyA9IC1FQlVTWTsKPiArCX0gZWxzZSB7Cj4gKwkJLyogZWxz ZSwgc3RhcnQgdGhlIHByb2Nlc3MgdG8gb2J0YWluIG9uZSBhcyBwZXIgdGhlICovCj4gKwkJLyog c3dpdGNoIGNvbm5lY3RlZCAqLwo+ICsJCXdyaXRlX2xvY2soJnZwb3J0LT52bWlkX2xvY2spOwo+ ICsJCXZtcCA9IGxwZmNfZ2V0X3ZtaWRfZnJvbV9oYXN0YWJsZSh2cG9ydCwgaGFzaCwgdXVpZCk7 Cj4gKwo+ICsJCS8qIHdoaWxlIHRoZSByZWFkIGxvY2sgd2FzIHJlbGVhc2VkLCBpbiBjYXNlIHRo ZSBlbnRyeSB3YXMgKi8KPiArCQkvKiBhZGRlZCBieSBvdGhlciBjb250ZXh0IG9yIGlzIGluIHBy b2Nlc3Mgb2YgYmVpbmcgYWRkZWQgKi8KPiArCQlpZiAodm1wICYmIHZtcC0+ZmxhZyAmIExQRkNf Vk1JRF9SRUdJU1RFUkVEKSB7Cj4gKwkJCWxwZmNfdm1pZF91cGRhdGVfZW50cnkodnBvcnQsIGNt ZCwgdm1wLCB0YWcpOwo+ICsJCQl3cml0ZV91bmxvY2soJnZwb3J0LT52bWlkX2xvY2spOwo+ICsJ CQlyZXR1cm4gMDsKPiArCQl9IGVsc2UgaWYgKHZtcCAmJiB2bXAtPmZsYWcgJiBMUEZDX1ZNSURf UkVRX1JFR0lTVEVSKSB7Cj4gKwkJCXdyaXRlX3VubG9jaygmdnBvcnQtPnZtaWRfbG9jayk7Cj4g KwkJCXJldHVybiAtRUJVU1k7Cj4gKwkJfQo+ICsKPiArCQkvKiBlbHNlIHNlYXJjaCBhbmQgYWxs b2NhdGUgYSBmcmVlIHNsb3QgaW4gdGhlIGhhc2ggdGFibGUgKi8KPiArCQlpZiAodnBvcnQtPmN1 cl92bWlkX2NudCA8IHZwb3J0LT5tYXhfdm1pZCkgewo+ICsJCQlmb3IgKGkgPSAwOyBpIDwgdnBv cnQtPm1heF92bWlkOyArK2kpIHsKPiArCQkJCXZtcCA9IHZwb3J0LT52bWlkICsgaTsKPiArCQkJ CWlmICh2bXAtPmZsYWcgPT0gTFBGQ19WTUlEX1NMT1RfRlJFRSkgewo+ICsJCQkJCXZtcCA9IHZw b3J0LT52bWlkICsgaTsKPiArCQkJCQlicmVhazsKPiArCQkJCX0KPiArCQkJfQo+ICsJCX0gZWxz ZSB7Cj4gKwkJCXdyaXRlX3VubG9jaygmdnBvcnQtPnZtaWRfbG9jayk7Cj4gKwkJCXJldHVybiAt RU5PTUVNOwo+ICsJCX0KPiArCj4gKwkJaWYgKHZtcCAmJiAodm1wLT5mbGFnID09IExQRkNfVk1J RF9TTE9UX0ZSRUUpKSB7Cj4gKwkJCS8qIEFkZCB0aGUgdm1pZCBhbmQgcmVnaXN0ZXIgICovCj4g KwkJCWlmIChscGZjX3B1dF92bWlkX2luX2hhc2h0YWJsZSh2cG9ydCwgaGFzaCwgdm1wKSkgewo+ ICsJCQkJd3JpdGVfdW5sb2NrKCZ2cG9ydC0+dm1pZF9sb2NrKTsKPiArCQkJCXJldHVybiAtRU5P TUVNOwo+ICsJCQl9Cj4gKwkJCXZtcC0+dm1pZF9sZW4gPSBsZW47Cj4gKwkJCW1lbWNweSh2bXAt Pmhvc3Rfdm1pZCwgdXVpZCwgdm1wLT52bWlkX2xlbik7Cj4gKwkJCXZtcC0+aW9fcmRfY250ID0g MDsKPiArCQkJdm1wLT5pb193cl9jbnQgPSAwOwo+ICsJCQl2bXAtPmZsYWcgPSBMUEZDX1ZNSURf U0xPVF9VU0VEOwo+ICsKPiArCQkJdm1wLT5kZWxldGVfaW5hY3RpdmUgPQo+ICsJCQkgICAgdnBv cnQtPnZtaWRfaW5hY3Rpdml0eV90aW1lb3V0ID8gMSA6IDA7Cj4gKwo+ICsJCQkvKiBpZiB0eXBl IHByaW9yaXR5IHRhZywgZ2V0IG5leHQgYXZhaWxhYmxlIHZtaWQgKi8KPiArCQkJaWYgKGxwZmNf dm1pZF9pc190eXBlX3ByaW9yaXR5X3RhZyh2cG9ydCkpCj4gKwkJCQlscGZjX3ZtaWRfYXNzaWdu X2NzX2N0bCh2cG9ydCwgdm1wKTsKPiArCj4gKwkJCS8qIGFsbG9jYXRlIHRoZSBwZXIgY3B1IHZh cmlhYmxlIGZvciBob2xkaW5nICovCj4gKwkJCS8qIHRoZSBsYXN0IGFjY2VzcyB0aW1lIHN0YW1w IG9ubHkgaWYgdm1pZCBpcyBlbmFibGVkICovCj4gKwkJCWlmICghdm1wLT5sYXN0X2lvX3RpbWUp Cj4gKwkJCQl2bXAtPmxhc3RfaW9fdGltZSA9Cj4gKwkJCQkgICAgX19hbGxvY19wZXJjcHUoc2l6 ZW9mKHU2NCksCj4gKwkJCQkJCSAgIF9fYWxpZ25vZl9fKHN0cnVjdAo+ICsJCQkJCQkJICAgICAg IGxwZmNfdm1pZCkpOwo+ICsKPiArCQkJLyogcmVnaXN0cmF0aW9uIHBlbmRpbmcgKi8KPiArCQkJ cGVuZGluZyA9IDE7Cj4gKwkJfSBlbHNlIHsKPiArCQkJcmMgPSAtRU5PTUVNOwo+ICsJCX0KPiAr CQl3cml0ZV91bmxvY2soJnZwb3J0LT52bWlkX2xvY2spOwo+ICsKPiArCQkvKiBjb21wbGV0ZSB0 cmFuc2FjdGlvbiB3aXRoIHN3aXRjaCAqLwo+ICsJCWlmIChwZW5kaW5nKSB7Cj4gKwkJCWlmIChs cGZjX3ZtaWRfaXNfdHlwZV9wcmlvcml0eV90YWcodnBvcnQpKQo+ICsJCQkJcmMgPSBscGZjX3Zt aWRfdXZlbSh2cG9ydCwgdm1wLCB0cnVlKTsKPiArCQkJZWxzZQo+ICsJCQkJcmMgPSBscGZjX3Zt aWRfY21kKHZwb3J0LAo+ICsJCQkJCQkgICBTTElfQ1RBU19SQVBQX0lERU5ULAo+ICsJCQkJCQkg ICB2bXApOwo+ICsJCQlpZiAoIXJjKSB7Cj4gKwkJCQl3cml0ZV9sb2NrKCZ2cG9ydC0+dm1pZF9s b2NrKTsKPiArCQkJCXZwb3J0LT5jdXJfdm1pZF9jbnQrKzsKPiArCQkJCXZtcC0+ZmxhZyB8PSBM UEZDX1ZNSURfUkVRX1JFR0lTVEVSOwo+ICsJCQkJd3JpdGVfdW5sb2NrKCZ2cG9ydC0+dm1pZF9s b2NrKTsKPiArCQkJfQo+ICsJCX0KPiArCj4gKwkJLyogZmluYWxseSwgZW5hYmxlIHRoZSBpZGxl IHRpbWVyIG9uY2UgKi8KPiArCQlpZiAoISh2cG9ydC0+cGhiYS0+cHBvcnQtPnZtaWRfZmxhZyAm IExQRkNfVk1JRF9USU1FUl9FTkJMRCkpIHsKPiArCQkJbW9kX3RpbWVyKCZ2cG9ydC0+cGhiYS0+ aW5hY3RpdmVfdm1pZF9wb2xsLAo+ICsJCQkJICBqaWZmaWVzICsKPiArCQkJCSAgbXNlY3NfdG9f amlmZmllcygxMDAwICogTFBGQ19WTUlEX1RJTUVSKSk7Cj4gKwkJCXZwb3J0LT5waGJhLT5wcG9y dC0+dm1pZF9mbGFnIHw9IExQRkNfVk1JRF9USU1FUl9FTkJMRDsKPiArCQl9Cj4gKwl9Cj4gKwly ZXR1cm4gcmM7Cj4gK30KPiArCj4gKy8qCj4gKyAqIGxwZmNfaXNfY29tbWFuZF92bV9pbyAtIGdl dCB0aGUgdXVpZCBmcm9tIGJsayBjZ3JvdXAKPiArICogQGNtZDpQb2ludGVyIHRvIHNjc2lfY21u ZCBkYXRhIHN0cnVjdHVyZQo+ICsgKiBSZXR1cm5zIHV1aWQgaWYgcHJlc2VudCBpZiBub3QgbnVs bAo+ICsgKi8KPiArc3RhdGljIGNoYXIgKmxwZmNfaXNfY29tbWFuZF92bV9pbyhzdHJ1Y3Qgc2Nz aV9jbW5kICpjbWQpCj4gK3sKPiArCWNoYXIgKnV1aWQgPSBOVUxMOwo+ICsKPiArCWlmIChjbWQt PnJlcXVlc3QpIHsKPiArCQlpZiAoY21kLT5yZXF1ZXN0LT5iaW8pCj4gKwkJCXV1aWQgPSBibGtj Z19nZXRfZmNfYXBwaWQoY21kLT5yZXF1ZXN0LT5iaW8pOwo+ICsJfQo+ICsJcmV0dXJuIHV1aWQ7 Cj4gK30KPiArCj4gICAvKioKPiAgICAqIGxwZmNfcXVldWVjb21tYW5kIC0gc2NzaV9ob3N0X3Rl bXBsYXRlIHF1ZXVlY29tbWFuZCBlbnRyeSBwb2ludAo+ICAgICogQHNob3N0OiBrZXJuZWwgc2Nz aSBob3N0IHBvaW50ZXIuCj4gQEAgLTUzMDQsNiArNTQ1Miw3IEBAIGxwZmNfcXVldWVjb21tYW5k KHN0cnVjdCBTY3NpX0hvc3QgKnNob3N0LCBzdHJ1Y3Qgc2NzaV9jbW5kICpjbW5kKQo+ICAgCWlu dCBlcnIsIGlkeDsKPiAgICNpZmRlZiBDT05GSUdfU0NTSV9MUEZDX0RFQlVHX0ZTCj4gICAJdWlu dDY0X3Qgc3RhcnQgPSAwTDsKPiArCXU4ICp1dWlkID0gTlVMTDsKPiAgIAo+ICAgCWlmIChwaGJh LT5rdGltZV9vbikKPiAgIAkJc3RhcnQgPSBrdGltZV9nZXRfbnMoKTsKPiBAQCAtNTQzMSw2ICs1 NTgwLDI1IEBAIGxwZmNfcXVldWVjb21tYW5kKHN0cnVjdCBTY3NpX0hvc3QgKnNob3N0LCBzdHJ1 Y3Qgc2NzaV9jbW5kICpjbW5kKQo+ICAgCX0KPiAgIAo+ICAgCj4gKwkvKiBjaGVjayB0aGUgbmVj ZXNzYXJ5IGFuZCBzdWZmaWNpZW50IGNvbmRpdGlvbiB0byBzdXBwb3J0IFZNSUQgKi8KPiArCWlm IChscGZjX2lzX3ZtaWRfZW5hYmxlZChwaGJhKSAmJgo+ICsJICAgIChuZGxwLT52bWlkX3N1cHBv cnQgfHwKPiArCSAgICAgcGhiYS0+cHBvcnQtPnZtaWRfcHJpb3JpdHlfdGFnZ2luZyA9PQo+ICsJ ICAgICBMUEZDX1ZNSURfUFJJT19UQUdfQUxMX1RBUkdFVFMpKSB7Cj4gKwkJLyogaXMgdGhlIElP IGdlbmVyYXRlZCBieSBhIFZNLCBnZXQgdGhlIGFzc29jaWF0ZWQgdmlydHVhbCAqLwo+ICsJCS8q IGVudGl0eSBpZCAqLwo+ICsJCXV1aWQgPSBscGZjX2lzX2NvbW1hbmRfdm1faW8oY21uZCk7Cj4g Kwo+ICsJCWlmICh1dWlkKSB7Cj4gKwkJCWVyciA9IGxwZmNfdm1pZF9nZXRfYXBwaWQodnBvcnQs IHV1aWQsIGNtbmQsCj4gKwkJCQkodW5pb24gbHBmY192bWlkX2lvX3RhZyAqKQo+ICsJCQkJCSZs cGZjX2NtZC0+Y3VyX2lvY2JxLnZtaWRfdGFnKTsKPiArCQkJaWYgKCFlcnIpCj4gKwkJCQlscGZj X2NtZC0+Y3VyX2lvY2JxLmlvY2JfZmxhZyB8PSBMUEZDX0lPX1ZNSUQ7Cj4gKwkJfQo+ICsJfQo+ ICsKPiArCWF0b21pY19pbmMoJm5kbHAtPmNtZF9wZW5kaW5nKTsKPiAgICNpZmRlZiBDT05GSUdf U0NTSV9MUEZDX0RFQlVHX0ZTCj4gICAJaWYgKHVubGlrZWx5KHBoYmEtPmhkd3FzdGF0X29uICYg TFBGQ19DSEVDS19TQ1NJX0lPKSkKPiAgIAkJdGhpc19jcHVfaW5jKHBoYmEtPnNsaTRfaGJhLmNf c3RhdC0+eG10X2lvKTsKPiAKQ2hlZXJzLAoKSGFubmVzCi0tIApEci4gSGFubmVzIFJlaW5lY2tl ICAgICAgICAgICAgICAgIEtlcm5lbCBTdG9yYWdlIEFyY2hpdGVjdApoYXJlQHN1c2UuZGUgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArNDkgOTExIDc0MDUzIDY4OApTVVNFIFNvZnR3YXJl IFNvbHV0aW9ucyBHbWJILCBNYXhmZWxkc3RyLiA1LCA5MDQwOSBOw7xybmJlcmcKSFJCIDM2ODA5 IChBRyBOw7xybmJlcmcpLCBHZXNjaMOkZnRzZsO8aHJlcjogRmVsaXggSW1lbmTDtnJmZmVyCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1udm1l IG1haWxpbmcgbGlzdApMaW51eC1udm1lQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udm1lCg==