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.