From 70cc7271acd82cdf394d5b195ade41a98a7d645c Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Thu, 7 Feb 2008 00:15:08 -0800 Subject: [PATCH] --- yaml --- r: 83828 b: refs/heads/master c: 0ba137e23e8d8f5cb15778b44be281c5687afc49 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/serial/dz.c | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 1db2a89b760a..5133879edabd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dbab81281d3227af3d8a04aa748c5f41befa5d43 +refs/heads/master: 0ba137e23e8d8f5cb15778b44be281c5687afc49 diff --git a/trunk/drivers/serial/dz.c b/trunk/drivers/serial/dz.c index e1a2e413eb7d..fb6f27302935 100644 --- a/trunk/drivers/serial/dz.c +++ b/trunk/drivers/serial/dz.c @@ -794,18 +794,28 @@ static int __init dz_init(void) dz_reset(&dz_ports[0]); #endif - if (request_irq(dz_ports[0].port.irq, dz_interrupt, - IRQF_DISABLED, "DZ", &dz_ports[0])) - panic("Unable to register DZ interrupt"); - ret = uart_register_driver(&dz_reg); if (ret != 0) - return ret; + goto out; + + ret = request_irq(dz_ports[0].port.irq, dz_interrupt, IRQF_DISABLED, + "DZ", &dz_ports[0]); + if (ret != 0) { + printk(KERN_ERR "dz: Cannot get IRQ %d!\n", + dz_ports[0].port.irq); + goto out_unregister; + } for (i = 0; i < DZ_NB_PORT; i++) uart_add_one_port(&dz_reg, &dz_ports[i].port); return ret; + +out_unregister: + uart_unregister_driver(&dz_reg); + +out: + return ret; } module_init(dz_init);