29 Nov, 2011

23 commits

  • struct nr_route_struct's mnemonic permits a string of up to 7 bytes to be
    used. If userland passes a not zero terminated string to the kernel adding
    a node to the routing table might result in the kernel attempting to read
    copy a too long string.

    Mnemonic is part of the NET/ROM routing protocol; NET/ROM routing table
    updates only broadcast 6 bytes. The 7th byte in the mnemonic array exists
    only as a \0 termination character for the kernel code's convenience.

    Fixed by rejecting mnemonic strings that have no terminating \0 in the first
    7 characters. Do this test only NETROM_NODE to avoid breaking NETROM_NEIGH
    where userland might passing an uninitialized mnemonic field.

    Initial patch by Dan Carpenter .

    Signed-off-by: Ralf Baechle
    Cc: Dan Carpenter
    Cc: Walter Harms
    Cc: Thomas Osterried
    Acked-by: Dan Carpenter
    Signed-off-by: David S. Miller

    Ralf Baechle
     
  • Very large, nonsenical arguments or use in very extreme conditions could
    result in integer overflows. Check ioctls arguments to avoid such
    overflows and return -EINVAL for too large arguments.

    To allow the use of AX.25 for even the most extreme setup (think packet
    radio to the Phase 5E mars probe) we make no further attempt to clamp the
    argument range.

    Originally reported by Fan Long and a first patch
    was sent by Xi Wang .

    Signed-off-by: Ralf Baechle
    Cc: Xi Wang
    Cc: Joerg Reuter
    Cc: Alan Cox
    Cc: Thomas Osterried
    Signed-off-by: David S. Miller

    Ralf Baechle
     
  • Support for specific hardware belongs under drivers/net/ not net/.

    Signed-off-by: Ben Hutchings
    Acked-by: Lennert Buytenhek
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • Any headers included by drivers should be under include/, and
    any definitions they use are not really private to the core as
    the name "dsa_priv.h" suggests.

    Signed-off-by: Ben Hutchings
    Acked-by: Lennert Buytenhek
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • I mistakenly exported functions from slave.c that are only called from
    dsa.c, part of the same module.

    Signed-off-by: Ben Hutchings
    Acked-by: Lennert Buytenhek
    Signed-off-by: David S. Miller

    Ben Hutchings
     
  • David S. Miller
     
  • Tg3 normally gets a performance boost by increasing the PCI Maximum Read
    Request Size (MRRS) to 4k. Unfortunately, this is causing some problems
    on particular hardware platforms. This patch removes all code that
    modifies the MRRS except for one case.

    As part of a solution to fix an internal FIFO problem on the 5719, the
    driver artificially capped the MRRS to 2k for the entire 5719, and later
    5720, ASIC revs. This was overly aggressive and only really needed to
    be done for the 5719 A0. In the spirit of the rest of this patch, the
    driver will only reprogram the MRRS for this device if the value exceeds
    the 2k cap.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • On the earliest TSO capable devices, TSO was accomplished through
    firmware. The TSO cannot coexist with ASF management firmware though.
    The tg3 driver determines whether or not ASF is enabled by calling
    tg3_get_eeprom_hw_cfg(), which checks a particular bit of NIC memory.
    Commit dabc5c670d3f86d15ee4f42ab38ec5bd2682487d, entitled "tg3: Move
    TSO_CAPABLE assignment", accidentally moved the code that determines
    TSO capabilities earlier than the call to tg3_get_eeprom_hw_cfg(). As a
    consequence, the driver was attempting to determine TSO capabilities
    before it had all the data it needed to make the decision.

    This patch fixes the problem by revisiting and reevaluating the decision
    after tg3_get_eeprom_hw_cfg() is called.

    Signed-off-by: Matt Carlson
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Matt Carlson
     
  • Current SFB double hashing is not fulfilling SFB theory, if two flows
    share same rxhash value.

    Using skb_flow_dissect() permits to really have better hash dispersion,
    and get tunnelling support as well.

    Double hashing point was mentioned by Florian Westphal

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Instead of using a custom flow dissector, use skb_flow_dissect() and
    benefit from tunnelling support.

    This lack of tunnelling support was mentioned by Dan Siemon.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • No functional changes.

    This uses the code we factorized in skb_flow_dissect()

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • We use at least two flow dissectors in network stack, with known
    limitations and code duplication.

    Introduce skb_flow_dissect() to factorize this, highly inspired from
    existing dissector from __skb_get_rxhash()

    Note : We extensively use skb_header_pointer(), this permits us to not
    touch skb at all.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Change comparison order such that the variable will come before the compared value.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • Fix spelling, alignment, empty lines, relocate the is_4_port_mode function, and split bnx2x_link_status_update function.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • Fix the MAC test of the 1G port of the BCM57800 to use the UMAC instead of the XMAC.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • The populate function will fail in case an unknown external PHY is detected.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • This patch enables the usage of simpler MDC/MDIO work-around when accessing Warpcore registers.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • This patch contain several fixes for the BCM84833. This PHY is still not in bnx2x production, hence this patch can be considered as enhancement.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • Put Warpcore in low power mode in case of fan failure to reduce heat.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • Fix a problem when new traffic class is created with 0% BW, the ETS is not conforming.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • Change BRB to work in per class guaranteed mode and handle cases for BW 0%.

    Signed-off-by: Yaniv Rosner
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Yaniv Rosner
     
  • Now sk_route_caps is u64, its dangerous to use an integer to store
    result of an AND operator. It wont work if NETIF_F_SG is moved on the
    upper part of u64.

    Signed-off-by: Eric Dumazet
    CC: Michał Mirosław
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • …wireless-next into for-davem

    John W. Linville
     

28 Nov, 2011

14 commits

  • This patch converts the drivers in drivers/net/irda/* to use the
    module_platform_driver() macro which makes the code smaller and a bit
    simpler.

    Cc: Kuninori Morimoto
    Signed-off-by: Axel Lin
    Signed-off-by: David S. Miller

    Axel Lin
     
  • The problem: Senders were overriding cwnd values picked during an undo
    by calling tcp_moderate_cwnd() in tcp_try_to_open().

    The fix: Don't moderate cwnd in tcp_try_to_open() if we're in
    TCP_CA_Open, since doing so is generally unnecessary and specifically
    would override a DSACK-based undo of a cwnd reduction made in fast
    recovery.

    Signed-off-by: Neal Cardwell
    Signed-off-by: David S. Miller

    Neal Cardwell
     
  • Previously, SACK-enabled connections hung around in TCP_CA_Disorder
    state while snd_una==high_seq, just waiting to accumulate DSACKs and
    hopefully undo a cwnd reduction. This could and did lead to the
    following unfortunate scenario: if some incoming ACKs advance snd_una
    beyond high_seq then we were setting undo_marker to 0 and moving to
    TCP_CA_Open, so if (due to reordering in the ACK return path) we
    shortly thereafter received a DSACK then we were no longer able to
    undo the cwnd reduction.

    The change: Simplify the congestion avoidance state machine by
    removing the behavior where SACK-enabled connections hung around in
    the TCP_CA_Disorder state just waiting for DSACKs. Instead, when
    snd_una advances to high_seq or beyond we typically move to
    TCP_CA_Open immediately and allow an undo in either TCP_CA_Open or
    TCP_CA_Disorder if we later receive enough DSACKs.

    Other patches in this series will provide other changes that are
    necessary to fully fix this problem.

    Signed-off-by: Neal Cardwell
    Signed-off-by: David S. Miller

    Neal Cardwell
     
  • The bug: When the ACK field is below snd_una (which can happen when
    ACKs are reordered), senders ignored DSACKs (preventing undo) and did
    not call tcp_fastretrans_alert, so they did not increment
    prr_delivered to reflect newly-SACKed sequence ranges, and did not
    call tcp_xmit_retransmit_queue, thus passing up chances to send out
    more retransmitted and new packets based on any newly-SACKed packets.

    The change: When the ACK field is below snd_una (the "old_ack" goto
    label), call tcp_fastretrans_alert to allow undo based on any
    newly-arrived DSACKs and try to send out more packets based on
    newly-SACKed packets.

    Other patches in this series will provide other changes that are
    necessary to fully fix this problem.

    Signed-off-by: Neal Cardwell
    Acked-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Neal Cardwell
     
  • The bug: Senders ignored DSACKs after recovery when there were no
    outstanding packets (a common scenario for HTTP servers).

    The change: when there are no outstanding packets (the "no_queue" goto
    label), call tcp_fastretrans_alert() in order to use DSACKs to undo
    congestion window reductions.

    Other patches in this series will provide other changes that are
    necessary to fully fix this problem.

    Signed-off-by: Neal Cardwell
    Acked-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Neal Cardwell
     
  • Allow callers to decide whether an ACK is a duplicate ACK. This is a
    prerequisite to allowing fastretrans_alert to be called from new
    contexts, such as the no_queue and old_ack code paths, from which we
    have extra info that tells us whether an ACK is a dupack.

    Signed-off-by: Neal Cardwell
    Acked-by: Ilpo Järvinen
    Signed-off-by: David S. Miller

    Neal Cardwell
     
  • When using vlan 0 and UP 0, vlan header wasn't placed.

    Signed-off-by: Amir Vadai
    Signed-off-by: David S. Miller

    Amir Vadai
     
  • Device must be in promiscuous mode or DMAC must be same as the host MAC, or
    else packet will be dropped by the HW rx filtering.

    Signed-off-by: Amir Vadai
    Signed-off-by: David S. Miller

    Amir Vadai
     
  • There are 2 capability bits for WOL, one for each port.
    WOL handlers were looking only on the second bit, regardless of the port.

    Signed-off-by: Oren Duer
    Signed-off-by: David S. Miller

    Oren Duer
     
  • Moving to regular Completion Queue implementation (not collapsed)
    Completion for each transmitted packet is written to new entry.

    Signed-off-by: Yevgeny Petrilin
    Signed-off-by: David S. Miller

    Yevgeny Petrilin
     
  • the MLX4_EN_WOL_DO_MODIFY flag which is defined through enum targets
    bit 63, this triggers a "cast truncate bits from constant value
    (8000000000000000 becomes 0)" warning from sparse, fix that by using
    define instead of enum.

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

    Or Gerlitz
     
  • Using RSS which takes into account UDP headers is controlled by
    a module param, fix the setting of the HW RSS context to align
    with that scheme. So far it was uncoditionally allowing hashing
    on the UDP headers.

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

    Or Gerlitz
     
  • Towards adding RSS support for IB drivers/application who use
    the mlx4 HW, make the RSS related definitions global and change
    the mlx4_en driver to use them.

    Signed-off-by: Or Gerlitz
    Signed-off-by: Shlomo Pongratz
    Signed-off-by: David S. Miller

    Or Gerlitz
     
  • Move the "ISDN4Linux interface" message from device registration,
    where it is emitted for each device, to driver registration, where
    it is emitted only once, for consistency with the CAPI variant.

    Signed-off-by: Tilman Schmidt
    Signed-off-by: David S. Miller

    Tilman Schmidt
     

27 Nov, 2011

3 commits