[PATCH] Char: sx, remove duplicite code
authorJiri Slaby <jirislaby@gmail.com>
Fri, 8 Dec 2006 10:39:03 +0000 (02:39 -0800)
committerLinus Torvalds <torvalds@woody.osdl.org>
Fri, 8 Dec 2006 16:28:58 +0000 (08:28 -0800)
sx_remove_code contents were used twice.  Call this function instead.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/char/sx.c

index 42427f4d2ebd170463665559b352101f265589a2..ca6d51895013a3542f7f1f2fb9eaeebf8e210356 100644 (file)
@@ -2680,28 +2680,16 @@ static int __init sx_init(void)
 static void __exit sx_exit (void)
 {
        int i; 
-       struct sx_board *board;
 
        func_enter();
 #ifdef CONFIG_EISA
        eisa_driver_unregister(&sx_eisadriver);
 #endif
        pci_unregister_driver(&sx_pcidriver);
-       for (i = 0; i < SX_NBOARDS; i++) {
-               board = &boards[i];
-               if (board->flags & SX_BOARD_INITIALIZED) {
-                       sx_dprintk (SX_DEBUG_CLEANUP, "Cleaning up board at %p\n", board->base);
-                       /* The board should stop messing with us.
-                          (actually I mean the interrupt) */
-                       sx_reset (board);
-                       if ((board->irq) && (board->flags & SX_IRQ_ALLOCATED))
-                               free_irq (board->irq, board);
 
-                       /* It is safe/allowed to del_timer a non-active timer */
-                       del_timer (& board->timer);
-                       iounmap(board->base);
-               }
-       }
+       for (i = 0; i < SX_NBOARDS; i++)
+               sx_remove_card(&boards[i]);
+
        if (misc_deregister(&sx_fw_device) < 0) {
                printk (KERN_INFO "sx: couldn't deregister firmware loader device\n");
        }