From: Jes Sorensen Date: Tue, 5 May 2015 22:36:25 +0000 (-0400) Subject: staging: unisys: visorchipset: parser_init_guts(): Localize memregion usage X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=712c03dcab8ee2ff82b280a517ba4f0adc9a54b5;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git staging: unisys: visorchipset: parser_init_guts(): Localize memregion usage Signed-off-by: Jes Sorensen Signed-off-by: Benjamin Romer Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c index 5bf8266f0663..2be8514d7b18 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 {