On 15. 02. 22, 6:55, Jiri Slaby wrote:
On 15. 02. 22, 3:00, 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/8250/8250_lpss.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/tty/serial/8250/8250_lpss.c
b/drivers/tty/serial/8250/8250_lpss.c
index d3bafec..57e462f
--- a/drivers/tty/serial/8250/8250_lpss.c
+++ b/drivers/tty/serial/8250/8250_lpss.c
@@ -149,6 +149,8 @@ static int byt_serial_setup(struct lpss8250 *lpss,
struct uart_port *port)
/* Disable TX counter interrupts */
writel(BYT_TX_OVF_INT_MASK, port->membase + BYT_TX_OVF_INT);
+ pci_dev_put(dma_dev);
What about the "return -ENODEV" few lines above?
On the top of that, the code stores the pointer to the dev:
param->dma_dev = &dma_dev->dev;
So we should likely put the device in ->exit(), not ->setup().
thanks,
--
js
suse labs