.. | .. |
---|
711 | 711 | if (!chan) { |
---|
712 | 712 | dev_err(priv->port.dev, "%s:dma_request_channel FAILS(Tx)\n", |
---|
713 | 713 | __func__); |
---|
| 714 | + pci_dev_put(dma_dev); |
---|
714 | 715 | return; |
---|
715 | 716 | } |
---|
716 | 717 | priv->chan_tx = chan; |
---|
.. | .. |
---|
727 | 728 | __func__); |
---|
728 | 729 | dma_release_channel(priv->chan_tx); |
---|
729 | 730 | priv->chan_tx = NULL; |
---|
| 731 | + pci_dev_put(dma_dev); |
---|
730 | 732 | return; |
---|
731 | 733 | } |
---|
732 | 734 | |
---|
.. | .. |
---|
734 | 736 | priv->rx_buf_virt = dma_alloc_coherent(port->dev, port->fifosize, |
---|
735 | 737 | &priv->rx_buf_dma, GFP_KERNEL); |
---|
736 | 738 | priv->chan_rx = chan; |
---|
| 739 | + |
---|
| 740 | + pci_dev_put(dma_dev); |
---|
737 | 741 | } |
---|
738 | 742 | |
---|
739 | 743 | static void pch_dma_rx_complete(void *arg) |
---|
.. | .. |
---|
765 | 769 | } |
---|
766 | 770 | xmit->tail &= UART_XMIT_SIZE - 1; |
---|
767 | 771 | async_tx_ack(priv->desc_tx); |
---|
768 | | - dma_unmap_sg(port->dev, sg, priv->orig_nent, DMA_TO_DEVICE); |
---|
| 772 | + dma_unmap_sg(port->dev, priv->sg_tx_p, priv->orig_nent, DMA_TO_DEVICE); |
---|
769 | 773 | priv->tx_dma_use = 0; |
---|
770 | 774 | priv->nent = 0; |
---|
771 | 775 | priv->orig_nent = 0; |
---|