提交 69a4aa89 编写于 作者: J Jakub Kicinski 提交者: David S. Miller

nfp: correct return codes when msleep gets interrupted

msleep_interruptible() returns time left to wait, not error
code.  Return ERESTARTSYS when interrupted.

While at it correct a comment and make the polling a bit
more aggressive.
Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 a831ffb5
......@@ -209,9 +209,8 @@ nfp_nsp_wait_reg(struct nfp_cpp *cpp, u64 *reg,
if ((*reg & mask) == val)
return 0;
err = msleep_interruptible(100);
if (err)
return err;
if (msleep_interruptible(25))
return -ERESTARTSYS;
if (time_after(start_time, wait_until))
return -ETIMEDOUT;
......@@ -228,7 +227,7 @@ nfp_nsp_wait_reg(struct nfp_cpp *cpp, u64 *reg,
*
* Return: 0 for success with no result
*
* 1..255 for NSP completion with a result code
* positive value for NSP completion with a result code
*
* -EAGAIN if the NSP is not yet present
* -ENODEV if the NSP is not a supported model
......@@ -380,9 +379,10 @@ int nfp_nsp_wait(struct nfp_nsp *state)
if (err != -EAGAIN)
break;
err = msleep_interruptible(100);
if (err)
if (msleep_interruptible(25)) {
err = -ERESTARTSYS;
break;
}
if (time_after(start_time, wait_until)) {
err = -ETIMEDOUT;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册