static int
 qla2x00_eh_wait_on_command(scsi_qla_host_t *ha, struct scsi_cmnd *cmd)
 {
-#define ABORT_POLLING_PERIOD   HZ
-#define ABORT_WAIT_ITER                ((10 * HZ) / (ABORT_POLLING_PERIOD))
+#define ABORT_POLLING_PERIOD   1000
+#define ABORT_WAIT_ITER                ((10 * 1000) / (ABORT_POLLING_PERIOD))
        unsigned long wait_iter = ABORT_WAIT_ITER;
        int ret = QLA_SUCCESS;
 
        while (CMD_SP(cmd)) {
-               set_current_state(TASK_UNINTERRUPTIBLE);
-               schedule_timeout(ABORT_POLLING_PERIOD);
+               msleep(ABORT_POLLING_PERIOD);
 
                if (--wait_iter)
                        break;
 {
        struct list_head        *fcpl, *fcptemp;
        fc_port_t       *fcport;
-       unsigned long   wtime;/* max wait time if mbx cmd is busy. */
+       unsigned int    wtime;/* max wait time if mbx cmd is busy. */
 
        if (ha == NULL) {
                /* error */
        }
 
        /* Make sure all other threads are stopped. */
-       wtime = 60 * HZ;
-       while (ha->dpc_wait && wtime) {
-               set_current_state(TASK_INTERRUPTIBLE);
-               wtime = schedule_timeout(wtime);
-       }
+       wtime = 60 * 1000;
+       while (ha->dpc_wait && wtime)
+               wtime = msleep_interruptible(wtime);
 
        /* free ioctl memory */
        qla2x00_free_ioctl_mem(ha);
 int
 qla2x00_down_timeout(struct semaphore *sema, unsigned long timeout)
 {
-       const unsigned int step = HZ/10;
+       const unsigned int step = 100; /* msecs */
+       unsigned int iterations = jiffies_to_msecs(timeout)/100;
 
        do {
                if (!down_trylock(sema))
                        return 0;
-               set_current_state(TASK_INTERRUPTIBLE);
-               if (schedule_timeout(step))
+               if (msleep_interruptible(step))
                        break;
-       } while ((timeout -= step) > 0);
+       } while (--iterations >= 0);
 
        return -ETIMEDOUT;
 }