Message ID | 208469.1604318525@turing-police (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | clk: imx: scu: Fix compile error with module build of clk-scu.o | expand |
On 11/2/20 4:02 AM, Valdis Klētnieks wrote: > commit 77d8f3068c63ee0983f0b5ba3207d3f7cce11be4 (HEAD) > Author: Dong Aisheng <aisheng.dong@nxp.com> > Date: Wed Jul 29 16:00:10 2020 +0800 > > clk: imx: scu: add two cells binding support > > This missed a #include, which results in some nasty errors when > built as a module > > CC [M] drivers/clk/imx/clk-scu.o > In file included from ./include/linux/device.h:32, > from ./include/linux/of_platform.h:9, > from drivers/clk/imx/clk-scu.c:11: > ./include/linux/device/driver.h:290:1: warning: data definition has no type or storage class > device_initcall(__driver##_init); > ^~~~~~~~~~~~~~~ > ./include/linux/platform_device.h:258:2: note: in expansion of macro 'builtin_driver' > builtin_driver(__platform_driver, platform_driver_register) > ^~~~~~~~~~~~~~ > drivers/clk/imx/clk-scu.c:545:1: note: in expansion of macro 'builtin_platform_driver' > builtin_platform_driver(imx_clk_scu_driver); > ^~~~~~~~~~~~~~~~~~~~~~~ > ./include/linux/device/driver.h:290:1: error: type defaults to 'int' in declaration of 'device_initcall' [-Werror=implicit-int] > device_initcall(__driver##_init); > ^~~~~~~~~~~~~~~ > ./include/linux/platform_device.h:258:2: note: in expansion of macro 'builtin_driver' > builtin_driver(__platform_driver, platform_driver_register) > ^~~~~~~~~~~~~~ > drivers/clk/imx/clk-scu.c:545:1: note: in expansion of macro 'builtin_platform_driver' > builtin_platform_driver(imx_clk_scu_driver); > ^~~~~~~~~~~~~~~~~~~~~~~ > drivers/clk/imx/clk-scu.c:545:1: warning: parameter names (without types) in function declaration > In file included from ./include/linux/device.h:32, > from ./include/linux/of_platform.h:9, > from drivers/clk/imx/clk-scu.c:11: > drivers/clk/imx/clk-scu.c:545:25: warning: 'imx_clk_scu_driver_init' defined but not used [-Wunused-function] > builtin_platform_driver(imx_clk_scu_driver); > ^~~~~~~~~~~~~~~~~~ > ./include/linux/device/driver.h:286:19: note: in definition of macro 'builtin_driver' > static int __init __driver##_init(void) \ > ^~~~~~~~ > drivers/clk/imx/clk-scu.c:545:1: note: in expansion of macro 'builtin_platform_driver' > builtin_platform_driver(imx_clk_scu_driver); > ^~~~~~~~~~~~~~~~~~~~~~~ > cc1: some warnings being treated as errors > make[3]: *** [scripts/Makefile.build:283: drivers/clk/imx/clk-scu.o] Error 1 > > Fix by providing the include. also Reported-by: kernel test robot <lkp@intel.com> However, this driver does not directly use <linux/module.h>. platform_device.h #includes <linux/device.h>, which is where the problem lies: <linux/device.h> uses macros that are provided by <linux/module.h> so <linux/device.h> should #include <linux/module.h>. and that fixes this commit: commit 4c002c978b7f2f2306d53de051c054504af920a9 Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Date: Mon Dec 9 20:33:03 2019 +0100 device.h: move 'struct driver' stuff out to device/driver.h > > Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu> > > diff --git a/drivers/clk/imx/clk-scu.c b/drivers/clk/imx/clk-scu.c > index 229a290ca5b6..15d382f6f9f8 100644 > --- a/drivers/clk/imx/clk-scu.c > +++ b/drivers/clk/imx/clk-scu.c > @@ -8,6 +8,7 @@ > #include <linux/arm-smccc.h> > #include <linux/clk-provider.h> > #include <linux/err.h> > +#include <linux/module.h> > #include <linux/of_platform.h> > #include <linux/platform_device.h> > #include <linux/pm_domain.h> > >
On Mon, 02 Nov 2020 09:15:20 -0800, Randy Dunlap said: > also > Reported-by: kernel test robot <lkp@intel.com> > > However, this driver does not directly use <linux/module.h>. Just my luck - I looked at 3 or 4 other things that include of_platform.h and they all *did* include module.h. > platform_device.h #includes <linux/device.h>, which is where the > problem lies: > > <linux/device.h> uses macros that are provided by <linux/module.h> > so <linux/device.h> should #include <linux/module.h>. > > and that fixes this commit: > > commit 4c002c978b7f2f2306d53de051c054504af920a9 > Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Date: Mon Dec 9 20:33:03 2019 +0100 > > device.h: move 'struct driver' stuff out to device/driver.h OK.. who's going to do that? Me, or Randy, or Greg?
On 11/2/20 1:01 PM, Valdis Klētnieks wrote: > On Mon, 02 Nov 2020 09:15:20 -0800, Randy Dunlap said: > >> also >> Reported-by: kernel test robot <lkp@intel.com> >> >> However, this driver does not directly use <linux/module.h>. > > Just my luck - I looked at 3 or 4 other things that include of_platform.h > and they all *did* include module.h. > >> platform_device.h #includes <linux/device.h>, which is where the >> problem lies: >> >> <linux/device.h> uses macros that are provided by <linux/module.h> >> so <linux/device.h> should #include <linux/module.h>. >> >> and that fixes this commit: >> >> commit 4c002c978b7f2f2306d53de051c054504af920a9 >> Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org> >> Date: Mon Dec 9 20:33:03 2019 +0100 >> >> device.h: move 'struct driver' stuff out to device/driver.h > > OK.. who's going to do that? Me, or Randy, or Greg? You could go ahead... I began on it yesterday but didn't finish testing, although I did see the same build error that the 0day bot reported, so I don't know what it's going to take to fix that.
On Mon, Nov 02, 2020 at 01:31:59PM -0800, Randy Dunlap wrote: > On 11/2/20 1:01 PM, Valdis Klētnieks wrote: > > On Mon, 02 Nov 2020 09:15:20 -0800, Randy Dunlap said: > > > >> also > >> Reported-by: kernel test robot <lkp@intel.com> > >> > >> However, this driver does not directly use <linux/module.h>. > > > > Just my luck - I looked at 3 or 4 other things that include of_platform.h > > and they all *did* include module.h. > > > >> platform_device.h #includes <linux/device.h>, which is where the > >> problem lies: > >> > >> <linux/device.h> uses macros that are provided by <linux/module.h> > >> so <linux/device.h> should #include <linux/module.h>. > >> > >> and that fixes this commit: > >> > >> commit 4c002c978b7f2f2306d53de051c054504af920a9 > >> Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > >> Date: Mon Dec 9 20:33:03 2019 +0100 > >> > >> device.h: move 'struct driver' stuff out to device/driver.h > > > > OK.. who's going to do that? Me, or Randy, or Greg? > > You could go ahead... I began on it yesterday but didn't finish > testing, although I did see the same build error that the 0day > bot reported, so I don't know what it's going to take to fix that. It's a driver problem which is being addressed by Dong's patch[1]. Shawn [1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20201030153733.30160-1-aisheng.dong@nxp.com/
On 11/2/20 3:52 PM, Shawn Guo wrote: > On Mon, Nov 02, 2020 at 01:31:59PM -0800, Randy Dunlap wrote: >> On 11/2/20 1:01 PM, Valdis Klētnieks wrote: >>> On Mon, 02 Nov 2020 09:15:20 -0800, Randy Dunlap said: >>> >>>> also >>>> Reported-by: kernel test robot <lkp@intel.com> >>>> >>>> However, this driver does not directly use <linux/module.h>. >>> >>> Just my luck - I looked at 3 or 4 other things that include of_platform.h >>> and they all *did* include module.h. >>> >>>> platform_device.h #includes <linux/device.h>, which is where the >>>> problem lies: >>>> >>>> <linux/device.h> uses macros that are provided by <linux/module.h> >>>> so <linux/device.h> should #include <linux/module.h>. >>>> >>>> and that fixes this commit: >>>> >>>> commit 4c002c978b7f2f2306d53de051c054504af920a9 >>>> Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org> >>>> Date: Mon Dec 9 20:33:03 2019 +0100 >>>> >>>> device.h: move 'struct driver' stuff out to device/driver.h >>> >>> OK.. who's going to do that? Me, or Randy, or Greg? >> >> You could go ahead... I began on it yesterday but didn't finish >> testing, although I did see the same build error that the 0day >> bot reported, so I don't know what it's going to take to fix that. > > It's a driver problem which is being addressed by Dong's patch[1]. > > Shawn > > [1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20201030153733.30160-1-aisheng.dong@nxp.com/ > Thanks for the info & link.
On Tue, 03 Nov 2020 07:52:19 +0800, Shawn Guo said: > It's a driver problem which is being addressed by Dong's patch[1]. > > Shawn > > [1] https://patchwork.kernel.org/project/linux-arm-kernel/patch/20201030153733.30160-1-aisheng.dong@nxp.com/ OK, We'll fix it that way then.
diff --git a/drivers/clk/imx/clk-scu.c b/drivers/clk/imx/clk-scu.c index 229a290ca5b6..15d382f6f9f8 100644 --- a/drivers/clk/imx/clk-scu.c +++ b/drivers/clk/imx/clk-scu.c @@ -8,6 +8,7 @@ #include <linux/arm-smccc.h> #include <linux/clk-provider.h> #include <linux/err.h> +#include <linux/module.h> #include <linux/of_platform.h> #include <linux/platform_device.h> #include <linux/pm_domain.h>
commit 77d8f3068c63ee0983f0b5ba3207d3f7cce11be4 (HEAD) Author: Dong Aisheng <aisheng.dong@nxp.com> Date: Wed Jul 29 16:00:10 2020 +0800 clk: imx: scu: add two cells binding support This missed a #include, which results in some nasty errors when built as a module CC [M] drivers/clk/imx/clk-scu.o In file included from ./include/linux/device.h:32, from ./include/linux/of_platform.h:9, from drivers/clk/imx/clk-scu.c:11: ./include/linux/device/driver.h:290:1: warning: data definition has no type or storage class device_initcall(__driver##_init); ^~~~~~~~~~~~~~~ ./include/linux/platform_device.h:258:2: note: in expansion of macro 'builtin_driver' builtin_driver(__platform_driver, platform_driver_register) ^~~~~~~~~~~~~~ drivers/clk/imx/clk-scu.c:545:1: note: in expansion of macro 'builtin_platform_driver' builtin_platform_driver(imx_clk_scu_driver); ^~~~~~~~~~~~~~~~~~~~~~~ ./include/linux/device/driver.h:290:1: error: type defaults to 'int' in declaration of 'device_initcall' [-Werror=implicit-int] device_initcall(__driver##_init); ^~~~~~~~~~~~~~~ ./include/linux/platform_device.h:258:2: note: in expansion of macro 'builtin_driver' builtin_driver(__platform_driver, platform_driver_register) ^~~~~~~~~~~~~~ drivers/clk/imx/clk-scu.c:545:1: note: in expansion of macro 'builtin_platform_driver' builtin_platform_driver(imx_clk_scu_driver); ^~~~~~~~~~~~~~~~~~~~~~~ drivers/clk/imx/clk-scu.c:545:1: warning: parameter names (without types) in function declaration In file included from ./include/linux/device.h:32, from ./include/linux/of_platform.h:9, from drivers/clk/imx/clk-scu.c:11: drivers/clk/imx/clk-scu.c:545:25: warning: 'imx_clk_scu_driver_init' defined but not used [-Wunused-function] builtin_platform_driver(imx_clk_scu_driver); ^~~~~~~~~~~~~~~~~~ ./include/linux/device/driver.h:286:19: note: in definition of macro 'builtin_driver' static int __init __driver##_init(void) \ ^~~~~~~~ drivers/clk/imx/clk-scu.c:545:1: note: in expansion of macro 'builtin_platform_driver' builtin_platform_driver(imx_clk_scu_driver); ^~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors make[3]: *** [scripts/Makefile.build:283: drivers/clk/imx/clk-scu.o] Error 1 Fix by providing the include. Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>