Re: 2.6.36/2.6.37: broken compatibility with userspace input-utils ?

Dmitry Torokhov
2011-01-26T22:04:16Z

On Wed, Jan 26, 2011 at 04:41:07PM -0500, Mark Lord wrote:
> On 11-01-26 02:50 PM, Dmitry Torokhov wrote:
> > On Wed, Jan 26, 2011 at 02:47:18PM -0500, Mark Lord wrote:
> >> On 11-01-26 02:41 PM, Dmitry Torokhov wrote:
> >>>
> >>> I do not consider lsinput refusing to work a regression.
> >>
> >> Obviously, since you don't use that tool.
> >> Those of us who do use it see this as broken userspace compatibility.
> >>
> >> Who the hell reviews this crap, anyway?
> >> Code like that should never have made it upstream in the first place.
> >>
> >
> > You are more than welcome spend more time on reviews.
>
> Somehow I detect a totally lack of sincerity there.

No, not really. If we known about Ubuntu's employ of such utility before
we'd try to come up with workaround or updated the utility proactively
so user-visible changes would be limited.

>
> But thanks for fixing the worst of this regression, at least.
>
> Perhaps you might think about eventually fixing the bad use of -EINVAL
> in future revisions. One way perhaps to approach that, would be to begin
> fixing it internally,

Yes, that is on my lest (unless somebody beats me to it). Won't help
with the older kernels though, unfortunately.

> but still returning the same things from the actual
> f_ops->ioctl() routine.

Not sure if this is needed.

>
> Then eventually provide new ioctl numbers which return the correct -ENOTTY
> (or whatever is best there), rather than converting to -EVINAL at the interface.
> Then a nice multi-year overlap, with a scheduled removal of the old codes some day.
>
> Then the input subsystem would work more like most other subsystems,
> and make userspace programming simpler and easier to "get correct".

I do not believe that such characterization is called for. We did fix
the breakage that was ABI breakage. The version issue is different. If
we go by what you say _none_ of the versions anywhere can be changed
ever because there might be a program that does not expect new version.

--
Dmitry