|
@@ -5642,17 +5642,15 @@ static pci_ers_result_t serial8250_io_slot_reset(struct pci_dev *dev)
|
|
|
static void serial8250_io_resume(struct pci_dev *dev)
|
|
|
{
|
|
|
struct serial_private *priv = pci_get_drvdata(dev);
|
|
|
- const struct pciserial_board *board;
|
|
|
+ struct serial_private *new;
|
|
|
|
|
|
if (!priv)
|
|
|
return;
|
|
|
|
|
|
- board = priv->board;
|
|
|
- kfree(priv);
|
|
|
- priv = pciserial_init_ports(dev, board);
|
|
|
-
|
|
|
- if (!IS_ERR(priv)) {
|
|
|
- pci_set_drvdata(dev, priv);
|
|
|
+ new = pciserial_init_ports(dev, priv->board);
|
|
|
+ if (!IS_ERR(new)) {
|
|
|
+ pci_set_drvdata(dev, new);
|
|
|
+ kfree(priv);
|
|
|
}
|
|
|
}
|
|
|
|