diff options
author | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2012-05-23 20:53:11 +0400 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2012-05-24 22:15:29 +0400 |
commit | 2e5ad6b9c45d43cc4e7b8ac5ded1c55a7c4a3893 (patch) | |
tree | e6d9527fcf3e227e8a3f8e889bcce00fc11b46c4 /drivers/tty/hvc/hvc_xen.c | |
parent | 68c2c39a76b094e9b2773e5846424ea674bf2c46 (diff) | |
download | linux-2e5ad6b9c45d43cc4e7b8ac5ded1c55a7c4a3893.tar.xz |
xen/hvc: Collapse error logic.
All of the error paths are doing the same logic. In which
case we might as well collapse them in one path.
CC: stable@kernel.org
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'drivers/tty/hvc/hvc_xen.c')
-rw-r--r-- | drivers/tty/hvc/hvc_xen.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c index d3d91dae065c..afc7fc27aa52 100644 --- a/drivers/tty/hvc/hvc_xen.c +++ b/drivers/tty/hvc/hvc_xen.c @@ -216,22 +216,16 @@ static int xen_hvm_console_init(void) return 0; r = hvm_get_parameter(HVM_PARAM_CONSOLE_EVTCHN, &v); - if (r < 0) { - kfree(info); - return -ENODEV; - } + if (r < 0) + goto err; info->evtchn = v; hvm_get_parameter(HVM_PARAM_CONSOLE_PFN, &v); - if (r < 0) { - kfree(info); - return -ENODEV; - } + if (r < 0) + goto err; mfn = v; info->intf = ioremap(mfn << PAGE_SHIFT, PAGE_SIZE); - if (info->intf == NULL) { - kfree(info); - return -ENODEV; - } + if (info->intf == NULL) + goto err; info->vtermno = HVC_COOKIE; spin_lock(&xencons_lock); @@ -239,6 +233,9 @@ static int xen_hvm_console_init(void) spin_unlock(&xencons_lock); return 0; +err: + kfree(info); + return -ENODEV; } static int xen_pv_console_init(void) |