summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/subr_bus.c6
-rw-r--r--sys/sys/bus.h2
2 files changed, 5 insertions, 3 deletions
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index 5610f38..44dcd47 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -3355,15 +3355,17 @@ bus_alloc_resources(device_t dev, struct resource_spec *rs,
}
void
-bus_release_resources(device_t dev, struct resource_spec *rs,
+bus_release_resources(device_t dev, const struct resource_spec *rs,
struct resource **res)
{
int i;
for (i = 0; rs[i].type != -1; i++)
- if (res[i] != NULL)
+ if (res[i] != NULL) {
bus_release_resource(
dev, rs[i].type, rs[i].rid, res[i]);
+ res[i] = NULL;
+ }
}
/**
diff --git a/sys/sys/bus.h b/sys/sys/bus.h
index fd96571..b97a8d8 100644
--- a/sys/sys/bus.h
+++ b/sys/sys/bus.h
@@ -297,7 +297,7 @@ struct resource_spec {
};
int bus_alloc_resources(device_t dev, struct resource_spec *rs, struct resource **res);
-void bus_release_resources(device_t dev, struct resource_spec *rs, struct resource **res);
+void bus_release_resources(device_t dev, const struct resource_spec *rs, struct resource **res);
struct resource *bus_alloc_resource(device_t dev, int type, int *rid,
u_long start, u_long end, u_long count,
OpenPOWER on IntegriCloud