In the case where the pxa27x_udc gadget driver is removed while no transceiver was found at probe time, the otg_put_transceiver() function should not be called. If incorrectly called, a NULL dereference pointer is thrown on driver removal. Signed-off-by: Robert Jarzmik <robert.jarzmik@xxxxxxx> --- drivers/usb/gadget/pxa27x_udc.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c index 1de0e85..5ba8291 100644 --- a/drivers/usb/gadget/pxa27x_udc.c +++ b/drivers/usb/gadget/pxa27x_udc.c @@ -2474,7 +2474,8 @@ static int __exit pxa_udc_remove(struct platform_device *_dev) if (gpio_is_valid(gpio)) gpio_free(gpio); - otg_put_transceiver(udc->transceiver); + if (udc->transceiver) + otg_put_transceiver(udc->transceiver); udc->transceiver = NULL; platform_set_drvdata(_dev, NULL); -- 1.5.6.5 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html