]> err.no Git - linux-2.6/blobdiff - drivers/infiniband/core/verbs.c
libata-sff: improve HSM violation reporting
[linux-2.6] / drivers / infiniband / core / verbs.c
index 86ed8af9c7e6ca36ad7626a1e60b192d82404efc..05042089de6ea32e3a2c6d585324f9ed9557f4b1 100644 (file)
@@ -248,7 +248,9 @@ int ib_modify_srq(struct ib_srq *srq,
                  struct ib_srq_attr *srq_attr,
                  enum ib_srq_attr_mask srq_attr_mask)
 {
-       return srq->device->modify_srq(srq, srq_attr, srq_attr_mask, NULL);
+       return srq->device->modify_srq ?
+               srq->device->modify_srq(srq, srq_attr, srq_attr_mask, NULL) :
+               -ENOSYS;
 }
 EXPORT_SYMBOL(ib_modify_srq);
 
@@ -628,6 +630,13 @@ struct ib_cq *ib_create_cq(struct ib_device *device,
 }
 EXPORT_SYMBOL(ib_create_cq);
 
+int ib_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period)
+{
+       return cq->device->modify_cq ?
+               cq->device->modify_cq(cq, cq_count, cq_period) : -ENOSYS;
+}
+EXPORT_SYMBOL(ib_modify_cq);
+
 int ib_destroy_cq(struct ib_cq *cq)
 {
        if (atomic_read(&cq->usecnt))
@@ -672,6 +681,9 @@ struct ib_mr *ib_reg_phys_mr(struct ib_pd *pd,
 {
        struct ib_mr *mr;
 
+       if (!pd->device->reg_phys_mr)
+               return ERR_PTR(-ENOSYS);
+
        mr = pd->device->reg_phys_mr(pd, phys_buf_array, num_phys_buf,
                                     mr_access_flags, iova_start);