diff options
author | Jiri Slaby <jirislaby@gmail.com> | 2008-10-13 10:34:18 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-13 09:51:39 -0700 |
commit | 1361b7d3592b006574fb3cfeb21a02d520cca315 (patch) | |
tree | eff43bb8794ed26439c7ecf11ad60eae353fb80b | |
parent | 24e6fd4cdc841176ca3713fddc9a02bd128b1191 (diff) |
Char: sx, fix io unmapping
board->base is increased for CF cards after mapping. Use board->base2
for unmapping the region, since it holds the original/correct address.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | drivers/char/sx.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/char/sx.c b/drivers/char/sx.c index c385206f9db5..5b8d7a1aa3e6 100644 --- a/drivers/char/sx.c +++ b/drivers/char/sx.c @@ -2504,7 +2504,7 @@ static void __devexit sx_remove_card(struct sx_board *board, del_timer(&board->timer); if (pdev) { #ifdef CONFIG_PCI - pci_iounmap(pdev, board->base); + pci_iounmap(pdev, board->base2); pci_release_region(pdev, IS_CF_BOARD(board) ? 3 : 2); #endif } else { @@ -2703,7 +2703,7 @@ static int __devinit sx_pci_probe(struct pci_dev *pdev, return 0; err_unmap: - pci_iounmap(pdev, board->base); + pci_iounmap(pdev, board->base2); err_reg: pci_release_region(pdev, reg); err_flag: |