kernel/drivers/infiniband/sw/siw/siw_qp_tx.c
.. .. @@ -29,7 +29,7 @@ 29 29 dma_addr_t paddr = siw_pbl_get_buffer(pbl, offset, NULL, idx); 30 30 31 31 if (paddr) 32 - return virt_to_page((void *)paddr);32 + return virt_to_page((void *)(uintptr_t)paddr);33 33 34 34 return NULL; 35 35 } .. .. @@ -548,7 +548,7 @@ 548 548 data_len -= plen; 549 549 fp_off = 0; 550 550 551 - if (++seg > (int)MAX_ARRAY) {551 + if (++seg >= (int)MAX_ARRAY) {552 552 siw_dbg_qp(tx_qp(c_tx), "to many fragments\n"); 553 553 siw_unmap_pages(page_array, kmap_mask); 554 554 wqe->processed -= c_tx->bytes_unsent;