Commit 9f16930e authored by Benjamin Romer's avatar Benjamin Romer Committed by Greg Kroah-Hartman

staging: unisys: refactor ULTRA_channel_client_acquire_os()

Remove the unnecessary macro ULTRA_CHANNEL_CLIENT_ACQUIRE_OS for calling
the function, and rename the function to
spar_channel_client_acquire_os(). Get rid of unneeded parameters logCtx,
file, and line, and Fix CamelCase names:

pChannel => ch
chanId => id
pChan => hdr
Signed-off-by: default avatarBenjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ff97a3fd
...@@ -149,10 +149,6 @@ ULTRA_CHANNELCLI_STRING(u32 v) ...@@ -149,10 +149,6 @@ ULTRA_CHANNELCLI_STRING(u32 v)
mb(); /* required for channel synch */ \ mb(); /* required for channel synch */ \
} while (0) } while (0)
#define ULTRA_CHANNEL_CLIENT_ACQUIRE_OS(pChan, chanId, logCtx) \
ULTRA_channel_client_acquire_os(pChan, chanId, logCtx, \
(char *)__FILE__, __LINE__, \
(char *)__func__)
#define ULTRA_CHANNEL_CLIENT_RELEASE_OS(pChan, chanId, logCtx) \ #define ULTRA_CHANNEL_CLIENT_RELEASE_OS(pChan, chanId, logCtx) \
ULTRA_channel_client_release_os(pChan, chanId, logCtx, \ ULTRA_channel_client_release_os(pChan, chanId, logCtx, \
(char *)__FILE__, __LINE__, (char *)__func__) (char *)__FILE__, __LINE__, (char *)__func__)
...@@ -412,47 +408,43 @@ pathname_last_n_nodes(u8 *s, unsigned int n) ...@@ -412,47 +408,43 @@ pathname_last_n_nodes(u8 *s, unsigned int n)
} }
static inline int static inline int
ULTRA_channel_client_acquire_os(void __iomem *pChannel, u8 *chanId, spar_channel_client_acquire_os(void __iomem *ch, u8 *id)
void *logCtx, char *file, int line, char *func)
{ {
struct channel_header __iomem *pChan = pChannel; struct channel_header __iomem *hdr = ch;
if (readl(&pChan->cli_state_os) == CHANNELCLI_DISABLED) { if (readl(&hdr->cli_state_os) == CHANNELCLI_DISABLED) {
if ((readb(&pChan->cli_error_os) if ((readb(&hdr->cli_error_os)
& ULTRA_CLIERROROS_THROTTLEMSG_DISABLED) == 0) { & ULTRA_CLIERROROS_THROTTLEMSG_DISABLED) == 0) {
/* we are NOT throttling this message */ /* we are NOT throttling this message */
writeb(readb(&pChan->cli_error_os) | writeb(readb(&hdr->cli_error_os) |
ULTRA_CLIERROROS_THROTTLEMSG_DISABLED, ULTRA_CLIERROROS_THROTTLEMSG_DISABLED,
&pChan->cli_error_os); &hdr->cli_error_os);
/* throttle until acquire successful */ /* throttle until acquire successful */
pr_info("%s Channel StateTransition INVALID! - acquire failed because OS client DISABLED @%s:%d\n", pr_info("%s Channel StateTransition INVALID! - acquire failed because OS client DISABLED\n",
chanId, pathname_last_n_nodes((u8 *) file, 4), id);
line);
} }
return 0; return 0;
} }
if ((readl(&pChan->cli_state_os) != CHANNELCLI_OWNED) if ((readl(&hdr->cli_state_os) != CHANNELCLI_OWNED)
&& (readl(&pChan->cli_state_boot) == CHANNELCLI_DISABLED)) { && (readl(&hdr->cli_state_boot) == CHANNELCLI_DISABLED)) {
/* Our competitor is DISABLED, so we can transition to OWNED */ /* Our competitor is DISABLED, so we can transition to OWNED */
pr_info("%s Channel StateTransition (%s) %s(%d)-->%s(%d) @%s:%d\n", pr_info("%s Channel StateTransition (%s) %s(%d)-->%s(%d)\n",
chanId, "cli_state_os", id, "cli_state_os",
ULTRA_CHANNELCLI_STRING(readl(&pChan->cli_state_os)), ULTRA_CHANNELCLI_STRING(readl(&hdr->cli_state_os)),
readl(&pChan->cli_state_os), readl(&hdr->cli_state_os),
ULTRA_CHANNELCLI_STRING(CHANNELCLI_OWNED), ULTRA_CHANNELCLI_STRING(CHANNELCLI_OWNED),
CHANNELCLI_OWNED, CHANNELCLI_OWNED);
pathname_last_n_nodes((u8 *) file, 4), line); writel(CHANNELCLI_OWNED, &hdr->cli_state_os);
writel(CHANNELCLI_OWNED, &pChan->cli_state_os);
mb(); /* required for channel synch */ mb(); /* required for channel synch */
} }
if (readl(&pChan->cli_state_os) == CHANNELCLI_OWNED) { if (readl(&hdr->cli_state_os) == CHANNELCLI_OWNED) {
if (readb(&pChan->cli_error_os) != 0) { if (readb(&hdr->cli_error_os) != 0) {
/* we are in an error msg throttling state; /* we are in an error msg throttling state;
* come out of it */ * come out of it */
pr_info("%s Channel OS client acquire now successful @%s:%d\n", pr_info("%s Channel OS client acquire now successful\n",
chanId, pathname_last_n_nodes((u8 *) file, 4), id);
line); writeb(0, &hdr->cli_error_os);
writeb(0, &pChan->cli_error_os);
} }
return 1; return 1;
} }
...@@ -460,48 +452,43 @@ ULTRA_channel_client_acquire_os(void __iomem *pChannel, u8 *chanId, ...@@ -460,48 +452,43 @@ ULTRA_channel_client_acquire_os(void __iomem *pChannel, u8 *chanId,
/* We have to do it the "hard way". We transition to BUSY, /* We have to do it the "hard way". We transition to BUSY,
* and can use the channel iff our competitor has not also * and can use the channel iff our competitor has not also
* transitioned to BUSY. */ * transitioned to BUSY. */
if (readl(&pChan->cli_state_os) != CHANNELCLI_ATTACHED) { if (readl(&hdr->cli_state_os) != CHANNELCLI_ATTACHED) {
if ((readb(&pChan->cli_error_os) if ((readb(&hdr->cli_error_os)
& ULTRA_CLIERROROS_THROTTLEMSG_NOTATTACHED) == 0) { & ULTRA_CLIERROROS_THROTTLEMSG_NOTATTACHED) == 0) {
/* we are NOT throttling this message */ /* we are NOT throttling this message */
writeb(readb(&pChan->cli_error_os) | writeb(readb(&hdr->cli_error_os) |
ULTRA_CLIERROROS_THROTTLEMSG_NOTATTACHED, ULTRA_CLIERROROS_THROTTLEMSG_NOTATTACHED,
&pChan->cli_error_os); &hdr->cli_error_os);
/* throttle until acquire successful */ /* throttle until acquire successful */
pr_info("%s Channel StateTransition INVALID! - acquire failed because OS client NOT ATTACHED (state=%s(%d)) @%s:%d\n", pr_info("%s Channel StateTransition INVALID! - acquire failed because OS client NOT ATTACHED (state=%s(%d))\n",
chanId, ULTRA_CHANNELCLI_STRING( id, ULTRA_CHANNELCLI_STRING(
readl(&pChan->cli_state_os)), readl(&hdr->cli_state_os)),
readl(&pChan->cli_state_os), readl(&hdr->cli_state_os));
pathname_last_n_nodes((u8 *) file, 4),
line);
} }
return 0; return 0;
} }
writel(CHANNELCLI_BUSY, &pChan->cli_state_os); writel(CHANNELCLI_BUSY, &hdr->cli_state_os);
mb(); /* required for channel synch */ mb(); /* required for channel synch */
if (readl(&pChan->cli_state_boot) == CHANNELCLI_BUSY) { if (readl(&hdr->cli_state_boot) == CHANNELCLI_BUSY) {
if ((readb(&pChan->cli_error_os) if ((readb(&hdr->cli_error_os)
& ULTRA_CLIERROROS_THROTTLEMSG_BUSY) == 0) { & ULTRA_CLIERROROS_THROTTLEMSG_BUSY) == 0) {
/* we are NOT throttling this message */ /* we are NOT throttling this message */
writeb(readb(&pChan->cli_error_os) | writeb(readb(&hdr->cli_error_os) |
ULTRA_CLIERROROS_THROTTLEMSG_BUSY, ULTRA_CLIERROROS_THROTTLEMSG_BUSY,
&pChan->cli_error_os); &hdr->cli_error_os);
/* throttle until acquire successful */ /* throttle until acquire successful */
pr_info("%s Channel StateTransition failed - host OS acquire failed because boot BUSY @%s:%d\n", pr_info("%s Channel StateTransition failed - host OS acquire failed because boot BUSY\n",
chanId, pathname_last_n_nodes((u8 *) file, 4), id);
line);
} }
/* reset busy */ /* reset busy */
writel(CHANNELCLI_ATTACHED, &pChan->cli_state_os); writel(CHANNELCLI_ATTACHED, &hdr->cli_state_os);
mb(); /* required for channel synch */ mb(); /* required for channel synch */
return 0; return 0;
} }
if (readb(&pChan->cli_error_os) != 0) { if (readb(&hdr->cli_error_os) != 0) {
/* we are in an error msg throttling state; come out of it */ /* we are in an error msg throttling state; come out of it */
pr_info("%s Channel OS client acquire now successful @%s:%d\n", pr_info("%s Channel OS client acquire now successful\n", id);
chanId, pathname_last_n_nodes((u8 *) file, 4), writeb(0, &hdr->cli_error_os);
line);
writeb(0, &pChan->cli_error_os);
} }
return 1; return 1;
} }
......
...@@ -81,7 +81,7 @@ do_locked_client_insert(struct uisqueue_info *queueinfo, ...@@ -81,7 +81,7 @@ do_locked_client_insert(struct uisqueue_info *queueinfo,
u8 rc = 0; u8 rc = 0;
spin_lock_irqsave(lock, flags); spin_lock_irqsave(lock, flags);
if (!ULTRA_CHANNEL_CLIENT_ACQUIRE_OS(queueinfo->chan, channelId, NULL)) if (!spar_channel_client_acquire_os(queueinfo->chan, channelId))
goto unlock; goto unlock;
if (visor_signal_insert(queueinfo->chan, whichqueue, pSignal)) { if (visor_signal_insert(queueinfo->chan, whichqueue, pSignal)) {
queueinfo->packets_sent++; queueinfo->packets_sent++;
......
...@@ -1276,8 +1276,8 @@ drain_queue(struct virthba_info *virthbainfo, struct chaninfo *dc, ...@@ -1276,8 +1276,8 @@ drain_queue(struct virthba_info *virthbainfo, struct chaninfo *dc,
while (1) { while (1) {
spin_lock_irqsave(&virthbainfo->chinfo.insertlock, flags); spin_lock_irqsave(&virthbainfo->chinfo.insertlock, flags);
if (!ULTRA_CHANNEL_CLIENT_ACQUIRE_OS(dc->queueinfo->chan, if (!spar_channel_client_acquire_os(dc->queueinfo->chan,
"vhba", NULL)) { "vhba")) {
spin_unlock_irqrestore(&virthbainfo->chinfo.insertlock, spin_unlock_irqrestore(&virthbainfo->chinfo.insertlock,
flags); flags);
virthbainfo->acquire_failed_cnt++; virthbainfo->acquire_failed_cnt++;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment