1
0
Fork 0

gru: cleanup gru inline functions

Cleanup of GRU inline functions to eliminate unnecessary inline code.
Update function descriptions.

Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
hifive-unleashed-5.1
Jack Steiner 2009-06-17 16:28:31 -07:00 committed by Linus Torvalds
parent 6471cd4d6c
commit 9f2501142b
1 changed files with 16 additions and 17 deletions

View File

@ -623,9 +623,11 @@ static inline int gru_get_cb_substatus(void *cb)
return cbs->isubstatus;
}
/* Check the status of a CB. If the CB is in UPM mode, call the
* OS to handle the UPM status.
* Returns the CB status field value (0 for normal completion)
/*
* User interface to check an instruction status. UPM and exceptions
* are handled automatically. However, this function does NOT wait
* for an active instruction to complete.
*
*/
static inline int gru_check_status(void *cb)
{
@ -633,34 +635,31 @@ static inline int gru_check_status(void *cb)
int ret;
ret = cbs->istatus;
if (ret == CBS_CALL_OS)
if (ret != CBS_ACTIVE)
ret = gru_check_status_proc(cb);
return ret;
}
/* Wait for CB to complete.
* Returns the CB status field value (0 for normal completion)
/*
* User interface (via inline function) to wait for an instruction
* to complete. Completion status (IDLE or EXCEPTION is returned
* to the user. Exception due to hardware errors are automatically
* retried before returning an exception.
*
*/
static inline int gru_wait(void *cb)
{
struct gru_control_block_status *cbs = (void *)cb;
int ret = cbs->istatus;
if (ret != CBS_IDLE)
ret = gru_wait_proc(cb);
return ret;
return gru_wait_proc(cb);
}
/* Wait for CB to complete. Aborts program if error. (Note: error does NOT
/*
* Wait for CB to complete. Aborts program if error. (Note: error does NOT
* mean TLB mis - only fatal errors such as memory parity error or user
* bugs will cause termination.
*/
static inline void gru_wait_abort(void *cb)
{
struct gru_control_block_status *cbs = (void *)cb;
if (cbs->istatus != CBS_IDLE)
gru_wait_abort_proc(cb);
gru_wait_abort_proc(cb);
}