Comment 0 for bug 1984011

Revision history for this message
Michael Reed (mreed8855) wrote :

[Impact]

fNIC driver controls print messages based on the flag fnic_log_level. shost_printk is not controlled via this flag. This issue is resolved by using some of the print macros that have been defined in fnic. This has negligible impact.
The resid was being set irrespective of whether we saw an underflow or not. It needs to be set only when we see an underflow. The impact here is negligible.
When we don't receive link events, we could go into a loop before sending fw reset. The patch for the issue resolves this, and we break out of the loop.
Prior to checking the remote port, fnic driver must check if the io_req is valid. If not, there could be a crash. The patch resolves this issue.

[Fix]
The following patches need to be pulled from upstream to update the fnic driver to 1.6.0.53:

https://marc.info/?l=linux-scsi&m=160591061813369&w=2
https://marc.info/?l=linux-scsi&m=160592183315837&w=2
https://marc.info/?l=linux-scsi&m=160592283315997&w=2
https://marc.info/?l=linux-scsi&m=160592363016122&w=2
https://marc.info/?l=linux-scsi&m=160592616516616&w=2

Here's a description of each issue:

1. https://marc.info/?l=linux-scsi&m=160591061813369&w=2

FNIC_FCS_DBG print is controlled by fnic_log_level flag. Replace shost_printk in fnic_fip_handler_timer with this print so that it can be controlled.

2. https://marc.info/?l=linux-scsi&m=160592183315837&w=2

When fnic is in TRANS ETH state, and when there are no link events, we must not loop before sending fw reset.

3. https://marc.info/?l=linux-scsi&m=160592283315997&w=2

FNIC_MAIN_DBG print is controlled by fnic_log_level flag. Replace shost_printk in fnic_handle_link with this print so that it can be controlled.

4. https://marc.info/?l=linux-scsi&m=160592363016122&w=2

Fix to set scsi_set_resid() only if FCPIO_ICMND_CMPL_RESID_UNDER is set.

5. https://marc.info/?l=linux-scsi&m=160592616516616&w=2

Check for a valid io_req before we check other data.

[Test Plan]

Runnings IOs with multiple link flaps would be a good test case to validate all the patches above. It is suggested to run these IOs with a data integrity check. We do this as a standard practice.

[Where problems could occur]

The print messages are innocuous. It is not expected to run into any issues.
Problems could occur with storage arrays that have a non-standard response.
If the sanity test fails, there could be issues in the scsi midlayer or fnic driver.

All the patches present low regression risk.

[Other Info]

https://code.launchpad.net/~mreed8855/ubuntu/+source/linux/+git/focal/+ref/cisco_fnic_update

See original description
Add tags Tag help