summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-05-23 12:53:11 -0400
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2012-05-24 14:15:29 -0400
commit2e5ad6b9c45d43cc4e7b8ac5ded1c55a7c4a3893 (patch)
treee6d9527fcf3e227e8a3f8e889bcce00fc11b46c4
parent68c2c39a76b094e9b2773e5846424ea674bf2c46 (diff)
downloadlinux-3.10-2e5ad6b9c45d43cc4e7b8ac5ded1c55a7c4a3893.tar.gz
linux-3.10-2e5ad6b9c45d43cc4e7b8ac5ded1c55a7c4a3893.tar.bz2
linux-3.10-2e5ad6b9c45d43cc4e7b8ac5ded1c55a7c4a3893.zip
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>
-rw-r--r--drivers/tty/hvc/hvc_xen.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
index d3d91dae065..afc7fc27aa5 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)