From 8d428079d98b1ad89d20e75434ad9c8e72f326be Mon Sep 17 00:00:00 2001 From: Chia-Wei Wang Date: Tue, 31 May 2022 13:44:13 +0800 Subject: [PATCH] soc/aspeed: espi: Fix mutex_trylock handling Fix incorrect handling on mutex_trylock for non-blocking access. Signed-off-by: Chia-Wei Wang Change-Id: Ica0b1cc01e8d1891cfd0fe6938c55b32098b9f5b --- drivers/soc/aspeed/aspeed-espi-flash.c | 4 ++-- drivers/soc/aspeed/aspeed-espi-oob.c | 6 +++--- drivers/soc/aspeed/aspeed-espi-perif.c | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/soc/aspeed/aspeed-espi-flash.c b/drivers/soc/aspeed/aspeed-espi-flash.c index af70a3fdd4b3..42093e72e90c 100644 --- a/drivers/soc/aspeed/aspeed-espi-flash.c +++ b/drivers/soc/aspeed/aspeed-espi-flash.c @@ -32,8 +32,8 @@ static long aspeed_espi_flash_get_rx(struct file *fp, struct aspeed_espi_ctrl *espi_ctrl = espi_flash->ctrl; if (fp->f_flags & O_NONBLOCK) { - if (mutex_trylock(&espi_flash->get_rx_mtx)) - return -EBUSY; + if (!mutex_trylock(&espi_flash->get_rx_mtx)) + return -EAGAIN; if (!espi_flash->rx_ready) { rc = -ENODATA; diff --git a/drivers/soc/aspeed/aspeed-espi-oob.c b/drivers/soc/aspeed/aspeed-espi-oob.c index 2e0cc427b6c1..f9ba2870b685 100644 --- a/drivers/soc/aspeed/aspeed-espi-oob.c +++ b/drivers/soc/aspeed/aspeed-espi-oob.c @@ -105,8 +105,8 @@ static long aspeed_espi_oob_get_rx(struct file *fp, struct aspeed_espi_ctrl *espi_ctrl = espi_oob->ctrl; if (fp->f_flags & O_NONBLOCK) { - if (mutex_trylock(&espi_oob->get_rx_mtx)) - return -EBUSY; + if (!mutex_trylock(&espi_oob->get_rx_mtx)) + return -EAGAIN; if (!espi_oob->rx_ready) { rc = -ENODATA; @@ -263,7 +263,7 @@ static long aspeed_espi_oob_put_tx(struct file *fp, struct aspeed_espi_ctrl *espi_ctrl = espi_oob->ctrl; if (!mutex_trylock(&espi_oob->put_tx_mtx)) - return -EBUSY; + return -EAGAIN; if (espi_oob->dma_mode && espi_ctrl->model->version != ESPI_AST2500) { rc = aspeed_espi_oob_dma_desc_put_tx(fp, ioc, espi_oob); diff --git a/drivers/soc/aspeed/aspeed-espi-perif.c b/drivers/soc/aspeed/aspeed-espi-perif.c index d65687b930ff..4a14ea450922 100644 --- a/drivers/soc/aspeed/aspeed-espi-perif.c +++ b/drivers/soc/aspeed/aspeed-espi-perif.c @@ -34,8 +34,8 @@ static long aspeed_espi_perif_pc_get_rx(struct file *fp, struct aspeed_espi_ctrl *espi_ctrl = espi_perif->ctrl; if (fp->f_flags & O_NONBLOCK) { - if (mutex_trylock(&espi_perif->pc_rx_mtx)) - return -EBUSY; + if (!mutex_trylock(&espi_perif->pc_rx_mtx)) + return -EAGAIN; if (!espi_perif->rx_ready) { rc = -ENODATA;