Re: [PATCH] ASoC: soc-dapm: Fix comparison of pointers
From: Mark Brown
Date: Fri Dec 12 2014 - 09:17:40 EST
On Fri, Dec 12, 2014 at 02:43:27PM +0100, Rasmus Villemoes wrote:
> On Fri, Dec 12 2014, Mark Brown <broonie@xxxxxxxxxx> wrote:
> > If we're worrying about standards conformance type stuff here this is
> > also buggy since it's out of spec to compare pointers that are not part
> > of the same array like this. Casting to uintptr_t is a better fix here.
> I'm not worrying about standards conformance. Casting pointers to and
> from [unsigned] long is done everywhere in the kernel, and that's
> fine. But subtracting ints or longs and using the sign of the result for
> comparison is simply wrong. See acbbe6fbb2 (kcmp: fix standard
> comparison bug) for the long story. In this case the narrowing (when
> BITS_PER_LONG==64) of the result from long to int just makes it even
> more wrong.
*sigh* If that's what you meant you should've said so in your commit
log since that's distinctly non-obvious. In any case, regardless of why
you originally wanted to do this the fact remains that your new version
is out of spec.
Description: Digital signature