1. 27 May, 2020 1 commit
    • Leon Romanovsky's avatar
      net/mlx5: Add ability to read and write ECE options · 6b646a7e
      Leon Romanovsky authored
      The end result of RDMA-CM ECE handshake is ECE options, which is
      needed to be used while configuring data QPs. Such options can
      come in any QP state, so add in/out fields to set and query
      ECE options.
      
      OUT fields:
      * create_qp() - default ECE options for that type of QP.
      * modify_qp() - enabled ECE options after QP state transition.
      
      IN fields:
      * create_qp() - create QP with this ECE option.
      * modify_qp() - requested options. For unconnected QPs, the FW
      will return an error if ECE is already configured with any options
      that not equal to previously set.
      Reviewed-by: default avatarMark Zhang <markz@mellanox.com>
      Reviewed-by: default avatarMaor Gottlieb <maorg@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      6b646a7e
  2. 18 May, 2020 3 commits
  3. 13 May, 2020 2 commits
  4. 11 May, 2020 1 commit
    • Gustavo A. R. Silva's avatar
      net/mlx5: Replace zero-length array with flexible-array · b6ca09cb
      Gustavo A. R. Silva authored
      The current codebase makes use of the zero-length array language
      extension to the C90 standard, but the preferred mechanism to declare
      variable-length types such as these ones is a flexible array member[1][2],
      introduced in C99:
      
      struct foo {
              int stuff;
              struct boo array[];
      };
      
      By making use of the mechanism above, we will get a compiler warning
      in case the flexible array does not occur last in the structure, which
      will help us prevent some kind of undefined behavior bugs from being
      inadvertently introduced[3] to the codebase from now on.
      
      Also, notice that, dynamic memory allocations won't be affected by
      this change:
      
      "Flexible array members have incomplete type, and so the sizeof operator
      may not be applied. As a quirk of the original implementation of
      zero-length arrays, sizeof evaluates to zero."[1]
      
      sizeof(flexible-array-member) triggers a warning because flexible array
      members have incomplete type[1]. There are some instances of code in
      which the sizeof operator is being incorrectly/erroneously applied to
      zero-length arrays and the result is zero. Such instances may be hiding
      some bugs. So, this work (flexible-array member conversions) will also
      help to get completely rid of those sorts of issues.
      
      This issue was found with the help of Coccinelle.
      
      [1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
      [2] https://github.com/KSPP/linux/issues/21
      [3] commit 76497732 ("cxgb3/l2t: Fix undefined behaviour")
      Signed-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      b6ca09cb
  5. 01 May, 2020 11 commits
  6. 28 Apr, 2020 9 commits
  7. 23 Apr, 2020 13 commits