From: Jason Gunthorpe Date: Tue, 16 Oct 2018 06:01:02 +0000 (-0600) Subject: Merge branch 'for-rc' into rdma.git for-next X-Git-Tag: v4.20-rc1~110^2~46 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=59bfc59a68286c5e6824ec3dddcf5232a73c217e;p=thirdparty%2Fkernel%2Flinux.git Merge branch 'for-rc' into rdma.git for-next From git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git This is required to resolve dependencies of the next series of RDMA patches. The code motion conflicts in drivers/infiniband/core/cache.c were resolved. Signed-off-by: Jason Gunthorpe --- 59bfc59a68286c5e6824ec3dddcf5232a73c217e diff --cc drivers/infiniband/core/cache.c index ebc64418d809b,3208ad6ad5401..5b2fce4a70915 --- a/drivers/infiniband/core/cache.c +++ b/drivers/infiniband/core/cache.c @@@ -335,6 -337,39 +335,38 @@@ static int add_roce_gid(struct ib_gid_t return 0; } + /** + * del_gid - Delete GID table entry + * + * @ib_dev: IB device whose GID entry to be deleted + * @port: Port number of the IB device + * @table: GID table of the IB device for a port + * @ix: GID entry index to delete + * + */ + static void del_gid(struct ib_device *ib_dev, u8 port, + struct ib_gid_table *table, int ix) + { + struct ib_gid_table_entry *entry; + + lockdep_assert_held(&table->lock); + - pr_debug("%s device=%s port=%d index=%d gid %pI6\n", __func__, - ib_dev->name, port, ix, - table->data_vec[ix]->attr.gid.raw); ++ dev_dbg(&ib_dev->dev, "%s port=%d index=%d gid %pI6\n", __func__, port, ++ ix, table->data_vec[ix]->attr.gid.raw); + + write_lock_irq(&table->rwlock); + entry = table->data_vec[ix]; + entry->state = GID_TABLE_ENTRY_PENDING_DEL; + /* + * For non RoCE protocol, GID entry slot is ready to use. + */ + if (!rdma_protocol_roce(ib_dev, port)) + table->data_vec[ix] = NULL; + write_unlock_irq(&table->rwlock); + + put_gid_entry_locked(entry); + } + /** * add_modify_gid - Add or modify GID table entry * diff --cc drivers/infiniband/hw/mlx5/devx.c index c11640047f268,f2f11e652dcd2..31f12295aec63 --- a/drivers/infiniband/hw/mlx5/devx.c +++ b/drivers/infiniband/hw/mlx5/devx.c @@@ -850,13 -723,12 +850,14 @@@ static int UVERBS_HANDLER(MLX5_IB_METHO attrs, MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE); struct mlx5_ib_ucontext *c = to_mucontext(uobj->context); struct mlx5_ib_dev *dev = to_mdev(c->ibucontext.device); + u32 out[MLX5_ST_SZ_DW(general_obj_out_cmd_hdr)]; struct devx_obj *obj; int err; + int uid; - if (!c->devx_uid) - return -EPERM; + uid = devx_get_uid(c, cmd_in); + if (uid < 0) + return uid; if (!devx_is_obj_create_cmd(cmd_in)) return -EINVAL;