summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-pci.c
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2007-02-21 19:03:34 +0000
committersos <sos@FreeBSD.org>2007-02-21 19:03:34 +0000
commita2861c6b3ab6834963fd37e787a02f1316fff16a (patch)
treee0cdcae96603d90f5e63223a29ac8bd01991e248 /sys/dev/ata/ata-pci.c
parentcacf0d22c40108d2bf73286869a50235afa4a913 (diff)
downloadFreeBSD-src-a2861c6b3ab6834963fd37e787a02f1316fff16a.zip
FreeBSD-src-a2861c6b3ab6834963fd37e787a02f1316fff16a.tar.gz
Try again with supporting AHCI chipsets with partly implemented ports.
Diffstat (limited to 'sys/dev/ata/ata-pci.c')
-rw-r--r--sys/dev/ata/ata-pci.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/ata/ata-pci.c b/sys/dev/ata/ata-pci.c
index 1acd68d..3bc6d8f 100644
--- a/sys/dev/ata/ata-pci.c
+++ b/sys/dev/ata/ata-pci.c
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 1998 - 2006 Søren Schmidt <sos@FreeBSD.org>
+ * Copyright (c) 1998 - 2007 Søren Schmidt <sos@FreeBSD.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -568,8 +568,11 @@ ata_pcichannel_attach(device_t dev)
if (ch->dma)
ch->dma->alloc(dev);
- if ((error = ctlr->allocate(dev)))
+ if ((error = ctlr->allocate(dev))) {
+ if (ch->dma)
+ ch->dma->free(dev);
return error;
+ }
return ata_attach(dev);
}
OpenPOWER on IntegriCloud