Hi Roger, On 04/01/2015 08:58 PM, Roger Quadros wrote: > Hi Chanwoo, > > On 01/04/15 10:23, Robert Baldyga wrote: >> IRQ handler touches info->edev, so if interrupt occurs before extcon >> device initialization it can cause NULL pointer dereference. Doing extcon >> initialization before IRQ handler registration fixes this problem. >> >> Signed-off-by: Robert Baldyga <r.baldyga@xxxxxxxxxxx> >> Acked-by: Roger Quadros <rogerq@xxxxxx> > > Can you please pick this patch for 4.1 (or 4.1-rc) as it fixes a bug. Thanks. I already sent pull request for v4.1 and merged it. I'll send this patch for 4.1-rc. Thanks, Chanwoo Choi > > cheers, > -roger > >> --- >> drivers/extcon/extcon-usb-gpio.c | 24 ++++++++++++------------ >> 1 file changed, 12 insertions(+), 12 deletions(-) >> >> diff --git a/drivers/extcon/extcon-usb-gpio.c b/drivers/extcon/extcon-usb-gpio.c >> index 3f0bad3..f6aa99d 100644 >> --- a/drivers/extcon/extcon-usb-gpio.c >> +++ b/drivers/extcon/extcon-usb-gpio.c >> @@ -119,6 +119,18 @@ static int usb_extcon_probe(struct platform_device *pdev) >> return PTR_ERR(info->id_gpiod); >> } >> >> + info->edev = devm_extcon_dev_allocate(dev, usb_extcon_cable); >> + if (IS_ERR(info->edev)) { >> + dev_err(dev, "failed to allocate extcon device\n"); >> + return -ENOMEM; >> + } >> + >> + ret = devm_extcon_dev_register(dev, info->edev); >> + if (ret < 0) { >> + dev_err(dev, "failed to register extcon device\n"); >> + return ret; >> + } >> + >> ret = gpiod_set_debounce(info->id_gpiod, >> USB_GPIO_DEBOUNCE_MS * 1000); >> if (ret < 0) >> @@ -142,18 +154,6 @@ static int usb_extcon_probe(struct platform_device *pdev) >> return ret; >> } >> >> - info->edev = devm_extcon_dev_allocate(dev, usb_extcon_cable); >> - if (IS_ERR(info->edev)) { >> - dev_err(dev, "failed to allocate extcon device\n"); >> - return -ENOMEM; >> - } >> - >> - ret = devm_extcon_dev_register(dev, info->edev); >> - if (ret < 0) { >> - dev_err(dev, "failed to register extcon device\n"); >> - return ret; >> - } >> - >> platform_set_drvdata(pdev, info); >> device_init_wakeup(dev, 1); >> >> > > -- 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