09 Dec, 2015

1 commit

  • mlx4 devices (ConnectX-2, ConnectX-3) has a limitation
    where rdma read work queue entries cannot exceed 512 bytes.
    A rdma_read wqe needs to fit in 512 bytes:
    - wqe control segment (16 bytes)
    - rdma segment (16 bytes)
    - scatter elements (16 bytes each)

    So max_sge_rd should be: (512 - 16 - 16) / 16 = 30.

    Signed-off-by: Sagi Grimberg
    Reviewed-by: Steve Wise
    Signed-off-by: Doug Ledford

    Sagi Grimberg
     

08 Nov, 2015

1 commit

  • Pull rdma updates from Doug Ledford:
    "This is my initial round of 4.4 merge window patches. There are a few
    other things I wish to get in for 4.4 that aren't in this pull, as
    this represents what has gone through merge/build/run testing and not
    what is the last few items for which testing is not yet complete.

    - "Checksum offload support in user space" enablement
    - Misc cxgb4 fixes, add T6 support
    - Misc usnic fixes
    - 32 bit build warning fixes
    - Misc ocrdma fixes
    - Multicast loopback prevention extension
    - Extend the GID cache to store and return attributes of GIDs
    - Misc iSER updates
    - iSER clustering update
    - Network NameSpace support for rdma CM
    - Work Request cleanup series
    - New Memory Registration API"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (76 commits)
    IB/core, cma: Make __attribute_const__ declarations sparse-friendly
    IB/core: Remove old fast registration API
    IB/ipath: Remove fast registration from the code
    IB/hfi1: Remove fast registration from the code
    RDMA/nes: Remove old FRWR API
    IB/qib: Remove old FRWR API
    iw_cxgb4: Remove old FRWR API
    RDMA/cxgb3: Remove old FRWR API
    RDMA/ocrdma: Remove old FRWR API
    IB/mlx4: Remove old FRWR API support
    IB/mlx5: Remove old FRWR API support
    IB/srp: Dont allocate a page vector when using fast_reg
    IB/srp: Remove srp_finish_mapping
    IB/srp: Convert to new registration API
    IB/srp: Split srp_map_sg
    RDS/IW: Convert to new memory registration API
    svcrdma: Port to new memory registration API
    xprtrdma: Port to new memory registration API
    iser-target: Port to new memory registration API
    IB/iser: Port to new fast registration API
    ...

    Linus Torvalds
     

22 Oct, 2015

1 commit

  • Update device capabilities regarding HW filtering multicast loopback support.

    Add MLX4_UPDATE_QP_ETH_SRC_CHECK_MC_LB attribute to mlx4_update_qp to
    enable changing QP context to support filtering incoming multicast
    loopback traffic according the sender's counter index.

    Set the corresponding bits in QP context to force the loopback source
    checks if attribute is given and HW supports it.

    Signed-off-by: Maor Gottlieb
    Signed-off-by: Eran Ben Elisha
    Signed-off-by: Doug Ledford

    Maor Gottlieb
     

15 Oct, 2015

1 commit

  • By design, when no default MAC addresses are set in the Hypervisor for VFs,
    the VFs are passed zero-macs. When such a MAC is received by the VF, it
    generates a random MAC address and registers that MAC address
    with the Hypervisor.

    This random mac generation is currently done in the mlx4_en module.
    There is a problem, though, if the mlx4_ib module is loaded by a VF before
    the mlx4_en module. In this case, for RoCE, mlx4_ib will see the un-replaced
    zero-mac and register that zero-mac as part of QP1 initialization.

    Having a zero-mac in the port's MAC table creates problems for a
    Baseboard Management Console. The BMC occasionally sends packets with a
    zero-mac destination MAC. If there is a zero-mac present in the port's
    MAC table, the FW will send such BMC packets to the host driver rather than
    to the wire, and BMC will stop working.

    To address this problem, we move the replacement of zero-mac addresses
    with random-mac addresses to procedure mlx4_slave_cap(), which is part of the
    driver startup for VFs, and is before activation of mlx4_ib and mlx4_en.
    As a result, zero-mac addresses will never be registered in the port MAC table
    by the driver.

    In addition, when mlx4_en does initialize the net device, it needs to set
    the NET_ADDR_RANDOM flag in the netdev structure if the address was
    randomly generated. This is done so that udev on the VM does not create
    a new device name after each VF probe (VM boot and such). To accomplish this,
    we add a per-port flag in mlx4_dev which gets set whenever mlx4_core replaces
    a zero-mac with a randomly-generated mac. This flag is examined when mlx4_en
    initializes the net-device.

    Fix was suggested by Matan Barak

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

    Jack Morgenstein
     

09 Sep, 2015

1 commit

  • Pull inifiniband/rdma updates from Doug Ledford:
    "This is a fairly sizeable set of changes. I've put them through a
    decent amount of testing prior to sending the pull request due to
    that.

    There are still a few fixups that I know are coming, but I wanted to
    go ahead and get the big, sizable chunk into your hands sooner rather
    than waiting for those last few fixups.

    Of note is the fact that this creates what is intended to be a
    temporary area in the drivers/staging tree specifically for some
    cleanups and additions that are coming for the RDMA stack. We
    deprecated two drivers (ipath and amso1100) and are waiting to hear
    back if we can deprecate another one (ehca). We also put Intel's new
    hfi1 driver into this area because it needs to be refactored and a
    transfer library created out of the factored out code, and then it and
    the qib driver and the soft-roce driver should all be modified to use
    that library.

    I expect drivers/staging/rdma to be around for three or four kernel
    releases and then to go away as all of the work is completed and final
    deletions of deprecated drivers are done.

    Summary of changes for 4.3:

    - Create drivers/staging/rdma
    - Move amso1100 driver to staging/rdma and schedule for deletion
    - Move ipath driver to staging/rdma and schedule for deletion
    - Add hfi1 driver to staging/rdma and set TODO for move to regular
    tree
    - Initial support for namespaces to be used on RDMA devices
    - Add RoCE GID table handling to the RDMA core caching code
    - Infrastructure to support handling of devices with differing read
    and write scatter gather capabilities
    - Various iSER updates
    - Kill off unsafe usage of global mr registrations
    - Update SRP driver
    - Misc mlx4 driver updates
    - Support for the mr_alloc verb
    - Support for a netlink interface between kernel and user space cache
    daemon to speed path record queries and route resolution
    - Ininitial support for safe hot removal of verbs devices"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (136 commits)
    IB/ipoib: Suppress warning for send only join failures
    IB/ipoib: Clean up send-only multicast joins
    IB/srp: Fix possible protection fault
    IB/core: Move SM class defines from ib_mad.h to ib_smi.h
    IB/core: Remove unnecessary defines from ib_mad.h
    IB/hfi1: Add PSM2 user space header to header_install
    IB/hfi1: Add CSRs for CONFIG_SDMA_VERBOSITY
    mlx5: Fix incorrect wc pkey_index assignment for GSI messages
    IB/mlx5: avoid destroying a NULL mr in reg_user_mr error flow
    IB/uverbs: reject invalid or unknown opcodes
    IB/cxgb4: Fix if statement in pick_local_ip6adddrs
    IB/sa: Fix rdma netlink message flags
    IB/ucma: HW Device hot-removal support
    IB/mlx4_ib: Disassociate support
    IB/uverbs: Enable device removal when there are active user space applications
    IB/uverbs: Explicitly pass ib_dev to uverbs commands
    IB/uverbs: Fix race between ib_uverbs_open and remove_one
    IB/uverbs: Fix reference counting usage of event files
    IB/core: Make ib_dealloc_pd return void
    IB/srp: Create an insecure all physical rkey only if needed
    ...

    Linus Torvalds
     

31 Aug, 2015

2 commits

  • get_netdev: get the net_device on the physical port of the IB transport port. In
    port aggregation mode it is required to return the netdev of the active port.

    modify_gid: note for a change in the RoCE gid cache. Handle this by writing to
    the harsware GID table. It is possible that indexes in cahce and hardware tables
    won't match so a translation is required when modifying a QP or creating an
    address handle.

    Signed-off-by: Moni Shoua
    Signed-off-by: Doug Ledford

    Moni Shoua
     
  • The mlx4 network driver was registered in the context of the 'add'
    function of the core driver (called when HW should be registered).
    This makes the netdev event NETDEV_REGISTER to be sent in a context
    where the answer to get_protocol_dev() callback returns NULL. This may
    be confusing to listeners of netdev events.
    This patch is a preparation to the patch that implements the
    get_netdev() callback in the IB/mlx4 driver.

    Signed-off-by: Moni Shoua
    Signed-off-by: Doug Ledford

    Moni Shoua
     

28 Jul, 2015

3 commits

  • To enable device support in accelerated 802.1ad vlan, the port
    capability "packet has vlan enable" (phv_en) should be set.
    Firmware won't work properly, in case phv_en is not set.

    The user can enable "phv_en" port capability with the new ethtool
    private flag phv-bit. The phv-bit private flag default value is OFF,
    users who are interested in 802.1ad hardware acceleration should turn ON
    the phv-bit private flag:
    $ ethtool --set-priv-flags eth1 phv-bit on

    Once the private flag is set, the device is ready for 802.1ad vlan
    acceleration.

    The user should also change the interface device features and turn on
    "tx-vlan-stag-hw-insert" which is off by default:
    $ ethtool -K eth1 tx-vlan-stag-hw-insert on

    "phv-bit" private flag setting is available only for Physical
    Functions(PF), the Virtual Function (VF) will be able to use the feature
    by setting "tx-vlan-stag-hw-insert" ethtool device feature only if the
    feature was enabled by the Hypervisor.

    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Amir Vadai
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     
  • To add Hardware accelerated support in 802.1ad vlan, replace
    Current VLAN macros to CVLAN.
    Replace:
    MLX4_WQE_CTRL_INS_VLAN
    MLX4_CQE_VLAN_PRESENT_MASK
    With:
    MLX4_WQE_CTRL_INS_CVLAN
    MLX4_CQE_CVLAN_PRESENT_MASK

    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Amir Vadai
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     
  • mlx4_core preparation to support hardware accelerated 802.1ad VLAN
    device.

    To allow 802.1ad accelerated device, "packet has vlan" (phv)
    Firmware capability should be available. Firmware without the
    phv capability won't behave properly and can't support 802.1ad device
    acceleration.

    The driver checks the Firmware capability and sets the phv bit
    accordingly in SET_PORT command.

    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Amir Vadai
    Signed-off-by: David S. Miller

    Hadar Hen Zion
     

25 Jun, 2015

1 commit

  • Pull networking updates from David Miller:

    1) Add TX fast path in mac80211, from Johannes Berg.

    2) Add TSO/GRO support to ibmveth, from Thomas Falcon

    3) Move away from cached routes in ipv6, just like ipv4, from Martin
    KaFai Lau.

    4) Lots of new rhashtable tests, from Thomas Graf.

    5) Run ingress qdisc lockless, from Alexei Starovoitov.

    6) Allow servers to fetch TCP packet headers for SYN packets of new
    connections, for fingerprinting. From Eric Dumazet.

    7) Add mode parameter to pktgen, for testing receive. From Alexei
    Starovoitov.

    8) Cache access optimizations via simplifications of build_skb(), from
    Alexander Duyck.

    9) Move page frag allocator under mm/, also from Alexander.

    10) Add xmit_more support to hv_netvsc, from KY Srinivasan.

    11) Add a counter guard in case we try to perform endless reclassify
    loops in the packet scheduler.

    12) Extern flow dissector to be programmable and use it in new "Flower"
    classifier. From Jiri Pirko.

    13) AF_PACKET fanout rollover fixes, performance improvements, and new
    statistics. From Willem de Bruijn.

    14) Add netdev driver for GENEVE tunnels, from John W Linville.

    15) Add ingress netfilter hooks and filtering, from Pablo Neira Ayuso.

    16) Fix handling of epoll edge triggers in TCP, from Eric Dumazet.

    17) Add an ECN retry fallback for the initial TCP handshake, from Daniel
    Borkmann.

    18) Add tail call support to BPF, from Alexei Starovoitov.

    19) Add several pktgen helper scripts, from Jesper Dangaard Brouer.

    20) Add zerocopy support to AF_UNIX, from Hannes Frederic Sowa.

    21) Favor even port numbers for allocation to connect() requests, and
    odd port numbers for bind(0), in an effort to help avoid
    ip_local_port_range exhaustion. From Eric Dumazet.

    22) Add Cavium ThunderX driver, from Sunil Goutham.

    23) Allow bpf programs to access skb_iif and dev->ifindex SKB metadata,
    from Alexei Starovoitov.

    24) Add support for T6 chips in cxgb4vf driver, from Hariprasad Shenai.

    25) Double TCP Small Queues default to 256K to accomodate situations
    like the XEN driver and wireless aggregation. From Wei Liu.

    26) Add more entropy inputs to flow dissector, from Tom Herbert.

    27) Add CDG congestion control algorithm to TCP, from Kenneth Klette
    Jonassen.

    28) Convert ipset over to RCU locking, from Jozsef Kadlecsik.

    29) Track and act upon link status of ipv4 route nexthops, from Andy
    Gospodarek.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1670 commits)
    bridge: vlan: flush the dynamically learned entries on port vlan delete
    bridge: multicast: add a comment to br_port_state_selection about blocking state
    net: inet_diag: export IPV6_V6ONLY sockopt
    stmmac: troubleshoot unexpected bits in des0 & des1
    net: ipv4 sysctl option to ignore routes when nexthop link is down
    net: track link-status of ipv4 nexthops
    net: switchdev: ignore unsupported bridge flags
    net: Cavium: Fix MAC address setting in shutdown state
    drivers: net: xgene: fix for ACPI support without ACPI
    ip: report the original address of ICMP messages
    net/mlx5e: Prefetch skb data on RX
    net/mlx5e: Pop cq outside mlx5e_get_cqe
    net/mlx5e: Remove mlx5e_cq.sqrq back-pointer
    net/mlx5e: Remove extra spaces
    net/mlx5e: Avoid TX CQE generation if more xmit packets expected
    net/mlx5e: Avoid redundant dev_kfree_skb() upon NOP completion
    net/mlx5e: Remove re-assignment of wq type in mlx5e_enable_rq()
    net/mlx5e: Use skb_shinfo(skb)->gso_segs rather than counting them
    net/mlx5e: Static mapping of netdev priv resources to/from netdev TX queues
    net/mlx4_en: Use HW counters for rx/tx bytes/packets in PF device
    ...

    Linus Torvalds
     

16 Jun, 2015

4 commits

  • Implement the ndo to gather VF statistics through the PF.

    All counters related to this VF are stored in a per slave
    list, run over the slave's list and collect all statistics.

    Signed-off-by: Eran Ben Elisha
    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Eran Ben Elisha
     
  • This is an infrastructure step for querying VF and PF counters.

    This code was in the IB driver, move it to the mlx4 core driver
    so it will be accessible for more use cases.

    Signed-off-by: Eran Ben Elisha
    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Eran Ben Elisha
     
  • Default counter per port will be allocated at the mlx4 core driver load.

    Every QP opened by the Ethernet driver will be attached to the port's default
    counter. This is an infrastructure step to collect VF statistics from the PF.

    Signed-off-by: Eran Ben Elisha
    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Eran Ben Elisha
     
  • Reserve the last valid counter index for "sink" counter, when a
    new counter cannot be allocated, the driver will use this counter.

    In order to avoid allocating this counter on any other flow, fix the
    indices bitmap allocation range, and reserve the sink counter index.

    Add macro for the sink counter index and replace all appearences of the
    index with the macro.

    Signed-off-by: Eran Ben Elisha
    Signed-off-by: Hadar Hen Zion
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Eran Ben Elisha
     

13 Jun, 2015

1 commit


31 May, 2015

1 commit

  • Previously, mlx4_en allocated EQs and used them exclusively.
    This affected RoCE performance, as applications which are
    events sensitive were limited to use only the legacy EQs.

    Change that by introducing an EQ pool. This pool is managed
    by mlx4_core. EQs are assigned to ports (when there are limited
    number of EQs, multiple ports could be assigned to the same EQs).

    An exception to this rule is the ASYNC EQ which handles various events.

    Legacy EQs are completely removed as all EQs could be shared.

    When a consumer (mlx4_ib/mlx4_en) requests an EQ, it asks for
    EQ serving on a specific port. The core driver calculates which
    EQ should be assigned to that request.

    Because IRQs are shared between IB and Ethernet modules, their
    names only include the PCI device BDF address.

    Signed-off-by: Matan Barak
    Signed-off-by: Ido Shamay
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Matan Barak
     

16 Apr, 2015

2 commits

  • To have out of the box experience, the PF generates random GUIDs who
    serve as the initial admin values.

    Signed-off-by: Yishai Hadas
    Signed-off-by: Jack Morgenstein
    Signed-off-by: Or Gerlitz
    Signed-off-by: Doug Ledford

    Yishai Hadas
     
  • Manages alias GUIDs per VF per port in the core layer.

    This is a pre-step for managing alias GUIDs in a mode that the admin
    GUID is returned via ib_query_gid() regardless of whether the SM
    has approved it or not.

    Signed-off-by: Yishai Hadas
    Signed-off-by: Jack Morgenstein
    Signed-off-by: Or Gerlitz
    Signed-off-by: Doug Ledford

    Yishai Hadas
     

03 Apr, 2015

12 commits

  • Enabled when the device supports KEEP FCS and IGNORE FCS.

    When the flag is set, pass all received frames up the stack,
    even ones with invalid FCS, controlled by ethtool.

    Signed-off-by: Muhammad Mahajna
    Signed-off-by: Ido Shamay
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Muhammad Mahajna
     
  • Add support for the interface ethtool identify feature.

    Make the physical port LED to blink with green and yellow colors.

    The device handles the LED blink by itself (synchrous use of
    set_phys_id), by returning 0 to ETHTOOL_ID_ACTIVE command.

    Signed-off-by: Eyal Grossman
    Signed-off-by: Ido Shamay
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Ido Shamay
     
  • The calls to SET_PORT used hard-code numbers, when supplying command's
    opcode modifiers, fix that to use well defined constants.

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

    Ido Shamay
     
  • A new capability bit was introduced in the past to to differ devices
    using the QoS ETS feature. The old was deprecated since then.
    If driver sees device which set only the old capabilty, it will print
    warning to user suggesting to upgrade the FW.

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

    Ido Shamay
     
  • Support granular QoS per VF, by implementing the ndo_set_vf_rate.

    Enforce a rate limit per VF when called, and enabled only for VFs in
    VST mode with user priority supported by the device.

    We don't enforce VFs to be in VST mode at the moment of configuration,
    but rather save the given rate limit and enforce it when the VF is
    moved to VST with user priority which is supported (currently 0).

    VSTVGT or VST qos value state changes are disallowed when a rate
    limit is configured. Minimum BW share is not supported yet.

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

    Ido Shamay
     
  • Granular QoS per VF feature introduce a new QP field, qos_vport.

    PF administrator can connect VF QPs to a certain QoS Vport, to
    inherit its proporties. Connecting QPs to the default QoS Vport
    (defined as 0) is always allowed, even when there are no allocated VPPs.
    At this point, only the default vport is connected to QPs.

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

    Ido Shamay
     
  • Checks in QUERY_DEV_CAP if the granular QoS per VF feature is
    supported by the device. Disabled for guests.

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

    Ido Shamay
     
  • Add the SET_VPORT_QOS device command, which is ntended for virtual
    granular QoS configuration per VF in SRIOV mode. The SET_VPORT_QOS
    command sets and queries QoS parameters of a VPort. Each priority
    allowed for a VPort is assigned with a share of the BW, and a BW
    limitation. QoS parameters can be modified at any time, but must be
    initialized before any QP is associated with the VPort.

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

    Ido Shamay
     
  • Implements device ALLOCATE_VPP command, to be used for granular QoS
    configuration of VFs by the PF device. Defines and queries the amount
    of VPPs assigned to each port, and the amount of VPPs assigned to each
    priority of each port. Once the total VPPs are split between the priorities
    of a port, they may be assigned with a share of the BW or a rate limit.

    Split into two functions (get/set) whoch are supplied with
    mlx4_alloc_vpp_context and physical port number.

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

    Ido Shamay
     
  • Create two new files fw_qos.h and fw_qos.c in mlx4_core module.

    It gathers all relevant QoS firmware related commands etc, thus improving
    encapsulation of the mlx4_core module. For now it contains the QoS existing
    commands: mlx4_SET_PORT_SCHEDULER and mlx4_SET_PORT_PRIO2TC.

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

    Ido Shamay
     
  • Currently implemented as static function in resource_tracker.c --
    this change will allow other files in mlx4_core to use it as well.

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

    Ido Shamay
     
  • Enable RSS support for fragmented IP packets, when device supports it.
    Until now, fragmented IP packets were directed only to the default_qpn.
    Since IP fragments (datagram) have no upper protocols (L3 IP packets),
    hash is performed on 3-tuple - dst MAC, source IP and dest IP. The HW
    makes sure that this holds for the 1st fragment too, so all fragments
    go to the same QP.

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

    Ido Shamay
     

01 Apr, 2015

2 commits


19 Mar, 2015

1 commit

  • Add the low-level device commands and definitions used for QP max-rate limiting.

    This is done through the following elements:

    - read rate-limit device caps in QUERY_DEV_CAP: number of different
    rates and the min/max rates in Kbs/Mbs/Gbs units

    - enhance the QP context struct to contain rate limit units and value

    - allow to do run time rate-limit setting to QPs through the
    update-qp firmware command

    - QP rate-limiting is disallowed for VFs

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

    Or Gerlitz
     

07 Mar, 2015

1 commit

  • Add device capability, firmware command opcode and etc prior elements
    needed for QCN suppprt. Disable SRIOV VF view/access for QCN is disabled.

    While here, remove a redundant offset definition into the
    QUERY_DEV_CAP mailbox.

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

    Shani Michaeli
     

03 Mar, 2015

1 commit

  • The bit mask for currently supported driver features (MLX4_UPDATE_QP_SUPPORTED_ATTRS)
    of the update-qp command was defined twice (using enum value and pre-processor
    define directive) and wrong.

    The return value of the call to mlx4_update_qp() from within the SRIOV
    resource-tracker was wrongly voided down.

    Fix both issues.

    issue: none
    Fixes: 09e05c3f78e9 ('net/mlx4: Set vlan stripping policy by the right command')
    Fixes: ce8d9e0d6746 ('net/mlx4_core: Add UPDATE_QP SRIOV wrapper support')
    Signed-off-by: Matan Barak
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Or Gerlitz
     

10 Feb, 2015

1 commit

  • The driver exposes interfaces that directly relate to HW state. Upon fatal
    error, consumers of these interfaces (ULPs) that rely on completion of
    all their posted work-request could hang, thereby introducing dependencies
    in shutdown order. To prevent this from happening, we manage the
    relevant resources (CQs, QPs) that are used by the device. Upon a fatal error,
    we now generate simulated completions for outstanding WQEs that were not
    completed at the time the HW was reset.

    It includes invoking the completion event handler for all involved CQs so that
    the ULPs will poll those CQs. When polled we return simulated CQEs with
    IB_WC_WR_FLUSH_ERR return code enabling ULPs to clean up their resources and
    not wait forever for completions upon receiving remove_one.

    The above change requires an extra check in the data path to make sure that when
    device is in error state, the simulated CQEs will be returned and no further
    WQEs will be posted.

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

    Yishai Hadas
     

06 Feb, 2015

1 commit

  • Conflicts:
    drivers/net/vxlan.c
    drivers/vhost/net.c
    include/linux/if_vlan.h
    net/core/dev.c

    The net/core/dev.c conflict was the overlap of one commit marking an
    existing function static whilst another was adding a new function.

    In the include/linux/if_vlan.h case, the type used for a local
    variable was changed in 'net', whereas the function got rewritten
    to fix a stacked vlan bug in 'net-next'.

    In drivers/vhost/net.c, Al Viro's iov_iter conversions in 'net-next'
    overlapped with an endainness fix for VHOST 1.0 in 'net'.

    In drivers/net/vxlan.c, vxlan_find_vni() added a 'flags' parameter
    in 'net-next' whereas in 'net' there was a bug fix to pass in the
    correct network namespace pointer in calls to this function.

    Signed-off-by: David S. Miller

    David S. Miller
     

05 Feb, 2015

2 commits

  • Supply interface functions to bond and unbond ports of a mlx4 internal
    interfaces. Example for such an interface is the one registered by the
    mlx4 IB driver under RoCE.

    There are

    1. Functions to go in/out to/from bonded mode
    2. Function to remap virtual ports to physical ports

    The bond_mutex prevents simultaneous access to data that keep status of
    the device in bonded mode.

    The upper mlx4 interface marks to the mlx4 core module that they
    want to be subject for such bonding by setting the MLX4_INTFF_BONDING
    flag. Interface which goes to/from bonded mode is re-created.

    The mlx4 Ethernet driver does not set this flag when registering the
    interface, the IB driver does.

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

    Moni Shoua
     
  • Implement the hardware interface required for port aggregation.

    1. Disable RX port check on receive - don't perform a validity check
    that matches to QP's port and the port where the packet is received.

    2. Virtual to physical port remap - configure virtual to physical port
    mapping. Port remap capability for virtual functions.

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

    Moni Shoua