diff options
author | Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 2009-08-13 15:50:37 -0400 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2010-10-18 10:41:44 -0400 |
commit | 3b32f574a032bb5c93957317bd4ce5c3397d5a7b (patch) | |
tree | 91cfba0cb671b7bf02a956303da87629ed239225 /drivers/xen | |
parent | 1a60d05f40882303dad13f8f0e077e2e49ea8996 (diff) |
xen: statically initialize cpu_evtchn_mask_p
Sometimes cpu_evtchn_mask_p can get used early, before it has been
allocated. Statically initialize it with an initdata version to catch
any early references.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'drivers/xen')
-rw-r--r-- | drivers/xen/events.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/xen/events.c b/drivers/xen/events.c index 0fcfb4a1ceab..1e39908d02f9 100644 --- a/drivers/xen/events.c +++ b/drivers/xen/events.c | |||
@@ -104,7 +104,12 @@ static int *evtchn_to_irq; | |||
104 | struct cpu_evtchn_s { | 104 | struct cpu_evtchn_s { |
105 | unsigned long bits[NR_EVENT_CHANNELS/BITS_PER_LONG]; | 105 | unsigned long bits[NR_EVENT_CHANNELS/BITS_PER_LONG]; |
106 | }; | 106 | }; |
107 | static struct cpu_evtchn_s *cpu_evtchn_mask_p; | 107 | |
108 | static __initdata struct cpu_evtchn_s init_evtchn_mask = { | ||
109 | .bits[0 ... (NR_EVENT_CHANNELS/BITS_PER_LONG)-1] = ~0ul, | ||
110 | }; | ||
111 | static struct cpu_evtchn_s *cpu_evtchn_mask_p = &init_evtchn_mask; | ||
112 | |||
108 | static inline unsigned long *cpu_evtchn_mask(int cpu) | 113 | static inline unsigned long *cpu_evtchn_mask(int cpu) |
109 | { | 114 | { |
110 | return cpu_evtchn_mask_p[cpu].bits; | 115 | return cpu_evtchn_mask_p[cpu].bits; |