diff options
author | imp <imp@FreeBSD.org> | 2009-03-12 08:42:27 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2009-03-12 08:42:27 +0000 |
commit | 7837d28e5908f7c0b229017791be541da0d03d78 (patch) | |
tree | 4a23a01d53627955ef6a0f4053c93296fc318aba /sys/dev/cardbus | |
parent | b029dd7446bcd80b8679385b392ffa2e4ef44e52 (diff) | |
download | FreeBSD-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.c | 10 |
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); } /************************************************************************/ |