1. 01 7月, 2015 1 次提交
  2. 23 6月, 2015 2 次提交
    • P
      drivers/net: remove all references to obsolete Ethernet-HOWTO · 138b15ed
      Paul Gortmaker 提交于
      This howto made sense in the 1990s when users had to manually configure
      ISA cards with jumpers or vendor utilities, but with the implementation
      of PCI it became increasingly less and less relevant, to the point where
      it has been well over a decade since I last updated it.  And there is
      no value in anyone else taking over updating it either.
      
      However the references to it continue to spread as boiler plate text
      from one Kconfig file into the next.  We are not doing end users any
      favours by pointing them at this old document, so lets kill it with
      fire, once and for all, to hopefully stop any further spread.
      
      No code is changed in this commit, just Kconfig help text.
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      138b15ed
    • S
      mvneta: add forgotten initialization of autonegotiation bits · 538761b7
      Stas Sergeev 提交于
      The commit 898b2970 ("mvneta: implement SGMII-based in-band link state
      signaling")
      changed mvneta_adjust_link() so that it does not clear the auto-negotiation
      bits in MVNETA_GMAC_AUTONEG_CONFIG register. This was necessary for
      auto-negotiation mode to work.
      Unfortunately I haven't checked if these bits are ever initialized.
      It appears they are not.
      This patch adds the missing initialization of the auto-negotiation bits
      in the MVNETA_GMAC_AUTONEG_CONFIG register.
      It fixes the following regression:
      https://www.mail-archive.com/netdev@vger.kernel.org/msg67928.html
      
      Since the patch was tested to fix a regression, it should be applied to
      stable tree.
      Tested-by: NArnaud Ebalard <arno@natisbad.org>
      
      CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
      CC: Florian Fainelli <f.fainelli@gmail.com>
      CC: netdev@vger.kernel.org
      CC: linux-kernel@vger.kernel.org
      CC: stable@vger.kernel.org
      Signed-off-by: NStas Sergeev <stsp@users.sourceforge.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      538761b7
  3. 01 6月, 2015 1 次提交
  4. 12 5月, 2015 1 次提交
  5. 27 4月, 2015 1 次提交
  6. 07 4月, 2015 1 次提交
  7. 04 4月, 2015 1 次提交
  8. 09 3月, 2015 1 次提交
  9. 27 1月, 2015 1 次提交
    • E
      net: mv643xx_eth: Fix highmem support in non-TSO egress path · 9e911414
      Ezequiel Garcia 提交于
      Commit 69ad0dd7
      Author: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
      Date:   Mon May 19 13:59:59 2014 -0300
      
          net: mv643xx_eth: Use dma_map_single() to map the skb fragments
      
      caused a nasty regression by removing the support for highmem skb
      fragments. By using page_address() to get the address of a fragment's
      page, we are assuming a lowmem page. However, such assumption is incorrect,
      as fragments can be in highmem pages, resulting in very nasty issues.
      
      This commit fixes this by using the skb_frag_dma_map() helper,
      which takes care of mapping the skb fragment properly. Additionally,
      the type of mapping is now tracked, so it can be unmapped using
      dma_unmap_page or dma_unmap_single when appropriate.
      
      This commit also fixes the error path in txq_init() to release the
      resources properly.
      
      Fixes: 69ad0dd7 ("net: mv643xx_eth: Use dma_map_single() to map the skb fragments")
      Reported-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9e911414
  10. 14 1月, 2015 1 次提交
  11. 09 12月, 2014 2 次提交
    • E
      net: mvneta: fix race condition in mvneta_tx() · 5f478b41
      Eric Dumazet 提交于
      mvneta_tx() dereferences skb to get skb->len too late,
      as hardware might have completed the transmit and TX completion
      could have freed the skb from another cpu.
      
      Fixes: 71f6d1b3 ("net: mvneta: replace Tx timer with a real interrupt")
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5f478b41
    • W
      net: mvneta: fix Tx interrupt delay · aebea2ba
      willy tarreau 提交于
      The mvneta driver sets the amount of Tx coalesce packets to 16 by
      default. Normally that does not cause any trouble since the driver
      uses a much larger Tx ring size (532 packets). But some sockets
      might run with very small buffers, much smaller than the equivalent
      of 16 packets. This is what ping is doing for example, by setting
      SNDBUF to 324 bytes rounded up to 2kB by the kernel.
      
      The problem is that there is no documented method to force a specific
      packet to emit an interrupt (eg: the last of the ring) nor is it
      possible to make the NIC emit an interrupt after a given delay.
      
      In this case, it causes trouble, because when ping sends packets over
      its raw socket, the few first packets leave the system, and the first
      15 packets will be emitted without an IRQ being generated, so without
      the skbs being freed. And since the socket's buffer is small, there's
      no way to reach that amount of packets, and the ping ends up with
      "send: no buffer available" after sending 6 packets. Running with 3
      instances of ping in parallel is enough to hide the problem, because
      with 6 packets per instance, that's 18 packets total, which is enough
      to grant a Tx interrupt before all are sent.
      
      The original driver in the LSP kernel worked around this design flaw
      by using a software timer to clean up the Tx descriptors. This timer
      was slow and caused terrible network performance on some Tx-bound
      workloads (such as routing) but was enough to make tools like ping
      work correctly.
      
      Instead here, we simply set the packet counts before interrupt to 1.
      This ensures that each packet sent will produce an interrupt. NAPI
      takes care of coalescing interrupts since the interrupt is disabled
      once generated.
      
      No measurable performance impact nor CPU usage were observed on small
      nor large packets, including when saturating the link on Tx, and this
      fixes tools like ping which rely on too small a send buffer. If one
      wants to increase this value for certain workloads where it is safe
      to do so, "ethtool -C $dev tx-frames" will override this default
      setting.
      
      This fix needs to be applied to stable kernels starting with 3.10.
      Tested-By: NMaggie Mae Roxas <maggie.mae.roxas@gmail.com>
      Signed-off-by: NWilly Tarreau <w@1wt.eu>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      aebea2ba
  12. 06 12月, 2014 3 次提交
  13. 27 11月, 2014 1 次提交
  14. 22 11月, 2014 1 次提交
  15. 13 11月, 2014 1 次提交
  16. 07 11月, 2014 1 次提交
  17. 02 11月, 2014 1 次提交
  18. 01 11月, 2014 1 次提交
  19. 28 10月, 2014 1 次提交
  20. 25 10月, 2014 3 次提交
  21. 20 10月, 2014 1 次提交
  22. 11 10月, 2014 1 次提交
    • G
      net: pxa168_eth: PXA168_ETH should depend on HAS_DMA · 3b3d136c
      Geert Uytterhoeven 提交于
      If NO_DMA=y:
      
      drivers/built-in.o: In function `rxq_deinit':
      pxa168_eth.c:(.text+0x2a2f2e): undefined reference to `dma_free_coherent'
      drivers/built-in.o: In function `txq_reclaim':
      pxa168_eth.c:(.text+0x2a3044): undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `txq_deinit':
      pxa168_eth.c:(.text+0x2a310a): undefined reference to `dma_free_coherent'
      drivers/built-in.o: In function `txq_init':
      pxa168_eth.c:(.text+0x2a3226): undefined reference to `dma_alloc_coherent'
      drivers/built-in.o: In function `rxq_init':
      pxa168_eth.c:(.text+0x2a32d4): undefined reference to `dma_alloc_coherent'
      drivers/built-in.o: In function `init_hash_table':
      pxa168_eth.c:(.text+0x2a3354): undefined reference to `dma_alloc_coherent'
      drivers/built-in.o: In function `rxq_refill':
      pxa168_eth.c:(.text+0x2a345a): undefined reference to `dma_map_single'
      drivers/built-in.o: In function `rxq_process':
      pxa168_eth.c:(.text+0x2a39cc): undefined reference to `dma_unmap_single'
      drivers/built-in.o: In function `pxa168_eth_remove':
      pxa168_eth.c:(.text+0x2a3b84): undefined reference to `dma_free_coherent'
      drivers/built-in.o: In function `pxa168_eth_start_xmit':
      pxa168_eth.c:(.text+0x2a3e8a): undefined reference to `dma_map_single'
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3b3d136c
  23. 06 10月, 2014 1 次提交
  24. 04 10月, 2014 1 次提交
  25. 01 10月, 2014 7 次提交
  26. 10 9月, 2014 1 次提交
  27. 26 8月, 2014 2 次提交