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=-16.8 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 7D2B2C433E0 for ; Mon, 22 Feb 2021 19:01:35 +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 B736964E04 for ; Mon, 22 Feb 2021 19:01:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B736964E04 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=Tkj8aDtNbLCyX7b/5uLh8RwE809/WoypoXqJzcUAr4Y=; b=Dhp4ZN1Ukc4thlMzeKDApmTng n/ngiJY9cp+wSckCijLWa4M1hvCx46IbsXz+Z+nz2Y14GrXg3VvxIs9qU5ilPjm7dT3bB9ySl7kcN IAhT/2ZBLIYGsjLm6cUOK9vSjkpEk56ep0x1e1b33Lh5gpMwjyHGYh0Q7UC19Y16DTw5qdlBjt/cq aDDNM1SHXtGoJV/pmPm/JgsPfsJER8cwCGS5W/1PK1dbIVg0dnE5o0jj41vChfNWjmhIfekpjkIcl TB1TQbBU10FsQcGY1fkD8vNDs6tV1r68oAxKDaOsBDTTnpRfW0ET6aR6hiNCkfqni6RAZG3Wj7keo K7OSOC5Eg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lEGSN-000635-Vl; Mon, 22 Feb 2021 19:01:20 +0000 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1lEGSI-00061h-CN for linux-nvme@lists.infradead.org; Mon, 22 Feb 2021 19:01:16 +0000 Received: by mail-ej1-x632.google.com with SMTP id lu16so30992905ejb.9 for ; Mon, 22 Feb 2021 11:01:12 -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=Fjdnbz/KKZ8VL/osDjzbfGtDSRNHFNL+hrel03gTOo8=; b=BZsxd3+hV9Xfb/93Ladx71qfFeIeI1JkqnCfKQ6+nZ8RhQkdc2klexpK2nquhJ/nKc ur8ZidRYDFIP0J617yMowUBkmptfdkMCgZOWeIdH4SQxPG2GIYneUllM7kJ4w3NQUKmL 7AVo+2+MXerkWoTnQqoGkU9MyIyisNgortTLD/RHWkdEH7eTSIi9D9Aw8ZOgB2FJ++1d dzrJaT7a0oGHlh9Yu5TwZt2csAoLjpYvcafWHKMG03CGxdHzQXrClwozkCv4XEixmCbK WxI2CRHdmS97zhNIcMSL2C9VxxvJ5dCoZlMbfSeatvVeYhxZy4CMnYhFsuCjgFuVkQNH kcYA== 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=Fjdnbz/KKZ8VL/osDjzbfGtDSRNHFNL+hrel03gTOo8=; b=cjBl7aBUJAk3TYuDfD7Q46McwNakYX8jTinHWuXCH/q8ync3u3ZD2uck2sGYc40PUg kjKPpxmV87DjpBNkouBP3szwbLTZVRNjjo1SGZb67KMPt67r9gdFPEThM9XPNoy6BXTH 13efdM7H79fKvl/xaUY26HJy+6NAIruyYlYmZh4gRQpcgBWfXcpN8DESbmWhE3uHO7BD KDRU4Gt4MgXBcTGBRcjJ19mH9jndoLHOxFgWqvNqKT5H26kIkbIuQBcrv3/XleHZox0g HcimtaaKxlzNhj3KN1lJy9BXyOnl41xN8jT+o7M7pwBgTppldQNUdV+Dj5XQtbdpEBWA 1GyQ== X-Gm-Message-State: AOAM530zWcGOjzo64peGDHYZDFbD9pcKhbdmNEgYVeDP46Hhp+ba/GC4 0ib9+fwMhqTQHeLm2jpQbHk6lLnQfGRsBAd1hv4= X-Google-Smtp-Source: ABdhPJywZ52Uzif46P5VIB34urWxH5g5dKgy5XY8++/JiQjzV6agBwm8Ddmv3gBDJB+owMZ3LlVhBg== X-Received: by 2002:a17:906:7c4f:: with SMTP id g15mr22469830ejp.184.1614020471454; Mon, 22 Feb 2021 11:01:11 -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 d23sm9204528ejw.109.2021.02.22.11.01.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Feb 2021 11:01:11 -0800 (PST) From: javier@javigon.com X-Google-Original-From: javier.gonz@samsung.com To: linux-nvme@lists.infradead.org Subject: [PATCH V5 1/2] nvme: enable char device per namespace Date: Mon, 22 Feb 2021 20:01:06 +0100 Message-Id: <20210222190107.8479-2-javier.gonz@samsung.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210222190107.8479-1-javier.gonz@samsung.com> References: <20210222190107.8479-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-20210222_140114_448399_D82FF438 X-CRM114-Status: GOOD ( 26.67 ) 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.me, linux-block@vger.kernel.org, minwoo.im.dev@gmail.com, kbusch@kernel.org, =?UTF-8?q?Javier=20Gonz=C3=A1lez?= , hch@lst.de 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 YXlzCmluaXRpYWxpemVkLCBpbmRlcGVuZGVudGx5IG9mIHdoZXRoZXIgdGhlIGZlYXR1cmVzIGlt cGxlbWVudGVkIGJ5IHRoZQpkZXZpY2UgYXJlIHN1cHBvcnRlZCBieSB0aGUga2VybmVsLiBVc2Vy LXNwYWNlIGNhbiB0aGVyZWZvcmUgYWx3YXlzCmlzc3VlIElPQ1RMcyB0byB0aGUgTlZNZSBkcml2 ZXIgdXNpbmcgdGhlIGNoYXIgZGV2aWNlLgoKVGhlIGNoYXIgZGV2aWNlIGlzIHByZXNlbnRlZCBh cyAvZGV2L252bWUtZ2VuZXJpYy1YY1luWi4gVGhpcyBuYW1pbmcKc2NoZW1lIGZvbGxvd3MgdGhl IGNvbnZlbnRpb24gb2YgdGhlIGhpZGRlbiBkZXZpY2UgKG52bWVYY1luWikuIFN1cHBvcnQKZm9y IG11bHRpcGF0aCB3aWxsIGZvbGxvdy4KClNpZ25lZC1vZmYtYnk6IEphdmllciBHb256w6FsZXog PGphdmllci5nb256QHNhbXN1bmcuY29tPgpTaWduZWQtb2ZmLWJ5OiBNaW53b28gSW0gPG1pbndv by5pbS5kZXZAZ21haWwuY29tPgotLS0KIGRyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYyB8IDE3MSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIGRyaXZlcnMvbnZtZS9ob3N0 L252bWUuaCB8ICAgOSArKysKIDIgZmlsZXMgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMoKyksIDE2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbnZtZS9ob3N0L2NvcmUuYyBiL2Ry aXZlcnMvbnZtZS9ob3N0L2NvcmUuYwppbmRleCBkNzdmM2YyNmQ4ZDMuLmQ0ODg0MTA1YWQ5NSAx MDA2NDQKLS0tIGEvZHJpdmVycy9udm1lL2hvc3QvY29yZS5jCisrKyBiL2RyaXZlcnMvbnZtZS9o b3N0L2NvcmUuYwpAQCAtODYsMTMgKzg2LDI3IEBAIHN0YXRpYyBERUZJTkVfTVVURVgobnZtZV9z dWJzeXN0ZW1zX2xvY2spOwogCiBzdGF0aWMgREVGSU5FX0lEQShudm1lX2luc3RhbmNlX2lkYSk7 CiBzdGF0aWMgZGV2X3QgbnZtZV9jdHJsX2Jhc2VfY2hyX2RldnQ7CisKK3N0YXRpYyBERUZJTkVf SURBKG52bWVfZ2VuX21pbm9yX2lkYSk7CitzdGF0aWMgZGV2X3QgbnZtZV9uc19iYXNlX2Nocl9k ZXZ0Owogc3RhdGljIHN0cnVjdCBjbGFzcyAqbnZtZV9jbGFzczsKK3N0YXRpYyBzdHJ1Y3QgY2xh c3MgKm52bWVfbnNfY2xhc3M7CiBzdGF0aWMgc3RydWN0IGNsYXNzICpudm1lX3N1YnN5c19jbGFz czsKIAogc3RhdGljIHZvaWQgbnZtZV9wdXRfc3Vic3lzdGVtKHN0cnVjdCBudm1lX3N1YnN5c3Rl bSAqc3Vic3lzKTsKIHN0YXRpYyB2b2lkIG52bWVfcmVtb3ZlX2ludmFsaWRfbmFtZXNwYWNlcyhz dHJ1Y3QgbnZtZV9jdHJsICpjdHJsLAogCQkJCQkgICB1bnNpZ25lZCBuc2lkKTsKIAorc3RhdGlj IGlubGluZSBib29sIG52bWVfZGV2X2lzX2dlbmVyaWMoc3RydWN0IGRldmljZSAqZGV2KQorewor CXJldHVybiBkZXYtPmNsYXNzID09IG52bWVfbnNfY2xhc3M7Cit9CisKK3N0YXRpYyBpbmxpbmUg Ym9vbCBudm1lX25zX2lzX2dlbmVyaWMoc3RydWN0IG52bWVfbnMgKm5zKQoreworCXJldHVybiAh IW5zLT5taW5vcjsKK30KKwogLyoKICAqIFByZXBhcmUgYSBxdWV1ZSBmb3IgdGVhcmRvd24uCiAg KgpAQCAtNTU5LDcgKzU3MywxMCBAQCBzdGF0aWMgdm9pZCBudm1lX2ZyZWVfbnMoc3RydWN0IGty ZWYgKmtyZWYpCiAKIAlpZiAobnMtPm5kZXYpCiAJCW52bWVfbnZtX3VucmVnaXN0ZXIobnMpOwor CWlmIChudm1lX25zX2lzX2dlbmVyaWMobnMpKQorCQlpZGFfc2ltcGxlX3JlbW92ZSgmbnZtZV9n ZW5fbWlub3JfaWRhLCBucy0+bWlub3IgLSAxKTsKIAorCWNkZXZfZGV2aWNlX2RlbCgmbnMtPmNk ZXYsICZucy0+Y2Rldl9kZXZpY2UpOwogCXB1dF9kaXNrKG5zLT5kaXNrKTsKIAludm1lX3B1dF9u c19oZWFkKG5zLT5oZWFkKTsKIAludm1lX3B1dF9jdHJsKG5zLT5jdHJsKTsKQEAgLTE3NzIsMTUg KzE3ODksMTUgQEAgc3RhdGljIGludCBudm1lX2hhbmRsZV9jdHJsX2lvY3RsKHN0cnVjdCBudm1l X25zICpucywgdW5zaWduZWQgaW50IGNtZCwKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50 IG52bWVfaW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgZm1vZGVfdCBtb2RlLAotCQl1 bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3N0YXRpYyBpbnQgbnZtZV9kaXNr X2lvY3RsKHN0cnVjdCBnZW5kaXNrICpkaXNrLCB1bnNpZ25lZCBpbnQgY21kLAorCQkJICAgdW5z aWduZWQgbG9uZyBhcmcpCiB7CiAJc3RydWN0IG52bWVfbnNfaGVhZCAqaGVhZCA9IE5VTEw7CiAJ dm9pZCBfX3VzZXIgKmFyZ3AgPSAodm9pZCBfX3VzZXIgKilhcmc7CiAJc3RydWN0IG52bWVfbnMg Km5zOwogCWludCBzcmN1X2lkeCwgcmV0OwogCi0JbnMgPSBudm1lX2dldF9uc19mcm9tX2Rpc2so YmRldi0+YmRfZGlzaywgJmhlYWQsICZzcmN1X2lkeCk7CisJbnMgPSBudm1lX2dldF9uc19mcm9t X2Rpc2soZGlzaywgJmhlYWQsICZzcmN1X2lkeCk7CiAJaWYgKHVubGlrZWx5KCFucykpCiAJCXJl dHVybiAtRVdPVUxEQkxPQ0s7CiAKQEAgLTE4MTcsNiArMTgzNCwxMiBAQCBzdGF0aWMgaW50IG52 bWVfaW9jdGwoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgZm1vZGVfdCBtb2RlLAogCXJldHVy biByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgbnZtZV9pb2N0bChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpi ZGV2LCBmbW9kZV90IG1vZGUsCisJCSAgICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxv bmcgYXJnKQoreworCXJldHVybiBudm1lX2Rpc2tfaW9jdGwoYmRldi0+YmRfZGlzaywgY21kLCBh cmcpOworfQorCiAjaWZkZWYgQ09ORklHX0NPTVBBVAogc3RydWN0IG52bWVfdXNlcl9pbzMyIHsK IAlfX3U4CW9wY29kZTsKQEAgLTE4NTgsMTAgKzE4ODEsOCBAQCBzdGF0aWMgaW50IG52bWVfY29t cGF0X2lvY3RsKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIGZtb2RlX3QgbW9kZSwKICNkZWZp bmUgbnZtZV9jb21wYXRfaW9jdGwJTlVMTAogI2VuZGlmIC8qIENPTkZJR19DT01QQVQgKi8KIAot c3RhdGljIGludCBudm1lX29wZW4oc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgZm1vZGVfdCBt b2RlKQorc3RhdGljIGludCBudm1lX25zX29wZW4oc3RydWN0IG52bWVfbnMgKm5zKQogewotCXN0 cnVjdCBudm1lX25zICpucyA9IGJkZXYtPmJkX2Rpc2stPnByaXZhdGVfZGF0YTsKLQogI2lmZGVm IENPTkZJR19OVk1FX01VTFRJUEFUSAogCS8qIHNob3VsZCBuZXZlciBiZSBjYWxsZWQgZHVlIHRv IEdFTkhEX0ZMX0hJRERFTiAqLwogCWlmIChXQVJOX09OX09OQ0UobnMtPmhlYWQtPmRpc2spKQpA QCAtMTg4MCwxNCArMTkwMSwyMiBAQCBzdGF0aWMgaW50IG52bWVfb3BlbihzdHJ1Y3QgYmxvY2tf ZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUpCiAJcmV0dXJuIC1FTlhJTzsKIH0KIAotc3RhdGlj IHZvaWQgbnZtZV9yZWxlYXNlKHN0cnVjdCBnZW5kaXNrICpkaXNrLCBmbW9kZV90IG1vZGUpCitz dGF0aWMgdm9pZCBudm1lX25zX3JlbGVhc2Uoc3RydWN0IG52bWVfbnMgKm5zKQogewotCXN0cnVj dCBudm1lX25zICpucyA9IGRpc2stPnByaXZhdGVfZGF0YTsKLQogCW1vZHVsZV9wdXQobnMtPmN0 cmwtPm9wcy0+bW9kdWxlKTsKIAludm1lX3B1dF9ucyhucyk7CiB9CiAKK3N0YXRpYyBpbnQgbnZt ZV9vcGVuKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIGZtb2RlX3QgbW9kZSkKK3sKKwlyZXR1 cm4gbnZtZV9uc19vcGVuKGJkZXYtPmJkX2Rpc2stPnByaXZhdGVfZGF0YSk7Cit9CisKK3N0YXRp YyB2b2lkIG52bWVfcmVsZWFzZShzdHJ1Y3QgZ2VuZGlzayAqZGlzaywgZm1vZGVfdCBtb2RlKQor eworCW52bWVfbnNfcmVsZWFzZShkaXNrLT5wcml2YXRlX2RhdGEpOworfQorCiBzdGF0aWMgaW50 IG52bWVfZ2V0Z2VvKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIHN0cnVjdCBoZF9nZW9tZXRy eSAqZ2VvKQogewogCS8qIHNvbWUgc3RhbmRhcmQgdmFsdWVzICovCkBAIC0yMjQxLDYgKzIyNzAs MTMgQEAgc3RhdGljIGludCBudm1lX3VwZGF0ZV9uc19pbmZvKHN0cnVjdCBudm1lX25zICpucywg c3RydWN0IG52bWVfaWRfbnMgKmlkKQogCXJldHVybiAwOwogCiBvdXRfdW5mcmVlemU6CisJLyoK KwkgKiBXaGVuIHRoZSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCBhbnkgb2YgdGhlIGZlYXR1cmVz IHJlcXVpcmVkIGJ5IHRoZQorCSAqIGtlcm5lbCAob3IgdmljZXZlcnNhKSwgaGlkZSB0aGUgYmxv Y2sgZGV2aWNlLiBXZSBjYW4gc3RpbGwgcmVseSBvbgorCSAqIHRoZSBuYW1lc3BhY2UgY2hhciBk ZXZpY2UgZm9yIHN1Ym1pdHRpbmcgSU9DVExzCisJICovCisJbnMtPmRpc2stPmZsYWdzIHw9IEdF TkhEX0ZMX0hJRERFTjsKKwogCWJsa19tcV91bmZyZWV6ZV9xdWV1ZShucy0+ZGlzay0+cXVldWUp OwogCXJldHVybiByZXQ7CiB9CkBAIC0yMzc4LDYgKzI0MTQsMzggQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBibG9ja19kZXZpY2Vfb3BlcmF0aW9ucyBudm1lX2JkZXZfb3BzID0gewogCS5wcl9vcHMJ CT0gJm52bWVfcHJfb3BzLAogfTsKIAorc3RhdGljIGludCBudm1lX2NkZXZfb3BlbihzdHJ1Y3Qg aW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgbnZtZV9ucyAqbnMg PSBjb250YWluZXJfb2YoaW5vZGUtPmlfY2Rldiwgc3RydWN0IG52bWVfbnMsIGNkZXYpOworCisJ cmV0dXJuIG52bWVfbnNfb3Blbihucyk7Cit9CisKK3N0YXRpYyBpbnQgbnZtZV9jZGV2X3JlbGVh c2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IG52 bWVfbnMgKm5zID0gY29udGFpbmVyX29mKGlub2RlLT5pX2NkZXYsIHN0cnVjdCBudm1lX25zLCBj ZGV2KTsKKworCW52bWVfbnNfcmVsZWFzZShucyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBs b25nIG52bWVfY2Rldl9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwK KwkJCSAgICB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlzdHJ1Y3QgbnZtZV9ucyAqbnMgPSBjb250 YWluZXJfb2YoZmlsZS0+Zl9pbm9kZS0+aV9jZGV2LAorCQkJCXN0cnVjdCBudm1lX25zLCBjZGV2 KTsKKworCXJldHVybiBudm1lX2Rpc2tfaW9jdGwobnMtPmRpc2ssIGNtZCwgYXJnKTsKK30KKwor c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbnZtZV9jZGV2X2ZvcHMgPSB7CisJ Lm93bmVyCQk9IFRISVNfTU9EVUxFLAorCS5vcGVuCQk9IG52bWVfY2Rldl9vcGVuLAorCS5yZWxl YXNlCT0gbnZtZV9jZGV2X3JlbGVhc2UsCisJLnVubG9ja2VkX2lvY3RsCT0gbnZtZV9jZGV2X2lv Y3RsLAorCS5jb21wYXRfaW9jdGwJPSBjb21wYXRfcHRyX2lvY3RsLAorfTsKKwogI2lmZGVmIENP TkZJR19OVk1FX01VTFRJUEFUSAogc3RhdGljIGludCBudm1lX25zX2hlYWRfb3BlbihzdHJ1Y3Qg YmxvY2tfZGV2aWNlICpiZGV2LCBmbW9kZV90IG1vZGUpCiB7CkBAIC0zMzc5LDYgKzM0NDcsOSBA QCBzdGF0aWMgaW5saW5lIHN0cnVjdCBudm1lX25zX2hlYWQgKmRldl90b19uc19oZWFkKHN0cnVj dCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZ2VuZGlzayAqZGlzayA9IGRldl90b19kaXNrKGRl dik7CiAKKwlpZiAobnZtZV9kZXZfaXNfZ2VuZXJpYyhkZXYpKQorCQlyZXR1cm4gbnZtZV9nZXRf bnNfZnJvbV9jZGV2KGRldiktPmhlYWQ7CisKIAlpZiAoZGlzay0+Zm9wcyA9PSAmbnZtZV9iZGV2 X29wcykKIAkJcmV0dXJuIG52bWVfZ2V0X25zX2Zyb21fZGV2KGRldiktPmhlYWQ7CiAJZWxzZQpA QCAtMzQ4OCw2ICszNTU5LDggQEAgc3RhdGljIHVtb2RlX3QgbnZtZV9uc19pZF9hdHRyc19hcmVf dmlzaWJsZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKIAl9CiAjaWZkZWYgQ09ORklHX05WTUVfTVVM VElQQVRICiAJaWYgKGEgPT0gJmRldl9hdHRyX2FuYV9ncnBpZC5hdHRyIHx8IGEgPT0gJmRldl9h dHRyX2FuYV9zdGF0ZS5hdHRyKSB7CisJCWlmIChudm1lX2Rldl9pc19nZW5lcmljKGRldikpCisJ CQlyZXR1cm4gMDsKIAkJaWYgKGRldl90b19kaXNrKGRldiktPmZvcHMgIT0gJm52bWVfYmRldl9v cHMpIC8qIHBlci1wYXRoIGF0dHIgKi8KIAkJCXJldHVybiAwOwogCQlpZiAoIW52bWVfY3RybF91 c2VfYW5hKG52bWVfZ2V0X25zX2Zyb21fZGV2KGRldiktPmN0cmwpKQpAQCAtMzUxMCw2ICszNTgz LDExIEBAIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKm52bWVfbnNfaWRfYXR0cl9ncm91 cHNbXSA9IHsKIAlOVUxMLAogfTsKIAorY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqbnZt ZV9uc19jaGFyX2lkX2F0dHJfZ3JvdXBzW10gPSB7CisJJm52bWVfbnNfaWRfYXR0cl9ncm91cCwK KwlOVUxMLAorfTsKKwogI2RlZmluZSBudm1lX3Nob3dfc3RyX2Z1bmN0aW9uKGZpZWxkKQkJCQkJ CVwKIHN0YXRpYyBzc2l6ZV90ICBmaWVsZCMjX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAkJCQlc CiAJCQkgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikJCVwKQEAg LTM5MDIsNiArMzk4MCw0NyBAQCBzdHJ1Y3QgbnZtZV9ucyAqbnZtZV9maW5kX2dldF9ucyhzdHJ1 Y3QgbnZtZV9jdHJsICpjdHJsLCB1bnNpZ25lZCBuc2lkKQogfQogRVhQT1JUX1NZTUJPTF9OU19H UEwobnZtZV9maW5kX2dldF9ucywgTlZNRV9UQVJHRVRfUEFTU1RIUlUpOwogCitzdGF0aWMgaW50 IG52bWVfYWxsb2NfY2hhcmRldl9ucyhzdHJ1Y3QgbnZtZV9jdHJsICpjdHJsLCBzdHJ1Y3QgbnZt ZV9ucyAqbnMpCit7CisJY2hhciBjZGlza19uYW1lW0RJU0tfTkFNRV9MRU5dOworCWludCByZXQ7 CisKKwlyZXQgPSBpZGFfc2ltcGxlX2dldCgmbnZtZV9nZW5fbWlub3JfaWRhLCAwLCAwLCBHRlBf S0VSTkVMKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCW5zLT5taW5vciA9IHJl dCArIDE7CisJZGV2aWNlX2luaXRpYWxpemUoJm5zLT5jZGV2X2RldmljZSk7CisJbnMtPmNkZXZf ZGV2aWNlLmRldnQgPSBNS0RFVihNQUpPUihudm1lX25zX2Jhc2VfY2hyX2RldnQpLCByZXQpOwor CW5zLT5jZGV2X2RldmljZS5jbGFzcyA9IG52bWVfbnNfY2xhc3M7CisJbnMtPmNkZXZfZGV2aWNl LnBhcmVudCA9IGN0cmwtPmRldmljZTsKKwlucy0+Y2Rldl9kZXZpY2UuZ3JvdXBzID0gbnZtZV9u c19jaGFyX2lkX2F0dHJfZ3JvdXBzOworCWRldl9zZXRfZHJ2ZGF0YSgmbnMtPmNkZXZfZGV2aWNl LCBucyk7CisKKwlzcHJpbnRmKGNkaXNrX25hbWUsICJudm1lLWdlbmVyaWMtJWRjJWRuJWQiLCBj dHJsLT5zdWJzeXMtPmluc3RhbmNlLAorCQljdHJsLT5pbnN0YW5jZSwgbnMtPmhlYWQtPmluc3Rh bmNlKTsKKworCXJldCA9IGRldl9zZXRfbmFtZSgmbnMtPmNkZXZfZGV2aWNlLCAiJXMiLCBjZGlz a19uYW1lKTsKKwlpZiAocmV0KQorCQlnb3RvIHB1dF9pZGE7CisKKwljZGV2X2luaXQoJm5zLT5j ZGV2LCAmbnZtZV9jZGV2X2ZvcHMpOworCW5zLT5jZGV2Lm93bmVyID0gY3RybC0+b3BzLT5tb2R1 bGU7CisKKwlyZXQgPSBjZGV2X2RldmljZV9hZGQoJm5zLT5jZGV2LCAmbnMtPmNkZXZfZGV2aWNl KTsKKwlpZiAocmV0KQorCQlnb3RvIGZyZWVfa29iajsKKworCXJldHVybiByZXQ7CisKK2ZyZWVf a29iajoKKwlrZnJlZV9jb25zdChucy0+Y2Rldl9kZXZpY2Uua29iai5uYW1lKTsKK3B1dF9pZGE6 CisJaWRhX3NpbXBsZV9yZW1vdmUoJm52bWVfZ2VuX21pbm9yX2lkYSwgbnMtPm1pbm9yIC0gMSk7 CisJbnMtPm1pbm9yID0gMDsKKwlyZXR1cm4gcmV0OworfQorCiBzdGF0aWMgdm9pZCBudm1lX2Fs bG9jX25zKHN0cnVjdCBudm1lX2N0cmwgKmN0cmwsIHVuc2lnbmVkIG5zaWQsCiAJCXN0cnVjdCBu dm1lX25zX2lkcyAqaWRzKQogewpAQCAtMzk0OCw4ICs0MDY3LDcgQEAgc3RhdGljIHZvaWQgbnZt ZV9hbGxvY19ucyhzdHJ1Y3QgbnZtZV9jdHJsICpjdHJsLCB1bnNpZ25lZCBuc2lkLAogCW1lbWNw eShkaXNrLT5kaXNrX25hbWUsIGRpc2tfbmFtZSwgRElTS19OQU1FX0xFTik7CiAJbnMtPmRpc2sg PSBkaXNrOwogCi0JaWYgKG52bWVfdXBkYXRlX25zX2luZm8obnMsIGlkKSkKLQkJZ290byBvdXRf cHV0X2Rpc2s7CisJbnZtZV91cGRhdGVfbnNfaW5mbyhucywgaWQpOwogCiAJaWYgKChjdHJsLT5x dWlya3MgJiBOVk1FX1FVSVJLX0xJR0hUTlZNKSAmJiBpZC0+dnNbMF0gPT0gMHgxKSB7CiAJCWlm IChudm1lX252bV9yZWdpc3RlcihucywgZGlza19uYW1lLCBub2RlKSkgewpAQCAtMzk2NSw5ICs0 MDgzLDE0IEBAIHN0YXRpYyB2b2lkIG52bWVfYWxsb2NfbnMoc3RydWN0IG52bWVfY3RybCAqY3Ry bCwgdW5zaWduZWQgbnNpZCwKIAludm1lX2dldF9jdHJsKGN0cmwpOwogCiAJZGV2aWNlX2FkZF9k aXNrKGN0cmwtPmRldmljZSwgbnMtPmRpc2ssIG52bWVfbnNfaWRfYXR0cl9ncm91cHMpOwotCiAJ bnZtZV9tcGF0aF9hZGRfZGlzayhucywgaWQpOwogCW52bWVfZmF1bHRfaW5qZWN0X2luaXQoJm5z LT5mYXVsdF9pbmplY3QsIG5zLT5kaXNrLT5kaXNrX25hbWUpOworCisJaWYgKG52bWVfYWxsb2Nf Y2hhcmRldl9ucyhjdHJsLCBucykpCisJCWRldl93YXJuKGN0cmwtPmRldmljZSwKKwkJCSJmYWls ZWQgdG8gY3JlYXRlIGdlbmVyaWMgaGFuZGxlIGZvciBuc2lkOiVkXG4iLAorCQkJbnNpZCk7CisK IAlrZnJlZShpZCk7CiAKIAlyZXR1cm47CkBAIC00NzgwLDIzICs0OTAzLDM4IEBAIHN0YXRpYyBp bnQgX19pbml0IG52bWVfY29yZV9pbml0KHZvaWQpCiAJaWYgKHJlc3VsdCA8IDApCiAJCWdvdG8g ZGVzdHJveV9kZWxldGVfd3E7CiAKKwlyZXN1bHQgPSBhbGxvY19jaHJkZXZfcmVnaW9uKCZudm1l X25zX2Jhc2VfY2hyX2RldnQsIDAsCisJCQlOVk1FX01JTk9SUywgIm52bWVjIik7CisJaWYgKHJl c3VsdCA8IDApCisJCWdvdG8gdW5yZWdpc3Rlcl9kZXZfY2hyZGV2OworCiAJbnZtZV9jbGFzcyA9 IGNsYXNzX2NyZWF0ZShUSElTX01PRFVMRSwgIm52bWUiKTsKIAlpZiAoSVNfRVJSKG52bWVfY2xh c3MpKSB7CiAJCXJlc3VsdCA9IFBUUl9FUlIobnZtZV9jbGFzcyk7Ci0JCWdvdG8gdW5yZWdpc3Rl cl9jaHJkZXY7CisJCWdvdG8gdW5yZWdpc3Rlcl9uc19jaHJkZXY7CiAJfQogCW52bWVfY2xhc3Mt PmRldl91ZXZlbnQgPSBudm1lX2NsYXNzX3VldmVudDsKIAorCW52bWVfbnNfY2xhc3MgPSBjbGFz c19jcmVhdGUoVEhJU19NT0RVTEUsICJudm1lLW5zIik7CisJaWYgKElTX0VSUihudm1lX25zX2Ns YXNzKSkgeworCQlyZXN1bHQgPSBQVFJfRVJSKG52bWVfbnNfY2xhc3MpOworCQlnb3RvIGRlc3Ry b3lfZGV2X2NsYXNzOworCX0KKwogCW52bWVfc3Vic3lzX2NsYXNzID0gY2xhc3NfY3JlYXRlKFRI SVNfTU9EVUxFLCAibnZtZS1zdWJzeXN0ZW0iKTsKIAlpZiAoSVNfRVJSKG52bWVfc3Vic3lzX2Ns YXNzKSkgewogCQlyZXN1bHQgPSBQVFJfRVJSKG52bWVfc3Vic3lzX2NsYXNzKTsKLQkJZ290byBk ZXN0cm95X2NsYXNzOworCQlnb3RvIGRlc3Ryb3lfbnNfY2xhc3M7CiAJfQogCXJldHVybiAwOwog Ci1kZXN0cm95X2NsYXNzOgorZGVzdHJveV9uc19jbGFzczoKKwljbGFzc19kZXN0cm95KG52bWVf bnNfY2xhc3MpOworZGVzdHJveV9kZXZfY2xhc3M6CiAJY2xhc3NfZGVzdHJveShudm1lX2NsYXNz KTsKLXVucmVnaXN0ZXJfY2hyZGV2OgordW5yZWdpc3Rlcl9uc19jaHJkZXY6CisJdW5yZWdpc3Rl cl9jaHJkZXZfcmVnaW9uKG52bWVfbnNfYmFzZV9jaHJfZGV2dCwgTlZNRV9NSU5PUlMpOwordW5y ZWdpc3Rlcl9kZXZfY2hyZGV2OgogCXVucmVnaXN0ZXJfY2hyZGV2X3JlZ2lvbihudm1lX2N0cmxf YmFzZV9jaHJfZGV2dCwgTlZNRV9NSU5PUlMpOwogZGVzdHJveV9kZWxldGVfd3E6CiAJZGVzdHJv eV93b3JrcXVldWUobnZtZV9kZWxldGVfd3EpOwpAQCAtNDgxMiw2ICs0OTUwLDcgQEAgc3RhdGlj IHZvaWQgX19leGl0IG52bWVfY29yZV9leGl0KHZvaWQpCiB7CiAJY2xhc3NfZGVzdHJveShudm1l X3N1YnN5c19jbGFzcyk7CiAJY2xhc3NfZGVzdHJveShudm1lX2NsYXNzKTsKKwl1bnJlZ2lzdGVy X2NocmRldl9yZWdpb24obnZtZV9uc19iYXNlX2Nocl9kZXZ0LCBOVk1FX01JTk9SUyk7CiAJdW5y ZWdpc3Rlcl9jaHJkZXZfcmVnaW9uKG52bWVfY3RybF9iYXNlX2Nocl9kZXZ0LCBOVk1FX01JTk9S Uyk7CiAJZGVzdHJveV93b3JrcXVldWUobnZtZV9kZWxldGVfd3EpOwogCWRlc3Ryb3lfd29ya3F1 ZXVlKG52bWVfcmVzZXRfd3EpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9udm1lL2hvc3QvbnZtZS5o IGIvZHJpdmVycy9udm1lL2hvc3QvbnZtZS5oCmluZGV4IDA3YjM0MTc1YzZjZS4uODUyOGNhYWI2 MWM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWUvaG9zdC9udm1lLmgKKysrIGIvZHJpdmVycy9u dm1lL2hvc3QvbnZtZS5oCkBAIC00NDIsNiArNDQyLDEwIEBAIHN0cnVjdCBudm1lX25zIHsKIAlz dHJ1Y3Qga3JlZiBrcmVmOwogCXN0cnVjdCBudm1lX25zX2hlYWQgKmhlYWQ7CiAKKwlzdHJ1Y3Qg ZGV2aWNlIGNkZXZfZGV2aWNlOwkvKiBjaGFyIGRldmljZSAqLworCXN0cnVjdCBjZGV2IGNkZXY7 CisJaW50IG1pbm9yOworCiAJaW50IGxiYV9zaGlmdDsKIAl1MTYgbXM7CiAJdTE2IHNnczsKQEAg LTgxOSw2ICs4MjMsMTEgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgbnZtZV9ucyAqbnZtZV9nZXRf bnNfZnJvbV9kZXYoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBkZXZfdG9fZGlzayhkZXYp LT5wcml2YXRlX2RhdGE7CiB9CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IG52bWVfbnMgKm52bWVf Z2V0X25zX2Zyb21fY2RldihzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJcmV0dXJuIGRldl9nZXRf ZHJ2ZGF0YShkZXYpOworfQorCiAjaWZkZWYgQ09ORklHX05WTUVfSFdNT04KIGludCBudm1lX2h3 bW9uX2luaXQoc3RydWN0IG52bWVfY3RybCAqY3RybCk7CiB2b2lkIG52bWVfaHdtb25fZXhpdChz dHJ1Y3QgbnZtZV9jdHJsICpjdHJsKTsKLS0gCjIuMTcuMQoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LW52bWUgbWFpbGluZyBsaXN0CkxpbnV4 LW52bWVAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWls bWFuL2xpc3RpbmZvL2xpbnV4LW52bWUK