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=-18.2 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,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 355BCC83013 for ; Tue, 1 Dec 2020 12:56:27 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 9A3FB207FF for ; Tue, 1 Dec 2020 12:56:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="lEQbmAis"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=javigon-com.20150623.gappssmtp.com header.i=@javigon-com.20150623.gappssmtp.com header.b="NLwwJ4wN" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9A3FB207FF Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=javigon.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=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: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:List-Owner; bh=uzQiSqOWAYHqh4epXQPuS3DVpQE9SJ4BQ7E+3e7NP/Y=; b=lEQbmAis7Ilf1syOD6GlLO681 MaPQoURKdWLQ4UHSBf4m11nReVr4oR5JAwSiFZE0IvuLu02NuXPvrb9SDzYQavP4y92Diqcflb0Dr zWfxRiL6S+tzgLBvh0Xd6yga5P27al65Ve5G3Z94g3B+6Ek9xTs4ylCd91k8wjSVGN/1cpi7c5XW+ wiRAAuJUTELmB5TiO5F7O6vr/cRJ9QSvKiCFQs1bKB3P0Nh/cuycAEc/kQEk+fkCOJnfP1+AvOsL9 UVeTW5ZTkfA7v9BlL/ubNE0O+++hUhkF42YEF1z0KGLFA/+UF/6G4xWxf2a4F0kD9vurNoAa8Ea1k AnpIR3LWg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kk5Ci-0005Ss-3I; Tue, 01 Dec 2020 12:56:24 +0000 Received: from mail-ed1-x543.google.com ([2a00:1450:4864:20::543]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kk5Cd-0005RS-R3 for linux-nvme@lists.infradead.org; Tue, 01 Dec 2020 12:56:21 +0000 Received: by mail-ed1-x543.google.com with SMTP id n24so3082137edb.4 for ; Tue, 01 Dec 2020 04:56:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=javigon-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Nu4i8+4GBsk/a/34aUwhlUNnDlkBrmJ8PlbnA/APAJM=; b=NLwwJ4wNWpFfJoYT8pcQU9oRaFmgRg+uvhSds5tb1IgB+Btv8/ottAfmxeJrjOTfzm XEKqElhFHeQCSElDcYHR11MVZ1VuebXwE24p5vO/9hioBdPUfqNbLke6DmM3oE2jSVVh 897VDTZYDiJFG66/nndkTE1nLr2UelsDQqulTsJlv+r/CS/h3WGs6gtCXUB7AsjmGLo3 NV/xIE0meVP7hrttfgqjxp7NSUEW8eUytksxuFrZDFXQMoNQnyobPuaSM3OFaJqwj5p0 HBte6Z4MJnbmIpPRka7YSxJegE3DF1nBN2m0n8kpj2CNxN/i9mbisouIezac7BC7VbA1 7tUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Nu4i8+4GBsk/a/34aUwhlUNnDlkBrmJ8PlbnA/APAJM=; b=bNP7I+OItcqOvz0Dg5G2Ax2IH9hV4OcnCYCPlu9GOHNeqMSs0MvTLNLdwQj7RIHtB3 OqwEtP5pJB51k8i5/Jpv8RLCkpiR6+GJk86Ql8ixDv+OZ7yzHViSVzKtml3FyFZxT84M 2DrE7fy+8gFTvLOs5MVhV+H6JRIro7hE4T7Iu1qpQzFbXdXfJNvmgZbPTC71v/LpPqOM ACY8QuORjk6VP7WnSAQIH5NnJjV5PyE09GCYZ8yFqoKRoXnmh3/aH+9XSoI+71YK3+Q5 acOtPcnlvPxy9xr4X5KmAhZNL3l70ruKGP7Q7jgVirasBIMFf0pQajGyK70f3jMIdPcI y5Rg== X-Gm-Message-State: AOAM533IRlWiWT328mmzzu8BYElnSPVt78qanMyf1ZhFJ5oqotzqAHcX gaOKBdwqhiGeFf8xMYufU0EaNbNErb3eul5KIjs= X-Google-Smtp-Source: ABdhPJzz5pTwzbu1PD5aW260CIbDPs9e9M5OJnQFulQoh0G5riZg3GLIIR0aTuao5F0EbRz2XtZAAw== X-Received: by 2002:aa7:d456:: with SMTP id q22mr3032586edr.206.1606827378485; Tue, 01 Dec 2020 04:56:18 -0800 (PST) Received: from ch-wrk-javier.localdomain (5.186.124.214.cgn.fibianet.dk. [5.186.124.214]) by smtp.gmail.com with ESMTPSA id be6sm796864edb.29.2020.12.01.04.56.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 01 Dec 2020 04:56:17 -0800 (PST) From: javier@javigon.com X-Google-Original-From: javier.gonz@samsung.com To: linux-nvme@lists.infradead.org Subject: [PATCH 4/4] nvme: enable char device per namespace Date: Tue, 1 Dec 2020 13:56:10 +0100 Message-Id: <20201201125610.17138-5-javier.gonz@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201201125610.17138-1-javier.gonz@samsung.com> References: <20201201125610.17138-1-javier.gonz@samsung.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201201_075620_016410_83F44FC2 X-CRM114-Status: GOOD ( 25.51 ) 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: linux-block@vger.kernel.org, kbusch@kernel.org, =?UTF-8?q?Javier=20Gonz=C3=A1lez?= , hch@lst.de, sagi@grimberg.me 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 RnJvbTogSmF2aWVyIEdvbnrDoWxleiA8amF2aWVyLmdvbnpAc2Ftc3VuZy5jb20+CgpDcmVhdGUg YSBjaGFyIGRldmljZSBwZXIgTlZNZSBuYW1lc3BhY2UuIFRoaXMgY2hhciBkZXZpY2UgaXMgYWx3 YXlzCmluaXRpYWxpemVkLCBpbmRlcGVuZGVudGx5IG9mIHdoZXRoZXIgdGhlZGVhdHVyZXMgaW1w bGVtZW50ZWQgYnkgdGhlCmRldmljZSBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBrZXJuZWwuIFVzZXIt c3BhY2UgY2FuIHRoZXJlZm9yZSBhbHdheXMKaXNzdWUgSU9DVExzIHRvIHRoZSBOVk1lIGRyaXZl ciB1c2luZyB0aGlzIGNoYXIgZGV2aWNlLgoKVGhlIGNoYXIgZGV2aWNlIGlzIHByZXNlbnRlZCBh cyAvZGV2L252bWVYY1luWiB0byBmb2xsb3cgdGhlIGhpZGRlbgpibG9jayBkZXZpY2UuIFRoaXMg bmFtaW5nIGFsc28gYWxpZ25zIHdpdGggbnZtZS1jbGkgZmlsdGVycywgc28gdGhlIGNoYXIKZGV2 aWNlIHNob3VsZCBiZSB1c2FibGUgd2l0aG91dCB0b29sIGNoYW5nZXMuCgpTaWduZWQtb2ZmLWJ5 OiBKYXZpZXIgR29uesOhbGV6IDxqYXZpZXIuZ29uekBzYW1zdW5nLmNvbT4KLS0tCiBkcml2ZXJz L252bWUvaG9zdC9jb3JlLmMgfCAxNDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tCiBkcml2ZXJzL252bWUvaG9zdC9udm1lLmggfCAgIDMgKwogMiBmaWxlcyBjaGFuZ2Vk LCAxMzIgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9udm1lL2hvc3QvY29yZS5jIGIvZHJpdmVycy9udm1lL2hvc3QvY29yZS5jCmluZGV4IDJjMjNl YTZkYzI5Ni4uOWM0YWNmMjcyNWYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWUvaG9zdC9jb3Jl LmMKKysrIGIvZHJpdmVycy9udm1lL2hvc3QvY29yZS5jCkBAIC04Niw3ICs4Niw5IEBAIHN0YXRp YyBERUZJTkVfTVVURVgobnZtZV9zdWJzeXN0ZW1zX2xvY2spOwogCiBzdGF0aWMgREVGSU5FX0lE QShudm1lX2luc3RhbmNlX2lkYSk7CiBzdGF0aWMgZGV2X3QgbnZtZV9jdHJsX2Jhc2VfY2hyX2Rl dnQ7CitzdGF0aWMgZGV2X3QgbnZtZV9uc19iYXNlX2Nocl9kZXZ0Owogc3RhdGljIHN0cnVjdCBj bGFzcyAqbnZtZV9jbGFzczsKK3N0YXRpYyBzdHJ1Y3QgY2xhc3MgKm52bWVfbnNfY2xhc3M7CiBz dGF0aWMgc3RydWN0IGNsYXNzICpudm1lX3N1YnN5c19jbGFzczsKIAogc3RhdGljIHZvaWQgbnZt ZV9wdXRfc3Vic3lzdGVtKHN0cnVjdCBudm1lX3N1YnN5c3RlbSAqc3Vic3lzKTsKQEAgLTQ5Nyw2 ICs0OTksNyBAQCBzdGF0aWMgdm9pZCBudm1lX2ZyZWVfbnMoc3RydWN0IGtyZWYgKmtyZWYpCiAJ aWYgKG5zLT5uZGV2KQogCQludm1lX252bV91bnJlZ2lzdGVyKG5zKTsKIAorCWNkZXZfZGV2aWNl X2RlbCgmbnMtPmNkZXYsICZucy0+Y2Rldl9kZXZpY2UpOwogCXB1dF9kaXNrKG5zLT5kaXNrKTsK IAludm1lX3B1dF9uc19oZWFkKG5zLT5oZWFkKTsKIAludm1lX3B1dF9jdHJsKG5zLT5jdHJsKTsK QEAgLTE2OTYsMTUgKzE2OTksMTUgQEAgc3RhdGljIGludCBudm1lX2hhbmRsZV9jdHJsX2lvY3Rs KHN0cnVjdCBudm1lX25zICpucywgdW5zaWduZWQgaW50IGNtZCwKIAlyZXR1cm4gcmV0OwogfQog Ci1zdGF0aWMgaW50IG52bWVfaW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgZm1vZGVf dCBtb2RlLAotCQl1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3N0YXRpYyBp bnQgX19udm1lX25zX2lvY3RsKHN0cnVjdCBnZW5kaXNrICpkaXNrLCB1bnNpZ25lZCBpbnQgY21k LAorCQkJICAgdW5zaWduZWQgbG9uZyBhcmcpCiB7CiAJc3RydWN0IG52bWVfbnNfaGVhZCAqaGVh ZCA9IE5VTEw7CiAJdm9pZCBfX3VzZXIgKmFyZ3AgPSAodm9pZCBfX3VzZXIgKilhcmc7CiAJc3Ry dWN0IG52bWVfbnMgKm5zOwogCWludCBzcmN1X2lkeCwgcmV0OwogCi0JbnMgPSBudm1lX2dldF9u c19mcm9tX2Rpc2soYmRldi0+YmRfZGlzaywgJmhlYWQsICZzcmN1X2lkeCk7CisJbnMgPSBudm1l X2dldF9uc19mcm9tX2Rpc2soZGlzaywgJmhlYWQsICZzcmN1X2lkeCk7CiAJaWYgKHVubGlrZWx5 KCFucykpCiAJCXJldHVybiAtRVdPVUxEQkxPQ0s7CiAKQEAgLTE3NDEsNiArMTc0NCwxOCBAQCBz dGF0aWMgaW50IG52bWVfaW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgZm1vZGVfdCBt b2RlLAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgbnZtZV9pb2N0bChzdHJ1Y3QgYmxv Y2tfZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUsCisJCSAgICAgIHVuc2lnbmVkIGludCBjbWQs IHVuc2lnbmVkIGxvbmcgYXJnKQoreworCXJldHVybiBfX252bWVfbnNfaW9jdGwoYmRldi0+YmRf ZGlzaywgY21kLCBhcmcpOworfQorCitzdGF0aWMgbG9uZyBudm1lX2NkZXZfaW9jdGwoc3RydWN0 IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCisJCQkgICAgdW5zaWduZWQgbG9uZyBhcmcp Cit7CisJcmV0dXJuIF9fbnZtZV9uc19pb2N0bCgoc3RydWN0IGdlbmRpc2sgKilmaWxlLT5wcml2 YXRlX2RhdGEsIGNtZCwgYXJnKTsKK30KKwogI2lmZGVmIENPTkZJR19DT01QQVQKIHN0cnVjdCBu dm1lX3VzZXJfaW8zMiB7CiAJX191OAlvcGNvZGU7CkBAIC0xNzgyLDEwICsxNzk3LDggQEAgc3Rh dGljIGludCBudm1lX2NvbXBhdF9pb2N0bChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBmbW9k ZV90IG1vZGUsCiAjZGVmaW5lIG52bWVfY29tcGF0X2lvY3RsCU5VTEwKICNlbmRpZiAvKiBDT05G SUdfQ09NUEFUICovCiAKLXN0YXRpYyBpbnQgbnZtZV9vcGVuKHN0cnVjdCBibG9ja19kZXZpY2Ug KmJkZXYsIGZtb2RlX3QgbW9kZSkKK3N0YXRpYyBpbnQgX19udm1lX29wZW4oc3RydWN0IG52bWVf bnMgKm5zKQogewotCXN0cnVjdCBudm1lX25zICpucyA9IGJkZXYtPmJkX2Rpc2stPnByaXZhdGVf ZGF0YTsKLQogI2lmZGVmIENPTkZJR19OVk1FX01VTFRJUEFUSAogCS8qIHNob3VsZCBuZXZlciBi ZSBjYWxsZWQgZHVlIHRvIEdFTkhEX0ZMX0hJRERFTiAqLwogCWlmIChXQVJOX09OX09OQ0UobnMt PmhlYWQtPmRpc2spKQpAQCAtMTgwNCwxMiArMTgxNywyNCBAQCBzdGF0aWMgaW50IG52bWVfb3Bl bihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUpCiAJcmV0dXJuIC1FTlhJ TzsKIH0KIAorc3RhdGljIHZvaWQgX19udm1lX3JlbGVhc2Uoc3RydWN0IG52bWVfbnMgKm5zKQor eworCW1vZHVsZV9wdXQobnMtPmN0cmwtPm9wcy0+bW9kdWxlKTsKKwludm1lX3B1dF9ucyhucyk7 Cit9CisKK3N0YXRpYyBpbnQgbnZtZV9vcGVuKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIGZt b2RlX3QgbW9kZSkKK3sKKwlzdHJ1Y3QgbnZtZV9ucyAqbnMgPSBiZGV2LT5iZF9kaXNrLT5wcml2 YXRlX2RhdGE7CisKKwlyZXR1cm4gX19udm1lX29wZW4obnMpOworfQorCiBzdGF0aWMgdm9pZCBu dm1lX3JlbGVhc2Uoc3RydWN0IGdlbmRpc2sgKmRpc2ssIGZtb2RlX3QgbW9kZSkKIHsKIAlzdHJ1 Y3QgbnZtZV9ucyAqbnMgPSBkaXNrLT5wcml2YXRlX2RhdGE7CiAKLQltb2R1bGVfcHV0KG5zLT5j dHJsLT5vcHMtPm1vZHVsZSk7Ci0JbnZtZV9wdXRfbnMobnMpOworCV9fbnZtZV9yZWxlYXNlKG5z KTsKIH0KIAogc3RhdGljIGludCBudm1lX2dldGdlbyhzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2 LCBzdHJ1Y3QgaGRfZ2VvbWV0cnkgKmdlbykKQEAgLTE4MjEsNiArMTg0NiwyNiBAQCBzdGF0aWMg aW50IG52bWVfZ2V0Z2VvKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHN0cnVjdCBoZF9nZW9t ZXRyeSAqZ2VvKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IG52bWVfY2Rldl9vcGVuKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCBudm1lX25z ICpucyA9IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9jZGV2LCBzdHJ1Y3QgbnZtZV9ucywgY2Rldik7 CisJaW50IHJldDsKKworCXJldCA9IF9fbnZtZV9vcGVuKG5zKTsKKwlpZiAoIXJldCkKKwkJZmls ZS0+cHJpdmF0ZV9kYXRhID0gbnMtPmRpc2s7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMg aW50IG52bWVfY2Rldl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpm aWxlKQoreworCXN0cnVjdCBudm1lX25zICpucyA9IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9jZGV2 LCBzdHJ1Y3QgbnZtZV9ucywgY2Rldik7CisKKwlfX252bWVfcmVsZWFzZShucyk7CisJcmV0dXJu IDA7Cit9CisKICNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkKIHN0YXRpYyB2b2lkIG52 bWVfaW5pdF9pbnRlZ3JpdHkoc3RydWN0IGdlbmRpc2sgKmRpc2ssIHUxNiBtcywgdTggcGlfdHlw ZSwKIAkJCQl1MzIgbWF4X2ludGVncml0eV9zZWdtZW50cykKQEAgLTIzMDMsNiArMjM0OCwxNCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGJsb2NrX2RldmljZV9vcGVyYXRpb25zIG52bWVfYmRldl9v cHMgPSB7CiAJLnByX29wcwkJPSAmbnZtZV9wcl9vcHMsCiB9OwogCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGZpbGVfb3BlcmF0aW9ucyBudm1lX2NkZXZfZm9wcyA9IHsKKwkub3duZXIJCT0gVEhJU19N T0RVTEUsCisJLm9wZW4JCT0gbnZtZV9jZGV2X29wZW4sCisJLnJlbGVhc2UJPSBudm1lX2NkZXZf cmVsZWFzZSwKKwkudW5sb2NrZWRfaW9jdGwJPSBudm1lX2NkZXZfaW9jdGwsCisJLmNvbXBhdF9p b2N0bAk9IGNvbXBhdF9wdHJfaW9jdGwsCit9OworCiAjaWZkZWYgQ09ORklHX05WTUVfTVVMVElQ QVRICiBzdGF0aWMgaW50IG52bWVfbnNfaGVhZF9vcGVuKHN0cnVjdCBibG9ja19kZXZpY2UgKmJk ZXYsIGZtb2RlX3QgbW9kZSkKIHsKQEAgLTMzMDEsNiArMzM1NCw5IEBAIHN0YXRpYyBpbmxpbmUg c3RydWN0IG52bWVfbnNfaGVhZCAqZGV2X3RvX25zX2hlYWQoc3RydWN0IGRldmljZSAqZGV2KQog ewogCXN0cnVjdCBnZW5kaXNrICpkaXNrID0gZGV2X3RvX2Rpc2soZGV2KTsKIAorCWlmIChkZXYt PmNsYXNzID09IG52bWVfbnNfY2xhc3MpCisJCXJldHVybiAoKHN0cnVjdCBudm1lX25zICopZGV2 X2dldF9kcnZkYXRhKGRldikpLT5oZWFkOworCiAJaWYgKGRpc2stPmZvcHMgPT0gJm52bWVfYmRl dl9vcHMpCiAJCXJldHVybiBudm1lX2dldF9uc19mcm9tX2RldihkZXYpLT5oZWFkOwogCWVsc2UK QEAgLTMzOTAsNyArMzQ0Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpudm1lX25zX2lk X2F0dHJzW10gPSB7CiB9OwogCiBzdGF0aWMgdW1vZGVfdCBudm1lX25zX2lkX2F0dHJzX2FyZV92 aXNpYmxlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAotCQlzdHJ1Y3QgYXR0cmlidXRlICphLCBpbnQg bikKKwkgICAgICAgc3RydWN0IGF0dHJpYnV0ZSAqYSwgaW50IG4pCiB7CiAJc3RydWN0IGRldmlj ZSAqZGV2ID0gY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBkZXZpY2UsIGtvYmopOwogCXN0cnVj dCBudm1lX25zX2lkcyAqaWRzID0gJmRldl90b19uc19oZWFkKGRldiktPmlkczsKQEAgLTM0MzIs NiArMzQ4OCwxMSBAQCBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpudm1lX25zX2lkX2F0 dHJfZ3JvdXBzW10gPSB7CiAJTlVMTCwKIH07CiAKK2NvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3Jv dXAgKm52bWVfbnNfY2hhcl9pZF9hdHRyX2dyb3Vwc1tdID0geworCSZudm1lX25zX2lkX2F0dHJf Z3JvdXAsCisJTlVMTCwKK307CisKICNkZWZpbmUgbnZtZV9zaG93X3N0cl9mdW5jdGlvbihmaWVs ZCkJCQkJCQlcCiBzdGF0aWMgc3NpemVfdCAgZmllbGQjI19zaG93KHN0cnVjdCBkZXZpY2UgKmRl diwJCQkJXAogCQkJICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYp CQlcCkBAIC0zODI0LDYgKzM4ODUsMzYgQEAgc3RydWN0IG52bWVfbnMgKm52bWVfZmluZF9nZXRf bnMoc3RydWN0IG52bWVfY3RybCAqY3RybCwgdW5zaWduZWQgbnNpZCkKIH0KIEVYUE9SVF9TWU1C T0xfTlNfR1BMKG52bWVfZmluZF9nZXRfbnMsIE5WTUVfVEFSR0VUX1BBU1NUSFJVKTsKIAorc3Rh dGljIGludCBudm1lX2FsbG9jX2NoYXJkZXZfbnMoc3RydWN0IG52bWVfY3RybCAqY3RybCwgc3Ry dWN0IG52bWVfbnMgKm5zKQoreworCWNoYXIgY2Rpc2tfbmFtZVtESVNLX05BTUVfTEVOXTsKKwlp bnQgcmV0ID0gMDsKKworCWRldmljZV9pbml0aWFsaXplKCZucy0+Y2Rldl9kZXZpY2UpOworCW5z LT5jZGV2X2RldmljZS5kZXZ0ID0gTUtERVYoTUFKT1IobnZtZV9uc19iYXNlX2Nocl9kZXZ0KSwK KwkJCQkgICAgIG5zLT5oZWFkLT5pbnN0YW5jZSk7CisJbnMtPmNkZXZfZGV2aWNlLmNsYXNzID0g bnZtZV9uc19jbGFzczsKKwlucy0+Y2Rldl9kZXZpY2UucGFyZW50ID0gY3RybC0+ZGV2aWNlOwor CW5zLT5jZGV2X2RldmljZS5ncm91cHMgPSBudm1lX25zX2NoYXJfaWRfYXR0cl9ncm91cHM7CisJ ZGV2X3NldF9kcnZkYXRhKCZucy0+Y2Rldl9kZXZpY2UsIG5zKTsKKworCXNwcmludGYoY2Rpc2tf bmFtZSwgIm52bWUlZGMlZG4lZCIsIGN0cmwtPnN1YnN5cy0+aW5zdGFuY2UsCisJCQljdHJsLT5p bnN0YW5jZSwgbnMtPmhlYWQtPmluc3RhbmNlKTsKKworCXJldCA9IGRldl9zZXRfbmFtZSgmbnMt PmNkZXZfZGV2aWNlLCAiJXMiLCBjZGlza19uYW1lKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0 OworCisJY2Rldl9pbml0KCZucy0+Y2RldiwgJm52bWVfY2Rldl9mb3BzKTsKKwlucy0+Y2Rldi5v d25lciA9IGN0cmwtPm9wcy0+bW9kdWxlOworCisJcmV0ID0gY2Rldl9kZXZpY2VfYWRkKCZucy0+ Y2RldiwgJm5zLT5jZGV2X2RldmljZSk7CisJaWYgKHJldCkKKwkJa2ZyZWVfY29uc3QobnMtPmNk ZXZfZGV2aWNlLmtvYmoubmFtZSk7CisKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgdm9pZCBu dm1lX2FsbG9jX25zKHN0cnVjdCBudm1lX2N0cmwgKmN0cmwsIHVuc2lnbmVkIG5zaWQsCiAJCXN0 cnVjdCBudm1lX25zX2lkcyAqaWRzKQogewpAQCAtMzg3MCw4ICszOTYxLDEyIEBAIHN0YXRpYyB2 b2lkIG52bWVfYWxsb2NfbnMoc3RydWN0IG52bWVfY3RybCAqY3RybCwgdW5zaWduZWQgbnNpZCwK IAltZW1jcHkoZGlzay0+ZGlza19uYW1lLCBkaXNrX25hbWUsIERJU0tfTkFNRV9MRU4pOwogCW5z LT5kaXNrID0gZGlzazsKIAorCS8qIFdoZW4gdGhlIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IGFu eSBvZiB0aGUgZmVhdHVyZXMgcmVxdWlyZWQgYnkgdGhlCisJICoga2VybmVsIChvciB2aWNldmVy c2EpLCBoaWRlIHRoZSBibG9jayBkZXZpY2UuIFdlIGNhbiBzdGlsbCByZWx5IG9uCisJICogdGhl IG5hbWVzcGFjZSBjaGFyIGRldmljZSBmb3Igc3VibWl0dGluZyBJT0NUTHMKKwkgKi8KIAlpZiAo bnZtZV91cGRhdGVfbnNfaW5mbyhucywgaWQpKQotCQlnb3RvIG91dF9wdXRfZGlzazsKKwkJZGlz ay0+ZmxhZ3MgfD0gR0VOSERfRkxfSElEREVOOwogCiAJaWYgKChjdHJsLT5xdWlya3MgJiBOVk1F X1FVSVJLX0xJR0hUTlZNKSAmJiBpZC0+dnNbMF0gPT0gMHgxKSB7CiAJCWlmIChudm1lX252bV9y ZWdpc3RlcihucywgZGlza19uYW1lLCBub2RlKSkgewpAQCAtMzg4Nyw5ICszOTgyLDEyIEBAIHN0 YXRpYyB2b2lkIG52bWVfYWxsb2NfbnMoc3RydWN0IG52bWVfY3RybCAqY3RybCwgdW5zaWduZWQg bnNpZCwKIAludm1lX2dldF9jdHJsKGN0cmwpOwogCiAJZGV2aWNlX2FkZF9kaXNrKGN0cmwtPmRl dmljZSwgbnMtPmRpc2ssIG52bWVfbnNfaWRfYXR0cl9ncm91cHMpOwotCiAJbnZtZV9tcGF0aF9h ZGRfZGlzayhucywgaWQpOwogCW52bWVfZmF1bHRfaW5qZWN0X2luaXQoJm5zLT5mYXVsdF9pbmpl Y3QsIG5zLT5kaXNrLT5kaXNrX25hbWUpOworCisJaWYgKG52bWVfYWxsb2NfY2hhcmRldl9ucyhj dHJsLCBucykpCisJCWdvdG8gb3V0X3B1dF9kaXNrOworCiAJa2ZyZWUoaWQpOwogCiAJcmV0dXJu OwpAQCAtNDY4NSwyMyArNDc4MywzOCBAQCBzdGF0aWMgaW50IF9faW5pdCBudm1lX2NvcmVfaW5p dCh2b2lkKQogCWlmIChyZXN1bHQgPCAwKQogCQlnb3RvIGRlc3Ryb3lfZGVsZXRlX3dxOwogCisJ cmVzdWx0ID0gYWxsb2NfY2hyZGV2X3JlZ2lvbigmbnZtZV9uc19iYXNlX2Nocl9kZXZ0LCAwLAor CQkJTlZNRV9NSU5PUlMsICJudm1lYyIpOworCWlmIChyZXN1bHQgPCAwKQorCQlnb3RvIHVucmVn aXN0ZXJfZGV2X2NocmRldjsKKwogCW52bWVfY2xhc3MgPSBjbGFzc19jcmVhdGUoVEhJU19NT0RV TEUsICJudm1lIik7CiAJaWYgKElTX0VSUihudm1lX2NsYXNzKSkgewogCQlyZXN1bHQgPSBQVFJf RVJSKG52bWVfY2xhc3MpOwotCQlnb3RvIHVucmVnaXN0ZXJfY2hyZGV2OworCQlnb3RvIHVucmVn aXN0ZXJfbnNfY2hyZGV2OwogCX0KIAludm1lX2NsYXNzLT5kZXZfdWV2ZW50ID0gbnZtZV9jbGFz c191ZXZlbnQ7CiAKKwludm1lX25zX2NsYXNzID0gY2xhc3NfY3JlYXRlKFRISVNfTU9EVUxFLCAi bnZtZS1ucyIpOworCWlmIChJU19FUlIobnZtZV9uc19jbGFzcykpIHsKKwkJcmVzdWx0ID0gUFRS X0VSUihudm1lX25zX2NsYXNzKTsKKwkJZ290byBkZXN0cm95X2Rldl9jbGFzczsKKwl9CisKIAlu dm1lX3N1YnN5c19jbGFzcyA9IGNsYXNzX2NyZWF0ZShUSElTX01PRFVMRSwgIm52bWUtc3Vic3lz dGVtIik7CiAJaWYgKElTX0VSUihudm1lX3N1YnN5c19jbGFzcykpIHsKIAkJcmVzdWx0ID0gUFRS X0VSUihudm1lX3N1YnN5c19jbGFzcyk7Ci0JCWdvdG8gZGVzdHJveV9jbGFzczsKKwkJZ290byBk ZXN0cm95X25zX2NsYXNzOwogCX0KIAlyZXR1cm4gMDsKIAotZGVzdHJveV9jbGFzczoKK2Rlc3Ry b3lfbnNfY2xhc3M6CisJY2xhc3NfZGVzdHJveShudm1lX25zX2NsYXNzKTsKK2Rlc3Ryb3lfZGV2 X2NsYXNzOgogCWNsYXNzX2Rlc3Ryb3kobnZtZV9jbGFzcyk7Ci11bnJlZ2lzdGVyX2NocmRldjoK K3VucmVnaXN0ZXJfbnNfY2hyZGV2OgorCXVucmVnaXN0ZXJfY2hyZGV2X3JlZ2lvbihudm1lX25z X2Jhc2VfY2hyX2RldnQsIE5WTUVfTUlOT1JTKTsKK3VucmVnaXN0ZXJfZGV2X2NocmRldjoKIAl1 bnJlZ2lzdGVyX2NocmRldl9yZWdpb24obnZtZV9jdHJsX2Jhc2VfY2hyX2RldnQsIE5WTUVfTUlO T1JTKTsKIGRlc3Ryb3lfZGVsZXRlX3dxOgogCWRlc3Ryb3lfd29ya3F1ZXVlKG52bWVfZGVsZXRl X3dxKTsKQEAgLTQ3MTcsNiArNDgzMCw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBudm1lX2NvcmVf ZXhpdCh2b2lkKQogewogCWNsYXNzX2Rlc3Ryb3kobnZtZV9zdWJzeXNfY2xhc3MpOwogCWNsYXNz X2Rlc3Ryb3kobnZtZV9jbGFzcyk7CisJdW5yZWdpc3Rlcl9jaHJkZXZfcmVnaW9uKG52bWVfbnNf YmFzZV9jaHJfZGV2dCwgTlZNRV9NSU5PUlMpOwogCXVucmVnaXN0ZXJfY2hyZGV2X3JlZ2lvbihu dm1lX2N0cmxfYmFzZV9jaHJfZGV2dCwgTlZNRV9NSU5PUlMpOwogCWRlc3Ryb3lfd29ya3F1ZXVl KG52bWVfZGVsZXRlX3dxKTsKIAlkZXN0cm95X3dvcmtxdWV1ZShudm1lX3Jlc2V0X3dxKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9ob3N0L252bWUuaCBiL2RyaXZlcnMvbnZtZS9ob3N0L252 bWUuaAppbmRleCBjZGZjZTcyNTBkYTAuLjUzM2JkNTRmOTE5NCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9udm1lL2hvc3QvbnZtZS5oCisrKyBiL2RyaXZlcnMvbnZtZS9ob3N0L252bWUuaApAQCAtNDM2 LDYgKzQzNiw5IEBAIHN0cnVjdCBudm1lX25zIHsKIAlzdHJ1Y3Qga3JlZiBrcmVmOwogCXN0cnVj dCBudm1lX25zX2hlYWQgKmhlYWQ7CiAKKwlzdHJ1Y3QgZGV2aWNlIGNkZXZfZGV2aWNlOwkvKiBj aGFyIGRldmljZSAqLworCXN0cnVjdCBjZGV2IGNkZXY7CisKIAlpbnQgbGJhX3NoaWZ0OwogCXUx NiBtczsKIAl1MTYgc2dzOwotLSAKMi4xNy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KTGludXgtbnZtZSBtYWlsaW5nIGxpc3QKTGludXgtbnZtZUBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtbnZtZQo=