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=-5.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, 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 06A29C43603 for ; Tue, 17 Dec 2019 18:03:38 +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 BBC2720684 for ; Tue, 17 Dec 2019 18:03:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="KNXVVbHn"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="bx77LObL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BBC2720684 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=broadcom.com 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-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:To:Subject:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=e90N7HDdv3q1e/SPZWg2TiAs6uQ+ak/zh6UVmE+DaZ8=; b=KNXVVbHngikyfi8O7hzma9kP2 9XHrLBMPBBcwxKGPAHL41g2UYfNm/oLaCQ79A8G4j857dz1meuIDiyuWb3z5qaN/PfMJFJwK7+qeI BabwCeSBNmGqC/rVJmY0TySdKXGV4byOnCOUjMgGynltbfmDJHvIKhKuISxvOXZaNAGJbsgmg96kH UsYn61BYjwFkhO55uGvrNUoumILgjx+7Vyl6Pcf0Dao5gCBQM4GSWALeuXlrAOua9gc4h4o+5lY7h xylLlymcpZVzlwEr0QpZxe6p0jtl2MzcmydWP4UQoDdAD68OMLSY3kL4Ofm7PrwR7TGaBsfVT74n0 EU1DUD5+w==; 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 1ihHC1-0004Gb-De; Tue, 17 Dec 2019 18:03:33 +0000 Received: from mail-pf1-x444.google.com ([2607:f8b0:4864:20::444]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1ihHBx-0004G2-SL for linux-nvme@lists.infradead.org; Tue, 17 Dec 2019 18:03:31 +0000 Received: by mail-pf1-x444.google.com with SMTP id x185so7969350pfc.5 for ; Tue, 17 Dec 2019 10:03:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=shFu2zM0tVzEuxhJvQaqUhulnS74h2zRoJv0hhvmgyo=; b=bx77LObLR02ZwkJbv/3Zt0Me1eIINBOldLOCPymJt/2RVjSudhJ8p08nSGmQDRYNMB /W1/onCV6d70ygkqRRS/b1/rTbCC/wE0siQfLcxRSphDTzkETT/RlIFQFVs/cpfkiPY4 WiNPRv/xOdG5v8eZdPX/PgSZE7PgJJXAR6Klc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=shFu2zM0tVzEuxhJvQaqUhulnS74h2zRoJv0hhvmgyo=; b=rOfz9mj04zU3p7ClmcClPX/pRcMi3ObjZ3Uvdyn4DNVeiWOjXNXB+GQRhpR/YnZZ1z PTb/jgFJRqr+XGlxM3jrLRfbReNTgjscMQzHw84mT+p3z6QryQb4o9CzvT3FhUqdglXs Miw9BJVg9TRD0xQY7RJN/ciQvQwnTPhKxXYieoqLNQZ9rYTXxwAzwoE8l9nI2KZc+kJ4 6yPY5sS4fuzI7sToOkzBDmUpfoSFu5omb7IZWs597U67G7ZLJXjDcDdx4Y6AXowDA1Cf DCf1Pk3n/VfdkLcuXfSJLmEu5BseozGuo9XlIA8rSv2SuUICSMWwEzmq34MxbXTssEnu GY9g== X-Gm-Message-State: APjAAAUUkx7HzINkLsmE9lnlmNXRtyLD5xxs5FDTFQP1gbeANgBm4VDG GGa3aExwMSEFGE/l1BrG2sL0kE04hYu3xaQ7dKBOYX1S2rxjMnoy4d44xmWpWchuxAGdNosqKh7 5O51+ihSIHBEsFPr5acjiGtghYJ7mxJeWs/qYlWbEai5kAro2fK+vb4Srr7LyL8fXBO/Gag/OyO zjaPjjlA== X-Google-Smtp-Source: APXvYqzug9BsLd8n4cZ0sP1gnC3W8p3k8qqYcGrL9OtLNPizVqMokRx241ACJRufe7oGuEf9/sXFmg== X-Received: by 2002:aa7:9f94:: with SMTP id z20mr24641425pfr.111.1576605808421; Tue, 17 Dec 2019 10:03:28 -0800 (PST) Received: from [10.69.45.46] ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id f30sm28131349pga.20.2019.12.17.10.03.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Dec 2019 10:03:27 -0800 (PST) Subject: Re: [PATCH] nvme-fabrics: reject I/O to offline device To: Victor Gladkov , Hannes Reinecke , Sagi Grimberg , "linux-nvme@lists.infradead.org" References: <2caa40133c444771b706406b928ad88a@kioxia.com> <78d980de-b2b8-bd47-fc3f-20314653598e@broadcom.com> <9a73a895-7d6b-21e9-9008-816117be1ff4@broadcom.com> <4963e813-0d99-4890-804a-cd4c9c660607@broadcom.com> From: James Smart Message-ID: <571db3da-eeb4-190a-dd76-f9b1ea6ba5d0@broadcom.com> Date: Tue, 17 Dec 2019 10:03:26 -0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191217_100329_919602_48A1892D X-CRM114-Status: GOOD ( 31.81 ) 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: , 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 CgpPbiAxMi85LzIwMTkgNzozMCBBTSwgVmljdG9yIEdsYWRrb3Ygd3JvdGU6Cj4gT24gMTIvOC8x OSAxNDoxOCBQTSwgSGFubmVzIFJlaW5lY2tlIHdyb3RlOgo+PiBPbiAxMi82LzE5IDExOjE4IFBN LCBTYWdpIEdyaW1iZXJnIHdyb3RlOgo+Pj4+PiAtLS0KPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbnZtZS9ob3N0L2ZhYnJpY3MuYwo+Pj4+PiBiL2RyaXZlcnMvbnZtZS9ob3N0L2ZhYnJpY3Mu YyBpbmRleCA3NGI4ODE4Li5iNThhYmMxIDEwMDY0NAo+Pj4+PiAtLS0gYS9kcml2ZXJzL252bWUv aG9zdC9mYWJyaWNzLmMKPj4+Pj4gKysrIGIvZHJpdmVycy9udm1lL2hvc3QvZmFicmljcy5jCj4+ Pj4+IEBAIC01NDksNiArNTQ5LDggQEAgYmxrX3N0YXR1c190IG52bWZfZmFpbF9ub25yZWFkeV9j b21tYW5kKHN0cnVjdAo+Pj4+PiBudm1lX2N0cmwgKmN0cmwsCj4+Pj4+ICDCoCB7Cj4+Pj4+ICDC oMKgwqDCoMKgwqDCoMKgIGlmIChjdHJsLT5zdGF0ZSAhPSBOVk1FX0NUUkxfREVMRVRJTkcgJiYK Pj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjdHJsLT5zdGF0ZSAhPSBOVk1FX0NUUkxf REVBRCAmJgo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqAgIShjdHJsLT5zdGF0ZSA9PSBOVk1F X0NUUkxfQ09OTkVDVElORyAmJgo+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoKGt0aW1l X2dldF9ucygpIC0gcnEtPnN0YXJ0X3RpbWVfbnMpID4KPj4+Pj4gamlmZmllc190b19uc2Vjcyhy cS0+dGltZW91dCkpKSAmJgo+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICFibGtfbm9y ZXRyeV9yZXF1ZXN0KHJxKSAmJiAhKHJxLT5jbWRfZmxhZ3MgJgo+Pj4+PiBSRVFfTlZNRV9NUEFU SCkpCj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQkxLX1NU U19SRVNPVVJDRTsKPj4+Pj4KPj4+PiBEaWQgeW91IHRlc3QgdGhpcyB0byBlbnN1cmUgaXQncyBk b2luZyB3aGF0IHlvdSBleHBlY3QuIEknbSBub3Qgc3VyZQo+Pj4+IHRoYXQgYWxsIHRoZSB0aW1l cnMgYXJlIHNldCByaWdodCBhdCB0aGlzIHBvaW50LiBNb3N0IEkvTydzIHRpbWVvdXQKPj4+PiBm cm9tIGEgZGVhZGxpbmUgdGltZSBzdGFtcGVkIGF0IGJsa19tcV9zdGFydF9yZXF1ZXN0KCkuIEJ1 dCB0aGF0Cj4+Pj4gcm91dGluZSBpcyBhY3R1YWxseSBjYWxsZWQgYnkgdGhlIHRyYW5zcG9ydHMg cG9zdCB0aGUKPj4+PiBudm1mX2NoZWNrX3JlYWR5L2ZhaWxfbm9ucmVhZHkgY2FsbHMuwqAgRS5n LiB0aGUgaW8gaXMgbm90IHlldCBpbgo+Pj4+IGZsaWdodCwgdGh1cyBxdWV1ZWQsIGFuZCB0aGUg YmxrLW1xIGludGVybmFsIHF1ZXVpbmcgZG9lc24ndCBjb3VudAo+Pj4+IGFnYWluc3QgdGhlIGlv IHRpbWVvdXQuwqAgSSBjYW4ndCBzZWUgYW55dGhpbmcgdGhhdCBndWFyYW50ZWVzCj4+Pj4gc3Rh cnRfdGltZV9ucyBpcyBzZXQuCj4+PiBJJ20gbm90IHN1cmUgdGhpcyBiZWhhdmlvciBmb3IgZmFp bGluZyBJL08gYWx3YXlzIGRlc2lyZWQ/IHNvbWUKPj4+IGNvbnN1bWVycyB3b3VsZCBhY3R1YWxs eSBub3Qgd2FudCB0aGUgSS9PIHRvIGZhaWwgcHJlbWF0dXJlbHkgaWYgd2UKPj4+IGFyZSBub3Qg bXVsdGlwYXRoaW5nLi4uCj4+Pgo+Pj4gSSB0aGluayB3ZSBuZWVkIGEgZmFpbF9mYXN0X3RtbyBz ZXQgaW4gd2hlbiBlc3RhYmxpc2hpbmcgdGhlCj4+PiBjb250cm9sbGVyIHRvIGdldCBpdCByaWdo dC4KPj4+Cj4+IEFncmVlZC4gVGhpcyB3aG9sZSBwYXRjaCBsb29rcyBsaWtlIHNvbWVvbmUgaXMg dHJ5aW5nIHRvIHJlaW1wbGVtZW50Cj4+IGZhc3RfaW9fZmFpbF90bW8gLyBkZXZfbG9zc190bW8u Cj4+IEFzIHdlJ3JlIG1vdmluZyBpbnRvIHVucmVsaWFibGUgZmFicmljcyBJIGd1ZXNzIHdlJ2xs IG5lZWQgYSBzaW1pbGFyIG1lY2hhbmlzbS4KPj4KPj4gQ2hlZXJzLAo+Pgo+PiBIYW5uZXMKPgo+ IEZvbGxvd2luZyB5b3VyIHN1Z2dlc3Rpb25zLCBJIGFkZGVkIGEgbmV3IHNlc3Npb24gcGFyYW1l dGVyIGNhbGxlZCAiZmFzdF9mYWlsX3RtbyIuCj4gVGhlIHRpbWVvdXQgaXMgbWVhc3VyZWQgaW4g c2Vjb25kcyBmcm9tIHRoZSBjb250cm9sbGVyIHJlY29ubmVjdCwgYW55IGNvbW1hbmQgYmV5b25k IHRoYXQgdGltZW91dCBpcyByZWplY3RlZC4KPiBUaGUgbmV3IHBhcmFtZXRlciB2YWx1ZSBtYXkg YmUgcGFzc2VkIGR1cmluZyDigJhjb25uZWN04oCZLCBhbmQgaXRzIGRlZmF1bHQgdmFsdWUgaXMg MzAgc2Vjb25kcy4KPiBBIHZhbHVlIG9mIC0xIG1lYW5zIG5vIHRpbWVvdXQgKGluIHNpbWlsYXIg dG8gY3VycmVudCBiZWhhdmlvcikuCj4KPiAtLS0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1l L2hvc3QvZmFicmljcy5jIGIvZHJpdmVycy9udm1lL2hvc3QvZmFicmljcy5jCj4gaW5kZXggNzRi ODgxOC4uZWQ2YjkxMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL252bWUvaG9zdC9mYWJyaWNzLmMK PiArKysgYi9kcml2ZXJzL252bWUvaG9zdC9mYWJyaWNzLmMKPiBAQCAtNDA2LDYgKzQwNiw3IEBA Cj4gICAJfQo+Cj4gICAJY3RybC0+Y250bGlkID0gbGUxNl90b19jcHUocmVzLnUxNik7Cj4gKwlj dHJsLT5zdGFydF9yZWNvbm5lY3RfbnMgPSBrdGltZV9nZXRfbnMoKTsKCkl0IGRvZXNuJ3Qgc2Vl bSBjb3JyZWN0IHRvIHN0YXJ0IHRoZSByZWNvbm5lY3QgdGltZXIgb25jZSBhIGFkbWluIHF1ZXVl IApjb25uZWN0IGhhcyBzdWNjZWVkZWQuIFRoZXJlIG1heSBiZSBsb3RzIG9mIHRpbWUgcHJpb3Ig d2hlbiB0aGVyZSBpcyBubyAKY29ubmVjdGl2aXR5IGFuZCB0aGUgdGltZXIgaGFzbid0IGJlZW4g c2V0IGFuZCB0aHVzIGlzbid0IHJ1bm5pbmcuCgpjdHJsLT5zdGFydF9yZWNvbm5lY3RfbnMgc2hv dWxkIGJlIHNldCB3aGVuIHRoZSBjdHJsIHRyYW5zaXRpb25zIHRvIApOVk1FX0NUUkxfQ09OTkVD VElORy4gV291bGQgaGF2ZSBiZWVuIG5pY2UgdG8gc2V0IHRoZSB2YWx1ZSBpbiAsIGJ1dCBhcyAK dGhhdCdzIGluIG52bWVfY2hhbmdlX2N0cmxfc3RhdGUoKSBpbiBjb3JlLCBhbmQgYXMgaXQncyBt b3JlIHRoYW4ganVzdCAKY2hhbmdpbmcgc3RhdGUsIEkgZ3Vlc3MgdGhhdCBtZWFucyBpdCBoYXMg dG8gYmUgaW4gZWFjaCBvZiB0aGUgZmFicmljIAp0cmFuc3BvcnRzIGFzIHRoZXkgbWFrZSB0aGUg Y2FsbCB0byBjaGFuZ2UgdG8gdGhlIHN0YXRlLgoKbm90ZTogaWYgcG9zdGluZyBhIG5ldyBwYXRj aC4gU3RhcnQgaXQgYXMgYSBuZXcgcGF0Y2ggdGhyZWFkLCBub3QgYSAKcmVwbHkgb24gdGhpcyB0 aHJlYWQuCgo+Cj4gICBvdXRfZnJlZV9kYXRhOgo+ICAgCWtmcmVlKGRhdGEpOwo+IEBAIC00NzQs OCArNDc1LDEyIEBACj4gICBib29sIG52bWZfc2hvdWxkX3JlY29ubmVjdChzdHJ1Y3QgbnZtZV9j dHJsICpjdHJsKQo+ICAgewo+ICAgCWlmIChjdHJsLT5vcHRzLT5tYXhfcmVjb25uZWN0cyA9PSAt MSB8fAo+IC0JICAgIGN0cmwtPm5yX3JlY29ubmVjdHMgPCBjdHJsLT5vcHRzLT5tYXhfcmVjb25u ZWN0cykKPiArCSAgICBjdHJsLT5ucl9yZWNvbm5lY3RzIDwgY3RybC0+b3B0cy0+bWF4X3JlY29u bmVjdHMpewo+ICsJCWlmKGN0cmwtPm5yX3JlY29ubmVjdHMgPT0gMCkKPiArCQkJY3RybC0+c3Rh cnRfcmVjb25uZWN0X25zID0ga3RpbWVfZ2V0X25zKCk7Cj4gKwo+ICAgCQlyZXR1cm4gdHJ1ZTsK PiArCX0KClRoaXMgaXMgbWFraW5nIHVwIGZvciB3aGF0IEkgZGVzY3JpYmVkIGFib3ZlLCBidXQg bWVhbnMgCnN0YXJ0X3JlY29ubmVjdF9ucyB3b24ndCBiZSBzZXQgdW50aWwgYWZ0ZXIgdGhlIGZp cnN0IGV4cGlyYXRpb24gb2YgdGhlIApyZWNvbm5lY3QgYXR0ZW1wdC4gU28gdGhlcmUncyBhdCBs ZWFzdCAxIHdpbmRvdyBza2lwcGVkIHdpdGggbm8gdGltZXIuwqAgCklmIHRoZSB0cmFuc3BvcnRz IGp1c3Qgc3RhcnQgdGhlIHRpbWVyIGFmdGVyIHRoZSBzdGF0ZSB0cmFuc2l0aW9uLCB0aGVyZSAK aXMgbm8gbmVlZCBmb3IgdGhpcy4KCj4KPiAgIAlyZXR1cm4gZmFsc2U7Cj4gICB9Cj4gQEAgLTU0 OSw2ICs1NTQsOCBAQAo+ICAgewo+ICAgCWlmIChjdHJsLT5zdGF0ZSAhPSBOVk1FX0NUUkxfREVM RVRJTkcgJiYKPiAgIAkgICAgY3RybC0+c3RhdGUgIT0gTlZNRV9DVFJMX0RFQUQgJiYKPiArICAg ICAgICAgICAgIShjdHJsLT5zdGF0ZSA9PSBOVk1FX0NUUkxfQ09OTkVDVElORyAmJiBjdHJsLT5v cHRzLT5mYWlsX2Zhc3RfdG1vX25zID49IDAgJiYKPiArICAgICAgICAgICAgKChrdGltZV9nZXRf bnMoKSAtIGN0cmwtPnN0YXJ0X3JlY29ubmVjdF9ucykgPiAgY3RybC0+b3B0cy0+ZmFpbF9mYXN0 X3Rtb19ucykpICYmCgpUaGlzIGlzIGhhcmQgdG8gcmVhZCAtIEknZCBwcmVmZXIganVzdCBtYWtp bmcgYSBzbWFsbCBpbmxpbmUgaGVscGVyIHRoYXQgCmlzIGNhbGxlZC4KQXMgZm9yIHRoZSBsb2dp YzogbG9va3MgZ29vZC4gSSdtIGEgbGl0dGxlIGNvbmNlcm5lZCBhYm91dCBhIHJhY2Ugb24gCkNP Tk5FQ1RJTkcgYW5kIHN0YXJ0X3JlY29ubmVjdF9ucyBiZWluZyBzZXQgcmlnaHQgYXMgdGhlcmUn cyBubyBsb2NrcyAKKGFuZCB3ZSBkb24ndCB3YW50IHRvIGFkZCB0aGVtKSwgYnV0IGl0J3MgdmVy eSB2ZXJ5IHZlcnkgc21hbGwuCgpwcmVmZXIgaXQncyBqdXN0IGZhaWxfZmFzdF90bW9fbnMgYmUg dW5zaWduZWQsIHdpdGggMCBiZWluZyBkaXNhYmxlZC9ubyAKdGltZW91dC4KCj4gICAJICAgICFi bGtfbm9yZXRyeV9yZXF1ZXN0KHJxKSAmJiAhKHJxLT5jbWRfZmxhZ3MgJiBSRVFfTlZNRV9NUEFU SCkpCj4gICAJCXJldHVybiBCTEtfU1RTX1JFU09VUkNFOwo+Cj4gQEAgLTYxMiw2ICs2MTksNyBA QAo+ICAgCXsgTlZNRl9PUFRfTlJfV1JJVEVfUVVFVUVTLAkibnJfd3JpdGVfcXVldWVzPSVkIgl9 LAo+ICAgCXsgTlZNRl9PUFRfTlJfUE9MTF9RVUVVRVMsCSJucl9wb2xsX3F1ZXVlcz0lZCIJfSwK PiAgIAl7IE5WTUZfT1BUX1RPUywJCQkidG9zPSVkIgkJfSwKPiArCXsgTlZNRl9PUFRfRkFJTF9G QVNUX1RNTywJImZhaWxfZmFzdF90bW89JWQiCX0sCj4gICAJeyBOVk1GX09QVF9FUlIsCQkJTlVM TAkJCX0KPiAgIH07Cj4KPiBAQCAtNjIzLDYgKzYzMSw3IEBACj4gICAJaW50IHRva2VuLCByZXQg PSAwOwo+ICAgCXNpemVfdCBucW5sZW4gID0gMDsKPiAgIAlpbnQgY3RybF9sb3NzX3RtbyA9IE5W TUZfREVGX0NUUkxfTE9TU19UTU87Cj4gKwlpbnQgZmFpbF9mYXN0X3RtbyA9IE5WTUZfREVGX0ZB SUxfRkFTVF9UTU87Cj4gICAJdXVpZF90IGhvc3RpZDsKPgo+ICAgCS8qIFNldCBkZWZhdWx0cyAq Lwo+IEBAIC03NTEsNiArNzYwLDE2IEBACj4gICAJCQkJcHJfd2FybigiY3RybF9sb3NzX3RtbyA8 IDAgd2lsbCByZWNvbm5lY3QgZm9yZXZlclxuIik7Cj4gICAJCQljdHJsX2xvc3NfdG1vID0gdG9r ZW47Cj4gICAJCQlicmVhazsKPiArCQljYXNlIE5WTUZfT1BUX0ZBSUxfRkFTVF9UTU86Cj4gKwkJ CWlmIChtYXRjaF9pbnQoYXJncywgJnRva2VuKSkgewo+ICsJCQkJcmV0ID0gLUVJTlZBTDsKPiAr CQkJCWdvdG8gb3V0Owo+ICsJCQl9Cj4gKwo+ICsJCQlpZiAodG9rZW4gPCAwKQo+ICsJCQkJcHJf d2FybigiZmFpbF9mYXN0X3RtbyA8IDAsIEkvTyB3aWxsIHdhaXQgZm9yIHJlY29ubmVjdC9sb3Nz IGNvbnRyb2xsZXJcbiIpOwpzZWUgYWJvdmUuIFByZWZlciA8PTAgYmUgbm8gdGltZW91dC4KZG8g eW91IHdhbnQgYSB3YXJuaW5nIGlmIGxhcmdlciB0aGFuIGNvbnRyb2xsZXIgbG9zcyB0bW8gPwoK PiArCQkJZmFpbF9mYXN0X3RtbyA9IHRva2VuOwo+ICsJCQlicmVhazsKPiAgIAkJY2FzZSBOVk1G X09QVF9IT1NUTlFOOgo+ICAgCQkJaWYgKG9wdHMtPmhvc3QpIHsKPiAgIAkJCQlwcl9lcnIoImhv c3RucW4gYWxyZWFkeSB1c2VyLWFzc2lnbmVkOiAlc1xuIiwKPiBAQCAtODg3LDYgKzkwNiwxMSBA QAo+ICAgCQlvcHRzLT5tYXhfcmVjb25uZWN0cyA9IERJVl9ST1VORF9VUChjdHJsX2xvc3NfdG1v LAo+ICAgCQkJCQkJb3B0cy0+cmVjb25uZWN0X2RlbGF5KTsKPgo+ICsJaWYgKGZhaWxfZmFzdF90 bW8gPCAwKQo+ICsJCW9wdHMtPmZhaWxfZmFzdF90bW9fbnMgPSAtMTsKd291bGQgcHJlZmVyIGl0 IGJlIHNldCB0byAwIHRvIG1lYW4gZGlzYWJsZWQuCgo+ICsJZWxzZQo+ICsJCW9wdHMtPmZhaWxf ZmFzdF90bW9fbnMgPSBmYWlsX2Zhc3RfdG1vICogTlNFQ19QRVJfU0VDOwo+ICsKPiAgIAlpZiAo IW9wdHMtPmhvc3QpIHsKPiAgIAkJa3JlZl9nZXQoJm52bWZfZGVmYXVsdF9ob3N0LT5yZWYpOwo+ ICAgCQlvcHRzLT5ob3N0ID0gbnZtZl9kZWZhdWx0X2hvc3Q7Cj4gQEAgLTk4NSw3ICsxMDA5LDcg QEAKPiAgICNkZWZpbmUgTlZNRl9BTExPV0VEX09QVFMJKE5WTUZfT1BUX1FVRVVFX1NJWkUgfCBO Vk1GX09QVF9OUl9JT19RVUVVRVMgfCBcCj4gICAJCQkJIE5WTUZfT1BUX0tBVE8gfCBOVk1GX09Q VF9IT1NUTlFOIHwgXAo+ICAgCQkJCSBOVk1GX09QVF9IT1NUX0lEIHwgTlZNRl9PUFRfRFVQX0NP Tk5FQ1QgfFwKPiAtCQkJCSBOVk1GX09QVF9ESVNBQkxFX1NRRkxPVykKPiArCQkJCSBOVk1GX09Q VF9ESVNBQkxFX1NRRkxPV3xOVk1GX09QVF9GQUlMX0ZBU1RfVE1PKQo+Cj4gICBzdGF0aWMgc3Ry dWN0IG52bWVfY3RybCAqCj4gICBudm1mX2NyZWF0ZV9jdHJsKHN0cnVjdCBkZXZpY2UgKmRldiwg Y29uc3QgY2hhciAqYnVmKQo+IEBAIC0xMTk4LDcgKzEyMjIsNiBAQAo+ICAgCWNsYXNzX2Rlc3Ry b3kobnZtZl9jbGFzcyk7Cj4gICAJbnZtZl9ob3N0X3B1dChudm1mX2RlZmF1bHRfaG9zdCk7Cj4K PiAtCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IG52bWZfY29tbW9uX2NvbW1hbmQpICE9IDY0 KTsKCk9kZCBsaW5lIHRvIGhhdmUgaW4gdGhpcyBwYXRjaC4KCj4gICAJQlVJTERfQlVHX09OKHNp emVvZihzdHJ1Y3QgbnZtZl9jb25uZWN0X2NvbW1hbmQpICE9IDY0KTsKPiAgIAlCVUlMRF9CVUdf T04oc2l6ZW9mKHN0cnVjdCBudm1mX3Byb3BlcnR5X2dldF9jb21tYW5kKSAhPSA2NCk7Cj4gICAJ QlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgbnZtZl9wcm9wZXJ0eV9zZXRfY29tbWFuZCkgIT0g NjQpOwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9ob3N0L2ZhYnJpY3MuaCBiL2RyaXZl cnMvbnZtZS9ob3N0L2ZhYnJpY3MuaAo+IGluZGV4IDkzZjA4ZDcuLjIzNWM3NjcgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9udm1lL2hvc3QvZmFicmljcy5oCj4gKysrIGIvZHJpdmVycy9udm1lL2hv c3QvZmFicmljcy5oCj4gQEAgLTE1LDYgKzE1LDggQEAKPiAgICNkZWZpbmUgTlZNRl9ERUZfUkVD T05ORUNUX0RFTEFZCTEwCj4gICAvKiBkZWZhdWx0IHRvIDYwMCBzZWNvbmRzIG9mIHJlY29ubmVj dCBhdHRlbXB0cyBiZWZvcmUgZ2l2aW5nIHVwICovCj4gICAjZGVmaW5lIE5WTUZfREVGX0NUUkxf TE9TU19UTU8JCTYwMAo+ICsvKiBkZWZhdWx0IHRvIDMwIHNlY29uZHMgb2YgZmFpbCBmYXN0IElP IGNvbW1hbmRzICAqLwo+ICsjZGVmaW5lIE5WTUZfREVGX0ZBSUxfRkFTVF9UTU8JCTMwCj4KPiAg IC8qCj4gICAgKiBEZWZpbmUgYSBob3N0IGFzIHNlZW4gYnkgdGhlIHRhcmdldC4gIFdlIGFsbG9j YXRlIG9uZSBhdCBib290LCBidXQgYWxzbwo+IEBAIC01Niw2ICs1OCw3IEBACj4gICAJTlZNRl9P UFRfTlJfV1JJVEVfUVVFVUVTID0gMSA8PCAxNywKPiAgIAlOVk1GX09QVF9OUl9QT0xMX1FVRVVF UyA9IDEgPDwgMTgsCj4gICAJTlZNRl9PUFRfVE9TCQk9IDEgPDwgMTksCj4gKwlOVk1GX09QVF9G QUlMX0ZBU1RfVE1PCT0gMSA8PCAyMCwKPiAgIH07Cj4KPiAgIC8qKgo+IEBAIC04OSw2ICs5Miw3 IEBACj4gICAgKiBAbnJfd3JpdGVfcXVldWVzOiBudW1iZXIgb2YgcXVldWVzIGZvciB3cml0ZSBJ L08KPiAgICAqIEBucl9wb2xsX3F1ZXVlczogbnVtYmVyIG9mIHF1ZXVlcyBmb3IgcG9sbGluZyBJ L08KPiAgICAqIEB0b3M6IHR5cGUgb2Ygc2VydmljZQo+ICsgKiBAZmFzdF9mYWlsX3Rtb19uczog RmFzdCBJL08gZmFpbCB0aW1lb3V0IGluIG5hbm9zZWNvbmRzOwo+ICAgICovCj4gICBzdHJ1Y3Qg bnZtZl9jdHJsX29wdGlvbnMgewo+ICAgCXVuc2lnbmVkCQltYXNrOwo+IEBAIC0xMTEsNiArMTE1 LDcgQEAKPiAgIAl1bnNpZ25lZCBpbnQJCW5yX3dyaXRlX3F1ZXVlczsKPiAgIAl1bnNpZ25lZCBp bnQJCW5yX3BvbGxfcXVldWVzOwo+ICAgCWludAkJCXRvczsKPiArCXU2NAkJCWZhaWxfZmFzdF90 bW9fbnM7Cj4gICB9Owo+Cj4gICAvKgo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9ob3N0 L252bWUuaCBiL2RyaXZlcnMvbnZtZS9ob3N0L252bWUuaAo+IGluZGV4IDM0YWM3OWMuLjliNWY2 ZDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oCj4gKysrIGIvZHJpdmVy cy9udm1lL2hvc3QvbnZtZS5oCj4gQEAgLTI4Miw2ICsyODIsNyBAQAo+ICAgCXUxNiBpY2RvZmY7 Cj4gICAJdTE2IG1heGNtZDsKPiAgIAlpbnQgbnJfcmVjb25uZWN0czsKPiArCXU2NCBzdGFydF9y ZWNvbm5lY3RfbnM7Cj4gICAJc3RydWN0IG52bWZfY3RybF9vcHRpb25zICpvcHRzOwo+Cj4gICAJ c3RydWN0IHBhZ2UgKmRpc2NhcmRfcGFnZTsKPgo+IC0tLQo+IFJlZ2FyZHMsCj4gVmljdG9yCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtbnZt ZSBtYWlsaW5nIGxpc3QKbGludXgtbnZtZUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbnZtZQo=