From 6ce22978d1866377dc9a868040e9b07008076bc0 Mon Sep 17 00:00:00 2001 From: Mao Jinlong Date: Sun, 26 Apr 2020 19:54:22 +0800 Subject: [PATCH] tmc-etr: Add ETR status check in usb_notifier It is possible that notify call is called after etr is disabled or after mode switch from usb to etr. Add etr status check to avoid exception. Change-Id: I4feb36df28b6fc059598af98b6fb9ccf698d3aaf Signed-off-by: Mao Jinlong --- drivers/hwtracing/coresight/coresight-tmc-etr.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c index 809f18c764d4..03f079a2c395 100644 --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c @@ -1324,6 +1324,15 @@ void usb_notifier(void *priv, unsigned int event, struct qdss_request *d_req, int ret = 0; mutex_lock(&drvdata->mem_lock); + + if (drvdata->out_mode != TMC_ETR_OUT_MODE_USB + || drvdata->mode == CS_MODE_DISABLED) { + dev_err(&drvdata->csdev->dev, + "%s: ETR is not USB mode, or ETR is disabled.\n", __func__); + mutex_unlock(&drvdata->mem_lock); + return; + } + if (event == USB_QDSS_CONNECT) { ret = tmc_etr_fill_usb_bam_data(drvdata); if (ret)