Skip to content
  1. Mar 27, 2013
    • Pravin B Shelar's avatar
      GRE: Refactor GRE tunneling code. · c5441932
      Pravin B Shelar authored
      
      
      Following patch refactors GRE code into ip tunneling code and GRE
      specific code. Common tunneling code is moved to ip_tunnel module.
      ip_tunnel module is written as generic library which can be used
      by different tunneling implementations.
      
      ip_tunnel module contains following components:
       - packet xmit and rcv generic code. xmit flow looks like
         (gre_xmit/ipip_xmit)->ip_tunnel_xmit->ip_local_out.
       - hash table of all devices.
       - lookup for tunnel devices.
       - control plane operations like device create, destroy, ioctl, netlink
         operations code.
       - registration for tunneling modules, like gre, ipip etc.
       - define single pcpu_tstats dev->tstats.
       - struct tnl_ptk_info added to pass parsed tunnel packet parameters.
      
      ipip.h header is renamed to ip_tunnel.h
      
      Signed-off-by: default avatarPravin B Shelar <pshelar@nicira.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c5441932
  2. Mar 26, 2013
  3. Mar 25, 2013
  4. Mar 23, 2013
  5. Mar 22, 2013
    • Eric Dumazet's avatar
      tcp: preserve ACK clocking in TSO · f4541d60
      Eric Dumazet authored
      
      
      A long standing problem with TSO is the fact that tcp_tso_should_defer()
      rearms the deferred timer, while it should not.
      
      Current code leads to following bad bursty behavior :
      
      20:11:24.484333 IP A > B: . 297161:316921(19760) ack 1 win 119
      20:11:24.484337 IP B > A: . ack 263721 win 1117
      20:11:24.485086 IP B > A: . ack 265241 win 1117
      20:11:24.485925 IP B > A: . ack 266761 win 1117
      20:11:24.486759 IP B > A: . ack 268281 win 1117
      20:11:24.487594 IP B > A: . ack 269801 win 1117
      20:11:24.488430 IP B > A: . ack 271321 win 1117
      20:11:24.489267 IP B > A: . ack 272841 win 1117
      20:11:24.490104 IP B > A: . ack 274361 win 1117
      20:11:24.490939 IP B > A: . ack 275881 win 1117
      20:11:24.491775 IP B > A: . ack 277401 win 1117
      20:11:24.491784 IP A > B: . 316921:332881(15960) ack 1 win 119
      20:11:24.492620 IP B > A: . ack 278921 win 1117
      20:11:24.493448 IP B > A: . ack 280441 win 1117
      20:11:24.494286 IP B > A: . ack 281961 win 1117
      20:11:24.495122 IP B > A: . ack 283481 win 1117
      20:11:24.495958 IP B > A: . ack 285001 win 1117
      20:11:24.496791 IP B > A: . ack 286521 win 1117
      20:11:24.497628 IP B > A: . ack 288041 win 1117
      20:11:24.498459 IP B > A: . ack 289561 win 1117
      20:11:24.499296 IP B > A: . ack 291081 win 1117
      20:11:24.500133 IP B > A: . ack 292601 win 1117
      20:11:24.500970 IP B > A: . ack 294121 win 1117
      20:11:24.501388 IP B > A: . ack 295641 win 1117
      20:11:24.501398 IP A > B: . 332881:351881(19000) ack 1 win 119
      
      While the expected behavior is more like :
      
      20:19:49.259620 IP A > B: . 197601:202161(4560) ack 1 win 119
      20:19:49.260446 IP B > A: . ack 154281 win 1212
      20:19:49.261282 IP B > A: . ack 155801 win 1212
      20:19:49.262125 IP B > A: . ack 157321 win 1212
      20:19:49.262136 IP A > B: . 202161:206721(4560) ack 1 win 119
      20:19:49.262958 IP B > A: . ack 158841 win 1212
      20:19:49.263795 IP B > A: . ack 160361 win 1212
      20:19:49.264628 IP B > A: . ack 161881 win 1212
      20:19:49.264637 IP A > B: . 206721:211281(4560) ack 1 win 119
      20:19:49.265465 IP B > A: . ack 163401 win 1212
      20:19:49.265886 IP B > A: . ack 164921 win 1212
      20:19:49.266722 IP B > A: . ack 166441 win 1212
      20:19:49.266732 IP A > B: . 211281:215841(4560) ack 1 win 119
      20:19:49.267559 IP B > A: . ack 167961 win 1212
      20:19:49.268394 IP B > A: . ack 169481 win 1212
      20:19:49.269232 IP B > A: . ack 171001 win 1212
      20:19:49.269241 IP A > B: . 215841:221161(5320) ack 1 win 119
      
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Yuchung Cheng <ycheng@google.com>
      Cc: Van Jacobson <vanj@google.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Cc: Nandita Dukkipati <nanditad@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f4541d60
    • Thomas Graf's avatar
      rtnetlink: Remove passing of attributes into rtnl_doit functions · 661d2967
      Thomas Graf authored
      
      
      With decnet converted, we can finally get rid of rta_buf and its
      computations around it. It also gets rid of the minimal header
      length verification since all message handlers do that explicitly
      anyway.
      
      Signed-off-by: default avatarThomas Graf <tgraf@suug.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      661d2967
    • Thomas Graf's avatar
      decnet: Parse netlink attributes on our own · 58d7d8f9
      Thomas Graf authored
      
      
      decnet is the only subsystem left that is relying on the global
      netlink attribute buffer rta_buf. It's horrible design and we
      want to get rid of it.
      
      This converts all of decnet to do implicit attribute parsing. It
      also gets rid of the error prone struct dn_kern_rta.
      
      Yes, the fib_magic() stuff is not pretty.
      
      It's compiled tested but I need someone with appropriate hardware
      to test the patch since I don't have access to it.
      
      Cc: linux-decnet-user@lists.sourceforge.net
      Signed-off-by: default avatarThomas Graf <tgraf@suug.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      58d7d8f9
    • David S. Miller's avatar
      Merge branch 'mv643xx_eth' · 9b924dbd
      David S. Miller authored
      
      
      Florian Fainelli says:
      
      ====================
      This patch converts the mv643xx_eth driver to use the mvmdio MDIO bus driver
      instead of rolling its own implementation. As a result, all users of this
      mv643xx_eth driver are converted to register an "orion-mdio" platform_device.
      The mvmdio driver is also updated to support an interrupt line which reports
      SMI error/completion, and to allow traditionnal platform device registration
      instead of just device tree.
      
      David, I think it makes sense for you to merge all of this, since we do
      not want the architecture files to be desynchronized from the mv643xx_eth to
      avoid runtime breakage. The potential for merge conflicts should be very small.
      ====================
      
      Tested-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Tested-by: default avatarJason Cooper <jason@lakedaemon.net>
      Acked-by: default avatarJason Cooper <jason@lakedaemon.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9b924dbd
    • Florian Fainelli's avatar
      mv643xx_eth: convert to use the Marvell Orion MDIO driver · c3a07134
      Florian Fainelli authored
      
      
      This patch converts the Marvell MV643XX ethernet driver to use the
      Marvell Orion MDIO driver. As a result, PowerPC and ARM platforms
      registering the Marvell MV643XX ethernet driver are also updated to
      register a Marvell Orion MDIO driver. This driver voluntarily overlaps
      with the Marvell Ethernet shared registers because it will use a subset
      of this shared register (shared_base + 0x4 to shared_base + 0x84). The
      Ethernet driver is also updated to look up for a PHY device using the
      Orion MDIO bus driver.
      
      For ARM and PowerPC we register a single instance of the "mvmdio" driver
      in the system like it used to be done with the use of the "shared_smi"
      platform_data cookie on ARM.
      
      Note that it is safe to register the mvmdio driver only for the "ge00"
      instance of the driver because this "ge00" interface is guaranteed to
      always be explicitely registered by consumers of
      arch/arm/plat-orion/common.c and other instances (ge01, ge10 and ge11)
      were all pointing their shared_smi to ge00. For PowerPC the in-tree
      Device Tree Source files mention only one MV643XX ethernet MAC instance
      so the MDIO bus driver is registered only when id == 0.
      
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c3a07134
    • Florian Fainelli's avatar
      net: mvmdio: enhance driver to support SMI error/done interrupts · 2ec98521
      Florian Fainelli authored
      
      
      This patch enhances the "mvmdio" to support a SMI error/done interrupt
      line which can be used along with a wait queue instead of doing
      busy-waiting on the registers. This is a feature which is available in
      the mv643xx_eth SMI code and thus reduces again the gap between the two.
      
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2ec98521
    • Florian Fainelli's avatar
      net: mvmdio: rename base register cookie from smireg to regs · 3712b717
      Florian Fainelli authored
      
      
      This patch renames the base register cookie in the mvmdio drive from
      "smireg" to "regs" since a subsequent patch is going to use an ioremap()
      cookie whose size is larger than a single register of 4 bytes. No
      functionnal code change introduced.
      
      Acked-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3712b717
    • Florian Fainelli's avatar
      net: mvmdio: allow platform device style registration · 7111b717
      Florian Fainelli authored
      
      
      This patch changes the mvmdio driver not to use device tree
      helper functions such as of_mdiobus_register() and of_iomap() so we can
      instantiate this driver using a classic platform_device approach. Use
      the device manager helper to ioremap() the base register cookie so we
      get automatic freeing upon error and removal. This change is harmless
      for Device Tree platforms because they will get the driver be registered
      the same way as it was before.
      
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7111b717
    • Wei Yongjun's avatar
      s6gmac: fix error return code in s6gmac_probe() · 43d68690
      Wei Yongjun authored
      
      
      Fix to return a negative error code from the error handling
      case instead of 0, as returned elsewhere in this function.
      
      Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      43d68690