[tty:tty-next 31/41] drivers/tty/serial/qcom_geni_serial.c:1925:4: error: cannot jump from this goto statement to its label

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.llvm,dev.linux.lists.oe-kbuild-all,org.kernel.vger.linux-serial
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-next
head:   c1d4ce2d9eaeccd7e8aef7ec1109df49eaf4f503
commit: 3d71f8d7eeb374d0eb84c64c6ffd68bdcc0d42d4 [31/41] serial: qcom-geni: remove .pm callback, use runtime PM in startup/shutdown
config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20260715/[email protected]/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project b3e6e6dabdc02153552a64fc74ff5c7532447eed)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260715/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

>> drivers/tty/serial/qcom_geni_serial.c:1925:4: error: cannot jump from this goto statement to its label
    1925 |                         goto error;
         |                         ^
   drivers/tty/serial/qcom_geni_serial.c:1931:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
    1931 |         PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
         |                                                   ^
   drivers/tty/serial/qcom_geni_serial.c:1916:3: error: cannot jump from this goto statement to its label
    1916 |                 goto error;
         |                 ^
   drivers/tty/serial/qcom_geni_serial.c:1931:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
    1931 |         PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
         |                                                   ^
   drivers/tty/serial/qcom_geni_serial.c:1911:3: error: cannot jump from this goto statement to its label
    1911 |                 goto error;
         |                 ^
   drivers/tty/serial/qcom_geni_serial.c:1931:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
    1931 |         PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
         |                                                   ^
   drivers/tty/serial/qcom_geni_serial.c:1887:3: error: cannot jump from this goto statement to its label
    1887 |                 goto error;
         |                 ^
   drivers/tty/serial/qcom_geni_serial.c:1931:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
    1931 |         PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
         |                                                   ^
   drivers/tty/serial/qcom_geni_serial.c:1881:3: error: cannot jump from this goto statement to its label
    1881 |                 goto error;
         |                 ^
   drivers/tty/serial/qcom_geni_serial.c:1931:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
    1931 |         PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
         |                                                   ^
   drivers/tty/serial/qcom_geni_serial.c:1872:4: error: cannot jump from this goto statement to its label
    1872 |                         goto error;
         |                         ^
   drivers/tty/serial/qcom_geni_serial.c:1931:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
    1931 |         PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
         |                                                   ^
   drivers/tty/serial/qcom_geni_serial.c:1864:4: error: cannot jump from this goto statement to its label
    1864 |                         goto error;
         |                         ^
   drivers/tty/serial/qcom_geni_serial.c:1931:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
    1931 |         PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
         |                                                   ^
   drivers/tty/serial/qcom_geni_serial.c:1848:3: error: cannot jump from this goto statement to its label
    1848 |                 goto error;
         |                 ^
   drivers/tty/serial/qcom_geni_serial.c:1931:44: note: jump bypasses initialization of variable with __attribute__((cleanup))
    1931 |         PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
         |                                                   ^
   8 errors generated.


vim +1925 drivers/tty/serial/qcom_geni_serial.c

c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1799  
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1800  static int qcom_geni_serial_probe(struct platform_device *pdev)
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1801  {
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1802  	int ret = 0;
71581242164f112 Colin Ian King              2021-04-23  1803  	int line;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1804  	struct qcom_geni_serial_port *port;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1805  	struct uart_port *uport;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1806  	struct resource *res;
066cd1c4e4b9b43 Karthikeyan Ramasubramanian 2018-04-06  1807  	int irq;
8a8a66a1a18a1db Girish Mahadevan            2018-07-13  1808  	struct uart_driver *drv;
40ec6d41c841e27 Bartosz Golaszewski         2022-12-29  1809  	const struct qcom_geni_device_data *data;
8a8a66a1a18a1db Girish Mahadevan            2018-07-13  1810  
40ec6d41c841e27 Bartosz Golaszewski         2022-12-29  1811  	data = of_device_get_match_data(&pdev->dev);
40ec6d41c841e27 Bartosz Golaszewski         2022-12-29  1812  	if (!data)
40ec6d41c841e27 Bartosz Golaszewski         2022-12-29  1813  		return -EINVAL;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1814  
40ec6d41c841e27 Bartosz Golaszewski         2022-12-29  1815  	if (data->console) {
8a8a66a1a18a1db Girish Mahadevan            2018-07-13  1816  		drv = &qcom_geni_console_driver;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1817  		line = of_alias_get_id(pdev->dev.of_node, "serial");
8a8a66a1a18a1db Girish Mahadevan            2018-07-13  1818  	} else {
8a8a66a1a18a1db Girish Mahadevan            2018-07-13  1819  		drv = &qcom_geni_uart_driver;
08b0adb1ae5456a Dmitry Baryshkov            2021-06-22  1820  		line = of_alias_get_id(pdev->dev.of_node, "serial");
08b0adb1ae5456a Dmitry Baryshkov            2021-06-22  1821  		if (line == -ENODEV) /* compat with non-standard aliases */
8a8a66a1a18a1db Girish Mahadevan            2018-07-13  1822  			line = of_alias_get_id(pdev->dev.of_node, "hsuart");
8a8a66a1a18a1db Girish Mahadevan            2018-07-13  1823  	}
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1824  
c3e7966c60745f8 Zong Jiang                  2025-08-12  1825  	port = get_port_from_line(line, data->console, &pdev->dev);
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1826  	if (IS_ERR(port)) {
6a10635e90e8cb0 Karthikeyan Ramasubramanian 2018-05-03  1827  		dev_err(&pdev->dev, "Invalid line %d\n", line);
6a10635e90e8cb0 Karthikeyan Ramasubramanian 2018-05-03  1828  		return PTR_ERR(port);
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1829  	}
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1830  
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1831  	uport = &port->uport;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1832  	/* Don't allow 2 drivers to access the same port */
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1833  	if (uport->private_data)
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1834  		return -ENODEV;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1835  
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1836  	uport->dev = &pdev->dev;
40ec6d41c841e27 Bartosz Golaszewski         2022-12-29  1837  	port->dev_data = data;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1838  	port->se.dev = &pdev->dev;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1839  	port->se.wrapper = dev_get_drvdata(pdev->dev.parent);
4b2601ae3066dab Praveen Talari              2025-07-21  1840  
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1841  	ret = port->dev_data->resources_init(uport);
4b2601ae3066dab Praveen Talari              2025-07-21  1842  	if (ret)
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1843  		return ret;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1844  
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1845  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1846  	if (!res) {
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1847  		ret = -EINVAL;
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1848  		goto error;
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1849  	}
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1850  
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1851  	uport->mapbase = res->start;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1852  
4fcc287f3c69245 Anup Kulkarni               2025-06-03  1853  	uport->rs485_config = qcom_geni_rs485_config;
4fcc287f3c69245 Anup Kulkarni               2025-06-03  1854  	uport->rs485_supported = qcom_geni_rs485_supported;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1855  	port->tx_fifo_depth = DEF_FIFO_DEPTH_WORDS;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1856  	port->rx_fifo_depth = DEF_FIFO_DEPTH_WORDS;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1857  	port->tx_fifo_width = DEF_FIFO_WIDTH_BITS;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1858  
40ec6d41c841e27 Bartosz Golaszewski         2022-12-29  1859  	if (!data->console) {
2aaa43c70778333 Bartosz Golaszewski         2022-12-29  1860  		port->rx_buf = devm_kzalloc(uport->dev,
2aaa43c70778333 Bartosz Golaszewski         2022-12-29  1861  					    DMA_RX_BUF_SIZE, GFP_KERNEL);
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1862  		if (!port->rx_buf) {
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1863  			ret = -ENOMEM;
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1864  			goto error;
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1865  		}
bafe277d6c5a8bc Praveen Talari              2026-07-01  1866  
bafe277d6c5a8bc Praveen Talari              2026-07-01  1867  		port->rx_dma_addr = dma_map_single(pdev->dev.parent, port->rx_buf,
bafe277d6c5a8bc Praveen Talari              2026-07-01  1868  						   DMA_RX_BUF_SIZE, DMA_FROM_DEVICE);
bafe277d6c5a8bc Praveen Talari              2026-07-01  1869  		if (dma_mapping_error(pdev->dev.parent, port->rx_dma_addr)) {
bafe277d6c5a8bc Praveen Talari              2026-07-01  1870  			ret = -EIO;
bafe277d6c5a8bc Praveen Talari              2026-07-01  1871  			dev_err(&pdev->dev, "Failed to map RX DMA buffer: %d\n", ret);
bafe277d6c5a8bc Praveen Talari              2026-07-01  1872  			goto error;
bafe277d6c5a8bc Praveen Talari              2026-07-01  1873  		}
f9d690b6ece7ec9 satya priya                 2020-03-06  1874  	}
f9d690b6ece7ec9 satya priya                 2020-03-06  1875  
f3974413cf0209b Akash Asthana               2020-01-06  1876  	port->name = devm_kasprintf(uport->dev, GFP_KERNEL,
f3974413cf0209b Akash Asthana               2020-01-06  1877  			"qcom_geni_serial_%s%d",
f3974413cf0209b Akash Asthana               2020-01-06  1878  			uart_console(uport) ? "console" : "uart", uport->line);
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1879  	if (!port->name) {
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1880  		ret = -ENOMEM;
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1881  		goto error;
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1882  	}
f3974413cf0209b Akash Asthana               2020-01-06  1883  
066cd1c4e4b9b43 Karthikeyan Ramasubramanian 2018-04-06  1884  	irq = platform_get_irq(pdev, 0);
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1885  	if (irq < 0) {
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1886  		ret = irq;
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1887  		goto error;
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1888  	}
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1889  
066cd1c4e4b9b43 Karthikeyan Ramasubramanian 2018-04-06  1890  	uport->irq = irq;
8f122698a64b877 Dmitry Safonov              2019-12-13  1891  	uport->has_sysrq = IS_ENABLED(CONFIG_SERIAL_QCOM_GENI_CONSOLE);
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1892  
40ec6d41c841e27 Bartosz Golaszewski         2022-12-29  1893  	if (!data->console)
f3974413cf0209b Akash Asthana               2020-01-06  1894  		port->wakeup_irq = platform_get_irq_optional(pdev, 1);
f3974413cf0209b Akash Asthana               2020-01-06  1895  
9fa3c4b1fa379f2 Roja Rani Yarubandi         2020-03-04  1896  	if (of_property_read_bool(pdev->dev.of_node, "rx-tx-swap"))
9fa3c4b1fa379f2 Roja Rani Yarubandi         2020-03-04  1897  		port->rx_tx_swap = true;
9fa3c4b1fa379f2 Roja Rani Yarubandi         2020-03-04  1898  
9fa3c4b1fa379f2 Roja Rani Yarubandi         2020-03-04  1899  	if (of_property_read_bool(pdev->dev.of_node, "cts-rts-swap"))
9fa3c4b1fa379f2 Roja Rani Yarubandi         2020-03-04  1900  		port->cts_rts_swap = true;
9fa3c4b1fa379f2 Roja Rani Yarubandi         2020-03-04  1901  
e42d6c3ec0c7ade Douglas Anderson            2020-06-26  1902  	port->private_data.drv = drv;
e42d6c3ec0c7ade Douglas Anderson            2020-06-26  1903  	uport->private_data = &port->private_data;
f3974413cf0209b Akash Asthana               2020-01-06  1904  	platform_set_drvdata(pdev, port);
f3974413cf0209b Akash Asthana               2020-01-06  1905  
3e4aaea7a0391d4 Akash Asthana               2019-10-10  1906  	irq_set_status_flags(uport->irq, IRQ_NOAUTOEN);
3e4aaea7a0391d4 Akash Asthana               2019-10-10  1907  	ret = devm_request_irq(uport->dev, uport->irq, qcom_geni_serial_isr,
3e4aaea7a0391d4 Akash Asthana               2019-10-10  1908  			IRQF_TRIGGER_HIGH, port->name, uport);
3e4aaea7a0391d4 Akash Asthana               2019-10-10  1909  	if (ret) {
3e4aaea7a0391d4 Akash Asthana               2019-10-10  1910  		dev_err(uport->dev, "Failed to get IRQ ret %d\n", ret);
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1911  		goto error;
3e4aaea7a0391d4 Akash Asthana               2019-10-10  1912  	}
3e4aaea7a0391d4 Akash Asthana               2019-10-10  1913  
4fcc287f3c69245 Anup Kulkarni               2025-06-03  1914  	ret = uart_get_rs485_mode(uport);
4fcc287f3c69245 Anup Kulkarni               2025-06-03  1915  	if (ret)
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1916  		goto error;
4fcc287f3c69245 Anup Kulkarni               2025-06-03  1917  
f3974413cf0209b Akash Asthana               2020-01-06  1918  	if (port->wakeup_irq > 0) {
f3974413cf0209b Akash Asthana               2020-01-06  1919  		device_init_wakeup(&pdev->dev, true);
f3974413cf0209b Akash Asthana               2020-01-06  1920  		ret = dev_pm_set_dedicated_wake_irq(&pdev->dev,
8b7103f31950443 Akash Asthana               2019-10-10  1921  						port->wakeup_irq);
8b7103f31950443 Akash Asthana               2019-10-10  1922  		if (ret) {
f3974413cf0209b Akash Asthana               2020-01-06  1923  			device_init_wakeup(&pdev->dev, false);
a53be6945f5123c Viken Dadhaniya             2025-03-27  1924  			ida_free(&port_ida, uport->line);
abffd1e6c4f1c97 Praveen Talari              2025-11-10 @1925  			goto error;
8b7103f31950443 Akash Asthana               2019-10-10  1926  		}
8b7103f31950443 Akash Asthana               2019-10-10  1927  	}
f3974413cf0209b Akash Asthana               2020-01-06  1928  
fb47423dc7bf433 Praveen Talari              2026-01-08  1929  	devm_pm_runtime_enable(port->se.dev);
fb47423dc7bf433 Praveen Talari              2026-01-08  1930  
3d71f8d7eeb374d Praveen Talari              2026-07-10  1931  	PM_RUNTIME_ACQUIRE_IF_ENABLED(uport->dev, pm);
3d71f8d7eeb374d Praveen Talari              2026-07-10  1932  	ret = PM_RUNTIME_ACQUIRE_ERR(&pm);
3d71f8d7eeb374d Praveen Talari              2026-07-10  1933  	if (ret < 0) {
3d71f8d7eeb374d Praveen Talari              2026-07-10  1934  		dev_err(uport->dev, "Failed to resume and get %d\n", ret);
3d71f8d7eeb374d Praveen Talari              2026-07-10  1935  		goto error;
3d71f8d7eeb374d Praveen Talari              2026-07-10  1936  	}
3d71f8d7eeb374d Praveen Talari              2026-07-10  1937  
fb47423dc7bf433 Praveen Talari              2026-01-08  1938  	ret = uart_add_one_port(drv, uport);
fb47423dc7bf433 Praveen Talari              2026-01-08  1939  	if (ret)
fb47423dc7bf433 Praveen Talari              2026-01-08  1940  		goto error;
fb47423dc7bf433 Praveen Talari              2026-01-08  1941  
f3974413cf0209b Akash Asthana               2020-01-06  1942  	return 0;
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1943  
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1944  error:
bafe277d6c5a8bc Praveen Talari              2026-07-01  1945  	if (port->rx_dma_addr) {
bafe277d6c5a8bc Praveen Talari              2026-07-01  1946  		dma_unmap_single(pdev->dev.parent, port->rx_dma_addr,
bafe277d6c5a8bc Praveen Talari              2026-07-01  1947  				 DMA_RX_BUF_SIZE, DMA_FROM_DEVICE);
bafe277d6c5a8bc Praveen Talari              2026-07-01  1948  		port->rx_dma_addr = 0;
bafe277d6c5a8bc Praveen Talari              2026-07-01  1949  	}
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1950  	dev_pm_domain_detach_list(port->pd_list);
abffd1e6c4f1c97 Praveen Talari              2025-11-10  1951  	return ret;
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1952  }
c4f528795d1add8 Karthikeyan Ramasubramanian 2018-03-14  1953  

:::::: The code at line 1925 was first introduced by commit
:::::: abffd1e6c4f1c9746ffd3fb5c659668efc221714 serial: qcom-geni: Enable Serial on SA8255p Qualcomm platforms

:::::: TO: Praveen Talari <[email protected]>
:::::: CC: Greg Kroah-Hartman <[email protected]>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.