[PATCH 048/141] staging: unisys: visorchipset: parser_init_guts(): Localize memregion usage

Benjamin Romer benjamin.romer at unisys.com
Tue May 5 22:36:25 UTC 2015


From: Jes Sorensen <Jes.Sorensen at redhat.com>

Signed-off-by: Jes Sorensen <Jes.Sorensen at redhat.com>
Signed-off-by: Benjamin Romer <benjamin.romer at unisys.com>
---
 drivers/staging/unisys/visorbus/visorchipset.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c
index 5bf8266..2be8514 100644
--- a/drivers/staging/unisys/visorbus/visorchipset.c
+++ b/drivers/staging/unisys/visorbus/visorchipset.c
@@ -399,6 +399,7 @@ parser_init_guts(u64 addr, u32 bytes, bool local,
 	struct parser_context *ctx = NULL;
 	struct memregion *rgn = NULL;
 	struct spar_controlvm_parameters_header *phdr = NULL;
+	int cnt;
 
 	if (retry)
 		*retry = false;
@@ -442,7 +443,10 @@ parser_init_guts(u64 addr, u32 bytes, bool local,
 			rc = NULL;
 			goto cleanup;
 		}
-		if (visor_memregion_read(rgn, 0, ctx->data, bytes) < 0) {
+		cnt = visor_memregion_read(rgn, 0, ctx->data, bytes);
+		visor_memregion_destroy(rgn);
+
+		if (cnt < 0) {
 			rc = NULL;
 			goto cleanup;
 		}
@@ -469,10 +473,6 @@ parser_init_guts(u64 addr, u32 bytes, bool local,
 
 	rc = ctx;
 cleanup:
-	if (rgn) {
-		visor_memregion_destroy(rgn);
-		rgn = NULL;
-	}
 	if (rc) {
 		controlvm_payload_bytes_buffered += ctx->param_bytes;
 	} else {
-- 
2.1.4



More information about the devel mailing list