usb: roles: don't get/set_role() when usb_role_switch is unregistered
authorXu Yang <xu.yang_2@nxp.com>
Mon, 29 Jan 2024 09:37:39 +0000 (17:37 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Feb 2024 08:30:41 +0000 (09:30 +0100)
commitb787a3e781759026a6212736ef8e52cf83d1821a
treeb89460d5f0b50f3591a328183d1325a54dc239a8
parent1c9be13846c0b2abc2480602f8ef421360e1ad9e
usb: roles: don't get/set_role() when usb_role_switch is unregistered

There is a possibility that usb_role_switch device is unregistered before
the user put usb_role_switch. In this case, the user may still want to
get/set_role() since the user can't sense the changes of usb_role_switch.

This will add a flag to show if usb_role_switch is already registered and
avoid unwanted behaviors.

Fixes: fde0aa6c175a ("usb: common: Small class for USB role switches")
cc: stable@vger.kernel.org
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20240129093739.2371530-2-xu.yang_2@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/roles/class.c