linux/drivers/scsi/libfc
Bhanu Prakash Gollapudi d4042e9c84 [SCSI] libfc: Fix panic in fc_exch_recv
Adding and removing the host into the zone causes this panic.

BUG: unable to handle kernel NULL pointer dereference at 00000000000000a0
IP: [<ffffffffa0491707>] fc_exch_recv+0xc57/0xe70 [libfc]
Call Trace:
[<ffffffffa050e04b>] bnx2fc_l2_rcv_thread+0x37b/0x430 [bnx2fc]
[<ffffffffa050dcd0>] ? bnx2fc_l2_rcv_thread+0x0/0x430 [bnx2fc]
[<ffffffff81090886>] kthread+0x96/0xa0
[<ffffffff8100c14a>] child_rip+0xa/0x20
[<ffffffff810907f0>] ? kthread+0x0/0xa0
[<ffffffff8100c140>] ? child_rip+0x0/0x20

During fc_exch_reset, the active exchanges are aborted and the exch is deleted.
As part of processing ABTS response, due to 'ep' being NULL, any access to ep in
fc_exch_recv_bls() causes this panic. Fixed to access 'ep' only if non-NULL.

Reviewed-by: Neerav Parikh <neerav.parikh@intel.com>
Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2012-02-19 09:26:07 -06:00
..
fc_disc.c [SCSI] libfc: Declare local functions static 2012-01-16 12:45:48 +04:00
fc_elsct.c [SCSI] libfc: Make the libfc Common Transport(CT) code generic 2012-02-19 08:08:58 -06:00
fc_exch.c [SCSI] libfc: Fix panic in fc_exch_recv 2012-02-19 09:26:07 -06:00
fc_fcp.c [SCSI] libfc: remove redundant timer init for fcp 2012-01-16 12:47:18 +04:00
fc_frame.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
fc_libfc.c scsi: Fix up files implicitly depending on module.h inclusion 2011-10-31 19:31:24 -04:00
fc_libfc.h [SCSI] libfc: release DDP context if frame_send() fails 2011-05-24 12:36:51 -04:00
fc_lport.c [SCSI] libfc: Add support for FDMI 2012-02-19 08:08:58 -06:00
fc_npiv.c scsi: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:31:23 -04:00
fc_rport.c [SCSI] libfc: Declare local functions static 2012-01-16 12:45:48 +04:00
Makefile