Commit 4e28f79e authored by Fedor Pchelkin's avatar Fedor Pchelkin Committed by Greg Kroah-Hartman
Browse files

usb: chipidea: ci_hdrc_imx: fix usbmisc handling



usbmisc is an optional device property so it is totally valid for the
corresponding data->usbmisc_data to have a NULL value.

Check that before dereferencing the pointer.

Found by Linux Verification Center (linuxtesting.org) with Svace static
analysis tool.

Fixes: 74adad50 ("usb: chipidea: ci_hdrc_imx: decrement device's refcount in .remove() and in the error path of .probe()")
Cc: stable <stable@kernel.org>
Signed-off-by: default avatarFedor Pchelkin <pchelkin@ispras.ru>
Acked-by: default avatarPeter Chen <peter.chen@kernel.org>
Link: https://lore.kernel.org/r/20250316102658.490340-2-pchelkin@ispras.ru


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 66e1a887
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -534,6 +534,7 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev)
		cpu_latency_qos_remove_request(&data->pm_qos_req);
	data->ci_pdev = NULL;
err_put:
	if (data->usbmisc_data)
		put_device(data->usbmisc_data->dev);
	return ret;
}
@@ -559,6 +560,7 @@ static void ci_hdrc_imx_remove(struct platform_device *pdev)
		if (data->hsic_pad_regulator)
			regulator_disable(data->hsic_pad_regulator);
	}
	if (data->usbmisc_data)
		put_device(data->usbmisc_data->dev);
}