From 9f4392425618bb17b8e5ffa3740794b1e3ea2934 Mon Sep 17 00:00:00 2001 From: Yuanfang Zhang Date: Tue, 3 Nov 2020 17:22:43 +0800 Subject: [PATCH 1/2] coresight: byte-cnter: Add ETR status check in bypass notifier when usb_bypass_notify is called by ush_qdss_close(), no need to response to USB_QDSS_DISCONNECT event. so add etr status check to avoid exception. Change-Id: I4ab5d7f4ba054b0d1ecc7026b5662ddc1c8b5ca1 Signed-off-by: Yuanfang Zhang --- drivers/hwtracing/coresight/coresight-byte-cntr.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-byte-cntr.c b/drivers/hwtracing/coresight/coresight-byte-cntr.c index aa83c3660778..4be8fbda5a10 100644 --- a/drivers/hwtracing/coresight/coresight-byte-cntr.c +++ b/drivers/hwtracing/coresight/coresight-byte-cntr.c @@ -553,10 +553,9 @@ void usb_bypass_notifier(void *priv, unsigned int event, if (!drvdata) return; - if (tmcdrvdata->out_mode != TMC_ETR_OUT_MODE_USB - || tmcdrvdata->mode == CS_MODE_DISABLED) { + if (tmcdrvdata->out_mode != TMC_ETR_OUT_MODE_USB) { dev_err(&tmcdrvdata->csdev->dev, - "%s: ETR is not USB mode, or ETR is disabled.\n", __func__); + "%s: ETR is not USB mode\n", __func__); return; } @@ -571,6 +570,11 @@ void usb_bypass_notifier(void *priv, unsigned int event, break; case USB_QDSS_DISCONNECT: + if (tmcdrvdata->mode == CS_MODE_DISABLED) { + dev_err(&tmcdrvdata->csdev->dev, + "%s: ETR is disabled.\n", __func__); + return; + } usb_bypass_stop(drvdata); flush_work(&(drvdata->read_work)); usb_qdss_free_req(tmcdrvdata->usbch); From 266445be4dbc30b94b0ef75e71675b668715f098 Mon Sep 17 00:00:00 2001 From: Yuanfang Zhang Date: Thu, 5 Nov 2020 15:49:55 +0800 Subject: [PATCH 2/2] coresight: byte-cnter: limit error log output Limit error log output in usb_bypass_notify(). Change-Id: I74e7635d10bc273cd378a62ca90874e73c9c856b Signed-off-by: Yuanfang Zhang --- drivers/hwtracing/coresight/coresight-byte-cntr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-byte-cntr.c b/drivers/hwtracing/coresight/coresight-byte-cntr.c index 4be8fbda5a10..cebea0e8b143 100644 --- a/drivers/hwtracing/coresight/coresight-byte-cntr.c +++ b/drivers/hwtracing/coresight/coresight-byte-cntr.c @@ -554,7 +554,7 @@ void usb_bypass_notifier(void *priv, unsigned int event, return; if (tmcdrvdata->out_mode != TMC_ETR_OUT_MODE_USB) { - dev_err(&tmcdrvdata->csdev->dev, + dev_err_ratelimited(&tmcdrvdata->csdev->dev, "%s: ETR is not USB mode\n", __func__); return; } @@ -571,7 +571,7 @@ void usb_bypass_notifier(void *priv, unsigned int event, case USB_QDSS_DISCONNECT: if (tmcdrvdata->mode == CS_MODE_DISABLED) { - dev_err(&tmcdrvdata->csdev->dev, + dev_err_ratelimited(&tmcdrvdata->csdev->dev, "%s: ETR is disabled.\n", __func__); return; }