Re: [PATCH 05/10] fnic: fnic driver may hit BUG_ON on device reset

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Just submitted 05, 06, 07 and 08 fnic patches after verifying compilation
of each patch independently.

Thanks,
Hiral

On 12/17/12 3:24 AM, "James Bottomley"
<James.Bottomley@xxxxxxxxxxxxxxxxxxxxx> wrote:

>On Mon, 2012-12-10 at 01:21 -0800, Hiral Patel wrote:
>> The issue was observed when LUN Reset is issued through IOCTL or
>>sg_reset
>> utility.
>> 
>> fnic driver issues LUN RESET to firmware. On successful completion of
>>device
>> reset, driver cleans up all the pending IOs that were issued prior to
>>device
>> reset. These pending IOs are expected to be in ABTS_PENDING state. This
>>works
>> fine, when the device reset operation resulted from midlayer, but not
>>when
>> device reset was triggered from IOCTL path as the pending IOs were not
>>in
>> ABTS_PENDING state. execution path hits panic if the pending IO is not
>>in
>> ABTS_PENDING state.
>> 
>> Changes:
>> The fix replaces BUG_ON check in fnic_clean_pending_aborts() with
>>marking
>> pending IOs as ABTS_PENDING if they were not in ABTS_PENDING state and
>>skips
>> if they were already in ABTS_PENDING state. An extra check is added to
>>validate
>> the abort status of the commands after a delay of 2 * E_D_TOV using a
>> helper function. The helper function returns 1 if it finds any pending
>>IO in
>> ABTS_PENDING state, belong to the LUN on which device reset was issued
>>else 0.
>> With this, device reset operation returns success only if the helper
>>funciton
>> returns 0, otherwise it returns failure.
>> 
>> Other changes:
>> - Removed code in fnic_clean_pending_aborts() that returns failure if
>>it finds
>>   io_req NULL, instead of returning failure added code to continue with
>>next io
>> - Added device reset flags for debugging in fnic_terminate_rport_io,
>>   fnic_rport_exch_reset, and fnic_clean_pending_aborts
>> 
>> Signed-off-by: Narsimhulu Musini <nmusini@xxxxxxxxx>
>> Signed-off-by: Hiral Patel <hiralpat@xxxxxxxxx>
>
>This one doesn't compile:
>
>drivers/scsi/fnic/fnic_scsi.c: In function Œfnic_clean_pending_aborts¹:
>drivers/scsi/fnic/fnic_scsi.c:1654:23: error: ŒFNIC_DEV_RST_ISSUED¹
>undeclared (first use in this function)
>drivers/scsi/fnic/fnic_scsi.c:1654:23: note: each undeclared identifier
>is reported only once for each function it appears in
>make[3]: *** [drivers/scsi/fnic/fnic_scsi.o] Error 1
>
>And that's because FNIC_DEV_RST_ISSUED isn't #defined until PATCH 06/10
>
>Please redo 05-10 this time making sure they compile in sequence in
>order to maintain bisectability
>
>Thanks,
>
>James
>
>

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux