IB/iser: fix a check of SG alignment for RDMA
authorErez Zilber <erezz@voltaire.com>
Mon, 11 Sep 2006 09:19:17 +0000 (12:19 +0300)
committerRoland Dreier <rolandd@cisco.com>
Fri, 22 Sep 2006 22:22:49 +0000 (15:22 -0700)
dma mapping may include a "compaction" of the sg associated with scsi command.
Hence, the size of the maximal prefix of the SG which is aligned for rdma must be
compared against the length of the dma mapped sg (mem->dma_nents) and not against
the size of it before it was mapped (mem->size).

Signed-off-by: Erez Zilber <erezz@voltaire.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/iser/iser_memory.c

index 31950a522a1c8cb5f2115a68a39aacec6c2e65ec..53af9567632ea5ca30eed829411dcfd40eaa2591 100644 (file)
@@ -378,7 +378,7 @@ int iser_reg_rdma_mem(struct iscsi_iser_cmd_task *iser_ctask,
        regd_buf = &iser_ctask->rdma_regd[cmd_dir];
 
        aligned_len = iser_data_buf_aligned_len(mem);
-       if (aligned_len != mem->size) {
+       if (aligned_len != mem->dma_nents) {
                iser_err("rdma alignment violation %d/%d aligned\n",
                         aligned_len, mem->size);
                iser_data_buf_dump(mem);