Linux-EDAC Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v3 0/2] Add an API for edac device, for mulriple errors
@ 2019-09-19 17:17 Hanna Hawa
  2019-09-19 17:17 ` [PATCH v3 1/2] edac: Add an API for edac device to report for multiple errors Hanna Hawa
  2019-09-19 17:17 ` [PATCH v3 2/2] edac: move edac_device_handle_*() API functions to header Hanna Hawa
  0 siblings, 2 replies; 8+ messages in thread
From: Hanna Hawa @ 2019-09-19 17:17 UTC (permalink / raw)
  To: bp, mchehab, james.morse, rrichter
  Cc: linux-edac, linux-kernel, dwmw, benh, ronenk, talel, jonnyc,
	hanochu, hhhawa

Add an API for EDAC device to report for multiple errors, and move the
old report function to use the new API.

Changes from v2:
----------------
- Remove copy of edac_device_handle_*() functions, modify the existing
functions.

Changes from v1:
----------------
- use 'unsigned int' instead of u16
- update variable name to be count
- remove WARN_ON and simply exit if count is zero
- add inline functions in header file

Hanna Hawa (2):
  edac: Add an API for edac device to report for multiple errors
  edac: move edac_device_handle_*() API functions to header

 drivers/edac/edac_device.c | 50 +++++++++++++++++-------------
 drivers/edac/edac_device.h | 63 ++++++++++++++++++++++++++++----------
 2 files changed, 76 insertions(+), 37 deletions(-)

-- 
2.17.1


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

* [PATCH v3 1/2] edac: Add an API for edac device to report for multiple errors
  2019-09-19 17:17 [PATCH v3 0/2] Add an API for edac device, for mulriple errors Hanna Hawa
@ 2019-09-19 17:17 ` Hanna Hawa
  2019-09-20  6:42   ` Robert Richter
  2019-09-21 15:28   ` kbuild test robot
  2019-09-19 17:17 ` [PATCH v3 2/2] edac: move edac_device_handle_*() API functions to header Hanna Hawa
  1 sibling, 2 replies; 8+ messages in thread
From: Hanna Hawa @ 2019-09-19 17:17 UTC (permalink / raw)
  To: bp, mchehab, james.morse, rrichter
  Cc: linux-edac, linux-kernel, dwmw, benh, ronenk, talel, jonnyc,
	hanochu, hhhawa

Add an API for EDAC device to report multiple errors with same type.

Signed-off-by: Hanna Hawa <hhhawa@amazon.com>
---
 drivers/edac/edac_device.c | 62 ++++++++++++++++++++++++++------------
 drivers/edac/edac_device.h | 40 ++++++++++++++++++++++++
 2 files changed, 82 insertions(+), 20 deletions(-)

diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
index 65cf2b9355c4..866934f2bcb0 100644
--- a/drivers/edac/edac_device.c
+++ b/drivers/edac/edac_device.c
@@ -555,12 +555,16 @@ static inline int edac_device_get_panic_on_ue(struct edac_device_ctl_info
 	return edac_dev->panic_on_ue;
 }
 
-void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
-			int inst_nr, int block_nr, const char *msg)
+void __edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
+			     unsigned int count, int inst_nr, int block_nr,
+			     const char *msg)
 {
 	struct edac_device_instance *instance;
 	struct edac_device_block *block = NULL;
 
+	if (!count)
+		return;
+
 	if ((inst_nr >= edac_dev->nr_instances) || (inst_nr < 0)) {
 		edac_device_printk(edac_dev, KERN_ERR,
 				"INTERNAL ERROR: 'instance' out of range "
@@ -582,27 +586,31 @@ void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
 
 	if (instance->nr_blocks > 0) {
 		block = instance->blocks + block_nr;
-		block->counters.ce_count++;
+		block->counters.ce_count += count;
 	}
 
 	/* Propagate the count up the 'totals' tree */
-	instance->counters.ce_count++;
-	edac_dev->counters.ce_count++;
+	instance->counters.ce_count += count;
+	edac_dev->counters.ce_count += count;
 
 	if (edac_device_get_log_ce(edac_dev))
 		edac_device_printk(edac_dev, KERN_WARNING,
-				"CE: %s instance: %s block: %s '%s'\n",
-				edac_dev->ctl_name, instance->name,
-				block ? block->name : "N/A", msg);
+				   "CE: %s instance: %s block: %s count: %d '%s'\n",
+				   edac_dev->ctl_name, instance->name,
+				   block ? block->name : "N/A", count, msg);
 }
-EXPORT_SYMBOL_GPL(edac_device_handle_ce);
+EXPORT_SYMBOL_GPL(__edac_device_handle_ce);
 
-void edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
-			int inst_nr, int block_nr, const char *msg)
+void __edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
+			     unsigned int count, int inst_nr, int block_nr,
+			     const char *msg)
 {
 	struct edac_device_instance *instance;
 	struct edac_device_block *block = NULL;
 
+	if (!count)
+		return;
+
 	if ((inst_nr >= edac_dev->nr_instances) || (inst_nr < 0)) {
 		edac_device_printk(edac_dev, KERN_ERR,
 				"INTERNAL ERROR: 'instance' out of range "
@@ -624,22 +632,36 @@ void edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
 
 	if (instance->nr_blocks > 0) {
 		block = instance->blocks + block_nr;
-		block->counters.ue_count++;
+		block->counters.ue_count += count;
 	}
 
 	/* Propagate the count up the 'totals' tree */
-	instance->counters.ue_count++;
-	edac_dev->counters.ue_count++;
+	instance->counters.ue_count += count;
+	edac_dev->counters.ue_count += count;
 
 	if (edac_device_get_log_ue(edac_dev))
 		edac_device_printk(edac_dev, KERN_EMERG,
-				"UE: %s instance: %s block: %s '%s'\n",
-				edac_dev->ctl_name, instance->name,
-				block ? block->name : "N/A", msg);
+				   "UE: %s instance: %s block: %s count: %d '%s'\n",
+				   edac_dev->ctl_name, instance->name,
+				   block ? block->name : "N/A", count, msg);
 
 	if (edac_device_get_panic_on_ue(edac_dev))
-		panic("EDAC %s: UE instance: %s block %s '%s'\n",
-			edac_dev->ctl_name, instance->name,
-			block ? block->name : "N/A", msg);
+		panic("EDAC %s: UE instance: %s block %s count: %d '%s'\n",
+		      edac_dev->ctl_name, instance->name,
+		      block ? block->name : "N/A", count, msg);
+}
+EXPORT_SYMBOL_GPL(__edac_device_handle_ue);
+
+void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
+			int inst_nr, int block_nr, const char *msg)
+{
+	__edac_device_handle_ce(edac_dev, 1, inst_nr, block_nr, msg);
+}
+EXPORT_SYMBOL_GPL(edac_device_handle_ce);
+
+void edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
+			int inst_nr, int block_nr, const char *msg)
+{
+	__edac_device_handle_ue(edac_dev, 1, inst_nr, block_nr, msg);
 }
 EXPORT_SYMBOL_GPL(edac_device_handle_ue);
diff --git a/drivers/edac/edac_device.h b/drivers/edac/edac_device.h
index 1aaba74ae411..30dc5f5979c8 100644
--- a/drivers/edac/edac_device.h
+++ b/drivers/edac/edac_device.h
@@ -317,4 +317,44 @@ extern void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
 extern int edac_device_alloc_index(void);
 extern const char *edac_layer_name[];
 
+/**
+ * __edac_device_handle_ue():
+ *	perform a common output and handling of an 'edac_dev' UE event
+ *
+ * @edac_dev: pointer to struct &edac_device_ctl_info
+ * @error_count: number of errors of the same type
+ * @inst_nr: number of the instance where the UE error happened
+ * @block_nr: number of the block where the UE error happened
+ * @msg: message to be printed
+ */
+void __edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
+				    unsigned int count, int inst_nr,
+				    int block_nr, const char *msg);
+/**
+ * __edac_device_handle_ce():
+ *	perform a common output and handling of an 'edac_dev' CE event
+ *
+ * @edac_dev: pointer to struct &edac_device_ctl_info
+ * @error_count: number of errors of the same type
+ * @inst_nr: number of the instance where the CE error happened
+ * @block_nr: number of the block where the CE error happened
+ * @msg: message to be printed
+ */
+void __edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
+				    unsigned int count, int inst_nr,
+				    int block_nr, const char *msg);
+
+static inline void edac_device_handle_ce_count(struct edac_device_ctl_info *edac_dev,
+					       unsigned int count, int inst_nr,
+					       int block_nr, const char *msg)
+{
+	__edac_device_handle_ce(edac_dev, count, inst_nr, block_nr, msg);
+}
+
+static inline void edac_device_handle_ue_count(struct edac_device_ctl_info *edac_dev,
+					       unsigned int count, int inst_nr,
+					       int block_nr, const char *msg)
+{
+	__edac_device_handle_ue(edac_dev, count, inst_nr, block_nr, msg);
+}
 #endif
-- 
2.17.1


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

* [PATCH v3 2/2] edac: move edac_device_handle_*() API functions to header
  2019-09-19 17:17 [PATCH v3 0/2] Add an API for edac device, for mulriple errors Hanna Hawa
  2019-09-19 17:17 ` [PATCH v3 1/2] edac: Add an API for edac device to report for multiple errors Hanna Hawa
@ 2019-09-19 17:17 ` Hanna Hawa
  2019-09-20  6:49   ` Robert Richter
  1 sibling, 1 reply; 8+ messages in thread
From: Hanna Hawa @ 2019-09-19 17:17 UTC (permalink / raw)
  To: bp, mchehab, james.morse, rrichter
  Cc: linux-edac, linux-kernel, dwmw, benh, ronenk, talel, jonnyc,
	hanochu, hhhawa

Move edac_device_handle_*() functions from source file to header file as
inline funtcion that use the new API with single error.

Signed-off-by: Hanna Hawa <hhhawa@amazon.com>
---
 drivers/edac/edac_device.c | 14 --------------
 drivers/edac/edac_device.h | 37 ++++++++++++++-----------------------
 2 files changed, 14 insertions(+), 37 deletions(-)

diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
index 866934f2bcb0..d54223594916 100644
--- a/drivers/edac/edac_device.c
+++ b/drivers/edac/edac_device.c
@@ -651,17 +651,3 @@ void __edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
 		      block ? block->name : "N/A", count, msg);
 }
 EXPORT_SYMBOL_GPL(__edac_device_handle_ue);
-
-void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
-			int inst_nr, int block_nr, const char *msg)
-{
-	__edac_device_handle_ce(edac_dev, 1, inst_nr, block_nr, msg);
-}
-EXPORT_SYMBOL_GPL(edac_device_handle_ce);
-
-void edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
-			int inst_nr, int block_nr, const char *msg)
-{
-	__edac_device_handle_ue(edac_dev, 1, inst_nr, block_nr, msg);
-}
-EXPORT_SYMBOL_GPL(edac_device_handle_ue);
diff --git a/drivers/edac/edac_device.h b/drivers/edac/edac_device.h
index 30dc5f5979c8..796ea134a691 100644
--- a/drivers/edac/edac_device.h
+++ b/drivers/edac/edac_device.h
@@ -285,29 +285,6 @@ extern int edac_device_add_device(struct edac_device_ctl_info *edac_dev);
  */
 extern struct edac_device_ctl_info *edac_device_del_device(struct device *dev);
 
-/**
- * edac_device_handle_ue():
- *	perform a common output and handling of an 'edac_dev' UE event
- *
- * @edac_dev: pointer to struct &edac_device_ctl_info
- * @inst_nr: number of the instance where the UE error happened
- * @block_nr: number of the block where the UE error happened
- * @msg: message to be printed
- */
-extern void edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
-				int inst_nr, int block_nr, const char *msg);
-/**
- * edac_device_handle_ce():
- *	perform a common output and handling of an 'edac_dev' CE event
- *
- * @edac_dev: pointer to struct &edac_device_ctl_info
- * @inst_nr: number of the instance where the CE error happened
- * @block_nr: number of the block where the CE error happened
- * @msg: message to be printed
- */
-extern void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
-				int inst_nr, int block_nr, const char *msg);
-
 /**
  * edac_device_alloc_index: Allocate a unique device index number
  *
@@ -357,4 +334,18 @@ static inline void edac_device_handle_ue_count(struct edac_device_ctl_info *edac
 {
 	__edac_device_handle_ue(edac_dev, count, inst_nr, block_nr, msg);
 }
+
+static inline void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
+					 int inst_nr, int block_nr,
+					 const char *msg)
+{
+	__edac_device_handle_ce(edac_dev, 1, inst_nr, block_nr, msg);
+}
+
+static inline void edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
+					 int inst_nr, int block_nr,
+					 const char *msg)
+{
+	__edac_device_handle_ue(edac_dev, 1, inst_nr, block_nr, msg);
+}
 #endif
-- 
2.17.1


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

* Re: [PATCH v3 1/2] edac: Add an API for edac device to report for multiple errors
  2019-09-19 17:17 ` [PATCH v3 1/2] edac: Add an API for edac device to report for multiple errors Hanna Hawa
@ 2019-09-20  6:42   ` Robert Richter
  2019-09-23 19:01     ` Hawa, Hanna
  2019-09-21 15:28   ` kbuild test robot
  1 sibling, 1 reply; 8+ messages in thread
From: Robert Richter @ 2019-09-20  6:42 UTC (permalink / raw)
  To: Hanna Hawa
  Cc: bp, mchehab, james.morse, linux-edac, linux-kernel, dwmw, benh,
	ronenk, talel, jonnyc, hanochu

On 19.09.19 18:17:12, Hanna Hawa wrote:
> Add an API for EDAC device to report multiple errors with same type.
> 
> Signed-off-by: Hanna Hawa <hhhawa@amazon.com>

With the change below it looks good to me:

Acked-by: Robert Richter <rrichter@marvell.com>

Thanks,

-Robert

> ---
>  drivers/edac/edac_device.c | 62 ++++++++++++++++++++++++++------------
>  drivers/edac/edac_device.h | 40 ++++++++++++++++++++++++
>  2 files changed, 82 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
> index 65cf2b9355c4..866934f2bcb0 100644
> --- a/drivers/edac/edac_device.c
> +++ b/drivers/edac/edac_device.c
> @@ -555,12 +555,16 @@ static inline int edac_device_get_panic_on_ue(struct edac_device_ctl_info
>  	return edac_dev->panic_on_ue;
>  }
>  
> -void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
> -			int inst_nr, int block_nr, const char *msg)
> +void __edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
> +			     unsigned int count, int inst_nr, int block_nr,
> +			     const char *msg)
>  {
>  	struct edac_device_instance *instance;
>  	struct edac_device_block *block = NULL;
>  
> +	if (!count)
> +		return;
> +

Those checks should be moved to the *_count() variants of both
functions.

[...]

> +static inline void edac_device_handle_ce_count(struct edac_device_ctl_info *edac_dev,
> +					       unsigned int count, int inst_nr,
> +					       int block_nr, const char *msg)
> +{

	if (count)
		...

> +	__edac_device_handle_ce(edac_dev, count, inst_nr, block_nr, msg);
> +}
> +
> +static inline void edac_device_handle_ue_count(struct edac_device_ctl_info *edac_dev,
> +					       unsigned int count, int inst_nr,
> +					       int block_nr, const char *msg)
> +{

Here too.

> +	__edac_device_handle_ue(edac_dev, count, inst_nr, block_nr, msg);
> +}

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

* Re: [PATCH v3 2/2] edac: move edac_device_handle_*() API functions to header
  2019-09-19 17:17 ` [PATCH v3 2/2] edac: move edac_device_handle_*() API functions to header Hanna Hawa
@ 2019-09-20  6:49   ` Robert Richter
  2019-09-23 19:01     ` Hawa, Hanna
  0 siblings, 1 reply; 8+ messages in thread
From: Robert Richter @ 2019-09-20  6:49 UTC (permalink / raw)
  To: Hanna Hawa
  Cc: bp, mchehab, james.morse, linux-edac, linux-kernel, dwmw, benh,
	ronenk, talel, jonnyc, hanochu

On 19.09.19 18:17:13, Hanna Hawa wrote:
> Move edac_device_handle_*() functions from source file to header file as
> inline funtcion that use the new API with single error.
> 
> Signed-off-by: Hanna Hawa <hhhawa@amazon.com>

With the changes below it looks good to me:

Acked-by: Robert Richter <rrichter@marvell.com>

Thanks,

-Robert

> diff --git a/drivers/edac/edac_device.h b/drivers/edac/edac_device.h
> index 30dc5f5979c8..796ea134a691 100644
> --- a/drivers/edac/edac_device.h
> +++ b/drivers/edac/edac_device.h
> @@ -285,29 +285,6 @@ extern int edac_device_add_device(struct edac_device_ctl_info *edac_dev);
>   */
>  extern struct edac_device_ctl_info *edac_device_del_device(struct device *dev);
>  
> -/**
> - * edac_device_handle_ue():
> - *	perform a common output and handling of an 'edac_dev' UE event
> - *
> - * @edac_dev: pointer to struct &edac_device_ctl_info
> - * @inst_nr: number of the instance where the UE error happened
> - * @block_nr: number of the block where the UE error happened
> - * @msg: message to be printed
> - */
> -extern void edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
> -				int inst_nr, int block_nr, const char *msg);
> -/**
> - * edac_device_handle_ce():
> - *	perform a common output and handling of an 'edac_dev' CE event
> - *
> - * @edac_dev: pointer to struct &edac_device_ctl_info
> - * @inst_nr: number of the instance where the CE error happened
> - * @block_nr: number of the block where the CE error happened
> - * @msg: message to be printed
> - */
> -extern void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
> -				int inst_nr, int block_nr, const char *msg);
> -

Just put in the inline replacement here.

>  /**
>   * edac_device_alloc_index: Allocate a unique device index number
>   *
> @@ -357,4 +334,18 @@ static inline void edac_device_handle_ue_count(struct edac_device_ctl_info *edac
>  {
>  	__edac_device_handle_ue(edac_dev, count, inst_nr, block_nr, msg);
>  }
> +
> +static inline void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
> +					 int inst_nr, int block_nr,

No need for this linebreak.

> +					 const char *msg)
> +{
> +	__edac_device_handle_ce(edac_dev, 1, inst_nr, block_nr, msg);
> +}
> +
> +static inline void edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
> +					 int inst_nr, int block_nr,

Same here.

> +					 const char *msg)
> +{
> +	__edac_device_handle_ue(edac_dev, 1, inst_nr, block_nr, msg);
> +}
>  #endif
> -- 
> 2.17.1
> 

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

* Re: [PATCH v3 1/2] edac: Add an API for edac device to report for multiple errors
  2019-09-19 17:17 ` [PATCH v3 1/2] edac: Add an API for edac device to report for multiple errors Hanna Hawa
  2019-09-20  6:42   ` Robert Richter
@ 2019-09-21 15:28   ` kbuild test robot
  1 sibling, 0 replies; 8+ messages in thread
From: kbuild test robot @ 2019-09-21 15:28 UTC (permalink / raw)
  To: Hanna Hawa
  Cc: kbuild-all, bp, mchehab, james.morse, rrichter, linux-edac,
	linux-kernel, dwmw, benh, ronenk, talel, jonnyc, hanochu, hhhawa

[-- Attachment #1: Type: text/plain, Size: 17105 bytes --]

Hi Hanna,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.3 next-20190919]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Hanna-Hawa/Add-an-API-for-edac-device-for-mulriple-errors/20190920-012316
reproduce: make htmldocs
:::::: branch date: 2 hours ago
:::::: commit date: 2 hours ago

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   Warning: The Sphinx 'sphinx_rtd_theme' HTML theme was not found. Make sure you have the theme installed to produce pretty HTML output. Falling back to the default theme.
   WARNING: dot(1) not found, for better output quality install graphviz from http://www.graphviz.org
   WARNING: convert(1) not found, for SVG to PDF conversion install ImageMagick (https://www.imagemagick.org)
   include/linux/lsm_hooks.h:1811: warning: Function parameter or member 'quotactl' not described in 'security_list_options'
   include/linux/lsm_hooks.h:1811: warning: Function parameter or member 'quota_on' not described in 'security_list_options'
   include/linux/lsm_hooks.h:1811: warning: Function parameter or member 'sb_free_mnt_opts' not described in 'security_list_options'
   include/linux/lsm_hooks.h:1811: warning: Function parameter or member 'sb_eat_lsm_opts' not described in 'security_list_options'
   include/linux/lsm_hooks.h:1811: warning: Function parameter or member 'sb_kern_mount' not described in 'security_list_options'
   include/linux/lsm_hooks.h:1811: warning: Function parameter or member 'sb_show_options' not described in 'security_list_options'
   include/linux/lsm_hooks.h:1811: warning: Function parameter or member 'sb_add_mnt_opt' not described in 'security_list_options'
   include/linux/lsm_hooks.h:1811: warning: Function parameter or member 'd_instantiate' not described in 'security_list_options'
   include/linux/lsm_hooks.h:1811: warning: Function parameter or member 'getprocattr' not described in 'security_list_options'
   include/linux/lsm_hooks.h:1811: warning: Function parameter or member 'setprocattr' not described in 'security_list_options'
>> drivers/edac/edac_device.h:332: warning: Function parameter or member 'count' not described in '__edac_device_handle_ue'
   drivers/edac/edac_device.h:332: warning: Excess function parameter 'error_count' description in '__edac_device_handle_ue'
>> drivers/edac/edac_device.h:345: warning: Function parameter or member 'count' not described in '__edac_device_handle_ce'
   drivers/edac/edac_device.h:345: warning: Excess function parameter 'error_count' description in '__edac_device_handle_ce'
   include/linux/regulator/machine.h:196: warning: Function parameter or member 'max_uV_step' not described in 'regulation_constraints'
   include/linux/regulator/driver.h:223: warning: Function parameter or member 'resume' not described in 'regulator_ops'
   include/linux/spi/spi.h:190: warning: Function parameter or member 'driver_override' not described in 'spi_device'
   fs/fs-writeback.c:913: warning: Excess function parameter 'nr_pages' description in 'cgroup_writeback_by_id'
   fs/direct-io.c:258: warning: Excess function parameter 'offset' description in 'dio_complete'
   fs/libfs.c:496: warning: Excess function parameter 'available' description in 'simple_write_end'
   fs/posix_acl.c:647: warning: Function parameter or member 'inode' not described in 'posix_acl_update_mode'
   fs/posix_acl.c:647: warning: Function parameter or member 'mode_p' not described in 'posix_acl_update_mode'
   fs/posix_acl.c:647: warning: Function parameter or member 'acl' not described in 'posix_acl_update_mode'
   drivers/usb/typec/bus.c:1: warning: 'typec_altmode_unregister_driver' not found
   drivers/usb/typec/bus.c:1: warning: 'typec_altmode_register_driver' not found
   drivers/usb/typec/class.c:1: warning: 'typec_altmode_unregister_notifier' not found
   drivers/usb/typec/class.c:1: warning: 'typec_altmode_register_notifier' not found
   include/linux/w1.h:277: warning: Function parameter or member 'of_match_table' not described in 'w1_family'
   include/linux/skbuff.h:888: warning: Function parameter or member 'dev_scratch' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'list' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'ip_defrag_offset' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'skb_mstamp_ns' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member '__cloned_offset' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'head_frag' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member '__pkt_type_offset' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'encapsulation' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'encap_hdr_csum' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'csum_valid' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member '__pkt_vlan_present_offset' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'vlan_present' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'csum_complete_sw' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'csum_level' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'inner_protocol_type' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'remcsum_offload' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'sender_cpu' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'reserved_tailroom' not described in 'sk_buff'
   include/linux/skbuff.h:888: warning: Function parameter or member 'inner_ipproto' not described in 'sk_buff'
   include/net/sock.h:233: warning: Function parameter or member 'skc_addrpair' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_portpair' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_ipv6only' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_net_refcnt' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_v6_daddr' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_v6_rcv_saddr' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_cookie' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_listener' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_tw_dr' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_rcv_wnd' not described in 'sock_common'
   include/net/sock.h:233: warning: Function parameter or member 'skc_tw_rcv_nxt' not described in 'sock_common'
   include/net/sock.h:515: warning: Function parameter or member 'sk_rx_skb_cache' not described in 'sock'
   include/net/sock.h:515: warning: Function parameter or member 'sk_wq_raw' not described in 'sock'
   include/net/sock.h:515: warning: Function parameter or member 'tcp_rtx_queue' not described in 'sock'
   include/net/sock.h:515: warning: Function parameter or member 'sk_tx_skb_cache' not described in 'sock'
   include/net/sock.h:515: warning: Function parameter or member 'sk_route_forced_caps' not described in 'sock'
   include/net/sock.h:515: warning: Function parameter or member 'sk_txtime_report_errors' not described in 'sock'
   include/net/sock.h:515: warning: Function parameter or member 'sk_validate_xmit_skb' not described in 'sock'
   include/net/sock.h:515: warning: Function parameter or member 'sk_bpf_storage' not described in 'sock'
   include/net/sock.h:2439: warning: Function parameter or member 'tcp_rx_skb_cache_key' not described in 'DECLARE_STATIC_KEY_FALSE'
   include/net/sock.h:2439: warning: Excess function parameter 'sk' description in 'DECLARE_STATIC_KEY_FALSE'
   include/net/sock.h:2439: warning: Excess function parameter 'skb' description in 'DECLARE_STATIC_KEY_FALSE'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'gso_partial_features' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'l3mdev_ops' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'xfrmdev_ops' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'tlsdev_ops' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'name_assign_type' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'ieee802154_ptr' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'mpls_ptr' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'xdp_prog' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'gro_flush_timeout' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'nf_hooks_ingress' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member '____cacheline_aligned_in_smp' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'qdisc_hash' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'xps_cpus_map' not described in 'net_device'
   include/linux/netdevice.h:2053: warning: Function parameter or member 'xps_rxqs_map' not described in 'net_device'
   include/linux/phylink.h:56: warning: Function parameter or member '__ETHTOOL_DECLARE_LINK_MODE_MASK(advertising' not described in 'phylink_link_state'
   include/linux/phylink.h:56: warning: Function parameter or member '__ETHTOOL_DECLARE_LINK_MODE_MASK(lp_advertising' not described in 'phylink_link_state'
   drivers/net/phy/phylink.c:595: warning: Function parameter or member 'config' not described in 'phylink_create'
   drivers/net/phy/phylink.c:595: warning: Excess function parameter 'ndev' description in 'phylink_create'
   drivers/gpio/gpiolib-of.c:92: warning: Excess function parameter 'dev' description in 'of_gpio_need_valid_mask'
   include/linux/i2c.h:337: warning: Function parameter or member 'init_irq' not described in 'i2c_client'
   include/linux/input/sparse-keymap.h:43: warning: Function parameter or member 'sw' not described in 'key_entry'
   lib/genalloc.c:1: warning: 'gen_pool_add_virt' not found
   lib/genalloc.c:1: warning: 'gen_pool_alloc' not found
   lib/genalloc.c:1: warning: 'gen_pool_free' not found
   lib/genalloc.c:1: warning: 'gen_pool_alloc_algo' not found
   include/linux/bitmap.h:341: warning: Function parameter or member 'nbits' not described in 'bitmap_or_equal'
   include/linux/rculist.h:374: warning: Excess function parameter 'cond' description in 'list_for_each_entry_rcu'
   include/linux/rculist.h:651: warning: Excess function parameter 'cond' description in 'hlist_for_each_entry_rcu'
   mm/util.c:1: warning: 'get_user_pages_fast' not found
   mm/slab.c:4215: warning: Function parameter or member 'objp' not described in '__ksize'
   drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:142: warning: Function parameter or member 'blockable' not described in 'amdgpu_mn_read_lock'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:347: warning: cannot understand function prototype: 'struct amdgpu_vm_pt_cursor '
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:348: warning: cannot understand function prototype: 'struct amdgpu_vm_pt_cursor '
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:494: warning: Function parameter or member 'start' not described in 'amdgpu_vm_pt_first_dfs'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: Function parameter or member 'adev' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: Function parameter or member 'vm' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: Function parameter or member 'start' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: Function parameter or member 'cursor' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: Function parameter or member 'entry' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:823: warning: Function parameter or member 'level' not described in 'amdgpu_vm_bo_param'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'params' not described in 'amdgpu_vm_update_flags'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'bo' not described in 'amdgpu_vm_update_flags'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'level' not described in 'amdgpu_vm_update_flags'
   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1285: warning: Function parameter or member 'pe' not described in 'amdgpu_vm_update_flags'

# https://github.com/0day-ci/linux/commit/a424d1ea95bc2f0f1a6f3c8bd097f62c23832281
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout a424d1ea95bc2f0f1a6f3c8bd097f62c23832281
vim +332 drivers/edac/edac_device.h

6d8ef2472410c8 Mauro Carvalho Chehab 2016-10-29  319  
a424d1ea95bc2f Hanna Hawa            2019-09-19  320  /**
a424d1ea95bc2f Hanna Hawa            2019-09-19  321   * __edac_device_handle_ue():
a424d1ea95bc2f Hanna Hawa            2019-09-19  322   *	perform a common output and handling of an 'edac_dev' UE event
a424d1ea95bc2f Hanna Hawa            2019-09-19  323   *
a424d1ea95bc2f Hanna Hawa            2019-09-19  324   * @edac_dev: pointer to struct &edac_device_ctl_info
a424d1ea95bc2f Hanna Hawa            2019-09-19  325   * @error_count: number of errors of the same type
a424d1ea95bc2f Hanna Hawa            2019-09-19  326   * @inst_nr: number of the instance where the UE error happened
a424d1ea95bc2f Hanna Hawa            2019-09-19  327   * @block_nr: number of the block where the UE error happened
a424d1ea95bc2f Hanna Hawa            2019-09-19  328   * @msg: message to be printed
a424d1ea95bc2f Hanna Hawa            2019-09-19  329   */
a424d1ea95bc2f Hanna Hawa            2019-09-19  330  void __edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
a424d1ea95bc2f Hanna Hawa            2019-09-19  331  				    unsigned int count, int inst_nr,
a424d1ea95bc2f Hanna Hawa            2019-09-19 @332  				    int block_nr, const char *msg);
a424d1ea95bc2f Hanna Hawa            2019-09-19  333  /**
a424d1ea95bc2f Hanna Hawa            2019-09-19  334   * __edac_device_handle_ce():
a424d1ea95bc2f Hanna Hawa            2019-09-19  335   *	perform a common output and handling of an 'edac_dev' CE event
a424d1ea95bc2f Hanna Hawa            2019-09-19  336   *
a424d1ea95bc2f Hanna Hawa            2019-09-19  337   * @edac_dev: pointer to struct &edac_device_ctl_info
a424d1ea95bc2f Hanna Hawa            2019-09-19  338   * @error_count: number of errors of the same type
a424d1ea95bc2f Hanna Hawa            2019-09-19  339   * @inst_nr: number of the instance where the CE error happened
a424d1ea95bc2f Hanna Hawa            2019-09-19  340   * @block_nr: number of the block where the CE error happened
a424d1ea95bc2f Hanna Hawa            2019-09-19  341   * @msg: message to be printed
a424d1ea95bc2f Hanna Hawa            2019-09-19  342   */
a424d1ea95bc2f Hanna Hawa            2019-09-19  343  void __edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
a424d1ea95bc2f Hanna Hawa            2019-09-19  344  				    unsigned int count, int inst_nr,
a424d1ea95bc2f Hanna Hawa            2019-09-19 @345  				    int block_nr, const char *msg);
a424d1ea95bc2f Hanna Hawa            2019-09-19  346  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 7266 bytes --]

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

* Re: [PATCH v3 2/2] edac: move edac_device_handle_*() API functions to header
  2019-09-20  6:49   ` Robert Richter
@ 2019-09-23 19:01     ` Hawa, Hanna
  0 siblings, 0 replies; 8+ messages in thread
From: Hawa, Hanna @ 2019-09-23 19:01 UTC (permalink / raw)
  To: Robert Richter
  Cc: bp, mchehab, james.morse, linux-edac, linux-kernel, dwmw, benh,
	ronenk, talel, jonnyc, hanochu



On 9/20/2019 9:49 AM, Robert Richter wrote:
> On 19.09.19 18:17:13, Hanna Hawa wrote:
>> Move edac_device_handle_*() functions from source file to header file as
>> inline funtcion that use the new API with single error.
>>
>> Signed-off-by: Hanna Hawa <hhhawa@amazon.com>
> 
> With the changes below it looks good to me:
> 
> Acked-by: Robert Richter <rrichter@marvell.com>
> 
> Thanks,
> 
> -Robert
> 
>> diff --git a/drivers/edac/edac_device.h b/drivers/edac/edac_device.h
>> index 30dc5f5979c8..796ea134a691 100644
>> --- a/drivers/edac/edac_device.h
>> +++ b/drivers/edac/edac_device.h
>> @@ -285,29 +285,6 @@ extern int edac_device_add_device(struct edac_device_ctl_info *edac_dev);
>>    */
>>   extern struct edac_device_ctl_info *edac_device_del_device(struct device *dev);
>>   
>> -/**
>> - * edac_device_handle_ue():
>> - *	perform a common output and handling of an 'edac_dev' UE event
>> - *
>> - * @edac_dev: pointer to struct &edac_device_ctl_info
>> - * @inst_nr: number of the instance where the UE error happened
>> - * @block_nr: number of the block where the UE error happened
>> - * @msg: message to be printed
>> - */
>> -extern void edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
>> -				int inst_nr, int block_nr, const char *msg);
>> -/**
>> - * edac_device_handle_ce():
>> - *	perform a common output and handling of an 'edac_dev' CE event
>> - *
>> - * @edac_dev: pointer to struct &edac_device_ctl_info
>> - * @inst_nr: number of the instance where the CE error happened
>> - * @block_nr: number of the block where the CE error happened
>> - * @msg: message to be printed
>> - */
>> -extern void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
>> -				int inst_nr, int block_nr, const char *msg);
>> -
> 
> Just put in the inline replacement here.

I'll re-arrange the functions in patches 1/2 and put the 
*edac_device_handle_* functions here instead of end of file.

> 
>>   /**
>>    * edac_device_alloc_index: Allocate a unique device index number
>>    *
>> @@ -357,4 +334,18 @@ static inline void edac_device_handle_ue_count(struct edac_device_ctl_info *edac
>>   {
>>   	__edac_device_handle_ue(edac_dev, count, inst_nr, block_nr, msg);
>>   }
>> +
>> +static inline void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
>> +					 int inst_nr, int block_nr,
> 
> No need for this linebreak.

It'll be more than 80 characters.

> 
>> +					 const char *msg)
>> +{
>> +	__edac_device_handle_ce(edac_dev, 1, inst_nr, block_nr, msg);
>> +}
>> +
>> +static inline void edac_device_handle_ue(struct edac_device_ctl_info *edac_dev,
>> +					 int inst_nr, int block_nr,
> 
> Same here.
> 
>> +					 const char *msg)
>> +{
>> +	__edac_device_handle_ue(edac_dev, 1, inst_nr, block_nr, msg);
>> +}
>>   #endif
>> -- 
>> 2.17.1
>>

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

* Re: [PATCH v3 1/2] edac: Add an API for edac device to report for multiple errors
  2019-09-20  6:42   ` Robert Richter
@ 2019-09-23 19:01     ` Hawa, Hanna
  0 siblings, 0 replies; 8+ messages in thread
From: Hawa, Hanna @ 2019-09-23 19:01 UTC (permalink / raw)
  To: Robert Richter
  Cc: bp, mchehab, james.morse, linux-edac, linux-kernel, dwmw, benh,
	ronenk, talel, jonnyc, hanochu



On 9/20/2019 9:42 AM, Robert Richter wrote:
> On 19.09.19 18:17:12, Hanna Hawa wrote:
>> Add an API for EDAC device to report multiple errors with same type.
>>
>> Signed-off-by: Hanna Hawa <hhhawa@amazon.com>
> 
> With the change below it looks good to me:
> 
> Acked-by: Robert Richter <rrichter@marvell.com>

Thanks

> 
> Thanks,
> 
> -Robert
> 
>> ---
>>   drivers/edac/edac_device.c | 62 ++++++++++++++++++++++++++------------
>>   drivers/edac/edac_device.h | 40 ++++++++++++++++++++++++
>>   2 files changed, 82 insertions(+), 20 deletions(-)
>>
>> diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
>> index 65cf2b9355c4..866934f2bcb0 100644
>> --- a/drivers/edac/edac_device.c
>> +++ b/drivers/edac/edac_device.c
>> @@ -555,12 +555,16 @@ static inline int edac_device_get_panic_on_ue(struct edac_device_ctl_info
>>   	return edac_dev->panic_on_ue;
>>   }
>>   
>> -void edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
>> -			int inst_nr, int block_nr, const char *msg)
>> +void __edac_device_handle_ce(struct edac_device_ctl_info *edac_dev,
>> +			     unsigned int count, int inst_nr, int block_nr,
>> +			     const char *msg)
>>   {
>>   	struct edac_device_instance *instance;
>>   	struct edac_device_block *block = NULL;
>>   
>> +	if (!count)
>> +		return;
>> +
> 
> Those checks should be moved to the *_count() variants of both
> functions.

Will be moved to the inline functions.

> 
> [...]
> 
>> +static inline void edac_device_handle_ce_count(struct edac_device_ctl_info *edac_dev,
>> +					       unsigned int count, int inst_nr,
>> +					       int block_nr, const char *msg)
>> +{
> 
> 	if (count)
> 		...
> 
>> +	__edac_device_handle_ce(edac_dev, count, inst_nr, block_nr, msg);
>> +}
>> +
>> +static inline void edac_device_handle_ue_count(struct edac_device_ctl_info *edac_dev,
>> +					       unsigned int count, int inst_nr,
>> +					       int block_nr, const char *msg)
>> +{
> 
> Here too.
> 
>> +	__edac_device_handle_ue(edac_dev, count, inst_nr, block_nr, msg);
>> +}

Thanks,
Hanna

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

end of thread, back to index

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-19 17:17 [PATCH v3 0/2] Add an API for edac device, for mulriple errors Hanna Hawa
2019-09-19 17:17 ` [PATCH v3 1/2] edac: Add an API for edac device to report for multiple errors Hanna Hawa
2019-09-20  6:42   ` Robert Richter
2019-09-23 19:01     ` Hawa, Hanna
2019-09-21 15:28   ` kbuild test robot
2019-09-19 17:17 ` [PATCH v3 2/2] edac: move edac_device_handle_*() API functions to header Hanna Hawa
2019-09-20  6:49   ` Robert Richter
2019-09-23 19:01     ` Hawa, Hanna

Linux-EDAC Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-edac/0 linux-edac/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-edac linux-edac/ https://lore.kernel.org/linux-edac \
		linux-edac@vger.kernel.org linux-edac@archiver.kernel.org
	public-inbox-index linux-edac

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-edac


AGPL code for this site: git clone https://public-inbox.org/ public-inbox