lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 21 Apr 2015 19:19:58 -0400
From:	"ira.weiny" <ira.weiny@...el.com>
To:	Michael Wang <yun.wang@...fitbricks.com>
Cc:	Roland Dreier <roland@...nel.org>,
	Sean Hefty <sean.hefty@...el.com>, linux-rdma@...r.kernel.org,
	linux-kernel@...r.kernel.org, hal@....mellanox.co.il,
	Tom Tucker <tom@...ngridcomputing.com>,
	Steve Wise <swise@...ngridcomputing.com>,
	Hoang-Nam Nguyen <hnguyen@...ibm.com>,
	Christoph Raisch <raisch@...ibm.com>,
	Mike Marciniszyn <infinipath@...el.com>,
	Eli Cohen <eli@...lanox.com>,
	Faisal Latif <faisal.latif@...el.com>,
	Jack Morgenstein <jackm@....mellanox.co.il>,
	Or Gerlitz <ogerlitz@...lanox.com>,
	Haggai Eran <haggaie@...lanox.com>,
	Tom Talpey <tom@...pey.com>,
	Jason Gunthorpe <jgunthorpe@...idianresearch.com>,
	Doug Ledford <dledford@...hat.com>
Subject: Re: [PATCH v5 09/27] IB/Verbs: Reform IB-core verbs/uverbs_cmd/sysfs

On Mon, Apr 20, 2015 at 10:36:12AM +0200, Michael Wang wrote:
> 
> Use raw management helpers to reform IB-core verbs/uverbs_cmd/sysfs.
> 
> Cc: Hal Rosenstock <hal@....mellanox.co.il>
> Cc: Steve Wise <swise@...ngridcomputing.com>
> Cc: Tom Talpey <tom@...pey.com>
> Cc: Jason Gunthorpe <jgunthorpe@...idianresearch.com>
> Cc: Doug Ledford <dledford@...hat.com>
> Cc: Ira Weiny <ira.weiny@...el.com>
> Cc: Sean Hefty <sean.hefty@...el.com>
> Signed-off-by: Michael Wang <yun.wang@...fitbricks.com>
> ---
>  drivers/infiniband/core/sysfs.c      | 8 ++------
>  drivers/infiniband/core/uverbs_cmd.c | 6 ++++--
>  drivers/infiniband/core/verbs.c      | 6 ++----
>  3 files changed, 8 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/infiniband/core/sysfs.c b/drivers/infiniband/core/sysfs.c
> index cbd0383..8570180 100644
> --- a/drivers/infiniband/core/sysfs.c
> +++ b/drivers/infiniband/core/sysfs.c
> @@ -248,14 +248,10 @@ static ssize_t phys_state_show(struct ib_port *p, struct port_attribute *unused,
>  static ssize_t link_layer_show(struct ib_port *p, struct port_attribute *unused,
>  			       char *buf)
>  {
> -	switch (rdma_port_get_link_layer(p->ibdev, p->port_num)) {
> -	case IB_LINK_LAYER_INFINIBAND:
> +	if (rdma_tech_ib(p->ibdev, p->port_num))

Is the final intention to remove Link Layer from the rdma stack entirely?

I know that the use of link layer in userspace is just as convoluted as what we
are trying to fix here in the kernel.  So it would be nice if we can eventually
get user space cleaned up to not use link layer as it currently does.

However, standard networking tools can report the link layer.  So while the
current use of "link layer" via userspace software is wrong I don't think it is
wrong to report this information _to_ userspace.

So unless we intend to completely hide the link layer from userspace I don't
think we should be removing the rdma_port_get_link_layer call.  It is still
valid information even though we don't want to use it in most places.

Ira

>  		return sprintf(buf, "%s\n", "InfiniBand");
> -	case IB_LINK_LAYER_ETHERNET:
> +	else
>  		return sprintf(buf, "%s\n", "Ethernet");
> -	default:
> -		return sprintf(buf, "%s\n", "Unknown");
> -	}
>  }
>  
>  static PORT_ATTR_RO(state);
> diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
> index a9f0489..5dc90aa 100644
> --- a/drivers/infiniband/core/uverbs_cmd.c
> +++ b/drivers/infiniband/core/uverbs_cmd.c
> @@ -515,8 +515,10 @@ ssize_t ib_uverbs_query_port(struct ib_uverbs_file *file,
>  	resp.active_width    = attr.active_width;
>  	resp.active_speed    = attr.active_speed;
>  	resp.phys_state      = attr.phys_state;
> -	resp.link_layer      = rdma_port_get_link_layer(file->device->ib_dev,
> -							cmd.port_num);
> +	resp.link_layer      = rdma_tech_ib(file->device->ib_dev,
> +							cmd.port_num) ?
> +			       IB_LINK_LAYER_INFINIBAND :
> +			       IB_LINK_LAYER_ETHERNET;
>  
>  	if (copy_to_user((void __user *) (unsigned long) cmd.response,
>  			 &resp, sizeof resp))
> diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
> index 626c9cf..7264860 100644
> --- a/drivers/infiniband/core/verbs.c
> +++ b/drivers/infiniband/core/verbs.c
> @@ -200,11 +200,9 @@ int ib_init_ah_from_wc(struct ib_device *device, u8 port_num, struct ib_wc *wc,
>  	u32 flow_class;
>  	u16 gid_index;
>  	int ret;
> -	int is_eth = (rdma_port_get_link_layer(device, port_num) ==
> -			IB_LINK_LAYER_ETHERNET);
>  
>  	memset(ah_attr, 0, sizeof *ah_attr);
> -	if (is_eth) {
> +	if (rdma_tech_iboe(device, port_num)) {
>  		if (!(wc->wc_flags & IB_WC_GRH))
>  			return -EPROTOTYPE;
>  
> @@ -873,7 +871,7 @@ int ib_resolve_eth_l2_attrs(struct ib_qp *qp,
>  	union ib_gid  sgid;
>  
>  	if ((*qp_attr_mask & IB_QP_AV)  &&
> -	    (rdma_port_get_link_layer(qp->device, qp_attr->ah_attr.port_num) == IB_LINK_LAYER_ETHERNET)) {
> +	    (rdma_tech_iboe(qp->device, qp_attr->ah_attr.port_num))) {
>  		ret = ib_query_gid(qp->device, qp_attr->ah_attr.port_num,
>  				   qp_attr->ah_attr.grh.sgid_index, &sgid);
>  		if (ret)
> -- 
> 2.1.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ