aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2005-09-22 18:46:29 +0000
committerWarner Losh <imp@FreeBSD.org>2005-09-22 18:46:29 +0000
commitb7a9396a75e89182fa78b001f535b83da3c24771 (patch)
tree050185f7a9d189908a2dc31ee193a2b7687ffc7d
parente21d20fc4ca5c3f127d7890066f24646404a4fe9 (diff)
downloadsrc-b7a9396a75e89182fa78b001f535b83da3c24771.tar.gz
src-b7a9396a75e89182fa78b001f535b83da3c24771.zip
Forgot to commit ata-card fixes last night. Fix gleb's attempt to do
the right thing by merging in the changes I neglected to commit last night.
Notes
Notes: svn path=/head/; revision=150481
-rw-r--r--sys/dev/ata/ata-card.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/dev/ata/ata-card.c b/sys/dev/ata/ata-card.c
index f3fd0a0d6c53..cc7b9b9f3ef5 100644
--- a/sys/dev/ata/ata-card.c
+++ b/sys/dev/ata/ata-card.c
@@ -91,13 +91,13 @@ ata_pccard_attach(device_t dev)
{
struct ata_channel *ch = device_get_softc(dev);
struct resource *io, *ctlio;
- int i, rid;
+ int i, rid, err;
/* allocate the io range to get start and length */
rid = ATA_IOADDR_RID;
if (!(io = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid, 0, ~0,
ATA_IOSIZE, RF_ACTIVE)))
- return ENXIO;
+ return (ENXIO);
/* setup the resource vectors */
for (i = ATA_DATA; i <= ATA_COMMAND; i++) {
@@ -121,7 +121,7 @@ ata_pccard_attach(device_t dev)
bus_release_resource(dev, SYS_RES_IOPORT, ATA_IOADDR_RID, io);
for (i = ATA_DATA; i < ATA_MAX_RES; i++)
ch->r_io[i].res = NULL;
- return ENXIO;
+ return (ENXIO);
}
ch->r_io[ATA_CONTROL].res = ctlio;
ch->r_io[ATA_CONTROL].offset = 0;
@@ -132,7 +132,10 @@ ata_pccard_attach(device_t dev)
ch->unit = 0;
ch->flags |= (ATA_USE_16BIT | ATA_NO_SLAVE);
ata_generic_hw(dev);
- return ata_probe(dev);
+ err = ata_probe(dev);
+ if (err)
+ return (err);
+ return (ata_attach(dev));
}
static int