Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
authorDavid S. Miller <davem@davemloft.net>
Wed, 10 Dec 2014 20:48:20 +0000 (15:48 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 10 Dec 2014 20:48:20 +0000 (15:48 -0500)
Conflicts:
drivers/net/ethernet/amd/xgbe/xgbe-desc.c
drivers/net/ethernet/renesas/sh_eth.c

Overlapping changes in both conflict cases.

Signed-off-by: David S. Miller <davem@davemloft.net>
20 files changed:
1  2 
arch/x86/net/bpf_jit_comp.c
drivers/net/bonding/bond_netlink.c
drivers/net/ethernet/amd/xgbe/xgbe-desc.c
drivers/net/ethernet/amd/xgbe/xgbe-drv.c
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
drivers/net/ethernet/chelsio/cxgb4/cxgb4.h
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
drivers/net/ethernet/marvell/mvneta.c
drivers/net/ethernet/marvell/pxa168_eth.c
drivers/net/ethernet/marvell/sky2.c
drivers/net/ethernet/renesas/sh_eth.c
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
drivers/net/xen-netfront.c
include/uapi/linux/Kbuild
net/core/rtnetlink.c
net/ipv4/tcp_ipv4.c
net/ipv6/tcp_ipv6.c
net/openvswitch/flow_netlink.c
net/sched/Kconfig

Simple merge
Simple merge
@@@ -450,30 -354,8 +450,29 @@@ static void xgbe_unmap_rdata(struct xgb
                rdata->skb = NULL;
        }
  
 -      rdata->tso_header = 0;
 -      rdata->len = 0;
 +      if (rdata->rx.hdr.pa.pages)
 +              put_page(rdata->rx.hdr.pa.pages);
 +
 +      if (rdata->rx.hdr.pa_unmap.pages) {
 +              dma_unmap_page(pdata->dev, rdata->rx.hdr.pa_unmap.pages_dma,
 +                             rdata->rx.hdr.pa_unmap.pages_len,
 +                             DMA_FROM_DEVICE);
 +              put_page(rdata->rx.hdr.pa_unmap.pages);
 +      }
 +
 +      if (rdata->rx.buf.pa.pages)
 +              put_page(rdata->rx.buf.pa.pages);
 +
 +      if (rdata->rx.buf.pa_unmap.pages) {
 +              dma_unmap_page(pdata->dev, rdata->rx.buf.pa_unmap.pages_dma,
 +                             rdata->rx.buf.pa_unmap.pages_len,
 +                             DMA_FROM_DEVICE);
 +              put_page(rdata->rx.buf.pa_unmap.pages);
 +      }
 +
 +      memset(&rdata->tx, 0, sizeof(rdata->tx));
 +      memset(&rdata->rx, 0, sizeof(rdata->rx));
 +
-       rdata->interrupt = 0;
        rdata->mapped_as_page = 0;
  
        if (rdata->state_saved) {
Simple merge
Simple merge
@@@ -1142,11 -1132,13 +1133,13 @@@ static void sh_eth_ring_format(struct n
  
                /* RX descriptor */
                rxdesc = &mdp->rx_ring[i];
 -              rxdesc->addr = virt_to_phys(PTR_ALIGN(skb->data, 4));
+               /* The size of the buffer is a multiple of 16 bytes. */
+               rxdesc->buffer_length = ALIGN(mdp->rx_buf_sz, 16);
+               dma_map_single(&ndev->dev, skb->data, rxdesc->buffer_length,
+                              DMA_FROM_DEVICE);
 +              rxdesc->addr = virt_to_phys(skb->data);
                rxdesc->status = cpu_to_edmac(mdp, RD_RACT | RD_RFP);
  
-               /* The size of the buffer is 16 byte boundary. */
-               rxdesc->buffer_length = ALIGN(mdp->rx_buf_sz, 16);
                /* Rx descriptor address set */
                if (i == 0) {
                        sh_eth_write(ndev, mdp->rx_desc_dma, RDLAR);
@@@ -1399,9 -1390,8 +1392,10 @@@ static int sh_eth_rx(struct net_device 
        struct sk_buff *skb;
        u16 pkt_len = 0;
        u32 desc_status;
+       int skbuff_size = mdp->rx_buf_sz + SH_ETH_RX_ALIGN - 1;
  
 +      boguscnt = min(boguscnt, *quota);
 +      limit = boguscnt;
        rxdesc = &mdp->rx_ring[entry];
        while (!(rxdesc->status & cpu_to_edmac(mdp, RD_RACT))) {
                desc_status = edmac_to_cpu(mdp, rxdesc->status);
                        mdp->rx_skbuff[entry] = skb;
                        if (skb == NULL)
                                break;  /* Better luck next round. */
-                       dma_map_single(&ndev->dev, skb->data, mdp->rx_buf_sz,
-                                      DMA_FROM_DEVICE);
                        sh_eth_set_receive_align(skb);
+                       dma_map_single(&ndev->dev, skb->data,
+                                      rxdesc->buffer_length, DMA_FROM_DEVICE);
  
                        skb_checksum_none_assert(skb);
 -                      rxdesc->addr = virt_to_phys(PTR_ALIGN(skb->data, 4));
 +                      rxdesc->addr = virt_to_phys(skb->data);
                }
                if (entry >= mdp->num_rx_ring - 1)
                        rxdesc->status |=
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge