/* Low-level drivers must call ib_dispatch_event() to dispatch the event to all registered event handlers when an asynchronous event occurs.  */
void ib_dispatch_event(struct ib_event *event)
/* Low-level drivers must call ib_dispatch_event() to dispatch the event to all registered event handlers when an asynchronous event occurs.  */
void ib_dispatch_event(struct ib_event *event)
{
	unsigned long flags;
	struct ib_event_handler *handler;
	spin_lock_irqsave(&event->device->event_handler_lock, flags);
	list_for_each_entry(handler, &event->device->event_handler_list, list)
		handler->handler(handler, event);
	spin_unlock_irqrestore(&event->device->event_handler_lock, flags);
}