Error code should be set to EINVAL instead of ENODEV if !queue_work().
There's another call of queue_work() which may set err to EINVAL.
Signed-off-by: Li Zefan <[email protected]>
---
drivers/connector/connector.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/connector/connector.c b/drivers/connector/connector.c
index 865303b..37976dc 100644
--- a/drivers/connector/connector.c
+++ b/drivers/connector/connector.c
@@ -146,6 +146,8 @@ static int cn_call_callback(struct cn_msg *msg, void (*destruct_data)(void *), v
if (queue_work(dev->cbdev->cn_queue,
&__cbq->work))
err = 0;
+ else
+ err = -EINVAL;
} else {
struct cn_callback_data *d;
--
1.5.3.rc7
From: Li Zefan <[email protected]>
Date: Fri, 04 Jan 2008 13:53:05 +0800
> Error code should be set to EINVAL instead of ENODEV if !queue_work().
> There's another call of queue_work() which may set err to EINVAL.
>
> Signed-off-by: Li Zefan <[email protected]>
This one is a bug fix so I'll apply it to net-2.6 and push
to Linus.
The rest are cleanups which I'll queue up for 2.6.25
Thanks.
Hi.
Sorry for long reply.
On Fri, Jan 04, 2008 at 01:51:25AM -0800, David Miller ([email protected]) wrote:
> > Error code should be set to EINVAL instead of ENODEV if !queue_work().
> > There's another call of queue_work() which may set err to EINVAL.
> >
> > Signed-off-by: Li Zefan <[email protected]>
>
> This one is a bug fix so I'll apply it to net-2.6 and push
> to Linus.
>
> The rest are cleanups which I'll queue up for 2.6.25
Although I'm not sure changing error from nodev to inval is a bug fix :),
I have no problem with pushing it first.
Loop above will break out after first matched id, so it will never call
the path, which can change error, again.
Thanks a lot for patches and quick merge!
--
Evgeniy Polyakov