[v3,1/4] power: fix invalid socket indicator value

Message ID 20190321105506.6656-2-marcinx.hajkowski@intel.com
State Superseded, archived
Delegated to: Thomas Monjalon
Headers show
Series
  • bidirect guest channel
Related show

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS
ci/Intel-compilation success Compilation OK

Commit Message

Hajkowski March 21, 2019, 10:55 a.m.
From: Marcin Hajkowski <marcinx.hajkowski@intel.com>

Currently 0 is being used for not connected slot indication.
This is not consistent with linux doc which identifies 0 as valid
(connected) slot, thus modification was done to change it.

Fixes: cd0d5547 ("power: vm communication channels in guest")
Cc: stable@dpdk.org

Signed-off-by: Marcin Hajkowski <marcinx.hajkowski@intel.com>
---
 lib/librte_power/guest_channel.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Comments

Maxime Coquelin March 22, 2019, 10:56 a.m. | #1
On 3/21/19 11:55 AM, Hajkowski wrote:
> From: Marcin Hajkowski <marcinx.hajkowski@intel.com>
> 
> Currently 0 is being used for not connected slot indication.
> This is not consistent with linux doc which identifies 0 as valid
> (connected) slot, thus modification was done to change it.
> 
> Fixes: cd0d5547 ("power: vm communication channels in guest")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Marcin Hajkowski <marcinx.hajkowski@intel.com>
> ---
>   lib/librte_power/guest_channel.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/lib/librte_power/guest_channel.c b/lib/librte_power/guest_channel.c
> index c17ea46b4..9cf7d2cb2 100644
> --- a/lib/librte_power/guest_channel.c
> +++ b/lib/librte_power/guest_channel.c
> @@ -19,7 +19,7 @@
>   
>   #define RTE_LOGTYPE_GUEST_CHANNEL RTE_LOGTYPE_USER1
>   
> -static int global_fds[RTE_MAX_LCORE];
> +static int global_fds[RTE_MAX_LCORE] = { [0 ... RTE_MAX_LCORE-1] = -1 };
>   
>   int
>   guest_channel_host_connect(const char *path, unsigned int lcore_id)
> @@ -35,7 +35,7 @@ guest_channel_host_connect(const char *path, unsigned int lcore_id)
>   		return -1;
>   	}
>   	/* check if path is already open */
> -	if (global_fds[lcore_id] != 0) {
> +	if (global_fds[lcore_id] != -1) {
>   		RTE_LOG(ERR, GUEST_CHANNEL, "Channel(%u) is already open with fd %d\n",
>   				lcore_id, global_fds[lcore_id]);
>   		return -1;
> @@ -84,7 +84,7 @@ guest_channel_host_connect(const char *path, unsigned int lcore_id)
>   	return 0;
>   error:
>   	close(fd);
> -	global_fds[lcore_id] = 0;
> +	global_fds[lcore_id] = -1;
>   	return -1;
>   }
>   
> @@ -100,7 +100,7 @@ guest_channel_send_msg(struct channel_packet *pkt, unsigned int lcore_id)
>   		return -1;
>   	}
>   
> -	if (global_fds[lcore_id] == 0) {
> +	if (global_fds[lcore_id] < 0) {
>   		RTE_LOG(ERR, GUEST_CHANNEL, "Channel is not connected\n");
>   		return -1;
>   	}
> @@ -134,8 +134,8 @@ guest_channel_host_disconnect(unsigned int lcore_id)
>   				lcore_id, RTE_MAX_LCORE-1);
>   		return;
>   	}
> -	if (global_fds[lcore_id] == 0)
> +	if (global_fds[lcore_id] < 0)
>   		return;
>   	close(global_fds[lcore_id]);
> -	global_fds[lcore_id] = 0;
> +	global_fds[lcore_id] = -1;
>   }
> 

Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Burakov, Anatoly March 27, 2019, 2:03 p.m. | #2
On 21-Mar-19 10:55 AM, Hajkowski wrote:
> From: Marcin Hajkowski <marcinx.hajkowski@intel.com>
> 
> Currently 0 is being used for not connected slot indication.
> This is not consistent with linux doc which identifies 0 as valid
> (connected) slot, thus modification was done to change it.
> 
> Fixes: cd0d5547 ("power: vm communication channels in guest")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Marcin Hajkowski <marcinx.hajkowski@intel.com>
> ---
>   lib/librte_power/guest_channel.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/lib/librte_power/guest_channel.c b/lib/librte_power/guest_channel.c
> index c17ea46b4..9cf7d2cb2 100644
> --- a/lib/librte_power/guest_channel.c
> +++ b/lib/librte_power/guest_channel.c

Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>

Patch

diff --git a/lib/librte_power/guest_channel.c b/lib/librte_power/guest_channel.c
index c17ea46b4..9cf7d2cb2 100644
--- a/lib/librte_power/guest_channel.c
+++ b/lib/librte_power/guest_channel.c
@@ -19,7 +19,7 @@ 
 
 #define RTE_LOGTYPE_GUEST_CHANNEL RTE_LOGTYPE_USER1
 
-static int global_fds[RTE_MAX_LCORE];
+static int global_fds[RTE_MAX_LCORE] = { [0 ... RTE_MAX_LCORE-1] = -1 };
 
 int
 guest_channel_host_connect(const char *path, unsigned int lcore_id)
@@ -35,7 +35,7 @@  guest_channel_host_connect(const char *path, unsigned int lcore_id)
 		return -1;
 	}
 	/* check if path is already open */
-	if (global_fds[lcore_id] != 0) {
+	if (global_fds[lcore_id] != -1) {
 		RTE_LOG(ERR, GUEST_CHANNEL, "Channel(%u) is already open with fd %d\n",
 				lcore_id, global_fds[lcore_id]);
 		return -1;
@@ -84,7 +84,7 @@  guest_channel_host_connect(const char *path, unsigned int lcore_id)
 	return 0;
 error:
 	close(fd);
-	global_fds[lcore_id] = 0;
+	global_fds[lcore_id] = -1;
 	return -1;
 }
 
@@ -100,7 +100,7 @@  guest_channel_send_msg(struct channel_packet *pkt, unsigned int lcore_id)
 		return -1;
 	}
 
-	if (global_fds[lcore_id] == 0) {
+	if (global_fds[lcore_id] < 0) {
 		RTE_LOG(ERR, GUEST_CHANNEL, "Channel is not connected\n");
 		return -1;
 	}
@@ -134,8 +134,8 @@  guest_channel_host_disconnect(unsigned int lcore_id)
 				lcore_id, RTE_MAX_LCORE-1);
 		return;
 	}
-	if (global_fds[lcore_id] == 0)
+	if (global_fds[lcore_id] < 0)
 		return;
 	close(global_fds[lcore_id]);
-	global_fds[lcore_id] = 0;
+	global_fds[lcore_id] = -1;
 }