[mythtv-users] Ceton InfiniTV PCIe Driver Compilation Error

Stephen Worthington stephen_agent at jsw.gen.nz
Sun Dec 3 02:01:07 UTC 2017


On Sat, 2 Dec 2017 20:42:44 -0500, you wrote:

>Hello All,
>
>At my wit's end with this thing and not sure where to turn.  The driver 
>is "provided without warranty or support" and has worked very well all 
>these years (released in 2013) with only a single easily fixed tweak a 
>couple of years ago for kernel 2.6.8 or 2.6.9.  A few months ago, it 
>quit compiling on my FC25 backend and I have been occasionally searching 
>to see if anyone mentioned fixing it.  The last kernel it compiles 
>cleanly with is 4.11.4, so I have been holding tight on that.  Now with 
>FC27 released, things are a little more urgent since FC25 will be 
>getting dropped pretty soon.
>
>I was able to easily fix the two implicit declaration of function errors 
>myself with a quick search, but these two (which really look like the 
>same thing twice) have me stumped.  Surely, it's very easy for someone 
>familiar enough with C and device drivers but sadly, I am neither.  Here 
>is the error:
>
>
>/root/ceton/ceton_infinitv_linux_driver_2013_0326_2226/ctn91xx_net.c: In 
>function ‘ctn91xx_net_rx_skb’:
>/root/ceton/ceton_infinitv_linux_driver_2013_0326_2226/ctn91xx_net.c:315:11: 
>error: ‘struct net_device’ has no member named ‘last_rx’
>      netdev->last_rx = jiffies;
>            ^~
>/root/ceton/ceton_infinitv_linux_driver_2013_0326_2226/ctn91xx_net.c: In 
>function ‘ctn91xx_net_isr_ex’:
>/root/ceton/ceton_infinitv_linux_driver_2013_0326_2226/ctn91xx_net.c:365:23: 
>error: ‘struct net_device’ has no member named ‘last_rx’
>                  netdev->last_rx = jiffies;
>                        ^~
>
>Anyone interested in helping me tackle this?  I cannot imagine the list 
>handling an attachment, so would either need to paste relevant parts of 
>code here or work off to the side in private email?
>
>Thank you, Scott

The obvious thing to try first with this problem is simply to comment
out those two lines assigning to the last_rx field.  If that works and
the driver still works, then that was all that was needed.  But if the
change in the net_device structure has other implications, there may
be something else that needs to be done.

Fairly frequently there are fields in structure definitions that are
used for some purpose by other software and need to be set up by
everyone using it, but are not used by most software except in special
cases.  And then later a change takes the field away again as however
that field worked, it is no longer needed by the software that was
using it, and any other software not actually using it can simply no
longer initialise it to a valid value.  Since there appear to be no
other references to last_rx in the driver except for initialising it,
it is a reasonable bet that it is simply no longer needed.


More information about the mythtv-users mailing list