Hi Michael, On Thu, 14 Mar 2024 10:05:37 +1100 Michael Ellerman <m...@ellerman.id.au> wrote:
> Hi Herve, > > Herve Codina <herve.cod...@bootlin.com> writes: ... > This breaks when building as a module (eg. ppc32_allmodconfig): > > In file included from ../include/linux/device/driver.h:21, > from ../include/linux/device.h:32, > from ../include/linux/dma-mapping.h:8, > from ../drivers/net/wan/fsl_qmc_hdlc.c:13: > ../drivers/net/wan/fsl_qmc_hdlc.c:405:25: error: ‘qmc_hdlc_driver’ > undeclared here (not in a function); did you mean ‘qmc_hdlc_probe’? > 405 | MODULE_DEVICE_TABLE(of, qmc_hdlc_driver); > | ^~~~~~~~~~~~~~~ > > > IIUIC it should be pointing to the table, not the driver, so: > > diff --git a/drivers/net/wan/fsl_qmc_hdlc.c b/drivers/net/wan/fsl_qmc_hdlc.c > index 5fd7ed325f5b..705c3681fb92 100644 > --- a/drivers/net/wan/fsl_qmc_hdlc.c > +++ b/drivers/net/wan/fsl_qmc_hdlc.c > @@ -402,7 +402,7 @@ static const struct of_device_id qmc_hdlc_id_table[] = { > { .compatible = "fsl,qmc-hdlc" }, > {} /* sentinel */ > }; > -MODULE_DEVICE_TABLE(of, qmc_hdlc_driver); > +MODULE_DEVICE_TABLE(of, qmc_hdlc_id_table); > > static struct platform_driver qmc_hdlc_driver = { > .driver = { > > > Which then builds correctly. My bad, I missed that one. I fully agree with your modification. Do you want me to make a patch (copy/paste of your proposed modification) or do you plan to send the patch on your side ? Best regards, Hervé -- Hervé Codina, Bootlin Embedded Linux and Kernel engineering https://bootlin.com