Re: Question of resource_size() implementation

From: Felipe Balbi
Date: Tue Dec 29 2009 - 19:25:27 EST


On Tue, 2009-12-29 at 16:12 -0800, Joe Perches wrote:
> On Wed, 2009-12-30 at 01:43 +0200, Felipe Balbi wrote:
> > I'm wondering whether the +1 in resource_size() is actually necessary.
> > resource_size() is defined as:
> []
> > static inline resource_size_t resource_size(const struct resource *res)
> > {
> > return res->end - res->start + 1;
> > }
> > Are we off-by-one
> > here ? Or is this all expected ?
>
> Imagine you have 1 byte sized resources.
>
> AREA1 = 0x40000000
> AREA2 = 0x40000001
>
> area1.start = 0x40000000
> area1.end = 0x40000000
>
> area2.start = 0x40000001
> area2.end = 0x40000001

(adding lkml back to the loop)

in that you wouldn't use any of the SZ_* macros and simply hardcode
start and end, right ? then you would define:

area1.start = 0x40000000
area1.end = 0x40000001

and ioremap 2 bytes due to +1 in resource_size().

--
balbi

--
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/