From: Michael S. Tsirkin The first buffer of a memory region is not required to be page-aligned, so don't return an error if it's not. Signed-off-by: Michael S. Tsirkin Signed-off-by: Roland Dreier Signed-off-by: Andrew Morton --- 25-akpm/drivers/infiniband/hw/mthca/mthca_provider.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/infiniband/hw/mthca/mthca_provider.c~ib-mthca-allow-unaligned-memory-regions drivers/infiniband/hw/mthca/mthca_provider.c --- 25/drivers/infiniband/hw/mthca/mthca_provider.c~ib-mthca-allow-unaligned-memory-regions Fri Apr 1 14:14:04 2005 +++ 25-akpm/drivers/infiniband/hw/mthca/mthca_provider.c Fri Apr 1 14:14:04 2005 @@ -494,7 +494,7 @@ static struct ib_mr *mthca_reg_phys_mr(s mask = 0; total_size = 0; for (i = 0; i < num_phys_buf; ++i) { - if (buffer_list[i].addr & ~PAGE_MASK) + if (i != 0 && buffer_list[i].addr & ~PAGE_MASK) return ERR_PTR(-EINVAL); if (i != 0 && i != num_phys_buf - 1 && (buffer_list[i].size & ~PAGE_MASK)) _