Re: [PATCH 1/2] drivers/telephony/ixj.c::add_caps(): don't rely onundefined behaviour

From: Jesper Juhl
Date: Thu Mar 22 2012 - 19:15:50 EST


On Tue, 20 Mar 2012, Greg KH wrote:

> On Tue, Mar 20, 2012 at 12:40:50AM +0100, Jesper Juhl wrote:
> > On Mon, 19 Mar 2012, Joe Perches wrote:
> >
> > > On Tue, 2012-03-20 at 00:19 +0100, Jesper Juhl wrote:
> > > > On Mon, 19 Mar 2012, Joe Perches wrote:
> > > > > On Mon, 2012-03-19 at 23:46 +0100, Jesper Juhl wrote:
> > > > > > On Mon, 19 Mar 2012, Joe Perches wrote:
> > > > > > > On Mon, 2012-03-19 at 23:37 +0100, Jesper Juhl wrote:
> > > > > > > > In drivers/telephony/ixj.c::add_caps() we have several statements like this:
> > > > > > > > j->caplist[j->caps].handle = j->caps++;
> > > > > > > > That's undefined behaviour right there.
> > > > > > > telephony has been moved to staging.
> > > > > > Since when? Where?
> > > > > > In my up-to-date Linus tree with HEAD at
> > > > > > c16fa4f2ad19908a47c63d8fa436a1178438c7e7, that file is is still in
> > > > > > drivers/telephony/, not in staging/...
> > > > > > /confused
> > > > > In the -next tree.
> > > > Ok, seems I've missed that.
> > > > > Yes, it's a bug fix, but drivers/telephony is pretty dead.
> > > > Dead or not, as long as it's in the tree I think that fixing bugs is
> > > > relevant.
> > > > Besides, who knows if/when it'll get ressurrected ;)
> > >
> > > Sorry, I didn't mean to suggest it shouldn't
> > > be fixed.
> > >
> > > I meant that it probably didn't need to be
> > > fixed during the merge window or maybe even
> > > not backported to stable unless you're sure
> > > the order of operations is now done correctly
> > > and with no real change in current operation
> > > by inspecting the object. I presume it worked
> > > before but it's likely not too many people
> > > actually still use this hardware with the
> > > current kernel.
> > >
> > I never intended to push it for -stable, it probably "works" in its
> > current form with any relevant compiler. I just spotted a bug and wanted
> > to fix it :-)
> > If it gets fixed during the merge window or at some other time I don't
> > really care - but I don't see any reason to not just fix it as soon as
> > possible.
> >
> > I have no idea how many people still use this hardware with current
> > kernels, but even if just a few do, they deserve to get code that has
> > well-defined behaviour with standards conforming C compilers and not what
> > is currently there that can change with different compilers/different
> > compiler versions.
>
> Then care to send me the patch, against the linux-next tree, so I can
> queue it up for the 3.5 merge window?
>
Sure thing. Here's one against next-20120322