staging: dgap: introduce dgap_free_irq()
authorDaeseok Youn <daeseok.youn@gmail.com>
Fri, 13 Jun 2014 09:21:04 +0000 (18:21 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Jun 2014 22:23:32 +0000 (15:23 -0700)
dgap_free_irq() will free the irq which is requested in
dgap_request_irq().

Signed-off-by: Daeseok Youn <daeseok.youn@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/dgap/dgap.c

index eab8fd5..497e6f3 100644 (file)
@@ -190,6 +190,7 @@ static void dgap_do_conc_load(struct board_t *brd, u8 *uaddr, int len);
 #endif
 static int dgap_after_config_loaded(struct board_t *brd);
 static int dgap_request_irq(struct board_t *brd);
+static void dgap_free_irq(struct board_t *brd);
 
 static void dgap_get_vpd(struct board_t *brd);
 static void dgap_do_reset_board(struct board_t *brd);
@@ -634,8 +635,7 @@ static void dgap_cleanup_board(struct board_t *brd)
        if (!brd || brd->magic != DGAP_BOARD_MAGIC)
                return;
 
-       if (brd->intr_used && brd->irq)
-               free_irq(brd->irq, brd);
+       dgap_free_irq(brd);
 
        tasklet_kill(&brd->helper_tasklet);
 
@@ -816,6 +816,12 @@ static int dgap_request_irq(struct board_t *brd)
        return 0;
 }
 
+static void dgap_free_irq(struct board_t *brd)
+{
+       if (brd->intr_used && brd->irq)
+               free_irq(brd->irq, brd);
+}
+
 static int dgap_firmware_load(struct pci_dev *pdev, int card_type)
 {
        struct board_t *brd = dgap_board[dgap_numboards - 1];