<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3243" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=608571215-30102008>We run from time to
time into situations, where the bus driver fails on the start up because of some
FW problem.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=608571215-30102008>Bus driver
usually writes to Event Log the name of the failed command without the
error code.</SPAN></FONT></DIV>
<DIV><FONT><SPAN class=608571215-30102008><FONT face=Arial
size=2></FONT></SPAN></FONT> </DIV>
<DIV><FONT><SPAN class=608571215-30102008><FONT face=Arial size=2>I've committed
a fix (</FONT><FONT face=Arial size=2><SPAN class=608571215-30102008>1714,
1715</SPAN></FONT><FONT face=Arial><FONT size=2><SPAN
class=608571215-30102008>)</SPAN>, that improves this
logging.</FONT></FONT></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=608571215-30102008></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=608571215-30102008>Index:
V:/svn/winib/trunk/hw/mlx4/kernel/bus/net/cmd.c<BR>===================================================================<BR>---
V:/svn/winib/trunk/hw/mlx4/kernel/bus/net/cmd.c (revision 3404)<BR>+++
V:/svn/winib/trunk/hw/mlx4/kernel/bus/net/cmd.c (revision 3405)<BR>@@
-208,6 +208,7 @@<BR> u8 __iomem *hcr =
priv->cmd.hcr;<BR> int err = 0;<BR> u64
end;<BR>+ u8
status;<BR> <BR> down(&priv->cmd.poll_sem);<BR> <BR>@@
-232,8 +233,11 @@<BR> (u64) be32_to_cpu((__force
__be32)<BR> __raw_readl(hcr +
HCR_OUT_PARAM_OFFSET + 4));<BR> <BR>- err =
mlx4_status_to_errno((u8)(be32_to_cpu((__force
__be32)<BR>-
__raw_readl(hcr + HCR_STATUS_OFFSET)) >> 24));<BR>+ status =
(u8)(be32_to_cpu((__force __be32)__raw_readl(hcr + HCR_STATUS_OFFSET)) >>
24);<BR>+ err = mlx4_status_to_errno(status);<BR>+ if
(status)<BR>+ mlx4_err(dev, "Command failed: op %#hx, status %d,
errno %d.\n", <BR>+ op, status,
err);<BR> <BR> out:<BR> up(&priv->cmd.poll_sem);<BR>@@
-251,6 +255,10
@@<BR> return;<BR> <BR> context->result
= mlx4_status_to_errno(status);<BR>+ <BR>+ if
(status)<BR>+ mlx4_err(dev, "Command failed: token %#hx, status %d,
errno %d.\n", <BR>+ token, status,
context->result);<BR> context->out_param =
out_param;<BR> <BR> complete(&context->done);<BR>@@
-280,7 +288,7 @@<BR> <BR> if
(wait_for_completion_timeout(&context->done, msecs_to_jiffies(timeout)))
{<BR> if (!context->done.done)
{<BR>- static int spam_limit = 10;<BR>+ static
int spam_limit = 5;<BR> err =
-EBUSY;<BR> if (spam_limit-- >
0)<BR> mlx4_err(dev, "mlx4_cmd_wait: Command %02x
completed with timeout after %d secs \n",<BR></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=608571215-30102008></SPAN></FONT> </DIV></BODY></HTML>