diff options
-rw-r--r-- | drivers/scsi/advansys.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c index 306bec355e45..9b3303b64113 100644 --- a/drivers/scsi/advansys.c +++ b/drivers/scsi/advansys.c | |||
@@ -4403,7 +4403,7 @@ advansys_detect(struct scsi_host_template *tpnt) | |||
4403 | ASC_DBG1(1, | 4403 | ASC_DBG1(1, |
4404 | "advansys_detect: probing I/O port 0x%x...\n", | 4404 | "advansys_detect: probing I/O port 0x%x...\n", |
4405 | iop); | 4405 | iop); |
4406 | if (check_region(iop, ASC_IOADR_GAP) != 0) { | 4406 | if (!request_region(iop, ASC_IOADR_GAP, "advansys")){ |
4407 | printk( | 4407 | printk( |
4408 | "AdvanSys SCSI: specified I/O Port 0x%X is busy\n", iop); | 4408 | "AdvanSys SCSI: specified I/O Port 0x%X is busy\n", iop); |
4409 | /* Don't try this I/O port twice. */ | 4409 | /* Don't try this I/O port twice. */ |
@@ -4413,6 +4413,7 @@ advansys_detect(struct scsi_host_template *tpnt) | |||
4413 | printk( | 4413 | printk( |
4414 | "AdvanSys SCSI: specified I/O Port 0x%X has no adapter\n", iop); | 4414 | "AdvanSys SCSI: specified I/O Port 0x%X has no adapter\n", iop); |
4415 | /* Don't try this I/O port twice. */ | 4415 | /* Don't try this I/O port twice. */ |
4416 | release_region(iop, ASC_IOADR_GAP); | ||
4416 | asc_ioport[ioport] = 0; | 4417 | asc_ioport[ioport] = 0; |
4417 | goto ioport_try_again; | 4418 | goto ioport_try_again; |
4418 | } else { | 4419 | } else { |
@@ -4431,6 +4432,7 @@ advansys_detect(struct scsi_host_template *tpnt) | |||
4431 | * 'ioport' past this board. | 4432 | * 'ioport' past this board. |
4432 | */ | 4433 | */ |
4433 | ioport++; | 4434 | ioport++; |
4435 | release_region(iop, ASC_IOADR_GAP); | ||
4434 | goto ioport_try_again; | 4436 | goto ioport_try_again; |
4435 | } | 4437 | } |
4436 | } | 4438 | } |
@@ -9740,13 +9742,14 @@ AscSearchIOPortAddr11( | |||
9740 | } | 9742 | } |
9741 | for (; i < ASC_IOADR_TABLE_MAX_IX; i++) { | 9743 | for (; i < ASC_IOADR_TABLE_MAX_IX; i++) { |
9742 | iop_base = _asc_def_iop_base[i]; | 9744 | iop_base = _asc_def_iop_base[i]; |
9743 | if (check_region(iop_base, ASC_IOADR_GAP) != 0) { | 9745 | if (!request_region(iop_base, ASC_IOADR_GAP, "advansys")){ |
9744 | ASC_DBG1(1, | 9746 | ASC_DBG1(1, |
9745 | "AscSearchIOPortAddr11: check_region() failed I/O port 0x%x\n", | 9747 | "AscSearchIOPortAddr11: check_region() failed I/O port 0x%x\n", |
9746 | iop_base); | 9748 | iop_base); |
9747 | continue; | 9749 | continue; |
9748 | } | 9750 | } |
9749 | ASC_DBG1(1, "AscSearchIOPortAddr11: probing I/O port 0x%x\n", iop_base); | 9751 | ASC_DBG1(1, "AscSearchIOPortAddr11: probing I/O port 0x%x\n", iop_base); |
9752 | release_region(iop_base, ASC_IOADR_GAP); | ||
9750 | if (AscFindSignature(iop_base)) { | 9753 | if (AscFindSignature(iop_base)) { |
9751 | return (iop_base); | 9754 | return (iop_base); |
9752 | } | 9755 | } |