linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] staging: media: imx7-mipi-csis: fix debugfs compilation
@ 2019-03-13 21:17 Arnd Bergmann
  2019-03-14 10:17 ` Rui Miguel Silva
  0 siblings, 1 reply; 2+ messages in thread
From: Arnd Bergmann @ 2019-03-13 21:17 UTC (permalink / raw)
  To: Rui Miguel Silva, Steve Longerbeam, Philipp Zabel, Mauro Carvalho Chehab
  Cc: Arnd Bergmann, Greg Kroah-Hartman, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	Hans Verkuil, linux-media, devel, linux-arm-kernel, linux-kernel

When CONFIG_DEBUGFS is enabled, we get a warning about an
incorrect section annotation that can lead to undefined
behavior:

WARNING: vmlinux.o(.text+0xd3c7c4): Section mismatch in reference from the function mipi_csis_probe() to the function .init.text:mipi_csis_debugfs_init()
The function mipi_csis_probe() references
the function __init mipi_csis_debugfs_init().
This is often because mipi_csis_probe lacks a __init
annotation or the annotation of mipi_csis_debugfs_init is wrong.

The same function for an unknown reason has a different
version for !CONFIG_DEBUGFS, which does not have this problem,
but behaves the same way otherwise (it does nothing when debugfs
is disabled).
Consolidate the two versions, using the correct section from
one version, and the implementation from the other.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/staging/media/imx/imx7-mipi-csis.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/staging/media/imx/imx7-mipi-csis.c b/drivers/staging/media/imx/imx7-mipi-csis.c
index 2ddcc42ab8ff..001ce369ec45 100644
--- a/drivers/staging/media/imx/imx7-mipi-csis.c
+++ b/drivers/staging/media/imx/imx7-mipi-csis.c
@@ -9,6 +9,7 @@
  */
 
 #include <linux/clk.h>
+#include <linux/debugfs.h>
 #include <linux/delay.h>
 #include <linux/errno.h>
 #include <linux/interrupt.h>
@@ -889,8 +890,6 @@ static int mipi_csis_subdev_init(struct v4l2_subdev *mipi_sd,
 	return ret;
 }
 
-#ifdef CONFIG_DEBUG_FS
-#include <linux/debugfs.h>
 
 static int mipi_csis_dump_regs_show(struct seq_file *m, void *private)
 {
@@ -900,7 +899,7 @@ static int mipi_csis_dump_regs_show(struct seq_file *m, void *private)
 }
 DEFINE_SHOW_ATTRIBUTE(mipi_csis_dump_regs);
 
-static int __init_or_module mipi_csis_debugfs_init(struct csi_state *state)
+static int mipi_csis_debugfs_init(struct csi_state *state)
 {
 	struct dentry *d;
 
@@ -934,17 +933,6 @@ static void mipi_csis_debugfs_exit(struct csi_state *state)
 	debugfs_remove_recursive(state->debugfs_root);
 }
 
-#else
-static int mipi_csis_debugfs_init(struct csi_state *state __maybe_unused)
-{
-	return 0;
-}
-
-static void mipi_csis_debugfs_exit(struct csi_state *state __maybe_unused)
-{
-}
-#endif
-
 static int mipi_csis_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
-- 
2.20.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] staging: media: imx7-mipi-csis: fix debugfs compilation
  2019-03-13 21:17 [PATCH] staging: media: imx7-mipi-csis: fix debugfs compilation Arnd Bergmann
@ 2019-03-14 10:17 ` Rui Miguel Silva
  0 siblings, 0 replies; 2+ messages in thread
From: Rui Miguel Silva @ 2019-03-14 10:17 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Steve Longerbeam, Philipp Zabel, Mauro Carvalho Chehab,
	Greg Kroah-Hartman, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team,
	Hans Verkuil, linux-media, devel, linux-arm-kernel, linux-kernel

Hi Arnd,
Thanks for the patch.
On Wed 13 Mar 2019 at 21:17, Arnd Bergmann wrote:
> When CONFIG_DEBUGFS is enabled, we get a warning about an
> incorrect section annotation that can lead to undefined
> behavior:
>
> WARNING: vmlinux.o(.text+0xd3c7c4): Section mismatch in 
> reference from the function mipi_csis_probe() to the function 
> .init.text:mipi_csis_debugfs_init()
> The function mipi_csis_probe() references
> the function __init mipi_csis_debugfs_init().
> This is often because mipi_csis_probe lacks a __init
> annotation or the annotation of mipi_csis_debugfs_init is wrong.
>
> The same function for an unknown reason has a different
> version for !CONFIG_DEBUGFS, which does not have this problem,
> but behaves the same way otherwise (it does nothing when debugfs
> is disabled).
> Consolidate the two versions, using the correct section from
> one version, and the implementation from the other.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com>

---
Cheers,
	Rui

> ---
>  drivers/staging/media/imx/imx7-mipi-csis.c | 16 
>  ++--------------
>  1 file changed, 2 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/staging/media/imx/imx7-mipi-csis.c 
> b/drivers/staging/media/imx/imx7-mipi-csis.c
> index 2ddcc42ab8ff..001ce369ec45 100644
> --- a/drivers/staging/media/imx/imx7-mipi-csis.c
> +++ b/drivers/staging/media/imx/imx7-mipi-csis.c
> @@ -9,6 +9,7 @@
>   */
>  
>  #include <linux/clk.h>
> +#include <linux/debugfs.h>
>  #include <linux/delay.h>
>  #include <linux/errno.h>
>  #include <linux/interrupt.h>
> @@ -889,8 +890,6 @@ static int mipi_csis_subdev_init(struct 
> v4l2_subdev *mipi_sd,
>  	return ret;
>  }
>  
> -#ifdef CONFIG_DEBUG_FS
> -#include <linux/debugfs.h>
>  
>  static int mipi_csis_dump_regs_show(struct seq_file *m, void 
>  *private)
>  {
> @@ -900,7 +899,7 @@ static int mipi_csis_dump_regs_show(struct 
> seq_file *m, void *private)
>  }
>  DEFINE_SHOW_ATTRIBUTE(mipi_csis_dump_regs);
>  
> -static int __init_or_module mipi_csis_debugfs_init(struct 
> csi_state *state)
> +static int mipi_csis_debugfs_init(struct csi_state *state)
>  {
>  	struct dentry *d;
>  
> @@ -934,17 +933,6 @@ static void mipi_csis_debugfs_exit(struct 
> csi_state *state)
>  	debugfs_remove_recursive(state->debugfs_root);
>  }
>  
> -#else
> -static int mipi_csis_debugfs_init(struct csi_state *state 
> __maybe_unused)
> -{
> -	return 0;
> -}
> -
> -static void mipi_csis_debugfs_exit(struct csi_state *state 
> __maybe_unused)
> -{
> -}
> -#endif
> -
>  static int mipi_csis_probe(struct platform_device *pdev)
>  {
>  	struct device *dev = &pdev->dev;


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-03-14 10:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-13 21:17 [PATCH] staging: media: imx7-mipi-csis: fix debugfs compilation Arnd Bergmann
2019-03-14 10:17 ` Rui Miguel Silva

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).