From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752262AbdFLIm4 (ORCPT ); Mon, 12 Jun 2017 04:42:56 -0400 Received: from regular1.263xmail.com ([211.150.99.138]:37295 "EHLO regular1.263xmail.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751957AbdFLImz (ORCPT ); Mon, 12 Jun 2017 04:42:55 -0400 X-263anti-spam: KSV:0; X-MAIL-GRAY: 0 X-MAIL-DELIVERY: 1 X-KSVirus-check: 0 X-ABS-CHECKED: 4 X-RL-SENDER: jeffy.chen@rock-chips.com X-FST-TO: linux-kernel@vger.kernel.org X-SENDER-IP: 103.29.142.67 X-LOGIN-NAME: jeffy.chen@rock-chips.com X-UNIQUE-TAG: X-ATTACHMENT-NUM: 0 X-DNS-TYPE: 0 From: Jeffy Chen To: linux-kernel@vger.kernel.org, lee.jones@linaro.org Cc: briannorris@chromium.org, dtor@chromium.org, dianders@chromium.org, Jeffy Chen Subject: [PATCH v2] mfd: cros_ec: Free IRQ on exit Date: Mon, 12 Jun 2017 16:42:46 +0800 Message-Id: <1497256966-29082-1-git-send-email-jeffy.chen@rock-chips.com> X-Mailer: git-send-email 2.1.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently we request the irq when probing, but never free it. So after unbind ec driver, this irq will be left requested, which would break the next bind: [ 2683.338437] genirq: Flags mismatch irq 64. 00002008 (chromeos-ec) vs. 00002008 (chromeos-ec) [ 2683.338591] cros-ec-spi spi5.0: request irq 64: error -16 [ 2683.338610] cros-ec-spi spi5.0: cannot register EC [ 2683.338656] cros-ec-spi: probe of spi5.0 failed with error -16 Signed-off-by: Jeffy Chen --- Changes in v2: Improve the commit message. drivers/mfd/cros_ec.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/mfd/cros_ec.c b/drivers/mfd/cros_ec.c index e31ac60..dc6ce90 100644 --- a/drivers/mfd/cros_ec.c +++ b/drivers/mfd/cros_ec.c @@ -183,6 +183,9 @@ int cros_ec_remove(struct cros_ec_device *ec_dev) cros_ec_acpi_remove_gpe_handler(); + if (ec_dev->irq) + free_irq(ec_dev->irq, ec_dev); + return 0; } EXPORT_SYMBOL(cros_ec_remove); -- 2.1.4