diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-04-20 08:49:01 -0400 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-04-21 02:09:17 -0400 |
commit | 04de0816173c86948b75da93a6344a0a02bbec4d (patch) | |
tree | ed4b274c1ce5da03a9c37f5858a331529e5b150f /include/pcmcia/ds.h | |
parent | 05ce7bfe547c9fa967d9cab6c37867a9cb6fb3fa (diff) |
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>
Diffstat (limited to 'include/pcmcia/ds.h')
-rw-r--r-- | include/pcmcia/ds.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/include/pcmcia/ds.h b/include/pcmcia/ds.h index d57847f2f6c1..aab3c13dc310 100644 --- a/include/pcmcia/ds.h +++ b/include/pcmcia/ds.h | |||
@@ -26,6 +26,7 @@ | |||
26 | #ifdef __KERNEL__ | 26 | #ifdef __KERNEL__ |
27 | #include <linux/device.h> | 27 | #include <linux/device.h> |
28 | #include <pcmcia/ss.h> | 28 | #include <pcmcia/ss.h> |
29 | #include <asm/atomic.h> | ||
29 | 30 | ||
30 | /* | 31 | /* |
31 | * PCMCIA device drivers (16-bit cards only; 32-bit cards require CardBus | 32 | * PCMCIA device drivers (16-bit cards only; 32-bit cards require CardBus |
@@ -94,10 +95,8 @@ struct pcmcia_device { | |||
94 | config_req_t conf; | 95 | config_req_t conf; |
95 | window_handle_t win; | 96 | window_handle_t win; |
96 | 97 | ||
97 | /* Is the device suspended, or in the process of | 98 | /* Is the device suspended? */ |
98 | * being removed? */ | ||
99 | u16 suspended:1; | 99 | u16 suspended:1; |
100 | u16 _removed:1; | ||
101 | 100 | ||
102 | /* Flags whether io, irq, win configurations were | 101 | /* Flags whether io, irq, win configurations were |
103 | * requested, and whether the configuration is "locked" */ | 102 | * requested, and whether the configuration is "locked" */ |
@@ -115,7 +114,7 @@ struct pcmcia_device { | |||
115 | u16 has_card_id:1; | 114 | u16 has_card_id:1; |
116 | u16 has_func_id:1; | 115 | u16 has_func_id:1; |
117 | 116 | ||
118 | u16 reserved:3; | 117 | u16 reserved:4; |
119 | 118 | ||
120 | u8 func_id; | 119 | u8 func_id; |
121 | u16 manf_id; | 120 | u16 manf_id; |