Skip to content

Commit 4382124

Browse files
author
Dominik Brodowski
committed
pcmcia: order userspace suspend and resume requests
Assert that userspace suspend and resume requests appearing (almost) immediately are executed in the following order: suspend, resume. This should result in "pccardctl reset" behaving the same as before. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
1 parent cc83b08 commit 4382124

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

drivers/pcmcia/cs.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -671,20 +671,22 @@ static int pccardd(void *__skt)
671671
socket_remove(skt);
672672
if (sysfs_events & PCMCIA_UEVENT_INSERT)
673673
socket_insert(skt);
674-
if ((sysfs_events & PCMCIA_UEVENT_RESUME) &&
675-
!(skt->state & SOCKET_CARDBUS)) {
676-
ret = socket_resume(skt);
677-
if (!ret && skt->callback)
678-
skt->callback->resume(skt);
679-
}
680674
if ((sysfs_events & PCMCIA_UEVENT_SUSPEND) &&
681675
!(skt->state & SOCKET_CARDBUS)) {
682676
if (skt->callback)
683677
ret = skt->callback->suspend(skt);
684678
else
685679
ret = 0;
686-
if (!ret)
680+
if (!ret) {
687681
socket_suspend(skt);
682+
msleep(100);
683+
}
684+
}
685+
if ((sysfs_events & PCMCIA_UEVENT_RESUME) &&
686+
!(skt->state & SOCKET_CARDBUS)) {
687+
ret = socket_resume(skt);
688+
if (!ret && skt->callback)
689+
skt->callback->resume(skt);
688690
}
689691
if ((sysfs_events & PCMCIA_UEVENT_REQUERY) &&
690692
!(skt->state & SOCKET_CARDBUS)) {

0 commit comments

Comments
 (0)