All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] media: atomisp: fix gcc warnings
@ 2020-09-23  8:21 ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 6+ messages in thread
From: Mauro Carvalho Chehab @ 2020-09-23  8:21 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: linuxarm, mauro.chehab, Mauro Carvalho Chehab,
	Gustavo A. R. Silva, Andy Shevchenko, Greg Kroah-Hartman,
	Mauro Carvalho Chehab, Sakari Ailus, devel, linux-kernel

Depending on the gcc version, after changeset
72a9ff3bf7fb ("media: atomisp: get rid of -Wsuggest-attribute=format warnings"),
we're now getting two warnings, which are breaking the Jenkins
CI instance at https://builder.linuxtv.org:

	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c: In function ‘__set_css_print_env’:
	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c:860:50: error: assignment to ‘int (*)(const char *, char *)’ from incompatible pointer type ‘int (__attribute__((regparm(0))) *)(const char *, char *)’ [-Werror=incompatible-pointer-types]
	   isp->css_env.isp_css_env.print_env.debug_print = vprintk;
	                                                  ^
	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c: In function ‘atomisp_css_load_firmware’:
	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c:893:49: error: assignment to ‘int (*)(const char *, char *)’ from incompatible pointer type ‘int (__attribute__((regparm(0))) *)(const char *, char *)’ [-Werror=incompatible-pointer-types]
	  isp->css_env.isp_css_env.print_env.error_print = vprintk;
                                                 ^
	cc1: some warnings being treated as errors

So, we need to partially revert the patch.

Fixes: 72a9ff3bf7fb ("media: atomisp: get rid of -Wsuggest-attribute=format warnings")
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
 .../staging/media/atomisp/pci/atomisp_compat_css20.c  | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
index 28796ec177e3..85b39de7bc28 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
@@ -166,6 +166,13 @@ atomisp_css2_dbg_ftrace_print(const char *fmt, va_list args)
 	return 0;
 }
 
+static int  __attribute__((format (printf, 1, 0)))
+atomisp_vprintk(const char *fmt, va_list args)
+{
+	vprintk(fmt, args);
+	return 0;
+}
+
 void atomisp_load_uint32(hrt_address addr, uint32_t *data)
 {
 	*data = atomisp_css2_hw_load_32(addr);
@@ -857,7 +864,7 @@ static inline int __set_css_print_env(struct atomisp_device *isp, int opt)
 		isp->css_env.isp_css_env.print_env.debug_print =
 		    atomisp_css2_dbg_ftrace_print;
 	else if (opt == 2)
-		isp->css_env.isp_css_env.print_env.debug_print = vprintk;
+		isp->css_env.isp_css_env.print_env.debug_print = atomisp_vprintk;
 	else
 		ret = -EINVAL;
 
@@ -890,7 +897,7 @@ int atomisp_css_load_firmware(struct atomisp_device *isp)
 
 	__set_css_print_env(isp, dbg_func);
 
-	isp->css_env.isp_css_env.print_env.error_print = vprintk;
+	isp->css_env.isp_css_env.print_env.error_print = atomisp_vprintk;
 
 	/* load isp fw into ISP memory */
 	err = ia_css_load_firmware(isp->dev, &isp->css_env.isp_css_env,
-- 
2.26.2


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

* [PATCH 1/2] media: atomisp: fix gcc warnings
@ 2020-09-23  8:21 ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 6+ messages in thread
From: Mauro Carvalho Chehab @ 2020-09-23  8:21 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: devel, Mauro Carvalho Chehab, Mauro Carvalho Chehab,
	Greg Kroah-Hartman, linuxarm, Gustavo A. R. Silva, Sakari Ailus,
	mauro.chehab, Andy Shevchenko, linux-kernel

Depending on the gcc version, after changeset
72a9ff3bf7fb ("media: atomisp: get rid of -Wsuggest-attribute=format warnings"),
we're now getting two warnings, which are breaking the Jenkins
CI instance at https://builder.linuxtv.org:

	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c: In function ‘__set_css_print_env’:
	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c:860:50: error: assignment to ‘int (*)(const char *, char *)’ from incompatible pointer type ‘int (__attribute__((regparm(0))) *)(const char *, char *)’ [-Werror=incompatible-pointer-types]
	   isp->css_env.isp_css_env.print_env.debug_print = vprintk;
	                                                  ^
	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c: In function ‘atomisp_css_load_firmware’:
	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c:893:49: error: assignment to ‘int (*)(const char *, char *)’ from incompatible pointer type ‘int (__attribute__((regparm(0))) *)(const char *, char *)’ [-Werror=incompatible-pointer-types]
	  isp->css_env.isp_css_env.print_env.error_print = vprintk;
                                                 ^
	cc1: some warnings being treated as errors

So, we need to partially revert the patch.

Fixes: 72a9ff3bf7fb ("media: atomisp: get rid of -Wsuggest-attribute=format warnings")
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
 .../staging/media/atomisp/pci/atomisp_compat_css20.c  | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
index 28796ec177e3..85b39de7bc28 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
@@ -166,6 +166,13 @@ atomisp_css2_dbg_ftrace_print(const char *fmt, va_list args)
 	return 0;
 }
 
+static int  __attribute__((format (printf, 1, 0)))
+atomisp_vprintk(const char *fmt, va_list args)
+{
+	vprintk(fmt, args);
+	return 0;
+}
+
 void atomisp_load_uint32(hrt_address addr, uint32_t *data)
 {
 	*data = atomisp_css2_hw_load_32(addr);
@@ -857,7 +864,7 @@ static inline int __set_css_print_env(struct atomisp_device *isp, int opt)
 		isp->css_env.isp_css_env.print_env.debug_print =
 		    atomisp_css2_dbg_ftrace_print;
 	else if (opt == 2)
-		isp->css_env.isp_css_env.print_env.debug_print = vprintk;
+		isp->css_env.isp_css_env.print_env.debug_print = atomisp_vprintk;
 	else
 		ret = -EINVAL;
 
@@ -890,7 +897,7 @@ int atomisp_css_load_firmware(struct atomisp_device *isp)
 
 	__set_css_print_env(isp, dbg_func);
 
-	isp->css_env.isp_css_env.print_env.error_print = vprintk;
+	isp->css_env.isp_css_env.print_env.error_print = atomisp_vprintk;
 
 	/* load isp fw into ISP memory */
 	err = ia_css_load_firmware(isp->dev, &isp->css_env.isp_css_env,
-- 
2.26.2

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

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

* [PATCH 2/2] media: atomisp: cleanup __printf() atributes on printk messages
  2020-09-23  8:21 ` Mauro Carvalho Chehab
@ 2020-09-23  8:22   ` Mauro Carvalho Chehab
  -1 siblings, 0 replies; 6+ messages in thread
From: Mauro Carvalho Chehab @ 2020-09-23  8:22 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: linuxarm, mauro.chehab, Mauro Carvalho Chehab,
	Gustavo A. R. Silva, Andy Shevchenko, Greg Kroah-Hartman,
	Mauro Carvalho Chehab, Sakari Ailus, devel, linux-kernel

There are still some warnings produced by -Wsuggest-attribute=format,
like this one:

	drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c: In function ‘dtrace_dot’:
	drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c:2466:2: warning: function ‘dtrace_dot’ might be a candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format]
	 2466 |  ia_css_debug_vdtrace(IA_CSS_DEBUG_INFO, fmt, ap);
	      |  ^~~~~~~~~~~~~~~~~~~~

Also, on some places, is is using __atribute, while on others it
is using the __printf() macro.

Uniform those to always use the __printf() macro, placing it
before the function, and fix the logic in order to cleanup
all such warnings.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
 drivers/staging/media/atomisp/pci/atomisp_compat_css20.c | 7 +++----
 .../atomisp/pci/hive_isp_css_include/print_support.h     | 3 +--
 drivers/staging/media/atomisp/pci/ia_css_env.h           | 4 ++--
 .../atomisp/pci/runtime/debug/interface/ia_css_debug.h   | 9 +++++----
 .../media/atomisp/pci/runtime/debug/src/ia_css_debug.c   | 3 +--
 drivers/staging/media/atomisp/pci/sh_css.c               | 2 +-
 drivers/staging/media/atomisp/pci/sh_css_internal.h      | 8 +++-----
 7 files changed, 16 insertions(+), 20 deletions(-)

diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
index 85b39de7bc28..faa0935e536a 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
@@ -159,15 +159,14 @@ static void atomisp_css2_hw_load(hrt_address addr, void *to, uint32_t n)
 	spin_unlock_irqrestore(&mmio_lock, flags);
 }
 
-static int  __attribute__((format (printf, 1, 0)))
-atomisp_css2_dbg_ftrace_print(const char *fmt, va_list args)
+static int  __printf(1, 0) atomisp_css2_dbg_ftrace_print(const char *fmt,
+							 va_list args)
 {
 	ftrace_vprintk(fmt, args);
 	return 0;
 }
 
-static int  __attribute__((format (printf, 1, 0)))
-atomisp_vprintk(const char *fmt, va_list args)
+static int  __printf(1, 0) atomisp_vprintk(const char *fmt, va_list args)
 {
 	vprintk(fmt, args);
 	return 0;
diff --git a/drivers/staging/media/atomisp/pci/hive_isp_css_include/print_support.h b/drivers/staging/media/atomisp/pci/hive_isp_css_include/print_support.h
index 749f5c3725bd..540b405cc0f7 100644
--- a/drivers/staging/media/atomisp/pci/hive_isp_css_include/print_support.h
+++ b/drivers/staging/media/atomisp/pci/hive_isp_css_include/print_support.h
@@ -20,8 +20,7 @@
 
 extern int (*sh_css_printf)(const char *fmt, va_list args);
 /* depends on host supplied print function in ia_css_init() */
-static inline  __attribute__((format (printf, 1, 0)))
-void ia_css_print(const char *fmt, ...)
+static inline  __printf(1, 2) void ia_css_print(const char *fmt, ...)
 {
 	va_list ap;
 
diff --git a/drivers/staging/media/atomisp/pci/ia_css_env.h b/drivers/staging/media/atomisp/pci/ia_css_env.h
index 9808ff9e0492..6b38723b27cd 100644
--- a/drivers/staging/media/atomisp/pci/ia_css_env.h
+++ b/drivers/staging/media/atomisp/pci/ia_css_env.h
@@ -75,9 +75,9 @@ struct ia_css_hw_access_env {
 /* Environment with function pointers to print error and debug messages.
  */
 struct ia_css_print_env {
-	int (*debug_print)(const char *fmt, va_list args) __attribute__((format (printf, 1, 0)));
+	int  __printf(1, 0) (*debug_print)(const char *fmt, va_list args);
 	/** Print a debug message. */
-	int (*error_print)(const char *fmt, va_list args) __attribute__((format (printf, 1, 0)));
+	int  __printf(1, 0) (*error_print)(const char *fmt, va_list args);
 	/** Print an error message.*/
 };
 
diff --git a/drivers/staging/media/atomisp/pci/runtime/debug/interface/ia_css_debug.h b/drivers/staging/media/atomisp/pci/runtime/debug/interface/ia_css_debug.h
index 0f9b7eb17647..5e6e7447ae00 100644
--- a/drivers/staging/media/atomisp/pci/runtime/debug/interface/ia_css_debug.h
+++ b/drivers/staging/media/atomisp/pci/runtime/debug/interface/ia_css_debug.h
@@ -129,15 +129,16 @@ enum ia_css_debug_enable_param_dump {
  * @param[in]	fmt		printf like format string
  * @param[in]	args		arguments for the format string
  */
-static inline void
-ia_css_debug_vdtrace(unsigned int level, const char *fmt, va_list args)
+static inline void __printf(2, 0) ia_css_debug_vdtrace(unsigned int level,
+						       const char *fmt,
+						       va_list args)
 {
 	if (dbg_level >= level)
 		sh_css_vprint(fmt, args);
 }
 
-__printf(2, 3)
-void ia_css_debug_dtrace(unsigned int level, const char *fmt, ...);
+__printf(2, 3) void ia_css_debug_dtrace(unsigned int level,
+					const char *fmt, ...);
 
 /*! @brief Dump sp thread's stack contents
  * SP thread's stack contents are set to 0xcafecafe. This function dumps the
diff --git a/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c b/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
index 4f637e7219a6..05ce0f73f5ae 100644
--- a/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
+++ b/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
@@ -2454,8 +2454,7 @@ ia_css_debug_mode_enable_dma_channel(int dma_id,
 	return rc;
 }
 
-static
-void dtrace_dot(const char *fmt, ...)
+static void __printf(1, 2) dtrace_dot(const char *fmt, ...)
 {
 	va_list ap;
 
diff --git a/drivers/staging/media/atomisp/pci/sh_css.c b/drivers/staging/media/atomisp/pci/sh_css.c
index c50b5fba7b86..e8c5caf3dfe6 100644
--- a/drivers/staging/media/atomisp/pci/sh_css.c
+++ b/drivers/staging/media/atomisp/pci/sh_css.c
@@ -111,7 +111,7 @@ static int thread_alive;
 
 struct sh_css my_css;
 
-int (*sh_css_printf)(const char *fmt, va_list args) = NULL;
+int  __printf(1, 0) (*sh_css_printf)(const char *fmt, va_list args) = NULL;
 
 /* modes of work: stream_create and stream_destroy will update the save/restore data
    only when in working mode, not suspend/resume
diff --git a/drivers/staging/media/atomisp/pci/sh_css_internal.h b/drivers/staging/media/atomisp/pci/sh_css_internal.h
index 415353ceb7f6..3c669ec79b68 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_internal.h
+++ b/drivers/staging/media/atomisp/pci/sh_css_internal.h
@@ -907,10 +907,9 @@ struct host_sp_queues {
 #define SIZE_OF_HOST_SP_QUEUES_STRUCT		\
 	(SIZE_OF_QUEUES_ELEMS + SIZE_OF_QUEUES_DESC)
 
-extern int (*sh_css_printf)(const char *fmt, va_list args);
+extern int  __printf(1, 0) (*sh_css_printf)(const char *fmt, va_list args);
 
-static inline void
-sh_css_print(const char *fmt, ...)
+static inline void  __printf(1, 2) sh_css_print(const char *fmt, ...)
 {
 	va_list ap;
 
@@ -921,8 +920,7 @@ sh_css_print(const char *fmt, ...)
 	}
 }
 
-static inline void
-sh_css_vprint(const char *fmt, va_list args)
+static inline void  __printf(1, 0) sh_css_vprint(const char *fmt, va_list args)
 {
 	if (sh_css_printf)
 		sh_css_printf(fmt, args);
-- 
2.26.2


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

* [PATCH 2/2] media: atomisp: cleanup __printf() atributes on printk messages
@ 2020-09-23  8:22   ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 6+ messages in thread
From: Mauro Carvalho Chehab @ 2020-09-23  8:22 UTC (permalink / raw)
  To: Linux Media Mailing List
  Cc: devel, Mauro Carvalho Chehab, Mauro Carvalho Chehab,
	Greg Kroah-Hartman, linuxarm, Gustavo A. R. Silva, Sakari Ailus,
	mauro.chehab, Andy Shevchenko, linux-kernel

There are still some warnings produced by -Wsuggest-attribute=format,
like this one:

	drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c: In function ‘dtrace_dot’:
	drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c:2466:2: warning: function ‘dtrace_dot’ might be a candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format]
	 2466 |  ia_css_debug_vdtrace(IA_CSS_DEBUG_INFO, fmt, ap);
	      |  ^~~~~~~~~~~~~~~~~~~~

Also, on some places, is is using __atribute, while on others it
is using the __printf() macro.

Uniform those to always use the __printf() macro, placing it
before the function, and fix the logic in order to cleanup
all such warnings.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
 drivers/staging/media/atomisp/pci/atomisp_compat_css20.c | 7 +++----
 .../atomisp/pci/hive_isp_css_include/print_support.h     | 3 +--
 drivers/staging/media/atomisp/pci/ia_css_env.h           | 4 ++--
 .../atomisp/pci/runtime/debug/interface/ia_css_debug.h   | 9 +++++----
 .../media/atomisp/pci/runtime/debug/src/ia_css_debug.c   | 3 +--
 drivers/staging/media/atomisp/pci/sh_css.c               | 2 +-
 drivers/staging/media/atomisp/pci/sh_css_internal.h      | 8 +++-----
 7 files changed, 16 insertions(+), 20 deletions(-)

diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
index 85b39de7bc28..faa0935e536a 100644
--- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
+++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
@@ -159,15 +159,14 @@ static void atomisp_css2_hw_load(hrt_address addr, void *to, uint32_t n)
 	spin_unlock_irqrestore(&mmio_lock, flags);
 }
 
-static int  __attribute__((format (printf, 1, 0)))
-atomisp_css2_dbg_ftrace_print(const char *fmt, va_list args)
+static int  __printf(1, 0) atomisp_css2_dbg_ftrace_print(const char *fmt,
+							 va_list args)
 {
 	ftrace_vprintk(fmt, args);
 	return 0;
 }
 
-static int  __attribute__((format (printf, 1, 0)))
-atomisp_vprintk(const char *fmt, va_list args)
+static int  __printf(1, 0) atomisp_vprintk(const char *fmt, va_list args)
 {
 	vprintk(fmt, args);
 	return 0;
diff --git a/drivers/staging/media/atomisp/pci/hive_isp_css_include/print_support.h b/drivers/staging/media/atomisp/pci/hive_isp_css_include/print_support.h
index 749f5c3725bd..540b405cc0f7 100644
--- a/drivers/staging/media/atomisp/pci/hive_isp_css_include/print_support.h
+++ b/drivers/staging/media/atomisp/pci/hive_isp_css_include/print_support.h
@@ -20,8 +20,7 @@
 
 extern int (*sh_css_printf)(const char *fmt, va_list args);
 /* depends on host supplied print function in ia_css_init() */
-static inline  __attribute__((format (printf, 1, 0)))
-void ia_css_print(const char *fmt, ...)
+static inline  __printf(1, 2) void ia_css_print(const char *fmt, ...)
 {
 	va_list ap;
 
diff --git a/drivers/staging/media/atomisp/pci/ia_css_env.h b/drivers/staging/media/atomisp/pci/ia_css_env.h
index 9808ff9e0492..6b38723b27cd 100644
--- a/drivers/staging/media/atomisp/pci/ia_css_env.h
+++ b/drivers/staging/media/atomisp/pci/ia_css_env.h
@@ -75,9 +75,9 @@ struct ia_css_hw_access_env {
 /* Environment with function pointers to print error and debug messages.
  */
 struct ia_css_print_env {
-	int (*debug_print)(const char *fmt, va_list args) __attribute__((format (printf, 1, 0)));
+	int  __printf(1, 0) (*debug_print)(const char *fmt, va_list args);
 	/** Print a debug message. */
-	int (*error_print)(const char *fmt, va_list args) __attribute__((format (printf, 1, 0)));
+	int  __printf(1, 0) (*error_print)(const char *fmt, va_list args);
 	/** Print an error message.*/
 };
 
diff --git a/drivers/staging/media/atomisp/pci/runtime/debug/interface/ia_css_debug.h b/drivers/staging/media/atomisp/pci/runtime/debug/interface/ia_css_debug.h
index 0f9b7eb17647..5e6e7447ae00 100644
--- a/drivers/staging/media/atomisp/pci/runtime/debug/interface/ia_css_debug.h
+++ b/drivers/staging/media/atomisp/pci/runtime/debug/interface/ia_css_debug.h
@@ -129,15 +129,16 @@ enum ia_css_debug_enable_param_dump {
  * @param[in]	fmt		printf like format string
  * @param[in]	args		arguments for the format string
  */
-static inline void
-ia_css_debug_vdtrace(unsigned int level, const char *fmt, va_list args)
+static inline void __printf(2, 0) ia_css_debug_vdtrace(unsigned int level,
+						       const char *fmt,
+						       va_list args)
 {
 	if (dbg_level >= level)
 		sh_css_vprint(fmt, args);
 }
 
-__printf(2, 3)
-void ia_css_debug_dtrace(unsigned int level, const char *fmt, ...);
+__printf(2, 3) void ia_css_debug_dtrace(unsigned int level,
+					const char *fmt, ...);
 
 /*! @brief Dump sp thread's stack contents
  * SP thread's stack contents are set to 0xcafecafe. This function dumps the
diff --git a/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c b/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
index 4f637e7219a6..05ce0f73f5ae 100644
--- a/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
+++ b/drivers/staging/media/atomisp/pci/runtime/debug/src/ia_css_debug.c
@@ -2454,8 +2454,7 @@ ia_css_debug_mode_enable_dma_channel(int dma_id,
 	return rc;
 }
 
-static
-void dtrace_dot(const char *fmt, ...)
+static void __printf(1, 2) dtrace_dot(const char *fmt, ...)
 {
 	va_list ap;
 
diff --git a/drivers/staging/media/atomisp/pci/sh_css.c b/drivers/staging/media/atomisp/pci/sh_css.c
index c50b5fba7b86..e8c5caf3dfe6 100644
--- a/drivers/staging/media/atomisp/pci/sh_css.c
+++ b/drivers/staging/media/atomisp/pci/sh_css.c
@@ -111,7 +111,7 @@ static int thread_alive;
 
 struct sh_css my_css;
 
-int (*sh_css_printf)(const char *fmt, va_list args) = NULL;
+int  __printf(1, 0) (*sh_css_printf)(const char *fmt, va_list args) = NULL;
 
 /* modes of work: stream_create and stream_destroy will update the save/restore data
    only when in working mode, not suspend/resume
diff --git a/drivers/staging/media/atomisp/pci/sh_css_internal.h b/drivers/staging/media/atomisp/pci/sh_css_internal.h
index 415353ceb7f6..3c669ec79b68 100644
--- a/drivers/staging/media/atomisp/pci/sh_css_internal.h
+++ b/drivers/staging/media/atomisp/pci/sh_css_internal.h
@@ -907,10 +907,9 @@ struct host_sp_queues {
 #define SIZE_OF_HOST_SP_QUEUES_STRUCT		\
 	(SIZE_OF_QUEUES_ELEMS + SIZE_OF_QUEUES_DESC)
 
-extern int (*sh_css_printf)(const char *fmt, va_list args);
+extern int  __printf(1, 0) (*sh_css_printf)(const char *fmt, va_list args);
 
-static inline void
-sh_css_print(const char *fmt, ...)
+static inline void  __printf(1, 2) sh_css_print(const char *fmt, ...)
 {
 	va_list ap;
 
@@ -921,8 +920,7 @@ sh_css_print(const char *fmt, ...)
 	}
 }
 
-static inline void
-sh_css_vprint(const char *fmt, va_list args)
+static inline void  __printf(1, 0) sh_css_vprint(const char *fmt, va_list args)
 {
 	if (sh_css_printf)
 		sh_css_printf(fmt, args);
-- 
2.26.2

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

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

* RE: [PATCH 1/2] media: atomisp: fix gcc warnings
  2020-09-23  8:21 ` Mauro Carvalho Chehab
@ 2020-09-23  8:33   ` David Laight
  -1 siblings, 0 replies; 6+ messages in thread
From: David Laight @ 2020-09-23  8:33 UTC (permalink / raw)
  To: 'Mauro Carvalho Chehab', Linux Media Mailing List
  Cc: linuxarm, mauro.chehab, Gustavo A. R. Silva, Andy Shevchenko,
	Greg Kroah-Hartman, Mauro Carvalho Chehab, Sakari Ailus, devel,
	linux-kernel

From: Mauro Carvalho Chehab
> Sent: 23 September 2020 09:22
> 
> Depending on the gcc version, after changeset
> 72a9ff3bf7fb ("media: atomisp: get rid of -Wsuggest-attribute=format warnings"),
> we're now getting two warnings, which are breaking the Jenkins
> CI instance at https://builder.linuxtv.org:
> 
> 	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c: In function ‘__set_css_print_env’:
> 	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c:860:50: error: assignment to ‘int
> (*)(const char *, char *)’ from incompatible pointer type ‘int (__attribute__((regparm(0))) *)(const
> char *, char *)’ [-Werror=incompatible-pointer-types]
> 	   isp->css_env.isp_css_env.print_env.debug_print = vprintk;
> 	                                                  ^
> 	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c: In function
> ‘atomisp_css_load_firmware’:
> 	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c:893:49: error: assignment to ‘int
> (*)(const char *, char *)’ from incompatible pointer type ‘int (__attribute__((regparm(0))) *)(const
> char *, char *)’ [-Werror=incompatible-pointer-types]
> 	  isp->css_env.isp_css_env.print_env.error_print = vprintk;
>                                                  ^
> 	cc1: some warnings being treated as errors
> 
> So, we need to partially revert the patch.

That looks like completely the wrong commit message.
From the error message it looks like vprintk() is using a non-standard
calling convention '__attribute__((regparm(0)))' so can't be assigned
to 'debug_print' - which expects the normal convention.

The fix is correct though.

	David

> 
> Fixes: 72a9ff3bf7fb ("media: atomisp: get rid of -Wsuggest-attribute=format warnings")
> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> ---
>  .../staging/media/atomisp/pci/atomisp_compat_css20.c  | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> index 28796ec177e3..85b39de7bc28 100644
> --- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> +++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> @@ -166,6 +166,13 @@ atomisp_css2_dbg_ftrace_print(const char *fmt, va_list args)
>  	return 0;
>  }
> 
> +static int  __attribute__((format (printf, 1, 0)))
> +atomisp_vprintk(const char *fmt, va_list args)
> +{
> +	vprintk(fmt, args);
> +	return 0;
> +}
> +
>  void atomisp_load_uint32(hrt_address addr, uint32_t *data)
>  {
>  	*data = atomisp_css2_hw_load_32(addr);
> @@ -857,7 +864,7 @@ static inline int __set_css_print_env(struct atomisp_device *isp, int opt)
>  		isp->css_env.isp_css_env.print_env.debug_print =
>  		    atomisp_css2_dbg_ftrace_print;
>  	else if (opt == 2)
> -		isp->css_env.isp_css_env.print_env.debug_print = vprintk;
> +		isp->css_env.isp_css_env.print_env.debug_print = atomisp_vprintk;
>  	else
>  		ret = -EINVAL;
> 
> @@ -890,7 +897,7 @@ int atomisp_css_load_firmware(struct atomisp_device *isp)
> 
>  	__set_css_print_env(isp, dbg_func);
> 
> -	isp->css_env.isp_css_env.print_env.error_print = vprintk;
> +	isp->css_env.isp_css_env.print_env.error_print = atomisp_vprintk;
> 
>  	/* load isp fw into ISP memory */
>  	err = ia_css_load_firmware(isp->dev, &isp->css_env.isp_css_env,
> --
> 2.26.2

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)

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

* RE: [PATCH 1/2] media: atomisp: fix gcc warnings
@ 2020-09-23  8:33   ` David Laight
  0 siblings, 0 replies; 6+ messages in thread
From: David Laight @ 2020-09-23  8:33 UTC (permalink / raw)
  To: 'Mauro Carvalho Chehab', Linux Media Mailing List
  Cc: devel, Andy Shevchenko, Greg Kroah-Hartman, linuxarm,
	Gustavo A. R. Silva, Sakari Ailus, mauro.chehab,
	Mauro Carvalho Chehab, linux-kernel

From: Mauro Carvalho Chehab
> Sent: 23 September 2020 09:22
> 
> Depending on the gcc version, after changeset
> 72a9ff3bf7fb ("media: atomisp: get rid of -Wsuggest-attribute=format warnings"),
> we're now getting two warnings, which are breaking the Jenkins
> CI instance at https://builder.linuxtv.org:
> 
> 	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c: In function ‘__set_css_print_env’:
> 	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c:860:50: error: assignment to ‘int
> (*)(const char *, char *)’ from incompatible pointer type ‘int (__attribute__((regparm(0))) *)(const
> char *, char *)’ [-Werror=incompatible-pointer-types]
> 	   isp->css_env.isp_css_env.print_env.debug_print = vprintk;
> 	                                                  ^
> 	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c: In function
> ‘atomisp_css_load_firmware’:
> 	../drivers/staging/media/atomisp/pci/atomisp_compat_css20.c:893:49: error: assignment to ‘int
> (*)(const char *, char *)’ from incompatible pointer type ‘int (__attribute__((regparm(0))) *)(const
> char *, char *)’ [-Werror=incompatible-pointer-types]
> 	  isp->css_env.isp_css_env.print_env.error_print = vprintk;
>                                                  ^
> 	cc1: some warnings being treated as errors
> 
> So, we need to partially revert the patch.

That looks like completely the wrong commit message.
From the error message it looks like vprintk() is using a non-standard
calling convention '__attribute__((regparm(0)))' so can't be assigned
to 'debug_print' - which expects the normal convention.

The fix is correct though.

	David

> 
> Fixes: 72a9ff3bf7fb ("media: atomisp: get rid of -Wsuggest-attribute=format warnings")
> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> ---
>  .../staging/media/atomisp/pci/atomisp_compat_css20.c  | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> index 28796ec177e3..85b39de7bc28 100644
> --- a/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> +++ b/drivers/staging/media/atomisp/pci/atomisp_compat_css20.c
> @@ -166,6 +166,13 @@ atomisp_css2_dbg_ftrace_print(const char *fmt, va_list args)
>  	return 0;
>  }
> 
> +static int  __attribute__((format (printf, 1, 0)))
> +atomisp_vprintk(const char *fmt, va_list args)
> +{
> +	vprintk(fmt, args);
> +	return 0;
> +}
> +
>  void atomisp_load_uint32(hrt_address addr, uint32_t *data)
>  {
>  	*data = atomisp_css2_hw_load_32(addr);
> @@ -857,7 +864,7 @@ static inline int __set_css_print_env(struct atomisp_device *isp, int opt)
>  		isp->css_env.isp_css_env.print_env.debug_print =
>  		    atomisp_css2_dbg_ftrace_print;
>  	else if (opt == 2)
> -		isp->css_env.isp_css_env.print_env.debug_print = vprintk;
> +		isp->css_env.isp_css_env.print_env.debug_print = atomisp_vprintk;
>  	else
>  		ret = -EINVAL;
> 
> @@ -890,7 +897,7 @@ int atomisp_css_load_firmware(struct atomisp_device *isp)
> 
>  	__set_css_print_env(isp, dbg_func);
> 
> -	isp->css_env.isp_css_env.print_env.error_print = vprintk;
> +	isp->css_env.isp_css_env.print_env.error_print = atomisp_vprintk;
> 
>  	/* load isp fw into ISP memory */
>  	err = ia_css_load_firmware(isp->dev, &isp->css_env.isp_css_env,
> --
> 2.26.2

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

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

end of thread, other threads:[~2020-09-23  8:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-23  8:21 [PATCH 1/2] media: atomisp: fix gcc warnings Mauro Carvalho Chehab
2020-09-23  8:21 ` Mauro Carvalho Chehab
2020-09-23  8:22 ` [PATCH 2/2] media: atomisp: cleanup __printf() atributes on printk messages Mauro Carvalho Chehab
2020-09-23  8:22   ` Mauro Carvalho Chehab
2020-09-23  8:33 ` [PATCH 1/2] media: atomisp: fix gcc warnings David Laight
2020-09-23  8:33   ` David Laight

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.