diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-01-17 18:13:31 +0100 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-02-17 17:48:25 +0100 |
commit | f971dbd5da4e2fbf756d07b938a9c65a9c75178b (patch) | |
tree | d21b138ac2ea3ada0e27910425cfd988f72dbede /drivers/pcmcia/pcmcia_ioctl.c | |
parent | cfe5d809518eda3d5e2da87c5ccbe8647143573a (diff) |
pcmcia: use pccardd to handle eject, insert, suspend and resume requests
This avoids any sysfs-related deadlock (or lockdep warning), such
as reported at http://lkml.org/lkml/2010/1/17/88 .
Reported-by: Ming Lei <tom.leiming@gmail.com>
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/pcmcia/pcmcia_ioctl.c')
-rw-r--r-- | drivers/pcmcia/pcmcia_ioctl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/pcmcia/pcmcia_ioctl.c b/drivers/pcmcia/pcmcia_ioctl.c index 96fd236f52a..13a7132cf68 100644 --- a/drivers/pcmcia/pcmcia_ioctl.c +++ b/drivers/pcmcia/pcmcia_ioctl.c @@ -925,16 +925,16 @@ static int ds_ioctl(struct inode *inode, struct file *file, ret = pccard_validate_cis(s, &buf->cisinfo.Chains); break; case DS_SUSPEND_CARD: - ret = pcmcia_suspend_card(s); + pcmcia_parse_uevents(s, PCMCIA_UEVENT_SUSPEND); break; case DS_RESUME_CARD: - ret = pcmcia_resume_card(s); + pcmcia_parse_uevents(s, PCMCIA_UEVENT_RESUME); break; case DS_EJECT_CARD: - err = pcmcia_eject_card(s); + pcmcia_parse_uevents(s, PCMCIA_UEVENT_EJECT); break; case DS_INSERT_CARD: - err = pcmcia_insert_card(s); + pcmcia_parse_uevents(s, PCMCIA_UEVENT_INSERT); break; case DS_ACCESS_CONFIGURATION_REGISTER: if ((buf->conf_reg.Action == CS_WRITE) && !capable(CAP_SYS_ADMIN)) { |