RDMA/cxgb4: Dispatch FATAL event on EEH errors

This at least kicks the user mode applications that are watching for
device events.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
Steve Wise 2011-03-11 22:30:53 +00:00 коммит произвёл Roland Dreier
Родитель b48f3b9c10
Коммит 767fbe8151
1 изменённых файлов: 9 добавлений и 1 удалений

Просмотреть файл

@ -522,8 +522,16 @@ static int c4iw_uld_state_change(void *handle, enum cxgb4_state new_state)
case CXGB4_STATE_START_RECOVERY: case CXGB4_STATE_START_RECOVERY:
printk(KERN_INFO MOD "%s: Fatal Error\n", printk(KERN_INFO MOD "%s: Fatal Error\n",
pci_name(dev->rdev.lldi.pdev)); pci_name(dev->rdev.lldi.pdev));
if (dev->registered) dev->rdev.flags |= T4_FATAL_ERROR;
if (dev->registered) {
struct ib_event event;
memset(&event, 0, sizeof event);
event.event = IB_EVENT_DEVICE_FATAL;
event.device = &dev->ibdev;
ib_dispatch_event(&event);
c4iw_unregister_device(dev); c4iw_unregister_device(dev);
}
break; break;
case CXGB4_STATE_DETACH: case CXGB4_STATE_DETACH:
printk(KERN_INFO MOD "%s: Detach\n", printk(KERN_INFO MOD "%s: Detach\n",