From 3737f15cc71ebbac0f2fb6c7a66ff333ec81512e Mon Sep 17 00:00:00 2001 From: Ajay Agarwal Date: Mon, 18 May 2020 15:19:15 +0530 Subject: [PATCH] usb: dwc3-msm: Avoid access of gsi_reg for non-GSI targets Some targets do not have GSI feature. For such targets, gsi_reg array does not get allocated. DWC3_CONTROLLER_NOTIFY_CLEAR_DB event from gadget driver will access this unallocated memory. Fix this by putting a check for gsi_reg. Change-Id: I9903c0c6533abf3d6e689a40ea84ecbc066e10d8 Signed-off-by: Ajay Agarwal --- drivers/usb/dwc3/dwc3-msm.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/usb/dwc3/dwc3-msm.c b/drivers/usb/dwc3/dwc3-msm.c index 6944bfad19b9..a2c536cb0cd4 100644 --- a/drivers/usb/dwc3/dwc3-msm.c +++ b/drivers/usb/dwc3/dwc3-msm.c @@ -2482,12 +2482,14 @@ static void dwc3_msm_notify_event(struct dwc3 *dwc, break; case DWC3_CONTROLLER_NOTIFY_CLEAR_DB: dev_dbg(mdwc->dev, "DWC3_CONTROLLER_NOTIFY_CLEAR_DB\n"); - dwc3_msm_write_reg_field(mdwc->base, - GSI_GENERAL_CFG_REG(mdwc->gsi_reg), - BLOCK_GSI_WR_GO_MASK, true); - dwc3_msm_write_reg_field(mdwc->base, - GSI_GENERAL_CFG_REG(mdwc->gsi_reg), - GSI_EN_MASK, 0); + if (mdwc->gsi_reg) { + dwc3_msm_write_reg_field(mdwc->base, + GSI_GENERAL_CFG_REG(mdwc->gsi_reg), + BLOCK_GSI_WR_GO_MASK, true); + dwc3_msm_write_reg_field(mdwc->base, + GSI_GENERAL_CFG_REG(mdwc->gsi_reg), + GSI_EN_MASK, 0); + } break; default: dev_dbg(mdwc->dev, "unknown dwc3 event\n");