[PATCH] misc: ibmvsm: Fix wrong assignment of return code

Subsystems: char and misc drivers, ibm power virtual management channel driver, the rest

STALE2918d REVIEWED: 1 (0M)

1 review trailer.

3 messages, 3 authors, 2018-08-07 · open the first message on its own page

[PATCH] misc: ibmvsm: Fix wrong assignment of return code

From: Bryant G. Ly <hidden>
Date: 2018-08-06 13:31:11

From: "Bryant G. Ly" <redacted>

Currently the assignment is flipped and rc is always 0.

Signed-off-by: Bryant G. Ly <redacted>
Reviewed-by: Bradley Warrum <redacted>
---
 drivers/misc/ibmvmc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/misc/ibmvmc.c b/drivers/misc/ibmvmc.c
index 8f82bb9..b8aaa68 100644
--- a/drivers/misc/ibmvmc.c
+++ b/drivers/misc/ibmvmc.c
@@ -2131,7 +2131,7 @@ static int ibmvmc_init_crq_queue(struct crq_server_adapter *adapter)
 	retrc = plpar_hcall_norets(H_REG_CRQ,
 				   vdev->unit_address,
 				   queue->msg_token, PAGE_SIZE);
-	retrc = rc;
+	rc = retrc;
 
 	if (rc == H_RESOURCE)
 		rc = ibmvmc_reset_crq_queue(adapter);
-- 
2.7.2

Re: [PATCH] misc: ibmvsm: Fix wrong assignment of return code

From: Michael Ellerman <hidden>
Date: 2018-08-07 12:28:51

"Bryant G. Ly" [off-list ref] writes:
From: "Bryant G. Ly" <redacted>

Currently the assignment is flipped and rc is always 0.
If you'd left rc uninitialised at the start of the function the compiler
would have caught it for you.

And what is the consequence of the bug? Nothing, complete system crash,
subtle data corruption?

Also this should be tagged:

Fixes: 0eca353e7ae7 ("misc: IBM Virtual Management Channel Driver (VMC)")

cheers
quoted hunk
diff --git a/drivers/misc/ibmvmc.c b/drivers/misc/ibmvmc.c
index 8f82bb9..b8aaa68 100644
--- a/drivers/misc/ibmvmc.c
+++ b/drivers/misc/ibmvmc.c
@@ -2131,7 +2131,7 @@ static int ibmvmc_init_crq_queue(struct crq_server_adapter *adapter)
 	retrc = plpar_hcall_norets(H_REG_CRQ,
 				   vdev->unit_address,
 				   queue->msg_token, PAGE_SIZE);
-	retrc = rc;
+	rc = retrc;
 
 	if (rc == H_RESOURCE)
 		rc = ibmvmc_reset_crq_queue(adapter);

Re: [PATCH] misc: ibmvsm: Fix wrong assignment of return code

From: Bryant G. Ly <hidden>
Date: 2018-08-07 14:22:14

On 8/7/18 7:28 AM, Michael Ellerman wrote:
"Bryant G. Ly" [off-list ref] writes:
quoted
From: "Bryant G. Ly" <redacted>

Currently the assignment is flipped and rc is always 0.
If you'd left rc uninitialised at the start of the function the compiler
would have caught it for you.

And what is the consequence of the bug? Nothing, complete system crash,
subtle data corruption?
The consequence would be that if the CRQ Registration failed the first time
due to not enough resources, it would never try to reset and try again. 

If it fails due to any other error then it would just fail the sending of the
crq init message, thus it would just wait for the client to init, which would
never happen. 

We would also have a memory leak since in the error case DMA would never get
un-mapped and the message queue never gets freed. 
Also this should be tagged:

Fixes: 0eca353e7ae7 ("misc: IBM Virtual Management Channel Driver (VMC)")

cheers
Yep, sorry I forgot to add the Fixes:..

-Bryant
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help