Re: [PATCH v2] x86/platform/intel-mid: Revert "Make 'bt_sfi_data' const"

From: Julia Lawall
Date: Fri Jan 05 2018 - 12:41:41 EST




On Fri, 5 Jan 2018, Andy Shevchenko wrote:

> On Thu, 2017-12-28 at 13:34 +0100, Ingo Molnar wrote:
> > * Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> >
> > > v2: low the tone of accusation that this made a regression
> >
> > BTW., don't worry about that aspect too much: after a long debugging
> > session it's
> > pretty natural to be upset at whoever introduced a regression.
>
> It appears that regression has been introduced by a new dependency to
> the hci_bcm.c.
>
> In any case, can we apply this one to 4.15 cycle to make others prevent
> do an actual regressions further:
>
> commit 03838ae1e8f692dd2bdbd49820ed668d4b7bfbc2
> Author: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> Date: Fri Jan 5 13:26:44 2018 +1100
>
> arch/x86/platform/intel-mid/device_libs/platform_bt.c: fix const
> confusion
>
> >
> > ( In fact a number of times I too got upset at the moron who wrote a
> > particular
> > piece of buggy code, only for 'git annotate' to remind me that the
> > moron was me. )
> >
> > I personally just ignore the emotional attributes, and I usually edit
> > changelogs
> > accordingly as well so the temporary state of mind of finding a
> > regression doesn't
> > trickle upstream.
> >
> > Plus in this particular case if we can help type propagation for
> > driver data to
> > become a bit cleaner then the kernel project has gained a bit through
> > all this
> > pain.
>
> I has been thinking if 0day can complain about these:
> 1) castings in new code
> 2) applying const to older *working* code
>
> Fengguang, what do you think?

As suggested previously, I think it would be better if code that retrieves
const structures from nonconst fields would store the result in a const
variable. Then the compiler would pick up the verification from there. A
Coccinelle script can detect cases where this property does not hold, at
least within a single file. This would have protected the given code and
still allowed constant structures to be made const.

julia