linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dominik Brodowski <linux@dominikbrodowski.net>
To: Brice Goglin <Brice.Goglin@ens-lyon.org>
Cc: Andrew Morton <akpm@osdl.org>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: 2.6.15-mm3
Date: Thu, 12 Jan 2006 00:00:39 +0100	[thread overview]
Message-ID: <20060111230039.GB4541@isilmar.linta.de> (raw)
In-Reply-To: <43C58B02.6010601@ens-lyon.org>

On Wed, Jan 11, 2006 at 05:47:30PM -0500, Brice Goglin wrote:
> Dominik Brodowski wrote:
> 
> >Exactly. Could you pass the parameter pc_debug=9 to the "pcmcia" module,
> >please, and send me the resulting dmesg? I can't reproduce it here,
> >unfortunately...
> >  
> >
> Here you are (I had to enable CONFIG_PCMCIA_DEBUG).

Many thanks... Could you try out this patch instead of the other one,
please? get_pcmcia_device() seems to be the buggiest function I've ever
written, sorry about that...

Thanks,
	Dominik

diff --git a/drivers/pcmcia/pcmcia_ioctl.c b/drivers/pcmcia/pcmcia_ioctl.c
index c4f7dfb..be08bc9 100644
--- a/drivers/pcmcia/pcmcia_ioctl.c
+++ b/drivers/pcmcia/pcmcia_ioctl.c
@@ -69,25 +69,26 @@ extern int ds_pc_debug;
 #define ds_dbg(lvl, fmt, arg...) do { } while (0)
 #endif
 
-static struct pcmcia_device * get_pcmcia_device (struct pcmcia_socket *s,
-						 unsigned int function)
+static struct pcmcia_device *get_pcmcia_device(struct pcmcia_socket *s,
+						unsigned int function)
 {
 	struct pcmcia_device *p_dev = NULL;
-
 	unsigned long flags;
+
 	spin_lock_irqsave(&pcmcia_dev_list_lock, flags);
-        list_for_each_entry(p_dev, &s->devices_list, socket_device_list) {
+	list_for_each_entry(p_dev, &s->devices_list, socket_device_list) {
 		if (p_dev->func == function) {
-			p_dev = pcmcia_get_dev(p_dev);
-			break;
+			spin_unlock_irqrestore(&pcmcia_dev_list_lock, flags);
+			return pcmcia_get_dev(p_dev);
 		}
 	}
-	return p_dev;
+	spin_unlock_irqrestore(&pcmcia_dev_list_lock, flags);
+	return NULL;
 }
 
 /* backwards-compatible accessing of driver --- by name! */
 
-static struct pcmcia_driver * get_pcmcia_driver (dev_info_t *dev_info)
+static struct pcmcia_driver *get_pcmcia_driver(dev_info_t *dev_info)
 {
 	struct device_driver *drv;
 	struct pcmcia_driver *p_drv;
@@ -625,15 +626,15 @@ static int ds_ioctl(struct inode * inode
 	ret = pccard_reset_card(s);
 	break;
     case DS_GET_STATUS:
-	if (buf->status.Function &&
-	   (buf->status.Function >= s->functions))
-	    ret = CS_BAD_ARGS;
-	else {
-	    struct pcmcia_device *p_dev = get_pcmcia_device(s, buf->status.Function);
-	    ret = pccard_get_status(s, p_dev, &buf->status);
-	    pcmcia_put_dev(p_dev);
-	}
-	break;
+	    if (buf->status.Function &&
+		(buf->status.Function >= s->functions))
+		    ret = CS_BAD_ARGS;
+	    else {
+		    struct pcmcia_device *p_dev = get_pcmcia_device(s, buf->status.Function);
+		    ret = pccard_get_status(s, p_dev, &buf->status);
+		    pcmcia_put_dev(p_dev);
+	    }
+	    break;
     case DS_VALIDATE_CIS:
 	mutex_lock(&s->skt_mutex);
 	pcmcia_validate_mem(s);

  reply	other threads:[~2006-01-11 23:00 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-11 12:21 2.6.15-mm3 Andrew Morton
2006-01-11 13:43 ` 2.6.15-mm3 Pekka Enberg
2006-01-11 14:27 ` 2.6.15-mm3 Ashutosh Naik
2006-01-11 16:21 ` 2.6.15-mm3 Dominik Karall
2006-01-11 22:22   ` 2.6.15-mm3, current -git: drivers/media/video/ compile errors Adrian Bunk
2006-01-11 22:48     ` Mauro Carvalho Chehab
2006-01-11 16:57 ` [PATCH -mm] mm/rmap.c: don't forget to include module.h Alexey Dobriyan
2006-01-11 21:42   ` Adrian Bunk
2006-01-11 21:50     ` Christoph Lameter
2006-01-11 18:25 ` 2.6.15-mm3 Roman Zippel
2006-01-11 18:45   ` 2.6.15-mm3 Andrew Morton
2006-01-11 22:26     ` 2.6.15-mm3 Roman Zippel
2006-01-11 18:34 ` 2.6.15-mm3 Brice Goglin
2006-01-11 18:40   ` 2.6.15-mm3 Dominik Brodowski
2006-01-11 19:07     ` 2.6.15-mm3 Brice Goglin
2006-01-11 19:55       ` 2.6.15-mm3 Dominik Brodowski
2006-01-11 20:28         ` 2.6.15-mm3 Brice Goglin
2006-01-11 21:21           ` 2.6.15-mm3 Dominik Brodowski
2006-01-11 22:47             ` 2.6.15-mm3 Brice Goglin
2006-01-11 23:00               ` Dominik Brodowski [this message]
2006-01-11 23:23                 ` 2.6.15-mm3 Brice Goglin
2006-01-11 18:49   ` 2.6.15-mm3 Andrew Morton
2006-01-11 21:39 ` 2.6.15-mm3 Grant Coady
2006-01-11 23:41 ` 2.6.15-mm3: arch/ia64/sn/kernel/sn2/sn_proc_fs.c compile error Adrian Bunk
2006-01-12  0:01   ` Andrew Morton
2006-01-12  0:17     ` Adrian Bunk
2006-01-12  0:23       ` Andrew Morton
2006-01-12  0:54         ` Adrian Bunk
2006-01-12  1:02 ` [-mm patch] fix arch/ia64/sn/kernel/tiocx.c compilation Adrian Bunk
2006-01-12 16:43   ` Greg KH
2006-01-12  4:04 ` 2.6.15-mm3 Reuben Farrelly
2006-01-12  4:33   ` 2.6.15-mm3 Andrew Morton
2006-01-12  4:38     ` 2.6.15-mm3 Reuben Farrelly
2006-01-12  8:54     ` 2.6.15-mm3 [USB lost interrupt bug] Reuben Farrelly
2006-01-12 15:53       ` [linux-usb-devel] " Alan Stern
2006-01-15 22:50         ` Reuben Farrelly
2006-01-16  3:22           ` Alan Stern
2006-01-16  3:28             ` Reuben Farrelly
2006-01-16  3:46               ` Alan Stern
2006-01-21  5:21                 ` Reuben Farrelly
2006-01-21  5:47                   ` Andrew Morton
2006-01-21  7:58                     ` Reuben Farrelly
2006-01-21  8:32                       ` [PATCH] " Jeff Garzik
2006-01-21 10:41                         ` Reuben Farrelly
2006-01-12 10:48 ` [RFC: -mm patch] swsusp: make some code static Adrian Bunk
2006-01-12 15:29   ` Pavel Machek
2006-01-12 16:18     ` Rafael J. Wysocki
2006-01-12 10:48 ` [-mm patch] drivers/block/aoe/aoecmd.c: make aoecmd_cfg_pkts() static Adrian Bunk
2006-01-12 23:55   ` Ed L. Cashin
2006-01-12 21:05 ` 2.6.15-mm3 Rafael J. Wysocki
2006-01-12 21:58   ` 2.6.15-mm3 Andrew Morton
2006-01-12 22:01     ` 2.6.15-mm3 Patrick McHardy
2006-01-13  8:34 ` 2.6.15-mm3 Sachin Sant
2006-01-13 11:52   ` 2.6.15-mm3 Andrew Morton
2006-01-13 21:59     ` 2.6.15-mm3 Benjamin Herrenschmidt

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=20060111230039.GB4541@isilmar.linta.de \
    --to=linux@dominikbrodowski.net \
    --cc=Brice.Goglin@ens-lyon.org \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --subject='Re: 2.6.15-mm3' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).