IB/iser: Enable iser when FMRs are not supported
[linux-drm-fsl-dcu.git] / drivers / infiniband / ulp / iser / iser_memory.c
index 79c4f35ba0c95f74fbdcaa294cb49f4d6d2876c6..be1edb04b085d92dc1da3eb0cd5b58079f5fc8d4 100644 (file)
@@ -369,10 +369,11 @@ int iser_reg_rdma_mem(struct iscsi_iser_task *iser_task,
        regd_buf = &iser_task->rdma_regd[cmd_dir];
 
        aligned_len = iser_data_buf_aligned_len(mem, ibdev);
-       if (aligned_len != mem->dma_nents) {
+       if (aligned_len != mem->dma_nents ||
+           (!ib_conn->fmr_pool && mem->dma_nents > 1)) {
                iscsi_conn->fmr_unalign_cnt++;
-               iser_warn("rdma alignment violation %d/%d aligned\n",
-                        aligned_len, mem->size);
+               iser_warn("rdma alignment violation (%d/%d aligned) or FMR not supported\n",
+                         aligned_len, mem->size);
                iser_data_buf_dump(mem, ibdev);
 
                /* unmap the command data before accessing it */