Lines Matching full:event

21  *  This pair of routines creates an event and queues it onto a
42 struct eeh_event *event; in eeh_event_handler() local
48 /* Fetch EEH event from the queue */ in eeh_event_handler()
50 event = NULL; in eeh_event_handler()
52 event = list_entry(eeh_eventlist.next, in eeh_event_handler()
54 list_del(&event->list); in eeh_event_handler()
57 if (!event) in eeh_event_handler()
60 /* We might have event without binding PE */ in eeh_event_handler()
61 if (event->pe) in eeh_event_handler()
62 eeh_handle_normal_event(event->pe); in eeh_event_handler()
66 kfree(event); in eeh_event_handler()
76 * EEH event.
95 * eeh_send_failure_event - Generate a PCI error event
99 * the actual event will be delivered in a normal context
105 struct eeh_event *event; in __eeh_send_failure_event() local
107 event = kzalloc(sizeof(*event), GFP_ATOMIC); in __eeh_send_failure_event()
108 if (!event) { in __eeh_send_failure_event()
109 pr_err("EEH: out of memory, event not handled\n"); in __eeh_send_failure_event()
112 event->pe = pe; in __eeh_send_failure_event()
117 * while the PE is sitting in the event queue. in __eeh_send_failure_event()
123 * event handler thread. in __eeh_send_failure_event()
134 list_add(&event->list, &eeh_eventlist); in __eeh_send_failure_event()
150 pr_err("EEH: Event dropped due to no_recover setting\n"); in eeh_send_failure_event()
158 * eeh_remove_event - Remove EEH event from the queue
159 * @pe: Event binding to the PE
160 * @force: Event will be removed unconditionally
170 struct eeh_event *event, *tmp; in eeh_remove_event() local
177 * With "force", the event with associated PE that in eeh_remove_event()
178 * have been isolated, the event won't be removed in eeh_remove_event()
179 * to avoid event lost. in eeh_remove_event()
182 list_for_each_entry_safe(event, tmp, &eeh_eventlist, list) { in eeh_remove_event()
183 if (!force && event->pe && in eeh_remove_event()
184 (event->pe->state & EEH_PE_ISOLATED)) in eeh_remove_event()
188 list_del(&event->list); in eeh_remove_event()
189 kfree(event); in eeh_remove_event()
191 if (event->pe && event->pe->phb == pe->phb) { in eeh_remove_event()
192 list_del(&event->list); in eeh_remove_event()
193 kfree(event); in eeh_remove_event()
195 } else if (event->pe == pe) { in eeh_remove_event()
196 list_del(&event->list); in eeh_remove_event()
197 kfree(event); in eeh_remove_event()