Skip to contentSkip to conversation

usb: dwc3: Add error logs for unknown endpoint events

PATCH In review Roy Luo 2 participants 2 messages May 4, 2023

Subsystems (2)
lore
Share & tools
lore

Roy Luo

author
#0 lore raw

PATCH v2 1/1 usb: dwc3: Add error logs for unknown endpoint events

In cases where the controller somehow fails to write to event buffer memory (e.g. due to incorrect MMU config), the driver would receive all-zero dwc3 events. However, the abnormal event is silently dropped as a regular ep0out event.
Add error logs when an unknown endpoint event is received to highlight the anomaly.

---
 drivers/usb/dwc3/ep0.c    | 3 +++
 drivers/usb/dwc3/gadget.c | 3 +++
 2 files changed, 6 insertions(+)
drivers/usb/dwc3/ep0.c +3 -0
index 953b752a5052..b94243237293 100644
@@ -1207,5 +1207,8 @@ void dwc3_ep0_interrupt(struct dwc3 *dwc,
 			dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
 		}
 		break;
+	default:
+		dev_err(dwc->dev, "unknown endpoint event %d\n", event->endpoint_event);
+		break;
 	}
 }
drivers/usb/dwc3/gadget.c +3 -0
index c0ca4d12f95d..7163d5d0eea0 100644
@@ -3803,6 +3803,9 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
 		break;
 	case DWC3_DEPEVT_RXTXFIFOEVT:
 		break;
+	default:
+		dev_err(dwc->dev, "unknown endpoint event %d\n", event->endpoint_event);
+		break;
 	}
 }
 

base-commit: c8c655c34e33544aec9d64b660872ab33c29b5f1

Signature · 1 line
2.40.1.495.gc816e09b53d-goog
maintainer Acked-by on v2 1/1
#1 lore raw
Quoted 41 lines · Roy Luo

In cases where the controller somehow fails to write to event buffer memory (e.g. due to incorrect MMU config), the driver would receive all-zero dwc3 events. However, the abnormal event is silently dropped as a regular ep0out event.
Add error logs when an unknown endpoint event is received to highlight the anomaly.

---
 drivers/usb/dwc3/ep0.c    | 3 +++
 drivers/usb/dwc3/gadget.c | 3 +++
 2 files changed, 6 insertions(+)
drivers/usb/dwc3/ep0.c +3 -0
index 953b752a5052..b94243237293 100644
@@ -1207,5 +1207,8 @@ void dwc3_ep0_interrupt(struct dwc3 *dwc,
 			dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
 		}
 		break;
+	default:
+		dev_err(dwc->dev, "unknown endpoint event %d\n", event->endpoint_event);
+		break;
 	}
 }
drivers/usb/dwc3/gadget.c +3 -0
index c0ca4d12f95d..7163d5d0eea0 100644
@@ -3803,6 +3803,9 @@ static void dwc3_endpoint_interrupt(struct dwc3 *dwc,
 		break;
 	case DWC3_DEPEVT_RXTXFIFOEVT:
 		break;
+	default:
+		dev_err(dwc->dev, "unknown endpoint event %d\n", event->endpoint_event);
+		break;
 	}
 }
 
Quoted 4 lines

base-commit: c8c655c34e33544aec9d64b660872ab33c29b5f1

Signature · 1 line
2.40.1.495.gc816e09b53d-goog

Thanks,
Thinh