All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Shiraz Saleem <shiraz.saleem-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Steve Wise <swise-ut6Up61K2wZBDgjK7y7TUQ@public.gmane.org>,
	Dennis Dalessandro
	<dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Lijun Ou <oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>,
	Faisal Latif
	<faisal.latif-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Selvin Xavier
	<selvin.xavier-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.org>,
	Christian Benvenuti
	<benve-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>,
	Dave Goodell <dgoodell-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>,
	Adit Ranadive <aditr-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>,
	Michal Kalderon
	<Michal.Kalderon-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>,
	Rajesh Borundia
	<rajesh.borundia-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org>,
	Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: Re: [PATCH rdma-next 5/5] IB: Query port through the core instead of directly calling the driver handler
Date: Wed, 25 Jan 2017 14:39:20 +0200	[thread overview]
Message-ID: <20170125123920.GO6005@mtr-leonro.local> (raw)
In-Reply-To: <20170124205938.GA5524-GOXS9JX10wfOxmVO0tvppfooFf0ArEBIu+b9c/7xato@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 4179 bytes --]

On Tue, Jan 24, 2017 at 02:59:38PM -0600, Shiraz Saleem wrote:
> On Thu, Jan 19, 2017 at 07:41:02AM +0200, Leon Romanovsky wrote:
> > From: Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> >
> > Change the drivers to call ib_query_port in their get port
> > immutable handler instead of their own query port handler.
> >
> > Doing this required to set the core cap flags of this device
> > before the ib_query_port call is made, since the IB core might
> > need these caps to serve the port query.
> >
> > Drivers are ensured by the IB core that the port attributes passed
> > to the port query verb implementation are zero, and hence we
> > removed the zeroing from the drivers.
> >
> > This patch doesn't add any new functionality.
> >
> > Signed-off-by: Or Gerlitz <ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> > Reviewed-by: Matan Barak <matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> > Signed-off-by: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> > ---

<snip>

> > --- a/drivers/infiniband/hw/mlx4/alias_GUID.c
> > +++ b/drivers/infiniband/hw/mlx4/alias_GUID.c
> > @@ -499,6 +499,7 @@ static int set_guid_rec(struct ib_device *ibdev,
> >  	struct list_head *head =
> >  		&dev->sriov.alias_guid.ports_guid[port - 1].cb_list;
> >
> > +	memset(&attr, 0, sizeof(struct ib_port_attr));
> >  	err = __mlx4_ib_query_port(ibdev, port, &attr, 1);
>
> So why not call ib_query_port here as opposed to driver handler? As stated in your subject line.

This is call to mlx4 internal implementation of ib_query_port. This
implementation takes an additional parameter. In this case it is "1",
while call to ib_query_port will call to this function with "0".

>
> >  	if (err) {
> >  		pr_debug("mlx4_ib_query_port failed (err: %d), port: %d\n",
> > diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c
> > index 7019b94..646dcbf 100644
> > --- a/drivers/infiniband/hw/mlx4/main.c
> > +++ b/drivers/infiniband/hw/mlx4/main.c
> > @@ -741,7 +741,7 @@ int __mlx4_ib_query_port(struct ib_device *ibdev, u8 port,
> >  {
> >  	int err;
> >
> > -	memset(props, 0, sizeof *props);
> > +	/* props being zeroed by the caller, avoid zeroing it here */
> >
> >  	err = mlx4_ib_port_link_layer(ibdev, port) == IB_LINK_LAYER_INFINIBAND ?
> >  		ib_link_query_port(ibdev, port, props, netw_view) :
> > @@ -1014,7 +1014,7 @@ static int mlx4_ib_modify_port(struct ib_device *ibdev, u8 port, int mask,
> >
> >  	mutex_lock(&mdev->cap_mask_mutex);
> >
> > -	err = mlx4_ib_query_port(ibdev, port, &attr);
> > +	err = ib_query_port(ibdev, port, &attr);
> >  	if (err)
> >  		goto out;
> >
> > @@ -2527,13 +2527,6 @@ static int mlx4_port_immutable(struct ib_device *ibdev, u8 port_num,
> >  	struct mlx4_ib_dev *mdev = to_mdev(ibdev);
> >  	int err;
> >
> > -	err = mlx4_ib_query_port(ibdev, port_num, &attr);
> > -	if (err)
> > -		return err;
> > -
> > -	immutable->pkey_tbl_len = attr.pkey_tbl_len;
> > -	immutable->gid_tbl_len = attr.gid_tbl_len;
> > -
> >  	if (mlx4_ib_port_link_layer(ibdev, port_num) == IB_LINK_LAYER_INFINIBAND) {
> >  		immutable->core_cap_flags = RDMA_CORE_PORT_IBA_IB;
> >  		immutable->max_mad_size = IB_MGMT_MAD_SIZE;
> > @@ -2549,6 +2542,13 @@ static int mlx4_port_immutable(struct ib_device *ibdev, u8 port_num,
> >  			immutable->max_mad_size = IB_MGMT_MAD_SIZE;
> >  	}
> >
> > +	err = ib_query_port(ibdev, port_num, &attr);
> > +	if (err)
> > +		return err;
> > +
> > +	immutable->pkey_tbl_len = attr.pkey_tbl_len;
> > +	immutable->gid_tbl_len = attr.gid_tbl_len;
> > +
> >  	return 0;
> >  }
> >
> > diff --git a/drivers/infiniband/hw/mlx4/sysfs.c b/drivers/infiniband/hw/mlx4/sysfs.c
> > index 69fb5ba..5835165 100644
> > --- a/drivers/infiniband/hw/mlx4/sysfs.c
> > +++ b/drivers/infiniband/hw/mlx4/sysfs.c
> > @@ -226,6 +226,7 @@ static int add_port_entries(struct mlx4_ib_dev *device, int port_num)
> >  	int ret = 0 ;
> >  	struct ib_port_attr attr;
> >
> > +	memset(&attr, 0, sizeof(struct ib_port_attr));
> >  	/* get the physical gid and pkey table sizes.*/
> >  	ret = __mlx4_ib_query_port(&device->ib_dev, port_num, &attr, 1);
>
> Ditto as previous comment.

The same answer as before.

>
>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2017-01-25 12:39 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-19  5:40 [PATCH rdma-next 0/5] USNIC and RAW enhancements series Leon Romanovsky
     [not found] ` <20170119054102.20135-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-01-19  5:40   ` [PATCH rdma-next 1/5] IB/core: Add raw packet protocol Leon Romanovsky
2017-01-19  5:40   ` [PATCH rdma-next 2/5] IB/mlx5: Support " Leon Romanovsky
2017-01-19  5:41   ` [PATCH rdma-next 3/5] IB/mlx4: " Leon Romanovsky
2017-01-19  5:41   ` [PATCH rdma-next 4/5] IB: Add protocol for USNIC Leon Romanovsky
2017-01-19  5:41   ` [PATCH rdma-next 5/5] IB: Query port through the core instead of directly calling the driver handler Leon Romanovsky
     [not found]     ` <20170119054102.20135-6-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-01-19  6:06       ` Parav Pandit
     [not found]         ` <HE1PR0502MB3004E6D28AED46720C428576D17E0-692Kmc8YnlL9PhveBwpv4cDSnupUy6xnnBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2017-01-19  9:36           ` Leon Romanovsky
2017-01-19  9:51           ` Or Gerlitz
2017-01-24 20:59       ` Shiraz Saleem
     [not found]         ` <20170124205938.GA5524-GOXS9JX10wfOxmVO0tvppfooFf0ArEBIu+b9c/7xato@public.gmane.org>
2017-01-25 12:39           ` Leon Romanovsky [this message]
     [not found]             ` <20170125123920.GO6005-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-01-25 14:29               ` Or Gerlitz
     [not found]                 ` <CAJ3xEMjfxPs85OQP2v2MvYzU9ajUELs7_3r0nA-=TTa-tp-hSQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-01-25 18:05                   ` Shiraz Saleem
     [not found]                     ` <20170125180551.GA8964-GOXS9JX10wfOxmVO0tvppfooFf0ArEBIu+b9c/7xato@public.gmane.org>
2017-01-25 18:27                       ` Leon Romanovsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170125123920.GO6005@mtr-leonro.local \
    --to=leon-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
    --cc=Michal.Kalderon-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org \
    --cc=aditr-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org \
    --cc=benve-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org \
    --cc=dennis.dalessandro-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=dgoodell-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org \
    --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=faisal.latif-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=ogerlitz-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
    --cc=oulijun-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
    --cc=rajesh.borundia-YGCgFSpz5w/QT0dZR+AlfA@public.gmane.org \
    --cc=selvin.xavier-1wcpHE2jlwO1Z/+hSey0Gg@public.gmane.org \
    --cc=shiraz.saleem-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=swise-ut6Up61K2wZBDgjK7y7TUQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.