]> err.no Git - linux-2.6/blobdiff - drivers/net/wan/wanxl.c
Merge branch '83xx' into for_paulus
[linux-2.6] / drivers / net / wan / wanxl.c
index 9d3b51c3ef548f334e30f6fe9ef450deecc788ee..d564224cdca90494046fda6e51a95a9f6c99e25c 100644 (file)
@@ -577,8 +577,8 @@ static int __devinit wanxl_pci_init_one(struct pci_dev *pdev,
           We set both dma_mask and consistent_dma_mask to 28 bits
           and pray pci_alloc_consistent() will use this info. It should
           work on most platforms */
-       if (pci_set_consistent_dma_mask(pdev, 0x0FFFFFFF) ||
-           pci_set_dma_mask(pdev, 0x0FFFFFFF)) {
+       if (pci_set_consistent_dma_mask(pdev, DMA_28BIT_MASK) ||
+           pci_set_dma_mask(pdev, DMA_28BIT_MASK)) {
                printk(KERN_ERR "wanXL: No usable DMA configuration\n");
                return -EIO;
        }
@@ -634,7 +634,13 @@ static int __devinit wanxl_pci_init_one(struct pci_dev *pdev,
 
        /* set up PLX mapping */
        plx_phy = pci_resource_start(pdev, 0);
+
        card->plx = ioremap_nocache(plx_phy, 0x70);
+       if (!card->plx) {
+               printk(KERN_ERR "wanxl: ioremap() failed\n");
+               wanxl_pci_remove_one(pdev);
+               return -EFAULT;
+       }
 
 #if RESET_WHILE_LOADING
        wanxl_reset(card);
@@ -700,6 +706,12 @@ static int __devinit wanxl_pci_init_one(struct pci_dev *pdev,
        }
 
        mem = ioremap_nocache(mem_phy, PDM_OFFSET + sizeof(firmware));
+       if (!mem) {
+               printk(KERN_ERR "wanxl: ioremap() failed\n");
+               wanxl_pci_remove_one(pdev);
+               return -EFAULT;
+       }
+
        for (i = 0; i < sizeof(firmware); i += 4)
                writel(htonl(*(u32*)(firmware + i)), mem + PDM_OFFSET + i);
 
@@ -743,7 +755,7 @@ static int __devinit wanxl_pci_init_one(struct pci_dev *pdev,
               pci_name(pdev), plx_phy, ramsize / 1024, mem_phy, pdev->irq);
 
        /* Allocate IRQ */
-       if (request_irq(pdev->irq, wanxl_intr, SA_SHIRQ, "wanXL", card)) {
+       if (request_irq(pdev->irq, wanxl_intr, IRQF_SHARED, "wanXL", card)) {
                printk(KERN_WARNING "wanXL %s: could not allocate IRQ%i.\n",
                       pci_name(pdev), pdev->irq);
                wanxl_pci_remove_one(pdev);