10 Nov, 2012

2 commits

  • If a gianfar ethernet device is down prior to hibernating a
    system, it will no longer be present upon system restore.

    For example:

    ~# ifconfig eth0 down
    ~# echo disk > /sys/power/state

    ~# ifconfig eth0 up
    SIOCSIFFLAGS: No such device

    This happens because the restore function bails out early upon
    finding devices that were not up at hibernation. In doing so,
    it never gets to the netif_device_attach call at the end of
    the restore function. Adding the netif_device_attach as done
    here also makes the gfar_restore code consistent with what is
    done in the gfar_resume code.

    Cc: Claudiu Manoil
    Signed-off-by: Wang Dongsheng
    Signed-off-by: Paul Gortmaker
    Acked-by: Claudiu Manoil
    Signed-off-by: David S. Miller

    Wang Dongsheng
     
  • when something goes wrong, a flood of these messages can be
    generated by usbnet (thousands per second). This doesn't
    generally *help* the condition so this patch ratelimits the
    rate of their generation.

    There's an underlying problem in usbnet's kevent deferral
    mechanism which needs fixing, specifically that events *can*
    get dropped and not handled. This patch doesn't address this,
    but just mitigates fallout caused by the current implemention.

    Signed-off-by: Steve Glendinning
    Signed-off-by: David S. Miller

    Steve Glendinning
     

08 Nov, 2012

3 commits


04 Nov, 2012

5 commits

  • Correct spelling typo in bnx2x driver

    Signed-off-by: Masanari Iida
    Signed-off-by: David S. Miller

    Masanari Iida
     
  • f7b2927 introduced tx checksum offload support for smsc95xx,
    and enabled it by default. This feature doesn't take
    endianness into account, so causes most tx to fail on
    those platforms.

    This patch fixes the problem fully by adding the missing
    conversion.

    An alternate workaround is to disable TX checksum offload
    on those platforms. The cpu impact of this feature is very low.

    Signed-off-by: Steve Glendinning
    Signed-off-by: David S. Miller

    Steve Glendinning
     
  • RTL_GIGA_MAC_VER_35 includes no multicast hardware filter.

    Signed-off-by: Nathan Walp
    Suggested-by: Hayes Wang
    Acked-by: Francois Romieu
    Signed-off-by: David S. Miller

    Nathan Walp
     
  • This regression was spotted between Debian squeeze and Debian wheezy
    kernels (respectively based on 2.6.32 and 3.2). More info about
    Wake-on-LAN issues with Realtek's 816x chipsets can be found in the
    following thread: http://marc.info/?t=132079219400004

    Probable regression from d4ed95d796e5126bba51466dc07e287cebc8bd19;
    more chipsets are likely affected.

    Tested on top of a 3.2.23 kernel.

    Reported-by: Florent Fourcot
    Tested-by: Florent Fourcot
    Hinted-by: Francois Romieu
    Signed-off-by: Cyril Brulebois
    Signed-off-by: David S. Miller

    Cyril Brulebois
     
  • Some driver uses tasklet_disable in device remove/close process,
    tasklet_disable will inc tasklet->count and return. If the tasklet
    is not handled yet because some softirq pressure, the tasklet will
    placed on the tasklet_vec, never have a chance to excute. This might
    lead to ksoftirqd heavy loaded, wakeup with pending_softirq, but
    tasklet is disabled. tasklet_kill should be used in this case.

    Signed-off-by: Xiaotian Feng
    Cc: "David S. Miller"
    Cc: netdev@vger.kernel.org
    Signed-off-by: David S. Miller

    Xiaotian Feng
     

03 Nov, 2012

5 commits

  • vmxnet3 has a 16Kbytes limit per tx descriptor, that happened to work
    as long as we provided PAGE_SIZE fragments.

    Our stack can now build larger fragments, so we need to split them to
    the 16kbytes boundary.

    Signed-off-by: Eric Dumazet
    Reported-by: jongman heo
    Tested-by: jongman heo
    Cc: Shreyas Bhatewara
    Reviewed-by: Bhavesh Davda
    Signed-off-by: Shreyas Bhatewara
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • If T4 configuration file gets loaded from the /lib/firmware/cxgb4/ directory
    then offload capabilities of the cards were getting disabled during
    initialization. Hence ULDs do not get an UP event from the LLD.

    Signed-off-by: Jay Hernandez
    Signed-off-by: Vipul Pandya
    Signed-off-by: David S. Miller

    Vipul Pandya
     
  • Based on commit b27393aecf66199f5ddad37c302d3e0cfadbe6c0

    Calling mdiobus_free without calling mdiobus_unregister causes
    BUG_ON(). This patch fixes the issue.

    The semantic patch that found this issue(http://coccinelle.lip6.fr/):
    //
    @@
    expression E;
    @@
    ... when != mdiobus_unregister(E);

    + mdiobus_unregister(E);
    mdiobus_free(E);
    //

    Signed-off-by: Peter Senna Tschudin
    Signed-off-by: David S. Miller

    Peter Senna Tschudin
     
  • Based on commit b27393aecf66199f5ddad37c302d3e0cfadbe6c0

    Calling mdiobus_free without calling mdiobus_unregister causes
    BUG_ON(). This patch fixes the issue.

    The semantic patch that found this issue(http://coccinelle.lip6.fr/):
    //
    @@
    expression E;
    @@
    ... when != mdiobus_unregister(E);

    + mdiobus_unregister(E);
    mdiobus_free(E);
    //

    Signed-off-by: Peter Senna Tschudin
    Tested-by: Roland Stigge
    Tested-by: Alexandre Pereira da Silva
    Signed-off-by: David S. Miller

    Peter Senna Tschudin
     
  • Since commit 96bed4b9 (use FW 7.8.2) BRB HW block needs to be
    initialized using fw values for all devices.
    Otherwise ETS on 57712/578xx will not work.

    Signed-off-by: Dmitry Kravkov
    Signed-off-by: Ariel Elior
    Signed-off-by: David S. Miller

    Dmitry Kravkov
     

01 Nov, 2012

13 commits

  • Fix off-by-one error because IFNAMSIZ == 16 and when this
    code gets executed we stick a NULL byte where we should not.

    How to reproduce:
    with CONFIG_CC_STACKPROTECTOR=y (otherwise it may pass by silently)
    modprobe bonding; echo 1 > /sys/class/net/bond0/bonding/mode;
    echo "AAAAAAAAAAAAAAAA" > /sys/class/net/bond0/bonding/active_slave;

    Signed-off-by: Nikolay Aleksandrov

    Note: Sorry for the second patch but I missed this one while checking
    the file. You can squash them into one patch.
    Signed-off-by: David S. Miller

    nikolay@redhat.com
     
  • Fix off-by-one error because IFNAMSIZ == 16 and when this
    code gets executed we stick a NULL byte where we should not.

    How to reproduce:
    with CONFIG_CC_STACKPROTECTOR=y (otherwise it may pass by silently)
    modprobe bonding; echo 1 > /sys/class/net/bond0/bonding/mode;
    echo "AAAAAAAAAAAAAAAA" > /sys/class/net/bond0/bonding/primary;

    Signed-off-by: Nikolay Aleksandrov
    Signed-off-by: David S. Miller

    nikolay@redhat.com
     
  • Signed-off-by: Dmitry Kravkov
    Signed-off-by: David S. Miller

    Dmitry Kravkov
     
  • Since the Warpcore supports various link types, need to set only the correct
    supported modes for XFI which is the serdes interface for the 10G-baseT PHY.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Barak Witkowski
    Signed-off-by: Dmitry Kravkov
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • When SFP+ module is plugged in after driver is already loaded, it may not be
    recognized, so set SFP module recognition time up to 300ms, without resetting
    the module power in the middle.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Barak Witkowski
    Signed-off-by: Dmitry Kravkov
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • Fix possible incorrect link speed provision following rapid link speed change.
    Clear link speed mask after each link change, and not only after link down.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Barak Witkowski
    Signed-off-by: Dmitry Kravkov
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • Several KR registers were not set correctly back to default after
    loopback test, so set those global registers over the global WC lane (zero)
    rather than the current lane.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Barak Witkowski
    Signed-off-by: Dmitry Kravkov
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • In case of link flap avoidance between PXE boot and bnx2x, set the appropriate
    PHY DEVAD even if LFA kicks in.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Barak Witkowski
    Signed-off-by: Dmitry Kravkov
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • Fix 1G KR link by restoring CL72 misc control register to default value rather
    than 0.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Barak Witkowski
    Signed-off-by: Dmitry Kravkov
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • This patch corrects the ethtool get_ts_info functon which did not state that
    software timestamping was supported, even though it is.

    Signed-off-by: Jacob Keller
    CC: Stable [3.5]
    Tested-by: Stephen Ko
    Signed-off-by: Jeff Kirsher
    Signed-off-by: David S. Miller

    Jacob Keller
     
  • John W. Linville says:

    ====================
    This is a batch of fixes intended for 3.7...

    The biggest portion of this is a pull request from Johannes Berg:

    "Please pull my mac80211.git tree per below to get a number of fixes. I
    have included a patch from Antonio to fix a memcpy overrun, Felix's
    patches for the antenna gain/tx power issues, a few mesh-related fixes
    from Javier for mac80211 and my own patches to not access data that
    might not be present in an skb at all as well as a patch (the duplicate
    IE check one) to make mac80211 forward-compatible with potential future
    spec extensions that use the same IE multiple times.

    It's a bit bigger than I'd like maybe, but I think all of these are
    worthwhile fixes at this point."

    In addition...

    Felix Fietkau fixes an ath9k use-after-free issue.

    Stanislaw Gruszka adds a valid value check to rt2800.

    Sven Eckelmann adds a check to only check a TID value in a BlockAck, for
    frames that could be either a BlockAck or a normal Ack.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • VXLAN confused flag versus bitmap on state.
    Based on part of a earlier patch by David Stevens.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • …wireless into for-davem

    John W. Linville
     

31 Oct, 2012

2 commits

  • The ath9k xmit functions for AMPDUs can send frames as non-aggregate in case
    only one frame is currently available. The client will then answer using a
    normal Ack instead of a BlockAck. This acknowledgement has no TID stored and
    therefore the hardware is not able to provide us the corresponding TID.

    The TID set by the hardware in the tx status descriptor has to be seen as
    undefined and not as a valid TID value for normal acknowledgements. Doing
    otherwise results in a massive amount of retransmissions and stalls of
    connections.

    Users may experience low bandwidth and complete connection stalls in
    environments with transfers using multiple TIDs.

    This regression was introduced in b11b160defc48e4daa283f785192ea3a23a51f8e
    ("ath9k: validate the TID in the tx status information").

    Signed-off-by: Sven Eckelmann
    Signed-off-by: Simon Wunderlich
    Cc: stable@vger.kernel.org
    Acked-by: Felix Fietkau
    Signed-off-by: John W. Linville

    Sven Eckelmann
     
  • Some hardware has correct (!= 0xff) value of tssi_bounds[4] in the
    EEPROM, but step is equal to 0xff. This results on ridiculous delta
    calculations and completely broke TX power settings.

    Reported-and-tested-by: Pavel Lucik
    Cc: stable@vger.kernel.org
    Signed-off-by: Stanislaw Gruszka
    Acked-by: Ivo van Doorn
    Signed-off-by: John W. Linville

    Stanislaw Gruszka
     

30 Oct, 2012

1 commit

  • bf->bf_next is only while buffers are chained as part of an A-MPDU
    in the tx queue. When a tid queue is flushed (e.g. on tearing down
    an aggregation session), frames can be enqueued again as normal
    transmission, without bf_next being cleared. This can lead to the
    old pointer being dereferenced again later.

    This patch might fix crashes and "Failed to stop TX DMA!" messages.

    Signed-off-by: Felix Fietkau
    Cc: stable@vger.kernel.org
    Signed-off-by: John W. Linville

    Felix Fietkau
     

27 Oct, 2012

2 commits

  • Pull networking fixes from David Miller:
    "This is what we usually expect at this stage of the game, lots of
    little things, mostly in drivers. With the occasional 'oops didn't
    mean to do that' kind of regressions in the core code."

    1) Uninitialized data in __ip_vs_get_timeouts(), from Arnd Bergmann

    2) Reject invalid ACK sequences in Fast Open sockets, from Jerry Chu.

    3) Lost error code on return from _rtl_usb_receive(), from Christian
    Lamparter.

    4) Fix reset resume on USB rt2x00, from Stanislaw Gruszka.

    5) Release resources on error in pch_gbe driver, from Veaceslav Falico.

    6) Default hop limit not set correctly in ip6_template_metrics[], fix
    from Li RongQing.

    7) Gianfar PTP code requests wrong kind of resource during probe, fix
    from Wei Yang.

    8) Fix VHOST net driver on big-endian, from Michael S Tsirkin.

    9) Mallenox driver bug fixes from Jack Morgenstein, Or Gerlitz, Moni
    Shoua, Dotan Barak, and Uri Habusha.

    10) usbnet leaks memory on TX path, fix from Hemant Kumar.

    11) Use socket state test, rather than presence of FIN bit packet, to
    determine FIONREAD/SIOCINQ value. Fix from Eric Dumazet.

    12) Fix cxgb4 build failure, from Vipul Pandya.

    13) Provide a SYN_DATA_ACKED state to complement SYN_FASTOPEN in socket
    info dumps. From Yuchung Cheng.

    14) Fix leak of security path in kfree_skb_partial(). Fix from Eric
    Dumazet.

    15) Handle RX FIFO overflows more resiliently in pch_gbe driver, from
    Veaceslav Falico.

    16) Fix MAINTAINERS file pattern for networking drivers, from Jean
    Delvare.

    17) Add iPhone5 IDs to IPHETH driver, from Jay Purohit.

    18) VLAN device type change restriction is too strict, and should not
    trigger for the automatically generated vlan0 device. Fix from Jiri
    Pirko.

    19) Make PMTU/redirect flushing work properly again in ipv4, from
    Steffen Klassert.

    20) Fix memory corruptions by using kfree_rcu() in netlink_release().
    From Eric Dumazet.

    21) More qmi_wwan device IDs, from Bjørn Mork.

    22) Fix unintentional change of SNAT/DNAT hooks in generic NAT
    infrastructure, from Elison Niven.

    23) Fix 3.6.x regression in xt_TEE netfilter module, from Eric Dumazet.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (57 commits)
    tilegx: fix some issues in the SW TSO support
    qmi_wwan/cdc_ether: move Novatel 551 and E362 to qmi_wwan
    net: usb: Fix memory leak on Tx data path
    net/mlx4_core: Unmap UAR also in the case of error flow
    net/mlx4_en: Don't use vlan tag value as an indication for vlan presence
    net/mlx4_en: Fix double-release-range in tx-rings
    bas_gigaset: fix pre_reset handling
    vhost: fix mergeable bufs on BE hosts
    gianfar_ptp: use iomem, not ioports resource tree in probe
    ipv6: Set default hoplimit as zero.
    NET_VENDOR_TI: make available for am33xx as well
    pch_gbe: fix error handling in pch_gbe_up()
    b43: Fix oops on unload when firmware not found
    mwifiex: clean up scan state on error
    mwifiex: return -EBUSY if specific scan request cannot be honored
    brcmfmac: fix potential NULL dereference
    Revert "ath9k_hw: Updated AR9003 tx gain table for 5GHz"
    ath9k_htc: Add PID/VID for a Ubiquiti WiFiStation
    rt2x00: usb: fix reset resume
    rtlwifi: pass rx setup error code to caller
    ...

    Linus Torvalds
     
  • Pull infiniband fixes from Roland Dreier:
    "Small batch of fixes for 3.7:
    - Fix crash in error path in cxgb4
    - Fix build error on 32 bits in mlx4
    - Fix SR-IOV bugs in mlx4"

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    mlx4_core: Perform correct resource cleanup if mlx4_QUERY_ADAPTER() fails
    mlx4_core: Remove annoying debug messages from SR-IOV flow
    RDMA/cxgb4: Don't free chunk that we have failed to allocate
    IB/mlx4: Synchronize cleanup of MCGs in MCG paravirtualization
    IB/mlx4: Fix QP1 P_Key processing in the Primary Physical Function (PPF)
    IB/mlx4: Fix build error on platforms where UL is not 64 bits

    Linus Torvalds
     

26 Oct, 2012

7 commits

  • …wireless into for-davem

    John W. Linville
     
  • This change correctly computes the header length and data length in
    the fragments to avoid a bug where we would end up with extremely
    slow performance. Also adopt use of skb_frag_size() accessor.

    Signed-off-by: Chris Metcalf
    Cc: stable@vger.kernel.org [v3.6]
    Signed-off-by: David S. Miller

    Chris Metcalf
     
  • These devices provide QMI and ethernet functionality via a standard CDC
    ethernet descriptor. But when driven by cdc_ether, the QMI
    functionality is unavailable because only cdc_ether can claim the USB
    interface. Thus blacklist the devices in cdc_ether and add their IDs to
    qmi_wwan, which enables both QMI and ethernet simultaneously.

    Signed-off-by: Dan Williams
    Cc: stable@vger.kernel.org
    Acked-by: Greg Kroah-Hartman
    Acked-by: Bjørn Mork
    Signed-off-by: David S. Miller

    Dan Williams
     
  • Driver anchors the tx urbs and defers the urb submission if
    a transmit request comes when the interface is suspended.
    Anchoring urb increments the urb reference count. These
    deferred urbs are later accessed by calling usb_get_from_anchor()
    for submission during interface resume. usb_get_from_anchor()
    unanchors the urb but urb reference count remains same.
    This causes the urb reference count to remain non-zero
    after usb_free_urb() gets called and urb never gets freed.
    Hence call usb_put_urb() after anchoring the urb to properly
    balance the reference count for these deferred urbs. Also,
    unanchor these deferred urbs during disconnect, to free them
    up.

    Signed-off-by: Hemant Kumar
    Acked-by: Oliver Neukum
    Signed-off-by: David S. Miller

    Hemant Kumar
     
  • If a failure takes place during the EQ creation, we need to unmap the
    UAR memory block too.

    Signed-off-by: Dotan Barak
    Signed-off-by: Uri Habusha
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Dotan Barak
     
  • The vlan tag can be zero. This is why it can't serve as an indication
    that packet requires VLAN header in the TX flow.

    Signed-off-by: Moni Shoua
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Moni Shoua
     
  • The QP range is reserved as a single block. However, when freeing the
    en resources, the tx-ring QPs are released both in mlx4_en_destroy_tx_ring
    (one at a time) and in mlx4_en_free_resources (as a block release).

    Fix by eliminating the one-at-a-time release in mlx4_en_destroy_tx_ring.

    Signed-off-by: Jack Morgenstein
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Jack Morgenstein