All of lore.kernel.org
 help / color / mirror / Atom feed
From: richard.zhao@freescale.com (Richard Zhao)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 04/11] USB: chipidea: clear gadget struct at udc_start fail path
Date: Wed, 29 Aug 2012 16:22:55 +0800	[thread overview]
Message-ID: <20120829082254.GH4011@b20223-02.ap.freescale.net> (raw)
In-Reply-To: <87y5kyjfa3.fsf@ashishki-desk.ger.corp.intel.com>

On Wed, Aug 29, 2012 at 11:03:48AM +0300, Alexander Shishkin wrote:
> Richard Zhao <richard.zhao@freescale.com> writes:
> 
> > On Tue, Aug 28, 2012 at 11:29:35AM +0300, Alexander Shishkin wrote:
> >> Richard Zhao <richard.zhao@freescale.com> writes:
> >> 
> >> > States in gadget are not needed any more, set it to zero.
> >> 
> >> It's generally a good practice to mention in the commit message what is
> >> it that you are fixing with this patch.
> > It fixes the following dump if udc_start register gadget->dev but fail
> > the start process:
> > kobject (bf8330a0): tried to init an initialized object, something is seriously wrong.
> > [<80011d90>] (dump_backtrace+0x0/0x10c) from [<804b65ac>] (dump_stack+0x18/0x1c)
> > [<804b6594>] (dump_stack+0x0/0x1c) from [<80247d98>] (kobject_init+0x7c/0x9c)
> > [<80247d1c>] (kobject_init+0x0/0x9c) from [<802a3870>] (device_initialize+0x28/0x70)
> > [<802a3848>] (device_initialize+0x0/0x70) from [<802a4798>] (device_register+0x14/0x20)
> > [<802a4784>] (device_register+0x0/0x20) from [<80359a70>] (udc_start+0x180/0x2c8)
> > [<803598f0>] (udc_start+0x0/0x2c8) from [<80356e9c>] (ci_role_work+0xc8/0xec)
> > [<80356dd4>] (ci_role_work+0x0/0xec) from [<8003a8a0>] (process_one_work+0x158/0x474)
> > [<8003a748>] (process_one_work+0x0/0x474) from [<8003af6c>] (worker_thread+0x140/0x3b4)
> > [<8003ae2c>] (worker_thread+0x0/0x3b4) from [<8003fe60>] (kthread+0x90/0x9c)
> > [<8003fdd0>] (kthread+0x0/0x9c) from [<8002774c>] (do_exit+0x0/0x350)
> >> 
> >> > Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
> >> > ---
> >> >  drivers/usb/chipidea/udc.c |    1 +
> >> >  1 file changed, 1 insertion(+)
> >> >
> >> > diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
> >> > index c7a032a..9fb6394 100644
> >> > --- a/drivers/usb/chipidea/udc.c
> >> > +++ b/drivers/usb/chipidea/udc.c
> >> > @@ -1746,6 +1746,7 @@ free_pools:
> >> >  	dma_pool_destroy(ci->td_pool);
> >> >  free_qh_pool:
> >> >  	dma_pool_destroy(ci->qh_pool);
> >> > +	memset(&ci->gadget, 0, sizeof(ci->gadget));
> >> 
> >> I understand that you're probably hitting "kobject already initialized"
> >> warning here, but I think the real problem is that this function gets
> >> called twice and fails the first time. Why does that happen?
> > I saw the dump at early stage of adding imx otg support, when there's
> > things not ready. I think it's less important why udc_start fail,
> > because no one enable imx otg before.  It's important when it fails,
> > the dump shows up.
> 
> I'd prefer that whenever udc_start() fails it doesn't go unnoticed,
> except probably for the cases when it fails due to transceiver not being
> ready at the probe time, which needs to be handled separately.
Is it related to the patch? The patch is logically right that reset the
status, agree?

Thanks
Richard
> 
> Regards,
> --
> Alex
> 

  reply	other threads:[~2012-08-29  8:22 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-28  7:03 [PATCH v2 00/11] chipidea/imx: add otg support and some bug fix Richard Zhao
2012-08-28  7:03 ` [PATCH v2 01/11] USB: chipidea: imx: add pinctrl support Richard Zhao
2012-08-28  7:03 ` [PATCH v2 02/11] USB: chipidea: delay 2ms before read ID status at probe time Richard Zhao
2012-08-28  7:03 ` [PATCH v2 03/11] USB: chipidea: move OTGSC_IDIS clearing from ci_role_work to irq handler Richard Zhao
2012-08-28  7:03 ` [PATCH v2 04/11] USB: chipidea: clear gadget struct at udc_start fail path Richard Zhao
2012-08-28  8:29   ` Alexander Shishkin
2012-08-28  9:09     ` Richard Zhao
2012-08-29  8:03       ` Alexander Shishkin
2012-08-29  8:22         ` Richard Zhao [this message]
2012-08-29  9:44           ` Alexander Shishkin
2012-08-29 10:37             ` Richard Zhao
2012-08-28  7:03 ` [PATCH v2 05/11] USB: chipidea: don't let probe fail if otg controller start one role failed Richard Zhao
2012-08-28  8:38   ` Alexander Shishkin
2012-08-28  9:27     ` Richard Zhao
2012-08-29  8:10       ` Alexander Shishkin
2012-08-29  8:33         ` Richard Zhao
2012-08-29  9:48           ` Alexander Shishkin
2012-08-29 10:46             ` Richard Zhao
2012-09-04 14:17               ` Richard Zhao
2012-09-11  7:23               ` Alexander Shishkin
2012-09-11  8:18                 ` Richard Zhao
2012-09-12 10:47                   ` Alexander Shishkin
2012-09-14  8:35                     ` Richard Zhao
2012-09-14 10:25                       ` Alexander Shishkin
2012-09-17  8:59                         ` Richard Zhao
2012-08-28  7:03 ` [PATCH v2 06/11] USB: mxs-phy: add basic otg support Richard Zhao
2012-09-11  9:05   ` Felipe Balbi
2012-09-12 10:39   ` Heikki Krogerus
2012-09-14  8:30     ` Richard Zhao
2012-09-14  8:56   ` Chen Peter-B29397
2012-09-14 10:53     ` Richard Zhao
2012-08-28  7:03 ` [PATCH v2 07/11] USB: chipidea: add vbus detect for udc Richard Zhao
2012-08-28  7:03 ` [PATCH v2 08/11] USB: chipidea: convert to use devm_request_irq Richard Zhao
2012-08-28  7:03 ` [PATCH v2 09/11] USB: chipidea: add -DDEBUG if CONFIG_USB_CHIPIDEA_DEBUG Richard Zhao
2012-08-28  7:03 ` [PATCH v2 10/11] USB: chipidea: add set_vbus_power support Richard Zhao
2012-09-19  1:25   ` Richard Zhao
2012-08-28  7:03 ` [PATCH v2 11/11] USB: chipidea: re-order irq handling to avoid unhandled irq Richard Zhao
2012-09-05 14:27 ` [PATCH v2 00/11] chipidea/imx: add otg support and some bug fix Marc Kleine-Budde
2012-09-05 15:01 ` Michael Grzeschik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120829082254.GH4011@b20223-02.ap.freescale.net \
    --to=richard.zhao@freescale.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.