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, 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 9B2C4C433B4 for ; Mon, 12 Apr 2021 05:27:48 +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 04B506105A for ; Mon, 12 Apr 2021 05:27:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 04B506105A 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=2nm8k+3r6WkyNvQzkTiqSB1JkIVrJZbLw4hxUW4ps/E=; b=C+qb1nGEAmpshmKHyosF4c3qC kFHGkiTExdNlSLMgXgiXGyoCNaKsJ2TYZekddEzfQE57fo3GaK1/A2ASSZqvCGFsgqp2fsLwBTirh bYFPg+BKtTg/DmLNfdZYhhKPE44qvw31SjMkWfsG79rzJ9Jb6+C1L4RHqQzC3hSRO8pm9GqjFMLFb nDIPFwG7gq9bPlKjqKF1hA8IgRMI3Prcj3yEpmTgsipSSLCjsFWbH8cZpx8MIqt7KDCXs1DXPKa/j rXODYAi7EB1RUCYjX2y2+pGZkDAwdY2Tmg0LdoKETKIJd/dbupl+Q3Qz9EsMJRAyC0XOWTljm+FfP L/axD8cmQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lVp6d-005ja6-EP; Mon, 12 Apr 2021 05:27:27 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lVp6Z-005jZv-9k for linux-nvme@desiato.infradead.org; Mon, 12 Apr 2021 05:27:23 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To: Subject:Sender:Reply-To:Content-ID:Content-Description; bh=MXl1sP/ZZP4uwRdMsogPP5gc5kG49nf0SQhIUSy35LQ=; b=rh6azY9zy/rabxhotj8Y60HmvW uoaS6GYgKmBHrS9aRrEsqZFAOKzGtiGRAcHTO39eIYiAl/fEHhp6IwNxQEdWyPsKsbWHh6aknDesO HoQJkaGJhTAnIMRb4MKva8tZrGBk669+lK3ZdxNFgZ/0BEWFgZcVwX6z5NPtjG1/5uacs+ilPGjhd lmtd4JOYEmnd8ZxMKWMkJ8HbMuK7sZyfXHMdUruNVr/+DnpqDvByqBbE6V+KQJ9sH1hxmapqi4NX8 3L15uyykgHlNpsfWzM2xXOZYehWkjBOwUHrjsEzS3jRn532eFaqPdiFc7H5aW2vNci4ZcsEHtI//t qdEYyJaw==; Received: from mx2.suse.de ([195.135.220.15]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lVp6W-005stV-05 for linux-nvme@lists.infradead.org; Mon, 12 Apr 2021 05:27:22 +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 5CD92ACC5; Mon, 12 Apr 2021 05:27:15 +0000 (UTC) Subject: Re: [PATCH v9 13/13] lpfc: vmid: Introducing vmid in io path. To: James Smart , Muneendra , linux-block@vger.kernel.org, linux-scsi@vger.kernel.org, tj@kernel.org, linux-nvme@lists.infradead.org Cc: emilne@redhat.com, mkumar@redhat.com, Gaurav Srivastava References: <1617750397-26466-1-git-send-email-muneendra.kumar@broadcom.com> <1617750397-26466-14-git-send-email-muneendra.kumar@broadcom.com> <91b0c309-6908-8fd9-ac60-a8572500c3ed@suse.de> <201c6604-8e9d-bfcb-f39e-be507f8b02d6@gmail.com> From: Hannes Reinecke Message-ID: Date: Mon, 12 Apr 2021 07:27:14 +0200 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: <201c6604-8e9d-bfcb-f39e-be507f8b02d6@gmail.com> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210411_222720_359777_DCAF6437 X-CRM114-Status: GOOD ( 37.81 ) 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 T24gNC8xMC8yMSA1OjAwIFBNLCBKYW1lcyBTbWFydCB3cm90ZToKPiBPbiA0LzgvMjAyMSAxOjQ2 IEFNLCBIYW5uZXMgUmVpbmVja2Ugd3JvdGU6Cj4+IE9uIDQvNy8yMSAxOjA2IEFNLCBNdW5lZW5k cmEgd3JvdGU6Cj4+PiBGcm9tOiBHYXVyYXYgU3JpdmFzdGF2YSA8Z2F1cmF2LnNyaXZhc3RhdmFA YnJvYWRjb20uY29tPgo+IC4uLgo+Pj4gK8KgwqDCoMKgwqDCoMKgIC8qIHdoaWxlIHRoZSByZWFk IGxvY2sgd2FzIHJlbGVhc2VkLCBpbiBjYXNlIHRoZSBlbnRyeSB3YXMgKi8KPj4+ICvCoMKgwqDC oMKgwqDCoCAvKiBhZGRlZCBieSBvdGhlciBjb250ZXh0IG9yIGlzIGluIHByb2Nlc3Mgb2YgYmVp bmcgYWRkZWQgKi8KPj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAodm1wICYmIHZtcC0+ZmxhZyAmIExQ RkNfVk1JRF9SRUdJU1RFUkVEKSB7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBscGZjX3Zt aWRfdXBkYXRlX2VudHJ5KHZwb3J0LCBjbWQsIHZtcCwgdGFnKTsKPj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHdyaXRlX3VubG9jaygmdnBvcnQtPnZtaWRfbG9jayk7Cj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKHZt cCAmJiB2bXAtPmZsYWcgJiBMUEZDX1ZNSURfUkVRX1JFR0lTVEVSKSB7Cj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB3cml0ZV91bmxvY2soJnZwb3J0LT52bWlkX2xvY2spOwo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FQlVTWTsKPj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+ PiArCj4+PiArwqDCoMKgwqDCoMKgwqAgLyogZWxzZSBzZWFyY2ggYW5kIGFsbG9jYXRlIGEgZnJl ZSBzbG90IGluIHRoZSBoYXNoIHRhYmxlICovCj4+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHZwb3J0 LT5jdXJfdm1pZF9jbnQgPCB2cG9ydC0+bWF4X3ZtaWQpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGZvciAoaSA9IDA7IGkgPCB2cG9ydC0+bWF4X3ZtaWQ7ICsraSkgewo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2bXAgPSB2cG9ydC0+dm1pZCArIGk7Cj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICh2bXAtPmZsYWcgPT0gTFBGQ19WTUlEX1NM T1RfRlJFRSkgewo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZt cCA9IHZwb3J0LT52bWlkICsgaTsKPiAKPiBkZWxldGUgdGhpcyBsYXN0IGxpbmUgYW5kIGFkanVz dCBwYXJlbnMgLSByZWFsbHkgb2RkIHRoYXQgaXQgcmVwbGljYXRlcyAKPiB0aGUgYXNzaWdubWVu dCAyIGxpbmVzIGVhcmxpZXIuCj4gCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgYnJlYWs7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiAKPiBJIHdvdWxkIHByZWZlciB0aGF0IGlmIHRo ZSB0YWJsZSBpcyBleHBlbmRlZCBhbmQgbm8gc2xvdHMgZnJlZSwgdGhhdCAKPiAtRU5PTUVNIGlz IHJldHVybmVkIGhlcmUuIFJhdGhlciB0aGFuIGZhbGxpbmcgZG93biBiZWxvdyBhbmQgcXVhbGlm eWluZyAKPiBieSBzbG90IGZyZWUsIHRoZW4gYnkgcGVuZGluZyAoc2V0IG9ubHkgaWYgc2xvdCBm cmVlKS7CoCBJIGNhbid0IGJlbGlldmUgCj4gdGhlcmUgaXMgYSByZWFzb24gdGhlIGlkbGUgdGlt ZXIgaGFzIHRvIGJlIHN0YXJ0ZWQgaWYgbm8gc2xvdHMgZnJlZSBhcyAKPiBhbGwgdGhlIG90aGVy IGZhaWwgY2FzZXMgZG9uJ3QgYm90aGVyIHdpdGggaXQuCj4gCj4gVGhpcyBhbHNvIGhlbHBzIGlu ZGVudGF0aW9uIGxldmVscyBiZWxvdy4KPiAKPj4+ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2Ugewo+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd3JpdGVfdW5sb2NrKCZ2cG9ydC0+dm1pZF9sb2Nr KTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PTUVNOwo+Pj4gK8KgwqDC oMKgwqDCoMKgIH0KPj4+ICsKPj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAodm1wICYmICh2bXAtPmZs YWcgPT0gTFBGQ19WTUlEX1NMT1RfRlJFRSkpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IC8qIEFkZCB0aGUgdm1pZCBhbmQgcmVnaXN0ZXLCoCAqLwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgbHBmY19wdXRfdm1pZF9pbl9oYXNodGFibGUodnBvcnQsIGhhc2gsIHZtcCk7Cj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2bXAtPnZtaWRfbGVuID0gbGVuOwo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgbWVtY3B5KHZtcC0+aG9zdF92bWlkLCB1dWlkLCB2bXAtPnZtaWRfbGVu KTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZtcC0+aW9fcmRfY250ID0gMDsKPj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZtcC0+aW9fd3JfY250ID0gMDsKPj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHZtcC0+ZmxhZyA9IExQRkNfVk1JRF9TTE9UX1VTRUQ7Cj4+PiArCj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2bXAtPmRlbGV0ZV9pbmFjdGl2ZSA9Cj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZwb3J0LT52bWlkX2luYWN0aXZpdHlfdGltZW91dCA/ IDEgOiAwOwo+Pj4gKwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogaWYgdHlwZSBwcmlv cml0eSB0YWcsIGdldCBuZXh0IGF2YWlsYWJsZSB2bWlkICovCj4+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBpZiAobHBmY192bWlkX2lzX3R5cGVfcHJpb3JpdHlfdGFnKHZwb3J0KSkKPj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbHBmY192bWlkX2Fzc2lnbl9jc19jdGwodnBv cnQsIHZtcCk7Cj4+PiArCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBhbGxvY2F0ZSB0 aGUgcGVyIGNwdSB2YXJpYWJsZSBmb3IgaG9sZGluZyAqLwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgLyogdGhlIGxhc3QgYWNjZXNzIHRpbWUgc3RhbXAgb25seSBpZiB2bWlkIGlzIGVuYWJs ZWQgKi8KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghdm1wLT5sYXN0X2lvX3RpbWUp Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZtcC0+bGFzdF9pb190aW1lID0K Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX2FsbG9jX3BlcmNw dShzaXplb2YodTY0KSwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIF9fYWxpZ25vZl9fKHN0cnVjdAo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxwZmNf dm1pZCkpOwo+Pj4gKwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLyogcmVnaXN0cmF0aW9u IHBlbmRpbmcgKi8KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBlbmRpbmcgPSAxOwo+Pj4g K8KgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByYyA9 IC1FTk9NRU07Cj4+PiArwqDCoMKgwqDCoMKgwqAgfQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHdyaXRl X3VubG9jaygmdnBvcnQtPnZtaWRfbG9jayk7Cj4+PiArCj4+PiArwqDCoMKgwqDCoMKgwqAgLyog Y29tcGxldGUgdHJhbnNhY3Rpb24gd2l0aCBzd2l0Y2ggKi8KPj4+ICvCoMKgwqDCoMKgwqDCoCBp ZiAocGVuZGluZykgewo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGxwZmNfdm1pZF9p c190eXBlX3ByaW9yaXR5X3RhZyh2cG9ydCkpCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHJjID0gbHBmY192bWlkX3V2ZW0odnBvcnQsIHZtcCwgdHJ1ZSk7Cj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBlbHNlCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHJjID0gbHBmY192bWlkX2NtZCh2cG9ydCwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNMSV9DVEFTX1JBUFBfSURFTlQsCj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2bXApOwo+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFyYykgewo+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB3cml0ZV9sb2NrKCZ2cG9ydC0+dm1pZF9sb2NrKTsKPj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdnBvcnQtPmN1cl92bWlkX2NudCsrOwo+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2bXAtPmZsYWcgfD0gTFBGQ19WTUlEX1JFUV9S RUdJU1RFUjsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd3JpdGVfdW5sb2Nr KCZ2cG9ydC0+dm1pZF9sb2NrKTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+ICvC oMKgwqDCoMKgwqDCoCB9Cj4+PiArCj4+PiArwqDCoMKgwqDCoMKgwqAgLyogZmluYWxseSwgZW5h YmxlIHRoZSBpZGxlIHRpbWVyIG9uY2UgKi8KPj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoISh2cG9y dC0+cGhiYS0+cHBvcnQtPnZtaWRfZmxhZyAmIExQRkNfVk1JRF9USU1FUl9FTkJMRCkpIHsKPj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1vZF90aW1lcigmdnBvcnQtPnBoYmEtPmluYWN0aXZl X3ZtaWRfcG9sbCwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGppZmZp ZXMgKwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbXNlY3NfdG9famlm ZmllcygxMDAwICogTFBGQ19WTUlEX1RJTUVSKSk7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB2cG9ydC0+cGhiYS0+cHBvcnQtPnZtaWRfZmxhZyB8PSBMUEZDX1ZNSURfVElNRVJfRU5CTEQ7 Cj4+PiArwqDCoMKgwqDCoMKgwqAgfQo+Pj4gK8KgwqDCoCB9Cj4+PiArwqDCoMKgIHJldHVybiBy YzsKPj4+ICt9Cj4+PiArCj4+PiArLyoKPj4+ICsgKiBscGZjX2lzX2NvbW1hbmRfdm1faW8gLSBn ZXQgdGhlIHV1aWQgZnJvbSBibGsgY2dyb3VwCj4+PiArICogQGNtZDpQb2ludGVyIHRvIHNjc2lf Y21uZCBkYXRhIHN0cnVjdHVyZQo+Pj4gKyAqIFJldHVybnMgdXVpZCBpZiBwcmVzZW50IGlmIG5v dCBudWxsCj4+PiArICovCj4+PiArc3RhdGljIGNoYXIgKmxwZmNfaXNfY29tbWFuZF92bV9pbyhz dHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCj4+PiArewo+Pj4gK8KgwqDCoCBjaGFyICp1dWlkID0gTlVM TDsKPj4+ICsKPj4+ICvCoMKgwqAgaWYgKGNtZC0+cmVxdWVzdCkgewo+Pj4gK8KgwqDCoMKgwqDC oMKgIGlmIChjbWQtPnJlcXVlc3QtPmJpbykKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHV1 aWQgPSBibGtjZ19nZXRfZmNfYXBwaWQoY21kLT5yZXF1ZXN0LT5iaW8pOwo+Pj4gK8KgwqDCoCB9 Cj4+PiArwqDCoMKgIHJldHVybiB1dWlkOwo+Pj4gK30KPj4+ICsKPj4+IMKgIC8qKgo+Pj4gwqDC oCAqIGxwZmNfcXVldWVjb21tYW5kIC0gc2NzaV9ob3N0X3RlbXBsYXRlIHF1ZXVlY29tbWFuZCBl bnRyeSBwb2ludAo+Pj4gwqDCoCAqIEBzaG9zdDoga2VybmVsIHNjc2kgaG9zdCBwb2ludGVyLgo+ Pj4gQEAgLTUyODgsNiArNTQzNyw3IEBAIGxwZmNfcXVldWVjb21tYW5kKHN0cnVjdCBTY3NpX0hv c3QgKnNob3N0LCAKPj4+IHN0cnVjdCBzY3NpX2NtbmQgKmNtbmQpCj4+PiDCoMKgwqDCoMKgIGlu dCBlcnIsIGlkeDsKPj4+IMKgICNpZmRlZiBDT05GSUdfU0NTSV9MUEZDX0RFQlVHX0ZTCj4+PiDC oMKgwqDCoMKgIHVpbnQ2NF90IHN0YXJ0ID0gMEw7Cj4+PiArwqDCoMKgIHU4ICp1dWlkID0gTlVM TDsKPj4+IMKgwqDCoMKgwqAgaWYgKHBoYmEtPmt0aW1lX29uKQo+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgIHN0YXJ0ID0ga3RpbWVfZ2V0X25zKCk7Cj4+PiBAQCAtNTQxNSw2ICs1NTY1LDI1IEBAIGxw ZmNfcXVldWVjb21tYW5kKHN0cnVjdCBTY3NpX0hvc3QgKnNob3N0LCAKPj4+IHN0cnVjdCBzY3Np X2NtbmQgKmNtbmQpCj4+PiDCoMKgwqDCoMKgIH0KPj4+ICvCoMKgwqAgLyogY2hlY2sgdGhlIG5l Y2Vzc2FyeSBhbmQgc3VmZmljaWVudCBjb25kaXRpb24gdG8gc3VwcG9ydCBWTUlEICovCj4+PiAr wqDCoMKgIGlmIChscGZjX2lzX3ZtaWRfZW5hYmxlZChwaGJhKSAmJgo+Pj4gK8KgwqDCoMKgwqDC oMKgIChuZGxwLT52bWlkX3N1cHBvcnQgfHwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgIHBoYmEtPnBw b3J0LT52bWlkX3ByaW9yaXR5X3RhZ2dpbmcgPT0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgIExQRkNf Vk1JRF9QUklPX1RBR19BTExfVEFSR0VUUykpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoCAvKiBpcyB0 aGUgSU8gZ2VuZXJhdGVkIGJ5IGEgVk0sIGdldCB0aGUgYXNzb2NpYXRlZCB2aXJ0dWFsICovCj4+ PiArwqDCoMKgwqDCoMKgwqAgLyogZW50aXR5IGlkICovCj4+PiArwqDCoMKgwqDCoMKgwqAgdXVp ZCA9IGxwZmNfaXNfY29tbWFuZF92bV9pbyhjbW5kKTsKPj4+ICsKPj4+ICvCoMKgwqDCoMKgwqDC oCBpZiAodXVpZCkgewo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXJyID0gbHBmY192bWlk X2dldF9hcHBpZCh2cG9ydCwgdXVpZCwgY21uZCwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKHVuaW9uIGxwZmNfdm1pZF9pb190YWcgKikKPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmbHBmY19jbWQtPmN1cl9pb2NicS52bWlkX3RhZyk7Cj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIWVycikKPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgbHBmY19jbWQtPmN1cl9pb2NicS5pb2NiX2ZsYWcgfD0gTFBGQ19JT19W TUlEOwo+Pj4gK8KgwqDCoMKgwqDCoMKgIH0KPj4+ICvCoMKgwqAgfQo+Pj4gKwo+Pj4gK8KgwqDC oCBhdG9taWNfaW5jKCZuZGxwLT5jbWRfcGVuZGluZyk7Cj4+PiDCoCAjaWZkZWYgQ09ORklHX1ND U0lfTFBGQ19ERUJVR19GUwo+Pj4gwqDCoMKgwqDCoCBpZiAodW5saWtlbHkocGhiYS0+aGR3cXN0 YXRfb24gJiBMUEZDX0NIRUNLX1NDU0lfSU8pKQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHRoaXNf Y3B1X2luYyhwaGJhLT5zbGk0X2hiYS5jX3N0YXQtPnhtdF9pbyk7Cj4+Pgo+PiBBbmQgdGhhdCdz IHRoZSBiaXQgd2hpY2ggSSBkb24ndCBwYXJ0aWN1bGFyIGxpa2UuCj4+Cj4+IEVzc2VudGlhbGx5 IHdlJ2xsIGhhdmUgdG8gaW5qZWN0IGFkZGl0aW9uYWwgRUxTIGNvbW1hbmRzIF9vbiBlYWNoIEkv T18gCj4+IHRvIGdldCBhIHZhbGlkIFZNSUQuCj4+IFdoZXJlIHRoZXJlIGFyZSBfc29fIG1hbnkg dGhpbmdzIHdoaWNoIG1pZ2h0IGdldCB3cm9uZywgY2F1c2luZyBhbiBJL08gCj4+IHN0YWxsLgo+ IAo+IEkgZG9uJ3QgZm9sbG93IHlvdSAtIHllcyBFTFMncyBhcmUgaW5qZWN0ZWQgd2hlbiB0aGVy ZSBpc24ndCBhbiBlbnRyeSAKPiBmb3IgdGhlIFZNLCBidXQgb25jZSB0aGVyZSBpcywgdGhlcmUg aXNuJ3QgZnVydGhlciBFTFMncy4gVGhhdCBpcyB0aGUgCj4gY29zdC4gYXMgd2UgZG9uJ3Qga25v dyB3aGF0IHV1aWQncyBJL08gd2lsbCBiZSBzZW50IHRvIGJlZm9yZSBoYW5kLCBzbyAKPiBpdCBo YXMgdG8gYmUgc2lwaG9uZWQgb2ZmIGR1cmluZyB0aGUgSS9PIGZsb3cuwqAgSS9PJ3MgY2FuIGJl IHNlbnQgCj4gbm9uLXRhZ2dlZCB3aGlsZSB0aGUgRUxTJ3MgYXJlIGNvbXBsZXRpbmcgKGFuZCB0 aGVyZSBhcmVuJ3QgbXVsdGlwbGUgCj4gc2V0cyBvZiBFTFMncyBhcyBsb25nIGFzIGl0J3MgdGhl IHNhbWUgdXVpZCksIHdoaWNoIGlzIGZpbmUuCj4gCj4gc28gSSBkaXNhZ3JlZSB3aXRoICJfb24g ZWFjaCBJL09fIi4KPiAKWWVhaCwgdGhhdCB3YXMgYW4gZXhhZ2dlcmF0aW9uLgpOb3Qgb24gZWFj aCBJL087IEkgc2hvdWxkJ3ZlIHNhaWQgJ29uIGVhY2ggdW5yZWdpc3RlcmVkIEkvTycuCgpUaGlz IHJlYWxseSBpcyBteSB1bmhhcHBpbmVzcyB3aXRoIHRoZSBlbnRpcmUgVk1JRCBzcGVjaWZpY2F0 aW9uLAp3aGVyZSB5b3UgY2FuIHRpbWUgb3V0IFZNSURzIGFmdGVyIGEgY2VydGFpbiBwZXJpb2Qs IGFuZCBoZW5jZSBuZXZlcgpiZSBzdXJlIGlmIGFueSBwYXJ0aWN1bGFyIEkvTyByZWFsbHkgX2lz XyByZWdpc3RlcmVkLgoKPj4gSSB3b3VsZCBoYXZlIHZhc3RseSBwcmVmZXJyZWQgaWYgd2UgY291 bGQgX2F2b2lkXyBoYXZpbmcgdG8gZG8gCj4+IGFkZGl0aW9uYWwgRUxTIGNvbW1hbmRzIGZvciBW TUlEIHJlZ2lzdHJhdGlvbiBpbiB0aGUgSS9PIHBhdGgKPj4gKGllIG9ubHkgYWxsb3cgZm9yIEkv TyB3aXRoIGEgdmFsaWQgVk1JRCksIGFuZCByZWplY3QgdGhlIEkvTyAKPj4gb3RoZXJ3aXNlIHVu dGlsIFZNSUQgcmVnaXN0cmF0aW9uIGlzIGNvbXBsZXRlLgo+Pgo+PiBJRSByZXR1cm4gJ0JVU1kn IChvciBldmVuIGEgY29tbWFuZCByZXRyeT8pIHdoZW4gbm8gdmFsaWQgVk1JRCBmb3IgCj4+IHRo aXMgcGFydGljdWxhciBJL08gaXMgZm91bmQsIHJlZ2lzdGVyIHRoZSBWTUlEIChwcmVmZXJhYmx5 IGluIGFub3RoZXIgCj4+IHRocmVhZCksIGFuZCByZXN0YXJ0IHRoZSBxdWV1ZSBvbmNlIHRoZSBW TUlEIGlzIHJlZ2lzdGVyZWQuCj4gCj4gV2h5IGRvZXMgaXQgYm90aGVyIHlvdSB3aXRoIHRoZSBJ L08gcGF0aCA/wqAgSXQncyBhY3R1YWxseSBoYXBwZW5pbmcgaW4gCj4gcGFyYWxsZWwgd2l0aCBu byByZWFsIHJlbGF0aW9uIGJldHdlZW4gdGhlIHR3by4KPiAKPiBJIHNlcmlvdXNseSBkaXNhZ3Jl ZSB3aXRoIHJlamVjdCBpZiBubyB2bWlkIHRhZy4gV2h5P8KgIHdoYXQgZG8geW91IGdhaW4gCj4g PyBUaGlzIGFjdHVhbGx5IGludHJvZHVjZXMgbW9yZSBkaXNydXB0aW9uIHRoYW4gdGhlIHBhcmFs bGVsIGZsb3cgd2l0aCAKPiB0aGUgRUxTcy7CoMKgIEFsc28sIGFmdGVyIGxpbmsgYm91bmNlLCB3 aGVyZSBhbGwgVk1JRCdzIGhhdmUgdG8gYmUgZG9uZSwgCj4gaXQgYWRkcyBhIHN0YWxsIHdpbmRv dyBhZnRlciBsaW5rIHVwIHJpZ2h0IHdoZW4gdGhpbmdzIGFyZSB0cnlpbmcgdG8gCj4gcmVzdW1l IGFmdGVyIHJwb3J0cyByZWpvaW4uIFdoeSBhZGQgdGhlIGkvbyByZWJvdW5jaW5nID8gVGhlcmUg bm8gcmVhbCAKPiBiZW5lZml0LiBJc3N1aW5nIGEgZmV3IHVudGFnZ2VkIEkvTyBkb2Vzbid0IGh1 cnQuCj4gClRoYXQgaW5kZWVkIGlzIGEgdmFsaWQgcG9pbnQuIEkgcmV0cmFjdCBteSBvYmplY3Rp b24uCgpSZXZpZXdlZC1ieTogSGFubmVzIFJlaW5lY2tlIDxoYXJlQHN1c2UuZGU+CgpDaGVlcnMs CgpIYW5uZXMKLS0gCkRyLiBIYW5uZXMgUmVpbmVja2UgICAgICAgICAgICAgICAgS2VybmVsIFN0 b3JhZ2UgQXJjaGl0ZWN0CmhhcmVAc3VzZS5kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICs0OSA5MTEgNzQwNTMgNjg4ClNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdtYkgsIE1heGZlbGRz dHIuIDUsIDkwNDA5IE7DvHJuYmVyZwpIUkIgMzY4MDkgKEFHIE7DvHJuYmVyZyksIEdlc2Now6Rm dHNmw7xocmVyOiBGZWxpeCBJbWVuZMO2cmZmZXIKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW52bWUgbWFpbGluZyBsaXN0CkxpbnV4LW52bWVA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LW52bWUK