15 Jun, 2016

29 commits

  • The only caller of rds_send_get_message() was
    rds_iw_send_cq_comp_handler() which was removed as part of
    commit dcdede0406d3 ("RDS: Drop stale iWARP RDMA transport"),
    so remove rds_send_get_message() for the same reason.

    Signed-off-by: Sowmini Varadhan
    Signed-off-by: David S. Miller

    Sowmini Varadhan
     
  • rds_send_path_drop_acked() is the path-specific version of
    rds_send_drop_acked() to be invoked by MP capable callers.

    Signed-off-by: Sowmini Varadhan
    Signed-off-by: David S. Miller

    Sowmini Varadhan
     
  • rds_send_path_reset() is the path specific version of rds_send_reset()
    intended for MP capable callers.

    Signed-off-by: Sowmini Varadhan
    Signed-off-by: David S. Miller

    Sowmini Varadhan
     
  • t_mp_capable transports can use rds_inc_path_init to initialize
    all fields in struct rds_incoming, including the i_conn_path.

    Signed-off-by: Sowmini Varadhan
    Signed-off-by: David S. Miller

    Sowmini Varadhan
     
  • Transports that are t_mp_capable should set the rds_conn_path
    on which the datagram was recived in the ->i_conn_path field
    of struct rds_incoming.

    Signed-off-by: Sowmini Varadhan
    Signed-off-by: David S. Miller

    Sowmini Varadhan
     
  • The t_mp_capable bit will be used in the core rds module
    to support multipathing logic when the transport supports it.

    Signed-off-by: Sowmini Varadhan
    Signed-off-by: David S. Miller

    Sowmini Varadhan
     
  • In preparation for multipath RDS, split the rds_connection
    structure into a base structure, and a per-path struct rds_conn_path.
    The base structure tracks information and locks common to all
    paths. The workqs for send/recv/shutdown etc are tracked per
    rds_conn_path. Thus the workq callbacks now work with rds_conn_path.

    This commit allows for one rds_conn_path per rds_connection, and will
    be extended into multiple conn_paths in subsequent commits.

    Signed-off-by: Sowmini Varadhan
    Signed-off-by: David S. Miller

    Sowmini Varadhan
     
  • Make sure that dctcp_get_info() returns only the size of the
    info->dctcp struct that it zeroes out and fills in. Previously it had
    been returning the size of the enclosing tcp_cc_info union,
    sizeof(*info). There is no problem yet, but that union that may one
    day be larger than struct tcp_dctcp_info, in which case the
    TCP_CC_INFO code might accidentally copy uninitialized bytes from the
    stack.

    Signed-off-by: Neal Cardwell
    Signed-off-by: Soheil Hassas Yeganeh
    Signed-off-by: Eric Dumazet
    Acked-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Neal Cardwell
     
  • Fix to return a negative error code from the error handling
    case instead of 0, as done elsewhere in this function.

    Signed-off-by: Wei Yongjun
    Acked-by: Xin Long
    Acked-by: Neil Horman
    Signed-off-by: David S. Miller

    Wei Yongjun
     
  • …git/dhowells/linux-fs

    David Howells says:

    ====================
    rxrpc: Rename rxrpc source files

    Here's the next part of the AF_RXRPC rewrite. In this set I rename some of
    the files in the net/rxrpc/ directory and adjust the Makefile and
    ar-internal.h to reflect the changes.

    The aim is twofold:

    (1) Remove the "ar-" prefix on those files that have it as it's not really
    useful, especially now that I'm building rxkad in.

    (2) To aid splitting the local, peer, connection and call handling code
    into separate files for object and event handling in future patches by
    making it easier to come up with new filenames.

    There are two commits:

    (1) The first commit does a bunch of renames of .c files and alters the
    Makefile. ar-internal.h isn't renamed at this time to avoid having to
    change the contents of the files being renamed.

    (2) The second commit changes the section label comments in ar-internal.h
    to reflect the changed filenames and reorders the file so that the
    sections are back in filename order.

    The patches can be found here also:

    http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-rewrite

    Tagged thusly:

    git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
    rxrpc-rewrite-20160613
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     
  • After the patchset about adding support of ACPI (commit id is 6343488)
    being applied, HNS does not depend on OF. It depends on OF or ACPI, so
    the Kconfig file needs to be updated.

    Signed-off-by: Kejian Yan
    Signed-off-by: Yisen Zhuang
    Signed-off-by: David S. Miller

    Kejian Yan
     
  • Hayes Wang says:

    ====================
    r8152: code adjustment for PHY

    These patches are for adjusting the code about PHY and setting speed.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • The user may change the speed. Use it to replace the default one.

    Signed-off-by: Hayes Wang
    Signed-off-by: David S. Miller

    hayeswang
     
  • Move calling set_speed() from open() to rtl_hw_phy_work_func_t().
    Then, we would set the default speed only for first initialization
    or after resuming.

    Besides, the set_speed() could handle the flag of PHY_RESET which
    would be set in rtl_ops.hw_phy_cfg().

    Signed-off-by: Hayes Wang
    Signed-off-by: David S. Miller

    hayeswang
     
  • Move the settings of PHY to a work queue and schedule it after
    rtl_ops.init().

    There are some reasons for this. First, the settings are only
    needed for the first time initialization or after the power
    down occurs.

    Second, the settings are independent with the others.

    Last, the settings may take more time than the others. Leave
    they in probe() or open() may delay the following flows.

    Signed-off-by: Hayes Wang
    Signed-off-by: David S. Miller

    hayeswang
     
  • When skip_sw is set and hardware fails to apply filter, return error to
    user. This will make error propagation logic similar to the one
    currently used in u32 classifier.
    Also, changed code to use tc_skip_sw() utility function.

    Signed-off-by: Amir Vadai
    Acked-by: Jiri Pirko
    Signed-off-by: David S. Miller

    Amir Vadai
     
  • Michael Chan says:

    ====================
    bnxt_en: Updates for net-next.

    -Add default VLAN support for VFs.
    -Add NPAR (NIC partioning) support.
    -Add support for new device 5731x and 5741x. GRO logic is different.
    -Support new ETHTOOL_{G|S}LINKSETTINGS.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • To fully support 25G and 50G link settings.

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

    Michael Chan
     
  • Some cards do not support autoneg. The current code does not prevent the
    user from enabling autoneg with ethtool on such cards, causing confusion.
    Firmware provides the autoneg capability information and we just need to
    store it in the support_auto_speeds field in bnxt_link_info struct.
    The ethtool set_settings() call will check this field before proceeding
    with autoneg.

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

    Michael Chan
     
  • Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • Add bnxt_gro_func_5731x() to handle GRO packets for this chip. The
    completion structures used in the new chip have new data to help determine
    the header offsets. The offsets can be off by 4 if the packet is an
    internal loopback packet (e.g. from one VF to another VF). Some additional
    logic is added to adjust the offsets if it is a loopback packet.

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

    Michael Chan
     
  • Newer chips require different logic to handle GRO packets. So refactor
    the code so that we can call different functions depending on the chip.

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

    Michael Chan
     
  • Define all the supported chip numbers and chip categories. Store the
    chip_num returned by firmware. If the call to get the version and chip
    number fails, we should abort.

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

    Michael Chan
     
  • Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • NPAR type is read from bnxt_hwrm_func_qcfg. Do not allow changing link
    parameters if in NPAR mode sinc ethe port is shared among multiple
    partitions. The link parameters are set up by firmware.

    Signed-off-by: Satish Baddipadige
    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Satish Baddipadige
     
  • When the VF driver gets this event, the VF configuration has changed (such
    as default VLAN). The VF driver will initiate a silent reset to pick up
    the new configuration.

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

    Michael Chan
     
  • When a default VLAN is added to the VF, the VF driver needs to reset to
    pick up the default VLAN ID. We can use the same tx timeout reset logic
    to do that, without the debug output. This new function, with the
    silent parameter to suppress debug output will now serve both purposes.

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

    Michael Chan
     
  • The PF can setup a default VLAN for a VF. The default VLAN tag is
    automatically inserted and stripped without the knowledge of the
    stack running on the VF. The VF driver needs to know that default
    VLAN is enabled as VLAN acceleration on the RX side is no longer
    supported. Call netdev_update_features() to fix up the VLAN features
    as necessary. Also, VLAN strip mode must be enabled to strip out
    the default VLAN tag.

    Only allow VF default VLAN to be set if the firmware spec is >= 1.2.1.

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

    Michael Chan
     
  • The ethtool api {get|set}_settings is deprecated.
    We move the enic driver to new api {get|set}_link_ksettings.

    Signed-off-by: Philippe Reynes
    Signed-off-by: David S. Miller

    Philippe Reynes
     

14 Jun, 2016

1 commit

  • The commit e858fae2b0b8 ("virtio_net: use common code for virtio_net_hdr
    and skb GSO conversion") replaced the tun code for header manipulation
    with the generic helpers. While doing so, it implictly moved the
    skb_partial_csum_set() invocation after eth_type_trans(), which
    invalidate the current gso start/offset values.
    Fix it by moving the helper invocation before the mac pulling.

    Fixes: e858fae2b0b8 ("virtio_net: use common code for virtio_net_hdr and
    skb GSO conversion")

    Reported-by: David Ahern
    Signed-off-by: Mike Rapoport
    Signed-off-by: David S. Miller

    Mike Rapoport
     

13 Jun, 2016

4 commits

  • Update the section comments in ar-internal.h that indicate the locations of
    the referenced items to reflect the renames done to the .c files in
    net/rxrpc/.

    This also involves some rearrangement to reflect keep the sections in order
    of filename.

    Signed-off-by: David Howells

    David Howells
     
  • Rename files matching net/rxrpc/ar-*.c to get rid of the "ar-" prefix.
    This will aid splitting those files by making easier to come up with new
    names.

    Note that the not all files are simply renamed from ar-X.c to X.c. The
    following exceptions are made:

    (*) ar-call.c -> call_object.c
    ar-ack.c -> call_event.c

    call_object.c is going to contain the core of the call object
    handling. Call event handling is all going to be in call_event.c.

    (*) ar-accept.c -> call_accept.c

    Incoming call handling is going to be here.

    (*) ar-connection.c -> conn_object.c
    ar-connevent.c -> conn_event.c

    The former file is going to have the basic connection object handling,
    but there will likely be some differentiation between client
    connections and service connections in additional files later. The
    latter file will have all the connection-level event handling.

    (*) ar-local.c -> local_object.c

    This will have the local endpoint object handling code. The local
    endpoint event handling code will later be split out into
    local_event.c.

    (*) ar-peer.c -> peer_object.c

    This will have the peer endpoint object handling code. Peer event
    handling code will be placed in peer_event.c (for the moment, there is
    none).

    (*) ar-error.c -> peer_event.c

    This will become the peer event handling code, though for the moment
    it's actually driven from the local endpoint's perspective.

    Note that I haven't renamed ar-transport.c to transport_object.c as the
    intention is to delete it when the rxrpc_transport struct is excised.

    The only file that actually has its contents changed is net/rxrpc/Makefile.

    net/rxrpc/ar-internal.h will need its section marker comments updating, but
    I'll do that in a separate patch to make it easier for git to follow the
    history across the rename. I may also want to rename ar-internal.h at some
    point - but that would mean updating all the #includes and I'd rather do
    that in a separate step.

    Signed-off-by: David Howells <dhowells@redhat.com.

    David Howells
     
  • sch_atm returns this when TC_ACT_SHOT classification occurs.

    But all other schedulers that use tc_classify
    (htb, hfsc, drr, fq_codel ...) return NET_XMIT_SUCCESS | __BYPASS
    in this case so just do that in atm.

    BATMAN uses it as an intermediate return value to signal
    forwarding vs. buffering, but it did not return POLICED to
    callers outside of BATMAN.

    Reviewed-by: Sven Eckelmann
    Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal
     
  • Since msleep is based on jiffies the PHY reset could take longer
    than expected. So use msleep for values greater than 20 msec otherwise
    usleep_range.

    Signed-off-by: Stefan Wahren
    Acked-by: Fugang Duan
    Signed-off-by: David S. Miller

    Stefan Wahren
     

12 Jun, 2016

1 commit


11 Jun, 2016

5 commits

  • Eric Dumazet says:

    ====================
    net_sched: remove qdisc_is_throttled()

    HTB, CBQ and HFSC pay a very high cost updating the qdisc 'throttled'
    status that nothing but CBQ seems to use.

    CBQ usage is flaky anyway, since no qdisc ->enqueue() updates the
    'throttled' qdisc status.

    This looks like some 'optimization' that actually cost more than code
    without the optimization, and might cause latency issues with CBQ.

    In my tests, I could achieve a 8 % performance increase in TCP_RR
    workload through HTB qdisc, in presence of throttled classes,
    and 5 % without throttled classes.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • __QDISC_STATE_THROTTLED bit manipulation is rather expensive
    for HTB and few others.

    I already removed it for sch_fq in commit f2600cf02b5b
    ("net: sched: avoid costly atomic operation in fq_dequeue()")
    and so far nobody complained.

    When one ore more packets are stuck in one or more throttled
    HTB class, a htb dequeue() performs two atomic operations
    to clear/set __QDISC_STATE_THROTTLED bit, while root qdisc
    lock is held.

    Removing this pair of atomic operations bring me a 8 % performance
    increase on 200 TCP_RR tests, in presence of throttled classes.

    This patch has no side effect, since nothing actually uses
    disc_is_throttled() anymore.

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

    Eric Dumazet
     
  • Looks like it is only there as some optimization attempt.

    Since __QDISC_STATE_THROTTLED set/unset is way too expensive,
    and netem is the last user, just remove this check.

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

    Eric Dumazet
     
  • So far no qdisc ever unset the throttled bit at enqueue() time,
    so CBQ usage of qdisc_is_throttled() was flaky.

    Since __QDISC_STATE_THROTTLED set/unset is way too expensive
    considering that only CBQ was eventually caring for this status,
    it would make sense to implement a Qdisc ops ->is_throttled()
    if we find that this is needed.

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

    Eric Dumazet
     
  • We want to get rid of generic qdisc throttled management,
    so this qdisc has to use a private flag.

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

    Eric Dumazet