Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60d1031e authored by Tomoya MORINAGA's avatar Tomoya MORINAGA Committed by Greg Kroah-Hartman
Browse files

pch_uart: fix exclusive access issue

parent 9af7155b
Loading
Loading
Loading
Loading
+9 −2
Original line number Original line Diff line number Diff line
@@ -636,7 +636,6 @@ static void pch_dma_tx_complete(void *arg)
	priv->tx_dma_use = 0;
	priv->tx_dma_use = 0;
	priv->nent = 0;
	priv->nent = 0;
	kfree(priv->sg_tx_p);
	kfree(priv->sg_tx_p);
	if (uart_circ_chars_pending(xmit))
	pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_TX_INT);
	pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_TX_INT);
}
}


@@ -793,6 +792,14 @@ static unsigned int dma_handle_tx(struct eg20t_port *priv)
		return 0;
		return 0;
	}
	}


	if (priv->tx_dma_use) {
		dev_dbg(priv->port.dev, "%s:Tx is not completed. (%lu)\n",
			__func__, jiffies);
		pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_TX_INT);
		priv->tx_empty = 1;
		return 0;
	}

	fifo_size = max(priv->fifo_size, 1);
	fifo_size = max(priv->fifo_size, 1);
	tx_empty = 1;
	tx_empty = 1;
	if (pop_tx_x(priv, xmit->buf)) {
	if (pop_tx_x(priv, xmit->buf)) {