RDMA/cxgb3: Handle EEH events
- wrap calls into cxgb3 and fail them if we're in the middle of a PCI EEH event. - correctly unwind and release endpoint and other resources when we are in an EEH event. - dispatch IB_EVENT_DEVICE_FATAL event when cxgb3 notifies iw_cxgb3 of a fatal error. Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:

committed by
Roland Dreier

orang tua
5d80f8e5a9
melakukan
04b5d028f5
@@ -165,12 +165,19 @@ static void close_rnic_dev(struct t3cdev *tdev)
|
||||
static void iwch_err_handler(struct t3cdev *tdev, u32 status, u32 error)
|
||||
{
|
||||
struct cxio_rdev *rdev = tdev->ulp;
|
||||
struct iwch_dev *rnicp = rdev_to_iwch_dev(rdev);
|
||||
struct ib_event event;
|
||||
|
||||
if (status == OFFLOAD_STATUS_DOWN)
|
||||
if (status == OFFLOAD_STATUS_DOWN) {
|
||||
rdev->flags = CXIO_ERROR_FATAL;
|
||||
|
||||
return;
|
||||
event.device = &rnicp->ibdev;
|
||||
event.event = IB_EVENT_DEVICE_FATAL;
|
||||
event.element.port_num = 0;
|
||||
ib_dispatch_event(&event);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static int __init iwch_init_module(void)
|
||||
|
Reference in New Issue
Block a user