* [PATCH] extcon: intel-int3496: Fix oops on probe @ 2018-02-11 23:26 ` Hans de Goede 2018-02-11 23:36 ` Chanwoo Choi 0 siblings, 1 reply; 3+ messages in thread From: Hans de Goede @ 2018-02-11 23:26 UTC (permalink / raw) To: MyungJoo Ham, Chanwoo Choi; +Cc: Hans de Goede, linux-kernel, stable Commit 41d600274fbf ("extcon: int3496: process id-pin first so that we start with the right status") starts the work on the workqueue before registration to make sure we've a valid cable state directly after registration. But that commit moves the queuing of the work to before we even alloc the extcon, causing a NULL pointer deref in the worker. This commit moves the queuing of the work to after we alloc the extcon, fixing the NULL pointer deref. Fixes: 41d600274fbf ("extcon: int3496: process id-pin first ...") Cc: stable@vger.kernel.org Signed-off-by: Hans de Goede <hdegoede@redhat.com> --- drivers/extcon/extcon-intel-int3496.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/extcon/extcon-intel-int3496.c b/drivers/extcon/extcon-intel-int3496.c index b23ee9d993a3..673bb26a9a2a 100644 --- a/drivers/extcon/extcon-intel-int3496.c +++ b/drivers/extcon/extcon-intel-int3496.c @@ -131,15 +131,15 @@ static int int3496_probe(struct platform_device *pdev) if (IS_ERR(data->gpio_usb_mux)) dev_info(dev, "can't request USB MUX GPIO\n"); + data->edev = devm_extcon_dev_allocate(dev, int3496_cable); + if (IS_ERR(data->edev)) + return -ENOMEM; + /* process id-pin first so that we start with the right status */ queue_delayed_work(system_wq, &data->work, 0); flush_delayed_work(&data->work); /* register extcon device */ - data->edev = devm_extcon_dev_allocate(dev, int3496_cable); - if (IS_ERR(data->edev)) - return -ENOMEM; - ret = devm_extcon_dev_register(dev, data->edev); if (ret < 0) { dev_err(dev, "can't register extcon device: %d\n", ret); -- 2.14.3 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] extcon: intel-int3496: Fix oops on probe 2018-02-11 23:26 ` [PATCH] extcon: intel-int3496: Fix oops on probe Hans de Goede @ 2018-02-11 23:36 ` Chanwoo Choi 2018-02-12 19:46 ` Hans de Goede 0 siblings, 1 reply; 3+ messages in thread From: Chanwoo Choi @ 2018-02-11 23:36 UTC (permalink / raw) To: Hans de Goede, MyungJoo Ham; +Cc: linux-kernel, stable On 2018년 02월 12일 08:26, Hans de Goede wrote: > Commit 41d600274fbf ("extcon: int3496: process id-pin first so that we > start with the right status") starts the work on the workqueue before > registration to make sure we've a valid cable state directly after > registration. > > But that commit moves the queuing of the work to before we even alloc the > extcon, causing a NULL pointer deref in the worker. > > This commit moves the queuing of the work to after we alloc the extcon, > fixing the NULL pointer deref. > > Fixes: 41d600274fbf ("extcon: int3496: process id-pin first ...") > Cc: stable@vger.kernel.org > Signed-off-by: Hans de Goede <hdegoede@redhat.com> > --- > drivers/extcon/extcon-intel-int3496.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/extcon/extcon-intel-int3496.c b/drivers/extcon/extcon-intel-int3496.c > index b23ee9d993a3..673bb26a9a2a 100644 > --- a/drivers/extcon/extcon-intel-int3496.c > +++ b/drivers/extcon/extcon-intel-int3496.c > @@ -131,15 +131,15 @@ static int int3496_probe(struct platform_device *pdev) > if (IS_ERR(data->gpio_usb_mux)) > dev_info(dev, "can't request USB MUX GPIO\n"); > > + data->edev = devm_extcon_dev_allocate(dev, int3496_cable); > + if (IS_ERR(data->edev)) > + return -ENOMEM; > + > /* process id-pin first so that we start with the right status */ > queue_delayed_work(system_wq, &data->work, 0); > flush_delayed_work(&data->work); > > /* register extcon device */ > - data->edev = devm_extcon_dev_allocate(dev, int3496_cable); > - if (IS_ERR(data->edev)) > - return -ENOMEM; > - > ret = devm_extcon_dev_register(dev, data->edev); > if (ret < 0) { > dev_err(dev, "can't register extcon device: %d\n", ret); > Instead, You better to send v3 after merging your patch[1] and this patch. [1] extcon: int3496: process id-pin first so that we start with the right status -- Best Regards, Chanwoo Choi Samsung Electronics ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] extcon: intel-int3496: Fix oops on probe 2018-02-11 23:36 ` Chanwoo Choi @ 2018-02-12 19:46 ` Hans de Goede 0 siblings, 0 replies; 3+ messages in thread From: Hans de Goede @ 2018-02-12 19:46 UTC (permalink / raw) To: Chanwoo Choi, MyungJoo Ham; +Cc: linux-kernel, stable Hi, On 12-02-18 00:36, Chanwoo Choi wrote: > On 2018년 02월 12일 08:26, Hans de Goede wrote: >> Commit 41d600274fbf ("extcon: int3496: process id-pin first so that we >> start with the right status") starts the work on the workqueue before >> registration to make sure we've a valid cable state directly after >> registration. >> >> But that commit moves the queuing of the work to before we even alloc the >> extcon, causing a NULL pointer deref in the worker. >> >> This commit moves the queuing of the work to after we alloc the extcon, >> fixing the NULL pointer deref. >> >> Fixes: 41d600274fbf ("extcon: int3496: process id-pin first ...") >> Cc: stable@vger.kernel.org >> Signed-off-by: Hans de Goede <hdegoede@redhat.com> >> --- >> drivers/extcon/extcon-intel-int3496.c | 8 ++++---- >> 1 file changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/extcon/extcon-intel-int3496.c b/drivers/extcon/extcon-intel-int3496.c >> index b23ee9d993a3..673bb26a9a2a 100644 >> --- a/drivers/extcon/extcon-intel-int3496.c >> +++ b/drivers/extcon/extcon-intel-int3496.c >> @@ -131,15 +131,15 @@ static int int3496_probe(struct platform_device *pdev) >> if (IS_ERR(data->gpio_usb_mux)) >> dev_info(dev, "can't request USB MUX GPIO\n"); >> >> + data->edev = devm_extcon_dev_allocate(dev, int3496_cable); >> + if (IS_ERR(data->edev)) >> + return -ENOMEM; >> + >> /* process id-pin first so that we start with the right status */ >> queue_delayed_work(system_wq, &data->work, 0); >> flush_delayed_work(&data->work); >> >> /* register extcon device */ >> - data->edev = devm_extcon_dev_allocate(dev, int3496_cable); >> - if (IS_ERR(data->edev)) >> - return -ENOMEM; >> - >> ret = devm_extcon_dev_register(dev, data->edev); >> if (ret < 0) { >> dev_err(dev, "can't register extcon device: %d\n", ret); >> > > Instead, You better to send v3 after merging your patch[1] and this patch. > [1] extcon: int3496: process id-pin first so that we start with the right status Ok, I've rebased my tree on top of 4.16-rc1 and prepared a v3. During the rebase I noticed that a patch for the axp288-extcon driver which was supposed to get dropped did end up in 4.16-rc1, so I will also (resend) a revert for that. Also another extcon-axp288 driver patch seems to not have made it into 4.16-rc1, so I will resend that too. Regards, Hans ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-02-12 19:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20180211232639epcas2p4495c006e2063cde1ce86710767cd8e97@epcas2p4.samsung.com>
2018-02-11 23:26 ` [PATCH] extcon: intel-int3496: Fix oops on probe Hans de Goede
2018-02-11 23:36 ` Chanwoo Choi
2018-02-12 19:46 ` Hans de Goede
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.