Messages in this thread | | | From | Arnd Bergmann <> | Date | Thu, 30 Apr 2020 15:21:49 +0200 | Subject | Re: [PATCH] staging: wfx: avoid compiler warning on empty array |
| |
On Thu, Apr 30, 2020 at 10:42 AM Jerome Pouiller <Jerome.Pouiller@silabs.com> wrote: > On Wednesday 29 April 2020 22:34:56 CEST Arnd Bergmann wrote: > > On Wed, Apr 29, 2020 at 6:04 PM Jerome Pouiller > > <Jerome.Pouiller@silabs.com> wrote: > > > On Wednesday 29 April 2020 16:21:09 CEST Arnd Bergmann wrote: > > > > > > > > -static const struct of_device_id wfx_sdio_of_match[]; > > > > +static const struct of_device_id wfx_sdio_of_match[] = { > > > > + { .compatible = "silabs,wfx-sdio" }, > > > > + { .compatible = "silabs,wf200" }, > > > > + { }, > > > > +}; > > > > +MODULE_DEVICE_TABLE(of, wfx_sdio_of_match); > > > > > > I suggest to keep the '#ifdef CONFIG_OF' around this definition. If > > > CONFIG_OF is undefined, of_match_ptr() and of_match_node() will be NULL > > > and it should compile. > > > > I would generally always go for fewer #ifdef instead of more when the result > > is the same. Are you worried about wasting 600 bytes of object code size for > > the array on systems that need this driver but not CONFIG_OF, or something > > else? > > I am not very concerned about the size of the object. However, I think > that all the modules should apply the same policy regarding the device > tables. With a few greps, I found 3954 struct of_device_id. About 500 are > inside #ifdef and about 1000 use of_match_ptr(). > > Should we consider that the structs of_device_id have to be defined even > if CONFIG_OF is not defined? And In this case, should we drop > of_match_ptr()? > > Or in contrary, when kernel is compiled without CONFIG_OF, no modules > should contains OF entries in its device table?
I think the drivers that use an #ifdef here just do so for historic reasons. In the linux-2.6 days, this caused build failures, but just leaving them defined has worked for a long time.
Arnd
| |