linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] usb: musb: sunxi: Explicitly release USB PHY on exit
@ 2017-10-10  2:45 Jonathan Liu
  2017-10-10  3:22 ` Bin Liu
  0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Liu @ 2017-10-10  2:45 UTC (permalink / raw)
  To: Bin Liu, Greg Kroah-Hartman, Maxime Ripard, Chen-Yu Tsai
  Cc: linux-usb, linux-arm-kernel, linux-kernel, linux-sunxi, Jonathan Liu

This fixes a kernel oops when unloading the driver due to usb_put_phy
being called after usb_phy_generic_unregister when the device is
detached. Calling usb_phy_generic_unregister causes x->dev->driver to
be NULL in usb_put_phy and results in a NULL pointer dereference.

Cc: stable@vger.kernel.org # v4.3+
Signed-off-by: Jonathan Liu <net147@gmail.com>
---
Changes for v2:
 - Use devm_usb_put_phy instead of usb_put_phy

 drivers/usb/musb/sunxi.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c
index c9a09b5bb6e5..dc353e24d53c 100644
--- a/drivers/usb/musb/sunxi.c
+++ b/drivers/usb/musb/sunxi.c
@@ -297,6 +297,8 @@ static int sunxi_musb_exit(struct musb *musb)
 	if (test_bit(SUNXI_MUSB_FL_HAS_SRAM, &glue->flags))
 		sunxi_sram_release(musb->controller->parent);
 
+	devm_usb_put_phy(glue->dev, glue->xceiv);
+
 	return 0;
 }
 
-- 
2.14.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] usb: musb: sunxi: Explicitly release USB PHY on exit
  2017-10-10  2:45 [PATCH v2] usb: musb: sunxi: Explicitly release USB PHY on exit Jonathan Liu
@ 2017-10-10  3:22 ` Bin Liu
  2017-10-16  5:13   ` Jonathan Liu
  0 siblings, 1 reply; 6+ messages in thread
From: Bin Liu @ 2017-10-10  3:22 UTC (permalink / raw)
  To: Jonathan Liu
  Cc: Greg Kroah-Hartman, Maxime Ripard, Chen-Yu Tsai, linux-usb,
	linux-arm-kernel, linux-kernel, linux-sunxi

On Tue, Oct 10, 2017 at 01:45:25PM +1100, Jonathan Liu wrote:
> This fixes a kernel oops when unloading the driver due to usb_put_phy
> being called after usb_phy_generic_unregister when the device is
> detached. Calling usb_phy_generic_unregister causes x->dev->driver to
> be NULL in usb_put_phy and results in a NULL pointer dereference.
> 
> Cc: stable@vger.kernel.org # v4.3+
> Signed-off-by: Jonathan Liu <net147@gmail.com>
> ---
> Changes for v2:
>  - Use devm_usb_put_phy instead of usb_put_phy
> 
>  drivers/usb/musb/sunxi.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c
> index c9a09b5bb6e5..dc353e24d53c 100644
> --- a/drivers/usb/musb/sunxi.c
> +++ b/drivers/usb/musb/sunxi.c
> @@ -297,6 +297,8 @@ static int sunxi_musb_exit(struct musb *musb)
>  	if (test_bit(SUNXI_MUSB_FL_HAS_SRAM, &glue->flags))
>  		sunxi_sram_release(musb->controller->parent);
>  
> +	devm_usb_put_phy(glue->dev, glue->xceiv);
> +
>  	return 0;
>  }


Applied. Thanks.
-Bin.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] usb: musb: sunxi: Explicitly release USB PHY on exit
  2017-10-10  3:22 ` Bin Liu
@ 2017-10-16  5:13   ` Jonathan Liu
  2017-10-16 12:49     ` Bin Liu
  0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Liu @ 2017-10-16  5:13 UTC (permalink / raw)
  To: Bin Liu, Jonathan Liu, Greg Kroah-Hartman, Maxime Ripard,
	Chen-Yu Tsai, linux-usb, linux-arm-kernel, linux-kernel,
	linux-sunxi

On 10 October 2017 at 14:22, Bin Liu <b-liu@ti.com> wrote:
> On Tue, Oct 10, 2017 at 01:45:25PM +1100, Jonathan Liu wrote:
>> This fixes a kernel oops when unloading the driver due to usb_put_phy
>> being called after usb_phy_generic_unregister when the device is
>> detached. Calling usb_phy_generic_unregister causes x->dev->driver to
>> be NULL in usb_put_phy and results in a NULL pointer dereference.
>>
>> Cc: stable@vger.kernel.org # v4.3+
>> Signed-off-by: Jonathan Liu <net147@gmail.com>
>> ---
>> Changes for v2:
>>  - Use devm_usb_put_phy instead of usb_put_phy
>>
>>  drivers/usb/musb/sunxi.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c
>> index c9a09b5bb6e5..dc353e24d53c 100644
>> --- a/drivers/usb/musb/sunxi.c
>> +++ b/drivers/usb/musb/sunxi.c
>> @@ -297,6 +297,8 @@ static int sunxi_musb_exit(struct musb *musb)
>>       if (test_bit(SUNXI_MUSB_FL_HAS_SRAM, &glue->flags))
>>               sunxi_sram_release(musb->controller->parent);
>>
>> +     devm_usb_put_phy(glue->dev, glue->xceiv);
>> +
>>       return 0;
>>  }
>
>

> Applied. Thanks.
> -Bin.

Which repository was it applied to?

Regards,
Jonathan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] usb: musb: sunxi: Explicitly release USB PHY on exit
  2017-10-16  5:13   ` Jonathan Liu
@ 2017-10-16 12:49     ` Bin Liu
  2017-10-16 12:54       ` Jonathan Liu
  0 siblings, 1 reply; 6+ messages in thread
From: Bin Liu @ 2017-10-16 12:49 UTC (permalink / raw)
  To: Jonathan Liu
  Cc: Greg Kroah-Hartman, Maxime Ripard, Chen-Yu Tsai, linux-usb,
	linux-arm-kernel, linux-kernel, linux-sunxi

On Mon, Oct 16, 2017 at 04:13:51PM +1100, Jonathan Liu wrote:
> On 10 October 2017 at 14:22, Bin Liu <b-liu@ti.com> wrote:
> > On Tue, Oct 10, 2017 at 01:45:25PM +1100, Jonathan Liu wrote:
> >> This fixes a kernel oops when unloading the driver due to usb_put_phy
> >> being called after usb_phy_generic_unregister when the device is
> >> detached. Calling usb_phy_generic_unregister causes x->dev->driver to
> >> be NULL in usb_put_phy and results in a NULL pointer dereference.
> >>
> >> Cc: stable@vger.kernel.org # v4.3+
> >> Signed-off-by: Jonathan Liu <net147@gmail.com>
> >> ---
> >> Changes for v2:
> >>  - Use devm_usb_put_phy instead of usb_put_phy
> >>
> >>  drivers/usb/musb/sunxi.c | 2 ++
> >>  1 file changed, 2 insertions(+)
> >>
> >> diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c
> >> index c9a09b5bb6e5..dc353e24d53c 100644
> >> --- a/drivers/usb/musb/sunxi.c
> >> +++ b/drivers/usb/musb/sunxi.c
> >> @@ -297,6 +297,8 @@ static int sunxi_musb_exit(struct musb *musb)
> >>       if (test_bit(SUNXI_MUSB_FL_HAS_SRAM, &glue->flags))
> >>               sunxi_sram_release(musb->controller->parent);
> >>
> >> +     devm_usb_put_phy(glue->dev, glue->xceiv);
> >> +
> >>       return 0;
> >>  }
> >
> >
> 
> > Applied. Thanks.
> > -Bin.
> 
> Which repository was it applied to?

I don't have a public repo (yet), but the patch has been sent to Greg,
so it should be merged into the next -rc.

Regards,
-Bin.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] usb: musb: sunxi: Explicitly release USB PHY on exit
  2017-10-16 12:49     ` Bin Liu
@ 2017-10-16 12:54       ` Jonathan Liu
  2017-10-17  4:20         ` Bin Liu
  0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Liu @ 2017-10-16 12:54 UTC (permalink / raw)
  To: Bin Liu, Jonathan Liu, Greg Kroah-Hartman, Maxime Ripard,
	Chen-Yu Tsai, linux-usb, linux-arm-kernel, linux-kernel,
	linux-sunxi

On 16 October 2017 at 23:49, Bin Liu <b-liu@ti.com> wrote:
> On Mon, Oct 16, 2017 at 04:13:51PM +1100, Jonathan Liu wrote:
>> On 10 October 2017 at 14:22, Bin Liu <b-liu@ti.com> wrote:
>> > On Tue, Oct 10, 2017 at 01:45:25PM +1100, Jonathan Liu wrote:
>> >> This fixes a kernel oops when unloading the driver due to usb_put_phy
>> >> being called after usb_phy_generic_unregister when the device is
>> >> detached. Calling usb_phy_generic_unregister causes x->dev->driver to
>> >> be NULL in usb_put_phy and results in a NULL pointer dereference.
>> >>
>> >> Cc: stable@vger.kernel.org # v4.3+
>> >> Signed-off-by: Jonathan Liu <net147@gmail.com>
>> >> ---
>> >> Changes for v2:
>> >>  - Use devm_usb_put_phy instead of usb_put_phy
>> >>
>> >>  drivers/usb/musb/sunxi.c | 2 ++
>> >>  1 file changed, 2 insertions(+)
>> >>
>> >> diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c
>> >> index c9a09b5bb6e5..dc353e24d53c 100644
>> >> --- a/drivers/usb/musb/sunxi.c
>> >> +++ b/drivers/usb/musb/sunxi.c
>> >> @@ -297,6 +297,8 @@ static int sunxi_musb_exit(struct musb *musb)
>> >>       if (test_bit(SUNXI_MUSB_FL_HAS_SRAM, &glue->flags))
>> >>               sunxi_sram_release(musb->controller->parent);
>> >>
>> >> +     devm_usb_put_phy(glue->dev, glue->xceiv);
>> >> +
>> >>       return 0;
>> >>  }
>> >
>> >
>>
>> > Applied. Thanks.
>> > -Bin.
>>
>> Which repository was it applied to?
>
> I don't have a public repo (yet), but the patch has been sent to Greg,
> so it should be merged into the next -rc.
>
> Regards,
> -Bin.

The MAINTAINERS file has
git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git listed as
the tree for drivers/usb/musb/. I guess that should be updated.

Regards,
Jonathan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] usb: musb: sunxi: Explicitly release USB PHY on exit
  2017-10-16 12:54       ` Jonathan Liu
@ 2017-10-17  4:20         ` Bin Liu
  0 siblings, 0 replies; 6+ messages in thread
From: Bin Liu @ 2017-10-17  4:20 UTC (permalink / raw)
  To: Jonathan Liu
  Cc: Greg Kroah-Hartman, Maxime Ripard, Chen-Yu Tsai, linux-usb,
	linux-arm-kernel, linux-kernel, linux-sunxi

On Mon, Oct 16, 2017 at 11:54:27PM +1100, Jonathan Liu wrote:
> On 16 October 2017 at 23:49, Bin Liu <b-liu@ti.com> wrote:
> > On Mon, Oct 16, 2017 at 04:13:51PM +1100, Jonathan Liu wrote:
> >> On 10 October 2017 at 14:22, Bin Liu <b-liu@ti.com> wrote:
> >> > On Tue, Oct 10, 2017 at 01:45:25PM +1100, Jonathan Liu wrote:
> >> >> This fixes a kernel oops when unloading the driver due to usb_put_phy
> >> >> being called after usb_phy_generic_unregister when the device is
> >> >> detached. Calling usb_phy_generic_unregister causes x->dev->driver to
> >> >> be NULL in usb_put_phy and results in a NULL pointer dereference.
> >> >>
> >> >> Cc: stable@vger.kernel.org # v4.3+
> >> >> Signed-off-by: Jonathan Liu <net147@gmail.com>
> >> >> ---
> >> >> Changes for v2:
> >> >>  - Use devm_usb_put_phy instead of usb_put_phy
> >> >>
> >> >>  drivers/usb/musb/sunxi.c | 2 ++
> >> >>  1 file changed, 2 insertions(+)
> >> >>
> >> >> diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c
> >> >> index c9a09b5bb6e5..dc353e24d53c 100644
> >> >> --- a/drivers/usb/musb/sunxi.c
> >> >> +++ b/drivers/usb/musb/sunxi.c
> >> >> @@ -297,6 +297,8 @@ static int sunxi_musb_exit(struct musb *musb)
> >> >>       if (test_bit(SUNXI_MUSB_FL_HAS_SRAM, &glue->flags))
> >> >>               sunxi_sram_release(musb->controller->parent);
> >> >>
> >> >> +     devm_usb_put_phy(glue->dev, glue->xceiv);
> >> >> +
> >> >>       return 0;
> >> >>  }
> >> >
> >> >
> >>
> >> > Applied. Thanks.
> >> > -Bin.
> >>
> >> Which repository was it applied to?
> >
> > I don't have a public repo (yet), but the patch has been sent to Greg,
> > so it should be merged into the next -rc.
> >
> > Regards,
> > -Bin.
> 
> The MAINTAINERS file has
> git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git listed as
> the tree for drivers/usb/musb/. I guess that should be updated.

I will create a patch for it. Thanks for reporting this.

Regards,
-Bin.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-10-17  4:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-10  2:45 [PATCH v2] usb: musb: sunxi: Explicitly release USB PHY on exit Jonathan Liu
2017-10-10  3:22 ` Bin Liu
2017-10-16  5:13   ` Jonathan Liu
2017-10-16 12:49     ` Bin Liu
2017-10-16 12:54       ` Jonathan Liu
2017-10-17  4:20         ` Bin Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).