Re: [PATCH -next] um: vector: fix missing unlock on error in vector_net_open()

2018-01-05 Thread Anton Ivanov

Hi Wei,

I just double-checked.

This issue has been fixed in a patch submitted by Dan Carpenter on 09th 
Dec 2017 which I acknowledged on 11th Dec 2017 and which should be in 
Richard's queue to be applied.


It should at some point show up in Linux-next.

Best Regards and once again, thanks for looking into it.

A.


On 01/05/18 07:22, Wei Yongjun wrote:

Add the missing unlock before return from function vector_net_open()
in the error handling case.

Fixes: ad1f62ab2bd4 ("High Performance UML Vector Network Driver")
Signed-off-by: Wei Yongjun 
---
  arch/um/drivers/vector_kern.c | 4 +++-
  1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c
index d1d5301..bb83a2d 100644
--- a/arch/um/drivers/vector_kern.c
+++ b/arch/um/drivers/vector_kern.c
@@ -1156,8 +1156,10 @@ static int vector_net_open(struct net_device *dev)
struct vector_device *vdevice;
  
  	spin_lock_irqsave(&vp->lock, flags);

-   if (vp->opened)
+   if (vp->opened) {
+   spin_unlock_irqrestore(&vp->lock, flags);
return -ENXIO;
+   }
vp->opened = true;
spin_unlock_irqrestore(&vp->lock, flags);




--
Anton R. Ivanov

Cambridge Greys Limited, England and Wales company No 10273661
http://www.cambridgegreys.com/



[PATCH -next] um: vector: fix missing unlock on error in vector_net_open()

2018-01-04 Thread Wei Yongjun
Add the missing unlock before return from function vector_net_open()
in the error handling case.

Fixes: ad1f62ab2bd4 ("High Performance UML Vector Network Driver")
Signed-off-by: Wei Yongjun 
---
 arch/um/drivers/vector_kern.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/um/drivers/vector_kern.c b/arch/um/drivers/vector_kern.c
index d1d5301..bb83a2d 100644
--- a/arch/um/drivers/vector_kern.c
+++ b/arch/um/drivers/vector_kern.c
@@ -1156,8 +1156,10 @@ static int vector_net_open(struct net_device *dev)
struct vector_device *vdevice;
 
spin_lock_irqsave(&vp->lock, flags);
-   if (vp->opened)
+   if (vp->opened) {
+   spin_unlock_irqrestore(&vp->lock, flags);
return -ENXIO;
+   }
vp->opened = true;
spin_unlock_irqrestore(&vp->lock, flags);