>>On Mon, Feb 14, 2022 at 06:01:12PM -0800, Qing Wang wrote: >> From: Wang Qing <wangqing@xxxxxxxx> >> >> pci_get_slot() increases its reference count, the caller must >> decrement the reference count by calling pci_dev_put() >> >> Signed-off-by: Wang Qing <wangqing@xxxxxxxx> >> --- >> drivers/tty/serial/pch_uart.c | 7 +++++-- >> 1 file changed, 5 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c >> index f0351e6..da5a276 >> --- a/drivers/tty/serial/pch_uart.c >> +++ b/drivers/tty/serial/pch_uart.c >> @@ -723,7 +723,7 @@ static void pch_request_dma(struct uart_port *port) >> if (!chan) { >> dev_err(priv->port.dev, "%s:dma_request_channel FAILS(Tx)\n", >> __func__); >> - return; >> + goto out; >> } >> priv->chan_tx = chan; >> >> @@ -739,13 +739,16 @@ static void pch_request_dma(struct uart_port *port) >> __func__); >> dma_release_channel(priv->chan_tx); >> priv->chan_tx = NULL; >> - return; >> + goto out; >> } >> >> /* Get Consistent memory for DMA */ >> priv->rx_buf_virt = dma_alloc_coherent(port->dev, port->fifosize, >> &priv->rx_buf_dma, GFP_KERNEL); >> priv->chan_rx = chan; >> + >> +out: >> + pci_dev_put(dma_dev); >> } >> >> static void pch_dma_rx_complete(void *arg) >> -- >> 2.7.4 >> > >What tool are you using to find these? As Jiri points out, it is not >very correct at all, be careful to not cause bugs when you are >attempting to fix them. > >For stuff like this, please always test your changes to verify they >work. Got it. Some tools are taken from the cocci community, some are developed byself, I will improve the tool and add tests to avoid this situation. Thanks, Qing > >thanks, > >greg k-h >