[PATCH] Char: sx, remove duplicite code

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>
diff --git a/drivers/char/sx.c b/drivers/char/sx.c
index 42427f4..ca6d518 100644
--- a/drivers/char/sx.c
+++ b/drivers/char/sx.c
@@ -2680,28 +2680,16 @@
 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");
 	}