Skip to content

Commit

Permalink
[S390] ap: Setup processing for messages in request queue.
Browse files Browse the repository at this point in the history
Setup timer for processing messages in request queue, if sending an AP
message returns with reason code AP_RESPONSE_RESET_IN_PROGRESS.

Signed-off-by: Holger Dengler <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
  • Loading branch information
Holger Dengler authored and Martin Schwidefsky committed Nov 14, 2011
1 parent 96603b5 commit bc615de
Showing 1 changed file with 17 additions and 6 deletions.
23 changes: 17 additions & 6 deletions drivers/s390/crypto/ap_bus.c
Original file line number Diff line number Diff line change
Expand Up @@ -1271,18 +1271,16 @@ ap_config_timeout(unsigned long ptr)
}

/**
* ap_schedule_poll_timer(): Schedule poll timer.
* __ap_schedule_poll_timer(): Schedule poll timer.
*
* Set up the timer to run the poll tasklet
*/
static inline void ap_schedule_poll_timer(void)
static inline void __ap_schedule_poll_timer(void)
{
ktime_t hr_time;

spin_lock_bh(&ap_poll_timer_lock);
if (ap_using_interrupts() || ap_suspend_flag)
goto out;
if (hrtimer_is_queued(&ap_poll_timer))
if (hrtimer_is_queued(&ap_poll_timer) || ap_suspend_flag)
goto out;
if (ktime_to_ns(hrtimer_expires_remaining(&ap_poll_timer)) <= 0) {
hr_time = ktime_set(0, poll_timeout);
Expand All @@ -1293,6 +1291,18 @@ static inline void ap_schedule_poll_timer(void)
spin_unlock_bh(&ap_poll_timer_lock);
}

/**
* ap_schedule_poll_timer(): Schedule poll timer.
*
* Set up the timer to run the poll tasklet
*/
static inline void ap_schedule_poll_timer(void)
{
if (ap_using_interrupts())
return;
__ap_schedule_poll_timer();
}

/**
* ap_poll_read(): Receive pending reply messages from an AP device.
* @ap_dev: pointer to the AP device
Expand Down Expand Up @@ -1374,8 +1384,9 @@ static int ap_poll_write(struct ap_device *ap_dev, unsigned long *flags)
*flags |= 1;
*flags |= 2;
break;
case AP_RESPONSE_Q_FULL:
case AP_RESPONSE_RESET_IN_PROGRESS:
__ap_schedule_poll_timer();
case AP_RESPONSE_Q_FULL:
*flags |= 2;
break;
case AP_RESPONSE_MESSAGE_TOO_BIG:
Expand Down

0 comments on commit bc615de

Please sign in to comment.