Commit 354ade90 authored by David S. Miller's avatar David S. Miller

Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

Conflicts:

	drivers/net/enc28j60.c
parents 9f690db7 bb5f133d
...@@ -956,7 +956,7 @@ static void enc28j60_hw_rx(struct net_device *ndev) ...@@ -956,7 +956,7 @@ static void enc28j60_hw_rx(struct net_device *ndev)
/* update statistics */ /* update statistics */
ndev->stats.rx_packets++; ndev->stats.rx_packets++;
ndev->stats.rx_bytes += len; ndev->stats.rx_bytes += len;
netif_rx(skb); netif_rx_ni(skb);
} }
} }
/* /*
......
...@@ -1098,6 +1098,7 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev ) ...@@ -1098,6 +1098,7 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
dma_addr_t tail_list_phys; dma_addr_t tail_list_phys;
u8 *tail_buffer; u8 *tail_buffer;
unsigned long flags; unsigned long flags;
unsigned int txlen;
if ( ! priv->phyOnline ) { if ( ! priv->phyOnline ) {
TLAN_DBG( TLAN_DEBUG_TX, "TRANSMIT: %s PHY is not ready\n", TLAN_DBG( TLAN_DEBUG_TX, "TRANSMIT: %s PHY is not ready\n",
...@@ -1108,6 +1109,7 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev ) ...@@ -1108,6 +1109,7 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
if (skb_padto(skb, TLAN_MIN_FRAME_SIZE)) if (skb_padto(skb, TLAN_MIN_FRAME_SIZE))
return 0; return 0;
txlen = max(skb->len, (unsigned int)TLAN_MIN_FRAME_SIZE);
tail_list = priv->txList + priv->txTail; tail_list = priv->txList + priv->txTail;
tail_list_phys = priv->txListDMA + sizeof(TLanList) * priv->txTail; tail_list_phys = priv->txListDMA + sizeof(TLanList) * priv->txTail;
...@@ -1125,16 +1127,16 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev ) ...@@ -1125,16 +1127,16 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
if ( bbuf ) { if ( bbuf ) {
tail_buffer = priv->txBuffer + ( priv->txTail * TLAN_MAX_FRAME_SIZE ); tail_buffer = priv->txBuffer + ( priv->txTail * TLAN_MAX_FRAME_SIZE );
skb_copy_from_linear_data(skb, tail_buffer, skb->len); skb_copy_from_linear_data(skb, tail_buffer, txlen);
} else { } else {
tail_list->buffer[0].address = pci_map_single(priv->pciDev, tail_list->buffer[0].address = pci_map_single(priv->pciDev,
skb->data, skb->len, skb->data, txlen,
PCI_DMA_TODEVICE); PCI_DMA_TODEVICE);
TLan_StoreSKB(tail_list, skb); TLan_StoreSKB(tail_list, skb);
} }
tail_list->frameSize = (u16) skb->len; tail_list->frameSize = (u16) txlen;
tail_list->buffer[0].count = TLAN_LAST_BUFFER | (u32) skb->len; tail_list->buffer[0].count = TLAN_LAST_BUFFER | (u32) txlen;
tail_list->buffer[1].count = 0; tail_list->buffer[1].count = 0;
tail_list->buffer[1].address = 0; tail_list->buffer[1].address = 0;
...@@ -1431,7 +1433,9 @@ static u32 TLan_HandleTxEOF( struct net_device *dev, u16 host_int ) ...@@ -1431,7 +1433,9 @@ static u32 TLan_HandleTxEOF( struct net_device *dev, u16 host_int )
if ( ! bbuf ) { if ( ! bbuf ) {
struct sk_buff *skb = TLan_GetSKB(head_list); struct sk_buff *skb = TLan_GetSKB(head_list);
pci_unmap_single(priv->pciDev, head_list->buffer[0].address, pci_unmap_single(priv->pciDev, head_list->buffer[0].address,
skb->len, PCI_DMA_TODEVICE); max(skb->len,
(unsigned int)TLAN_MIN_FRAME_SIZE),
PCI_DMA_TODEVICE);
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);
head_list->buffer[8].address = 0; head_list->buffer[8].address = 0;
head_list->buffer[9].address = 0; head_list->buffer[9].address = 0;
...@@ -2053,9 +2057,12 @@ static void TLan_FreeLists( struct net_device *dev ) ...@@ -2053,9 +2057,12 @@ static void TLan_FreeLists( struct net_device *dev )
list = priv->txList + i; list = priv->txList + i;
skb = TLan_GetSKB(list); skb = TLan_GetSKB(list);
if ( skb ) { if ( skb ) {
pci_unmap_single(priv->pciDev, pci_unmap_single(
list->buffer[0].address, skb->len, priv->pciDev,
PCI_DMA_TODEVICE); list->buffer[0].address,
max(skb->len,
(unsigned int)TLAN_MIN_FRAME_SIZE),
PCI_DMA_TODEVICE);
dev_kfree_skb_any( skb ); dev_kfree_skb_any( skb );
list->buffer[8].address = 0; list->buffer[8].address = 0;
list->buffer[9].address = 0; list->buffer[9].address = 0;
......
...@@ -141,6 +141,7 @@ enum ctattr_protonat { ...@@ -141,6 +141,7 @@ enum ctattr_protonat {
#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1) #define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1)
enum ctattr_natseq { enum ctattr_natseq {
CTA_NAT_SEQ_UNSPEC,
CTA_NAT_SEQ_CORRECTION_POS, CTA_NAT_SEQ_CORRECTION_POS,
CTA_NAT_SEQ_OFFSET_BEFORE, CTA_NAT_SEQ_OFFSET_BEFORE,
CTA_NAT_SEQ_OFFSET_AFTER, CTA_NAT_SEQ_OFFSET_AFTER,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment