Re: [PATCH V4 1/3] mtd: add new fields to nand_flash_dev{}

From: Artem Bityutskiy
Date: Wed Mar 13 2013 - 09:12:50 EST


On Wed, 2013-03-13 at 21:04 +0800, Huang Shijie wrote:
> On Wed, Mar 13, 2013 at 6:54 PM, Artem Bityutskiy
> <artem.bityutskiy@xxxxxxxxxxxxxxx> wrote:
> > On Thu, 2013-03-07 at 18:49 +0800, Huang Shijie wrote:
> >> diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
> >> index 591eeeb..f0a9d93 100644
> >> --- a/include/linux/mtd/nand.h
> >> +++ b/include/linux/mtd/nand.h
> >> @@ -578,6 +578,8 @@ struct nand_chip {
> >> * @erasesize: eraseblock size in bytes (determined from the extended ID if 0)
> >> * @chipsize: total chip size in MiB
> >> * @options: stores various chip bit options
> >> + * @id_len: The valid length of the @id.
> >> + * @oobsize: OOB size
> >> */
> >> struct nand_flash_dev {
> >> char *name;
> >> @@ -592,6 +594,8 @@ struct nand_flash_dev {
> >> unsigned long chipsize;
> >> unsigned long erasesize;
> >> unsigned long options;
> >> + unsigned long id_len;
> >> + unsigned long oobsize;
> >> };
> >
> > Why are these of type 'long', which is 64 bits in 64-bit architectures,
> > which seems to be unnecessarily big. Wouldn't 'unsigned int' be enough?
> >
> Frankly speaking, "uint16_t" is enough.
> "unsigned int" is too long for both the fields.

Adding a single uint16_t is useless because GCC will pad it to 32 bits
anyway. I send a patch which turns all the longs to ints. Just add
another int. And yes, do not add id_len unless you need it. Thanks!

--
Best Regards,
Artem Bityutskiy

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/