From: "Stephen M. Cameron" <scameron@beardog.cce.hp.com>
To: James.Bottomley@HansenPartnership.com, akpm@linux-foundation.org
Cc: linux-kernel@vger.kernel.org, mikem@beardog.cce.hp.com,
linux-scsi@vger.kernel.org, smcameron@yahoo.com
Subject: [PATCH 1/5] Use msleep() instead of schedule_timeout
Date: Tue, 08 Dec 2009 15:38:12 -0600 [thread overview]
Message-ID: <20091208213812.23493.20587.stgit@beardog.cce.hp.com> (raw)
In-Reply-To: <20091208213514.23493.86458.stgit@beardog.cce.hp.com>
From: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Use msleep() instead of schedule_timeout
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
---
drivers/scsi/hpsa.c | 27 ++++++++++++++-------------
drivers/scsi/hpsa.h | 4 ++--
2 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 3c079a4..dc5e518 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -1933,7 +1933,7 @@ static int wait_for_device_to_become_ready(struct ctlr_info *h,
{
int rc = 0;
int count = 0;
- int waittime = HZ;
+ int waittime = 1; /* seconds */
struct CommandList *c;
c = cmd_special_alloc(h);
@@ -1950,11 +1950,11 @@ static int wait_for_device_to_become_ready(struct ctlr_info *h,
* the TUR right away, the reset will just abort it.
*/
set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(waittime);
+ msleep(1000 * waittime);
count++;
/* Increase wait time with each try, up to a point. */
- if (waittime < (HZ * HPSA_MAX_WAIT_INTERVAL_SECS))
+ if (waittime < HPSA_MAX_WAIT_INTERVAL_SECS)
waittime = waittime * 2;
/* Send the Test Unit Ready */
@@ -1972,7 +1972,7 @@ static int wait_for_device_to_become_ready(struct ctlr_info *h,
break;
dev_warn(&h->pdev->dev, "waiting %d secs "
- "for device to become ready.\n", waittime / HZ);
+ "for device to become ready.\n", waittime);
rc = 1; /* device not ready. */
}
@@ -2838,8 +2838,8 @@ static __devinit int hpsa_message(struct pci_dev *pdev, unsigned char opcode,
tag = readl(vaddr + SA5_REPLY_PORT_OFFSET);
if (HPSA_TAG_DISCARD_ERROR_BITS(tag) == paddr32)
break;
- schedule_timeout_uninterruptible(
- HPSA_MSG_SEND_RETRY_INTERVAL_SECS * HZ);
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ msleep(HPSA_MSG_SEND_RETRY_INTERVAL_MSECS);
}
iounmap(vaddr);
@@ -2953,7 +2953,7 @@ static __devinit int hpsa_hard_reset_controller(struct pci_dev *pdev)
pci_write_config_word(pdev, pos + PCI_PM_CTRL, pmcsr);
set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(HZ >> 1);
+ msleep(500);
/* enter the D0 power management state */
pmcsr &= ~PCI_PM_CTRL_STATE_MASK;
@@ -2961,7 +2961,7 @@ static __devinit int hpsa_hard_reset_controller(struct pci_dev *pdev)
pci_write_config_word(pdev, pos + PCI_PM_CTRL, pmcsr);
set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(HZ >> 1);
+ msleep(500);
/* Restore the PCI configuration space. The Open CISS
* Specification says, "Restore the PCI Configuration
@@ -3187,8 +3187,8 @@ static int hpsa_pci_init(struct ctlr_info *h, struct pci_dev *pdev)
scratchpad = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
if (scratchpad == HPSA_FIRMWARE_READY)
break;
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(HPSA_BOARD_READY_POLL_INTERVAL);
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ msleep(HPSA_BOARD_READY_POLL_INTERVAL_MSECS);
}
if (scratchpad != HPSA_FIRMWARE_READY) {
dev_warn(&pdev->dev, "board not ready, timed out.\n");
@@ -3262,8 +3262,8 @@ static int hpsa_pci_init(struct ctlr_info *h, struct pci_dev *pdev)
if (!(readl(h->vaddr + SA5_DOORBELL) & CFGTBL_ChangeReq))
break;
/* delay and try again */
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(10);
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ msleep(10);
}
#ifdef HPSA_DEBUG
@@ -3302,7 +3302,8 @@ static int __devinit hpsa_init_one(struct pci_dev *pdev,
/* Some devices (notably the HP Smart Array 5i Controller)
need a little pause here */
- schedule_timeout_uninterruptible(HPSA_POST_RESET_PAUSE);
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ msleep(HPSA_POST_RESET_PAUSE_MSECS);
/* Now try to get the controller to respond to a no-op */
for (i = 0; i < HPSA_POST_RESET_NOOP_RETRIES; i++) {
diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h
index ffa8c50..6bd1949 100644
--- a/drivers/scsi/hpsa.h
+++ b/drivers/scsi/hpsa.h
@@ -108,7 +108,7 @@ struct ctlr_info {
#define HPSA_BUS_RESET_MSG 2
#define HPSA_HOST_RESET_MSG 3
#define HPSA_MSG_SEND_RETRY_LIMIT 10
-#define HPSA_MSG_SEND_RETRY_INTERVAL_SECS 1
+#define HPSA_MSG_SEND_RETRY_INTERVAL_MSECS 1000
/* Maximum time in seconds driver will wait for command completions
* when polling before giving up.
@@ -139,7 +139,7 @@ struct ctlr_info {
#define HPSA_BOARD_READY_ITERATIONS \
((HPSA_BOARD_READY_WAIT_SECS * 1000) / \
HPSA_BOARD_READY_POLL_INTERVAL_MSECS)
-#define HPSA_POST_RESET_PAUSE (30 * HZ)
+#define HPSA_POST_RESET_PAUSE_MSECS (3000)
#define HPSA_POST_RESET_NOOP_RETRIES (12)
/* Defining the diffent access_menthods */
next prev parent reply other threads:[~2009-12-08 21:36 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-08 21:38 [PATCH 0/5] hpsa: fix a few more small things Stephen M. Cameron
2009-12-08 21:38 ` Stephen M. Cameron [this message]
2009-12-08 21:53 ` [PATCH 1/5] Use msleep() instead of schedule_timeout James Bottomley
2009-12-08 22:02 ` Andrew Morton
2009-12-08 21:38 ` [PATCH 2/5] hpsa: rename too generic variable names Stephen M. Cameron
2009-12-08 21:38 ` [PATCH 3/5] hpsa: Return SCSI_MLQUEUE_HOST_BUSY on command allocation failure Stephen M. Cameron
2009-12-08 21:38 ` [PATCH 4/5] hpsa: Fix incorrect SCSI status reporting Stephen M. Cameron
2009-12-16 22:53 ` Stephen Cameron
2009-12-08 21:38 ` [PATCH 5/5] hpsa: suppress messages due to unsupport SCSI REPORT_LUNS Stephen M. Cameron
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20091208213812.23493.20587.stgit@beardog.cce.hp.com \
--to=scameron@beardog.cce.hp.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=mikem@beardog.cce.hp.com \
--cc=smcameron@yahoo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox