[PATCH] xenbus: check xen_domain in xenbus_probe_initcall

Stefano Stabellini posted 1 patch 1 year, 4 months ago
Failed in applying to current master (apply log)
[PATCH] xenbus: check xen_domain in xenbus_probe_initcall
Posted by Stefano Stabellini 1 year, 4 months ago
The same way we already do in xenbus_init.
Fixes the following warning:

[  352.175563] Trying to free already-free IRQ 0
[  352.177355] WARNING: CPU: 1 PID: 88 at kernel/irq/manage.c:1893 free_irq+0xbf/0x350
[...]
[  352.213951] Call Trace:
[  352.214390]  <TASK>
[  352.214717]  ? __warn+0x81/0x170
[  352.215436]  ? free_irq+0xbf/0x350
[  352.215906]  ? report_bug+0x10b/0x200
[  352.216408]  ? prb_read_valid+0x17/0x20
[  352.216926]  ? handle_bug+0x44/0x80
[  352.217409]  ? exc_invalid_op+0x13/0x60
[  352.217932]  ? asm_exc_invalid_op+0x16/0x20
[  352.218497]  ? free_irq+0xbf/0x350
[  352.218979]  ? __pfx_xenbus_probe_thread+0x10/0x10
[  352.219600]  xenbus_probe+0x7a/0x80
[  352.221030]  xenbus_probe_thread+0x76/0xc0

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Tested-by: Petr Mladek <pmladek@suse.com>

diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
index 58b732dcbfb8..e9bd3ed70108 100644
--- a/drivers/xen/xenbus/xenbus_probe.c
+++ b/drivers/xen/xenbus/xenbus_probe.c
@@ -811,6 +812,9 @@ static int xenbus_probe_thread(void *unused)
 
 static int __init xenbus_probe_initcall(void)
 {
+	if (!xen_domain())
+		return -ENODEV;
+
 	/*
 	 * Probe XenBus here in the XS_PV case, and also XS_HVM unless we
 	 * need to wait for the platform PCI device to come up or
Re: [PATCH] xenbus: check xen_domain in xenbus_probe_initcall
Posted by Juergen Gross 1 year, 4 months ago
On 22.07.23 01:13, Stefano Stabellini wrote:
> The same way we already do in xenbus_init.
> Fixes the following warning:
> 
> [  352.175563] Trying to free already-free IRQ 0
> [  352.177355] WARNING: CPU: 1 PID: 88 at kernel/irq/manage.c:1893 free_irq+0xbf/0x350
> [...]
> [  352.213951] Call Trace:
> [  352.214390]  <TASK>
> [  352.214717]  ? __warn+0x81/0x170
> [  352.215436]  ? free_irq+0xbf/0x350
> [  352.215906]  ? report_bug+0x10b/0x200
> [  352.216408]  ? prb_read_valid+0x17/0x20
> [  352.216926]  ? handle_bug+0x44/0x80
> [  352.217409]  ? exc_invalid_op+0x13/0x60
> [  352.217932]  ? asm_exc_invalid_op+0x16/0x20
> [  352.218497]  ? free_irq+0xbf/0x350
> [  352.218979]  ? __pfx_xenbus_probe_thread+0x10/0x10
> [  352.219600]  xenbus_probe+0x7a/0x80
> [  352.221030]  xenbus_probe_thread+0x76/0xc0
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Tested-by: Petr Mladek <pmladek@suse.com>

Pushed to xen/tip.git for-linus-6.5a


Juergen

Re: [PATCH] xenbus: check xen_domain in xenbus_probe_initcall
Posted by Oleksandr Tyshchenko 1 year, 4 months ago

On 22.07.23 02:13, Stefano Stabellini wrote:

Hello Stefano


> The same way we already do in xenbus_init.
> Fixes the following warning:
> 
> [  352.175563] Trying to free already-free IRQ 0
> [  352.177355] WARNING: CPU: 1 PID: 88 at kernel/irq/manage.c:1893 free_irq+0xbf/0x350
> [...]
> [  352.213951] Call Trace:
> [  352.214390]  <TASK>
> [  352.214717]  ? __warn+0x81/0x170
> [  352.215436]  ? free_irq+0xbf/0x350
> [  352.215906]  ? report_bug+0x10b/0x200
> [  352.216408]  ? prb_read_valid+0x17/0x20
> [  352.216926]  ? handle_bug+0x44/0x80
> [  352.217409]  ? exc_invalid_op+0x13/0x60
> [  352.217932]  ? asm_exc_invalid_op+0x16/0x20
> [  352.218497]  ? free_irq+0xbf/0x350
> [  352.218979]  ? __pfx_xenbus_probe_thread+0x10/0x10
> [  352.219600]  xenbus_probe+0x7a/0x80
> [  352.221030]  xenbus_probe_thread+0x76/0xc0
> 
> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
> Tested-by: Petr Mladek <pmladek@suse.com>


Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>

I guess this wants to gain the Fixes tag:

Fixes: 5b3353949e89 ("xen: add support for initializing xenstore later 
as HVM domain")



> 
> diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
> index 58b732dcbfb8..e9bd3ed70108 100644
> --- a/drivers/xen/xenbus/xenbus_probe.c
> +++ b/drivers/xen/xenbus/xenbus_probe.c
> @@ -811,6 +812,9 @@ static int xenbus_probe_thread(void *unused)
>   
>   static int __init xenbus_probe_initcall(void)
>   {
> +	if (!xen_domain())
> +		return -ENODEV;
> +
>   	/*
>   	 * Probe XenBus here in the XS_PV case, and also XS_HVM unless we
>   	 * need to wait for the platform PCI device to come up or
Re: [PATCH] xenbus: check xen_domain in xenbus_probe_initcall
Posted by Juergen Gross 1 year, 4 months ago
On 22.07.23 15:00, Oleksandr Tyshchenko wrote:
> 
> 
> On 22.07.23 02:13, Stefano Stabellini wrote:
> 
> Hello Stefano
> 
> 
>> The same way we already do in xenbus_init.
>> Fixes the following warning:
>>
>> [  352.175563] Trying to free already-free IRQ 0
>> [  352.177355] WARNING: CPU: 1 PID: 88 at kernel/irq/manage.c:1893 free_irq+0xbf/0x350
>> [...]
>> [  352.213951] Call Trace:
>> [  352.214390]  <TASK>
>> [  352.214717]  ? __warn+0x81/0x170
>> [  352.215436]  ? free_irq+0xbf/0x350
>> [  352.215906]  ? report_bug+0x10b/0x200
>> [  352.216408]  ? prb_read_valid+0x17/0x20
>> [  352.216926]  ? handle_bug+0x44/0x80
>> [  352.217409]  ? exc_invalid_op+0x13/0x60
>> [  352.217932]  ? asm_exc_invalid_op+0x16/0x20
>> [  352.218497]  ? free_irq+0xbf/0x350
>> [  352.218979]  ? __pfx_xenbus_probe_thread+0x10/0x10
>> [  352.219600]  xenbus_probe+0x7a/0x80
>> [  352.221030]  xenbus_probe_thread+0x76/0xc0
>>
>> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
>> Tested-by: Petr Mladek <pmladek@suse.com>
> 
> 
> Reviewed-by: Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>
> 
> I guess this wants to gain the Fixes tag:
> 
> Fixes: 5b3353949e89 ("xen: add support for initializing xenstore later
> as HVM domain")

I'll add it when committing.


Juergen