提交 7126dd05 编写于 作者: J Jiri Slaby 提交者: Linus Torvalds

Char: ip2, use msleep for sleeping

Signed-off-by: NJiri Slaby <jirislaby@gmail.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 6defec13
...@@ -43,8 +43,6 @@ static void iiEnableMailIrqIIEX(i2eBordStrPtr); ...@@ -43,8 +43,6 @@ static void iiEnableMailIrqIIEX(i2eBordStrPtr);
static void iiWriteMaskII(i2eBordStrPtr, unsigned char); static void iiWriteMaskII(i2eBordStrPtr, unsigned char);
static void iiWriteMaskIIEX(i2eBordStrPtr, unsigned char); static void iiWriteMaskIIEX(i2eBordStrPtr, unsigned char);
static void ii2DelayTimer(unsigned int);
static void ii2DelayWakeup(unsigned long id);
static void ii2Nop(void); static void ii2Nop(void);
//*************** //***************
...@@ -55,8 +53,6 @@ static int ii2Safe; // Safe I/O address for delay routine ...@@ -55,8 +53,6 @@ static int ii2Safe; // Safe I/O address for delay routine
static int iiDelayed; // Set when the iiResetDelay function is static int iiDelayed; // Set when the iiResetDelay function is
// called. Cleared when ANY board is reset. // called. Cleared when ANY board is reset.
static struct timer_list * pDelayTimer; // Used by iiDelayTimer
static wait_queue_head_t pDelayWait; // Used by iiDelayTimer
static rwlock_t Dl_spinlock; static rwlock_t Dl_spinlock;
//******** //********
...@@ -86,9 +82,6 @@ static rwlock_t Dl_spinlock; ...@@ -86,9 +82,6 @@ static rwlock_t Dl_spinlock;
static void static void
iiEllisInit(void) iiEllisInit(void)
{ {
pDelayTimer = kmalloc ( sizeof (struct timer_list), GFP_KERNEL );
init_timer(pDelayTimer);
init_waitqueue_head(&pDelayWait);
LOCK_INIT(&Dl_spinlock); LOCK_INIT(&Dl_spinlock);
} }
...@@ -106,7 +99,6 @@ iiEllisInit(void) ...@@ -106,7 +99,6 @@ iiEllisInit(void)
static void static void
iiEllisCleanup(void) iiEllisCleanup(void)
{ {
kfree(pDelayTimer);
} }
//****************************************************************************** //******************************************************************************
...@@ -560,19 +552,6 @@ iiInitialize(i2eBordStrPtr pB) ...@@ -560,19 +552,6 @@ iiInitialize(i2eBordStrPtr pB)
COMPLETE(pB, I2EE_GOOD); COMPLETE(pB, I2EE_GOOD);
} }
//=======================================================
// Delay Routines
//
// iiDelayIO
// iiNop
//=======================================================
static void
ii2DelayWakeup(unsigned long id)
{
wake_up_interruptible ( &pDelayWait );
}
//****************************************************************************** //******************************************************************************
// Function: ii2DelayTimer(mseconds) // Function: ii2DelayTimer(mseconds)
// Parameters: mseconds - number of milliseconds to delay // Parameters: mseconds - number of milliseconds to delay
...@@ -594,28 +573,7 @@ ii2DelayWakeup(unsigned long id) ...@@ -594,28 +573,7 @@ ii2DelayWakeup(unsigned long id)
static void static void
ii2DelayTimer(unsigned int mseconds) ii2DelayTimer(unsigned int mseconds)
{ {
wait_queue_t wait; msleep_interruptible(mseconds);
init_waitqueue_entry(&wait, current);
init_timer ( pDelayTimer );
add_wait_queue(&pDelayWait, &wait);
set_current_state( TASK_INTERRUPTIBLE );
pDelayTimer->expires = jiffies + ( mseconds + 9 ) / 10;
pDelayTimer->function = ii2DelayWakeup;
pDelayTimer->data = 0;
add_timer ( pDelayTimer );
schedule();
set_current_state( TASK_RUNNING );
remove_wait_queue(&pDelayWait, &wait);
del_timer ( pDelayTimer );
} }
#if 0 #if 0
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册