Message ID | 20240122153442.7250-1-arnd@kernel.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-33607-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2bc4:b0:101:a8e8:374 with SMTP id hx4csp2702792dyb; Mon, 22 Jan 2024 08:59:23 -0800 (PST) X-Google-Smtp-Source: AGHT+IH0iAD75+bp5sOHPkp8qJevH2NNVQOCHCc6WUESRXcqD2FgV7epdVbcifovL5GGltHjTENS X-Received: by 2002:a05:620a:2231:b0:783:348d:8660 with SMTP id n17-20020a05620a223100b00783348d8660mr4799772qkh.73.1705942762805; Mon, 22 Jan 2024 08:59:22 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1705942762; cv=pass; d=google.com; s=arc-20160816; b=QUOHQ17Q6nh0cjjm/r9rZ0JoiX0i3gyxdArASSc2zeLKcfbojLR04dA5zFkepQh4Y+ MbM9Fk+rRCkKSlNTZE4yzP4IsBVINn9asWJsP9EjHJeuKu/dXvsd3wvq5m5+ZAZqyZJd qhEknXVREmGtzO7fbHTYle4hYwAAh6utElzzI1WjxVN9DZiL/9hgvYdQIQRxc436ocZg VcjIa/bwDz5tfooVotd1A6UpQHK02ZfypuuMkR/WCihwSHoa/vQAjrXhH9cdXTBTJh03 09XNPPjy1cTx+jW5PqKlvicJz0AgElaYsmfqKxVOwGSBs95HR8kYyAspO0S2AIqzPPHi pVeg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=a3ejp++uPocBvT4cAlAibvfx/ApqSBbgwB6KyBL9axk=; fh=lmORhRVuSnqD98cK1U1nKXvADKKTQgAsATkYmt39Bpg=; b=aIhHc+wvtxPELnc6VDltR1qz/zlzncnj7rh+t/fdgARWfggEnr8OeJz5UVkKn6CaP3 net9Qy7bLPCNYWwk/FP9ZNW9h1Y1Zy7hpmn53Ayj3TpTKoAxp1a3S8nQRF0jDIE4A1Vc Tl3TaFv0ez+9xGjiLq1jWBY5O+pP6JH32xhPNtW9gQFwLtRPKAjbz6iKkad4NWSzBddo YUMkLXoup1N3DHpu53YVRnfn3OFGvVbJyA6456yCERPZZQbl+xJll7lIwyr0usASXvho zj+nN7iLp1v5ne6aMdD8rMYiMRglwf/IWiDMYaHdNEM+J+JHiNlSaYkqOT+6Ku2+dkr1 vEeg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=huiK570m; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-33607-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-33607-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id g16-20020a05620a219000b007839281fd51si5460550qka.705.2024.01.22.08.59.22 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Jan 2024 08:59:22 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-33607-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=huiK570m; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-33607-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-33607-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 92F9E1C26626 for <ouuuleilei@gmail.com>; Mon, 22 Jan 2024 16:59:22 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EC8FA47A70; Mon, 22 Jan 2024 15:34:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="huiK570m" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1BADB47A47; Mon, 22 Jan 2024 15:34:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705937692; cv=none; b=L8bVFcc9rfRQqUlz9MSt3llx5LxBwIylDiG8ZbaguVu8pbHYFQ1BiSlY1+gBoroIZ4yXwL4wASbeV/Mf8Fn5CLGhB7QzBwaPgKg0MOoSSnm2xP6EcLTERkO6LpFeH5Kdp4feWQLXNt3lTwEPv/jG/MM1gWlrZvtGZFy4xn70XhY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705937692; c=relaxed/simple; bh=Jks5sf/UfPE0bYDwUpkmUHjITugaPt2CLUuUwk0Ne4A=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Content-Type; b=qiQfDLNRG8vA90XamcSaCrjN/h+Y8bnPQFtiWFlAHAR4sFD1wZyiOh4vHJtoHwuUoOVHY8xs1xTj31Cu/wDXusXGoK9LTX2nSGxhOWPZyUY5p6uT7hOfmNsgP6A5IBb2aey+oREqoNPQoQI2Y2n2TYVHAQJke9TTc+QELcpCStA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=huiK570m; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 69D6BC433C7; Mon, 22 Jan 2024 15:34:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1705937691; bh=Jks5sf/UfPE0bYDwUpkmUHjITugaPt2CLUuUwk0Ne4A=; h=From:To:Cc:Subject:Date:From; b=huiK570mOH2h2AcKfWF6+I6+iHy0eqELtLOlXfgkqbUkalmjp7gTjSYRQFhl+8UqA JKYICN4RyC4VmfB4jqSZwICt5JgZplL+s2uFDm71LSLgwyBxRpXGMrLPJw5p6tVWy5 TSGJyPWHenFW3ya/5L9CPlIIV+ThDVVB+E/s7eqnQVyyPjkMm8thaQuYHIYjgtHN9e Rpy7AI1yVpPxgxWXPMlKU6WSJ/cLOfCHxAg9YEsIQzWnNdw28wWXtKUwFQILGST+DK jS6iyx18Ul+l8I78SQSLkbpqCwKmVlFbodVTgiMmFAqq8lGuzleWufjpFvoGlfscoo 9H775j0OtARKA== From: Arnd Bergmann <arnd@kernel.org> To: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>, Miquel Raynal <miquel.raynal@bootlin.com> Cc: Arnd Bergmann <arnd@arndb.de>, regressions@lists.linux.dev, =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= <rafal@milecki.pl>, Chen-Yu Tsai <wenst@chromium.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, asahi@lists.linux.dev, Sven Peter <sven@svenpeter.dev>, Michael Walle <michael@walle.cc>, linux-kernel@vger.kernel.org Subject: [PATCH] nvmem: include bit index in cell sysfs file name Date: Mon, 22 Jan 2024 16:34:10 +0100 Message-Id: <20240122153442.7250-1-arnd@kernel.org> X-Mailer: git-send-email 2.39.2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1788810638379057641 X-GMAIL-MSGID: 1788810638379057641 |
Series |
nvmem: include bit index in cell sysfs file name
|
|
Commit Message
Arnd Bergmann
Jan. 22, 2024, 3:34 p.m. UTC
From: Arnd Bergmann <arnd@arndb.de> Creating sysfs files for all Cells caused a boot failure for linux-6.8-rc1 on Apple M1, which (in downstream dts files) has multiple nvmem cells that use the same byte address. This causes the device probe to fail with [ 0.605336] sysfs: cannot create duplicate filename '/devices/platform/soc@200000000/2922bc000.efuse/apple_efuses_nvmem0/cells/efuse@a10' [ 0.605347] CPU: 7 PID: 1 Comm: swapper/0 Tainted: G S 6.8.0-rc1-arnd-5+ #133 [ 0.605355] Hardware name: Apple Mac Studio (M1 Ultra, 2022) (DT) [ 0.605362] Call trace: [ 0.605365] show_stack+0x18/0x2c [ 0.605374] dump_stack_lvl+0x60/0x80 [ 0.605383] dump_stack+0x18/0x24 [ 0.605388] sysfs_warn_dup+0x64/0x80 [ 0.605395] sysfs_add_bin_file_mode_ns+0xb0/0xd4 [ 0.605402] internal_create_group+0x268/0x404 [ 0.605409] sysfs_create_groups+0x38/0x94 [ 0.605415] devm_device_add_groups+0x50/0x94 [ 0.605572] nvmem_populate_sysfs_cells+0x180/0x1b0 [ 0.605682] nvmem_register+0x38c/0x470 [ 0.605789] devm_nvmem_register+0x1c/0x6c [ 0.605895] apple_efuses_probe+0xe4/0x120 [ 0.606000] platform_probe+0xa8/0xd0 As far as I can tell, this is a problem for any device with multiple cells on different bits of the same address. Avoid the issue by changing the file name to include the first bit number. Fixes: 0088cbc19276 ("nvmem: core: Expose cells through sysfs") Link: https://github.com/AsahiLinux/linux/blob/bd0a1a7d4/arch/arm64/boot/dts/apple/t600x-dieX.dtsi#L156 Cc: regressions@lists.linux.dev Cc: Miquel Raynal <miquel.raynal@bootlin.com> Cc: Rafał Miłecki <rafal@milecki.pl> Cc: Chen-Yu Tsai <wenst@chromium.org> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: asahi@lists.linux.dev Cc: Sven Peter <sven@svenpeter.dev> Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- This might not be the fix we want upstream, but it illustrates the issue and I have successfully tested that this lets me boot v6.8-rc1 on my workstation again. Feel free to just treat this as a bug report and suggest a different fix. As the ABI was only introduced in 6.8-rc1, it can still be changed without causing other regressions for users, but time is running out for that. --- Documentation/ABI/testing/sysfs-nvmem-cells | 16 ++++++++-------- drivers/nvmem/core.c | 5 +++-- 2 files changed, 11 insertions(+), 10 deletions(-)
Comments
On Mon, 22 Jan 2024 16:34:10 +0100, Arnd Bergmann wrote: > Creating sysfs files for all Cells caused a boot failure for linux-6.8-rc1 on > Apple M1, which (in downstream dts files) has multiple nvmem cells that use the > same byte address. This causes the device probe to fail with > > [ 0.605336] sysfs: cannot create duplicate filename '/devices/platform/soc@200000000/2922bc000.efuse/apple_efuses_nvmem0/cells/efuse@a10' > [ 0.605347] CPU: 7 PID: 1 Comm: swapper/0 Tainted: G S 6.8.0-rc1-arnd-5+ #133 > [ 0.605355] Hardware name: Apple Mac Studio (M1 Ultra, 2022) (DT) > [ 0.605362] Call trace: > [ 0.605365] show_stack+0x18/0x2c > [ 0.605374] dump_stack_lvl+0x60/0x80 > [ 0.605383] dump_stack+0x18/0x24 > [ 0.605388] sysfs_warn_dup+0x64/0x80 > [ 0.605395] sysfs_add_bin_file_mode_ns+0xb0/0xd4 > [ 0.605402] internal_create_group+0x268/0x404 > [ 0.605409] sysfs_create_groups+0x38/0x94 > [ 0.605415] devm_device_add_groups+0x50/0x94 > [ 0.605572] nvmem_populate_sysfs_cells+0x180/0x1b0 > [ 0.605682] nvmem_register+0x38c/0x470 > [ 0.605789] devm_nvmem_register+0x1c/0x6c > [ 0.605895] apple_efuses_probe+0xe4/0x120 > [ 0.606000] platform_probe+0xa8/0xd0 > > [...] Applied, thanks! [1/1] nvmem: include bit index in cell sysfs file name commit: b40fed13870045731e374e6bb48800cde0feb4e2 Best regards,
Hi Arnd, arnd@kernel.org wrote on Mon, 22 Jan 2024 16:34:10 +0100: > From: Arnd Bergmann <arnd@arndb.de> > > Creating sysfs files for all Cells caused a boot failure for linux-6.8-rc1 on > Apple M1, which (in downstream dts files) has multiple nvmem cells that use the > same byte address. This causes the device probe to fail with o_O I didn't even know this was allowed... > [ 0.605336] sysfs: cannot create duplicate filename '/devices/platform/soc@200000000/2922bc000.efuse/apple_efuses_nvmem0/cells/efuse@a10' > [ 0.605347] CPU: 7 PID: 1 Comm: swapper/0 Tainted: G S 6.8.0-rc1-arnd-5+ #133 > [ 0.605355] Hardware name: Apple Mac Studio (M1 Ultra, 2022) (DT) > [ 0.605362] Call trace: > [ 0.605365] show_stack+0x18/0x2c > [ 0.605374] dump_stack_lvl+0x60/0x80 > [ 0.605383] dump_stack+0x18/0x24 > [ 0.605388] sysfs_warn_dup+0x64/0x80 > [ 0.605395] sysfs_add_bin_file_mode_ns+0xb0/0xd4 > [ 0.605402] internal_create_group+0x268/0x404 > [ 0.605409] sysfs_create_groups+0x38/0x94 > [ 0.605415] devm_device_add_groups+0x50/0x94 > [ 0.605572] nvmem_populate_sysfs_cells+0x180/0x1b0 > [ 0.605682] nvmem_register+0x38c/0x470 > [ 0.605789] devm_nvmem_register+0x1c/0x6c > [ 0.605895] apple_efuses_probe+0xe4/0x120 > [ 0.606000] platform_probe+0xa8/0xd0 > > As far as I can tell, this is a problem for any device with multiple cells on > different bits of the same address. Avoid the issue by changing the file name > to include the first bit number. There is only one bit number right? We are talking about byte offsets so this value can only range from 0 to 7? If we understand each other correctly then why not, I'm fine with the extra ",0" thing. > Fixes: 0088cbc19276 ("nvmem: core: Expose cells through sysfs") > Link: https://github.com/AsahiLinux/linux/blob/bd0a1a7d4/arch/arm64/boot/dts/apple/t600x-dieX.dtsi#L156 > Cc: regressions@lists.linux.dev > Cc: Miquel Raynal <miquel.raynal@bootlin.com> > Cc: Rafał Miłecki <rafal@milecki.pl> > Cc: Chen-Yu Tsai <wenst@chromium.org> > Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Cc: asahi@lists.linux.dev > Cc: Sven Peter <sven@svenpeter.dev> > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- Thanks, Miquèl
On Wed, Jan 24, 2024, at 18:22, Miquel Raynal wrote: > arnd@kernel.org wrote on Mon, 22 Jan 2024 16:34:10 +0100: > >> From: Arnd Bergmann <arnd@arndb.de> >> >> >> As far as I can tell, this is a problem for any device with multiple cells on >> different bits of the same address. Avoid the issue by changing the file name >> to include the first bit number. > > There is only one bit number right? We are talking about byte offsets > so this value can only range from 0 to 7? If we understand each other > correctly then why not, I'm fine with the extra ",0" thing. On the Apple M1, the nvmem registers are 32 bit wide, so the bit numbers can go up to 31. I can imagine some system using 64-bit registers, but it's unlikely to be higher than that. Arnd
Hi Arnd, arnd@arndb.de wrote on Wed, 24 Jan 2024 20:49:53 +0100: > On Wed, Jan 24, 2024, at 18:22, Miquel Raynal wrote: > > arnd@kernel.org wrote on Mon, 22 Jan 2024 16:34:10 +0100: > > > >> From: Arnd Bergmann <arnd@arndb.de> > >> > >> > >> As far as I can tell, this is a problem for any device with multiple cells on > >> different bits of the same address. Avoid the issue by changing the file name > >> to include the first bit number. > > > > There is only one bit number right? We are talking about byte offsets > > so this value can only range from 0 to 7? If we understand each other > > correctly then why not, I'm fine with the extra ",0" thing. > > On the Apple M1, the nvmem registers are 32 bit wide, so the > bit numbers can go up to 31. I can imagine some system using > 64-bit registers, but it's unlikely to be higher than that. In this case we will soon or later have a problem again. Can we include the full offset of the bit and not just the first digit? Thanks, Miquèl
On Wed, Jan 24, 2024, at 23:11, Miquel Raynal wrote: > Hi Arnd, > > arnd@arndb.de wrote on Wed, 24 Jan 2024 20:49:53 +0100: > >> On Wed, Jan 24, 2024, at 18:22, Miquel Raynal wrote: >> > arnd@kernel.org wrote on Mon, 22 Jan 2024 16:34:10 +0100: >> > >> >> From: Arnd Bergmann <arnd@arndb.de> >> >> >> >> >> >> As far as I can tell, this is a problem for any device with multiple cells on >> >> different bits of the same address. Avoid the issue by changing the file name >> >> to include the first bit number. >> > >> > There is only one bit number right? We are talking about byte offsets >> > so this value can only range from 0 to 7? If we understand each other >> > correctly then why not, I'm fine with the extra ",0" thing. >> >> On the Apple M1, the nvmem registers are 32 bit wide, so the >> bit numbers can go up to 31. I can imagine some system using >> 64-bit registers, but it's unlikely to be higher than that. > > In this case we will soon or later have a problem again. Can we include > the full offset of the bit and not just the first digit? I thought that is what my patch does, maybe I don't undestand the problem you are referring to. This is what I see on my system with the patch applied: $ cd /sys/devices/platform/soc@200000000/2922bc000.efuse $ find . -name efuse\* /apple_efuses_nvmem0/cells/efuse@a24,11 /apple_efuses_nvmem0/cells/efuse@a24,9 /apple_efuses_nvmem0/cells/efuse@a1c,f /apple_efuses_nvmem0/cells/efuse@a20,17 /apple_efuses_nvmem0/cells/efuse@a20,1e /apple_efuses_nvmem0/cells/efuse@a18,0 /apple_efuses_nvmem0/cells/efuse@a14,b /apple_efuses_nvmem0/cells/efuse@a1c,1f /apple_efuses_nvmem0/cells/efuse@a1c,d /apple_efuses_nvmem0/cells/efuse@a20,1c /apple_efuses_nvmem0/cells/efuse@a18,15 /apple_efuses_nvmem0/cells/efuse@a14,0 /apple_efuses_nvmem0/cells/efuse@a1c,14 /apple_efuses_nvmem0/cells/efuse@a24,3 /apple_efuses_nvmem0/cells/efuse@a20,7 /apple_efuses_nvmem0/cells/efuse@a18,5 /apple_efuses_nvmem0/cells/efuse@a10,16 /apple_efuses_nvmem0/cells/efuse@a1c,12 /apple_efuses_nvmem0/cells/efuse@a20,5 /apple_efuses_nvmem0/cells/efuse@a18,3 /apple_efuses_nvmem0/cells/efuse@a18,a /apple_efuses_nvmem0/cells/efuse@a10,1b /apple_efuses_nvmem0/cells/efuse@a14,5 /apple_efuses_nvmem0/cells/efuse@a1c,19 /apple_efuses_nvmem0/cells/efuse@a24,f /apple_efuses_nvmem0/cells/efuse@a18,1d /apple_efuses_nvmem0/cells/efuse@a14,13 /apple_efuses_nvmem0/cells/efuse@a18,8 /apple_efuses_nvmem0/cells/efuse@a18,f /apple_efuses_nvmem0/cells/efuse@a20,14 /apple_efuses_nvmem0/cells/efuse@a10,19 /apple_efuses_nvmem0/cells/efuse@a18,1b /apple_efuses_nvmem0/cells/efuse@a14,11 /apple_efuses_nvmem0/cells/efuse@a1c,a /apple_efuses_nvmem0/cells/efuse@a10,1e /apple_efuses_nvmem0/cells/efuse@a20,19 Arnd
Hi Arnd, arnd@arndb.de wrote on Thu, 25 Jan 2024 13:15:26 +0100: > On Wed, Jan 24, 2024, at 23:11, Miquel Raynal wrote: > > Hi Arnd, > > > > arnd@arndb.de wrote on Wed, 24 Jan 2024 20:49:53 +0100: > > > >> On Wed, Jan 24, 2024, at 18:22, Miquel Raynal wrote: > >> > arnd@kernel.org wrote on Mon, 22 Jan 2024 16:34:10 +0100: > >> > > >> >> From: Arnd Bergmann <arnd@arndb.de> > >> >> > >> >> > >> >> As far as I can tell, this is a problem for any device with multiple cells on > >> >> different bits of the same address. Avoid the issue by changing the file name > >> >> to include the first bit number. > >> > > >> > There is only one bit number right? We are talking about byte offsets > >> > so this value can only range from 0 to 7? If we understand each other > >> > correctly then why not, I'm fine with the extra ",0" thing. > >> > >> On the Apple M1, the nvmem registers are 32 bit wide, so the > >> bit numbers can go up to 31. I can imagine some system using > >> 64-bit registers, but it's unlikely to be higher than that. > > > > In this case we will soon or later have a problem again. Can we include > > the full offset of the bit and not just the first digit? > > I thought that is what my patch does, maybe I don't > undestand the problem you are referring to. This is what > I see on my system with the patch applied: > > $ cd /sys/devices/platform/soc@200000000/2922bc000.efuse > $ find . -name efuse\* > ./apple_efuses_nvmem0/cells/efuse@a24,11 Sorry for the misunderstanding, I thought the above situation would be: ./apple_efuses_nvmem0/cells/efuse@a24,1 But the below output is actually fine. Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> > ./apple_efuses_nvmem0/cells/efuse@a24,9 > ./apple_efuses_nvmem0/cells/efuse@a1c,f > ./apple_efuses_nvmem0/cells/efuse@a20,17 > ./apple_efuses_nvmem0/cells/efuse@a20,1e > ./apple_efuses_nvmem0/cells/efuse@a18,0 > ./apple_efuses_nvmem0/cells/efuse@a14,b > ./apple_efuses_nvmem0/cells/efuse@a1c,1f > ./apple_efuses_nvmem0/cells/efuse@a1c,d > ./apple_efuses_nvmem0/cells/efuse@a20,1c > ./apple_efuses_nvmem0/cells/efuse@a18,15 > ./apple_efuses_nvmem0/cells/efuse@a14,0 > ./apple_efuses_nvmem0/cells/efuse@a1c,14 > ./apple_efuses_nvmem0/cells/efuse@a24,3 > ./apple_efuses_nvmem0/cells/efuse@a20,7 > ./apple_efuses_nvmem0/cells/efuse@a18,5 > ./apple_efuses_nvmem0/cells/efuse@a10,16 > ./apple_efuses_nvmem0/cells/efuse@a1c,12 > ./apple_efuses_nvmem0/cells/efuse@a20,5 > ./apple_efuses_nvmem0/cells/efuse@a18,3 > ./apple_efuses_nvmem0/cells/efuse@a18,a > ./apple_efuses_nvmem0/cells/efuse@a10,1b > ./apple_efuses_nvmem0/cells/efuse@a14,5 > ./apple_efuses_nvmem0/cells/efuse@a1c,19 > ./apple_efuses_nvmem0/cells/efuse@a24,f > ./apple_efuses_nvmem0/cells/efuse@a18,1d > ./apple_efuses_nvmem0/cells/efuse@a14,13 > ./apple_efuses_nvmem0/cells/efuse@a18,8 > ./apple_efuses_nvmem0/cells/efuse@a18,f > ./apple_efuses_nvmem0/cells/efuse@a20,14 > ./apple_efuses_nvmem0/cells/efuse@a10,19 > ./apple_efuses_nvmem0/cells/efuse@a18,1b > ./apple_efuses_nvmem0/cells/efuse@a14,11 > ./apple_efuses_nvmem0/cells/efuse@a1c,a > ./apple_efuses_nvmem0/cells/efuse@a10,1e > ./apple_efuses_nvmem0/cells/efuse@a20,19 > > Arnd Thanks, Miquèl
Linux regression tracking (Thorsten Leemhuis)
Feb. 9, 2024, 9:09 a.m. UTC |
#7
Addressed
Unaddressed
On 22.01.24 17:55, Srinivas Kandagatla wrote: > On Mon, 22 Jan 2024 16:34:10 +0100, Arnd Bergmann wrote: >> Creating sysfs files for all Cells caused a boot failure for linux-6.8-rc1 on >> Apple M1, which (in downstream dts files) has multiple nvmem cells that use the >> same byte address. This causes the device probe to fail with >> >> [ 0.605336] sysfs: cannot create duplicate filename '/devices/platform/soc@200000000/2922bc000.efuse/apple_efuses_nvmem0/cells/efuse@a10' >> [ 0.605347] CPU: 7 PID: 1 Comm: swapper/0 Tainted: G S 6.8.0-rc1-arnd-5+ #133 >> [ 0.605355] Hardware name: Apple Mac Studio (M1 Ultra, 2022) (DT) >> [ 0.605362] Call trace: >> [...] > > Applied, thanks! > > [1/1] nvmem: include bit index in cell sysfs file name > commit: b40fed13870045731e374e6bb48800cde0feb4e2 The problem description from Arnd to an outsider like me sounded like this is something that should be fixed rather sooner than later in mainline. Am I wrong with that? If not: will this be heading to Linus soon? Just wondering, as the fix seems to be a in "for-next" branch[1] of the nvmem repo and not in a "fixes" branch. Or am I missing something here? Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat) [1] https://git.kernel.org/pub/scm/linux/kernel/git/srini/nvmem.git -- Everything you wanna know about Linux kernel regression tracking: https://linux-regtracking.leemhuis.info/about/#tldr If I did something stupid, please tell me, as explained on that page. #regzbot poke
On Fri, Feb 9, 2024, at 10:09, Linux regression tracking (Thorsten Leemhuis) wrote: > On 22.01.24 17:55, Srinivas Kandagatla wrote: >> On Mon, 22 Jan 2024 16:34:10 +0100, Arnd Bergmann wrote: >>> Creating sysfs files for all Cells caused a boot failure for linux-6.8-rc1 on >>> Apple M1, which (in downstream dts files) has multiple nvmem cells that use the >>> same byte address. This causes the device probe to fail with >>> >>> [ 0.605336] sysfs: cannot create duplicate filename '/devices/platform/soc@200000000/2922bc000.efuse/apple_efuses_nvmem0/cells/efuse@a10' >>> [ 0.605347] CPU: 7 PID: 1 Comm: swapper/0 Tainted: G S 6.8.0-rc1-arnd-5+ #133 >>> [ 0.605355] Hardware name: Apple Mac Studio (M1 Ultra, 2022) (DT) >>> [ 0.605362] Call trace: >>> [...] >> >> Applied, thanks! >> >> [1/1] nvmem: include bit index in cell sysfs file name >> commit: b40fed13870045731e374e6bb48800cde0feb4e2 > > The problem description from Arnd to an outsider like me sounded like > this is something that should be fixed rather sooner than later in > mainline. Am I wrong with that? If not: will this be heading to Linus > soon? Just wondering, as the fix seems to be a in "for-next" branch[1] > of the nvmem repo and not in a "fixes" branch. Yes, this that this needs to be fixed before v6.8 is out. I assumed it had gone upstream already. If anyone is still unsure about the ABI, we could also revert the original commit 0088cbc19276 ("nvmem: core: Expose cells through sysfs") for v6.8 and try again for v6.9 with the fixed ABI, but I think we already had an agreement on the changes that I sent. Arnd
diff --git a/Documentation/ABI/testing/sysfs-nvmem-cells b/Documentation/ABI/testing/sysfs-nvmem-cells index 7af70adf3690..c7c9444f92a8 100644 --- a/Documentation/ABI/testing/sysfs-nvmem-cells +++ b/Documentation/ABI/testing/sysfs-nvmem-cells @@ -4,18 +4,18 @@ KernelVersion: 6.5 Contact: Miquel Raynal <miquel.raynal@bootlin.com> Description: The "cells" folder contains one file per cell exposed by the - NVMEM device. The name of the file is: <name>@<where>, with - <name> being the cell name and <where> its location in the NVMEM - device, in hexadecimal (without the '0x' prefix, to mimic device - tree node names). The length of the file is the size of the cell - (when known). The content of the file is the binary content of - the cell (may sometimes be ASCII, likely without trailing - character). + NVMEM device. The name of the file is: "<name>@<byte>,<bit>", + with <name> being the cell name and <where> its location in + the NVMEM device, in hexadecimal bytes and bits (without the + '0x' prefix, to mimic device tree node names). The length of + the file is the size of the cell (when known). The content of + the file is the binary content of the cell (may sometimes be + ASCII, likely without trailing character). Note: This file is only present if CONFIG_NVMEM_SYSFS is enabled. Example:: - hexdump -C /sys/bus/nvmem/devices/1-00563/cells/product-name@d + hexdump -C /sys/bus/nvmem/devices/1-00563/cells/product-name@d,0 00000000 54 4e 34 38 4d 2d 50 2d 44 4e |TN48M-P-DN| 0000000a diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 1d77724f367d..9616c6001b3c 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -460,8 +460,9 @@ static int nvmem_populate_sysfs_cells(struct nvmem_device *nvmem) list_for_each_entry(entry, &nvmem->cells, node) { sysfs_bin_attr_init(&attrs[i]); attrs[i].attr.name = devm_kasprintf(&nvmem->dev, GFP_KERNEL, - "%s@%x", entry->name, - entry->offset); + "%s@%x,%x", entry->name, + entry->offset, + entry->bit_offset); attrs[i].attr.mode = 0444; attrs[i].size = entry->bytes; attrs[i].read = &nvmem_cell_attr_read;