diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 693a885..a6cb0b8 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -2210,8 +2210,10 @@ static int process_global_event(struct nl_msg *msg, void *arg)
 	dl_list_for_each(drv, &global->interfaces,
 			 struct wpa_driver_nl80211_data, list) {
 		if (ifidx == -1 || ifidx == drv->ifindex ||
-		    have_ifidx(drv, ifidx))
+		    have_ifidx(drv, ifidx)) {
 			do_process_drv_event(drv, gnlh->cmd, tb);
+			break;
+		}
 	}
 
 	return NL_SKIP;
