From: Feng Tang Date: Wed, 9 Oct 2013 02:39:16 +0000 (+0800) Subject: serial: mrst_max3110: Check the irq number before enable/disabe irq in PM hooks X-Git-Tag: v3.13-rc1~171^2~38 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=09238443c61e58f7fac8a3892b14b1bee40b4316;p=~emulex%2Finfiniband.git serial: mrst_max3110: Check the irq number before enable/disabe irq in PM hooks We should check the validity of the irq number before calling disable_irq() and enable_irq() in the suspend/resume function, as "max->irq == 0" means the irq is not enabled for max3110 device, otherwise it will hurt device whose irq number is really 0. Signed-off-by: Feng Tang Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/tty/serial/mrst_max3110.c b/drivers/tty/serial/mrst_max3110.c index a67e7081f00..ee77e7366ed 100644 --- a/drivers/tty/serial/mrst_max3110.c +++ b/drivers/tty/serial/mrst_max3110.c @@ -749,7 +749,8 @@ static int serial_m3110_suspend(struct device *dev) struct spi_device *spi = to_spi_device(dev); struct uart_max3110 *max = spi_get_drvdata(spi); - disable_irq(max->irq); + if (max->irq > 0) + disable_irq(max->irq); uart_suspend_port(&serial_m3110_reg, &max->port); max3110_out(max, max->cur_conf | WC_SW_SHDI); return 0; @@ -762,7 +763,8 @@ static int serial_m3110_resume(struct device *dev) max3110_out(max, max->cur_conf); uart_resume_port(&serial_m3110_reg, &max->port); - enable_irq(max->irq); + if (max->irq > 0) + enable_irq(max->irq); return 0; }