Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
bnx2: Fix bug in bnx2_free_rx_mem().
irda: Add irda_skb_cb qdisc related padding
jme: Fixed a typo
net: kernel BUG at drivers/net/phy/mdio_bus.c:165!
drivers/net: starfire: Fix napi ->poll() weight handling
tlan: Fix pci memory unmapping
enc28j60: use netif_rx_ni() to deliver RX packets
tlan: Fix small (< 64 bytes) datagram transmissions
netfilter: ctnetlink: fix missing CTA_NAT_SEQ_UNSPEC

+32 -16
+3 -3
drivers/net/bnx2.c
··· 543 543 for (j = 0; j < bp->rx_max_pg_ring; j++) { 544 544 if (rxr->rx_pg_desc_ring[j]) 545 545 pci_free_consistent(bp->pdev, RXBD_RING_SIZE, 546 - rxr->rx_pg_desc_ring[i], 547 - rxr->rx_pg_desc_mapping[i]); 548 - rxr->rx_pg_desc_ring[i] = NULL; 546 + rxr->rx_pg_desc_ring[j], 547 + rxr->rx_pg_desc_mapping[j]); 548 + rxr->rx_pg_desc_ring[j] = NULL; 549 549 } 550 550 if (rxr->rx_pg_ring) 551 551 vfree(rxr->rx_pg_ring);
+1 -1
drivers/net/enc28j60.c
··· 959 959 ndev->stats.rx_packets++; 960 960 ndev->stats.rx_bytes += len; 961 961 ndev->last_rx = jiffies; 962 - netif_rx(skb); 962 + netif_rx_ni(skb); 963 963 } 964 964 } 965 965 /*
+1 -1
drivers/net/jme.h
··· 22 22 */ 23 23 24 24 #ifndef __JME_H_INCLUDED__ 25 - #define __JME_H_INCLUDEE__ 25 + #define __JME_H_INCLUDED__ 26 26 27 27 #define DRV_NAME "jme" 28 28 #define DRV_VERSION "1.0.3"
+3 -2
drivers/net/phy/mdio_bus.c
··· 105 105 return -EINVAL; 106 106 } 107 107 108 - bus->state = MDIOBUS_REGISTERED; 109 - 110 108 mutex_init(&bus->mdio_lock); 111 109 112 110 if (bus->reset) ··· 120 122 err = PTR_ERR(phydev); 121 123 } 122 124 } 125 + 126 + if (!err) 127 + bus->state = MDIOBUS_REGISTERED; 123 128 124 129 pr_info("%s: probed\n", bus->name); 125 130
+5
drivers/net/starfire.c
··· 1509 1509 desc->status = 0; 1510 1510 np->rx_done = (np->rx_done + 1) % DONE_Q_SIZE; 1511 1511 } 1512 + 1513 + if (*quota == 0) { /* out of rx quota */ 1514 + retcode = 1; 1515 + goto out; 1516 + } 1512 1517 writew(np->rx_done, np->base + CompletionQConsumerIdx); 1513 1518 1514 1519 out:
+15 -8
drivers/net/tlan.c
··· 1098 1098 dma_addr_t tail_list_phys; 1099 1099 u8 *tail_buffer; 1100 1100 unsigned long flags; 1101 + unsigned int txlen; 1101 1102 1102 1103 if ( ! priv->phyOnline ) { 1103 1104 TLAN_DBG( TLAN_DEBUG_TX, "TRANSMIT: %s PHY is not ready\n", ··· 1109 1108 1110 1109 if (skb_padto(skb, TLAN_MIN_FRAME_SIZE)) 1111 1110 return 0; 1111 + txlen = max(skb->len, (unsigned int)TLAN_MIN_FRAME_SIZE); 1112 1112 1113 1113 tail_list = priv->txList + priv->txTail; 1114 1114 tail_list_phys = priv->txListDMA + sizeof(TLanList) * priv->txTail; ··· 1127 1125 1128 1126 if ( bbuf ) { 1129 1127 tail_buffer = priv->txBuffer + ( priv->txTail * TLAN_MAX_FRAME_SIZE ); 1130 - skb_copy_from_linear_data(skb, tail_buffer, skb->len); 1128 + skb_copy_from_linear_data(skb, tail_buffer, txlen); 1131 1129 } else { 1132 1130 tail_list->buffer[0].address = pci_map_single(priv->pciDev, 1133 - skb->data, skb->len, 1131 + skb->data, txlen, 1134 1132 PCI_DMA_TODEVICE); 1135 1133 TLan_StoreSKB(tail_list, skb); 1136 1134 } 1137 1135 1138 - tail_list->frameSize = (u16) skb->len; 1139 - tail_list->buffer[0].count = TLAN_LAST_BUFFER | (u32) skb->len; 1136 + tail_list->frameSize = (u16) txlen; 1137 + tail_list->buffer[0].count = TLAN_LAST_BUFFER | (u32) txlen; 1140 1138 tail_list->buffer[1].count = 0; 1141 1139 tail_list->buffer[1].address = 0; 1142 1140 ··· 1433 1431 if ( ! bbuf ) { 1434 1432 struct sk_buff *skb = TLan_GetSKB(head_list); 1435 1433 pci_unmap_single(priv->pciDev, head_list->buffer[0].address, 1436 - skb->len, PCI_DMA_TODEVICE); 1434 + max(skb->len, 1435 + (unsigned int)TLAN_MIN_FRAME_SIZE), 1436 + PCI_DMA_TODEVICE); 1437 1437 dev_kfree_skb_any(skb); 1438 1438 head_list->buffer[8].address = 0; 1439 1439 head_list->buffer[9].address = 0; ··· 2059 2055 list = priv->txList + i; 2060 2056 skb = TLan_GetSKB(list); 2061 2057 if ( skb ) { 2062 - pci_unmap_single(priv->pciDev, 2063 - list->buffer[0].address, skb->len, 2064 - PCI_DMA_TODEVICE); 2058 + pci_unmap_single( 2059 + priv->pciDev, 2060 + list->buffer[0].address, 2061 + max(skb->len, 2062 + (unsigned int)TLAN_MIN_FRAME_SIZE), 2063 + PCI_DMA_TODEVICE); 2065 2064 dev_kfree_skb_any( skb ); 2066 2065 list->buffer[8].address = 0; 2067 2066 list->buffer[9].address = 0;
+3 -1
include/net/irda/irda_device.h
··· 135 135 136 136 /* 137 137 * Per-packet information we need to hide inside sk_buff 138 - * (must not exceed 48 bytes, check with struct sk_buff) 138 + * (must not exceed 48 bytes, check with struct sk_buff) 139 + * The default_qdisc_pad field is a temporary hack. 139 140 */ 140 141 struct irda_skb_cb { 142 + unsigned int default_qdisc_pad; 141 143 magic_t magic; /* Be sure that we can trust the information */ 142 144 __u32 next_speed; /* The Speed to be set *after* this frame */ 143 145 __u16 mtt; /* Minimum turn around time */