[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <OF5BDBDD21.E5375C78-ON882574B2.0061B127-882574B2.00648B63@selinc.com>
Date: Wed, 27 Aug 2008 11:18:23 -0700
From: Bruce_Leonard@...inc.com
To: dedekind@...radead.org
Cc: Bruce Leonard <brucle@...thlink.net>, linux-kernel@...r.kernel.org,
linux-mtd@...ts.infradead.org,
linux-mtd-bounces@...ts.infradead.org
Subject: Re: [PATCH 2/2] Add support for > 2GiB MTD devices
Artem,
> > +/*
> > + * Inline function for determining the size of the MTD device,
independant
> > + * of old or new way of doing things.
> > + *
> > + */
> > +static inline u_int64_t device_size(struct mtd_info *a)
> > +{
> > + return a->num_eraseblocks == 0 ? a->size : a->num_eraseblocks *
a->erasesize;
> > +}
>
> I do not think it is a good idea to do multiplication every time we need
> MTD device size. It is unnecessarily large overhead in terms of speed
> and code size.
>
I'm still reluctant to change size to a 64-bit value. There's a vague
recolection of early conversations on the list that there would be little
acceptance for that. And that probably has to do with the ongoing
conversation about ABI changes. What I could do to eliminate the
multiplication is introduce the same concept that the NAND layer uses,
shift values. After all, erasesize should always be a power of 2, making
that a power of 2 multiplication which can be done via shifts. By
changing erasesize to erasesize_shift, I'd get something like this:
return a->num_eraseblocks == 0 ? a->size : a->num_eraseblocks <<
a->erasesize_shift
How would that suit you?
Bruce
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists