Message ID | 20230210234311.1661312-1-yabinc@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | coresight: tmc-etr: Handle enable failure in tmc_read_unprepare_etr | expand |
Ping for review? On Fri, Feb 10, 2023 at 11:43 PM Yabin Cui <yabinc@google.com> wrote: > > It's similar to what we did in tmc_read_unprepare_etb. > > Signed-off-by: Yabin Cui <yabinc@google.com> > --- > drivers/hwtracing/coresight/coresight-tmc-etr.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c > index 918d461fcf4a..b04f12079efd 100644 > --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c > +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c > @@ -1763,6 +1763,7 @@ int tmc_read_unprepare_etr(struct tmc_drvdata *drvdata) > { > unsigned long flags; > struct etr_buf *sysfs_buf = NULL; > + int rc = 0; > > /* config types are set a boot time and never change */ > if (WARN_ON_ONCE(drvdata->config_type != TMC_CONFIG_TYPE_ETR)) > @@ -1777,7 +1778,11 @@ int tmc_read_unprepare_etr(struct tmc_drvdata *drvdata) > * buffer. Since the tracer is still enabled drvdata::buf can't > * be NULL. > */ > - __tmc_etr_enable_hw(drvdata); > + rc = __tmc_etr_enable_hw(drvdata); > + if (rc) { > + spin_unlock_irqrestore(&drvdata->spinlock, flags); > + return rc; > + } > } else { > /* > * The ETR is not tracing and the buffer was just read. > -- > 2.39.1.581.gbfd45094c4-goog >
On 21/02/2023 18:38, Yabin Cui wrote: > Ping for review? > > On Fri, Feb 10, 2023 at 11:43 PM Yabin Cui <yabinc@google.com> wrote: >> >> It's similar to what we did in tmc_read_unprepare_etb. >> >> Signed-off-by: Yabin Cui <yabinc@google.com> >> --- Thanks Yabin for the patch, will queue this at rc1 Suzuki >> drivers/hwtracing/coresight/coresight-tmc-etr.c | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c >> index 918d461fcf4a..b04f12079efd 100644 >> --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c >> +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c >> @@ -1763,6 +1763,7 @@ int tmc_read_unprepare_etr(struct tmc_drvdata *drvdata) >> { >> unsigned long flags; >> struct etr_buf *sysfs_buf = NULL; >> + int rc = 0; >> >> /* config types are set a boot time and never change */ >> if (WARN_ON_ONCE(drvdata->config_type != TMC_CONFIG_TYPE_ETR)) >> @@ -1777,7 +1778,11 @@ int tmc_read_unprepare_etr(struct tmc_drvdata *drvdata) >> * buffer. Since the tracer is still enabled drvdata::buf can't >> * be NULL. >> */ >> - __tmc_etr_enable_hw(drvdata); >> + rc = __tmc_etr_enable_hw(drvdata); >> + if (rc) { >> + spin_unlock_irqrestore(&drvdata->spinlock, flags); >> + return rc; >> + } >> } else { >> /* >> * The ETR is not tracing and the buffer was just read. >> -- >> 2.39.1.581.gbfd45094c4-goog >>
diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c index 918d461fcf4a..b04f12079efd 100644 --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c @@ -1763,6 +1763,7 @@ int tmc_read_unprepare_etr(struct tmc_drvdata *drvdata) { unsigned long flags; struct etr_buf *sysfs_buf = NULL; + int rc = 0; /* config types are set a boot time and never change */ if (WARN_ON_ONCE(drvdata->config_type != TMC_CONFIG_TYPE_ETR)) @@ -1777,7 +1778,11 @@ int tmc_read_unprepare_etr(struct tmc_drvdata *drvdata) * buffer. Since the tracer is still enabled drvdata::buf can't * be NULL. */ - __tmc_etr_enable_hw(drvdata); + rc = __tmc_etr_enable_hw(drvdata); + if (rc) { + spin_unlock_irqrestore(&drvdata->spinlock, flags); + return rc; + } } else { /* * The ETR is not tracing and the buffer was just read.
It's similar to what we did in tmc_read_unprepare_etb. Signed-off-by: Yabin Cui <yabinc@google.com> --- drivers/hwtracing/coresight/coresight-tmc-etr.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)