Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git] / drivers / net / wan / wanxl.c
index 29a756d..b2031df 100644 (file)
@@ -149,7 +149,10 @@ static inline void wanxl_cable_intr(port_t *port)
        printk(KERN_INFO "%s: %s%s module, %s cable%s%s\n",
               port->dev->name, pm, dte, cable, dsr, dcd);
 
-       hdlc_set_carrier(value & STATUS_CABLE_DCD, port->dev);
+       if (value & STATUS_CABLE_DCD)
+               netif_carrier_on(port->dev);
+       else
+               netif_carrier_off(port->dev);
 }
 
 
@@ -634,7 +637,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 +709,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 +758,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);