+ list_for_each_entry(dep, head, list) {
+ if (!dep->cb)
+ continue;
+
+ if (dep->ev_idx[ev] == idx[ev])
+ continue;
+
+ dep->cb(dep, ev);
+ dep->ev_idx[ev] = idx[ev];
+ found = true;
+ break;
+ }
+ } while (found);
+}
+
+void device_broadcast_event(struct device *dev, enum device_event ev)
+{
+ __device_broadcast_event(&dev->aliases, ev);
+ __device_broadcast_event(&dev->users, ev);