regd_buf->reg.rkey = device->mr->rkey;
                regd_buf->reg.len  = ib_sg_dma_len(ibdev, &sg[0]);
                regd_buf->reg.va   = ib_sg_dma_address(ibdev, &sg[0]);
-               regd_buf->reg.is_mr = 0;
 
                iser_dbg("PHYSICAL Mem.register: lkey: 0x%08X rkey: 0x%08X  "
                         "va: 0x%08lX sz: %ld]\n",
                regd_buf->reg.rkey = desc->pi_ctx->sig_mr->rkey;
                regd_buf->reg.va = sig_sge.addr;
                regd_buf->reg.len = sig_sge.length;
-               regd_buf->reg.is_mr = 1;
        } else {
-               if (desc) {
+               if (desc)
                        regd_buf->reg.rkey = desc->data_mr->rkey;
-                       regd_buf->reg.is_mr = 1;
-               } else {
+               else
                        regd_buf->reg.rkey = device->mr->rkey;
-                       regd_buf->reg.is_mr = 0;
-               }
 
                regd_buf->reg.lkey = data_sge.lkey;
                regd_buf->reg.va = data_sge.addr;
 
        mem_reg->rkey  = mem->fmr->rkey;
        mem_reg->len   = page_vec->length * SIZE_4K;
        mem_reg->va    = io_addr;
-       mem_reg->is_mr = 1;
        mem_reg->mem_h = (void *)mem;
 
        mem_reg->va   += page_vec->offset;
        struct iser_mem_reg *reg = &iser_task->rdma_regd[cmd_dir].reg;
        int ret;
 
-       if (!reg->is_mr)
+       if (!reg->mem_h)
                return;
 
        iser_dbg("PHYSICAL Mem.Unregister mem_h %p\n",reg->mem_h);
        struct ib_conn *ib_conn = &iser_conn->ib_conn;
        struct fast_reg_descriptor *desc = reg->mem_h;
 
-       if (!reg->is_mr)
+       if (!desc)
                return;
 
        reg->mem_h = NULL;
-       reg->is_mr = 0;
        spin_lock_bh(&ib_conn->lock);
        list_add_tail(&desc->list, &ib_conn->fastreg.pool);
        spin_unlock_bh(&ib_conn->lock);