summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/tty/mxser.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/tty/mxser.c b/drivers/tty/mxser.c
index ea5e61a5a173..30b3a5ab6bea 100644
--- a/drivers/tty/mxser.c
+++ b/drivers/tty/mxser.c
@@ -1910,7 +1910,7 @@ static int mxser_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
struct mxser_board *brd;
- unsigned int i;
+ unsigned int i, base;
unsigned long ioaddress;
unsigned short nports = MXSER_NPORTS(ent->driver_data);
struct device *tty_dev;
@@ -1927,7 +1927,8 @@ static int mxser_probe(struct pci_dev *pdev,
}
brd = &mxser_boards[i];
- brd->idx = i * MXSER_PORTS_PER_BOARD;
+ brd->idx = i;
+ base = i * MXSER_PORTS_PER_BOARD;
retval = pcim_enable_device(pdev);
if (retval) {
@@ -1966,12 +1967,12 @@ static int mxser_probe(struct pci_dev *pdev,
for (i = 0; i < nports; i++) {
tty_dev = tty_port_register_device(&brd->ports[i].port,
- mxvar_sdriver, brd->idx + i, &pdev->dev);
+ mxvar_sdriver, base + i, &pdev->dev);
if (IS_ERR(tty_dev)) {
retval = PTR_ERR(tty_dev);
for (; i > 0; i--)
tty_unregister_device(mxvar_sdriver,
- brd->idx + i - 1);
+ base + i - 1);
goto err_relbrd;
}
}
@@ -1991,10 +1992,10 @@ err:
static void mxser_remove(struct pci_dev *pdev)
{
struct mxser_board *brd = pci_get_drvdata(pdev);
- unsigned int i;
+ unsigned int i, base = brd->idx * MXSER_PORTS_PER_BOARD;
for (i = 0; i < brd->nports; i++) {
- tty_unregister_device(mxvar_sdriver, brd->idx + i);
+ tty_unregister_device(mxvar_sdriver, base + i);
tty_port_destroy(&brd->ports[i].port);
}