Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3600764pxb; Mon, 24 Jan 2022 13:14:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJwxDnoSuq0jEktVbmYfsjStIxwoBRWxegSjWXRevWVdW97MWRJK0snSrRGU+9BqdTpmD++t X-Received: by 2002:a17:90b:181:: with SMTP id t1mr159673pjs.240.1643058847976; Mon, 24 Jan 2022 13:14:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643058847; cv=none; d=google.com; s=arc-20160816; b=CgvSJBvMGastQi3hztfdm42+ZrkZvZAA9SjsA57Kr4RnPF2aezWYg3nW1O2vTqt4ow r2uX5VkXbDrhfGIFGFUWk6uh9+36UjZpm39DObA//pjzGT6z+eglt3UtB+LaHto3Ex4j Zd+qnUgWAtRdta5ukqRWYLQ1/kuo0FYQ7UpOP80h7RnpV34/GdwlDYRpB2O00VX1mCpA FEFpFrdagLv+GiNidGccTRyl2qYauWjqoDyUNrhBRmzGKI9d+gKmyV7hInD5qcH7sfXe 475wuD3YMU8c34wMQJJYl3xfNLVYm/GNyOLm/gNabyCG4P5YfUsXgxT+kyDj8VcO6wdc J0zQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=C7Cmk7xhyGnaHE5zeVVUOQI44gQIiUHBw0DkgnThMCE=; b=t3bhH7tNgPDWESPjO1YJJnpqqWmPURoHutTRGVtEoednrG5NCPw12JIUZWaB3643Kx cmyErDOU/qBNTZNOxvmtteyEcD3+hXY7QMs7DW9aQoYmc0LfJzRmq6+yk0mokCLvH6M+ 8fEy7sBhLayV2xHoC73BnELXVdCBkQhKomnS0d6UVILbUdwFHl4cywxdrusTJdRWYdrf K03eTx9e3mTRmbx8mxP6o4OUQpNghgmRfG1JBs4UKI9CuspktW8anUIXrQAwvu+YXOlh 2Z0BddAZWNboMM5ZY3YICnyaVB4/wDYfuOUAFrOQEWVF3FmEXX/7Kpv9aVZ4SRQL69gm nuaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=OQRsak5c; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a8si5267464plh.450.2022.01.24.13.13.54; Mon, 24 Jan 2022 13:14:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=OQRsak5c; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1388986AbiAXUkU (ORCPT + 99 others); Mon, 24 Jan 2022 15:40:20 -0500 Received: from dfw.source.kernel.org ([139.178.84.217]:45764 "EHLO dfw.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349449AbiAXUT0 (ORCPT ); Mon, 24 Jan 2022 15:19:26 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E8F5E6090A; Mon, 24 Jan 2022 20:19:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CAF93C340E5; Mon, 24 Jan 2022 20:19:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643055564; bh=sA+BEVr6OULshePCRU0w3P86Bh2Lvm1VuKxYNtkjmeo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OQRsak5cuRYJXbju/xLXVIfDYBGy4dQ8d0f7xyjmfyIXmp1gxsXfAXUGjuTnAZXnF +CNbTlLIxdIgPRBcWvCtgYMj3d27cmTiYfSheSVgmTWIDw6LMGnzfMHooGO4ZtRakQ OPcp137c4HmioUwrtnC/b8KfaOzXWnIhcSBT5vYs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Michael Walle , Miquel Raynal , Sasha Levin Subject: [PATCH 5.15 193/846] mtd: core: provide unique name for nvmem device Date: Mon, 24 Jan 2022 19:35:10 +0100 Message-Id: <20220124184107.613387816@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184100.867127425@linuxfoundation.org> References: <20220124184100.867127425@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Michael Walle [ Upstream commit c048b60d39e109c201d31ed5ad3a4f939064d6c4 ] If there is more than one mtd device which supports OTP, there will be a kernel warning about duplicated sysfs entries and the probing will fail. This is because the nvmem device name is not unique. Make it unique by prepending the name of the mtd. E.g. before the name was "user-otp", now it will be "mtd0-user-otp". For reference the kernel splash is: [ 4.665531] sysfs: cannot create duplicate filename '/bus/nvmem/devices/user-otp' [ 4.673056] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.15.0-next-20211101+ #1296 [ 4.680565] Hardware name: Kontron SMARC-sAL28 (Single PHY) on SMARC Eval 2.0 carrier (DT) [ 4.688856] Call trace: [ 4.691303] dump_backtrace+0x0/0x1bc [ 4.694984] show_stack+0x24/0x30 [ 4.698306] dump_stack_lvl+0x68/0x84 [ 4.701980] dump_stack+0x18/0x34 [ 4.705302] sysfs_warn_dup+0x70/0x90 [ 4.708973] sysfs_do_create_link_sd+0x144/0x150 [ 4.713603] sysfs_create_link+0x2c/0x50 [ 4.717535] bus_add_device+0x74/0x120 [ 4.721293] device_add+0x330/0x890 [ 4.724791] device_register+0x2c/0x40 [ 4.728550] nvmem_register+0x240/0x9f0 [ 4.732398] mtd_otp_nvmem_register+0xb0/0x10c [ 4.736854] mtd_device_parse_register+0x28c/0x2b4 [ 4.741659] spi_nor_probe+0x20c/0x2e0 [ 4.745418] spi_mem_probe+0x78/0xbc [ 4.749001] spi_probe+0x90/0xf0 [ 4.752237] really_probe.part.0+0xa4/0x320 .. [ 4.873936] mtd mtd1: Failed to register OTP NVMEM device [ 4.894468] spi-nor: probe of spi0.0 failed with error -17 Fixes: 4b361cfa8624 ("mtd: core: add OTP nvmem provider support") Signed-off-by: Michael Walle Signed-off-by: Miquel Raynal Link: https://lore.kernel.org/linux-mtd/20211104134843.2642800-1-michael@walle.cc Signed-off-by: Sasha Levin --- drivers/mtd/mtdcore.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index 1532291989471..54df9cfd588ea 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -825,8 +825,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd, /* OTP nvmem will be registered on the physical device */ config.dev = mtd->dev.parent; - /* just reuse the compatible as name */ - config.name = compatible; + config.name = kasprintf(GFP_KERNEL, "%s-%s", dev_name(&mtd->dev), compatible); config.id = NVMEM_DEVID_NONE; config.owner = THIS_MODULE; config.type = NVMEM_TYPE_OTP; @@ -842,6 +841,7 @@ static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd, nvmem = NULL; of_node_put(np); + kfree(config.name); return nvmem; } -- 2.34.1