Re: [PATCH 1/5] um: port: Move an assignment for the variable "fd" in port_wait()

2017-01-18 Thread Jeff Dike
On Wed, Jan 18, 2017 at 10:56:17PM +0100, SF Markus Elfring wrote:
> diff --git a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c
> index 40ca5cc275e9..b2bbda21c5f3 100644
> --- a/arch/um/drivers/port_kern.c
> +++ b/arch/um/drivers/port_kern.c
> @@ -230,10 +230,10 @@ int port_wait(void *data)
>  
>   atomic_inc(>wait_count);
>   while (1) {
> - fd = -ERESTARTSYS;
> - if (wait_for_completion_interruptible(>done))
> + if (wait_for_completion_interruptible(>done)) {
> + fd = -ERESTARTSYS;
>   goto out;
> -
> + }
>   spin_lock(>lock);
>  
>   conn = list_entry(port->connections.next, struct connection,
> -- 
> 2.11.0
>

The current code is pretty standard kernel coding style.  The inline
fd = -ERESTARTSYS;
is likely free, or close to it, and I believe that having anything
besides a goto inside the if could make it significantly more
expensive.

Jeff

-- 
Jeff Dike
AddToIt
978-254-0789 (o)
978-394-8986 (c)


Re: [PATCH 1/5] um: port: Move an assignment for the variable "fd" in port_wait()

2017-01-18 Thread Jeff Dike
On Wed, Jan 18, 2017 at 10:56:17PM +0100, SF Markus Elfring wrote:
> diff --git a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c
> index 40ca5cc275e9..b2bbda21c5f3 100644
> --- a/arch/um/drivers/port_kern.c
> +++ b/arch/um/drivers/port_kern.c
> @@ -230,10 +230,10 @@ int port_wait(void *data)
>  
>   atomic_inc(>wait_count);
>   while (1) {
> - fd = -ERESTARTSYS;
> - if (wait_for_completion_interruptible(>done))
> + if (wait_for_completion_interruptible(>done)) {
> + fd = -ERESTARTSYS;
>   goto out;
> -
> + }
>   spin_lock(>lock);
>  
>   conn = list_entry(port->connections.next, struct connection,
> -- 
> 2.11.0
>

The current code is pretty standard kernel coding style.  The inline
fd = -ERESTARTSYS;
is likely free, or close to it, and I believe that having anything
besides a goto inside the if could make it significantly more
expensive.

Jeff

-- 
Jeff Dike
AddToIt
978-254-0789 (o)
978-394-8986 (c)


[PATCH 1/5] um: port: Move an assignment for the variable "fd" in port_wait()

2017-01-18 Thread SF Markus Elfring
From: Markus Elfring 
Date: Wed, 18 Jan 2017 21:40:29 +0100

A local variable was set to an error code in one case before a concrete
error situation was detected. Thus move the corresponding assignment into
an if branch to indicate a software failure there.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring 
---
 arch/um/drivers/port_kern.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c
index 40ca5cc275e9..b2bbda21c5f3 100644
--- a/arch/um/drivers/port_kern.c
+++ b/arch/um/drivers/port_kern.c
@@ -230,10 +230,10 @@ int port_wait(void *data)
 
atomic_inc(>wait_count);
while (1) {
-   fd = -ERESTARTSYS;
-   if (wait_for_completion_interruptible(>done))
+   if (wait_for_completion_interruptible(>done)) {
+   fd = -ERESTARTSYS;
goto out;
-
+   }
spin_lock(>lock);
 
conn = list_entry(port->connections.next, struct connection,
-- 
2.11.0



[PATCH 1/5] um: port: Move an assignment for the variable "fd" in port_wait()

2017-01-18 Thread SF Markus Elfring
From: Markus Elfring 
Date: Wed, 18 Jan 2017 21:40:29 +0100

A local variable was set to an error code in one case before a concrete
error situation was detected. Thus move the corresponding assignment into
an if branch to indicate a software failure there.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring 
---
 arch/um/drivers/port_kern.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c
index 40ca5cc275e9..b2bbda21c5f3 100644
--- a/arch/um/drivers/port_kern.c
+++ b/arch/um/drivers/port_kern.c
@@ -230,10 +230,10 @@ int port_wait(void *data)
 
atomic_inc(>wait_count);
while (1) {
-   fd = -ERESTARTSYS;
-   if (wait_for_completion_interruptible(>done))
+   if (wait_for_completion_interruptible(>done)) {
+   fd = -ERESTARTSYS;
goto out;
-
+   }
spin_lock(>lock);
 
conn = list_entry(port->connections.next, struct connection,
-- 
2.11.0