From: Vaibhav Gupta Date: Wed, 6 May 2026 16:50:06 +0000 (+0000) Subject: gve: Use generic power management X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3c683c316f4a6b3b91232ee40ef8383ab286078;p=thirdparty%2Fkernel%2Flinux.git gve: Use generic power management Switch to the generic power management and remove the usage of legacy (pci_driver) hooks. Signed-off-by: Vaibhav Gupta Reviewed-by: Harshitha Ramamurthy Reviewed-by: Alexander Lobakin Link: https://patch.msgid.link/20260506165015.641738-1-vaibhavgupta40@gmail.com Signed-off-by: Jakub Kicinski --- diff --git a/drivers/net/ethernet/google/gve/gve_main.c b/drivers/net/ethernet/google/gve/gve_main.c index 424d973c97f24..00750643e614f 100644 --- a/drivers/net/ethernet/google/gve/gve_main.c +++ b/drivers/net/ethernet/google/gve/gve_main.c @@ -2967,9 +2967,9 @@ static void gve_shutdown(struct pci_dev *pdev) rtnl_unlock(); } -#ifdef CONFIG_PM -static int gve_suspend(struct pci_dev *pdev, pm_message_t state) +static int gve_suspend(struct device *dev) { + struct pci_dev *pdev = to_pci_dev(dev); struct net_device *netdev = pci_get_drvdata(pdev); struct gve_priv *priv = netdev_priv(netdev); bool was_up = netif_running(priv->dev); @@ -2990,8 +2990,9 @@ static int gve_suspend(struct pci_dev *pdev, pm_message_t state) return 0; } -static int gve_resume(struct pci_dev *pdev) +static int gve_resume(struct device *dev) { + struct pci_dev *pdev = to_pci_dev(dev); struct net_device *netdev = pci_get_drvdata(pdev); struct gve_priv *priv = netdev_priv(netdev); int err; @@ -3004,7 +3005,8 @@ static int gve_resume(struct pci_dev *pdev) rtnl_unlock(); return err; } -#endif /* CONFIG_PM */ + +static DEFINE_SIMPLE_DEV_PM_OPS(gve_pm_ops, gve_suspend, gve_resume); static const struct pci_device_id gve_id_table[] = { { PCI_DEVICE(PCI_VENDOR_ID_GOOGLE, PCI_DEV_ID_GVNIC) }, @@ -3017,10 +3019,7 @@ static struct pci_driver gve_driver = { .probe = gve_probe, .remove = gve_remove, .shutdown = gve_shutdown, -#ifdef CONFIG_PM - .suspend = gve_suspend, - .resume = gve_resume, -#endif + .driver.pm = pm_sleep_ptr(&gve_pm_ops), }; module_pci_driver(gve_driver);