From mboxrd@z Thu Jan 1 00:00:00 1970 From: "ira.weiny" Subject: Re: [PATCH 08/14] IB/core: Add rdma_max_mad_size helper Date: Wed, 20 May 2015 17:31:28 -0400 Message-ID: <20150520213128.GD22981@phlsvsds.ph.intel.com> References: <1432109615-19564-1-git-send-email-ira.weiny@intel.com> <1432109615-19564-9-git-send-email-ira.weiny@intel.com> <1828884A29C6694DAF28B7E6B8A82373A8FDDACE@ORSMSX109.amr.corp.intel.com> <20150520180226.GC14309@phlsvsds.ph.intel.com> <20150520181928.GE28496@obsidianresearch.com> <20150520190352.GA22981@phlsvsds.ph.intel.com> <20150520194314.GA3344@obsidianresearch.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20150520194314.GA3344-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org> Sender: linux-rdma-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Jason Gunthorpe Cc: "Hefty, Sean" , "dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org" , "linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org" List-Id: linux-rdma@vger.kernel.org On Wed, May 20, 2015 at 01:43:14PM -0600, Jason Gunthorpe wrote: > On Wed, May 20, 2015 at 03:03:52PM -0400, ira.weiny wrote: > > On Wed, May 20, 2015 at 12:19:28PM -0600, Jason Gunthorpe wrote: > > > On Wed, May 20, 2015 at 02:02:27PM -0400, ira.weiny wrote: > > > > On Wed, May 20, 2015 at 11:37:47AM -0600, Hefty, Sean wrote: > > > > > > +/** > > > > > > + * rdma_max_mad_size - Return the max MAD size required by this RDMA > > > > > > Port. > > > > > > + * > > > > > > + * @device: Device > > > > > > + * @port_num: Port number > > > > > > + * > > > > > > + * Return the max MAD size required by the Port. Should return 0 if the > > > > > > port > > > > > > + * does not support MADs > > > > > > + */ > > > > > > +static inline size_t rdma_max_mad_size(struct ib_device *device, u8 > > > > > > port_num) > > > > > > +{ > > > > > > + return device->port_immutable[port_num].max_mad_size; > > > > > > +} > > > > > > > > > > Should this function check the mad_cap bit and return 0 if not set? If not, > > > > > I would remove the 'should return 0...' statement from the comment above and > > > > > state that the caller should check the mad_cap bit first. > > > > > > > > I'll change the comment. > > > > > > If there is no mad support the port_immutable.max_mad_size should be > > > 0, force it during registration, then the comment is right. > > > > > > Force to 0 is better than 'some random value' > > > > When you say "force" do you mean have the drivers which don't support MAD > > explicitly set it to 0? > > I'm not really sure it makes sense to have the drivers set this, since > the value is fixed based on the existing caps. The core could fill it > in, then we don't have to check the driver's work. > > If the driver fills it then the core should do > > BUG_ON(!mad_cap && max_mad_size != 0) The driver does fill this in, and the core check this as part of this patch. diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c index 8055195b5d60..ea25e9467cb5 100644 --- a/drivers/infiniband/core/mad.c +++ b/drivers/infiniband/core/mad.c @@ -2937,6 +2937,10 @@ static int ib_mad_port_open(struct ib_device *device, unsigned long flags; char name[sizeof "ib_mad123"]; int has_smi; + size_t max_mad_size = rdma_max_mad_size(device, port_num); + + if (WARN_ON(max_mad_size < IB_MGMT_MAD_SIZE)) + return -EFAULT; /* Create new device info */ port_priv = kzalloc(sizeof *port_priv, GFP_KERNEL); > > After calling the driver to fill the values. > > The comment seems OK (change Should => Will), it is describing the > function, and the function should be the only accessor for this value, > so it also describes the value. Maybe clarify what mad size is .. Is > it just the payload? I'll add this to the comment, Ira -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html