The only issue is whether the code below for CQ_ACCESS_ERROR is
correct. I have taken it from mthca_eq.c :

        MTHCA_EVENT_TYPE_WQ_ACCESS_ERROR    = 0x11

thanks,

- KK

diff -ruNp 2/mad.c 3/mad.c
--- 2/mad.c     2004-11-03 17:37:31.000000000 -0800
+++ 3/mad.c     2004-11-03 17:38:40.000000000 -0800
@@ -1744,6 +1744,21 @@ static void destroy_mad_qp(struct ib_mad
 }

 /*
+ * "Inaccessible" error cannot be handled by QP resize operation.
+ */
+static inline int is_catastrophic_error(int err)
+{
+#define        CQ_ACCESS_ERROR         0x11
+
+       switch (err) {
+       default:        /* OK */
+               return 0;
+       case CQ_ACCESS_ERROR:
+               return 1;
+       }
+}
+
+/*
  * Open the port
  * Create the QP, PD, MR, and CQ if needed
  */
@@ -1825,6 +1840,10 @@ static int ib_mad_port_open(struct ib_de
                if ((ret = ib_resize_cq(port_priv->cq, total_qp_size)) < 0) {
                        printk(KERN_DEBUG PFX "Couldn't increase CQ size - "
                               "err:%d\n", ret);
+                       if (is_catastrophic_error(ret)) {
+                               /* Clean up qp[0,1] */
+                               goto error8;
+                       }
                        /* continue, not an error */
                }
        }

_______________________________________________
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