All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Arend van Spriel" <arend@broadcom.com>
To: "Peter Zijlstra" <peterz@infradead.org>
Cc: "Ingo Molnar" <mingo@redhat.com>, "Tejun Heo" <tj@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: lockdep info message
Date: Fri, 26 Oct 2012 15:19:53 +0200	[thread overview]
Message-ID: <508A8DF9.4080607@broadcom.com> (raw)
In-Reply-To: <1351250734.16863.26.camel@twins>

On 10/26/2012 01:25 PM, Peter Zijlstra wrote:
> On Fri, 2012-10-26 at 12:15 +0200, Arend van Spriel wrote:
>> Hi Peter and/or Ingo,
>>
>> I am working on a driver (brcmfmac) and when unloading it or unplugging
>> the device I get this info message (see below) upon calling
>> cancel_work_sync(). Just wondering if there is something I need to do in
>> the driver or should it be done in workqueue code.
>
> Your driver, as that's the one allocating the struct work_struct thingy.
>
> You've either failed to use INIT_WORK() or need to use
> INIT_WORK_ONSTACK() if that's appropriate. It looks like you could have
> used DECLARE*_WORK inside a function or something similar.
>
> Anyway, without the driver code present I can't really say much more.
>

I assume INIT_WORK_ONSTACK() can only be used when scheduling process 
waits for the work to complete. The work_struct is located inside a 
driver structure that is allocated upon device probe.

struct brcmf_fweh_info {
	struct work_struct event_work;
};

and it is initialized in that context using:

	INIT_WORK(&fweh->event_work, brcmf_fweh_event_worker);

and used in another context:

	schedule_work(&fweh->event_work);

When cleaning up I do:

	cancel_work_sync(&fweh->event_work);

I can also submit the patch with the entire code as RFC if you do not 
object digging through a couple of hundred lines.

Gr. AvS


      reply	other threads:[~2012-10-26 13:20 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-26 10:15 lockdep info message Arend van Spriel
2012-10-26 11:25 ` Peter Zijlstra
2012-10-26 13:19   ` Arend van Spriel [this message]

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=508A8DF9.4080607@broadcom.com \
    --to=arend@broadcom.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tj@kernel.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.