Setting opmode to invalid values would lead to a paging fault failure when there is an access to the power_operation_mode. Prevent this by checking the validity of the value that the opmode is being set. Cc: <stable@xxxxxxxxxxxxxxx> Fixes: fab9288428ec ("usb: USB Type-C connector class") Signed-off-by: Sriharsha Allenki <sallenki@xxxxxxxxxxxxxx> --- drivers/usb/typec/class.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c index 35eec70..63efe16 100644 --- a/drivers/usb/typec/class.c +++ b/drivers/usb/typec/class.c @@ -1427,7 +1427,8 @@ void typec_set_pwr_opmode(struct typec_port *port, { struct device *partner_dev; - if (port->pwr_opmode == opmode) + if ((port->pwr_opmode == opmode) || (opmode < TYPEC_PWR_MODE_USB) || + (opmode > TYPEC_PWR_MODE_PD)) return; port->pwr_opmode = opmode; -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project