Re: [Regression 5.14] media: dvb userspace api

From: Soeren Moch
Date: Mon Aug 23 2021 - 16:16:44 EST


On 23.08.21 18:58, Linus Torvalds wrote:
> On Mon, Aug 23, 2021 at 7:59 AM Soeren Moch <smoch@xxxxxx> wrote:
>> Linus,
>>
>> Is what I described directly above the new linux maintenance policy? Or
>> is linux media a private kingdom where the community should keep away?
>> Is this a place where the subsystem maintainer is on a mission to
>> destroy everything instead of maintaining and improving it? Please tell
>> me what I understood wrong here.
Thanks for your quick answer.
> So technically, the regression policy for the kernel is purely about
> the ABI - the _binary_ interface. That seems to not have broken - old
> programs continue to work.
OK, as long as the related driver lives at least in staging. Without the
driver of course the hardware and userspace will not work any longer
with new kernel versions.
> We very much try to discourage user space applications from using the
> kernel header files directly - even projects like glibc etc are
> supposed to _copy_ them, not include the kernel headers.
OK, thanks for pointing to this policy.
> Exactly because re-organization and changes to the kernel tree
> shouldn't be something that then causes random problems elsewhere that
> are so hard to test - and synchronize - from the kernel standpoint (or
> from the standpoint of the other end).
>
> That clearly doesn't seem to be the case in this situation. Which is
> annoying as heck.
>
> Mauro: there clearly _are_ users of those header files, and even
> apparently that one old driver out there. And those headers were in
> the 'uapi' directory, so while it is annoying how user space programs
> used them this way, I think it's also not entirely unreasonable.
>
> I have reverted the header file move. But I would also heartily
> recommend that whatever user program includes those headers (VDR -
> anything else?) should take snapshots of these specific kernel
> headers.
I will try to modify the related userspace accordingly, but it will take
time until this ripples through to distributions.
I'm not aware of other applications than VDR (especially 2 Plugins)
using these 3 header files.
> I'm not convinced that it makes sense to move the av7110 driver back
> from staging - it may continue to work, but it _is_ old and there is
> no maintenance -
It is old, but there are users out there - including me - that still use
such card and driver. I would be happy to maintain this driver, if I'm
allowed to do so. I already offered this for several years.

How long can this driver stay in staging? Would you move the driver back
from staging when I do proper maintenance for it? Is it normal linux
policy to remove drivers after a certain period of time, even if a
driver still has users and someone that volunteers to maintain it?
> and I would certainly suggest that any other
> out-of-tree driver that uses these old interfaces that nothing else
> implements shouldn't do so, considering that nothing else implements
> them.
The hardware of these so called full-featured DVB cards is very special.
It is a Satellite-/Cable-TV Set-Top-Box on a PCI/PCIe card. Since only
two generations of these cards exist (the first generation in many
variants), only two drivers implement the full DVB API. There are no
other drivers for similar hardware, nothing uses other APIs for this
type of hardware.

Given that all drivers for this type of hardware use the API in
question, would you accept the second driver for the second generation
of full-featured DVB cards (saa716x) [1] to be pulled into mainline linux?
> So the only thing I did was move the header files back, and mark that
> move to be backported to 5.13 stable.
Thanks for moving the header files back. In 5.13.12 the API files are
still there at the old position.

Best regards,
Soeren

[1] https://github.com/s-moch/linux-saa716x