Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1664808 > unrolled thread

[PATCH] xen/mce: don't issue error message for failed /dev/mcelog registration

Started byJuergen Gross <jgross@suse.com>
First post2017-06-13 14:50 +0200
Last post2017-06-13 15:20 +0200
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] xen/mce: don't issue error message for failed /dev/mcelog registration Juergen Gross <jgross@suse.com> - 2017-06-13 14:50 +0200
    Re: [PATCH] xen/mce: don't issue error message for failed  /dev/mcelog registration Borislav Petkov <bp@alien8.de> - 2017-06-13 15:10 +0200
      Re: [PATCH] xen/mce: don't issue error message for failed  /dev/mcelog registration Borislav Petkov <bp@alien8.de> - 2017-06-13 15:20 +0200
      Re: [PATCH] xen/mce: don't issue error message for failed /dev/mcelog  registration Juergen Gross <jgross@suse.com> - 2017-06-13 15:20 +0200

#1664808 — [PATCH] xen/mce: don't issue error message for failed /dev/mcelog registration

FromJuergen Gross <jgross@suse.com>
Date2017-06-13 14:50 +0200
Subject[PATCH] xen/mce: don't issue error message for failed /dev/mcelog registration
Message-ID<tRTqG-81T-21@gated-at.bofh.it>
When running under Xen as dom0 /dev/mcelog is being registered by Xen
instead of the normal mcelog driver. Avoid an error message being
issued by the mcelog driver in this case. Instead issue an informative
message that Xen has registered the device.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
 arch/x86/kernel/cpu/mcheck/dev-mcelog.c | 6 +++++-
 drivers/xen/mcelog.c                    | 2 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/mcheck/dev-mcelog.c b/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
index 9c632cb88546..43fbe2a70051 100644
--- a/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
+++ b/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
@@ -14,6 +14,7 @@
 #include <linux/slab.h>
 #include <linux/kmod.h>
 #include <linux/poll.h>
+#include <xen/xen.h>
 
 #include "mce-internal.h"
 
@@ -387,10 +388,13 @@ static __init int dev_mcelog_init_device(void)
 
 	/* register character device /dev/mcelog */
 	err = misc_register(&mce_chrdev_device);
-	if (err) {
+	/* Xen dom0 might have registered the device already. */
+	if (err && (err != -EBUSY || !xen_initial_domain() ||
+		    !IS_ENABLED(CONFIG_XEN_MCE_LOG))) {
 		pr_err("Unable to init device /dev/mcelog (rc: %d)\n", err);
 		return err;
 	}
+
 	mce_register_decode_chain(&dev_mcelog_nb);
 	return 0;
 }
diff --git a/drivers/xen/mcelog.c b/drivers/xen/mcelog.c
index a493c7315e94..6cc1c15bcd84 100644
--- a/drivers/xen/mcelog.c
+++ b/drivers/xen/mcelog.c
@@ -408,6 +408,8 @@ static int __init xen_late_init_mcelog(void)
 	if (ret)
 		goto deregister;
 
+	pr_info("/dev/mcelog registered by Xen\n");
+
 	return 0;
 
 deregister:
-- 
2.12.3

[toc] | [next] | [standalone]


#1664833 — Re: [PATCH] xen/mce: don't issue error message for failed /dev/mcelog registration

FromBorislav Petkov <bp@alien8.de>
Date2017-06-13 15:10 +0200
SubjectRe: [PATCH] xen/mce: don't issue error message for failed /dev/mcelog registration
Message-ID<tRTK2-8oY-19@gated-at.bofh.it>
In reply to#1664808
On Tue, Jun 13, 2017 at 02:49:21PM +0200, Juergen Gross wrote:
> When running under Xen as dom0 /dev/mcelog is being registered by Xen
> instead of the normal mcelog driver. Avoid an error message being
> issued by the mcelog driver in this case. Instead issue an informative
> message that Xen has registered the device.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
>  arch/x86/kernel/cpu/mcheck/dev-mcelog.c | 6 +++++-
>  drivers/xen/mcelog.c                    | 2 ++
>  2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kernel/cpu/mcheck/dev-mcelog.c b/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
> index 9c632cb88546..43fbe2a70051 100644
> --- a/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
> +++ b/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
> @@ -14,6 +14,7 @@
>  #include <linux/slab.h>
>  #include <linux/kmod.h>
>  #include <linux/poll.h>
> +#include <xen/xen.h>
>  
>  #include "mce-internal.h"
>  
> @@ -387,10 +388,13 @@ static __init int dev_mcelog_init_device(void)
>  
>  	/* register character device /dev/mcelog */
>  	err = misc_register(&mce_chrdev_device);
> -	if (err) {
> +	/* Xen dom0 might have registered the device already. */
> +	if (err && (err != -EBUSY || !xen_initial_domain() ||
> +		    !IS_ENABLED(CONFIG_XEN_MCE_LOG))) {
>  		pr_err("Unable to init device /dev/mcelog (rc: %d)\n", err);

Let's simplify that:

	if (err) {
		if (err == -EBUSY)
			const char *s = ", already registered";
		else
			const char *s = "";

		pr_err("Unable to init device /dev/mcelog (rc: %d)%s\n", err, s);

	}

Thanks.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

[toc] | [prev] | [next] | [standalone]


#1664836 — Re: [PATCH] xen/mce: don't issue error message for failed /dev/mcelog registration

FromBorislav Petkov <bp@alien8.de>
Date2017-06-13 15:20 +0200
SubjectRe: [PATCH] xen/mce: don't issue error message for failed /dev/mcelog registration
Message-ID<tRTTH-8sf-3@gated-at.bofh.it>
In reply to#1664833
On Tue, Jun 13, 2017 at 03:14:53PM +0200, Juergen Gross wrote:
> I'd rather avoid the pr_err() in the -EBUSY case. What about:
> 
> if (err) {
> 	if (err == -EBUSY)
> 		pr_info("Unable to init device /dev/mcelog, already registered");
> 	else
> 		pr_err("Unable to init device /dev/mcelog (rc: %d)\n", err);
> }

Sure.

Thanks.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

[toc] | [prev] | [next] | [standalone]


#1664844 — Re: [PATCH] xen/mce: don't issue error message for failed /dev/mcelog registration

FromJuergen Gross <jgross@suse.com>
Date2017-06-13 15:20 +0200
SubjectRe: [PATCH] xen/mce: don't issue error message for failed /dev/mcelog registration
Message-ID<tRTTH-8sf-5@gated-at.bofh.it>
In reply to#1664833
On 13/06/17 15:02, Borislav Petkov wrote:
> On Tue, Jun 13, 2017 at 02:49:21PM +0200, Juergen Gross wrote:
>> When running under Xen as dom0 /dev/mcelog is being registered by Xen
>> instead of the normal mcelog driver. Avoid an error message being
>> issued by the mcelog driver in this case. Instead issue an informative
>> message that Xen has registered the device.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>>  arch/x86/kernel/cpu/mcheck/dev-mcelog.c | 6 +++++-
>>  drivers/xen/mcelog.c                    | 2 ++
>>  2 files changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/kernel/cpu/mcheck/dev-mcelog.c b/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
>> index 9c632cb88546..43fbe2a70051 100644
>> --- a/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
>> +++ b/arch/x86/kernel/cpu/mcheck/dev-mcelog.c
>> @@ -14,6 +14,7 @@
>>  #include <linux/slab.h>
>>  #include <linux/kmod.h>
>>  #include <linux/poll.h>
>> +#include <xen/xen.h>
>>  
>>  #include "mce-internal.h"
>>  
>> @@ -387,10 +388,13 @@ static __init int dev_mcelog_init_device(void)
>>  
>>  	/* register character device /dev/mcelog */
>>  	err = misc_register(&mce_chrdev_device);
>> -	if (err) {
>> +	/* Xen dom0 might have registered the device already. */
>> +	if (err && (err != -EBUSY || !xen_initial_domain() ||
>> +		    !IS_ENABLED(CONFIG_XEN_MCE_LOG))) {
>>  		pr_err("Unable to init device /dev/mcelog (rc: %d)\n", err);
> 
> Let's simplify that:
> 
> 	if (err) {
> 		if (err == -EBUSY)
> 			const char *s = ", already registered";
> 		else
> 			const char *s = "";
> 
> 		pr_err("Unable to init device /dev/mcelog (rc: %d)%s\n", err, s);

I'd rather avoid the pr_err() in the -EBUSY case. What about:

if (err) {
	if (err == -EBUSY)
		pr_info("Unable to init device /dev/mcelog, already registered");
	else
		pr_err("Unable to init device /dev/mcelog (rc: %d)\n", err);
}


Juergen

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web