diff --git a/drivers/net/ipg.c b/drivers/net/ipg.c
index 50f0c17..780882f 100644
--- a/drivers/net/ipg.c
+++ b/drivers/net/ipg.c
@@ -776,7 +776,7 @@
 			pci_unmap_single(sp->pdev,
 				le64_to_cpu(rxfd->frag_info) & ~IPG_RFI_FRAGLEN,
 				sp->rx_buf_sz, PCI_DMA_FROMDEVICE);
-			IPG_DEV_KFREE_SKB(sp->RxBuff[i]);
+			dev_kfree_skb_irq(sp->RxBuff[i]);
 			sp->RxBuff[i] = NULL;
 		}
 
@@ -829,7 +829,7 @@
 		txfd->tfc = cpu_to_le64(IPG_TFC_TFDDONE);
 
 		if (sp->TxBuff[i]) {
-			IPG_DEV_KFREE_SKB(sp->TxBuff[i]);
+			dev_kfree_skb_irq(sp->TxBuff[i]);
 			sp->TxBuff[i] = NULL;
 		}
 
@@ -884,7 +884,7 @@
 				le64_to_cpu(txfd->frag_info) & ~IPG_TFI_FRAGLEN,
 				skb->len, PCI_DMA_TODEVICE);
 
-			IPG_DEV_KFREE_SKB(skb);
+			dev_kfree_skb_irq(skb);
 
 			sp->TxBuff[dirty] = NULL;
 		}
@@ -1112,7 +1112,7 @@
 		pci_unmap_single(sp->pdev,
 			le64_to_cpu(rxfd->frag_info & ~IPG_RFI_FRAGLEN),
 			sp->rx_buf_sz, PCI_DMA_FROMDEVICE);
-		IPG_DEV_KFREE_SKB(sp->RxBuff[entry]);
+		dev_kfree_skb_irq(sp->RxBuff[entry]);
 		sp->RxBuff[entry] = NULL;
 	}
 }
@@ -1180,7 +1180,7 @@
 				le64_to_cpu(rxfd->frag_info & ~IPG_RFI_FRAGLEN),
 				sp->rx_buf_sz, PCI_DMA_FROMDEVICE);
 
-			IPG_DEV_KFREE_SKB(sp->RxBuff[entry]);
+			dev_kfree_skb_irq(sp->RxBuff[entry]);
 			sp->RxBuff[entry] = NULL;
 		}
 		return ErrorPacket;
@@ -1197,7 +1197,7 @@
 	int framelen;
 
 	if (jumbo->FoundStart) {
-		IPG_DEV_KFREE_SKB(jumbo->skb);
+		dev_kfree_skb_irq(jumbo->skb);
 		jumbo->FoundStart = 0;
 		jumbo->CurrentSize = 0;
 		jumbo->skb = NULL;
@@ -1242,7 +1242,7 @@
 		return;
 
 	if (jumbo->FoundStart)
-		IPG_DEV_KFREE_SKB(jumbo->skb);
+		dev_kfree_skb_irq(jumbo->skb);
 
 	pci_unmap_single(pdev, le64_to_cpu(rxfd->frag_info & ~IPG_RFI_FRAGLEN),
 			 sp->rx_buf_sz, PCI_DMA_FROMDEVICE);
@@ -1281,7 +1281,7 @@
 				framelen=IPG_RXFRAG_SIZE;
 			 */
 			if (framelen > IPG_RXSUPPORT_SIZE)
-				IPG_DEV_KFREE_SKB(jumbo->skb);
+				dev_kfree_skb_irq(jumbo->skb);
 			else {
 				memcpy(skb_put(jumbo->skb, endframeLen),
 				       skb->data, endframeLen);
@@ -1301,7 +1301,7 @@
 
 		ipg_nic_rx_free_skb(dev);
 	} else {
-		IPG_DEV_KFREE_SKB(jumbo->skb);
+		dev_kfree_skb_irq(jumbo->skb);
 		jumbo->FoundStart = 0;
 		jumbo->CurrentSize = 0;
 		jumbo->skb = NULL;
@@ -1331,7 +1331,7 @@
 			ipg_nic_rx_free_skb(dev);
 		}
 	} else {
-		IPG_DEV_KFREE_SKB(jumbo->skb);
+		dev_kfree_skb_irq(jumbo->skb);
 		jumbo->FoundStart = 0;
 		jumbo->CurrentSize = 0;
 		jumbo->skb = NULL;
@@ -1472,7 +1472,7 @@
 					le64_to_cpu(info) & ~IPG_RFI_FRAGLEN,
 					sp->rx_buf_sz, PCI_DMA_FROMDEVICE);
 
-				IPG_DEV_KFREE_SKB(skb);
+				dev_kfree_skb_irq(skb);
 			}
 		} else {
 
@@ -1565,7 +1565,7 @@
 			pci_unmap_single(sp->pdev,
 				le64_to_cpu(rxfd->frag_info) & ~IPG_RFI_FRAGLEN,
 				sp->rx_buf_sz, PCI_DMA_FROMDEVICE);
-			IPG_DEV_KFREE_SKB(sp->RxBuff[entry]);
+			dev_kfree_skb_irq(sp->RxBuff[entry]);
 		}
 
 		/* Assure RX buffer is not reused by IPG. */
@@ -1738,7 +1738,7 @@
 		if (sp->RxBuff[i]) {
 			struct ipg_rx *rxfd = sp->rxd + i;
 
-			IPG_DEV_KFREE_SKB(sp->RxBuff[i]);
+			dev_kfree_skb_irq(sp->RxBuff[i]);
 			sp->RxBuff[i] = NULL;
 			pci_unmap_single(sp->pdev,
 				le64_to_cpu(rxfd->frag_info) & ~IPG_RFI_FRAGLEN,
@@ -1759,7 +1759,7 @@
 				le64_to_cpu(txfd->frag_info) & ~IPG_TFI_FRAGLEN,
 				sp->TxBuff[i]->len, PCI_DMA_TODEVICE);
 
-			IPG_DEV_KFREE_SKB(sp->TxBuff[i]);
+			dev_kfree_skb_irq(sp->TxBuff[i]);
 
 			sp->TxBuff[i] = NULL;
 		}
diff --git a/drivers/net/ipg.h b/drivers/net/ipg.h
index 017727f..9633b70 100644
--- a/drivers/net/ipg.h
+++ b/drivers/net/ipg.h
@@ -27,8 +27,6 @@
 
 #define DrvVer "2.09d"
 
-#define IPG_DEV_KFREE_SKB(skb) dev_kfree_skb_irq(skb)
-
 /*
  *	Constants
  */
