acooks / tn40xx-driver

Linux driver for tn40xx from Tehuti Networks
71 stars 50 forks source link

Unable to build tn40xx with support for MV88X3310 in kernel 5.11.0 #68

Closed jfernandz closed 7 months ago

jfernandz commented 7 months ago

Hi everyone, according to

https://github.com/acooks/tn40xx-driver/blob/4929c3d06c4082b57938352c7ca615a9f86635d9/Readme#L32

5.11.0 should be supported, however, when I try to build this driver with MV88X3310 support, I can see an error because of implicit declaration of function ‘eth_hw_addr_set’, as you can see:

make -C /lib/modules/5.11.0-46-generic/build M=/usr/src/tn40xx-006 clean
make[1]: Entering directory '/usr/src/linux-headers-5.11.0-46-generic'
make[1]: Leaving directory '/usr/src/linux-headers-5.11.0-46-generic'
root@HostCFD1:/usr/src/tn40xx-006# make MV88X3310=YES
make -C /lib/modules/5.11.0-46-generic/build M=/usr/src/tn40xx-006 clean
make[1]: Entering directory '/usr/src/linux-headers-5.11.0-46-generic'
make[1]: Leaving directory '/usr/src/linux-headers-5.11.0-46-generic'
Generating MV88X3310_phy.h
Building kernel 5.11.0-46-generic resume supported
make -C /lib/modules/5.11.0-46-generic/build M=/usr/src/tn40xx-006 modules 
make[1]: Entering directory '/usr/src/linux-headers-5.11.0-46-generic'
  CC [M]  /usr/src/tn40xx-006/tn40.o
/usr/src/tn40xx-006/tn40.c: In function ‘bdx_set_mac’:
/usr/src/tn40xx-006/tn40.c:1599:2: error: implicit declaration of function ‘eth_hw_addr_set’; did you mean ‘eth_hw_addr_crc’? [-Werror=implicit-function-declaration]
 1599 |  eth_hw_addr_set(ndev, addr->sa_data);
      |  ^~~~~~~~~~~~~~~
      |  eth_hw_addr_crc
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:288: /usr/src/tn40xx-006/tn40.o] Error 1
make[1]: *** [Makefile:1849: /usr/src/tn40xx-006] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.11.0-46-generic'
make: *** [Makefile:147: all] Error 2
root@HostCFD1:/usr/src/tn40xx-006# 

Not sure if will build without MV88X3310 support. Anyway ... why do you think is this due? Shouldn't I be able to build the driver for kernel 5.11.0?

Thank you very much! 😄

acooks commented 7 months ago

release/tn40xx-004 was the last release before the eth_hw_addr_set() function was introduced. I'll make sure to clean up the readme files and add some kind of release/version lookup table for people with old kernels.