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 78478C433E0 for ; Thu, 4 Mar 2021 12:47:12 +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 BCF6964F2C for ; Thu, 4 Mar 2021 12:47:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BCF6964F2C 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=Ye2uw1nq1HbZkV6TT1Gq0mPOR02JhxkWeSQWNgK4EoY=; b=fb3VXnE3x3L0NLR/E5Ccz7OcB V2Wz/jbe9eyumHstxjt3l1cLX8WyZxemGCa+vj6iagPDxZy7UXQBKQp7rRAQzkcXqagmXq+D6GEbH BcgzEBpXerCZ/AkMUOnaS/ynbnR/yM/jjlrfOEBgEx5K8VrviFeIKmXZG2cGfnY9rh1FC64jl0Oj/ Di2wbvoONyhb8WNU8kvaAdRuB//TS9k2owWbudbWAVmiQjEMumHIeWp3IMRyq6X3qtVFZUG1/MYpD jBSE5P0nHDoWTX4DIYwev9pHFUgneKewzaTE5kHmbDft587N839Ek6yJL6eOasOWaU921ITulXae0 6i2S3j9TA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lHnNa-008epX-Nd; Thu, 04 Mar 2021 12:46:59 +0000 Received: from mx2.suse.de ([195.135.220.15]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lHnNK-008enb-U1 for linux-nvme@lists.infradead.org; Thu, 04 Mar 2021 12:46:45 +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 3B261ACBF; Thu, 4 Mar 2021 12:46:42 +0000 (UTC) Subject: Re: [PATCH v8 13/16] lpfc: vmid: Timeout implementation for vmid 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-14-git-send-email-muneendra.kumar@broadcom.com> From: Hannes Reinecke Message-ID: <51d437e1-7f47-c2f1-d9a4-c52de026e7d1@suse.de> Date: Thu, 4 Mar 2021 13:46:41 +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-14-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+IFRoaXMgcGF0Y2ggaW1w bGVtZW50cyB0aGUgdGltZW91dCBmdW5jdGlvbmFsaXR5IGZvciB0aGUgdm1pZC4gQWZ0ZXIgdGhl Cj4gc2V0IHRpbWUgcGVyaW9kIG9mIGluYWN0aXZpdHksIHRoZSB2bWlkIGlzIGRlcmVnaXN0ZXJl ZCBmcm9tIHRoZSBzd2l0Y2guCj4gCj4gU2lnbmVkLW9mZi1ieTogR2F1cmF2IFNyaXZhc3RhdmEg IDxnYXVyYXYuc3JpdmFzdGF2YUBicm9hZGNvbS5jb20+Cj4gU2lnbmVkLW9mZi1ieTogSmFtZXMg U21hcnQgPGpzbWFydDIwMjFAZ21haWwuY29tPgo+IAo+IC0tLQo+IHY4Ogo+IEZpeGVkIHRoZSB1 bmluaXRpYWxpemVkIHZhcmlhYmxlCj4gCj4gdjc6Cj4gTm8gY2hhbmdlCj4gCj4gdjY6Cj4gQWRk ZWQgRm9yd2FyZCBkZWNsYXJhdGlvbnMKPiAKPiB2NToKPiBObyBjaGFuZ2UKPiAKPiB2NDoKPiBO byBjaGFuZ2UKPiAKPiB2MzoKPiBObyBjaGFuZ2UKPiAKPiB2MjoKPiBQb3J0ZWQgdGhlIHBhdGNo IG9uIHRvcCBvZiA1LjEwL3Njc2ktcXVldWUKPiAtLS0KPiAgIGRyaXZlcnMvc2NzaS9scGZjL2xw ZmNfaGJhZGlzYy5jIHwgMTEwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRy aXZlcnMvc2NzaS9scGZjL2xwZmNfaW5pdC5jICAgIHwgIDQwICsrKysrKysrKysrCj4gICAyIGZp bGVzIGNoYW5nZWQsIDE1MCBpbnNlcnRpb25zKCspCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv c2NzaS9scGZjL2xwZmNfaGJhZGlzYy5jIGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19oYmFkaXNj LmMKPiBpbmRleCA0OGNhNGE2MTJmODAuLmM0NTE5ZjYzNDliYyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL3Njc2kvbHBmYy9scGZjX2hiYWRpc2MuYwo+ICsrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xw ZmNfaGJhZGlzYy5jCj4gQEAgLTcyLDYgKzcyLDcgQEAgc3RhdGljIHZvaWQgbHBmY19kaXNjX2Zs dXNoX2xpc3Qoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0KTsKPiAgIHN0YXRpYyB2b2lkIGxwZmNf dW5yZWdpc3Rlcl9mY2ZpX2NtcGwoc3RydWN0IGxwZmNfaGJhICosIExQRkNfTUJPWFFfdCAqKTsK PiAgIHN0YXRpYyBpbnQgbHBmY19mY2ZfaW51c2Uoc3RydWN0IGxwZmNfaGJhICopOwo+ICAgc3Rh dGljIHZvaWQgbHBmY19tYnhfY21wbF9yZWFkX3NwYXJhbShzdHJ1Y3QgbHBmY19oYmEgKiwgTFBG Q19NQk9YUV90ICopOwo+ICtzdGF0aWMgdm9pZCBscGZjX2NoZWNrX2luYWN0aXZlX3ZtaWQoc3Ry dWN0IGxwZmNfaGJhICpwaGJhKTsKPiAgIAo+ICAgc3RhdGljIGludAo+ICAgbHBmY192YWxpZF94 cHRfbm9kZShzdHJ1Y3QgbHBmY19ub2RlbGlzdCAqbmRscCkKPiBAQCAtMjM5LDYgKzI0MCwxMTUg QEAgbHBmY19kZXZfbG9zc190bW9fY2FsbGJrKHN0cnVjdCBmY19ycG9ydCAqcnBvcnQpCj4gICAJ cmV0dXJuOwo+ICAgfQo+ICAgCj4gKy8qKgo+ICsgKiBscGZjX2NoZWNrX2luYWN0aXZlX3ZtaWRf b25lIC0gVk1JRCBpbmFjdGl2aXR5IGNoZWNrZXIgZm9yIGEgdnBvcnQKPiArICogQHZwb3J0OiBQ b2ludGVyIHRvIHZwb3J0IGNvbnRleHQgb2JqZWN0Lgo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9u IGNoZWNrcyBmb3IgaWRsZSB2bWlkIGVudHJpZXMgcmVsYXRlZCB0byBhIHBhcnRpY3VsYXIgdnBv cnQuIElmCj4gKyAqIGZvdW5kIHVudXNlZC9pZGxlLCBpdCBmcmVlcyB0aGVtIGFjY29yZGluZ2x5 Lgo+ICsgKiovCj4gK3N0YXRpYyB2b2lkIGxwZmNfY2hlY2tfaW5hY3RpdmVfdm1pZF9vbmUoc3Ry dWN0IGxwZmNfdnBvcnQgKnZwb3J0KQo+ICt7Cj4gKwl1MTYgaSwga2VlcDsKPiArCXUzMiBkaWZm dGltZSA9IDAsIHI7Cj4gKwl1NjQgKmx0YTsKPiArCWludCBjcHU7Cj4gKwo+ICsJd3JpdGVfbG9j aygmdnBvcnQtPnZtaWRfbG9jayk7Cj4gKwo+ICsJaWYgKCF2cG9ydC0+Y3VyX3ZtaWRfY250KQo+ ICsJCWdvdG8gb3V0Owo+ICsKPiArCS8qIGl0ZXJhdGUgdGhyb3VnaCB0aGUgdGFibGUgKi8KPiAr CWZvciAoaSA9IDA7IGkgPCBMUEZDX1ZNSURfSEFTSF9TSVpFOyArK2kpIHsKPiArCQlrZWVwID0g MDsKPiArCQlpZiAodnBvcnQtPmhhc2hfdGFibGVbaV0gJiYgKHZwb3J0LT5oYXNoX3RhYmxlW2ld LT5mbGFnICYKPiArCQkJCQkgICAgIExQRkNfVk1JRF9SRUdJU1RFUkVEKSkgewo+ICsJCQkvKiBj aGVjayBpZiB0aGUgcGFydGljdWxhciB2bWlkIGlzIGluIHVzZSAqLwo+ICsJCQkvKiBmb3IgYWxs IGF2YWlsYWJsZSBwZXIgY3B1IHZhcmlhYmxlICovCj4gKwkJCWZvcl9lYWNoX3Bvc3NpYmxlX2Nw dShjcHUpIHsKPiArCQkJCS8qIGlmIGxhc3QgYWNjZXNzIHRpbWUgaXMgbGVzcyB0aGFuIHRpbWVv dXQgKi8KPiArCQkJCWx0YSA9IHBlcl9jcHVfcHRyKAo+ICsJCQkJCXZwb3J0LT5oYXNoX3RhYmxl W2ldLT5sYXN0X2lvX3RpbWUsCj4gKwkJCQkJY3B1KTsKPiArCQkJCWlmICghbHRhKQo+ICsJCQkJ CWNvbnRpbnVlOwo+ICsJCQkJZGlmZnRpbWUgPSAoamlmZmllcykgLSAoKmx0YSk7Cj4gKwkJCQlp ZiAoKHZwb3J0LT52bWlkX2luYWN0aXZpdHlfdGltZW91dCAqCj4gKwkJCQkgICAgIEpJRkZJRVNf UEVSX0hSKSA+IGRpZmZ0aW1lKSB7Cj4gKwkJCQkJa2VlcCA9IDE7Cj4gKwkJCQkJYnJlYWs7Cj4g KwkJCQl9Cj4gKwkJCX0KPiArCj4gKwkJCS8qIGlmIG5vbmUgb2YgdGhlIGNwdXMgaGF2ZSBiZWVu IHVzZWQgYnkgdGhlIHZtLCAqLwo+ICsJCQkvKiAgcmVtb3ZlIHRoZSBlbnRyeSBpZiBhbHJlYWR5 IHJlZ2lzdGVyZWQgKi8KPiArCQkJaWYgKCFrZWVwKSB7Cj4gKwkJCQkvKiBtYXJrIHRoZSBlbnRy eSBmb3IgZGVyZWdpc3RyYXRpb24gKi8KPiArCQkJCXZwb3J0LT5oYXNoX3RhYmxlW2ldLT5mbGFn ID0KPiArCQkJCQlMUEZDX1ZNSURfREVfUkVHSVNURVI7Cj4gKwkJCQl3cml0ZV91bmxvY2soJnZw b3J0LT52bWlkX2xvY2spOwo+ICsJCQkJaWYgKHZwb3J0LT52bWlkX3ByaW9yaXR5X3RhZ2dpbmcp Cj4gKwkJCQkJciA9IGxwZmNfdm1pZF91dmVtKHZwb3J0LAo+ICsJCQkJCQkJICAgdnBvcnQtPmhh c2hfdGFibGVbaV0sCj4gKwkJCQkJCQkgICBmYWxzZSk7Cj4gKwkJCQllbHNlCj4gKwkJCQkJciA9 IGxwZmNfdm1pZF9jbWQodnBvcnQsCj4gKwkJCQkJCQkgIFNMSV9DVEFTX0RBUFBfSURFTlQsCj4g KwkJCQkJCQkgIHZwb3J0LT5oYXNoX3RhYmxlW2ldKTsKPiArCj4gKwkJCQkvKiBkZWNyZW1lbnQg bnVtYmVyIG9mIGFjdGl2ZSB2bXMgYW5kIG1hcmsgKi8KPiArCQkJCS8qIGVudHJ5IGluIHNsb3Qg YXMgZnJlZSAqLwo+ICsJCQkJd3JpdGVfbG9jaygmdnBvcnQtPnZtaWRfbG9jayk7Cj4gKwkJCQlp ZiAoIXIpIHsKPiArCQkJCQlzdHJ1Y3QgbHBmY192bWlkICpodCA9Cj4gKwkJCQkJCQl2cG9ydC0+ aGFzaF90YWJsZVtpXTsKPiArCQkJCQl2cG9ydC0+Y3VyX3ZtaWRfY250LS07Cj4gKwkJCQkJaHQt PmZsYWcgPSBMUEZDX1ZNSURfU0xPVF9GUkVFOwo+ICsJCQkJCWZyZWVfcGVyY3B1KGh0LT5sYXN0 X2lvX3RpbWUpOwo+ICsJCQkJCWh0LT5sYXN0X2lvX3RpbWUgPSBOVUxMOwo+ICsJCQkJCXZwb3J0 LT5oYXNoX3RhYmxlW2ldID0gTlVMTDsKPiArCQkJCX0KPiArCQkJfQo+ICsJCX0KPiArCX0KPiAr IG91dDoKPiArCXdyaXRlX3VubG9jaygmdnBvcnQtPnZtaWRfbG9jayk7Cj4gK30KPiArCj4gKy8q Kgo+ICsgKiBscGZjX2NoZWNrX2luYWN0aXZlX3ZtaWQgLSBWTUlEIGluYWN0aXZpdHkgY2hlY2tl cgo+ICsgKiBAcGhiYTogUG9pbnRlciB0byBoYmEgY29udGV4dCBvYmplY3QuCj4gKyAqCj4gKyAq IFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gdGhlIHdvcmtlciB0aHJlYWQgdG8gZGV0ZXJt aW5lIGlmIGFuIGVudHJ5IGluCj4gKyAqIHRoZSB2bWlkIHRhYmxlIGNhbiBiZSByZWxlYXNlZCBz aW5jZSB0aGVyZSB3YXMgbm8gSU8gYWN0aXZpdHkgc2VlbiBmcm9tIHRoYXQKPiArICogcGFydGlj dWxhciBWTSBmb3IgdGhlIHNwZWNpZmllZCB0aW1lLiBXaGVuIHRoaXMgaGFwcGVucywgdGhlIGVu dHJ5IGluIHRoZQo+ICsgKiB0YWJsZSBpcyByZWxlYXNlZCBhbmQgYWxzbyB0aGUgcmVzb3VyY2Vz IG9uIHRoZSBzd2l0Y2ggY2xlYXJlZC4KPiArICoqLwo+ICsKPiArc3RhdGljIHZvaWQgbHBmY19j aGVja19pbmFjdGl2ZV92bWlkKHN0cnVjdCBscGZjX2hiYSAqcGhiYSkKPiArewo+ICsJc3RydWN0 IGxwZmNfdnBvcnQgKnZwb3J0Owo+ICsJc3RydWN0IGxwZmNfdnBvcnQgKip2cG9ydHM7Cj4gKwlp bnQgaTsKPiArCj4gKwl2cG9ydHMgPSBscGZjX2NyZWF0ZV92cG9ydF93b3JrX2FycmF5KHBoYmEp Owo+ICsJaWYgKCF2cG9ydHMpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPD0g cGhiYS0+bWF4X3Zwb3J0czsgaSsrKSB7Cj4gKwkJaWYgKCghdnBvcnRzW2ldKSAmJiAoaSA9PSAw KSkKPiArCQkJdnBvcnQgPSBwaGJhLT5wcG9ydDsKPiArCQllbHNlCj4gKwkJCXZwb3J0ID0gdnBv cnRzW2ldOwo+ICsJCWlmICghdnBvcnQpCj4gKwkJCWJyZWFrOwo+ICsKPiArCQlscGZjX2NoZWNr X2luYWN0aXZlX3ZtaWRfb25lKHZwb3J0KTsKPiArCX0KPiArCWxwZmNfZGVzdHJveV92cG9ydF93 b3JrX2FycmF5KHBoYmEsIHZwb3J0cyk7Cj4gK30KPiArCj4gICAvKioKPiAgICAqIGxwZmNfZGV2 X2xvc3NfdG1vX2hhbmRsZXIgLSBSZW1vdGUgbm9kZSBkZXZsb3NzIHRpbWVvdXQgaGFuZGxlcgo+ ICAgICogQG5kbHA6IFBvaW50ZXIgdG8gcmVtb3RlIG5vZGUgb2JqZWN0Lgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3Njc2kvbHBmYy9scGZjX2luaXQuYyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNf aW5pdC5jCj4gaW5kZXggNzg5MzQ3MjRhYWFkLi5mNTYyOGY4NzQzYmEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9zY3NpL2xwZmMvbHBmY19pbml0LmMKPiArKysgYi9kcml2ZXJzL3Njc2kvbHBmYy9s cGZjX2luaXQuYwo+IEBAIC00ODU4LDYgKzQ4NTgsNDIgQEAgbHBmY19zbGk0X2ZjZl9yZWRpc2Nf d2FpdF90bW8oc3RydWN0IHRpbWVyX2xpc3QgKnQpCj4gICAJbHBmY193b3JrZXJfd2FrZV91cChw aGJhKTsKPiAgIH0KPiAgIAo+ICsvKioKPiArICogbHBmY192bWlkX3BvbGwgLSBWTUlEIHRpbWVv dXQgZGV0ZWN0aW9uCj4gKyAqIEBwdHI6IE1hcCB0byBscGZjX2hiYSBkYXRhIHN0cnVjdHVyZSBw b2ludGVyLgo+ICsgKgo+ICsgKiBUaGlzIHJvdXRpbmUgaXMgaW52b2tlZCB3aGVuIHRoZXJlIGlz IG5vIElPIG9uIGJ5IGEgVk0gZm9yIHRoZSBzcGVjaWZpZWQKPiArICogYW1vdW50IG9mIHRpbWUu IFdoZW4gdGhpcyBzaXR1YXRpb24gaXMgZGV0ZWN0ZWQsIHRoZSBWTUlEIGhhcyB0byBiZQo+ICsg KiBkZXJlZ2lzdGVyZWQgZnJvbSB0aGUgc3dpdGNoIGFuZCBhbGwgdGhlIGxvY2FsIHJlc291cmNl cyBmcmVlZC4gVGhlIFZNSUQKPiArICogd2lsbCBiZSByZWFzc2lnbmVkIHRvIHRoZSBWTSBvbmNl IHRoZSBJTyBiZWdpbnMuCj4gKyAqKi8KPiArc3RhdGljIHZvaWQKPiArbHBmY192bWlkX3BvbGwo c3RydWN0IHRpbWVyX2xpc3QgKnQpCj4gK3sKPiArCXN0cnVjdCBscGZjX2hiYSAqcGhiYSA9IGZy b21fdGltZXIocGhiYSwgdCwgaW5hY3RpdmVfdm1pZF9wb2xsKTsKPiArCXUzMiB3YWtlX3VwID0g MDsKPiArCj4gKwkvKiBjaGVjayBpZiB0aGVyZSBpcyBhIG5lZWQgdG8gaXNzdWUgUUZQQSAqLwo+ ICsJaWYgKHBoYmEtPnBwb3J0LT52bWlkX3ByaW9yaXR5X3RhZ2dpbmcpIHsKPiArCQl3YWtlX3Vw ID0gMTsKPiArCQlwaGJhLT5wcG9ydC0+d29ya19wb3J0X2V2ZW50cyB8PSBXT1JLRVJfQ0hFQ0tf Vk1JRF9JU1NVRV9RRlBBOwo+ICsJfQo+ICsKPiArCS8qIElzIHRoZSB2bWlkIGluYWN0aXZpdHkg dGltZXIgZW5hYmxlZCAqLwo+ICsJaWYgKHBoYmEtPnBwb3J0LT52bWlkX2luYWN0aXZpdHlfdGlt ZW91dCB8fAo+ICsJICAgIHBoYmEtPnBwb3J0LT5sb2FkX2ZsYWcgJiBGQ19ERVJFR0lTVEVSX0FM TF9BUFBfSUQpIHsKPiArCQl3YWtlX3VwID0gMTsKPiArCQlwaGJhLT5wcG9ydC0+d29ya19wb3J0 X2V2ZW50cyB8PSBXT1JLRVJfQ0hFQ0tfSU5BQ1RJVkVfVk1JRDsKPiArCX0KPiArCj4gKwlpZiAo d2FrZV91cCkKPiArCQlscGZjX3dvcmtlcl93YWtlX3VwKHBoYmEpOwo+ICsKPiArCS8qIHJlc3Rh cnQgdGhlIHRpbWVyIGZvciB0aGUgbmV4dCBpdGVyYXRpb24gKi8KPiArCW1vZF90aW1lcigmcGhi YS0+aW5hY3RpdmVfdm1pZF9wb2xsLCBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcygxMDAwICoK PiArCQkJCQkJCUxQRkNfVk1JRF9USU1FUikpOwo+ICt9Cj4gKwo+ICAgLyoqCj4gICAgKiBscGZj X3NsaTRfcGFyc2VfbGF0dF9mYXVsdCAtIFBhcnNlIHNsaTQgbGluay1hdHRlbnRpb24gbGluayBm YXVsdCBjb2RlCj4gICAgKiBAcGhiYTogcG9pbnRlciB0byBscGZjIGhiYSBkYXRhIHN0cnVjdHVy ZS4KPiBAQCAtNjcwOCw2ICs2NzQ0LDEwIEBAIGxwZmNfc2xpNF9kcml2ZXJfcmVzb3VyY2Vfc2V0 dXAoc3RydWN0IGxwZmNfaGJhICpwaGJhKQo+ICAgCXBoYmEtPmhicXNbTFBGQ19FTFNfSEJRXS5o YnFfYWxsb2NfYnVmZmVyID0gbHBmY19zbGk0X3JiX2FsbG9jOwo+ICAgCXBoYmEtPmhicXNbTFBG Q19FTFNfSEJRXS5oYnFfZnJlZV9idWZmZXIgPSBscGZjX3NsaTRfcmJfZnJlZTsKPiAgIAo+ICsJ LyogZm9yIFZNSUQgaWRsZSB0aW1lb3V0IGlmIFZNSUQgaXMgZW5hYmxlZCAqLwo+ICsJaWYgKGxw ZmNfaXNfdm1pZF9lbmFibGVkKHBoYmEpKQo+ICsJCXRpbWVyX3NldHVwKCZwaGJhLT5pbmFjdGl2 ZV92bWlkX3BvbGwsIGxwZmNfdm1pZF9wb2xsLCAwKTsKPiArCj4gICAJLyoKPiAgIAkgKiBJbml0 aWFsaXplIHRoZSBTTEkgTGF5ZXIgdG8gcnVuIHdpdGggbHBmYyBTTEk0IEhCQXMuCj4gICAJICov Cj4gCid0aXMgaXMgYSBiaXQgb2RkOyBJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgdGhhdCB0aGUgYXBw IGlkIGlzIGdldHRpbmcgCmRlcmVnaXN0ZXJlZCB3aGVuIHRoZSByZXNwZWN0aXZlIGNncm91cCBp cyByZWxlYXNlZC4KQnV0IGlmIHRoaXMgdGltZW91dCBpcyBtYW5kYXRlZCBieSB0aGUgc3BlYyBJ IGd1ZXNzIHRoYXQncyB3aGF0IHdlIG5lZWQgCnRvIGRvLgoKUmV2aWV3ZWQtYnk6IEhhbm5lcyBS ZWluZWNrZSA8aGFyZUBzdXNlLmRlPgoKQ2hlZXJzLAoKSGFubmVzCi0tIApEci4gSGFubmVzIFJl aW5lY2tlICAgICAgICAgICAgICAgIEtlcm5lbCBTdG9yYWdlIEFyY2hpdGVjdApoYXJlQHN1c2Uu ZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArNDkgOTExIDc0MDUzIDY4OApTVVNFIFNv ZnR3YXJlIFNvbHV0aW9ucyBHbWJILCBNYXhmZWxkc3RyLiA1LCA5MDQwOSBOw7xybmJlcmcKSFJC IDM2ODA5IChBRyBOw7xybmJlcmcpLCBHZXNjaMOkZnRzZsO8aHJlcjogRmVsaXggSW1lbmTDtnJm ZmVyCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51 eC1udm1lIG1haWxpbmcgbGlzdApMaW51eC1udm1lQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1udm1lCg==