pcmcia: pcmcia_dev_present bugfix

pcmcia_dev_present is in and by itself buggy. Add a note specifying
why it is broken, and replace the broken locking -- taking a mutex
is a bad idea in IRQ context, from which this function is rarely
called -- by an atomic_t.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
This commit is contained in:
Dominik Brodowski
2010-04-20 14:49:01 +02:00
parent 05ce7bfe54
commit 04de081617
3 changed files with 20 additions and 42 deletions

View File

@@ -224,18 +224,16 @@ struct pcmcia_socket {
/* 16-bit state: */
struct {
/* PCMCIA card is present in socket */
u8 present:1;
/* "master" ioctl is used */
u8 busy:1;
/* pcmcia module is being unloaded */
u8 dead:1;
/* the PCMCIA card consists of two pseudo devices */
u8 has_pfc:1;
u8 reserved:4;
u8 reserved:6;
} pcmcia_state;
/* non-zero if PCMCIA card is present */
atomic_t present;
#ifdef CONFIG_PCMCIA_IOCTL
struct user_info_t *user;