diff --git a/drivers/usb/gadget/function/f_qdss.c b/drivers/usb/gadget/function/f_qdss.c index b0c12a699557..8d8ed9fb0812 100644 --- a/drivers/usb/gadget/function/f_qdss.c +++ b/drivers/usb/gadget/function/f_qdss.c @@ -256,12 +256,13 @@ void usb_qdss_free_req(struct usb_qdss_ch *ch) unsigned long flags; spin_lock_irqsave(&channel_lock, flags); - qdss = ch->priv_usb; - if (!qdss) { + if (ch == NULL || ch->priv_usb == NULL) { spin_unlock_irqrestore(&channel_lock, flags); - pr_err("%s: qdss ctx is NULL\n", __func__); + pr_err("%s: qdss channel or qdss ctx is NULL\n", __func__); return; } + + qdss = ch->priv_usb; spin_unlock_irqrestore(&channel_lock, flags); spin_lock_irqsave(&qdss->lock, flags);