[openib-general] [PATCH] Consolidate access to ib_agent_port_list

Krishna Kumar krkumar at us.ibm.com
Tue Oct 26 10:26:50 PDT 2004


Hi Hal,

Thanks for applying the patch with the 2 fixes.

> I also don't understand why the patching resulted in the need to do some
> manual merging (as several hunks failed).

Sorry about this, but I am not sure why it happened - I did a svn update
a few minutes before sending the patch. I am not sure if my mailer is
mangling the patch - I will check that today.

Thanks,

- KK


On Tue, 26 Oct 2004, Hal Rosenstock wrote:

> Hi KK,
>
> On Mon, 2004-10-25 at 16:11, Krishna Kumar wrote:
> > This patch is similar to one for MAD that I sent some time earlier.
> >
> > I could also have split the search routine into two, a get_by_dev
> > and a get_by_agent, but I felt it was too cumbursome.
>
> Looks pretty good. A couple of minor points:
>
> >
> > Thanks,
> >
> > - KK
> >
> > --- ib_agent.c.org	2004-10-25 12:37:56.000000000 -0700
> > +++ ib_agent.c	2004-10-25 12:42:55.000000000 -0700
> > @@ -303,12 +303,52 @@
> >  					      slid, mad, mad_response);
> >  }
> >
> > +static inline struct ib_agent_port_private *
> > +__ib_get_agent_mad(struct ib_device *device, int port_num,
> > +		   struct ib_mad_agent *mad_agent)
> > +{
> > +	struct ib_agent_port_private *entry;
> > +
> > +	BUG_ON(!spin_is_locked(&ib_agent_port_list_lock);
>
> 	BUG_ON(!spin_is_locked(&ib_agent_port_list_lock));
>
>
> > @@ -729,21 +733,14 @@
> >
> >  static int ib_agent_port_close(struct ib_device *device, int port_num)
> >  {
> > -	struct ib_agent_port_private *entry, *port_priv = NULL;
> > +	struct ib_agent_port_private *port_priv;
> >  	unsigned long flags;
> >
> >  	spin_lock_irqsave(&ib_agent_port_list_lock, flags);
> > -	list_for_each_entry(entry, &ib_agent_port_list, port_list) {
> > -		if (entry->dr_smp_agent->device == device &&
> > -		    entry->port_num == port_num) {
> > -			port_priv = entry;
> > -			break;
> > -		}
> > -	}
> > -
> > +	port_priv = __ib_get_agent_mad(NULL, 0, mad_agent);
>
> I think this needs to be:
> 	port_priv = __ib_get_agent_mad(device, port_num, NULL);
> If that's the case, I'm all set.
>
> I also don't understand why the patching resulted in the need to do some
> manual merging (as several hunks failed).
>
> Thanks.
>
> -- Hal
>
>
>




More information about the general mailing list