Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [High] Using `DEFINE_SIMPLE_DEV_PM_OPS` incorrectly maps the `.freeze` callback to the suspend function, causing the PCI device to be forced into D3hot during hibernation freeze. --
--- Patch [1]: [PATCH v2] accel: habanalabs: pm: use DEFINE_SIMPLE_DEV_OPS for pm struct --- commit 05b8c895a9d3a2cfea19ba9e2cdc13394fb870ce Author: Li Jun <[email protected]> accel: habanalabs: pm: use DEFINE_SIMPLE_DEV_OPS for pm struct This commit uses DEFINE_SIMPLE_DEV_PM_OPS to define hl_pm_ops and safely handle PM callbacks without triggering compiler warnings when PM sleep is disabled. It also implicitly adds callbacks for freeze, thaw, poweroff, and restore. > diff --git a/drivers/accel/habanalabs/common/habanalabs_drv.c > b/drivers/accel/habanalabs/common/habanalabs_drv.c > index 220954d730136..7ec5aa7905f06 100644 > --- a/drivers/accel/habanalabs/common/habanalabs_drv.c > +++ b/drivers/accel/habanalabs/common/habanalabs_drv.c > @@ -1630,10 +1630,7 @@ static void hl_pci_reset_done(struct pci_dev *pdev) > hl_device_reset(hdev, flags); > } > > -static const struct dev_pm_ops hl_pm_ops = { > - .suspend = hl_pmops_suspend, > - .resume = hl_pmops_resume, > -}; > +static DEFINE_SIMPLE_DEV_PM_OPS(hl_pm_ops, hl_pmops_suspend, > hl_pmops_resume); [Severity: High] Does this map the .freeze callback to hl_pmops_suspend, which forces the device into D3hot? DEFINE_SIMPLE_DEV_PM_OPS implicitly sets the .freeze callback to hl_pmops_suspend. When the user initiates hibernation, this callback is invoked and eventually puts the device into D3hot: drivers/accel/habanalabs/common/device.c:hl_device_suspend() { ... pci_set_power_state(hdev->pdev, PCI_D3hot); ... } Will putting the PCI device into D3hot during the .freeze phase make its configuration and memory space inaccessible, breaking the system-wide hibernation image creation process? > static const struct pci_error_handlers hl_pci_err_handler = { > .error_detected = hl_pci_err_detected, -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=1
