[PATCH 0/9] PL08x further cleanups
Russell King - ARM Linux
linux at arm.linux.org.uk
Mon Jul 25 10:22:01 EDT 2011
On Mon, Jul 25, 2011 at 07:21:12PM +0530, Vinod Koul wrote:
> On Mon, 2011-07-25 at 14:43 +0100, Russell King - ARM Linux wrote:
> > No. This function is used as:
> >
> > + width = pl08x_width(addr_width);
> > + if (width == ~0) {
> > dev_err(&pl08x->adev->dev,
> > "bad runtime_config: alien address width\n");
> > return -EINVAL;
> > }
> >
> > Notice that it returns a u32 so negative errnos don't make sense. It
> > returns ~0 to indicate error.
> >
> > The code is actually correct as it stands, it's just gcc deciding to
> > emit a warning for an unhandled enum value which isn't really unhandled.
> > Just move the 'return ~0;' at the end of the function inside the switch
> > as a default case to shut it up.
> Okay but shouldn't this ideally check for width < 0, that way we can
> return proper errors?
No. Two reasons:
1. u32 < 0 does not exist.
2. It's returning a sub bitmask value for the register, so signed numbers
conceptually don't make sense.
More information about the linux-arm-kernel
mailing list