diff --git a/drivers/parport/parport_serial.c b/drivers/parport/parport_serial.c index 78c0a26..1e14906 100644 --- a/drivers/parport/parport_serial.c +++ b/drivers/parport/parport_serial.c @@ -392,6 +392,7 @@ static int parport_serial_pci_suspend(st static int parport_serial_pci_resume(struct pci_dev *dev) { struct parport_serial_private *priv = pci_get_drvdata(dev); + int err; pci_set_power_state(dev, PCI_D0); pci_restore_state(dev); @@ -399,7 +400,11 @@ static int parport_serial_pci_resume(str /* * The device may have been disabled. Re-enable it. */ - pci_enable_device(dev); + err = pci_enable_device(dev); + if (err) { + dev_err(&dev->dev, "Cannot enable PCI device, aborting.\n"); + return err; + } if (priv->serial) pciserial_resume_ports(priv->serial); diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c index 52e2e64..e26e4a6 100644 --- a/drivers/serial/8250_pci.c +++ b/drivers/serial/8250_pci.c @@ -1805,6 +1805,7 @@ static int pciserial_suspend_one(struct static int pciserial_resume_one(struct pci_dev *dev) { struct serial_private *priv = pci_get_drvdata(dev); + int err; pci_set_power_state(dev, PCI_D0); pci_restore_state(dev); @@ -1813,7 +1814,12 @@ static int pciserial_resume_one(struct p /* * The device may have been disabled. Re-enable it. */ - pci_enable_device(dev); + err = pci_enable_device(dev); + if (err) { + dev_err(&dev->dev, "Cannot enable PCI device, " + "aborting.\n"); + return err; + } pciserial_resume_ports(priv); } diff --git a/drivers/serial/serial_txx9.c b/drivers/serial/serial_txx9.c index 7186a82..583cdc8 100644 --- a/drivers/serial/serial_txx9.c +++ b/drivers/serial/serial_txx9.c @@ -1132,12 +1132,19 @@ static int pciserial_txx9_suspend_one(st static int pciserial_txx9_resume_one(struct pci_dev *dev) { int line = (int)(long)pci_get_drvdata(dev); + int err; pci_set_power_state(dev, PCI_D0); pci_restore_state(dev); if (line) { - pci_enable_device(dev); + err = pci_enable_device(dev); + if (err) { + dev_err(&dev->dev, "Cannot enable PCI device, " + "aborting.\n"); + return err; + } + serial_txx9_resume_port(line); } return 0;