Skip to content
  1. Feb 19, 2020
    • Aya Levin's avatar
      net/mlx5e: Enforce setting of a single FEC mode · 4bd9d507
      Aya Levin authored
      
      
      Ethtool command allow setting of several FEC modes in a single set
      command. The driver can only set a single FEC mode at a time. With this
      patch driver will reply not-supported on setting several FEC modes.
      
      Signed-off-by: default avatarAya Levin <ayal@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      4bd9d507
    • Aya Levin's avatar
      net/mlx5e: Set FEC to auto when configured mode is not supported · 511aa2aa
      Aya Levin authored
      
      
      When configuring FEC mode, driver tries to set it for all available
      link types. If a link type doesn't support a FEC mode, set this link
      type to auto (FW best effort). Prior to this patch, when a link type
      didn't support a FEC mode is was set to no FEC.
      
      Signed-off-by: default avatarAya Levin <ayal@mellanox.com>
      Reviewed-by: default avatarEran Ben Elisha <eranbe@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      511aa2aa
    • Joe Perches's avatar
      mlx5: Use proper logging and tracing line terminations · b21aef7e
      Joe Perches authored
      
      
      netdev_err should use newline termination but mlx5_health_report
      is used in a trace output function devlink_health_report where
      no newline should be used.
      
      Remove the newlines from a couple formats and add a format string
      of "%s\n" to the netdev_err call to not directly output the
      logging string.
      
      Also use snprintf to avoid any possible output string overrun.
      
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      b21aef7e
    • Aya Levin's avatar
      net/mlx5e: Support dump callback in RX reporter · 0f56d3c5
      Aya Levin authored
      
      
      Add support for SQ's FW dump on RX reporter's events. Use Resource dump
      API to retrieve the relevant data: RX slice, RQ dump, RX buffer and
      ICOSQ dump (depends on the error). Wrap it in formatted messages and
      store the binary output in devlink core.
      
      Example:
      $ devlink health dump show pci/0000:00:0b.0 reporter rx
      RX Slice:
         data:
           00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
           22 01 00 00 00 00 ad de 00 00 00 00 00 00 00 00
           00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
           ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
           00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
           22 01 00 00 00 00 ad de 00 00 00 00 00 00 00 00
           00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
           ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
           00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
        RQs:
          RQ:
            rqn: 1512
            data:
              00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
              22 01 00 00 00 00 ad de 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
              22 01 00 00 00 00 ad de 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
          RQ:
            rqn: 1517
            data:
              00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
              22 01 00 00 00 00 ad de 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
              22 01 00 00 00 00 ad de 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
      
      $ devlink health dump show pci/0000:00:0b.0 reporter rx -jp
      {
          "RX Slice": {
          	"data":[ 0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,128,0,1,0,0,0,0,173,222]
          },
          "RQs": [ {
                  "RQ": {
                      "index": 1512,
                      "data": [ 0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,128,0,1,0,0,0,0,173,222]
                  }
              },{
                  "RQ": {
                      "index": 1517,
                      "data": [ 0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,128,0,1,0,0,0,0,173]
                  }
              } ]
      }
      
      Signed-off-by: default avatarAya Levin <ayal@mellanox.com>
      Reviewed-by: default avatarMoshe Shemesh <moshe@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      0f56d3c5
    • Aya Levin's avatar
      net/mlx5e: Support dump callback in TX reporter · 5f29458b
      Aya Levin authored
      
      
      Add support for SQ's FW dump on TX reporter's events. Use Resource dump
      API to retrieve the relevant data: SX slice, SQ dump and SQ buffer. Wrap
      it in formatted messages and store the binary output in devlink core.
      
      Example:
      $ devlink health dump show pci/0000:00:0b.0 reporter tx
      SX Slice:
         data:
           00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
           22 01 00 00 00 00 ad de 00 00 00 00 00 00 00 00
           00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
           ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
           00 02 01 00 00 00 00 80 00 01 00 00 00 00 ad de
           22 01 00 00 00 00 ad de 00 20 40 90 81 88 ff ff
           00 00 00 00 00 00 00 00 15 00 15 00 00 00 00 00
           ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
           00 00 00 00 00 00 00 80 81 ae 41 06 00 ea ff ff
        SQs:
          SQ:
            index: 1511
            data:
              00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
              22 01 00 00 00 00 ad de 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
              00 02 01 00 00 00 00 80 00 01 00 00 00 00 ad de
              22 01 00 00 00 00 ad de 00 20 40 90 81 88 ff ff
              00 00 00 00 00 00 00 00 15 00 15 00 00 00 00 00
              ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 80 81 ae 41 06 00 ea ff ff
          SQ:
            index: 1516
            data:
              00 00 00 00 00 00 00 80 00 01 00 00 00 00 ad de
              22 01 00 00 00 00 ad de 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
              00 02 01 00 00 00 00 80 00 01 00 00 00 00 ad de
              22 01 00 00 00 00 ad de 00 20 40 90 81 88 ff ff
              00 00 00 00 00 00 00 00 15 00 15 00 00 00 00 00
              ff ff ff ff 01 00 00 00 00 00 00 00 00 00 00 00
              00 00 00 00 00 00 00 80 81 ae 41 06 00 ea ff ff
      
      $ devlink health dump show pci/0000:00:0b.0 reporter tx -jp
      {
          "SX Slice": {
          	"data": [ 0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,32,64,144,129,136,255,255,0,0,0,0,0,0,0,0,21,0,21,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,129,174,65,6,0,234,255,255],
          	},
          "SQs": [ {
                  "SQ": {
                      "index": 1511,
                      "data": [ 0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,32,64,144,129,136,255,255,0,0,0,0,0,0,0,0,21,0,21,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,129,174,65,6,0,234,255,255]
                  }
              },{
                  "SQ": {
                      "index": 1516,
                      "data": [ 0,0,0,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,128,0,1,0,0,0,0,173,222,34,1,0,0,0,0,173,222,0,32,64,144,129,136,255,255,0,0,0,0,0,0,0,0,21,0,21,0,0,0,0,0,255,255,255,255,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,129,174,65,6,0,234,255,255]
                  }
              } ]
      }
      
      Signed-off-by: default avatarAya Levin <ayal@mellanox.com>
      Reviewed-by: default avatarMoshe Shemesh <moshe@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      5f29458b
    • Aya Levin's avatar
      net/mlx5e: Gather reporters APIs together · 0a56be3c
      Aya Levin authored
      
      
      Assemble all the API's to ease insertion of dump callbacks in the
      following patches in the set.
      
      Signed-off-by: default avatarAya Levin <ayal@mellanox.com>
      Reviewed-by: default avatarMoshe Shemesh <moshe@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      0a56be3c
    • Aya Levin's avatar
      net/mlx5: Add support for resource dump · 12206b17
      Aya Levin authored
      
      
      On driver load:
      - Initialize resource dump data structure and memory access tools (mkey
        & pd).
      - Read the resource dump's menu which contains the FW segment
        identifier. Each record is identified by the segment name (ASCII).
      
      During the driver's course of life, users (like reporters) may request
      dumps per segment. The user should create a command providing the
      segment identifier (SW enumeration) and command keys. In return, the
      user receives a command context. In order to receive the dump, the user
      should supply the command context and a memory (aligned to a PAGE) on
      which the dump content will be written. Since the dump may be larger
      than the given memory, the user may resubmit the command until received
      an indication of end-of-dump. It is the user's responsibility to destroy
      the command.
      
      Signed-off-by: default avatarAya Levin <ayal@mellanox.com>
      Reviewed-by: default avatarMoshe Shemesh <moshe@mellanox.com>
      Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      12206b17
    • Aya Levin's avatar
      devlink: Force enclosing array on binary fmsg data · 573ed90a
      Aya Levin authored
      
      
      Add a new API for start/end binary array brackets [] to force array
      around binary data as required from JSON. With this restriction, re-open
      API to set binary fmsg data.
      
      Signed-off-by: default avatarAya Levin <ayal@mellanox.com>
      Reviewed-by: default avatarJiri Pirko <jiri@mellanox.com>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      573ed90a
    • Edward Cree's avatar
      sfc: elide assignment of skb · 00796b92
      Edward Cree authored
      
      
      Instead of assigning skb = segments before the loop, just pass
       segments directly as the first argument to skb_list_walk_safe().
      
      Signed-off-by: default avatarEdward Cree <ecree@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      00796b92
    • Fabio Estevam's avatar
      net: fec: Prevent unbind operation · 272bb0e9
      Fabio Estevam authored
      
      
      After performing an unbind/bind operation the network is no longer
      functional on i.MX6 (which has a single FEC instance):
      
      # echo 2188000.ethernet > /sys/bus/platform/drivers/fec/unbind
      # echo 2188000.ethernet > /sys/bus/platform/drivers/fec/bind
      [   10.756519] pps pps0: new PPS source ptp0
      [   10.792626] libphy: fec_enet_mii_bus: probed
      [   10.799330] fec 2188000.ethernet eth0: registered PHC device 1
      # udhcpc -i eth0
      udhcpc: started, v1.31.1
      [   14.985211] fec 2188000.ethernet eth0: no PHY, assuming direct connection to switch
      [   14.993140] libphy: PHY fixed-0:00 not found
      [   14.997643] fec 2188000.ethernet eth0: could not attach to PHY
      
      On SoCs with two FEC instances there are some cases where one FEC instance
      depends on the other one being present. One such example is i.MX28, which
      has the following FEC dependency as noted in the comments:
      
      	/*
      	 * The i.MX28 dual fec interfaces are not equal.
      	 * Here are the differences:
      	 *
      	 *  - fec0 supports MII & RMII modes while fec1 only supports RMII
      	 *  - fec0 acts as the 1588 time master while fec1 is slave
      	 *  - external phys can only be configured by fec0
      	 *
      	 * That is to say fec1 can not work independently. It only works
      	 * when fec0 is working. The reason behind this design is that the
      	 * second interface is added primarily for Switch mode.
      	 *
      	 * Because of the last point above, both phys are attached on fec0
      	 * mdio interface in board design, and need to be configured by
      	 * fec0 mii_bus.
      	 */
      
      Prevent the unbind operation to avoid these issues.
      
      Signed-off-by: default avatarFabio Estevam <festevam@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      272bb0e9
  2. Feb 18, 2020