diff mbox series

core/ipmi: Remove redundant variable

Message ID 20191021080230.5307-1-hegdevasant@linux.vnet.ibm.com
State Accepted
Headers show
Series core/ipmi: Remove redundant variable | expand

Checks

Context Check Description
snowpatch_ozlabs/apply_patch success Successfully applied on branch master (d75e82dbfbb9443efeb3f9a5921ac23605aab469)
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot success Test snowpatch/job/snowpatch-skiboot on branch master
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot-dco success Signed-off-by present

Commit Message

Vasant Hegde Oct. 21, 2019, 8:02 a.m. UTC
Previous commit d75e82dbf introduced unnecessary variable/check.
Remove that and add barrier after setting sync_msg to NULL.

Cc: Oliver O'Halloran <oohall@gmail.com>
Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Fixes: d75e82dbf (core/ipmi: Fix use-after-free)
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
---
 core/ipmi.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

Comments

Oliver O'Halloran Oct. 30, 2019, 6:26 a.m. UTC | #1
On Mon, Oct 21, 2019 at 7:02 PM Vasant Hegde
<hegdevasant@linux.vnet.ibm.com> wrote:
>
> Previous commit d75e82dbf introduced unnecessary variable/check.
> Remove that and add barrier after setting sync_msg to NULL.
>
> Cc: Oliver O'Halloran <oohall@gmail.com>
> Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
> Fixes: d75e82dbf (core/ipmi: Fix use-after-free)
> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>

merged as of a0c996e432bc

> ---
>  core/ipmi.c | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/core/ipmi.c b/core/ipmi.c
> index ab2931bc4..f32adb33f 100644
> --- a/core/ipmi.c
> +++ b/core/ipmi.c
> @@ -126,8 +126,6 @@ int ipmi_dequeue_msg(struct ipmi_msg *msg)
>
>  void ipmi_cmd_done(uint8_t cmd, uint8_t netfn, uint8_t cc, struct ipmi_msg *msg)
>  {
> -       bool clr_sync_msg = false;
> -
>         msg->cc = cc;
>         if (msg->cmd != cmd) {
>                 prerror("IPMI: Incorrect cmd 0x%02x in response\n", cmd);
> @@ -140,10 +138,6 @@ void ipmi_cmd_done(uint8_t cmd, uint8_t netfn, uint8_t cc, struct ipmi_msg *msg)
>         }
>         msg->netfn = netfn;
>
> -       if (msg == sync_msg)
> -               clr_sync_msg = true;
> -
> -
>         if (cc != IPMI_CC_NO_ERROR) {
>                 prlog(PR_DEBUG, "IPMI: Got error response. cmd=0x%x, netfn=0x%x,"
>                       " rc=0x%02x\n", msg->cmd, msg->netfn >> 2, msg->cc);
> @@ -157,8 +151,10 @@ void ipmi_cmd_done(uint8_t cmd, uint8_t netfn, uint8_t cc, struct ipmi_msg *msg)
>            completion functions. */
>
>         /* If this is a synchronous message flag that we are done */
> -       if (clr_sync_msg)
> +       if (msg == sync_msg) {
>                 sync_msg = NULL;
> +               barrier();
> +       }
>  }
>
>  void ipmi_queue_msg_sync(struct ipmi_msg *msg)
> --
> 2.21.0
>
diff mbox series

Patch

diff --git a/core/ipmi.c b/core/ipmi.c
index ab2931bc4..f32adb33f 100644
--- a/core/ipmi.c
+++ b/core/ipmi.c
@@ -126,8 +126,6 @@  int ipmi_dequeue_msg(struct ipmi_msg *msg)
 
 void ipmi_cmd_done(uint8_t cmd, uint8_t netfn, uint8_t cc, struct ipmi_msg *msg)
 {
-	bool clr_sync_msg = false;
-
 	msg->cc = cc;
 	if (msg->cmd != cmd) {
 		prerror("IPMI: Incorrect cmd 0x%02x in response\n", cmd);
@@ -140,10 +138,6 @@  void ipmi_cmd_done(uint8_t cmd, uint8_t netfn, uint8_t cc, struct ipmi_msg *msg)
 	}
 	msg->netfn = netfn;
 
-	if (msg == sync_msg)
-		clr_sync_msg = true;
-
-
 	if (cc != IPMI_CC_NO_ERROR) {
 		prlog(PR_DEBUG, "IPMI: Got error response. cmd=0x%x, netfn=0x%x,"
 		      " rc=0x%02x\n", msg->cmd, msg->netfn >> 2, msg->cc);
@@ -157,8 +151,10 @@  void ipmi_cmd_done(uint8_t cmd, uint8_t netfn, uint8_t cc, struct ipmi_msg *msg)
 	   completion functions. */
 
 	/* If this is a synchronous message flag that we are done */
-	if (clr_sync_msg)
+	if (msg == sync_msg) {
 		sync_msg = NULL;
+		barrier();
+	}
 }
 
 void ipmi_queue_msg_sync(struct ipmi_msg *msg)