Page MenuHomeFreeBSD

D30726.diff
No OneTemporary

D30726.diff

diff --git a/sys/x86/xen/xen_intr.c b/sys/x86/xen/xen_intr.c
--- a/sys/x86/xen/xen_intr.c
+++ b/sys/x86/xen/xen_intr.c
@@ -318,6 +318,10 @@
int error;
KASSERT(mtx_owned(&xen_intr_isrc_lock), ("Evtchn alloc lock not held"));
+ isrc = xen_intr_find_unused_isrc(type);
+ if (isrc != NULL) {
+ return (isrc);
+ }
if (xen_intr_auto_vector_count >= NR_EVENT_CHANNELS) {
if (!warned) {
@@ -424,13 +428,10 @@
*port_handlep = NULL;
mtx_lock(&xen_intr_isrc_lock);
- isrc = xen_intr_find_unused_isrc(type);
+ isrc = xen_intr_alloc_isrc(type);
if (isrc == NULL) {
- isrc = xen_intr_alloc_isrc(type);
- if (isrc == NULL) {
- mtx_unlock(&xen_intr_isrc_lock);
- return (ENOSPC);
- }
+ mtx_unlock(&xen_intr_isrc_lock);
+ return (ENOSPC);
}
isrc->xi_port = local_port;
isrc->xi_close = false;

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 29, 8:12 PM (9 h, 34 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15632745
Default Alt Text
D30726.diff (814 B)

Event Timeline