summaryrefslogtreecommitdiffstats
path: root/sys/dev/cardbus
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2009-03-12 08:42:27 +0000
committerimp <imp@FreeBSD.org>2009-03-12 08:42:27 +0000
commit7837d28e5908f7c0b229017791be541da0d03d78 (patch)
tree4a23a01d53627955ef6a0f4053c93296fc318aba /sys/dev/cardbus
parentb029dd7446bcd80b8679385b392ffa2e4ef44e52 (diff)
downloadFreeBSD-src-7837d28e5908f7c0b229017791be541da0d03d78.zip
FreeBSD-src-7837d28e5908f7c0b229017791be541da0d03d78.tar.gz
Move the deactivation of the device's BAR to before the loop where we
turn deactivate the resources. While this likely doesn't matter, it is likely to be safer.
Diffstat (limited to 'sys/dev/cardbus')
-rw-r--r--sys/dev/cardbus/cardbus.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/dev/cardbus/cardbus.c b/sys/dev/cardbus/cardbus.c
index 75e3339..8a333ad 100644
--- a/sys/dev/cardbus/cardbus.c
+++ b/sys/dev/cardbus/cardbus.c
@@ -289,6 +289,11 @@ cardbus_release_all_resources(device_t cbdev, struct cardbus_devinfo *dinfo)
struct resource_list_entry *rle;
device_t dev;
+ /* Turn off access to resources we're about to free */
+ dev = dinfo->pci.cfg.dev;
+ pci_write_config(dev, PCIR_COMMAND,
+ pci_read_config(dev, PCIR_COMMAND, 2) &
+ ~(PCIM_CMD_MEMEN | PCIM_CMD_PORTEN), 2);
/* Free all allocated resources */
STAILQ_FOREACH(rle, &dinfo->pci.resources, link) {
if (rle->res) {
@@ -298,11 +303,6 @@ cardbus_release_all_resources(device_t cbdev, struct cardbus_devinfo *dinfo)
}
}
resource_list_free(&dinfo->pci.resources);
- /* turn off the card's decoding now that the resources are done */
- dev = dinfo->pci.cfg.dev;
- pci_write_config(dev, PCIR_COMMAND,
- pci_read_config(dev, PCIR_COMMAND, 2) &
- ~(PCIM_CMD_MEMEN | PCIM_CMD_PORTEN), 2);
}
/************************************************************************/
OpenPOWER on IntegriCloud