Message ID | 20240305105623.3379-2-wsa+renesas@sang-engineering.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mmc: tmio: comment the ERR_PTR usage in this driver | expand |
> + /* Ready for new mrqs */ > + host->mrq = NULL; > host->clk_cache = ios->clock; For the record: I think these two statements should be swapped. First set the new value, then allow new mrqs. However, I want to test this change internally before submitting it.
On Tue, 5 Mar 2024 at 11:56, Wolfram Sang <wsa+renesas@sang-engineering.com> wrote: > > It is not super obvious why the driver sometimes uses an ERR_PTR for the > current mrq. Explain why in comments. > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Applied for next, thanks! Kind regards Uffe > --- > drivers/mmc/host/tmio_mmc_core.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c > index c253d176db69..93e912afd3ae 100644 > --- a/drivers/mmc/host/tmio_mmc_core.c > +++ b/drivers/mmc/host/tmio_mmc_core.c > @@ -972,6 +972,7 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) > return; > } > > + /* Disallow new mrqs and work handlers to run */ > host->mrq = ERR_PTR(-EBUSY); > > spin_unlock_irqrestore(&host->lock, flags); > @@ -1006,8 +1007,9 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) > "%s.%d: IOS interrupted: clk %u, mode %u", > current->comm, task_pid_nr(current), > ios->clock, ios->power_mode); > - host->mrq = NULL; > > + /* Ready for new mrqs */ > + host->mrq = NULL; > host->clk_cache = ios->clock; > > mutex_unlock(&host->ios_lock); > -- > 2.43.0 >
diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c index c253d176db69..93e912afd3ae 100644 --- a/drivers/mmc/host/tmio_mmc_core.c +++ b/drivers/mmc/host/tmio_mmc_core.c @@ -972,6 +972,7 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) return; } + /* Disallow new mrqs and work handlers to run */ host->mrq = ERR_PTR(-EBUSY); spin_unlock_irqrestore(&host->lock, flags); @@ -1006,8 +1007,9 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) "%s.%d: IOS interrupted: clk %u, mode %u", current->comm, task_pid_nr(current), ios->clock, ios->power_mode); - host->mrq = NULL; + /* Ready for new mrqs */ + host->mrq = NULL; host->clk_cache = ios->clock; mutex_unlock(&host->ios_lock);
It is not super obvious why the driver sometimes uses an ERR_PTR for the current mrq. Explain why in comments. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> --- drivers/mmc/host/tmio_mmc_core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)