scsi: mpt3sas: Use configured PCIe link speed, not max
When enabling high iops queues, the driver should use the HBA's configured PCIe link speed instead of looking for the maximum link speed. I.e. enable high iops queues only if Aero/Sea HBA's configured PCIe link speed is set to 16GT/s. Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
381abbd1f7
commit
48d6f0a6a5
|
@ -2979,7 +2979,7 @@ static void
|
|||
_base_check_and_enable_high_iops_queues(struct MPT3SAS_ADAPTER *ioc,
|
||||
int hba_msix_vector_count)
|
||||
{
|
||||
enum pci_bus_speed speed = PCI_SPEED_UNKNOWN;
|
||||
u16 lnksta, speed;
|
||||
|
||||
if (perf_mode == MPT_PERF_MODE_IOPS ||
|
||||
perf_mode == MPT_PERF_MODE_LATENCY) {
|
||||
|
@ -2989,15 +2989,10 @@ _base_check_and_enable_high_iops_queues(struct MPT3SAS_ADAPTER *ioc,
|
|||
|
||||
if (perf_mode == MPT_PERF_MODE_DEFAULT) {
|
||||
|
||||
speed = pcie_get_speed_cap(ioc->pdev);
|
||||
dev_info(&ioc->pdev->dev, "PCIe device speed is %s\n",
|
||||
speed == PCIE_SPEED_2_5GT ? "2.5GHz" :
|
||||
speed == PCIE_SPEED_5_0GT ? "5.0GHz" :
|
||||
speed == PCIE_SPEED_8_0GT ? "8.0GHz" :
|
||||
speed == PCIE_SPEED_16_0GT ? "16.0GHz" :
|
||||
"Unknown");
|
||||
pcie_capability_read_word(ioc->pdev, PCI_EXP_LNKSTA, &lnksta);
|
||||
speed = lnksta & PCI_EXP_LNKSTA_CLS;
|
||||
|
||||
if (speed < PCIE_SPEED_16_0GT) {
|
||||
if (speed < 0x4) {
|
||||
ioc->high_iops_queues = 0;
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue