Linux-EDAC Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] RAS/CEC: Fix cec_init prototype
@ 2020-08-04 16:18 Luca Stefani
  2020-08-05  4:59 ` Borislav Petkov
  0 siblings, 1 reply; 9+ messages in thread
From: Luca Stefani @ 2020-08-04 16:18 UTC (permalink / raw)
  Cc: Luca Stefani, Tony Luck, Borislav Petkov, linux-edac, linux-kernel

* late_initcall expects a function to return an integer

Signed-off-by: Luca Stefani <luca.stefani.ge1@gmail.com>
---
 drivers/ras/cec.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/ras/cec.c b/drivers/ras/cec.c
index 569d9ad2c594..e048e0e3949a 100644
--- a/drivers/ras/cec.c
+++ b/drivers/ras/cec.c
@@ -553,20 +553,20 @@ static struct notifier_block cec_nb = {
 	.priority	= MCE_PRIO_CEC,
 };
 
-static void __init cec_init(void)
+static int __init cec_init(void)
 {
 	if (ce_arr.disabled)
-		return;
+		return 0;
 
 	ce_arr.array = (void *)get_zeroed_page(GFP_KERNEL);
 	if (!ce_arr.array) {
 		pr_err("Error allocating CE array page!\n");
-		return;
+		return 1;
 	}
 
 	if (create_debugfs_nodes()) {
 		free_page((unsigned long)ce_arr.array);
-		return;
+		return 1;
 	}
 
 	INIT_DELAYED_WORK(&cec_work, cec_work_fn);
@@ -575,6 +575,7 @@ static void __init cec_init(void)
 	mce_register_decode_chain(&cec_nb);
 
 	pr_info("Correctable Errors collector initialized.\n");
+	return 0;
 }
 late_initcall(cec_init);
 
-- 
2.28.0


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

* Re: [PATCH] RAS/CEC: Fix cec_init prototype
  2020-08-04 16:18 [PATCH] RAS/CEC: Fix cec_init prototype Luca Stefani
@ 2020-08-05  4:59 ` Borislav Petkov
  2020-08-05  9:57   ` [PATCH v2] " Luca Stefani
  0 siblings, 1 reply; 9+ messages in thread
From: Borislav Petkov @ 2020-08-05  4:59 UTC (permalink / raw)
  To: Luca Stefani; +Cc: Tony Luck, linux-edac, linux-kernel

On Tue, Aug 04, 2020 at 06:18:47PM +0200, Luca Stefani wrote:
> * late_initcall expects a function to return an integer

Please write a proper sentence for a commit message.

> Signed-off-by: Luca Stefani <luca.stefani.ge1@gmail.com>
> ---
>  drivers/ras/cec.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/ras/cec.c b/drivers/ras/cec.c
> index 569d9ad2c594..e048e0e3949a 100644
> --- a/drivers/ras/cec.c
> +++ b/drivers/ras/cec.c
> @@ -553,20 +553,20 @@ static struct notifier_block cec_nb = {
>  	.priority	= MCE_PRIO_CEC,
>  };
>  
> -static void __init cec_init(void)
> +static int __init cec_init(void)
>  {
>  	if (ce_arr.disabled)
> -		return;
> +		return 0;

Why 0?

I'm thinking all the cases when the init doesn't succeed should return
!0...

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

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

* [PATCH v2] RAS/CEC: Fix cec_init prototype
  2020-08-05  4:59 ` Borislav Petkov
@ 2020-08-05  9:57   ` Luca Stefani
  2020-08-12 21:09     ` Sami Tolvanen
  0 siblings, 1 reply; 9+ messages in thread
From: Luca Stefani @ 2020-08-05  9:57 UTC (permalink / raw)
  Cc: Luca Stefani, Tony Luck, Borislav Petkov, linux-edac, linux-kernel

* late_initcall expects a function that returns an integer
  -> Update the function signature to match.

Fixes: 9554bfe403nd ("x86/mce: Convert the CEC to use the MCE notifier")
Signed-off-by: Luca Stefani <luca.stefani.ge1@gmail.com>
---
 drivers/ras/cec.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/ras/cec.c b/drivers/ras/cec.c
index 569d9ad2c594..6939aa5b3dc7 100644
--- a/drivers/ras/cec.c
+++ b/drivers/ras/cec.c
@@ -553,20 +553,20 @@ static struct notifier_block cec_nb = {
 	.priority	= MCE_PRIO_CEC,
 };
 
-static void __init cec_init(void)
+static int __init cec_init(void)
 {
 	if (ce_arr.disabled)
-		return;
+		return -ENODEV;
 
 	ce_arr.array = (void *)get_zeroed_page(GFP_KERNEL);
 	if (!ce_arr.array) {
 		pr_err("Error allocating CE array page!\n");
-		return;
+		return -ENOMEM;
 	}
 
 	if (create_debugfs_nodes()) {
 		free_page((unsigned long)ce_arr.array);
-		return;
+		return -ENOMEM;
 	}
 
 	INIT_DELAYED_WORK(&cec_work, cec_work_fn);
@@ -575,6 +575,7 @@ static void __init cec_init(void)
 	mce_register_decode_chain(&cec_nb);
 
 	pr_info("Correctable Errors collector initialized.\n");
+	return 0;
 }
 late_initcall(cec_init);
 
-- 
2.28.0


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

* Re: [PATCH v2] RAS/CEC: Fix cec_init prototype
  2020-08-05  9:57   ` [PATCH v2] " Luca Stefani
@ 2020-08-12 21:09     ` Sami Tolvanen
  2020-08-17 15:13       ` Borislav Petkov
  0 siblings, 1 reply; 9+ messages in thread
From: Sami Tolvanen @ 2020-08-12 21:09 UTC (permalink / raw)
  To: Luca Stefani; +Cc: Tony Luck, Borislav Petkov, linux-edac, linux-kernel

Hi Luca,

On Wed, Aug 05, 2020 at 11:57:08AM +0200, Luca Stefani wrote:
> * late_initcall expects a function that returns an integer
>   -> Update the function signature to match.
> 
> Fixes: 9554bfe403nd ("x86/mce: Convert the CEC to use the MCE notifier")
> Signed-off-by: Luca Stefani <luca.stefani.ge1@gmail.com>

Thank you for fixing this!

[Note that this v2 email never landed in my inbox, perhaps Gmail filtered
 it out due to a missing To: line?]

> ---
>  drivers/ras/cec.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/ras/cec.c b/drivers/ras/cec.c
> index 569d9ad2c594..6939aa5b3dc7 100644
> --- a/drivers/ras/cec.c
> +++ b/drivers/ras/cec.c
> @@ -553,20 +553,20 @@ static struct notifier_block cec_nb = {
>  	.priority	= MCE_PRIO_CEC,
>  };
>  
> -static void __init cec_init(void)
> +static int __init cec_init(void)
>  {
>  	if (ce_arr.disabled)
> -		return;
> +		return -ENODEV;
>  
>  	ce_arr.array = (void *)get_zeroed_page(GFP_KERNEL);
>  	if (!ce_arr.array) {
>  		pr_err("Error allocating CE array page!\n");
> -		return;
> +		return -ENOMEM;
>  	}
>  
>  	if (create_debugfs_nodes()) {
>  		free_page((unsigned long)ce_arr.array);
> -		return;
> +		return -ENOMEM;
>  	}
>  
>  	INIT_DELAYED_WORK(&cec_work, cec_work_fn);
> @@ -575,6 +575,7 @@ static void __init cec_init(void)
>  	mce_register_decode_chain(&cec_nb);
>  
>  	pr_info("Correctable Errors collector initialized.\n");
> +	return 0;
>  }
>  late_initcall(cec_init);

The type mismatch broke allyesconfig in my test tree and your patch
fixes the issue. Please feel free to add:

  Reviewed-and-tested-by: Sami Tolvanen <samitolvanen@google.com>

Sami

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

* Re: [PATCH v2] RAS/CEC: Fix cec_init prototype
  2020-08-12 21:09     ` Sami Tolvanen
@ 2020-08-17 15:13       ` Borislav Petkov
  2020-08-17 15:58         ` Sami Tolvanen
  0 siblings, 1 reply; 9+ messages in thread
From: Borislav Petkov @ 2020-08-17 15:13 UTC (permalink / raw)
  To: Sami Tolvanen; +Cc: Luca Stefani, Tony Luck, linux-edac, linux-kernel

On Wed, Aug 12, 2020 at 02:09:09PM -0700, Sami Tolvanen wrote:
> The type mismatch broke allyesconfig in my test tree and your patch
> fixes the issue.

How are you building your allyesconfigs? Because allyesconfig works here
fine on latest Linus tree.

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

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

* Re: [PATCH v2] RAS/CEC: Fix cec_init prototype
  2020-08-17 15:13       ` Borislav Petkov
@ 2020-08-17 15:58         ` Sami Tolvanen
  2020-08-17 17:41           ` Borislav Petkov
  0 siblings, 1 reply; 9+ messages in thread
From: Sami Tolvanen @ 2020-08-17 15:58 UTC (permalink / raw)
  To: Borislav Petkov; +Cc: Luca Stefani, Tony Luck, linux-edac, LKML

On Mon, Aug 17, 2020 at 8:13 AM Borislav Petkov <bp@alien8.de> wrote:
>
> On Wed, Aug 12, 2020 at 02:09:09PM -0700, Sami Tolvanen wrote:
> > The type mismatch broke allyesconfig in my test tree and your patch
> > fixes the issue.
>
> How are you building your allyesconfigs? Because allyesconfig works here
> fine on latest Linus tree.

Sorry for not clarifying. This was in a tree with patches for enabling
Clang's Control-Flow Integrity. However, this type mismatch looks like
something that should be fixed regardless.

Sami

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

* Re: [PATCH v2] RAS/CEC: Fix cec_init prototype
  2020-08-17 15:58         ` Sami Tolvanen
@ 2020-08-17 17:41           ` Borislav Petkov
  2020-08-17 18:11             ` Sami Tolvanen
  0 siblings, 1 reply; 9+ messages in thread
From: Borislav Petkov @ 2020-08-17 17:41 UTC (permalink / raw)
  To: Sami Tolvanen; +Cc: Luca Stefani, Tony Luck, linux-edac, LKML

On Mon, Aug 17, 2020 at 08:58:26AM -0700, Sami Tolvanen wrote:
> Sorry for not clarifying. This was in a tree with patches for enabling
> Clang's Control-Flow Integrity.

Well, I just did:

$ make CC=clang-10 HOSTCC=clang-10 allyesconfig
$ make -j...

and it built fine here, no complaints. So your toolchain must have
something else.

> However, this type mismatch looks like something that should be fixed
> regardless.

No question there - I'm just trying to figure out how something as minor
as this would break a build.

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

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

* Re: [PATCH v2] RAS/CEC: Fix cec_init prototype
  2020-08-17 17:41           ` Borislav Petkov
@ 2020-08-17 18:11             ` Sami Tolvanen
  2020-08-17 18:54               ` Borislav Petkov
  0 siblings, 1 reply; 9+ messages in thread
From: Sami Tolvanen @ 2020-08-17 18:11 UTC (permalink / raw)
  To: Borislav Petkov; +Cc: Luca Stefani, Tony Luck, linux-edac, LKML

On Mon, Aug 17, 2020 at 10:40 AM Borislav Petkov <bp@alien8.de> wrote:
>
> On Mon, Aug 17, 2020 at 08:58:26AM -0700, Sami Tolvanen wrote:
> > Sorry for not clarifying. This was in a tree with patches for enabling
> > Clang's Control-Flow Integrity.
>
> Well, I just did:
>
> $ make CC=clang-10 HOSTCC=clang-10 allyesconfig
> $ make -j...
>
> and it built fine here, no complaints. So your toolchain must have
> something else.

Not the toolchain, the tree has patches for LTO+CFI, which tends to
break with type mismatches. This doesn't affect just building the
kernel with Clang without other changes.

Sami

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

* Re: [PATCH v2] RAS/CEC: Fix cec_init prototype
  2020-08-17 18:11             ` Sami Tolvanen
@ 2020-08-17 18:54               ` Borislav Petkov
  0 siblings, 0 replies; 9+ messages in thread
From: Borislav Petkov @ 2020-08-17 18:54 UTC (permalink / raw)
  To: Sami Tolvanen; +Cc: Luca Stefani, Tony Luck, linux-edac, LKML

On Mon, Aug 17, 2020 at 11:11:02AM -0700, Sami Tolvanen wrote:
> Not the toolchain, the tree has patches for LTO+CFI, which tends to
> break with type mismatches. This doesn't affect just building the
> kernel with Clang without other changes.

Ok, that explains it.

As for why I'm still chasing down the exact reason for the reported
breakage: this will determine the urgency with which this fix is handled
and to which trees it needs to go so please be more precise next time
when saying "it broke". :)

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

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

end of thread, back to index

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-04 16:18 [PATCH] RAS/CEC: Fix cec_init prototype Luca Stefani
2020-08-05  4:59 ` Borislav Petkov
2020-08-05  9:57   ` [PATCH v2] " Luca Stefani
2020-08-12 21:09     ` Sami Tolvanen
2020-08-17 15:13       ` Borislav Petkov
2020-08-17 15:58         ` Sami Tolvanen
2020-08-17 17:41           ` Borislav Petkov
2020-08-17 18:11             ` Sami Tolvanen
2020-08-17 18:54               ` Borislav Petkov

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
	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.git