Re: [PATCH 6/8] drivers-edac-i3000 replace macros with functions

From: Jason Uhlenkott
Date: Fri Oct 19 2007 - 20:14:24 EST


On Fri, Oct 19, 2007 at 14:11:18 -0700, Andrew Morton wrote:
> On Fri, 19 Oct 2007 13:18:23 -0600
> dougthompson@xxxxxxxxxxxx wrote:
>
> > +static inline unsigned long deap_pfn(u8 edeap, u32 deap)
> > +{
> > + deap >>= PAGE_SHIFT;
> > + deap |= (edeap & 1) << (32 - PAGE_SHIFT);
> > + return deap;
> > +}
> > +
> > +static inline unsigned long deap_offset(u32 deap)
> > +{
> > + return deap & ~(I3000_DEAP_GRAIN - 1) & ~PAGE_MASK;
> > +}
> > +
>
> The types here look a bit confused. Implicit conversions of
> u32s into unsigned longs.

That's deliberate, though perhaps not as clear as it could have been:
We're calculating a pfn and an offset which are logically unsigned
longs (and treated as such by the higher level edac code where they
ultimately get passed) from some bits in config space registers which
are u8/u32.
-
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/