[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120509192549.GC15527@herton-ThinkPad-T420>
Date: Wed, 9 May 2012 12:25:50 -0700
From: Herton Ronaldo Krzesinski <herton.krzesinski@...onical.com>
To: Ben Hutchings <ben@...adent.org.uk>
Cc: linux-kernel@...r.kernel.org, stable@...r.kernel.org,
torvalds@...ux-foundation.org, akpm@...ux-foundation.org,
alan@...rguk.ukuu.org.uk, Kishon Vijay Abraham I <kishon@...com>,
Partha Basak <p-basak2@...com>, Felipe Balbi <balbi@...com>
Subject: Re: [ 035/167] [PATCH] usb: gadget: udc-core: fix asymmetric calls
in remove_driver
On Wed, May 09, 2012 at 06:51:04AM +0100, Ben Hutchings wrote:
> 3.2-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Kishon Vijay Abraham I <kishon@...com>
>
> commit 8ae8090c82eb407267001f75b3d256b3bd4ae691 upstream.
After applying this it seems we need also this upstream commit applied
in addition:
320cd1e750f1bf3e47eb41209dcb2be07264cb76
>
> During modprobe of gadget driver, pullup is called after
> udc_start. In order to make the exit path symmetric when
> removing a gadget driver, call pullup before ->udc_stop.
>
> This is needed to avoid issues with PM where udc_stop
> disables the module completely (put IP in reset state,
> cut functional and interface clocks, and so on), which
> prevents us from accessing the IP's address space,
> thus creating the possibility of an abort exception
> when we try to access IP's address space after clocks
> are off.
>
> Signed-off-by: Partha Basak <p-basak2@...com>
> Signed-off-by: Kishon Vijay Abraham I <kishon@...com>
> Signed-off-by: Felipe Balbi <balbi@...com>
> Signed-off-by: Ben Hutchings <ben@...adent.org.uk>
> ---
> drivers/usb/gadget/udc-core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
> index c261887..2fa9865 100644
> --- a/drivers/usb/gadget/udc-core.c
> +++ b/drivers/usb/gadget/udc-core.c
> @@ -264,8 +264,8 @@ static void usb_gadget_remove_driver(struct usb_udc *udc)
> if (udc_is_newstyle(udc)) {
> udc->driver->disconnect(udc->gadget);
> udc->driver->unbind(udc->gadget);
> - usb_gadget_udc_stop(udc->gadget, udc->driver);
> usb_gadget_disconnect(udc->gadget);
> + usb_gadget_udc_stop(udc->gadget, udc->driver);
> } else {
> usb_gadget_stop(udc->gadget, udc->driver);
> }
> --
> 1.7.10
>
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to majordomo@...r.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists