struct esas2r_adapter *a)
 {
        union atto_vda_req *vrq = rq->vrq;
-       u32 handle;
 
        INIT_LIST_HEAD(&rq->sg_table_head);
        rq->data_buf = (void *)(vrq + 1);
 
        /*
         * add a reference number to the handle to make it unique (until it
-        * wraps of course) while preserving the upper word
+        * wraps of course) while preserving the least significant word
         */
-
-       handle = be32_to_cpu(vrq->scsi.handle) & 0xFFFF0000;
-       vrq->scsi.handle = cpu_to_be32(handle + a->cmd_ref_no++);
+       vrq->scsi.handle = (a->cmd_ref_no++ << 16) | (u16)vrq->scsi.handle;
 
        /*
         * the following formats a SCSI request.  the caller can override as
 
                                     0,
                                     NULL);
                ci = (struct atto_vda_cfg_init *)&rq->vrq->cfg.data.init;
-               ci->sgl_page_size = sgl_page_size;
-               ci->epoch_time = now.tv_sec;
+               ci->sgl_page_size = cpu_to_le32(sgl_page_size);
+               ci->epoch_time = cpu_to_le32(now.tv_sec);
                rq->flags |= RF_FAILURE_OK;
                a->init_msg = ESAS2R_INIT_MSG_INIT;
                break;
                if (rq->req_stat == RS_SUCCESS) {
                        u32 major;
                        u32 minor;
+                       u16 fw_release;
 
                        a->fw_version = le16_to_cpu(
                                rq->func_rsp.cfg_rsp.vda_version);
                        a->fw_build = rq->func_rsp.cfg_rsp.fw_build;
-                       major = LOBYTE(rq->func_rsp.cfg_rsp.fw_release);
-                       minor = HIBYTE(rq->func_rsp.cfg_rsp.fw_release);
+                       fw_release = le16_to_cpu(
+                               rq->func_rsp.cfg_rsp.fw_release);
+                       major = LOBYTE(fw_release);
+                       minor = HIBYTE(fw_release);
                        a->fw_version += (major << 16) + (minor << 24);
                } else {
                        esas2r_hdebug("FAILED");