[PATCH v2] mtd: spi-nor: core: Ignore -ENOTSUPP in spi_nor_init()

Tudor.Ambarus at microchip.com Tudor.Ambarus at microchip.com
Wed Oct 5 21:56:34 PDT 2022


On 10/6/22 07:41, Tudor.Ambarus at microchip.com wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> Hi, Miquel,
> 
> It's too late for me to queue patches for next, but I'd like to have this patch
> integrated as it solves a regression. Would you queue it to mtd/next?
> 

A bit of context. You'll see the following checkpatch warning:
WARNING: ENOTSUPP is not a SUSV4 error code, prefer EOPNOTSUPP

It comes from SPI. We should evaluate if we can s/ENOTSUPP/EOPNOTSUPP
in SPI, but we can do it later on. I prefer this patch instead of reverting
the offending commit, as it does not ignore other errors.

> 
> On 9/23/22 12:34, Mika Westerberg wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>
>> The Intel SPI-NOR controller does not support the 4-byte address opcode
>> so ->set_4byte_addr_mode() ends up returning -ENOTSUPP and the SPI flash
>> chip probe fail like this:
>>
>>   [ 12.291082] spi-nor: probe of spi0.0 failed with error -524
>>
>> Whereas previously before commit 08412e72afba ("mtd: spi-nor: core:
>> Return error code from set_4byte_addr_mode()") it worked just fine.
>>
>> Fix this by ignoring -ENOTSUPP in spi_nor_init().
>>
>> Fixes: 08412e72afba ("mtd: spi-nor: core: Return error code from set_4byte_addr_mode()")
>> Cc: stable at vger.kernel.org
>> Reported-by: Hongyu Ning <hongyu.ning at intel.com>
>> Signed-off-by: Mika Westerberg <mika.westerberg at linux.intel.com>
> 
> Acked-by: Tudor Ambarus <tudor.ambarus at microchip.com>
> 
>> ---
>> The previous version of the patch (the revert) can be found here:
>>
>>   https://lore.kernel.org/linux-mtd/20220922134824.46758-1-mika.westerberg@linux.intel.com/
>>
>> In this version we ignore -ENOTSUPP but the other error codes will be
>> passed to the caller.
>>
>>  drivers/mtd/spi-nor/core.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
>> index f2c64006f8d7..bee8fc4c9f07 100644
>> --- a/drivers/mtd/spi-nor/core.c
>> +++ b/drivers/mtd/spi-nor/core.c
>> @@ -2724,7 +2724,9 @@ static int spi_nor_init(struct spi_nor *nor)
>>                  */
>>                 WARN_ONCE(nor->flags & SNOR_F_BROKEN_RESET,
>>                           "enabling reset hack; may not recover from unexpected reboots\n");
>> -               return nor->params->set_4byte_addr_mode(nor, true);
>> +               err = nor->params->set_4byte_addr_mode(nor, true);
>> +               if (err && err != -ENOTSUPP)
>> +                       return err;
>>         }
>>
>>         return 0;
>> --
>> 2.35.1
>>
> 
> --
> Cheers,
> ta
> 
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/

-- 
Cheers,
ta



More information about the linux-mtd mailing list