08 May, 2012

15 commits

  • Conflicts:
    drivers/net/ethernet/intel/e1000e/param.c
    drivers/net/wireless/iwlwifi/iwl-agn-rx.c
    drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
    drivers/net/wireless/iwlwifi/iwl-trans.h

    Resolved the iwlwifi conflict with mainline using 3-way diff posted
    by John Linville and Stephen Rothwell. In 'net' we added a bug
    fix to make iwlwifi report a more accurate skb->truesize but this
    conflicted with RX path changes that happened meanwhile in net-next.

    In e1000e a conflict arose in the validation code for settings of
    adapter->itr. 'net-next' had more sophisticated logic so that
    logic was used.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Michael S. Tsirkin says:

    --------------------
    There are mostly bugfixes here.
    I hope to merge some more patches by 3.5, in particular
    vlan support fixes are waiting for Eric's ack,
    and a version of tracepoint patch might be
    ready in time, but let's merge what's ready so it's testable.

    This includes a ton of zerocopy fixes by Jason -
    good stuff but too intrusive for 3.4 and zerocopy is experimental
    anyway.

    virtio supported delayed interrupt for a while now
    so adding support to the virtio tool made sense
    --------------------

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Until now, struct mreq has not been recognized and it was worked with
    as with struct in_addr. That means imr_multiaddr was copied to
    imr_address. So do recognize struct mreq here and copy that correctly.

    Signed-off-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Jiri Pirko
     
  • The GPIO pins select which sub bus is connected to the master.

    Initially tested with an sn74cbtlv3253 switch device wired into the
    MDIO bus.

    Signed-off-by: David Daney
    Signed-off-by: David S. Miller

    David Daney
     
  • This patch adds a somewhat generic framework for MDIO bus
    multiplexers. It is modeled on the I2C multiplexer.

    The multiplexer is needed if there are multiple PHYs with the same
    address connected to the same MDIO bus adepter, or if there is
    insufficient electrical drive capability for all the connected PHY
    devices.

    Conceptually it could look something like this:

    ------------------
    | Control Signal |
    --------+---------
    |
    --------------- --------+------
    | MDIO MASTER |---| Multiplexer |
    --------------- --+-------+----
    | |
    C C
    h h
    i i
    l l
    d d
    | |
    --------- A B ---------
    | | | | | |
    | PHY@1 +-------+ +---+ PHY@1 |
    | | | | | |
    --------- | | ---------
    --------- | | ---------
    | | | | | |
    | PHY@2 +-------+ +---+ PHY@2 |
    | | | |
    --------- ---------

    This framework configures the bus topology from device tree data. The
    mechanics of switching the multiplexer is left to device specific
    drivers.

    The follow-on patch contains a multiplexer driven by GPIO lines.

    Signed-off-by: David Daney
    Signed-off-by: David S. Miller

    David Daney
     
  • Add of_mdio_find_bus() which allows an mii_bus to be located given its
    associated the device tree node.

    This is needed by the follow-on patch to add a driver for MDIO bus
    multiplexers.

    The of_mdiobus_register() function is modified so that the device tree
    node is recorded in the mii_bus. Then we can find it again by
    iterating over all mdio_bus_class devices.

    Because the OF device tree has now become an integral part of the
    kernel, this can live in mdio_bus.c (which contains the needed
    mdio_bus_class structure) instead of of_mdio.c.

    Signed-off-by: David Daney
    Cc: Grant Likely
    Cc: "David S. Miller"
    Signed-off-by: David S. Miller

    David Daney
     
  • If Kernel CAPI is compiled without CONFIG_ISDN_CAPI_MIDDLEWARE,
    the structure retrieved via capincci_find() is never actually
    used, so don't compile that function in that case.

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

    Tilman Schmidt
     
  • Fix up some of the readibility deterioration caused by the recent
    whitespace coding style cleanup.

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

    Tilman Schmidt
     
  • Various functions in the Gigaset driver were using different
    conventions for the meaning of their int return values.
    Align them to the usual negative error numbers convention.

    Inspired-by: Julia Lawall
    Signed-off-by: Tilman Schmidt
    Signed-off-by: David S. Miller

    Tilman Schmidt
     
  • Functions clear_at_state and free_strings did the same thing;
    drop one of them, keeping the more descriptive name.
    Drop a redundant call.
    Rename function dealloc_at_states to dealloc_temp_at_states
    to clarify its purpose.

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

    Tilman Schmidt
     
  • Fix up some of the readibility deterioration caused by the recent
    whitespace coding style cleanup.

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

    Tilman Schmidt
     
  • An out-of-place "OK" response to the "AT+GMR" (get firmware version)
    command turns out to be, more often than not, a delayed response to
    a previous command rather than an actual error, so continue waiting
    for the version number in that case.

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

    Tilman Schmidt
     
  • If DISCONNECT_B3_IND was synthesized because of a DISCONNECT_REQ
    with existing logical connections, the connection state wasn't
    updated accordingly. Also the emitted DISCONNECT_B3_IND message
    wasn't included in the debug log as requested.
    This patch fixes both of these issues.

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

    Tilman Schmidt
     
  • Introduce a global ratelimit for CAPI message dumps to protect
    against possible log flood.
    Drop the ratelimit for ignored messages which is now covered by the
    global one.

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

    Tilman Schmidt
     
  • Neither compare_ether_addr() nor compare_ether_addr_64bits()
    (as it can fall back to the former) have comparison semantics
    like memcmp() where the sign of the return value indicates sort
    order. We had a bug in the wireless code due to a blind memcmp
    replacement because of this.

    A cursory look suggests that the wireless bug was the only one
    due to this semantic difference.

    Signed-off-by: Johannes Berg
    Signed-off-by: David S. Miller

    Johannes Berg
     

07 May, 2012

6 commits

  • David S. Miller
     
  • With the recent changes for how we compute the skb truesize it occurs to me
    we are probably going to have a lot of calls to skb_end_pointer -
    skb->head. Instead of running all over the place doing that it would make
    more sense to just make it a separate inline skb_end_offset(skb) that way
    we can return the correct value without having gcc having to do all the
    optimization to cancel out skb->head - skb->head.

    Signed-off-by: Alexander Duyck
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Alexander Duyck
     
  • Since there is now only one spot that actually uses "fastpath" there isn't
    much point in carrying it. Instead we can just use a check for skb_cloned
    to verify if we can perform the fast-path free for the head or not.

    Signed-off-by: Alexander Duyck
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Alexander Duyck
     
  • The fast-path for pskb_expand_head contains a check where the size plus the
    unaligned size of skb_shared_info is compared against the size of the data
    buffer. This code path has two issues. First is the fact that after the
    recent changes by Eric Dumazet to __alloc_skb and build_skb the shared info
    is always placed in the optimal spot for a buffer size making this check
    unnecessary. The second issue is the fact that the check doesn't take into
    account the aligned size of shared info. As a result the code burns cycles
    doing a memcpy with nothing actually being shifted.

    Signed-off-by: Alexander Duyck
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Alexander Duyck
     
  • Some RNDIS devices include a bogus CDC Union descriptor pointing
    to non-existing interfaces. The RNDIS code is already prepared
    to handle devices without a CDC Union descriptor by hardwiring
    the driver to use interfaces 0 and 1, which is correct for the
    devices with the bogus descriptor as well. So we can reuse the
    existing workaround.

    Cc: Markus Kolb
    Cc: Iker Salmón San Millán
    Cc: Jonathan Nieder
    Cc: Oliver Neukum
    Cc: 655387@bugs.debian.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Bjørn Mork
    Signed-off-by: David S. Miller

    Bjørn Mork
     
  • This is a bug fix for an "interface fails to load" issue.
    The issue occurs when bnx2x driver loads after UNDI driver was previously
    loaded over the chip. In such a scenario the UNDI driver is loaded and operates
    in the pre-boot kernel, within its own specific host memory address range.
    When the pre-boot stage is complete, the real kernel is loaded, in a new and
    distinct host memory address range. The transition from pre-boot stage to boot
    is asynchronous from UNDI point of view.

    A race condition occurs when UNDI driver triggers a DMAE transaction to valid
    host addresses in the pre-boot stage, when control is diverted to the real
    kernel. This results in access to illegal addresses by our HW as the addresses
    which were valid in the preboot stage are no longer considered valid.
    Specifically, the 'was_error' bit in the pci glue of our device is set. This
    causes all following pci transactions from chip to host to timeout (in
    accordance to the pci spec).

    Signed-off-by: Ariel Elior
    Signed-off-by: Eilon Greenstein
    Signed-off-by: David S. Miller

    Ariel Elior
     

05 May, 2012

6 commits

  • PFC stats are only tabulated when PFC is enabled. However in IEEE
    mode the ieee_pfc pfc_tc bits were not checked and the calculation
    was aborted.

    This results in statistics not being reported through ethtool and
    possible a false Tx hang occurring when receiving pause frames.

    Signed-off-by: John Fastabend
    Tested-by: Ross Brattain
    Signed-off-by: Jeff Kirsher

    John Fastabend
     
  • Signed-off-by: Bruce Allan
    Tested-by: Aaron Brown
    Signed-off-by: Jeff Kirsher

    Bruce Allan
     
  • Clear the REQ and GNT bit in the eeprom control register (EECD).
    This is required if the eeprom is to be accessed with auto read
    EERD register.

    After a cold reset this doesn't matter but if PBIST MAC test was
    executed before booting, the register was left in a dirty state
    (the 2 bits where set), which caused the read operation to time out
    and returning 0.

    Reference (page 312):
    http://download.intel.com/design/network/manuals/316080.pdf

    Reported-by: Aleksandar Igic
    Signed-off-by: Richard Alpe
    Tested-by: Jeff Pieper
    Signed-off-by: Jeff Kirsher

    Richard Alpe
     
  • Like other supported (igp) PHYs, the driver needs to be able to force the
    master/slave mode on 82577. Since the code is the same as what already
    exists in the code flow for igp PHYs, move it to a new function to be
    called for both flows.

    Signed-off-by: Bruce Allan
    Tested-by: Jeff Pieper
    Signed-off-by: Jeff Kirsher

    Bruce Allan
     
  • David S. Miller
     
  • It appears some networks play bad games with the two bits reserved for
    ECN. This can trigger false congestion notifications and very slow
    transferts.

    Since RFC 3168 (6.1.1) forbids SYN packets to carry CT bits, we can
    disable TCP ECN negociation if it happens we receive mangled CT bits in
    the SYN packet.

    Signed-off-by: Eric Dumazet
    Cc: Perry Lorier
    Cc: Matt Mathis
    Cc: Yuchung Cheng
    Cc: Neal Cardwell
    Cc: Wilmer van der Gaast
    Cc: Ankur Jain
    Cc: Tom Herbert
    Cc: Dave Täht
    Acked-by: Neal Cardwell
    Signed-off-by: David S. Miller

    Eric Dumazet
     

04 May, 2012

13 commits