if (wc.status != IB_WC_SUCCESS) {
                        printk(KERN_ERR PFX "Completion error %d WRID 0x%Lx\n",
                                        wc.status, (unsigned long long)
wc.wr_id);
+                       ib_mad_send_done_handler(port_priv, &wc);
                } else {
I think this is still not quite right: what if a receive fails?
 - R.