VYPR
Unrated severityNVD Advisory· Published Jun 8, 2026

CVE-2026-46297

CVE-2026-46297

Description

In the Linux kernel, the following vulnerability has been resolved:

net: libwx: use request_irq for VF misc interrupt

Currently, request_threaded_irq() is used with a primary handler but a NULL threaded handler, while also setting the IRQF_ONESHOT flag. This specific combination triggers a WARNING since the commit aef30c8d569c ("genirq: Warn about using IRQF_ONESHOT without a threaded handler").

WARNING: kernel/irq/manage.c:1502 at __setup_irq+0x4fa/0x760

Fix the issue by switching to request_irq(), which is the appropriate interface or a non-threaded interrupt handler, and removing the unnecessary IRQF_ONESHOT flag.

Affected products

1

Patches

6
7a33345153ee

net: libwx: use request_irq for VF misc interrupt

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.gitJiawen WuApr 29, 2026Fixed in 7.1-rc3via kernel-cna
1 file changed · +2 3
  • drivers/net/ethernet/wangxun/libwx/wx_vf_common.c+2 3 modified
    diff --git a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    index 29cdbed2e5ecd..94ff8f5f0b4c8 100644
    --- a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    +++ b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    @@ -99,8 +99,8 @@ int wx_request_msix_irqs_vf(struct wx *wx)
     		}
     	}
     
    -	err = request_threaded_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    -				   NULL, IRQF_ONESHOT, netdev->name, wx);
    +	err = request_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    +			  0, netdev->name, wx);
     	if (err) {
     		wx_err(wx, "request_irq for msix_other failed: %d\n", err);
     		goto free_queue_irqs;
    -- 
    cgit 1.3-korg
    
    
    
1bca036fe360

net: libwx: use request_irq for VF misc interrupt

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.gitJiawen WuApr 29, 2026Fixed in 6.18.30via kernel-cna
1 file changed · +2 3
  • drivers/net/ethernet/wangxun/libwx/wx_vf_common.c+2 3 modified
    diff --git a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    index ade2bfe563aaa..5478f2fdfce88 100644
    --- a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    +++ b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    @@ -98,8 +98,8 @@ int wx_request_msix_irqs_vf(struct wx *wx)
     		}
     	}
     
    -	err = request_threaded_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    -				   NULL, IRQF_ONESHOT, netdev->name, wx);
    +	err = request_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    +			  0, netdev->name, wx);
     	if (err) {
     		wx_err(wx, "request_irq for msix_other failed: %d\n", err);
     		goto free_queue_irqs;
    -- 
    cgit 1.3-korg
    
    
    
a841574c6e57

net: libwx: use request_irq for VF misc interrupt

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.gitJiawen WuApr 29, 2026Fixed in 7.0.7via kernel-cna
1 file changed · +2 3
  • drivers/net/ethernet/wangxun/libwx/wx_vf_common.c+2 3 modified
    diff --git a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    index ade2bfe563aaa..5478f2fdfce88 100644
    --- a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    +++ b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    @@ -98,8 +98,8 @@ int wx_request_msix_irqs_vf(struct wx *wx)
     		}
     	}
     
    -	err = request_threaded_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    -				   NULL, IRQF_ONESHOT, netdev->name, wx);
    +	err = request_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    +			  0, netdev->name, wx);
     	if (err) {
     		wx_err(wx, "request_irq for msix_other failed: %d\n", err);
     		goto free_queue_irqs;
    -- 
    cgit 1.3-korg
    
    
    
7a33345153ee

net: libwx: use request_irq for VF misc interrupt

1 file changed · +2 3
  • drivers/net/ethernet/wangxun/libwx/wx_vf_common.c+2 3 modified
    diff --git a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    index 29cdbed2e5ecd..94ff8f5f0b4c8 100644
    --- a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    +++ b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    @@ -99,8 +99,8 @@ int wx_request_msix_irqs_vf(struct wx *wx)
     		}
     	}
     
    -	err = request_threaded_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    -				   NULL, IRQF_ONESHOT, netdev->name, wx);
    +	err = request_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    +			  0, netdev->name, wx);
     	if (err) {
     		wx_err(wx, "request_irq for msix_other failed: %d\n", err);
     		goto free_queue_irqs;
    -- 
    cgit 1.3-korg
    
    
    
1bca036fe360

net: libwx: use request_irq for VF misc interrupt

1 file changed · +2 3
  • drivers/net/ethernet/wangxun/libwx/wx_vf_common.c+2 3 modified
    diff --git a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    index ade2bfe563aaa..5478f2fdfce88 100644
    --- a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    +++ b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    @@ -98,8 +98,8 @@ int wx_request_msix_irqs_vf(struct wx *wx)
     		}
     	}
     
    -	err = request_threaded_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    -				   NULL, IRQF_ONESHOT, netdev->name, wx);
    +	err = request_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    +			  0, netdev->name, wx);
     	if (err) {
     		wx_err(wx, "request_irq for msix_other failed: %d\n", err);
     		goto free_queue_irqs;
    -- 
    cgit 1.3-korg
    
    
    
a841574c6e57

net: libwx: use request_irq for VF misc interrupt

1 file changed · +2 3
  • drivers/net/ethernet/wangxun/libwx/wx_vf_common.c+2 3 modified
    diff --git a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    index ade2bfe563aaa..5478f2fdfce88 100644
    --- a/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    +++ b/drivers/net/ethernet/wangxun/libwx/wx_vf_common.c
    @@ -98,8 +98,8 @@ int wx_request_msix_irqs_vf(struct wx *wx)
     		}
     	}
     
    -	err = request_threaded_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    -				   NULL, IRQF_ONESHOT, netdev->name, wx);
    +	err = request_irq(wx->msix_entry->vector, wx_msix_misc_vf,
    +			  0, netdev->name, wx);
     	if (err) {
     		wx_err(wx, "request_irq for msix_other failed: %d\n", err);
     		goto free_queue_irqs;
    -- 
    cgit 1.3-korg
    
    
    

Vulnerability mechanics

Root cause

"The kernel incorrectly uses `request_threaded_irq` with a NULL threaded handler and the `IRQF_ONESHOT` flag, causing a warning."

Attack vector

The vulnerability is triggered when the `wx_request_msix_irqs_vf` function is called within the `net: libwx` subsystem. This function incorrectly uses `request_threaded_irq` with a NULL threaded handler and the `IRQF_ONESHOT` flag. This specific combination leads to a kernel warning, indicating a misconfiguration in interrupt handling. The issue arises from the interaction between the interrupt request function and the `IRQF_ONESHOT` flag, which is intended for threaded handlers.

Affected code

The vulnerability resides in the `wx_request_msix_irqs_vf` function located in `drivers/net/ethernet/wangxun/libwx/wx_vf_common.c`. The problematic code involves the use of `request_threaded_irq` with a NULL threaded handler and the `IRQF_ONESHOT` flag. This specific combination triggers a warning in the kernel's interrupt management code.

What the fix does

The patch resolves the issue by replacing the call to `request_threaded_irq` with `request_irq` in the `wx_request_msix_irqs_vf` function within `drivers/net/ethernet/wangxun/libwx/wx_vf_common.c` [patch_id=5239866]. This change is appropriate because `request_irq` is designed for non-threaded interrupt handlers. Additionally, the unnecessary `IRQF_ONESHOT` flag is removed. This corrects the interrupt registration, preventing the kernel warning that occurred due to the misuse of `request_threaded_irq` with a NULL threaded handler and the `IRQF_ONESHOT` flag.

Generated on Jun 8, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

3

News mentions

1