From: Russell King <rmk@arm.linux.org.uk>
To: Linux Kernel List <linux-kernel@vger.kernel.org>
Subject: [PATCH] PCMCIA updates
Date: Tue, 22 Apr 2003 01:19:20 +0100 [thread overview]
Message-ID: <20030422011920.D30774@flint.arm.linux.org.uk> (raw)
A request for Linus to pull a set of PCMCIA changes has been made. You
can get the patch from:
http://patches.arm.linux.org.uk/pcmcia-20030421.diff
Much of this stuff has been aired on the linux-pcmcia list (iirc care of
lists.infradead.org)
This will update the following files:
drivers/net/wireless/orinoco_cs.c | 1
drivers/pcmcia/cs.c | 827 +++++++++++++++++++++++++++-----------
drivers/pcmcia/cs_internal.h | 18
drivers/pcmcia/rsrc_mgr.c | 20
include/pcmcia/bus_ops.h | 2
include/pcmcia/driver_ops.h | 2
include/pcmcia/ds.h | 2
7 files changed, 617 insertions, 255 deletions
through these ChangeSets:
<proski@org.rmk.(none)> (03/04/21 1.1122)
[PCMCIA] validate_mem uses uninitialized memory.
Patch from Pavel Roskin.
If I compile a recent 2.5.x kernel without CONFIG_ISA defined, I get
an oops in validate_mem(). Stack trace contains 0x6b6b6b6 - a clear
sign that freed memory is being accessed.
It's the second validate_mem() in drivers/pcmcia/rsrc_mgr.c - the one
used when CONFIG_PCMCIA_PROBE is not defined. It turns out the memory
is freed in do_mem_probe() when it's called from validate_mem().
The solution is to use the same trick as in the first validate_mem().
This problem is quite serious and it's not specific to the plx9052
driver. I see it with yenta_socket as well.
<linux@de.rmk.(none)> (03/04/19 1.1121)
[PCMCIA] remove unused files [Christoph Hellwig]
From Christoph Hellwig
There's no need to keep the stubs around.
<linux@de.rmk.(none)> (03/04/19 1.1120)
[PCMCIA] Fix compilation of cardmgr [Pavel Roskin]
From Pavel Roskin
ds.h should not be including linux/device.h when compiling userspace
code.
<rmk@flint.arm.linux.org.uk> (03/04/19 1.1119)
[PCMCIA] Bring in PCMCIA work queue and state machine.
This cset fixes the boot-time deadlock which occurs when a Cardbus
card is inserted. The deadlock occurs because:
- the ds module is inserted
- ds registers a driver model interface for pcmcia socket drivers,
which takes the global devclass_sem.
- ds causes the pcmcia core to evaluate the status of the sockets,
and perform "card insertion" processing if cards are present.
- this processing detects a cardbus card, and calls the cardbus code
to scan pci devices, and add them to the device tree.
- each device gets passed to the device model's class layer, which
tries to take devclass_sem. However, we locked it while
initialising the ds module -> deadlock.
We fix this by making the card insertion/removal asynchronous to the
initialisation thread by using a work queue. However, since we will
be calling drivers, which may want to use workqueue services, we
need to use a separate workqueue.
We also bring in a state machine to handle the card insertion,
removal, suspend and reset code. This ensures that two operations
can not run against a single socket at the same time.
Unfortunately, the workqueue model has an annoying feature which
causes it to we spawn N threads, one for each CPU in the system,
when we create our work queue. This is rather overkill.
--
Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html
next reply other threads:[~2003-04-22 0:07 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-22 0:19 Russell King [this message]
-- strict thread matches above, loose matches on Subject: below --
2003-05-28 15:22 [PATCH] PCMCIA updates Russell King
2003-12-22 17:21 Russell King
2003-12-22 17:37 ` Davide Libenzi
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=20030422011920.D30774@flint.arm.linux.org.uk \
--to=rmk@arm.linux.org.uk \
--cc=linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox