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=-9.8 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,URIBL_BLOCKED,USER_AGENT_GIT 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 1021ACA9EAF for ; Mon, 28 Oct 2019 02:42:16 +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 D126D20663 for ; Mon, 28 Oct 2019 02:42:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="OC465cII"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="l4s4ZIQk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D126D20663 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=roeck-us.net 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:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=JH77dnrQCQOiTYWjbdUX+hHh6mrAdwWoZeZEkIpwTko=; b=OC465cIIm9M7fa GUt9I9c47ZNHXVZbUtqqWk5U1DI/jEDNM7TCDL1Z6fPs187UhmBq76bsMKlvPYftt/zsCTYV4KiSz nux9yWyZUe2U0D2IifEZ+sj/UxZsjdQpuUhIpdTvOuJGPcz5f23vm8D6Z7zHSOQ9dSaxWNZPb4yXo zzvqyA3qrQgDz6O9Xfs5TboBNzdj1INirk2c9M742yhCaxtXAsfflOJYYX59fbZtJeRMV0sv27ClK QA5+NtYRjQgaaTWCUPJWwLc8DUiVHl8IfpaRb1JVsHmEpfGW7g3tDt4/a3kDrP/msB2WUtYq9Vdpq NogJL+zFqzX0kvWpGQTQ==; 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 1iOuyv-0006s4-FH; Mon, 28 Oct 2019 02:42:09 +0000 Received: from mail-pg1-x542.google.com ([2607:f8b0:4864:20::542]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1iOuys-0006rb-Hb for linux-nvme@lists.infradead.org; Mon, 28 Oct 2019 02:42:08 +0000 Received: by mail-pg1-x542.google.com with SMTP id u23so5827156pgo.0 for ; Sun, 27 Oct 2019 19:42:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=IHo87aCT9Nc2PcJUEez5RtI7+H0wP6kuybDY/vHDZKg=; b=l4s4ZIQkFGM+FK89CM1vHnNg5C4XoK0JtLRFlXftxdKnJaMSUJ9j2pkqr2FvJirSNN fayOZ1o1vdh54VQDdwvKb8zrpTybf6ijXyCg3Up4VgSbPdNnirnh7gnos+4GxfstitgK /p7SZE1fkjbC8x12TiswGQh+atC2yDvGcUWds4pPCH5kpjuUktq8w5W4K25QyMIa9aMi IuAWmBvjvfnn0icGx+B+p0mzPlHLuJZFewgh9uJiur9uvKT9Po4CQUREFRRwpBLPDeGa AcMv9snmpvpB+a5LZkGIwKyOveuqhbCHe34GKeoYWM40EW8VZhcM00D5Qv8SDzeGxvmU Y+5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=IHo87aCT9Nc2PcJUEez5RtI7+H0wP6kuybDY/vHDZKg=; b=fo8PQpmFuzIBUrJguBKzWyeseJN+0ZxKT4fZ+ux5IDoyDLNXe+SON3SLl+hRDyP1tP AOngGLBVg5YERFfj/hRammfJ7asDk6kocdmeAIZ7s1kZuzh4/GSS3J/JFl+ZszkS69bv lZ2ZclKYddaupbw3XEfPZJXQHAUDvpNfIX3etvXW3IWqfUsuAGBOSD52cJgqLnjAn5FY AyT1041Dx5oe/zmakR17hwZdtwCdWJeU876F65piCG9DyHNeMHaRtoBinLzA9JFamMLQ vE8R90PC13MpnMb8sNczZCeHNfaX32o4Eh+vnHBcjYX4w4H3hKglWrbG5eV+PYv5DKR4 Dfug== X-Gm-Message-State: APjAAAViP7/SmfIMzhJNZfHULRWEIZ62jT/XV/b9BcQdxLwS1XmRRP8l Ugxy7g1IWJ5FNXAcGkoKL9Y= X-Google-Smtp-Source: APXvYqxzKe6K74wfzZdBgPWnxo11B0T0iIlKxIeWE/Nb1aJu8Ne9qYIAo/ws+sUYUT8CYUv0C2OXsg== X-Received: by 2002:a17:90a:1424:: with SMTP id j33mr4896492pja.2.1572230522865; Sun, 27 Oct 2019 19:42:02 -0700 (PDT) Received: from localhost ([2600:1700:e321:62f0:329c:23ff:fee3:9d7c]) by smtp.gmail.com with ESMTPSA id s8sm895905pfh.105.2019.10.27.19.42.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sun, 27 Oct 2019 19:42:02 -0700 (PDT) From: Guenter Roeck To: Keith Busch Subject: [PATCH] nvme: Add hardware monitoring support Date: Sun, 27 Oct 2019 19:41:56 -0700 Message-Id: <20191028024156.23964-1-linux@roeck-us.net> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191027_194206_609878_BB2CA8A7 X-CRM114-Status: GOOD ( 22.13 ) 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: Sagi Grimberg , linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, Jens Axboe , Chris Healy , Christoph Hellwig , Guenter Roeck 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 bnZtZSBkZXZpY2VzIHJlcG9ydCB0ZW1wZXJhdHVyZSBpbmZvcm1hdGlvbiBpbiB0aGUgY29udHJv bGxlciBpbmZvcm1hdGlvbgooZm9yIGxpbWl0cykgYW5kIGluIHRoZSBzbWFydCBsb2cuIEN1cnJl bnRseSwgdGhlIG9ubHkgbWVhbnMgdG8gcmV0cmlldmUKdGhpcyBpbmZvcm1hdGlvbiBpcyB0aGUg bnZtZSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLCB3aGljaCByZXF1aXJlcwpzdXBlci11c2VyIHBy aXZpbGVnZXMuCgpBdCB0aGUgc2FtZSB0aW1lLCBpdCB3b3VsZCBiZSBkZXNpcmFibGUgdG8gdXNl IE5WTUUgdGVtcGVyYXR1cmUgaW5mb3JtYXRpb24KZm9yIHRoZXJtYWwgY29udHJvbC4KClRoaXMg cGF0Y2ggYWRkcyBzdXBwb3J0IHRvIHJlYWQgTlZNRSB0ZW1wZXJhdHVyZXMgZnJvbSB0aGUga2Vy bmVsIHVzaW5nIHRoZQpod21vbiBBUEkgYW5kIGFkZHMgdGVtcGVyYXR1cmUgem9uZXMgZm9yIE5W TUUgZHJpdmVzLiBUaGUgdGhlcm1hbCBzdWJzeXN0ZW0KY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9u IHRvIHNldCB0aGVybWFsIHBvbGljaWVzLCBhbmQgdXNlcnNwYWNlIGNhbiBhY2Nlc3MKaXQgdXNp bmcgbGlic2Vuc29ycyBhbmQvb3IgdGhlICJzZW5zb3JzIiBjb21tYW5kLgoKRXhhbXBsZSBvdXRw dXQgZnJvbSB0aGUgInNlbnNvcnMiIGNvbW1hbmQ6Cgpudm1lMC1wY2ktMDEwMApBZGFwdGVyOiBQ Q0kgYWRhcHRlcgpDb21wb3NpdGU6ICAgICszOS4wwrBDICAoaGlnaCA9ICs4NS4wwrBDLCBjcml0 ID0gKzg1LjDCsEMpClNlbnNvciAxOiAgICAgKzM5LjDCsEMKU2Vuc29yIDI6ICAgICArNDEuMMKw QwoKU2lnbmVkLW9mZi1ieTogR3VlbnRlciBSb2VjayA8bGludXhAcm9lY2stdXMubmV0PgotLS0K IGRyaXZlcnMvbnZtZS9ob3N0L0tjb25maWcgICAgICB8ICAxMCArKysKIGRyaXZlcnMvbnZtZS9o b3N0L01ha2VmaWxlICAgICB8ICAgMSArCiBkcml2ZXJzL252bWUvaG9zdC9jb3JlLmMgICAgICAg fCAgIDUgKysKIGRyaXZlcnMvbnZtZS9ob3N0L252bWUtaHdtb24uYyB8IDE2MCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvbnZtZS9ob3N0L252bWUuaCAgICAgICB8 ICAgOCArKwogNSBmaWxlcyBjaGFuZ2VkLCAxODQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvbnZtZS9ob3N0L252bWUtaHdtb24uYwoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbnZtZS9ob3N0L0tjb25maWcgYi9kcml2ZXJzL252bWUvaG9zdC9LY29uZmlnCmluZGV4IDJi MzZmMDUyYmZiOS4uYWViNDllMTZlMzg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWUvaG9zdC9L Y29uZmlnCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L0tjb25maWcKQEAgLTIzLDYgKzIzLDE2IEBA IGNvbmZpZyBOVk1FX01VTFRJUEFUSAogCSAgIC9kZXYvbnZtZVhuWSBkZXZpY2Ugd2lsbCBzaG93 IHVwIGZvciBlYWNoIE5WTWUgbmFtZXNwYWNlcywKIAkgICBldmVuIGlmIGl0IGlzIGFjY2Vzc2li bGUgdGhyb3VnaCBtdWx0aXBsZSBjb250cm9sbGVycy4KIAorY29uZmlnIE5WTUVfSFdNT04KKwli b29sICJOVk1FIGhhcmR3YXJlIG1vbml0b3JpbmciCisJZGVwZW5kcyBvbiAoTlZNRV9DT1JFPXkg JiYgSFdNT049eSkgfHwgKE5WTUVfQ09SRT1tICYmIEhXTU9OKQorCWhlbHAKKwkgIFRoaXMgcHJv dmlkZXMgc3VwcG9ydCBmb3IgTlZNRSBoYXJkd2FyZSBtb25pdG9yaW5nLiBJZiBlbmFibGVkLAor CSAgYSBoYXJkd2FyZSBtb25pdG9yaW5nIGRldmljZSB3aWxsIGJlIGNyZWF0ZWQgZm9yIGVhY2gg TlZNRSBkcml2ZQorCSAgaW4gdGhlIHN5c3RlbS4KKworCSAgSWYgdW5zdXJlLCBzYXkgTi4KKwog Y29uZmlnIE5WTUVfRkFCUklDUwogCXRyaXN0YXRlCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZt ZS9ob3N0L01ha2VmaWxlIGIvZHJpdmVycy9udm1lL2hvc3QvTWFrZWZpbGUKaW5kZXggOGE0YjY3 MWM1ZjBjLi4wM2RlNDc5N2E4NzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbnZtZS9ob3N0L01ha2Vm aWxlCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L01ha2VmaWxlCkBAIC0xNCw2ICsxNCw3IEBAIG52 bWUtY29yZS0kKENPTkZJR19UUkFDSU5HKQkJKz0gdHJhY2UubwogbnZtZS1jb3JlLSQoQ09ORklH X05WTUVfTVVMVElQQVRIKQkrPSBtdWx0aXBhdGgubwogbnZtZS1jb3JlLSQoQ09ORklHX05WTSkJ CQkrPSBsaWdodG52bS5vCiBudm1lLWNvcmUtJChDT05GSUdfRkFVTFRfSU5KRUNUSU9OX0RFQlVH X0ZTKQkrPSBmYXVsdF9pbmplY3QubworbnZtZS1jb3JlLSQoQ09ORklHX05WTUVfSFdNT04pCQkr PSBudm1lLWh3bW9uLm8KIAogbnZtZS15CQkJCQkrPSBwY2kubwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL252bWUvaG9zdC9jb3JlLmMgYi9kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMKaW5kZXggZmE3 YmEwOWRjYTc3Li5mYzFkNGIxNDY3MTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbnZtZS9ob3N0L2Nv cmUuYworKysgYi9kcml2ZXJzL252bWUvaG9zdC9jb3JlLmMKQEAgLTI3OTYsNiArMjc5Niw5IEBA IGludCBudm1lX2luaXRfaWRlbnRpZnkoc3RydWN0IG52bWVfY3RybCAqY3RybCkKIAljdHJsLT5v bmNzID0gbGUxNl90b19jcHUoaWQtPm9uY3MpOwogCWN0cmwtPm10ZmEgPSBsZTE2X3RvX2NwdShp ZC0+bXRmYSk7CiAJY3RybC0+b2FlcyA9IGxlMzJfdG9fY3B1KGlkLT5vYWVzKTsKKwljdHJsLT53 Y3RlbXAgPSBsZTE2X3RvX2NwdShpZC0+d2N0ZW1wKTsKKwljdHJsLT5jY3RlbXAgPSBsZTE2X3Rv X2NwdShpZC0+Y2N0ZW1wKTsKKwogCWF0b21pY19zZXQoJmN0cmwtPmFib3J0X2xpbWl0LCBpZC0+ YWNsICsgMSk7CiAJY3RybC0+dndjID0gaWQtPnZ3YzsKIAlpZiAoaWQtPm1kdHMpCkBAIC0yODk3 LDYgKzI5MDAsOCBAQCBpbnQgbnZtZV9pbml0X2lkZW50aWZ5KHN0cnVjdCBudm1lX2N0cmwgKmN0 cmwpCiAKIAljdHJsLT5pZGVudGlmaWVkID0gdHJ1ZTsKIAorCW52bWVfaHdtb25faW5pdChjdHJs KTsKKwogCXJldHVybiAwOwogCiBvdXRfZnJlZToKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9o b3N0L252bWUtaHdtb24uYyBiL2RyaXZlcnMvbnZtZS9ob3N0L252bWUtaHdtb24uYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmYxOTA5OGJjMzIyOAotLS0gL2Rldi9u dWxsCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L252bWUtaHdtb24uYwpAQCAtMCwwICsxLDE2MCBA QAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qCisgKiBOVk0gRXhwcmVz cyBoYXJkd2FyZSBtb25pdG9yaW5nIHN1cHBvcnQKKyAqIENvcHlyaWdodCAoYykgMjAxOSwgR3Vl bnRlciBSb2VjaworICovCisKKyNpbmNsdWRlIDxsaW51eC9od21vbi5oPgorCisjaW5jbHVkZSAi bnZtZS5oIgorCitzdHJ1Y3QgbnZtZV9od21vbl9kYXRhIHsKKwlzdHJ1Y3QgbnZtZV9jdHJsICpj dHJsOworCXN0cnVjdCBudm1lX3NtYXJ0X2xvZyBsb2c7Cit9OworCitzdGF0aWMgaW50IG52bWVf aHdtb25fZ2V0X3NtYXJ0X2xvZyhzdHJ1Y3QgbnZtZV9od21vbl9kYXRhICpkYXRhKQoreworCXJl dHVybiBudm1lX2dldF9sb2coZGF0YS0+Y3RybCwgTlZNRV9OU0lEX0FMTCwgTlZNRV9MT0dfU01B UlQsIDAsCisJCQkgICAgJmRhdGEtPmxvZywgc2l6ZW9mKGRhdGEtPmxvZyksIDApOworfQorCitz dGF0aWMgaW50IG52bWVfaHdtb25fcmVhZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGVudW0gaHdtb25f c2Vuc29yX3R5cGVzIHR5cGUsCisJCQkgICB1MzIgYXR0ciwgaW50IGNoYW5uZWwsIGxvbmcgKnZh bCkKK3sKKwlzdHJ1Y3QgbnZtZV9od21vbl9kYXRhICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRl dik7CisJc3RydWN0IG52bWVfc21hcnRfbG9nICpsb2cgPSAmZGF0YS0+bG9nOworCWludCBlcnI7 CisJaW50IHRlbXA7CisKKwllcnIgPSBudm1lX2h3bW9uX2dldF9zbWFydF9sb2coZGF0YSk7CisJ aWYgKGVycikKKwkJcmV0dXJuIGVyciA8IDAgPyBlcnIgOiAtRVBST1RPOworCisJc3dpdGNoIChh dHRyKSB7CisJY2FzZSBod21vbl90ZW1wX21heDoKKwkJKnZhbCA9IChkYXRhLT5jdHJsLT53Y3Rl bXAgLSAyNzMpICogMTAwMDsKKwkJYnJlYWs7CisJY2FzZSBod21vbl90ZW1wX2NyaXQ6CisJCSp2 YWwgPSAoZGF0YS0+Y3RybC0+Y2N0ZW1wIC0gMjczKSAqIDEwMDA7CisJCWJyZWFrOworCWNhc2Ug aHdtb25fdGVtcF9pbnB1dDoKKwkJaWYgKCFjaGFubmVsKQorCQkJdGVtcCA9IGxlMTZfdG9fY3B1 cCgoX19sZTE2ICopbG9nLT50ZW1wZXJhdHVyZSk7CisJCWVsc2UKKwkJCXRlbXAgPSBsZTE2X3Rv X2NwdShsb2ctPnRlbXBfc2Vuc29yW2NoYW5uZWwgLSAxXSk7CisJCSp2YWwgPSAodGVtcCAtIDI3 MykgKiAxMDAwOworCQlicmVhazsKKwljYXNlIGh3bW9uX3RlbXBfY3JpdF9hbGFybToKKwkJKnZh bCA9ICEhKGxvZy0+Y3JpdGljYWxfd2FybmluZyAmIE5WTUVfU01BUlRfQ1JJVF9URU1QRVJBVFVS RSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWVyciA9IC1FT1BOT1RTVVBQOworCQlicmVhazsK Kwl9CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBudm1lX2h3 bW9uX3NlbnNvcl9uYW1lc1tdID0geworCSJDb21wb3NpdGUiLAorCSJTZW5zb3IgMSIsCisJIlNl bnNvciAyIiwKKwkiU2Vuc29yIDMiLAorCSJTZW5zb3IgNCIsCisJIlNlbnNvciA1IiwKKwkiU2Vu c29yIDYiLAorCSJTZW5zb3IgNyIsCisJIlNlbnNvciA4IiwKK307CisKK3N0YXRpYyBpbnQgbnZt ZV9od21vbl9yZWFkX3N0cmluZyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJICBlbnVtIGh3bW9u X3NlbnNvcl90eXBlcyB0eXBlLCB1MzIgYXR0ciwKKwkJCQkgIGludCBjaGFubmVsLCBjb25zdCBj aGFyICoqc3RyKQoreworCSpzdHIgPSBudm1lX2h3bW9uX3NlbnNvcl9uYW1lc1tjaGFubmVsXTsK KwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVtb2RlX3QgbnZtZV9od21vbl9pc192aXNpYmxlKGNv bnN0IHZvaWQgKl9kYXRhLAorCQkJCSAgICAgZW51bSBod21vbl9zZW5zb3JfdHlwZXMgdHlwZSwK KwkJCQkgICAgIHUzMiBhdHRyLCBpbnQgY2hhbm5lbCkKK3sKKwljb25zdCBzdHJ1Y3QgbnZtZV9o d21vbl9kYXRhICpkYXRhID0gX2RhdGE7CisKKwlzd2l0Y2ggKGF0dHIpIHsKKwljYXNlIGh3bW9u X3RlbXBfY3JpdDoKKwkJaWYgKCFjaGFubmVsICYmIGRhdGEtPmN0cmwtPmNjdGVtcCkKKwkJCXJl dHVybiAwNDQ0OworCQlicmVhazsKKwljYXNlIGh3bW9uX3RlbXBfbWF4OgorCQlpZiAoIWNoYW5u ZWwgJiYgZGF0YS0+Y3RybC0+d2N0ZW1wKQorCQkJcmV0dXJuIDA0NDQ7CisJCWJyZWFrOworCWNh c2UgaHdtb25fdGVtcF9jcml0X2FsYXJtOgorCQlpZiAoIWNoYW5uZWwpCisJCQlyZXR1cm4gMDQ0 NDsKKwkJYnJlYWs7CisJY2FzZSBod21vbl90ZW1wX2lucHV0OgorCWNhc2UgaHdtb25fdGVtcF9s YWJlbDoKKwkJaWYgKCFjaGFubmVsIHx8IGRhdGEtPmxvZy50ZW1wX3NlbnNvcltjaGFubmVsIC0g MV0pCisJCQlyZXR1cm4gMDQ0NDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQor CXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGh3bW9uX2NoYW5uZWxfaW5mbyAq bnZtZV9od21vbl9pbmZvW10gPSB7CisJSFdNT05fQ0hBTk5FTF9JTkZPKGNoaXAsIEhXTU9OX0Nf UkVHSVNURVJfVFopLAorCUhXTU9OX0NIQU5ORUxfSU5GTyh0ZW1wLAorCQkJICAgSFdNT05fVF9J TlBVVCB8IEhXTU9OX1RfTUFYIHwgSFdNT05fVF9DUklUIHwKKwkJCQlIV01PTl9UX0xBQkVMIHwg SFdNT05fVF9DUklUX0FMQVJNLAorCQkJICAgSFdNT05fVF9JTlBVVCB8IEhXTU9OX1RfTEFCRUws CisJCQkgICBIV01PTl9UX0lOUFVUIHwgSFdNT05fVF9MQUJFTCwKKwkJCSAgIEhXTU9OX1RfSU5Q VVQgfCBIV01PTl9UX0xBQkVMLAorCQkJICAgSFdNT05fVF9JTlBVVCB8IEhXTU9OX1RfTEFCRUws CisJCQkgICBIV01PTl9UX0lOUFVUIHwgSFdNT05fVF9MQUJFTCwKKwkJCSAgIEhXTU9OX1RfSU5Q VVQgfCBIV01PTl9UX0xBQkVMLAorCQkJICAgSFdNT05fVF9JTlBVVCB8IEhXTU9OX1RfTEFCRUws CisJCQkgICBIV01PTl9UX0lOUFVUIHwgSFdNT05fVF9MQUJFTCksCisJTlVMTAorfTsKKworc3Rh dGljIGNvbnN0IHN0cnVjdCBod21vbl9vcHMgbnZtZV9od21vbl9vcHMgPSB7CisJLmlzX3Zpc2li bGUgPSBudm1lX2h3bW9uX2lzX3Zpc2libGUsCisJLnJlYWQgPSBudm1lX2h3bW9uX3JlYWQsCisJ LnJlYWRfc3RyaW5nID0gbnZtZV9od21vbl9yZWFkX3N0cmluZywKK307CisKK3N0YXRpYyBjb25z dCBzdHJ1Y3QgaHdtb25fY2hpcF9pbmZvIG52bWVfaHdtb25fY2hpcF9pbmZvID0geworCS5vcHMg PSAmbnZtZV9od21vbl9vcHMsCisJLmluZm8gPSBudm1lX2h3bW9uX2luZm8sCit9OworCit2b2lk IG52bWVfaHdtb25faW5pdChzdHJ1Y3QgbnZtZV9jdHJsICpjdHJsKQoreworCXN0cnVjdCBkZXZp Y2UgKmRldiA9IGN0cmwtPmRldmljZTsKKwlzdHJ1Y3QgbnZtZV9od21vbl9kYXRhICpkYXRhOwor CXN0cnVjdCBkZXZpY2UgKmh3bW9uOworCWludCBlcnI7CisKKwlkYXRhID0gZGV2bV9remFsbG9j KGRldiwgc2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkYXRhKQorCQlyZXR1cm47 CisKKwlkYXRhLT5jdHJsID0gY3RybDsKKworCWVyciA9IG52bWVfaHdtb25fZ2V0X3NtYXJ0X2xv ZyhkYXRhKTsKKwlpZiAoZXJyKSB7CisJCWRldl93YXJuKGRldiwgIkZhaWxlZCB0byByZWFkIHNt YXJ0IGxvZyAoZXJyb3IgJWQpXG4iLCBlcnIpOworCQlyZXR1cm47CisJfQorCisJaHdtb24gPSBk ZXZtX2h3bW9uX2RldmljZV9yZWdpc3Rlcl93aXRoX2luZm8oZGV2LCBkZXZfbmFtZShkZXYpLAor CQkJCQkJICAgICBkYXRhLAorCQkJCQkJICAgICAmbnZtZV9od21vbl9jaGlwX2luZm8sCisJCQkJ CQkgICAgIE5VTEwpOworCWlmIChJU19FUlIoaHdtb24pKQorCQlkZXZfd2FybihkZXYsICJGYWls ZWQgdG8gaW5zdGFudGlhdGUgaHdtb24gZGV2aWNlXG4iKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbnZtZS9ob3N0L252bWUuaCBiL2RyaXZlcnMvbnZtZS9ob3N0L252bWUuaAppbmRleCAyMmU4 NDAxMzUyYzIuLmU2NDYwYzEyMTZiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9udm1lL2hvc3QvbnZt ZS5oCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L252bWUuaApAQCAtMjMxLDYgKzIzMSw4IEBAIHN0 cnVjdCBudm1lX2N0cmwgewogCXUxNiBrYXM7CiAJdTggbnBzczsKIAl1OCBhcHN0YTsKKwl1MTYg d2N0ZW1wOworCXUxNiBjY3RlbXA7CiAJdTMyIG9hZXM7CiAJdTMyIGFlbl9yZXN1bHQ7CiAJdTMy IGN0cmF0dDsKQEAgLTY1Miw0ICs2NTQsMTAgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgbnZtZV9u cyAqbnZtZV9nZXRfbnNfZnJvbV9kZXYoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkZXZf dG9fZGlzayhkZXYpLT5wcml2YXRlX2RhdGE7CiB9CiAKKyNpZiBJU19FTkFCTEVEKENPTkZJR19O Vk1FX0hXTU9OKQordm9pZCBudm1lX2h3bW9uX2luaXQoc3RydWN0IG52bWVfY3RybCAqY3RybCk7 CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIG52bWVfaHdtb25faW5pdChzdHJ1Y3QgbnZtZV9j dHJsICpjdHJsKSB7IH0KKyNlbmRpZgorCiAjZW5kaWYgLyogX05WTUVfSCAqLwotLSAKMi4xNy4x CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgt bnZtZSBtYWlsaW5nIGxpc3QKTGludXgtbnZtZUBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbnZtZQo=