evt->_done = done;
                evt->done = ibmvfc_locked_done;
        }
+       evt->hwq = 0;
 }
 
 /**
        struct ibmvfc_cmd *vfc_cmd;
        struct ibmvfc_fcp_cmd_iu *iu;
        struct ibmvfc_event *evt;
+       u32 tag_and_hwq = blk_mq_unique_tag(cmnd->request);
+       u16 hwq = blk_mq_unique_tag_to_hwq(tag_and_hwq);
        int rc;
 
        if (unlikely((rc = fc_remote_port_chkready(rport))) ||
        }
 
        vfc_cmd->correlation = cpu_to_be64(evt);
+       if (vhost->using_channels)
+               evt->hwq = hwq % vhost->scsi_scrqs.active_queues;
 
        if (likely(!(rc = ibmvfc_map_sg_data(cmnd, evt, vfc_cmd, vhost->dev))))
                return ibmvfc_send_event(evt, vhost, 0);