[bug report] Octeontx2-af: Fix NIX X2P calibration failures

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

 



Hello Hariprasad Kelam,

Commit d280233fc866 ("Octeontx2-af: Fix NIX X2P calibration
failures") from Aug 22, 2025 (linux-next), leads to the following
Smatch static checker warning:

	drivers/net/ethernet/marvell/octeontx2/af/cgx.c:1985 cgx_probe()
	warn: missing error code 'err'

drivers/net/ethernet/marvell/octeontx2/af/cgx.c
    1933 static int cgx_probe(struct pci_dev *pdev, const struct pci_device_id *id)
    1934 {
    1935         struct device *dev = &pdev->dev;
    1936         struct cgx *cgx;
    1937         int err, nvec;
    1938 
    1939         cgx = devm_kzalloc(dev, sizeof(*cgx), GFP_KERNEL);
    1940         if (!cgx)
    1941                 return -ENOMEM;
    1942         cgx->pdev = pdev;
    1943 
    1944         pci_set_drvdata(pdev, cgx);
    1945 
    1946         /* Use mac_ops to get MAC specific features */
    1947         if (is_dev_rpm(cgx))
    1948                 cgx->mac_ops = rpm_get_mac_ops(cgx);
    1949         else
    1950                 cgx->mac_ops = &cgx_mac_ops;
    1951 
    1952         cgx->mac_ops->rxid_map_offset = cgx_get_rxid_mapoffset(cgx);
    1953 
    1954         err = pci_enable_device(pdev);
    1955         if (err) {
    1956                 dev_err(dev, "Failed to enable PCI device\n");
    1957                 pci_set_drvdata(pdev, NULL);
    1958                 return err;
    1959         }
    1960 
    1961         err = pci_request_regions(pdev, DRV_NAME);
    1962         if (err) {
    1963                 dev_err(dev, "PCI request regions failed 0x%x\n", err);
    1964                 goto err_disable_device;
    1965         }
    1966 
    1967         err = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(48));
    1968         if (err) {
    1969                 dev_err(dev, "DMA mask config failed, abort\n");
    1970                 goto err_release_regions;
    1971         }
    1972 
    1973         /* MAP configuration registers */
    1974         cgx->reg_base = pcim_iomap(pdev, PCI_CFG_REG_BAR_NUM, 0);
    1975         if (!cgx->reg_base) {
    1976                 dev_err(dev, "CGX: Cannot map CSR memory space, aborting\n");
    1977                 err = -ENOMEM;
    1978                 goto err_release_regions;
    1979         }
    1980 
    1981         if (!is_cn20k(pdev) &&
    1982             !is_cgx_mapped_to_nix(pdev->subsystem_device, cgx->cgx_id)) {
    1983                 dev_notice(dev, "CGX %d not mapped to NIX, skipping probe\n",
    1984                            cgx->cgx_id);
--> 1985                 goto err_release_regions;

error code?

    1986         }
    1987 
    1988         cgx->lmac_count = cgx->mac_ops->get_nr_lmacs(cgx);
    1989         if (!cgx->lmac_count) {
    1990                 dev_notice(dev, "CGX %d LMAC count is zero, skipping probe\n", cgx->cgx_id);
    1991                 err = -EOPNOTSUPP;
    1992                 goto err_release_regions;
    1993         }
    1994 
    1995         nvec = pci_msix_vec_count(cgx->pdev);
    1996         err = pci_alloc_irq_vectors(pdev, nvec, nvec, PCI_IRQ_MSIX);
    1997         if (err < 0 || err != nvec) {
    1998                 dev_err(dev, "Request for %d msix vectors failed, err %d\n",
    1999                         nvec, err);
    2000                 goto err_release_regions;
    2001         }
    2002 
    2003         cgx->cgx_id = (pci_resource_start(pdev, PCI_CFG_REG_BAR_NUM) >> 24)
    2004                 & CGX_ID_MASK;
    2005 
    2006         /* init wq for processing linkup requests */
    2007         INIT_WORK(&cgx->cgx_cmd_work, cgx_lmac_linkup_work);
    2008         cgx->cgx_cmd_workq = alloc_workqueue("cgx_cmd_workq", 0, 0);
    2009         if (!cgx->cgx_cmd_workq) {
    2010                 dev_err(dev, "alloc workqueue failed for cgx cmd");
    2011                 err = -ENOMEM;
    2012                 goto err_free_irq_vectors;
    2013         }
    2014 
    2015         list_add(&cgx->cgx_list, &cgx_list);
    2016 
    2017 
    2018         cgx_populate_features(cgx);
    2019 
    2020         mutex_init(&cgx->lock);
    2021 
    2022         err = cgx_lmac_init(cgx);
    2023         if (err)
    2024                 goto err_release_lmac;
    2025 
    2026         return 0;
    2027 
    2028 err_release_lmac:
    2029         cgx_lmac_exit(cgx);
    2030         list_del(&cgx->cgx_list);
    2031 err_free_irq_vectors:
    2032         pci_free_irq_vectors(pdev);
    2033 err_release_regions:
    2034         pci_release_regions(pdev);
    2035 err_disable_device:
    2036         pci_disable_device(pdev);
    2037         pci_set_drvdata(pdev, NULL);
    2038         return err;
    2039 }

regards,
dan carpenter




[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux