20 #include <linux/list.h>
22 #include <linux/sched.h>
23 #include <linux/pci.h>
24 #include <linux/slab.h>
41 static void eeh_thread_launcher(
struct work_struct *);
57 static int eeh_event_handler(
void *
dummy)
60 struct eeh_event *
event;
67 if (!list_empty(&eeh_eventlist)) {
71 spin_unlock_irqrestore(&eeh_eventlist_lock, flags);
80 pr_info(
"EEH: Detected PCI bus error on PHB#%d-PE#%x\n",
81 pe->phb->global_number, pe->addr);
91 if (pe && pe->freeze_count > 0) {
93 if (pe->freeze_count > 0)
108 static void eeh_thread_launcher(
struct work_struct *dummy)
125 struct eeh_event *
event;
129 pr_err(
"EEH: out of memory, event not handled\n");
136 list_add(&event->list, &eeh_eventlist);
137 spin_unlock_irqrestore(&eeh_eventlist_lock, flags);