From: "Markus Rechberger" <markus.rechberger@amd.com>
To: "Andrew Morton" <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org,
"Dominik Brodowski" <linux@dominikbrodowski.net>
Subject: Re: [PATCH] pcmcia/pccard deadlock fix
Date: Thu, 03 May 2007 11:46:57 +0200 [thread overview]
Message-ID: <4639AF91.8080200@amd.com> (raw)
In-Reply-To: <20070502142014.b1f1d77e.akpm@linux-foundation.org>
Andrew Morton wrote:
>> On Tue, 20 Feb 2007 16:08:11 +0100
>>
>
> 20 Feb was a long time ago, sorry. I was hoping to feed the pcmcia patches
> through Dominik but I think he's busy with exams or such. So I get to
> pretend to be pcmcia maintainer.
>
> "Markus Rechberger" <markus.rechberger@amd.com> wrote:
>
>
>> following patch prevents a mutex/semaphore deadlock within the pcmcia
>> framework when ejecting devices multiple times using pccardctl eject.
>>
>> For some more details see:
>> http://lkml.org/lkml/2007/2/19/58
>>
>> Signed-off-by: Markus Rechberger <markus.rechberger@amd.com>
>>
>> --
>> Markus Rechberger
>> Operating System Research Center
>> AMD Saxony LLC & Co. KG
>>
>>
>>
>> [pcmcia-pccard-deadlock-fix.diff text/plain (757B)]
>> index ac00424..c02bf0d 100644
>> --- a/drivers/pcmcia/cs.c
>> +++ b/drivers/pcmcia/cs.c
>> @@ -856,7 +856,8 @@ int pcmcia_eject_card(struct pcmcia_socket *skt)
>>
>> cs_dbg(skt, 1, "user eject request\n");
>>
>> - mutex_lock(&skt->skt_mutex);
>> + if (!mutex_trylock(&skt->skt_mutex))
>> + return -EAGAIN;
>> do {
>> if (!(skt->state & SOCKET_PRESENT)) {
>> ret = -ENODEV;
>> index 18e111e..b9d3440 100644
>> --- a/drivers/pcmcia/ds.c
>> +++ b/drivers/pcmcia/ds.c
>> @@ -1100,7 +1100,9 @@ static ssize_t pcmcia_store_allow_func_id_match(struct device *dev,
>> if (!count)
>> return -EINVAL;
>>
>> - mutex_lock(&p_dev->socket->skt_mutex);
>> + if (!mutex_trylock(&p_dev->socket->skt_mutex))
>> + return -EAGAIN;
>> +
>> p_dev->allow_func_id_match = 1;
>> mutex_unlock(&p_dev->socket->skt_mutex);
>>
>>
>
> This is a pretty sad-looking solution. Does it not mean that sometimes
> user-initiated actions will mysteriously fail?
>
The userspace application should return the appropriate error then. It
can really happen any time when someone tries to eject the pcmcia device
(any time as within 1 minute - never in a normal scenario)
> Are you able to provide a more detailed description of why/how the deadlock
> actually occurs so that perhaps a more robust fix can be implemented?
>
>
There's a description about it in following Email:
http://lkml.org/lkml/2007/2/19/58
Markus
prev parent reply other threads:[~2007-05-03 9:47 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-20 15:08 [PATCH] pcmcia/pccard deadlock fix Markus Rechberger
2007-02-25 12:52 ` Andrew Morton
2007-05-02 21:20 ` Andrew Morton
2007-05-03 9:46 ` Markus Rechberger [this message]
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=4639AF91.8080200@amd.com \
--to=markus.rechberger@amd.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@dominikbrodowski.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.