linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / infiniband / hw / mthca / mthca_pd.c
index 59df516..3dbf06a 100644 (file)
@@ -43,6 +43,8 @@ int mthca_pd_alloc(struct mthca_dev *dev, int privileged, struct mthca_pd *pd)
 {
        int err = 0;
 
+       might_sleep();
+
        pd->privileged = privileged;
 
        atomic_set(&pd->sqp_count, 0);
@@ -64,6 +66,7 @@ int mthca_pd_alloc(struct mthca_dev *dev, int privileged, struct mthca_pd *pd)
 
 void mthca_pd_free(struct mthca_dev *dev, struct mthca_pd *pd)
 {
+       might_sleep();
        if (pd->privileged)
                mthca_free_mr(dev, &pd->ntmr);
        mthca_free(&dev->pd_table.alloc, pd->pd_num);
@@ -77,7 +80,7 @@ int __devinit mthca_init_pd_table(struct mthca_dev *dev)
                                dev->limits.reserved_pds);
 }
 
-void mthca_cleanup_pd_table(struct mthca_dev *dev)
+void __devexit mthca_cleanup_pd_table(struct mthca_dev *dev)
 {
        /* XXX check if any PDs are still allocated? */
        mthca_alloc_cleanup(&dev->pd_table.alloc);