Now messages are printed if either :

1. mad_agent is not found.
2. mad_agent is found but doesn't have a handler.

Printing messages during errors in the process of finding the
mad_agent has been removed.

Thanks,

- KK

On Wed, 3 Nov 2004, Sean Hefty wrote:

> Thanks for the patch.  If you can do something with the printk's, that
> would be good.  They should be KERN_NOTICE, but we may want to consider
> just removing them.

diff -ruNp 5/mad.c 6/mad.c
--- 5/mad.c     2004-11-03 17:56:54.000000000 -0800
+++ 6/mad.c     2004-11-03 18:17:04.000000000 -0800
@@ -752,34 +752,33 @@ find_mad_agent(struct ib_mad_port_privat

        spin_lock_irqsave(&port_priv->reg_lock, flags);

-       /* Whether MAD was solicited determines type of routing to MAD client */
+       /*
+        * Whether MAD was solicited determines type of routing to
+        * MAD client.
+        */
        if (solicited) {
                u32 hi_tid;
                struct ib_mad_agent_private *entry;

-               /* Routing is based on high 32 bits of transaction ID of MAD  */
+               /*
+                * Routing is based on high 32 bits of transaction ID
+                * of MAD.
+                */
                hi_tid = be64_to_cpu(mad->mad_hdr.tid) >> 32;
-               list_for_each_entry(entry, &port_priv->agent_list, agent_list) {
+               list_for_each_entry(entry, &port_priv->agent_list,
+                                   agent_list) {
                        if (entry->agent.hi_tid == hi_tid) {
                                mad_agent = entry;
                                break;
                        }
                }
-               if (!mad_agent)
-                       printk(KERN_ERR PFX "No client 0x%x for received MAD "
-                              "on port %d\n",
-                              hi_tid, port_priv->port_num);
        } else {
                struct ib_mad_mgmt_class_table *version;
                struct ib_mad_mgmt_method_table *class;

                /* Routing is based on version, class, and method */
-               if (mad->mad_hdr.class_version >= MAX_MGMT_VERSION) {
-                       printk(KERN_ERR PFX "MAD received with unsupported "
-                              "class version %d on port %d\n",
-                              mad->mad_hdr.class_version, port_priv->port_num);
+               if (mad->mad_hdr.class_version >= MAX_MGMT_VERSION)
                        goto out;
-               }
                version = port_priv->version[mad->mad_hdr.class_version];
                if (!version)
                        goto out;
@@ -790,18 +789,19 @@ find_mad_agent(struct ib_mad_port_privat
                                                 ~IB_MGMT_METHOD_RESP];
        }

-out:
        if (mad_agent) {
                if (mad_agent->agent.recv_handler)
                        atomic_inc(&mad_agent->refcount);
                else {
-                       mad_agent = NULL;
-                       printk(KERN_ERR PFX "No receive handler for client "
+                       printk(KERN_NOTICE PFX "No receive handler for client "
                               "%p on port %d\n",
                               &mad_agent->agent, port_priv->port_num);
+                       mad_agent = NULL;
                }
-       }
-
+       } else
+               printk(KERN_NOTICE PFX "No client for received MAD on "
+                      "port %d\n", port_priv->port_num);
+out:
        spin_unlock_irqrestore(&port_priv->reg_lock, flags);

        return mad_agent;

_______________________________________________
openib-general mailing list
[EMAIL PROTECTED]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to