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: Benjamin Romer <benjamin.romer@unisys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
ff97a3fdf5
commit
9f16930e55
|
@ -149,10 +149,6 @@ ULTRA_CHANNELCLI_STRING(u32 v)
|
|||
mb(); /* required for channel synch */ \
|
||||
} 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) \
|
||||
ULTRA_channel_client_release_os(pChan, chanId, logCtx, \
|
||||
(char *)__FILE__, __LINE__, (char *)__func__)
|
||||
|
@ -412,47 +408,43 @@ pathname_last_n_nodes(u8 *s, unsigned int n)
|
|||
}
|
||||
|
||||
static inline int
|
||||
ULTRA_channel_client_acquire_os(void __iomem *pChannel, u8 *chanId,
|
||||
void *logCtx, char *file, int line, char *func)
|
||||
spar_channel_client_acquire_os(void __iomem *ch, u8 *id)
|
||||
{
|
||||
struct channel_header __iomem *pChan = pChannel;
|
||||
struct channel_header __iomem *hdr = ch;
|
||||
|
||||
if (readl(&pChan->cli_state_os) == CHANNELCLI_DISABLED) {
|
||||
if ((readb(&pChan->cli_error_os)
|
||||
if (readl(&hdr->cli_state_os) == CHANNELCLI_DISABLED) {
|
||||
if ((readb(&hdr->cli_error_os)
|
||||
& ULTRA_CLIERROROS_THROTTLEMSG_DISABLED) == 0) {
|
||||
/* we are NOT throttling this message */
|
||||
writeb(readb(&pChan->cli_error_os) |
|
||||
writeb(readb(&hdr->cli_error_os) |
|
||||
ULTRA_CLIERROROS_THROTTLEMSG_DISABLED,
|
||||
&pChan->cli_error_os);
|
||||
&hdr->cli_error_os);
|
||||
/* throttle until acquire successful */
|
||||
|
||||
pr_info("%s Channel StateTransition INVALID! - acquire failed because OS client DISABLED @%s:%d\n",
|
||||
chanId, pathname_last_n_nodes((u8 *) file, 4),
|
||||
line);
|
||||
pr_info("%s Channel StateTransition INVALID! - acquire failed because OS client DISABLED\n",
|
||||
id);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
if ((readl(&pChan->cli_state_os) != CHANNELCLI_OWNED)
|
||||
&& (readl(&pChan->cli_state_boot) == CHANNELCLI_DISABLED)) {
|
||||
if ((readl(&hdr->cli_state_os) != CHANNELCLI_OWNED)
|
||||
&& (readl(&hdr->cli_state_boot) == CHANNELCLI_DISABLED)) {
|
||||
/* Our competitor is DISABLED, so we can transition to OWNED */
|
||||
pr_info("%s Channel StateTransition (%s) %s(%d)-->%s(%d) @%s:%d\n",
|
||||
chanId, "cli_state_os",
|
||||
ULTRA_CHANNELCLI_STRING(readl(&pChan->cli_state_os)),
|
||||
readl(&pChan->cli_state_os),
|
||||
pr_info("%s Channel StateTransition (%s) %s(%d)-->%s(%d)\n",
|
||||
id, "cli_state_os",
|
||||
ULTRA_CHANNELCLI_STRING(readl(&hdr->cli_state_os)),
|
||||
readl(&hdr->cli_state_os),
|
||||
ULTRA_CHANNELCLI_STRING(CHANNELCLI_OWNED),
|
||||
CHANNELCLI_OWNED,
|
||||
pathname_last_n_nodes((u8 *) file, 4), line);
|
||||
writel(CHANNELCLI_OWNED, &pChan->cli_state_os);
|
||||
CHANNELCLI_OWNED);
|
||||
writel(CHANNELCLI_OWNED, &hdr->cli_state_os);
|
||||
mb(); /* required for channel synch */
|
||||
}
|
||||
if (readl(&pChan->cli_state_os) == CHANNELCLI_OWNED) {
|
||||
if (readb(&pChan->cli_error_os) != 0) {
|
||||
if (readl(&hdr->cli_state_os) == CHANNELCLI_OWNED) {
|
||||
if (readb(&hdr->cli_error_os) != 0) {
|
||||
/* we are in an error msg throttling state;
|
||||
* come out of it */
|
||||
pr_info("%s Channel OS client acquire now successful @%s:%d\n",
|
||||
chanId, pathname_last_n_nodes((u8 *) file, 4),
|
||||
line);
|
||||
writeb(0, &pChan->cli_error_os);
|
||||
pr_info("%s Channel OS client acquire now successful\n",
|
||||
id);
|
||||
writeb(0, &hdr->cli_error_os);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
@ -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,
|
||||
* and can use the channel iff our competitor has not also
|
||||
* transitioned to BUSY. */
|
||||
if (readl(&pChan->cli_state_os) != CHANNELCLI_ATTACHED) {
|
||||
if ((readb(&pChan->cli_error_os)
|
||||
if (readl(&hdr->cli_state_os) != CHANNELCLI_ATTACHED) {
|
||||
if ((readb(&hdr->cli_error_os)
|
||||
& ULTRA_CLIERROROS_THROTTLEMSG_NOTATTACHED) == 0) {
|
||||
/* we are NOT throttling this message */
|
||||
writeb(readb(&pChan->cli_error_os) |
|
||||
writeb(readb(&hdr->cli_error_os) |
|
||||
ULTRA_CLIERROROS_THROTTLEMSG_NOTATTACHED,
|
||||
&pChan->cli_error_os);
|
||||
&hdr->cli_error_os);
|
||||
/* throttle until acquire successful */
|
||||
pr_info("%s Channel StateTransition INVALID! - acquire failed because OS client NOT ATTACHED (state=%s(%d)) @%s:%d\n",
|
||||
chanId, ULTRA_CHANNELCLI_STRING(
|
||||
readl(&pChan->cli_state_os)),
|
||||
readl(&pChan->cli_state_os),
|
||||
pathname_last_n_nodes((u8 *) file, 4),
|
||||
line);
|
||||
pr_info("%s Channel StateTransition INVALID! - acquire failed because OS client NOT ATTACHED (state=%s(%d))\n",
|
||||
id, ULTRA_CHANNELCLI_STRING(
|
||||
readl(&hdr->cli_state_os)),
|
||||
readl(&hdr->cli_state_os));
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
writel(CHANNELCLI_BUSY, &pChan->cli_state_os);
|
||||
writel(CHANNELCLI_BUSY, &hdr->cli_state_os);
|
||||
mb(); /* required for channel synch */
|
||||
if (readl(&pChan->cli_state_boot) == CHANNELCLI_BUSY) {
|
||||
if ((readb(&pChan->cli_error_os)
|
||||
if (readl(&hdr->cli_state_boot) == CHANNELCLI_BUSY) {
|
||||
if ((readb(&hdr->cli_error_os)
|
||||
& ULTRA_CLIERROROS_THROTTLEMSG_BUSY) == 0) {
|
||||
/* we are NOT throttling this message */
|
||||
writeb(readb(&pChan->cli_error_os) |
|
||||
writeb(readb(&hdr->cli_error_os) |
|
||||
ULTRA_CLIERROROS_THROTTLEMSG_BUSY,
|
||||
&pChan->cli_error_os);
|
||||
&hdr->cli_error_os);
|
||||
/* throttle until acquire successful */
|
||||
pr_info("%s Channel StateTransition failed - host OS acquire failed because boot BUSY @%s:%d\n",
|
||||
chanId, pathname_last_n_nodes((u8 *) file, 4),
|
||||
line);
|
||||
pr_info("%s Channel StateTransition failed - host OS acquire failed because boot BUSY\n",
|
||||
id);
|
||||
}
|
||||
/* reset busy */
|
||||
writel(CHANNELCLI_ATTACHED, &pChan->cli_state_os);
|
||||
writel(CHANNELCLI_ATTACHED, &hdr->cli_state_os);
|
||||
mb(); /* required for channel synch */
|
||||
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 */
|
||||
pr_info("%s Channel OS client acquire now successful @%s:%d\n",
|
||||
chanId, pathname_last_n_nodes((u8 *) file, 4),
|
||||
line);
|
||||
writeb(0, &pChan->cli_error_os);
|
||||
pr_info("%s Channel OS client acquire now successful\n", id);
|
||||
writeb(0, &hdr->cli_error_os);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -81,7 +81,7 @@ do_locked_client_insert(struct uisqueue_info *queueinfo,
|
|||
u8 rc = 0;
|
||||
|
||||
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;
|
||||
if (visor_signal_insert(queueinfo->chan, whichqueue, pSignal)) {
|
||||
queueinfo->packets_sent++;
|
||||
|
|
|
@ -1276,8 +1276,8 @@ drain_queue(struct virthba_info *virthbainfo, struct chaninfo *dc,
|
|||
|
||||
while (1) {
|
||||
spin_lock_irqsave(&virthbainfo->chinfo.insertlock, flags);
|
||||
if (!ULTRA_CHANNEL_CLIENT_ACQUIRE_OS(dc->queueinfo->chan,
|
||||
"vhba", NULL)) {
|
||||
if (!spar_channel_client_acquire_os(dc->queueinfo->chan,
|
||||
"vhba")) {
|
||||
spin_unlock_irqrestore(&virthbainfo->chinfo.insertlock,
|
||||
flags);
|
||||
virthbainfo->acquire_failed_cnt++;
|
||||
|
|
Loading…
Reference in New Issue