diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-09 16:42:26 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-09 16:42:26 -0700 |
commit | 0534c8cb5c8a8a954751fa01eef7831a475a9ec5 (patch) | |
tree | 1ba3037634378966a78a35bbdec66b384fbff20d /drivers/infiniband/hw/cxgb3/iwch.c | |
parent | 54f93b74cf8c575bb89f9bf32a40a39b83ace1e9 (diff) | |
parent | 07306c0b98a9a0399bff1b91229b4c3b55912189 (diff) | |
download | linux-stable-0534c8cb5c8a8a954751fa01eef7831a475a9ec5.tar.gz linux-stable-0534c8cb5c8a8a954751fa01eef7831a475a9ec5.tar.bz2 linux-stable-0534c8cb5c8a8a954751fa01eef7831a475a9ec5.zip |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
RDMA/nes: Add support for new SFP+ PHY
RDMA/nes: Add wide_ppm_offset parm for switch compatibility
RDMA/nes: Fix SFP+ PHY initialization
RDMA/nes: Fix nes_nic_cm_xmit() error handling
RDMA/nes: Fix error handling issues
RDMA/nes: Fix incorrect casts on 32-bit architectures
IPoIB: Document newish features
RDMA/cma: Create cm id even when IB port is down
RDMA/cma: Use rate from IPoIB broadcast when joining IPoIB multicast groups
IPoIB: Avoid free_netdev() BUG when destroying a child interface
mlx4_core: Don't leak mailbox for SET_PORT on Ethernet ports
RDMA/cxgb3: Release dependent resources only when endpoint memory is freed.
RDMA/cxgb3: Handle EEH events
IB/mlx4: Use pgprot_writecombine() for BlueFlame pages
Diffstat (limited to 'drivers/infiniband/hw/cxgb3/iwch.c')
-rw-r--r-- | drivers/infiniband/hw/cxgb3/iwch.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/cxgb3/iwch.c b/drivers/infiniband/hw/cxgb3/iwch.c index 37a4fc264a07..26fc0a4eaa74 100644 --- a/drivers/infiniband/hw/cxgb3/iwch.c +++ b/drivers/infiniband/hw/cxgb3/iwch.c @@ -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) |