0042-can-mcp25xxfd-update-driver can failed to build with rel_imx_5.4.24_2.1.0
Closed this issue · 5 comments
The tag iot-gate-imx8_r2.2
introduce some new kernel patches, especially 0042-can-mcp25xxfd-update-driver.patch
which seems not buildable with recommanded NXP release kernel (rel_imx_5.4.24_2.1.0) if CONFIG_DEBUG_FS is disabled (which is the case in most production definitions).
In file included from drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can.h:11,
from drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can.c:52:
drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can_debugfs.h:34:41: warning: « struct mcp25xxfd_can_priv » est déclaré à l'intérieur d'une liste de paramètres et ne sera pas visible en dehors de cette définition ou déclaration
void mcp25xxfd_can_debugfs_setup(struct mcp25xxfd_can_priv *cpriv)
^~~~~~~~~~~~~~~~~~
drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can_debugfs.h:39:42: warning: « struct mcp25xxfd_can_priv » est déclaré à l'intérieur d'une liste de paramètres et ne sera pas visible en dehors de cette définition ou déclaration
void mcp25xxfd_can_debugfs_remove(struct mcp25xxfd_can_priv *cpriv)
^~~~~~~~~~~~~~~~~~
drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can.c: Dans la fonction « mcp25xxfd_can_open »:
drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can.c:486:17: error: « struct mcp25xxfd_can_priv » n'a pas de membre nommé « stats »; vouliez-vous employer « status » ?
memset(&cpriv->stats, 0, sizeof(cpriv->stats));
^~~~~
status
drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can.c:486:41: error: « struct mcp25xxfd_can_priv » n'a pas de membre nommé « stats »; vouliez-vous employer « status » ?
memset(&cpriv->stats, 0, sizeof(cpriv->stats));
^~~~~
status
drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can.c: Dans la fonction « mcp25xxfd_can_setup »:
drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can.c:670:30: error: passage de l'argument 1 de « mcp25xxfd_can_debugfs_setup » depuis un type pointeur incompatible [-Werror=incompatible-pointer-types]
mcp25xxfd_can_debugfs_setup(cpriv);
^~~~~
In file included from drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can.h:11,
from drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can.c:52:
drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can_debugfs.h:34:61: note: « struct mcp25xxfd_can_priv * » attendu mais l'argument est de type « struct mcp25xxfd_can_priv * »
void mcp25xxfd_can_debugfs_setup(struct mcp25xxfd_can_priv *cpriv)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
cc1 : certains avertissements sont traités comme des erreurs
scripts/Makefile.build:265 : la recette pour la cible « drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can.o » a échouée
make[6]: *** [drivers/net/can/spi/mcp25xxfd/mcp25xxfd_can.o] Erreur 1
scripts/Makefile.build:500 : la recette pour la cible « drivers/net/can/spi/mcp25xxfd » a échouée
make[5]: *** [drivers/net/can/spi/mcp25xxfd] Erreur 2
scripts/Makefile.build:500 : la recette pour la cible « drivers/net/can/spi » a échouée
make[4]: *** [drivers/net/can/spi] Erreur 2
scripts/Makefile.build:500 : la recette pour la cible « drivers/net/can » a échouée
make[3]: *** [drivers/net/can] Erreur 2
scripts/Makefile.build:500 : la recette pour la cible « drivers/net » a échouée
make[2]: *** [drivers/net] Erreur 2
Disabling 0042-can-mcp25xxfd-update-drive.patch
patch, while keeping the other new patches works.
It seems the code strongly rely on the stats
structure on mcp25xxfd_can_priv
structure which is not enabled if CONFIG_DEBUG_FS is disable
Hello TMesot,
Thank you for locating the problem.
Patch link will be provided.
Hi TMesot,
Relevant patch:
Fix mcp25xxfd driver compilation for !CONFIG_DEBUG_FS
Hello,
Thanks for your reactivity.
It now build, but there is still a warning about unused variable as the priv struct is not used if DEBUG_FS not enabled :
drivers/net/can/spi/mcp25xxfd/mcp25xxfd_cmd.c: Dans la fonction « mcp25xxfd_cmd_readn_crc »:
drivers/net/can/spi/mcp25xxfd/mcp25xxfd_cmd.c:258:25: warning: variable inutilisée « priv » [-Wunused-variable]
struct mcp25xxfd_priv *priv = spi_get_drvdata(spi);
Do you want me to keep the issue open until the warning is cleaned ?
Hi TMesot,
Thank you again.
Patch fixed.
Hello,
Build is now fixed, thanks !