Page MenuHomeFreeBSD

D49543.diff
No OneTemporary

D49543.diff

diff --git a/sys/kern/subr_intr.c b/sys/kern/subr_intr.c
--- a/sys/kern/subr_intr.c
+++ b/sys/kern/subr_intr.c
@@ -1733,14 +1733,6 @@
return (i);
}
}
- for (i = 0; i < irq_map_first_free_idx; i++) {
- if (irq_map[i] == NULL) {
- irq_map[i] = entry;
- irq_map_first_free_idx = i + 1;
- mtx_unlock(&irq_map_lock);
- return (i);
- }
- }
mtx_unlock(&irq_map_lock);
/* XXX Expand irq_map table */
@@ -1760,7 +1752,8 @@
panic("Attempt to unmap invalid resource id: %u\n", res_id);
entry = irq_map[res_id];
irq_map[res_id] = NULL;
- irq_map_first_free_idx = res_id;
+ if (res_id < irq_map_first_free_idx)
+ irq_map_first_free_idx = res_id;
mtx_unlock(&irq_map_lock);
intr_free_intr_map_data(entry->map_data);
free(entry, M_INTRNG);

File Metadata

Mime Type
text/plain
Expires
Sun, Jan 18, 10:24 AM (59 s ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27708409
Default Alt Text
D49543.diff (765 B)

Event Timeline