1. 23 Oct, 2012 3 commits
    • Veaceslav Falico's avatar
      pch_gbe: don't reset MAC_RX on FIFO overflow · a35279f0
      Veaceslav Falico authored
      Currently, when FIFO_ERR happens, we stop the dma, wait for it to become
      idle and then reset the whole MAC_RX logic (and after that we must re-set
      multicast addresses and also re-enable MAC_RX when we're finally ready to
      accept new packets). This leads to CRC errors on high number of incoming
      packets and is not needed according to the datasheet.
      
      This patch fixes it by the following steps:
      
      1) remove this reset in pch_gbe_stop_receive(), which causes some functions
      to not be used anywhere
      2) remove already unused functions pch_gbe_wait_clr_bit_irq() and
      pch_gbe_mac_reset_rx() to correctly build
      3) move pch_gbe_enable_mac_rx() out of pch_gbe_start_receive() to
      pch_gbe_up() where it's only needed after we've removed the MAC_RX reset
      4) rename pch_gbe_start/stop_receive() to pch_gbe_enable/disable_dma_rx()
      to more precisely reflect what the functions are now doing.
      
      After these changes we already don't see the CRC errors and gain some
      increase in RX processing speed.
      Signed-off-by: default avatarVeaceslav Falico <vfalico@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a35279f0
    • Veaceslav Falico's avatar
      pch_gbe: don't re-set RX_FIFO_ERR flag in napi_poll · 9c0314e1
      Veaceslav Falico authored
      If we were in RX_FIFO_ERR state and entered pch_gbe_napi_poll(), we'll
      anyway clean some rx space and thus can continue to receive more packets.
      Currently, we re-set the RX_FIFO_ERR in situations when we've exhausted our
      budget for RX cleaning or cleaned some TX packets. Removing it gives us
      +20%-40% speed increase and a lot less of RX_FIFO_ERRors reported.
      Signed-off-by: default avatarVeaceslav Falico <vfalico@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9c0314e1
    • Veaceslav Falico's avatar
      pch_gbe: create functions for MAC_RX {en,dis}able · e408a9ff
      Veaceslav Falico authored
      Move MAC_RX-related bits into separate functions.
      Signed-off-by: default avatarVeaceslav Falico <vfalico@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e408a9ff
  2. 22 Oct, 2012 5 commits
  3. 19 Oct, 2012 1 commit
  4. 18 Oct, 2012 11 commits
    • David S. Miller's avatar
      Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge · db0fe0b2
      David S. Miller authored
      Included fixes:
      - Fix broadcast packet CRC calculation which can lead to ~80% broadcast packet
        loss
      - Fix a race condition in duplicate broadcast packet check
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      db0fe0b2
    • Eric Dumazet's avatar
      tcp: fix FIONREAD/SIOCINQ · a3374c42
      Eric Dumazet authored
      tcp_ioctl() tries to take into account if tcp socket received a FIN
      to report correct number bytes in receive queue.
      
      But its flaky because if the application ate the last skb,
      we return 1 instead of 0.
      
      Correct way to detect that FIN was received is to test SOCK_DONE.
      Reported-by: default avatarElliot Hughes <enh@google.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Cc: Tom Herbert <therbert@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a3374c42
    • Bjørn Mork's avatar
      net: qmi_wwan: adding more ZTE devices · c6846ee1
      Bjørn Mork authored
      Analyzed a few Windows driver description files, supporting
      this long list of devices:
      
      %ztewwan.DeviceDesc0002%    = ztewwan.ndi, USB\VID_19D2&PID_0002&MI_01
      %ztewwan.DeviceDesc0012%    = ztewwan.ndi, USB\VID_19D2&PID_0012&MI_01
      %ztewwan.DeviceDesc0017%    = ztewwan.ndi, USB\VID_19D2&PID_0017&MI_03
      %ztewwan.DeviceDesc0021%    = ztewwan.ndi, USB\VID_19D2&PID_0021&MI_04
      %ztewwan.DeviceDesc0025%    = ztewwan.ndi, USB\VID_19D2&PID_0025&MI_01
      %ztewwan.DeviceDesc0031%    = ztewwan.ndi, USB\VID_19D2&PID_0031&MI_04
      %ztewwan.DeviceDesc0042%    = ztewwan.ndi, USB\VID_19D2&PID_0042&MI_04
      %ztewwan.DeviceDesc0049%    = ztewwan.ndi, USB\VID_19D2&PID_0049&MI_05
      %ztewwan.DeviceDesc0052%    = ztewwan.ndi, USB\VID_19D2&PID_0052&MI_04
      %ztewwan.DeviceDesc0055%    = ztewwan.ndi, USB\VID_19D2&PID_0055&MI_01
      %ztewwan.DeviceDesc0058%    = ztewwan.ndi, USB\VID_19D2&PID_0058&MI_04
      %ztewwan.DeviceDesc0063%    = ztewwan.ndi, USB\VID_19D2&PID_0063&MI_04
      %ztewwan.DeviceDesc2002%    = ztewwan.ndi, USB\VID_19D2&PID_2002&MI_04
      %ztewwan.DeviceDesc0104%    = ztewwan.ndi, USB\VID_19D2&PID_0104&MI_04
      %ztewwan.DeviceDesc0113%    = ztewwan.ndi, USB\VID_19D2&PID_0113&MI_05
      %ztewwan.DeviceDesc0118%    = ztewwan.ndi, USB\VID_19D2&PID_0118&MI_05
      %ztewwan.DeviceDesc0121%    = ztewwan.ndi, USB\VID_19D2&PID_0121&MI_05
      %ztewwan.DeviceDesc0123%    = ztewwan.ndi, USB\VID_19D2&PID_0123&MI_04
      %ztewwan.DeviceDesc0124%    = ztewwan.ndi, USB\VID_19D2&PID_0124&MI_05
      %ztewwan.DeviceDesc0125%    = ztewwan.ndi, USB\VID_19D2&PID_0125&MI_06
      %ztewwan.DeviceDesc0126%    = ztewwan.ndi, USB\VID_19D2&PID_0126&MI_05
      %ztewwan.DeviceDesc1008%    = ztewwan.ndi, USB\VID_19D2&PID_1008&MI_04
      %ztewwan.DeviceDesc1010%    = ztewwan.ndi, USB\VID_19D2&PID_1010&MI_04
      %ztewwan.DeviceDesc1012%    = ztewwan.ndi, USB\VID_19D2&PID_1012&MI_04
      %ztewwan.DeviceDesc1402%    = ztewwan.ndi, USB\VID_19D2&PID_1402&MI_02
      %ztewwan.DeviceDesc0157%    = ztewwan.ndi, USB\VID_19D2&PID_0157&MI_05
      %ztewwan.DeviceDesc0158%    = ztewwan.ndi, USB\VID_19D2&PID_0158&MI_03
      %ztewwan.DeviceDesc1401%    = ztewwan.ndi, USB\VID_19D2&PID_1401&MI_02
      %ztewwan.DeviceDesc0130%    = ztewwan.ndi, USB\VID_19D2&PID_0130&MI_01
      %ztewwan.DeviceDesc0133%    = ztewwan.ndi, USB\VID_19D2&PID_0133&MI_03
      %ztewwan.DeviceDesc0176%    = ztewwan.ndi, USB\VID_19D2&PID_0176&MI_03
      %ztewwan.DeviceDesc0178%    = ztewwan.ndi, USB\VID_19D2&PID_0178&MI_03
      %ztewwan.DeviceDesc0168%    = ztewwan.ndi, USB\VID_19D2&PID_0168&MI_04
      ;EuFi890
      %ztewwan.DeviceDesc0191%    = ztewwan.ndi, USB\VID_19D2&PID_0191&MI_04
      ;AL621
      %ztewwan.DeviceDesc0167%    = ztewwan.ndi, USB\VID_19D2&PID_0167&MI_04
      ;MF821
      %ztewwan.DeviceDesc0199%    = ztewwan.ndi, USB\VID_19D2&PID_0199&MI_01
      %ztewwan.DeviceDesc0200%    = ztewwan.ndi, USB\VID_19D2&PID_0200&MI_01
      %ztewwan.DeviceDesc0257%    = ztewwan.ndi, USB\VID_19D2&PID_0257&MI_03
      ;MF821V
      %ztewwan.DeviceDesc1018%    = ztewwan.ndi, USB\VID_19D2&PID_1018&MI_03
      ;MF91
      %ztewwan.DeviceDesc1426%    = ztewwan.ndi, USB\VID_19D2&PID_1426&MI_02
      ;0141
      %ztewwan.DeviceDesc1247%    = ztewwan.ndi, USB\VID_19D2&PID_1247&MI_04
      %ztewwan.DeviceDesc1425%    = ztewwan.ndi, USB\VID_19D2&PID_1425&MI_02
      %ztewwan.DeviceDesc1424%    = ztewwan.ndi, USB\VID_19D2&PID_1424&MI_02
      %ztewwan.DeviceDesc1252%    = ztewwan.ndi, USB\VID_19D2&PID_1252&MI_04
      %ztewwan.DeviceDesc1254%    = ztewwan.ndi, USB\VID_19D2&PID_1254&MI_04
      %ztewwan.DeviceDesc1255A%   = ztewwan.ndi, USB\VID_19D2&PID_1255&MI_03
      %ztewwan.DeviceDesc1255B%   = ztewwan.ndi, USB\VID_19D2&PID_1255&MI_04
      %ztewwan.DeviceDesc1256%    = ztewwan.ndi, USB\VID_19D2&PID_1256&MI_04
      %ztewwan.DeviceDesc1245%    = ztewwanCombB.ndi, USB\VID_19D2&PID_1245&MI_04
      %ztewwan.DeviceDesc1021%    = ztewwan.ndi, USB\VID_19D2&PID_1021&MI_02
      
      Adding the ones we were missing.
      Signed-off-by: default avatarBjørn Mork <bjorn@mork.no>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c6846ee1
    • Eric Dumazet's avatar
      netlink: use kfree_rcu() in netlink_release() · 6d772ac5
      Eric Dumazet authored
      On some suspend/resume operations involving wimax device, we have
      noticed some intermittent memory corruptions in netlink code.
      
      Stéphane Marchesin tracked this corruption in netlink_update_listeners()
      and suggested a patch.
      
      It appears netlink_release() should use kfree_rcu() instead of kfree()
      for the listeners structure as it may be used by other cpus using RCU
      protection.
      
      netlink_release() must set to NULL the listeners pointer when
      it is about to be freed.
      
      Also have to protect netlink_update_listeners() and
      netlink_has_listeners() if listeners is NULL.
      
      Add a nl_deref_protected() lockdep helper to properly document which
      locks protects us.
      Reported-by: default avatarJonathan Kliegman <kliegs@google.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Stéphane Marchesin <marcheu@google.com>
      Cc: Sam Leffler <sleffler@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6d772ac5
    • Steffen Klassert's avatar
      ipv4: Fix flushing of cached routing informations · 13d82bf5
      Steffen Klassert authored
      Currently we can not flush cached pmtu/redirect informations via
      the ipv4_sysctl_rtcache_flush sysctl. We need to check the rt_genid
      of the old route and reset the nh exeption if the old route is
      expired when we bind a new route to a nh exeption.
      Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      13d82bf5
    • Jiri Pirko's avatar
      vlan: allow to change type when no vlan device is hooked on netdev · 18c22a03
      Jiri Pirko authored
      vlan_info might be present but still no vlan devices might be there.
      That is in case of vlan0 automatically added.
      
      So in that case, allow to change netdev type.
      Reported-by: default avatarJon Stanley <jstanley@rmrf.net>
      Signed-off-by: default avatarJiri Pirko <jiri@resnulli.us>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      18c22a03
    • Matus Ujhelyi's avatar
      phy: add AT803x driver · 0ca7111a
      Matus Ujhelyi authored
      This driver add support for wake over lan on AT803x phys.
      Signed-off-by: default avatarMatus Ujhelyi <ujhelyi.m@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0ca7111a
    • Jay Purohit's avatar
      usb/ipheth: Add iPhone 5 support · af1b85e4
      Jay Purohit authored
      I noticed that the iPhone ethernet driver did not support
      iPhone 5. I quickly added support to it in my kernel, here's
      a patch.
      Signed-off-by: default avatarJay Purohit <jspurohit@velocitylimitless.com>
      Acked-by: default avatarValdis Kletnieks <valdis.kletnieks@vt.edu>
      Signed-off-by: default avatarJan Ceuleers <jan.ceuleers@computer.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      af1b85e4
    • David S. Miller's avatar
      Merge branch 'master' of git://1984.lsi.us.es/nf · 6dae8222
      David S. Miller authored
      Pablo Neira Ayuso Says:
      
      ====================
      The following patchset contains Netfilter/IPVS updates for your
      net tree, they are:
      
      * Fix incorrect hooks for SNAT and DNAT (bug introduced in recent IPv6
        NAT changes), from Elison Niven.
      
      * Fix xt_TEE (got broken with recent rt_gateway semantic change),
        from Eric Dumazet.
      
      * Fix custom conntrack timeout policy attachment for IPv6, from myself.
      
      * Always initialize ip_vs_timeout_user in case that TCP or UDP protocols
        is disabled, from Arnd Bergmann.
      
      Note that I had to pull from your tree to obtain:
      
      (c92b9655 ipv4: Add FLOWI_FLAG_KNOWN_NH)
      
      which was required for the xt_TEE fix.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6dae8222
    • Linus Lüssing's avatar
      batman-adv: Fix potential broadcast BLA-duplicate-check race condition · 7dac7b76
      Linus Lüssing authored
      Threads in the bottom half of batadv_bla_check_bcast_duplist() might
      otherwise for instance overwrite variables which other threads might
      be using/reading at the same time in the top half, potentially
      leading to messing up the bcast_duplist, possibly resulting in false
      bridge loop avoidance duplicate check decisions.
      Signed-off-by: default avatarLinus Lüssing <linus.luessing@web.de>
      Acked-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
      7dac7b76
    • Linus Lüssing's avatar
      batman-adv: Fix broadcast packet CRC calculation · 7f112af4
      Linus Lüssing authored
      So far the crc16 checksum for a batman-adv broadcast data packet, received
      on a batman-adv hard interface, was calculated over zero bytes of its
      content leading to many incoming broadcast data packets wrongly being
      dropped (60-80% packet loss).
      
      This patch fixes this issue by calculating the crc16 over the actual,
      complete broadcast payload.
      
      The issue is a regression introduced by
      ("batman-adv: add broadcast duplicate check").
      Signed-off-by: default avatarLinus Lüssing <linus.luessing@web.de>
      Acked-by: default avatarSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
      7f112af4
  5. 17 Oct, 2012 20 commits