From 37bf251a819632bf003ac8bcebaee2524d2c6aa4 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Tue, 15 Jul 2008 19:54:52 -0400 Subject: [PATCH] --- yaml --- r: 104922 b: refs/heads/master c: 1a4dc68b31fd04573ab3c554702372941a4fd46f h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/8139too.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 8fb508be7338..9fc1ecb3a719 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 152151daece9d5dfd86e652b95846072c0d2b566 +refs/heads/master: 1a4dc68b31fd04573ab3c554702372941a4fd46f diff --git a/trunk/drivers/net/8139too.c b/trunk/drivers/net/8139too.c index f62ac64e98fe..8a5b0d293f75 100644 --- a/trunk/drivers/net/8139too.c +++ b/trunk/drivers/net/8139too.c @@ -788,6 +788,7 @@ static int __devinit rtl8139_init_board (struct pci_dev *pdev, DPRINTK("PIO region size == 0x%02X\n", pio_len); DPRINTK("MMIO region size == 0x%02lX\n", mmio_len); +retry: if (use_io) { /* make sure PCI base addr 0 is PIO */ if (!(pio_flags & IORESOURCE_IO)) { @@ -836,9 +837,10 @@ static int __devinit rtl8139_init_board (struct pci_dev *pdev, /* ioremap MMIO region */ ioaddr = pci_iomap(pdev, 1, 0); if (ioaddr == NULL) { - dev_err(&pdev->dev, "cannot remap MMIO, aborting\n"); - rc = -EIO; - goto err_out; + dev_err(&pdev->dev, "cannot remap MMIO, trying PIO\n"); + pci_release_regions(pdev); + use_io = 1; + goto retry; } dev->base_addr = (long) ioaddr; tp->regs_len = mmio_len;