[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <9b0f13aba55e1a25054303dd1dc719eb@walle.cc>
Date: Thu, 29 Apr 2021 17:46:36 +0200
From: Michael Walle <michael@...le.cc>
To: Alexander Williams <awill@...gle.com>
Cc: linux-kernel@...r.kernel.org, linux-mtd@...ts.infradead.org,
miquel.raynal@...tlin.com, p.yadav@...com, richard@....at,
tudor.ambarus@...rochip.com, vigneshr@...com
Subject: Re: [PATCH 2/2] mtd: spi-nor: add initial sysfs support
Hi Alex,
Am 2021-04-29 17:37, schrieb Alexander Williams:
> Hi Michael,
>
>> On Thu, Mar 18, 2021 at 10:24 AM Michael Walle <michael@...le.cc>
>> wrote:
>> Add support to show the name and JEDEC identifier as well as to dump
>> the
>> SFDP table. Not all flashes list their SFDP table contents in their
>> datasheet. So having that is useful. It might also be helpful in bug
>> reports from users.
>>
>> The idea behind the sysfs module is also to have raw access to the SPI
>> NOR flash device registers, which can also be useful for debugging.
>>
>> Signed-off-by: Michael Walle <michael@...le.cc>
>> ---
>> drivers/mtd/spi-nor/Makefile | 2 +-
>> drivers/mtd/spi-nor/core.c | 5 +++
>> drivers/mtd/spi-nor/core.h | 3 ++
>> drivers/mtd/spi-nor/sysfs.c | 86
>> ++++++++++++++++++++++++++++++++++++
>> 4 files changed, 95 insertions(+), 1 deletion(-)
>> create mode 100644 drivers/mtd/spi-nor/sysfs.c
>>
>> diff --git a/drivers/mtd/spi-nor/Makefile
>> b/drivers/mtd/spi-nor/Makefile
>> index 653923896205..aff308f75987 100644
>> --- a/drivers/mtd/spi-nor/Makefile
>> +++ b/drivers/mtd/spi-nor/Makefile
>> @@ -1,6 +1,6 @@
>> # SPDX-License-Identifier: GPL-2.0
>>
>> -spi-nor-objs := core.o sfdp.o
>> +spi-nor-objs := core.o sfdp.o sysfs.o
>> spi-nor-objs += atmel.o
>> spi-nor-objs += catalyst.o
>> spi-nor-objs += eon.o
>> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
>> index 4a315cb1c4db..2eaf4ba8c0f3 100644
>> --- a/drivers/mtd/spi-nor/core.c
>> +++ b/drivers/mtd/spi-nor/core.c
>> @@ -3707,6 +3707,10 @@ static int spi_nor_probe(struct spi_mem
>> *spimem)
>> if (ret)
>> return ret;
>>
>> + ret = spi_nor_sysfs_create(nor);
>
> This appears to be racing with user space. By the time we reach
> probe(), the
> device embedded in the spi_device has already been registered, with the
> uevent
> sent out, right? udev may not see the new attributes created here.
>
> Since we reuse a preexisting device throughout spi-nor, it seems
> awfully
> challenging to be able to safely add sysfs attributes. Would it make
> sense to
> create a spi-nor-specific device/class? Or perhaps attach these
> attributes to
> the device in mtd_info like I've done in
> https://lore.kernel.org/linux-mtd/20210428052725.530939-1-awill@google.com/
> ?
Do you encounter this problem? I'm currently working on this and dropped
the sysfs_create() and use dev_groups of the driver spi nor driver.
But I'm not sure how it will be handled anyway. Because we know the
content/size SFDP only after the probe and in any case the probe could
also fail. So I don't really understand how that is handled.
I've looked at your patch and it seems that the surpress_uevent() is
rarely used in the kernel.
I don't want to attach it to an MTD device because you might have
multiple ones which has the same SPI flash device as parent. The
SFDP is really a property of the flash device and not one of the
MTD partition.
-michael
Powered by blists - more mailing lists