Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [Medium] The variable `err` is used uninitialized in the warning message when 
`pci_enable_wake()` fails, potentially leaking stack memory to the kernel log.
--

commit 49538b2bae6d5a5f0599da227733b24b63d3639b
Author: Vinod Govindapillai <[email protected]>

    drm/xe/pm: allow the device to signal PME from D3hot
    
    Make the device a usable wakeup source so it can raise PME while runtime
    suspended to D3hot The PCI core marks endpoints wakeup-capable but leaves
    them disabled, so pci_enable_wake() returns -EINVAL until the driver opts
    in using devm_device_init_wakeup(). D3cold is excluded, as the device
    loses power there and cannot signal at all.

> diff --git a/drivers/gpu/drm/xe/xe_pci.c b/drivers/gpu/drm/xe/xe_pci.c
> index 3b3b6426d960c..af59859fd8c96 100644
> --- a/drivers/gpu/drm/xe/xe_pci.c
> +++ b/drivers/gpu/drm/xe/xe_pci.c
[ ... ]
> @@ -1380,6 +1384,7 @@ static int xe_pci_runtime_suspend(struct device *dev)
>  {
>       struct pci_dev *pdev = to_pci_dev(dev);
>       struct xe_device *xe = pdev_to_xe_device(pdev);
> +     bool pme_armed = false;
>       int err;
>  
>       /*
> @@ -1391,9 +1396,20 @@ static int xe_pci_runtime_suspend(struct device *dev)
>       xe_assert(xe, !IS_SRIOV_VF(xe));
>       xe_assert(xe, !pci_num_vf(pdev));
>  
> -     err = xe_pm_runtime_suspend(xe, false);
> -     if (err)
> +     if (xe_pm_pme_capable(xe)) {
> +             pme_armed = !pci_enable_wake(pdev, PCI_D3hot, true);
> +             if (!pme_armed)
> +                     drm_warn(&xe->drm,
> +                              "Failed to arm PME for D3hot: %d\n", err);

[Severity: Medium]
Could this leak uninitialized stack memory to the kernel log? It looks like
the variable err is used in the warning message when pci_enable_wake() fails
in xe_pci_runtime_suspend(), but it hasn't been initialized yet. Since the
return value from pci_enable_wake() is inverted into the boolean pme_armed,
the actual error code is never captured in err before printing it.

-- 
Sashiko AI review · 
https://sashiko.dev/#/patchset/[email protected]?part=3

Reply via email to