From: Andrew Morton <akpm@osdl.org>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: matthew@wil.cx, linux-scsi@vger.kernel.org
Subject: Re: [SCSI] fix scsi_reap_target() device_del from atomic context
Date: Fri, 23 Dec 2005 19:54:36 -0800 [thread overview]
Message-ID: <20051223195436.18fd5a1e.akpm@osdl.org> (raw)
In-Reply-To: <1135353536.3728.15.camel@mulgrave>
James Bottomley <James.Bottomley@SteelEye.com> wrote:
>
> > Perhaps you could use work_struct.data for the scsi_target* and get back to
> > the work_struct via container_of().
>
> Could you elaborate some more on this? If I simply use the starget
> pointer as my work_struct.data, how do I get back to the actual
> work_struct for me to free it? It's not passed in to the function as
> far as I can tell. But even if I do this, I still have to manage the
> allocation and deallocation of the work_struct.
>
err, no, I'm full of it. container_of() does pointer arithmetic to convert
a pointer to foo.bar into a pointer to foo. But in this case the callback
would have the value of work_struct.data, not the address of it, so it
cannot be done.
Most usage in drivers would be something like:
struct driver_thing {
...
struct work_struct work;
};
and driver_thing.work.data gets a driver_thing* put into it. So the need
to separately kmalloc the work_struct+data wrapper is relatively unusual.
next prev parent reply other threads:[~2005-12-24 3:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200512212359.jBLNxluV016971@hera.kernel.org>
2005-12-23 6:13 ` [SCSI] fix scsi_reap_target() device_del from atomic context Andrew Morton
2005-12-23 12:15 ` Matthew Wilcox
2005-12-23 15:27 ` James Bottomley
2005-12-23 15:38 ` Andrew Morton
2005-12-23 15:58 ` James Bottomley
2005-12-24 3:54 ` Andrew Morton [this message]
2005-12-23 20:05 ` Andrew Vasquez
2005-12-23 20:30 ` James Bottomley
2005-12-23 20:46 ` Andrew Vasquez
2005-12-23 20:43 ` Sergey Vlasov
2005-12-23 20:53 ` James Bottomley
2005-12-23 21:26 ` Sergey Vlasov
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=20051223195436.18fd5a1e.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=James.Bottomley@SteelEye.com \
--cc=linux-scsi@vger.kernel.org \
--cc=matthew@wil.cx \
/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.