From: Roland Dreier Doorbell record pages are allocated in HCA page size chunks (always 4096 bytes), so we need to divide by 4096 and not PAGE_SIZE when figuring out how many pages we'll need space for. Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton --- 25-akpm/drivers/infiniband/hw/mthca/mthca_memfree.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/infiniband/hw/mthca/mthca_memfree.c~ib-mthca-allocate-correct-number-of-doorbell-pages drivers/infiniband/hw/mthca/mthca_memfree.c --- 25/drivers/infiniband/hw/mthca/mthca_memfree.c~ib-mthca-allocate-correct-number-of-doorbell-pages Fri Apr 1 14:14:24 2005 +++ 25-akpm/drivers/infiniband/hw/mthca/mthca_memfree.c Fri Apr 1 14:14:24 2005 @@ -446,7 +446,7 @@ int mthca_init_db_tab(struct mthca_dev * init_MUTEX(&dev->db_tab->mutex); - dev->db_tab->npages = dev->uar_table.uarc_size / PAGE_SIZE; + dev->db_tab->npages = dev->uar_table.uarc_size / 4096; dev->db_tab->max_group1 = 0; dev->db_tab->min_group2 = dev->db_tab->npages - 1; _