[PATCH v3 08/32] cxlflash: Fix to avoid CXL services during EEH
Matthew R. Ochs
mrochs at linux.vnet.ibm.com
Sat Sep 26 03:09:51 AEST 2015
> On Sep 24, 2015, at 8:23 PM, Brian King <brking at linux.vnet.ibm.com> wrote:
> On 09/24/2015 02:38 PM, Matthew R. Ochs wrote:
>> diff --git a/drivers/scsi/cxlflash/main.c b/drivers/scsi/cxlflash/main.c
>> index 3e3ccf1..6e85c77 100644
>> --- a/drivers/scsi/cxlflash/main.c
>> +++ b/drivers/scsi/cxlflash/main.c
>> @@ -2383,16 +2397,14 @@ static pci_ers_result_t cxlflash_pci_error_detected(struct pci_dev *pdev,
>> switch (state) {
>> case pci_channel_io_frozen:
>> cfg->state = STATE_LIMBO;
>> -
>> - /* Turn off legacy I/O */
>> scsi_block_requests(cfg->host);
>> + drain_ioctls(cfg);
>
> I don't see this addressing the deadlock with an outstanding read_cap16 during EEH I identified
> in the previous review. Am I missing something here?
I'll submit this in a separate patch in v4.
>> /**
>> + * check_state() - checks and responds to the current adapter state
>> + * @cfg: Internal structure associated with the host.
>> + * @ioctl: Indicates if on an ioctl thread.
>> + *
>> + * This routine can block and should only be used on process context.
>> + * When blocking on an ioctl thread, the ioctl read semaphore should be
>> + * let up to allow for draining actively running ioctls. Also note that
>> + * when waking up from waiting in reset, the state is unknown and must
>> + * be checked again before proceeding.
>> + *
>> + * Return: 0 on success, -errno on failure
>> + */
>> +static int check_state(struct cxlflash_cfg *cfg, bool ioctl)
>
> Looks like you missed this cleanup. The second parameter is not needed, since all
> the callers set it to true.
Yep, this was my mistake. I'll correct in a v4 as the change will
ripple to the next patch in the series.
More information about the Linuxppc-dev
mailing list