diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-01-17 12:13:31 -0500 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-02-17 11:48:25 -0500 |
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 96fd236f52a9..13a7132cf688 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, | |||
925 | ret = pccard_validate_cis(s, &buf->cisinfo.Chains); | 925 | ret = pccard_validate_cis(s, &buf->cisinfo.Chains); |
926 | break; | 926 | break; |
927 | case DS_SUSPEND_CARD: | 927 | case DS_SUSPEND_CARD: |
928 | ret = pcmcia_suspend_card(s); | 928 | pcmcia_parse_uevents(s, PCMCIA_UEVENT_SUSPEND); |
929 | break; | 929 | break; |
930 | case DS_RESUME_CARD: | 930 | case DS_RESUME_CARD: |
931 | ret = pcmcia_resume_card(s); | 931 | pcmcia_parse_uevents(s, PCMCIA_UEVENT_RESUME); |
932 | break; | 932 | break; |
933 | case DS_EJECT_CARD: | 933 | case DS_EJECT_CARD: |
934 | err = pcmcia_eject_card(s); | 934 | pcmcia_parse_uevents(s, PCMCIA_UEVENT_EJECT); |
935 | break; | 935 | break; |
936 | case DS_INSERT_CARD: | 936 | case DS_INSERT_CARD: |
937 | err = pcmcia_insert_card(s); | 937 | pcmcia_parse_uevents(s, PCMCIA_UEVENT_INSERT); |
938 | break; | 938 | break; |
939 | case DS_ACCESS_CONFIGURATION_REGISTER: | 939 | case DS_ACCESS_CONFIGURATION_REGISTER: |
940 | if ((buf->conf_reg.Action == CS_WRITE) && !capable(CAP_SYS_ADMIN)) { | 940 | if ((buf->conf_reg.Action == CS_WRITE) && !capable(CAP_SYS_ADMIN)) { |