From: Giridhar Pemmasani <giri@lmc.cs.sunysb.edu>
To: Daniel Phillips <phillips@istop.com>
Cc: linux-kernel@vger.kernel.org, Andi Kleen <ak@suse.de>
Subject: Re: RFC: i386: kill !4KSTACKS
Date: Tue, 06 Sep 2005 18:42:17 -0400 [thread overview]
Message-ID: <20050906224217.2FABFEF4D4@wolfe.lmc.cs.sunysb.edu> (raw)
In-Reply-To: <200509061819.45567.phillips@istop.com>
On Tue, 6 Sep 2005 18:19:45 -0400, Daniel Phillips <phillips@istop.com> said:
Daniel> There are only two stacks involved, the normal kernel stack
Daniel> and your new ndis stack. You save ESP of the kernel stack
Sadly, that is not the case: Some drivers, especially USB drivers,
create multiple threads (those threads are created through
ndiswrapper, so if any massaging needs to be done, ndiswrapper can do
that). However, it is not multiple threads that is the problem, but
switching of stacks. On transition from Windows function to Linux
function, we need to copy the arguments that are in Windows stack into
Linux stack so Linux function gets the arguments. We need to do same
thing in the reverse direction. As mentioned before, this gets
complicated with different calling conventions and different number of
arguments to functions. Moreover, if Linux kernel decides to suspend a
thread while it is executing Windows function, kernel sees an invalid
stack.
Daniel> You will allocate your own stack once on driver
Daniel> initialization.
Rather, whenever a new thread is created.
Daniel> I missed something there. You would switch stacks before
Daniel> calling the Windows code and after the Windows code calls
Daniel> you (and respective returns) so you are always in your own
Daniel> code when you switch, hence you know how to copy the
Daniel> parameters.
This is not impossible, but messy (even if the very idea ndiswrapper
itself sounds scary to some).
Daniel> By the way, I use ndis_wrapper, thanks a lot you guys!
Good to know you are happy.
--
Giri
next prev parent reply other threads:[~2005-09-06 22:42 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-04 14:51 Alex Davis
2005-09-04 17:11 ` Stefan Smietanowski
2005-09-04 17:11 ` Dr. David Alan Gilbert
2005-09-04 17:19 ` Alan Cox
2005-09-06 4:37 ` Andi Kleen
2005-09-06 6:39 ` Denis Vlasenko
2005-09-06 7:13 ` Andi Kleen
2005-09-06 7:32 ` Nick Piggin
2005-09-06 7:50 ` Andi Kleen
2005-09-06 13:29 ` Diego Calleja
2005-09-06 13:25 ` Giridhar Pemmasani
2005-09-06 17:05 ` Jan Kiszka
2005-09-06 17:23 ` Giridhar Pemmasani
2005-09-06 18:42 ` linux-os (Dick Johnson)
2005-09-06 18:46 ` viro
2005-09-06 19:42 ` Jan Kiszka
2005-09-06 20:21 ` linux-os (Dick Johnson)
2005-09-07 17:46 ` Bill Davidsen
2005-09-07 17:54 ` Jan Kiszka
2005-09-07 19:52 ` Daniel Phillips
2005-09-07 20:17 ` Daniel Phillips
2005-09-07 20:29 ` Jan Kiszka
2005-09-07 20:28 ` Jan Kiszka
2005-09-07 21:57 ` Giridhar Pemmasani
2005-09-07 23:25 ` Jan Kiszka
2005-09-08 1:06 ` Giridhar Pemmasani
2005-09-08 19:43 ` Bill Davidsen
2005-09-06 22:19 ` Daniel Phillips
2005-09-06 22:21 ` Andi Kleen
2005-09-06 22:36 ` Daniel Phillips
2005-09-06 23:40 ` Steven Rostedt
2005-09-06 22:28 ` Roland Dreier
2005-09-07 0:04 ` Daniel Phillips
2005-09-06 22:42 ` Giridhar Pemmasani [this message]
2005-09-07 1:59 ` Mark Lord
2005-09-07 3:46 ` Lee Revell
2005-09-07 4:16 ` Daniel Phillips
2005-09-07 5:48 ` Daniel Phillips
2005-09-07 16:43 ` Bill Davidsen
2005-09-08 0:44 ` Alex Davis
-- strict thread matches above, loose matches on Subject: below --
2005-09-06 10:29 Chuck Ebbert
2005-09-05 2:00 Alex Davis
2005-09-05 2:07 ` Sean
2005-09-05 2:29 ` Alex Davis
2005-09-05 3:00 ` Sean
2005-09-05 3:41 ` Alex Davis
2005-09-05 3:51 ` Sean
2005-09-05 4:03 ` Alex Davis
2005-09-05 4:12 ` Sean
2005-09-05 4:36 ` Willy Tarreau
2005-09-05 4:47 ` Sean
2005-09-05 5:01 ` Willy Tarreau
2005-09-05 5:31 ` Sean
2005-09-05 6:04 ` Willy Tarreau
2005-09-05 6:20 ` Sean
2005-09-05 6:29 ` Pekka Enberg
2005-09-05 15:29 ` Horst von Brand
2005-09-08 20:18 ` Bill Davidsen
2005-09-08 22:51 ` Sean
2005-09-05 6:41 ` Sander
2005-09-05 8:01 ` Willy Tarreau
2005-09-08 20:01 ` Bill Davidsen
2005-09-08 20:24 ` Christopher Friesen
2005-09-05 3:54 ` Kyle Moffett
2005-09-05 4:26 ` Dave Jones
2005-09-05 4:48 ` Willy Tarreau
2005-09-06 17:04 ` Benjamin LaHaise
2005-09-05 1:30 Alex Davis
2005-09-05 1:41 ` Adrian Bunk
2005-09-05 1:56 ` dean gaudet
[not found] <4I7UM-M1-1@gated-at.bofh.it>
[not found] ` <4ITG4-8nH-1@gated-at.bofh.it>
[not found] ` <4J1DC-2NU-1@gated-at.bofh.it>
2005-09-04 17:33 ` Robert Hancock
[not found] <4IcUz-7H2-27@gated-at.bofh.it>
[not found] ` <4J2gx-3zf-3@gated-at.bofh.it>
[not found] ` <4J5R1-cH-21@gated-at.bofh.it>
[not found] ` <4J6ao-L9-21@gated-at.bofh.it>
[not found] ` <4J6jZ-Xg-11@gated-at.bofh.it>
[not found] ` <4J8vt-43Y-13@gated-at.bofh.it>
2005-09-02 6:08 ` Alex Davis
2005-09-04 12:49 ` Denis Vlasenko
2005-09-04 13:30 ` Ed Tomlinson
2005-09-04 14:49 ` Alan Cox
2005-09-04 16:44 ` Paul Misner
2005-09-04 17:07 ` Pekka Enberg
2005-09-04 17:12 ` Bas Westerbaan
2005-09-04 19:22 ` Horst von Brand
2005-09-04 19:33 ` Adrian Bunk
2005-09-04 20:13 ` Bas Westerbaan
2005-09-04 20:37 ` Dave Jones
2005-09-07 16:38 ` Bill Davidsen
2005-09-07 17:53 ` Mike Galbraith
2005-09-08 19:05 ` Bill Davidsen
2005-09-05 22:32 ` Thorild Selen
2005-09-05 23:06 ` Kyle Moffett
2005-09-02 0:39 Adrian Bunk
2005-09-02 5:33 ` Chris Wedgwood
2005-09-02 6:29 ` Nathan Scott
2005-09-02 6:40 ` Neil Brown
2005-09-13 8:05 ` Alexander Nyberg
2005-10-01 22:50 ` Adrian Bunk
2005-10-02 20:35 ` Nathan Scott
2005-09-02 6:55 ` Vladimir V. Saveliev
2005-09-02 21:58 ` Hans Reiser
2005-09-04 3:48 ` Lee Revell
2005-09-04 7:36 ` Stefan Smietanowski
2005-09-04 8:23 ` Lee Revell
2005-09-04 19:39 ` Adrian Bunk
2005-09-04 12:12 ` Guillaume Chazarain
2005-09-04 13:26 ` Sander
2005-06-08 12:35 Ian Kumlien
2005-06-08 13:14 ` Denis Vlasenko
2005-06-07 21:27 Adrian Bunk
2005-06-07 21:47 ` Alexander Nyberg
2005-06-08 10:03 ` Jörn Engel
2005-06-08 10:39 ` Denis Vlasenko
2005-06-08 11:12 ` Adrian Bunk
2005-06-08 12:13 ` Denis Vlasenko
2005-07-04 18:22 ` Adrian Bunk
2005-07-05 6:14 ` Denis Vlasenko
2005-07-05 13:46 ` Horst von Brand
2005-06-08 1:52 ` Ian Kent
2005-06-08 10:42 ` Denis Vlasenko
2005-06-08 14:28 ` raven
2005-06-08 12:00 ` Vladimir Saveliev
2005-06-10 15:18 ` Vladimir Saveliev
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=20050906224217.2FABFEF4D4@wolfe.lmc.cs.sunysb.edu \
--to=giri@lmc.cs.sunysb.edu \
--cc=ak@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=phillips@istop.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®