Re: [patch] enums to clear suspend-state confusion

Andrew Morton
2004-08-17T23:09:49Z

Pavel Machek <pavel@ucw.cz> wrote:
>
> > If, at some time in the future you change the suspend state to a struct
> > then you will want to pass that thing around by reference, not by
> > value.
>
> Actually I expect it to become struct of two members, system-state and
> bus-specific state. That seems small enough to pass by value.

hm. Yes, it's hard to see how this structure can grow much larger.

But we'll be stuck for all time with a weird interface, just because once back
in August of '04 we didn't want to patch 129 files.

> > Hence your new suspend_state_t will need to be typecast to a pointer to
> > struct, and not a struct. And that's not a thing which we do in-kernel
> > much at all. (There's nothing wrong with the practice per-se, but in the
> > kernel it does violate the principle of least surprise).
> >
> > So if you really do intend to add more things to the suspend state I'd
> > suggest that you set the final framework in place immediately. Do:
> >
> > struct suspend_state {
> > enum system_state state;
> > }
>
> I can do that... but it will break compilation of every driver in the
> tree. I can fix drivers I use and try to fix some more will sed, but
> it will be painfull (and pretty big diff, and I'll probably miss some).

That's OK - it's just an hour's work. I'd be more concerned about
irritating people who are maintaining and using out-of-tree drivers.

Can you remind me why we need _any_ of this? "enums to clear suspend-state
confusion" sounds like something which is very optional. I'd be opting to
go do something else instead ;)