patch-2.3.48 linux/drivers/atm/zatm.c

Next file: linux/drivers/block/Config.in
Previous file: linux/drivers/atm/sba200e_ecd.data
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.47/linux/drivers/atm/zatm.c linux/drivers/atm/zatm.c
@@ -636,12 +636,12 @@
 			event_dump();
 		}
 		if (!size) {
-			kfree_skb(skb);
+			dev_kfree_skb_irq(skb);
 			if (vcc) vcc->stats->rx_err++;
 			continue;
 		}
 		if (!atm_charge(vcc,skb->truesize)) {
-			kfree_skb(skb);
+			dev_kfree_skb_irq(skb);
 			continue;
 		}
 		skb->len = size;
@@ -854,7 +854,7 @@
 		    uPD98401_TXBD_SIZE*ATM_SKB(skb)->iovcnt,GFP_ATOMIC);
 		if (!dsc) {
 			if (vcc->pop) vcc->pop(vcc,skb);
-			else dev_kfree_skb(skb);
+			else dev_kfree_skb_irq(skb);
 			return -EAGAIN;
 		}
 		/* @@@ should check alignment */
@@ -908,7 +908,7 @@
 	*ZATM_PRV_DSC(skb) = 0; /* mark as invalid */
 	zatm_vcc->txing--;
 	if (vcc->pop) vcc->pop(vcc,skb);
-	else dev_kfree_skb(skb);
+	else dev_kfree_skb_irq(skb);
 	while ((skb = skb_dequeue(&zatm_vcc->backlog)))
 		if (do_tx(skb) == RING_BUSY) {
 			skb_queue_head(&zatm_vcc->backlog,skb);
@@ -1395,7 +1395,7 @@
 	    command | PCI_COMMAND_IO | PCI_COMMAND_MASTER))) {
 		printk(KERN_ERR DEV_LABEL "(itf %d): can't enable IO (0x%02x)"
 		    "\n",dev->number,error);
-		return error;
+		return -EIO;
 	}
 	eprom_get_esi(dev);
 	printk(KERN_NOTICE DEV_LABEL "(itf %d): rev.%d,base=0x%x,irq=%d,",
@@ -1741,7 +1741,6 @@
 	if (!skb) {
 		printk(KERN_CRIT "!skb in zatm_send ?\n");
 		if (vcc->pop) vcc->pop(vcc,skb);
-		else dev_kfree_skb(skb);
 		return -EINVAL;
 	}
 	ATM_SKB(skb)->vcc = vcc;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)