spin_lock_irqsave(shost->host_lock, flags);
 
-       scsi_eh_eflags_set(scmd, eh_flag);
+       scmd->eh_eflags |= eh_flag;
        list_add_tail(&scmd->eh_entry, &shost->eh_cmd_q);
        set_bit(SHOST_RECOVERY, &shost->shost_state);
        shost->host_failed++;
                list_for_each_entry(scmd, work_q, eh_entry) {
                        if (scmd->device == sdev) {
                                ++total_failures;
-                               if (scsi_eh_eflags_chk(scmd,
-                                                      SCSI_EH_CANCEL_CMD))
+                               if (scmd->eh_eflags & SCSI_EH_CANCEL_CMD)
                                        ++cmd_cancel;
                                else 
                                        ++cmd_failed;
  **/
 static void scsi_eh_times_out(struct scsi_cmnd *scmd)
 {
-       scsi_eh_eflags_set(scmd, SCSI_EH_REC_TIMEOUT);
+       scmd->eh_eflags |= SCSI_EH_REC_TIMEOUT;
        SCSI_LOG_ERROR_RECOVERY(3, printk("%s: scmd:%p\n", __FUNCTION__,
                                          scmd));
 
         * see if timeout.  if so, tell the host to forget about it.
         * in other words, we don't want a callback any more.
         */
-       if (scsi_eh_eflags_chk(scmd, SCSI_EH_REC_TIMEOUT)) {
-               scsi_eh_eflags_clr(scmd,  SCSI_EH_REC_TIMEOUT);
+       if (scmd->eh_eflags & SCSI_EH_REC_TIMEOUT) {
+               scmd->eh_eflags &= ~SCSI_EH_REC_TIMEOUT;
 
                /*
                 * as far as the low level driver is
                               struct list_head *done_q)
 {
        scmd->device->host->host_failed--;
-       scsi_eh_eflags_clr_all(scmd);
+       scmd->eh_eflags = 0;
 
        /*
         * set this back so that the upper level can correctly free up
 
        list_for_each_safe(lh, lh_sf, work_q) {
                scmd = list_entry(lh, struct scsi_cmnd, eh_entry);
-               if (scsi_eh_eflags_chk(scmd, SCSI_EH_CANCEL_CMD) ||
+               if ((scmd->eh_eflags & SCSI_EH_CANCEL_CMD) ||
                    SCSI_SENSE_VALID(scmd))
                        continue;
 
 
        list_for_each_safe(lh, lh_sf, work_q) {
                scmd = list_entry(lh, struct scsi_cmnd, eh_entry);
-               if (!scsi_eh_eflags_chk(scmd, SCSI_EH_CANCEL_CMD))
+               if (!(scmd->eh_eflags & SCSI_EH_CANCEL_CMD))
                        continue;
                SCSI_LOG_ERROR_RECOVERY(3, printk("%s: aborting cmd:"
                                                  "0x%p\n", current->comm,
                                                  scmd));
                rtn = scsi_try_to_abort_cmd(scmd);
                if (rtn == SUCCESS) {
-                       scsi_eh_eflags_clr(scmd,  SCSI_EH_CANCEL_CMD);
+                       scmd->eh_eflags &= ~SCSI_EH_CANCEL_CMD;
                        if (!scsi_device_online(scmd->device) ||
                            !scsi_eh_tur(scmd)) {
                                scsi_eh_finish_cmd(scmd, done_q);
                                scmd->device->id,
                                scmd->device->lun);
                scsi_device_set_state(scmd->device, SDEV_OFFLINE);
-               if (scsi_eh_eflags_chk(scmd, SCSI_EH_CANCEL_CMD)) {
+               if (scmd->eh_eflags & SCSI_EH_CANCEL_CMD) {
                        /*
                         * FIXME: Handle lost cmds.
                         */
 
 /*
  * Scsi Error Handler Flags
  */
-#define scsi_eh_eflags_chk(scp, flags) \
-       ((scp)->eh_eflags & (flags))
-#define scsi_eh_eflags_set(scp, flags) \
-       do { (scp)->eh_eflags |= (flags); } while(0)
-#define scsi_eh_eflags_clr(scp, flags) \
-       do { (scp)->eh_eflags &= ~(flags); } while(0)
-#define scsi_eh_eflags_clr_all(scp) \
-       (scp->eh_eflags = 0)
-
 #define SCSI_EH_CANCEL_CMD     0x0001  /* Cancel this cmd */
 #define SCSI_EH_REC_TIMEOUT    0x0002  /* EH retry timed out */