On Thu, Sep 19, 2024 at 12:58:12AM -0700, Amit Sunil Dhamne wrote: > usb_power_delivery_register_capabilities() returns ERR_PTR in case of > failure. usb_power_delivery_unregister_capabilities() we only check > argument ("cap") for NULL. A more robust check would be checking for > ERR_PTR as well. > > Cc: stable@xxxxxxxxxxxxxxx > Fixes: 662a60102c12 ("usb: typec: Separate USB Power Delivery from USB Type-C") > Signed-off-by: Amit Sunil Dhamne <amitsd@xxxxxxxxxx> > Reviewed-by: Badhri Jagan Sridharan <badhri@xxxxxxxxxx> > --- > drivers/usb/typec/pd.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/usb/typec/pd.c b/drivers/usb/typec/pd.c > index d78c04a421bc..761fe4dddf1b 100644 > --- a/drivers/usb/typec/pd.c > +++ b/drivers/usb/typec/pd.c > @@ -519,7 +519,7 @@ EXPORT_SYMBOL_GPL(usb_power_delivery_register_capabilities); > */ > void usb_power_delivery_unregister_capabilities(struct usb_power_delivery_capabilities *cap) > { > - if (!cap) > + if (IS_ERR_OR_NULL(cap)) This feels like there's a wrong caller, why would this be called with an error value in the first place? Why not fix that? And why would this be called with NULL as well in the first place? thanks, greg k-h