Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753913AbbDTQTo (ORCPT ); Mon, 20 Apr 2015 12:19:44 -0400 Received: from quartz.orcorp.ca ([184.70.90.242]:59610 "EHLO quartz.orcorp.ca" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751260AbbDTQTk (ORCPT ); Mon, 20 Apr 2015 12:19:40 -0400 Date: Mon, 20 Apr 2015 10:19:27 -0600 From: Jason Gunthorpe To: Tom Tucker Cc: Michael Wang , Steve Wise , Roland Dreier , Sean Hefty , linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org, hal@dev.mellanox.co.il, Hoang-Nam Nguyen , Christoph Raisch , Mike Marciniszyn , Eli Cohen , Faisal Latif , Jack Morgenstein , Or Gerlitz , Haggai Eran , Ira Weiny , Tom Talpey , Doug Ledford Subject: Re: [PATCH v5 19/27] IB/Verbs: Use management helper cap_iw_cm() Message-ID: <20150420161927.GB7676@obsidianresearch.com> References: <5534B8C9.506@profitbricks.com> <5534BB7B.4020601@profitbricks.com> <55350698.9000109@opengridcomputing.com> <55351838.2060006@profitbricks.com> <5535209E.3020807@opengridcomputing.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5535209E.3020807@opengridcomputing.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Broken-Reverse-DNS: no host name found for IP address 10.0.0.183 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2429 Lines: 59 On Mon, Apr 20, 2015 at 10:51:58AM -0500, Tom Tucker wrote: > On 4/20/15 10:16 AM, Michael Wang wrote: > >On 04/20/2015 04:00 PM, Steve Wise wrote: > >>On 4/20/2015 3:40 AM, Michael Wang wrote: > >[snip] > >>>diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h > >>>index 6805e3e..e4999f6 100644 > >>>+++ b/include/rdma/ib_verbs.h > >>>@@ -1818,6 +1818,21 @@ static inline int cap_ib_cm(struct ib_device *device, u8 port_num) > >>> return rdma_ib_or_iboe(device, port_num); > >>> } > >>> +/** > >>>+ * cap_iw_cm - Check if the port of device has the capability IWARP > >>>+ * Communication Manager. > >>>+ * > >>>+ * @device: Device to be checked > >>>+ * @port_num: Port number of the device > >>>+ * > >>>+ * Return 0 when port of the device don't support IWARP > >>>+ * Communication Manager. > >>>+ */ > >>>+static inline int cap_iw_cm(struct ib_device *device, u8 port_num) > >>>+{ > >>>+ return rdma_tech_iwarp(device, port_num); > >>>+} > >>>+ > >>> int ib_query_gid(struct ib_device *device, > >>> u8 port_num, int index, union ib_gid *gid); > >>iWARP devices _must_ support the IWCM so cap_iw_cm() is not really useful. > >Sean suggested to add this helper paired with cap_ib_cm(), may be there are > >some consideration on maintainability? > > > >Me too also prefer this way to make the code more readable ;-) > > It's more consistent, but not necessarily more readable -- if by > readability we mean understanding. > > If the reader knows how the transports work, then the reader would > be confused by the addition of a check that is always true. For the > reader that doesn't know, the addition of the check implies that the > support is optional, which it is not. No, it says this code is concerned with the unique parts of iWarp related to CM, not the other unique parts of iWarp. The check isn't aways true, it is just always true on iWarp devices. That became the problem with the old way of just saying 'is iWarp' (and others). There are too many differences, the why became lost in many places. There are now too many standards, and several do not have public docs, to keep relying on a mess of 'is standard' tests. Jason -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/