<br><font size=2 face="sans-serif">create_irq is not a mandatory device
function, therefor in userspace/libibverbs/src/verbs.c ibv_create_srq should
check create_srq() first before calling it, otherwise the caller will cause
the segmentation fault on device which doesn't support srq.</font>
<br>
<br><font size=2><tt>Signed-off-by:</tt></font><font size=2 face="sans-serif">
Shirley Ma <xma@us.ibm.com></font>
<div>
<br>
<br><font size=2 face="sans-serif">diff -urN userspace/libibverbs/src/verbs.c
userspace-srq/libibverbs/src/verbs.c<br>
--- userspace/libibverbs/src/verbs.c        2005-11-14
13:44:52.000000000 -0800<br>
+++ userspace-srq/libibverbs/src/verbs.c        2005-12-09
16:04:12.022433272 -0800<br>
@@ -246,7 +246,9 @@<br>
 struct ibv_srq *ibv_create_srq(struct ibv_pd *pd,<br>
                  
             struct ibv_srq_init_attr
*srq_init_attr)<br>
 {<br>
-        struct ibv_srq *srq = pd->context->ops.create_srq(pd,
srq_init_attr);<br>
+        struct ibv_srq *srq = NULL;<br>
+        if (pd->context->ops.create_srq)<br>
+                srq
= pd->context->ops.create_srq(pd, srq_init_attr);<br>
 <br>
         if (srq) {<br>
                 srq->context
         = pd->context;</font>
<br>
<br>
<br><font size=2 face="sans-serif"><br>
Thanks<br>
Shirley Ma<br>
IBM Linux Technology Center<br>
15300 SW Koll Parkway<br>
Beaverton, OR 97006-6063<br>
Phone(Fax): (503) 578-7638<br>
<br>
</font></div>