Re: [PATCH] drivers: block: skd: remove skd_pci_info()
From: Chaitanya Kulkarni <hidden>
Date: 2020-12-11 22:46:08
Also in:
linux-pci, lkml
On 12/11/20 08:45, Puranjay Mohan wrote:
quoted hunk ↗ jump to hunk
PCI core calls __pcie_print_link_status() for every device, it prints both the link width and the link speed. skd_pci_info() does the same thing again, hence it can be removed. Signed-off-by: Puranjay Mohan <redacted> --- drivers/block/skd_main.c | 31 ------------------------------- 1 file changed, 31 deletions(-)diff --git a/drivers/block/skd_main.c b/drivers/block/skd_main.c index a962b4551bed..da7aac5335d9 100644 --- a/drivers/block/skd_main.c +++ b/drivers/block/skd_main.c@@ -3134,40 +3134,11 @@ static const struct pci_device_id skd_pci_tbl[] = { MODULE_DEVICE_TABLE(pci, skd_pci_tbl); -static char *skd_pci_info(struct skd_device *skdev, char *str) -{ - int pcie_reg; - - strcpy(str, "PCIe ("); - pcie_reg = pci_find_capability(skdev->pdev, PCI_CAP_ID_EXP); - - if (pcie_reg) { - - char lwstr[6]; - uint16_t pcie_lstat, lspeed, lwidth; - - pcie_reg += 0x12; - pci_read_config_word(skdev->pdev, pcie_reg, &pcie_lstat); - lspeed = pcie_lstat & (0xF); - lwidth = (pcie_lstat & 0x3F0) >> 4; - - if (lspeed == 1) - strcat(str, "2.5GT/s "); - else if (lspeed == 2) - strcat(str, "5.0GT/s "); - else - strcat(str, "<unknown> ");
The skd driver prints unknown if the speed is not "2.5GT/s" or "5.0GT/s".
__pcie_print_link_status() prints "unknown" only if speed
value >= ARRAY_SIZE(speed_strings).
If a buggy skd card returns value that is not != ("2.5GT/s" or "5.0GT/s")
&& value < ARRAY_SIZE(speed_strings) then it will not print the unknown but
the value from speed string array.
Which breaks the current behavior. Please correct me if I'm wrong.quoted hunk ↗ jump to hunk
- snprintf(lwstr, sizeof(lwstr), "%dX)", lwidth); - strcat(str, lwstr); - } - return str; -} static int skd_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { int i; int rc = 0; - char pci_str[32]; struct skd_device *skdev; dev_dbg(&pdev->dev, "vendor=%04X device=%04x\n", pdev->vendor,@@ -3201,8 +3172,6 @@ static int skd_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) goto err_out_regions; } - skd_pci_info(skdev, pci_str); - dev_info(&pdev->dev, "%s 64bit\n", pci_str); pci_set_master(pdev); rc = pci_enable_pcie_error_reporting(pdev);