RE: linux-next: manual merge of the rdma tree with Linus' tree
From: Parav Pandit
Date: Fri Sep 28 2018 - 22:57:30 EST
Hi Stephen,
> -----Original Message-----
> From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
> Sent: Thursday, September 27, 2018 7:01 PM
> To: Doug Ledford <dledford@xxxxxxxxxx>; Jason Gunthorpe
> <jgg@xxxxxxxxxxxx>
> Cc: Linux-Next Mailing List <linux-next@xxxxxxxxxxxxxxx>; Linux Kernel
> Mailing List <linux-kernel@xxxxxxxxxxxxxxx>; Parav Pandit
> <parav@xxxxxxxxxxxx>
> Subject: linux-next: manual merge of the rdma tree with Linus' tree
>
> Hi all,
>
> Today's linux-next merge of the rdma tree got a conflict in:
>
> drivers/infiniband/core/cache.c
>
> between commit:
>
> 5c5702e259dc ("RDMA/core: Set right entry state before releasing
> reference")
>
> from Linus' tree and commit:
>
> 43c7c851b9bc ("RDMA/core: Use dev_err/dbg/etc instead of pr_* + ibdev-
> >name")
>
> from the rdma tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This is now fixed
> as far as linux-next is concerned, but any non trivial conflicts should be
> mentioned to your upstream maintainer when your tree is submitted for
> merging. You may also want to consider cooperating with the maintainer of
> the conflicting tree to minimise any particularly complex conflicts.
>
Sorry for the late reply. For some reason mail ended up in spam folder which I noticed now.
I should have watched the device naming series.
My fix went to for-rc and I guess it wasn't applied to for-next which resulted into this merge conflict.
My understanding is, maintainers usually try to avoid merge conflict between for-next and for-rc branches before sending pull request from rdma tree.
I will try to be more careful in future to notify maintainer about it.
Your changes below looks good. Thanks.
Reviewed-by: Parav Pandit <parav@xxxxxxxxxxxx>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc drivers/infiniband/core/cache.c index
> 3208ad6ad540,ebc64418d809..000000000000
> --- a/drivers/infiniband/core/cache.c
> +++ b/drivers/infiniband/core/cache.c
> @@@ -337,39 -335,6 +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
> *