[PATCH 3/3] [MTD] m25p80.c

chen gong clumsycg at gmail.com
Mon Sep 15 23:50:45 EDT 2008


2008/9/15 David Woodhouse <dwmw2 at infradead.org>:
> On Thu, 2008-08-07 at 11:41 +0800, Chen Gong wrote:
>> @@ -547,6 +550,7 @@ static struct flash_info *__devinit jedec_probe(struct spi_device *spi)
>>         u8                      code = OPCODE_RDID;
>>         u8                      id[3];
>>         u32                     jedec;
>> +       u16                     ext_jedec;
>>         struct flash_info       *info;
>>
>>         /* JEDEC also defines an optional "extended device information"
>         * string for after vendor-specific data, after the three bytes
>         * we use here.  Supporting some chips might require using it.
>         */
>        tmp = spi_write_then_read(spi, &code, 1, id, 3);
>        if (tmp < 0) {
>                DEBUG(MTD_DEBUG_LEVEL0, "%s: error %d reading JEDEC ID\n",
>                        spi->dev.bus_id, tmp);
>                return NULL;
>        }
>        jedec = id[0];
>        jedec = jedec << 8;
>        jedec |= id[1];
>>         jedec = jedec << 8;
>>         jedec |= id[2];
>>
>> +       ext_jedec = id[3] << 8 | id[4];
>> +
>
> You're trying to read off the end of the id[] array, which has only
> three elements. And you didn't ask spi_write_then_read() to read that
> many bytes _anyway_. And if you did... would it fail on chips which
> don't have the extended device information?
>

Sorry for late. Last day is Mid-autumn Festival in our Country. We have a
nice holiday.
It is a stupid error that I forget to fix it from my branch. I will
send a new patch
to fix it soon.

> Please test and send a fix, since this is already in the git tree.
>
> --
> David Woodhouse                            Open Source Technology Centre
> David.Woodhouse at intel.com                              Intel Corporation
>
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>



More information about the linux-mtd mailing list