diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/atm/eni.c | 27 | ||||
-rw-r--r-- | drivers/atm/fore200e.c | 4 | ||||
-rw-r--r-- | drivers/atm/he.c | 3 | ||||
-rw-r--r-- | drivers/atm/he.h | 2 | ||||
-rw-r--r-- | drivers/net/hamradio/6pack.c | 4 | ||||
-rw-r--r-- | drivers/net/hamradio/baycom_epp.c | 4 | ||||
-rw-r--r-- | drivers/net/hamradio/bpqether.c | 10 | ||||
-rw-r--r-- | drivers/net/hamradio/dmascc.c | 4 | ||||
-rw-r--r-- | drivers/net/hamradio/hdlcdrv.c | 4 | ||||
-rw-r--r-- | drivers/net/hamradio/mkiss.c | 4 | ||||
-rw-r--r-- | drivers/net/hamradio/scc.c | 5 | ||||
-rw-r--r-- | drivers/net/hamradio/yam.c | 4 | ||||
-rw-r--r-- | drivers/net/slip.c | 30 | ||||
-rw-r--r-- | drivers/net/tg3.c | 4 |
14 files changed, 44 insertions, 65 deletions
diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c index 78e34ee79df8..10da36934769 100644 --- a/drivers/atm/eni.c +++ b/drivers/atm/eni.c | |||
@@ -59,7 +59,6 @@ | |||
59 | * - doesn't support OAM cells | 59 | * - doesn't support OAM cells |
60 | * - eni_put_free may hang if not putting memory fragments that _complete_ | 60 | * - eni_put_free may hang if not putting memory fragments that _complete_ |
61 | * 2^n block (never happens in real life, though) | 61 | * 2^n block (never happens in real life, though) |
62 | * - keeps IRQ even if initialization fails | ||
63 | */ | 62 | */ |
64 | 63 | ||
65 | 64 | ||
@@ -1802,22 +1801,22 @@ static int __devinit eni_start(struct atm_dev *dev) | |||
1802 | if (request_irq(eni_dev->irq,&eni_int,SA_SHIRQ,DEV_LABEL,dev)) { | 1801 | if (request_irq(eni_dev->irq,&eni_int,SA_SHIRQ,DEV_LABEL,dev)) { |
1803 | printk(KERN_ERR DEV_LABEL "(itf %d): IRQ%d is already in use\n", | 1802 | printk(KERN_ERR DEV_LABEL "(itf %d): IRQ%d is already in use\n", |
1804 | dev->number,eni_dev->irq); | 1803 | dev->number,eni_dev->irq); |
1805 | return -EAGAIN; | 1804 | error = -EAGAIN; |
1805 | goto out; | ||
1806 | } | 1806 | } |
1807 | /* @@@ should release IRQ on error */ | ||
1808 | pci_set_master(eni_dev->pci_dev); | 1807 | pci_set_master(eni_dev->pci_dev); |
1809 | if ((error = pci_write_config_word(eni_dev->pci_dev,PCI_COMMAND, | 1808 | if ((error = pci_write_config_word(eni_dev->pci_dev,PCI_COMMAND, |
1810 | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | | 1809 | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | |
1811 | (eni_dev->asic ? PCI_COMMAND_PARITY | PCI_COMMAND_SERR : 0)))) { | 1810 | (eni_dev->asic ? PCI_COMMAND_PARITY | PCI_COMMAND_SERR : 0)))) { |
1812 | printk(KERN_ERR DEV_LABEL "(itf %d): can't enable memory+" | 1811 | printk(KERN_ERR DEV_LABEL "(itf %d): can't enable memory+" |
1813 | "master (0x%02x)\n",dev->number,error); | 1812 | "master (0x%02x)\n",dev->number,error); |
1814 | return error; | 1813 | goto free_irq; |
1815 | } | 1814 | } |
1816 | if ((error = pci_write_config_byte(eni_dev->pci_dev,PCI_TONGA_CTRL, | 1815 | if ((error = pci_write_config_byte(eni_dev->pci_dev,PCI_TONGA_CTRL, |
1817 | END_SWAP_DMA))) { | 1816 | END_SWAP_DMA))) { |
1818 | printk(KERN_ERR DEV_LABEL "(itf %d): can't set endian swap " | 1817 | printk(KERN_ERR DEV_LABEL "(itf %d): can't set endian swap " |
1819 | "(0x%02x)\n",dev->number,error); | 1818 | "(0x%02x)\n",dev->number,error); |
1820 | return error; | 1819 | goto free_irq; |
1821 | } | 1820 | } |
1822 | /* determine addresses of internal tables */ | 1821 | /* determine addresses of internal tables */ |
1823 | eni_dev->vci = eni_dev->ram; | 1822 | eni_dev->vci = eni_dev->ram; |
@@ -1839,7 +1838,8 @@ static int __devinit eni_start(struct atm_dev *dev) | |||
1839 | if (!eni_dev->free_list) { | 1838 | if (!eni_dev->free_list) { |
1840 | printk(KERN_ERR DEV_LABEL "(itf %d): couldn't get free page\n", | 1839 | printk(KERN_ERR DEV_LABEL "(itf %d): couldn't get free page\n", |
1841 | dev->number); | 1840 | dev->number); |
1842 | return -ENOMEM; | 1841 | error = -ENOMEM; |
1842 | goto free_irq; | ||
1843 | } | 1843 | } |
1844 | eni_dev->free_len = 0; | 1844 | eni_dev->free_len = 0; |
1845 | eni_put_free(eni_dev,buf,buffer_mem); | 1845 | eni_put_free(eni_dev,buf,buffer_mem); |
@@ -1855,17 +1855,26 @@ static int __devinit eni_start(struct atm_dev *dev) | |||
1855 | */ | 1855 | */ |
1856 | eni_out(0xffffffff,MID_IE); | 1856 | eni_out(0xffffffff,MID_IE); |
1857 | error = start_tx(dev); | 1857 | error = start_tx(dev); |
1858 | if (error) return error; | 1858 | if (error) goto free_list; |
1859 | error = start_rx(dev); | 1859 | error = start_rx(dev); |
1860 | if (error) return error; | 1860 | if (error) goto free_list; |
1861 | error = dev->phy->start(dev); | 1861 | error = dev->phy->start(dev); |
1862 | if (error) return error; | 1862 | if (error) goto free_list; |
1863 | eni_out(eni_in(MID_MC_S) | (1 << MID_INT_SEL_SHIFT) | | 1863 | eni_out(eni_in(MID_MC_S) | (1 << MID_INT_SEL_SHIFT) | |
1864 | MID_TX_LOCK_MODE | MID_DMA_ENABLE | MID_TX_ENABLE | MID_RX_ENABLE, | 1864 | MID_TX_LOCK_MODE | MID_DMA_ENABLE | MID_TX_ENABLE | MID_RX_ENABLE, |
1865 | MID_MC_S); | 1865 | MID_MC_S); |
1866 | /* Tonga uses SBus INTReq1 */ | 1866 | /* Tonga uses SBus INTReq1 */ |
1867 | (void) eni_in(MID_ISA); /* clear Midway interrupts */ | 1867 | (void) eni_in(MID_ISA); /* clear Midway interrupts */ |
1868 | return 0; | 1868 | return 0; |
1869 | |||
1870 | free_list: | ||
1871 | kfree(eni_dev->free_list); | ||
1872 | |||
1873 | free_irq: | ||
1874 | free_irq(eni_dev->irq, eni_dev); | ||
1875 | |||
1876 | out: | ||
1877 | return error; | ||
1869 | } | 1878 | } |
1870 | 1879 | ||
1871 | 1880 | ||
diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c index 196b33644627..9e65bfb85ba3 100644 --- a/drivers/atm/fore200e.c +++ b/drivers/atm/fore200e.c | |||
@@ -2792,8 +2792,6 @@ static void __devexit fore200e_pca_remove_one(struct pci_dev *pci_dev) | |||
2792 | 2792 | ||
2793 | fore200e = pci_get_drvdata(pci_dev); | 2793 | fore200e = pci_get_drvdata(pci_dev); |
2794 | 2794 | ||
2795 | list_del(&fore200e->entry); | ||
2796 | |||
2797 | fore200e_shutdown(fore200e); | 2795 | fore200e_shutdown(fore200e); |
2798 | kfree(fore200e); | 2796 | kfree(fore200e); |
2799 | pci_disable_device(pci_dev); | 2797 | pci_disable_device(pci_dev); |
@@ -2850,7 +2848,7 @@ fore200e_module_init(void) | |||
2850 | } | 2848 | } |
2851 | 2849 | ||
2852 | #ifdef CONFIG_ATM_FORE200E_PCA | 2850 | #ifdef CONFIG_ATM_FORE200E_PCA |
2853 | if (!pci_module_init(&fore200e_pca_driver)) | 2851 | if (!pci_register_driver(&fore200e_pca_driver)) |
2854 | return 0; | 2852 | return 0; |
2855 | #endif | 2853 | #endif |
2856 | 2854 | ||
diff --git a/drivers/atm/he.c b/drivers/atm/he.c index c2c31a5f4513..3022c548a132 100644 --- a/drivers/atm/he.c +++ b/drivers/atm/he.c | |||
@@ -70,6 +70,7 @@ | |||
70 | #include <linux/sched.h> | 70 | #include <linux/sched.h> |
71 | #include <linux/timer.h> | 71 | #include <linux/timer.h> |
72 | #include <linux/interrupt.h> | 72 | #include <linux/interrupt.h> |
73 | #include <linux/dma-mapping.h> | ||
73 | #include <asm/io.h> | 74 | #include <asm/io.h> |
74 | #include <asm/byteorder.h> | 75 | #include <asm/byteorder.h> |
75 | #include <asm/uaccess.h> | 76 | #include <asm/uaccess.h> |
@@ -371,7 +372,7 @@ he_init_one(struct pci_dev *pci_dev, const struct pci_device_id *pci_ent) | |||
371 | 372 | ||
372 | if (pci_enable_device(pci_dev)) | 373 | if (pci_enable_device(pci_dev)) |
373 | return -EIO; | 374 | return -EIO; |
374 | if (pci_set_dma_mask(pci_dev, HE_DMA_MASK) != 0) { | 375 | if (pci_set_dma_mask(pci_dev, DMA_32BIT_MASK) != 0) { |
375 | printk(KERN_WARNING "he: no suitable dma available\n"); | 376 | printk(KERN_WARNING "he: no suitable dma available\n"); |
376 | err = -EIO; | 377 | err = -EIO; |
377 | goto init_one_failure; | 378 | goto init_one_failure; |
diff --git a/drivers/atm/he.h b/drivers/atm/he.h index 1a903859343a..1dc277547a73 100644 --- a/drivers/atm/he.h +++ b/drivers/atm/he.h | |||
@@ -380,8 +380,6 @@ struct he_vcc | |||
380 | #define PCI_VENDOR_ID_FORE 0x1127 | 380 | #define PCI_VENDOR_ID_FORE 0x1127 |
381 | #define PCI_DEVICE_ID_FORE_HE 0x400 | 381 | #define PCI_DEVICE_ID_FORE_HE 0x400 |
382 | 382 | ||
383 | #define HE_DMA_MASK 0xffffffff | ||
384 | |||
385 | #define GEN_CNTL_0 0x40 | 383 | #define GEN_CNTL_0 0x40 |
386 | #define INT_PROC_ENBL (1<<25) | 384 | #define INT_PROC_ENBL (1<<25) |
387 | #define SLAVE_ENDIAN_MODE (1<<16) | 385 | #define SLAVE_ENDIAN_MODE (1<<16) |
diff --git a/drivers/net/hamradio/6pack.c b/drivers/net/hamradio/6pack.c index 067b353e1cbd..89454915b857 100644 --- a/drivers/net/hamradio/6pack.c +++ b/drivers/net/hamradio/6pack.c | |||
@@ -394,13 +394,11 @@ static void sp_bump(struct sixpack *sp, char cmd) | |||
394 | if ((skb = dev_alloc_skb(count)) == NULL) | 394 | if ((skb = dev_alloc_skb(count)) == NULL) |
395 | goto out_mem; | 395 | goto out_mem; |
396 | 396 | ||
397 | skb->dev = sp->dev; | ||
398 | ptr = skb_put(skb, count); | 397 | ptr = skb_put(skb, count); |
399 | *ptr++ = cmd; /* KISS command */ | 398 | *ptr++ = cmd; /* KISS command */ |
400 | 399 | ||
401 | memcpy(ptr, sp->cooked_buf + 1, count); | 400 | memcpy(ptr, sp->cooked_buf + 1, count); |
402 | skb->mac.raw = skb->data; | 401 | skb->protocol = ax25_type_trans(skb, sp->dev); |
403 | skb->protocol = htons(ETH_P_AX25); | ||
404 | netif_rx(skb); | 402 | netif_rx(skb); |
405 | sp->dev->last_rx = jiffies; | 403 | sp->dev->last_rx = jiffies; |
406 | sp->stats.rx_packets++; | 404 | sp->stats.rx_packets++; |
diff --git a/drivers/net/hamradio/baycom_epp.c b/drivers/net/hamradio/baycom_epp.c index e8cb87d906fc..1c563f905a59 100644 --- a/drivers/net/hamradio/baycom_epp.c +++ b/drivers/net/hamradio/baycom_epp.c | |||
@@ -601,12 +601,10 @@ static void do_rxpacket(struct net_device *dev) | |||
601 | bc->stats.rx_dropped++; | 601 | bc->stats.rx_dropped++; |
602 | return; | 602 | return; |
603 | } | 603 | } |
604 | skb->dev = dev; | ||
605 | cp = skb_put(skb, pktlen); | 604 | cp = skb_put(skb, pktlen); |
606 | *cp++ = 0; /* KISS kludge */ | 605 | *cp++ = 0; /* KISS kludge */ |
607 | memcpy(cp, bc->hdlcrx.buf, pktlen - 1); | 606 | memcpy(cp, bc->hdlcrx.buf, pktlen - 1); |
608 | skb->protocol = htons(ETH_P_AX25); | 607 | skb->protocol = ax25_type_trans(skb, dev); |
609 | skb->mac.raw = skb->data; | ||
610 | netif_rx(skb); | 608 | netif_rx(skb); |
611 | dev->last_rx = jiffies; | 609 | dev->last_rx = jiffies; |
612 | bc->stats.rx_packets++; | 610 | bc->stats.rx_packets++; |
diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c index ef1a359e2273..ba9f0580e1f9 100644 --- a/drivers/net/hamradio/bpqether.c +++ b/drivers/net/hamradio/bpqether.c | |||
@@ -211,11 +211,7 @@ static int bpq_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_ty | |||
211 | ptr = skb_push(skb, 1); | 211 | ptr = skb_push(skb, 1); |
212 | *ptr = 0; | 212 | *ptr = 0; |
213 | 213 | ||
214 | skb->dev = dev; | 214 | skb->protocol = ax25_type_trans(skb, dev); |
215 | skb->protocol = htons(ETH_P_AX25); | ||
216 | skb->mac.raw = skb->data; | ||
217 | skb->pkt_type = PACKET_HOST; | ||
218 | |||
219 | netif_rx(skb); | 215 | netif_rx(skb); |
220 | dev->last_rx = jiffies; | 216 | dev->last_rx = jiffies; |
221 | unlock: | 217 | unlock: |
@@ -272,8 +268,6 @@ static int bpq_xmit(struct sk_buff *skb, struct net_device *dev) | |||
272 | skb = newskb; | 268 | skb = newskb; |
273 | } | 269 | } |
274 | 270 | ||
275 | skb->protocol = htons(ETH_P_AX25); | ||
276 | |||
277 | ptr = skb_push(skb, 2); | 271 | ptr = skb_push(skb, 2); |
278 | 272 | ||
279 | *ptr++ = (size + 5) % 256; | 273 | *ptr++ = (size + 5) % 256; |
@@ -287,7 +281,7 @@ static int bpq_xmit(struct sk_buff *skb, struct net_device *dev) | |||
287 | return -ENODEV; | 281 | return -ENODEV; |
288 | } | 282 | } |
289 | 283 | ||
290 | skb->dev = dev; | 284 | skb->protocol = ax25_type_trans(skb, dev); |
291 | skb->nh.raw = skb->data; | 285 | skb->nh.raw = skb->data; |
292 | dev->hard_header(skb, dev, ETH_P_BPQ, bpq->dest_addr, NULL, 0); | 286 | dev->hard_header(skb, dev, ETH_P_BPQ, bpq->dest_addr, NULL, 0); |
293 | bpq->stats.tx_packets++; | 287 | bpq->stats.tx_packets++; |
diff --git a/drivers/net/hamradio/dmascc.c b/drivers/net/hamradio/dmascc.c index f3269b70a8c5..f515245a3fd0 100644 --- a/drivers/net/hamradio/dmascc.c +++ b/drivers/net/hamradio/dmascc.c | |||
@@ -1306,9 +1306,7 @@ static void rx_bh(void *arg) | |||
1306 | data = skb_put(skb, cb + 1); | 1306 | data = skb_put(skb, cb + 1); |
1307 | data[0] = 0; | 1307 | data[0] = 0; |
1308 | memcpy(&data[1], priv->rx_buf[i], cb); | 1308 | memcpy(&data[1], priv->rx_buf[i], cb); |
1309 | skb->dev = priv->dev; | 1309 | skb->protocol = ax25_type_trans(skb, priv->dev); |
1310 | skb->protocol = ntohs(ETH_P_AX25); | ||
1311 | skb->mac.raw = skb->data; | ||
1312 | netif_rx(skb); | 1310 | netif_rx(skb); |
1313 | priv->dev->last_rx = jiffies; | 1311 | priv->dev->last_rx = jiffies; |
1314 | priv->stats.rx_packets++; | 1312 | priv->stats.rx_packets++; |
diff --git a/drivers/net/hamradio/hdlcdrv.c b/drivers/net/hamradio/hdlcdrv.c index b89959a596d7..b4c836e4fe86 100644 --- a/drivers/net/hamradio/hdlcdrv.c +++ b/drivers/net/hamradio/hdlcdrv.c | |||
@@ -174,12 +174,10 @@ static void hdlc_rx_flag(struct net_device *dev, struct hdlcdrv_state *s) | |||
174 | s->stats.rx_dropped++; | 174 | s->stats.rx_dropped++; |
175 | return; | 175 | return; |
176 | } | 176 | } |
177 | skb->dev = dev; | ||
178 | cp = skb_put(skb, pkt_len); | 177 | cp = skb_put(skb, pkt_len); |
179 | *cp++ = 0; /* KISS kludge */ | 178 | *cp++ = 0; /* KISS kludge */ |
180 | memcpy(cp, s->hdlcrx.buffer, pkt_len - 1); | 179 | memcpy(cp, s->hdlcrx.buffer, pkt_len - 1); |
181 | skb->protocol = htons(ETH_P_AX25); | 180 | skb->protocol = ax25_type_trans(skb, dev); |
182 | skb->mac.raw = skb->data; | ||
183 | netif_rx(skb); | 181 | netif_rx(skb); |
184 | dev->last_rx = jiffies; | 182 | dev->last_rx = jiffies; |
185 | s->stats.rx_packets++; | 183 | s->stats.rx_packets++; |
diff --git a/drivers/net/hamradio/mkiss.c b/drivers/net/hamradio/mkiss.c index d9ea080aea0f..62790511098f 100644 --- a/drivers/net/hamradio/mkiss.c +++ b/drivers/net/hamradio/mkiss.c | |||
@@ -332,12 +332,10 @@ static void ax_bump(struct ax_disp *ax) | |||
332 | return; | 332 | return; |
333 | } | 333 | } |
334 | 334 | ||
335 | skb->dev = ax->dev; | ||
336 | spin_lock_bh(&ax->buflock); | 335 | spin_lock_bh(&ax->buflock); |
337 | memcpy(skb_put(skb,count), ax->rbuff, count); | 336 | memcpy(skb_put(skb,count), ax->rbuff, count); |
338 | spin_unlock_bh(&ax->buflock); | 337 | spin_unlock_bh(&ax->buflock); |
339 | skb->mac.raw = skb->data; | 338 | skb->protocol = ax25_type_trans(skb, ax->dev); |
340 | skb->protocol = htons(ETH_P_AX25); | ||
341 | netif_rx(skb); | 339 | netif_rx(skb); |
342 | ax->dev->last_rx = jiffies; | 340 | ax->dev->last_rx = jiffies; |
343 | ax->rx_packets++; | 341 | ax->rx_packets++; |
diff --git a/drivers/net/hamradio/scc.c b/drivers/net/hamradio/scc.c index ce9e7af020da..ece1b1a13186 100644 --- a/drivers/net/hamradio/scc.c +++ b/drivers/net/hamradio/scc.c | |||
@@ -1630,10 +1630,7 @@ static void scc_net_rx(struct scc_channel *scc, struct sk_buff *skb) | |||
1630 | scc->dev_stat.rx_packets++; | 1630 | scc->dev_stat.rx_packets++; |
1631 | scc->dev_stat.rx_bytes += skb->len; | 1631 | scc->dev_stat.rx_bytes += skb->len; |
1632 | 1632 | ||
1633 | skb->dev = scc->dev; | 1633 | skb->protocol = ax25_type_trans(skb, scc->dev); |
1634 | skb->protocol = htons(ETH_P_AX25); | ||
1635 | skb->mac.raw = skb->data; | ||
1636 | skb->pkt_type = PACKET_HOST; | ||
1637 | 1634 | ||
1638 | netif_rx(skb); | 1635 | netif_rx(skb); |
1639 | scc->dev->last_rx = jiffies; | 1636 | scc->dev->last_rx = jiffies; |
diff --git a/drivers/net/hamradio/yam.c b/drivers/net/hamradio/yam.c index fd7b00fe38e5..41213ef602dc 100644 --- a/drivers/net/hamradio/yam.c +++ b/drivers/net/hamradio/yam.c | |||
@@ -522,12 +522,10 @@ static inline void yam_rx_flag(struct net_device *dev, struct yam_port *yp) | |||
522 | ++yp->stats.rx_dropped; | 522 | ++yp->stats.rx_dropped; |
523 | } else { | 523 | } else { |
524 | unsigned char *cp; | 524 | unsigned char *cp; |
525 | skb->dev = dev; | ||
526 | cp = skb_put(skb, pkt_len); | 525 | cp = skb_put(skb, pkt_len); |
527 | *cp++ = 0; /* KISS kludge */ | 526 | *cp++ = 0; /* KISS kludge */ |
528 | memcpy(cp, yp->rx_buf, pkt_len - 1); | 527 | memcpy(cp, yp->rx_buf, pkt_len - 1); |
529 | skb->protocol = htons(ETH_P_AX25); | 528 | skb->protocol = ax25_type_trans(skb, dev); |
530 | skb->mac.raw = skb->data; | ||
531 | netif_rx(skb); | 529 | netif_rx(skb); |
532 | dev->last_rx = jiffies; | 530 | dev->last_rx = jiffies; |
533 | ++yp->stats.rx_packets; | 531 | ++yp->stats.rx_packets; |
diff --git a/drivers/net/slip.c b/drivers/net/slip.c index 4ce52f5f2419..8f7841c0374d 100644 --- a/drivers/net/slip.c +++ b/drivers/net/slip.c | |||
@@ -185,15 +185,12 @@ sl_alloc_bufs(struct slip *sl, int mtu) | |||
185 | /* Cleanup */ | 185 | /* Cleanup */ |
186 | err_exit: | 186 | err_exit: |
187 | #ifdef SL_INCLUDE_CSLIP | 187 | #ifdef SL_INCLUDE_CSLIP |
188 | if (cbuff) | 188 | kfree(cbuff); |
189 | kfree(cbuff); | ||
190 | if (slcomp) | 189 | if (slcomp) |
191 | slhc_free(slcomp); | 190 | slhc_free(slcomp); |
192 | #endif | 191 | #endif |
193 | if (xbuff) | 192 | kfree(xbuff); |
194 | kfree(xbuff); | 193 | kfree(rbuff); |
195 | if (rbuff) | ||
196 | kfree(rbuff); | ||
197 | return err; | 194 | return err; |
198 | } | 195 | } |
199 | 196 | ||
@@ -204,13 +201,13 @@ sl_free_bufs(struct slip *sl) | |||
204 | void * tmp; | 201 | void * tmp; |
205 | 202 | ||
206 | /* Free all SLIP frame buffers. */ | 203 | /* Free all SLIP frame buffers. */ |
207 | if ((tmp = xchg(&sl->rbuff, NULL)) != NULL) | 204 | tmp = xchg(&sl->rbuff, NULL); |
208 | kfree(tmp); | 205 | kfree(tmp); |
209 | if ((tmp = xchg(&sl->xbuff, NULL)) != NULL) | 206 | tmp = xchg(&sl->xbuff, NULL); |
210 | kfree(tmp); | 207 | kfree(tmp); |
211 | #ifdef SL_INCLUDE_CSLIP | 208 | #ifdef SL_INCLUDE_CSLIP |
212 | if ((tmp = xchg(&sl->cbuff, NULL)) != NULL) | 209 | tmp = xchg(&sl->cbuff, NULL); |
213 | kfree(tmp); | 210 | kfree(tmp); |
214 | if ((tmp = xchg(&sl->slcomp, NULL)) != NULL) | 211 | if ((tmp = xchg(&sl->slcomp, NULL)) != NULL) |
215 | slhc_free(tmp); | 212 | slhc_free(tmp); |
216 | #endif | 213 | #endif |
@@ -297,13 +294,10 @@ done_on_bh: | |||
297 | spin_unlock_bh(&sl->lock); | 294 | spin_unlock_bh(&sl->lock); |
298 | 295 | ||
299 | done: | 296 | done: |
300 | if (xbuff) | 297 | kfree(xbuff); |
301 | kfree(xbuff); | 298 | kfree(rbuff); |
302 | if (rbuff) | ||
303 | kfree(rbuff); | ||
304 | #ifdef SL_INCLUDE_CSLIP | 299 | #ifdef SL_INCLUDE_CSLIP |
305 | if (cbuff) | 300 | kfree(cbuff); |
306 | kfree(cbuff); | ||
307 | #endif | 301 | #endif |
308 | return err; | 302 | return err; |
309 | } | 303 | } |
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index f65ca3b2da6f..10d476153ee0 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -61,8 +61,8 @@ | |||
61 | 61 | ||
62 | #define DRV_MODULE_NAME "tg3" | 62 | #define DRV_MODULE_NAME "tg3" |
63 | #define PFX DRV_MODULE_NAME ": " | 63 | #define PFX DRV_MODULE_NAME ": " |
64 | #define DRV_MODULE_VERSION "3.25" | 64 | #define DRV_MODULE_VERSION "3.26" |
65 | #define DRV_MODULE_RELDATE "March 24, 2005" | 65 | #define DRV_MODULE_RELDATE "April 24, 2005" |
66 | 66 | ||
67 | #define TG3_DEF_MAC_MODE 0 | 67 | #define TG3_DEF_MAC_MODE 0 |
68 | #define TG3_DEF_RX_MODE 0 | 68 | #define TG3_DEF_RX_MODE 0 |