mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-19 03:37:55 +00:00
staging: unisys: visorbus: cleanup gotos in parser_init_byte_stream
Clean up the goto in parser_init_byte_stream and make the goto section the error case. Signed-off-by: David Kershner <david.kershner@unisys.com> Signed-off-by: Timothy Sell <timothy.sell@unisys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
dde29996cd
commit
d79f56b599
@ -359,8 +359,7 @@ static struct parser_context *
|
||||
parser_init_byte_stream(u64 addr, u32 bytes, bool local, bool *retry)
|
||||
{
|
||||
int allocbytes = sizeof(struct parser_context) + bytes;
|
||||
struct parser_context *rc = NULL;
|
||||
struct parser_context *ctx = NULL;
|
||||
struct parser_context *ctx;
|
||||
|
||||
if (retry)
|
||||
*retry = false;
|
||||
@ -374,15 +373,13 @@ parser_init_byte_stream(u64 addr, u32 bytes, bool local, bool *retry)
|
||||
> MAX_CONTROLVM_PAYLOAD_BYTES) {
|
||||
if (retry)
|
||||
*retry = true;
|
||||
rc = NULL;
|
||||
goto cleanup;
|
||||
return NULL;
|
||||
}
|
||||
ctx = kzalloc(allocbytes, GFP_KERNEL | __GFP_NORETRY);
|
||||
if (!ctx) {
|
||||
if (retry)
|
||||
*retry = true;
|
||||
rc = NULL;
|
||||
goto cleanup;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ctx->allocbytes = allocbytes;
|
||||
@ -393,35 +390,27 @@ parser_init_byte_stream(u64 addr, u32 bytes, bool local, bool *retry)
|
||||
if (local) {
|
||||
void *p;
|
||||
|
||||
if (addr > virt_to_phys(high_memory - 1)) {
|
||||
rc = NULL;
|
||||
goto cleanup;
|
||||
}
|
||||
if (addr > virt_to_phys(high_memory - 1))
|
||||
goto err_finish_ctx;
|
||||
p = __va((unsigned long)(addr));
|
||||
memcpy(ctx->data, p, bytes);
|
||||
} else {
|
||||
void *mapping = memremap(addr, bytes, MEMREMAP_WB);
|
||||
|
||||
if (!mapping) {
|
||||
rc = NULL;
|
||||
goto cleanup;
|
||||
}
|
||||
if (!mapping)
|
||||
goto err_finish_ctx;
|
||||
memcpy(ctx->data, mapping, bytes);
|
||||
memunmap(mapping);
|
||||
}
|
||||
|
||||
ctx->byte_stream = true;
|
||||
rc = ctx;
|
||||
cleanup:
|
||||
if (rc) {
|
||||
controlvm_payload_bytes_buffered += ctx->param_bytes;
|
||||
} else {
|
||||
if (ctx) {
|
||||
parser_done(ctx);
|
||||
ctx = NULL;
|
||||
}
|
||||
}
|
||||
return rc;
|
||||
controlvm_payload_bytes_buffered += ctx->param_bytes;
|
||||
|
||||
return ctx;
|
||||
|
||||
err_finish_ctx:
|
||||
parser_done(ctx);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static uuid_le
|
||||
|
Loading…
x
Reference in New Issue
Block a user