summaryrefslogtreecommitdiffstats
path: root/drivers/staging/fwserial
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/fwserial')
-rw-r--r--drivers/staging/fwserial/fwserial.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/staging/fwserial/fwserial.c b/drivers/staging/fwserial/fwserial.c
index 5d4d64a3ea8..99a2d2dbd32 100644
--- a/drivers/staging/fwserial/fwserial.c
+++ b/drivers/staging/fwserial/fwserial.c
@@ -955,6 +955,7 @@ static void fwserial_destroy(struct kref *kref)
for (j = 0; j < num_ports; ++j) {
fw_core_remove_address_handler(&ports[j]->rx_handler);
dma_fifo_free(&ports[j]->tx_fifo);
+ tty_port_destroy(&ports[j]->port);
kfree(ports[j]);
}
kfree(serial);
@@ -2369,8 +2370,10 @@ unregister_ttys:
return err;
free_ports:
- for (--i; i >= 0; --i)
+ for (--i; i >= 0; --i) {
+ tty_port_destroy(&serial->ports[i]->port);
kfree(serial->ports[i]);
+ }
kfree(serial);
return err;
}