Commit 9354a55f9490aff8e5d4abedec3db78093772cae

Authored by Tony Luck

Pull misc2-6-36 into release branch

Showing 2 changed files Side-by-side Diff

arch/ia64/kernel/perfmon.c
... ... @@ -1696,8 +1696,8 @@
1696 1696 return mask;
1697 1697 }
1698 1698  
1699   -static int
1700   -pfm_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
  1699 +static long
  1700 +pfm_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
1701 1701 {
1702 1702 DPRINT(("pfm_ioctl called\n"));
1703 1703 return -EINVAL;
... ... @@ -2174,15 +2174,15 @@
2174 2174  
2175 2175  
2176 2176 static const struct file_operations pfm_file_ops = {
2177   - .llseek = no_llseek,
2178   - .read = pfm_read,
2179   - .write = pfm_write,
2180   - .poll = pfm_poll,
2181   - .ioctl = pfm_ioctl,
2182   - .open = pfm_no_open, /* special open code to disallow open via /proc */
2183   - .fasync = pfm_fasync,
2184   - .release = pfm_close,
2185   - .flush = pfm_flush
  2177 + .llseek = no_llseek,
  2178 + .read = pfm_read,
  2179 + .write = pfm_write,
  2180 + .poll = pfm_poll,
  2181 + .unlocked_ioctl = pfm_ioctl,
  2182 + .open = pfm_no_open, /* special open code to disallow open via /proc */
  2183 + .fasync = pfm_fasync,
  2184 + .release = pfm_close,
  2185 + .flush = pfm_flush
2186 2186 };
2187 2187  
2188 2188 static int
arch/ia64/kernel/vmlinux.lds.S
... ... @@ -6,204 +6,209 @@
6 6  
7 7 #include <asm-generic/vmlinux.lds.h>
8 8  
9   -#define IVT_TEXT \
10   - VMLINUX_SYMBOL(__start_ivt_text) = .; \
11   - *(.text..ivt) \
12   - VMLINUX_SYMBOL(__end_ivt_text) = .;
13   -
14 9 OUTPUT_FORMAT("elf64-ia64-little")
15 10 OUTPUT_ARCH(ia64)
16 11 ENTRY(phys_start)
17 12 jiffies = jiffies_64;
  13 +
18 14 PHDRS {
19   - code PT_LOAD;
20   - percpu PT_LOAD;
21   - data PT_LOAD;
22   - note PT_NOTE;
23   - unwind 0x70000001; /* PT_IA_64_UNWIND, but ld doesn't match the name */
  15 + code PT_LOAD;
  16 + percpu PT_LOAD;
  17 + data PT_LOAD;
  18 + note PT_NOTE;
  19 + unwind 0x70000001; /* PT_IA_64_UNWIND, but ld doesn't match the name */
24 20 }
25   -SECTIONS
26   -{
27   - /* unwind exit sections must be discarded before the rest of the
28   - sections get included. */
29   - /DISCARD/ : {
30   - *(.IA_64.unwind.exit.text)
31   - *(.IA_64.unwind_info.exit.text)
32   - *(.comment)
33   - *(.note)
34   - }
35 21  
36   - v = PAGE_OFFSET; /* this symbol is here to make debugging easier... */
37   - phys_start = _start - LOAD_OFFSET;
  22 +SECTIONS {
  23 + /*
  24 + * unwind exit sections must be discarded before
  25 + * the rest of the sections get included.
  26 + */
  27 + /DISCARD/ : {
  28 + *(.IA_64.unwind.exit.text)
  29 + *(.IA_64.unwind_info.exit.text)
  30 + *(.comment)
  31 + *(.note)
  32 + }
38 33  
39   - code : { } :code
40   - . = KERNEL_START;
  34 + v = PAGE_OFFSET; /* this symbol is here to make debugging easier... */
  35 + phys_start = _start - LOAD_OFFSET;
41 36  
42   - _text = .;
43   - _stext = .;
  37 + code : {
  38 + } :code
  39 + . = KERNEL_START;
44 40  
45   - .text : AT(ADDR(.text) - LOAD_OFFSET)
46   - {
47   - IVT_TEXT
48   - TEXT_TEXT
49   - SCHED_TEXT
50   - LOCK_TEXT
51   - KPROBES_TEXT
52   - *(.gnu.linkonce.t*)
53   - }
54   - .text2 : AT(ADDR(.text2) - LOAD_OFFSET)
55   - { *(.text2) }
  41 + _text = .;
  42 + _stext = .;
  43 +
  44 + .text : AT(ADDR(.text) - LOAD_OFFSET) {
  45 + __start_ivt_text = .;
  46 + *(.text..ivt)
  47 + __end_ivt_text = .;
  48 + TEXT_TEXT
  49 + SCHED_TEXT
  50 + LOCK_TEXT
  51 + KPROBES_TEXT
  52 + *(.gnu.linkonce.t*)
  53 + }
  54 +
  55 + .text2 : AT(ADDR(.text2) - LOAD_OFFSET) {
  56 + *(.text2)
  57 + }
  58 +
56 59 #ifdef CONFIG_SMP
57   - .text..lock : AT(ADDR(.text..lock) - LOAD_OFFSET)
58   - { *(.text..lock) }
  60 + .text..lock : AT(ADDR(.text..lock) - LOAD_OFFSET) {
  61 + *(.text..lock)
  62 + }
59 63 #endif
60   - _etext = .;
  64 + _etext = .;
61 65  
62   - /* Read-only data */
  66 + /*
  67 + * Read-only data
  68 + */
  69 + NOTES :code :note /* put .notes in text and mark in PT_NOTE */
  70 + code_continues : {
  71 + } : code /* switch back to regular program... */
63 72  
64   - NOTES :code :note /* put .notes in text and mark in PT_NOTE */
65   - code_continues : {} :code /* switch back to regular program... */
  73 + EXCEPTION_TABLE(16)
66 74  
67   - EXCEPTION_TABLE(16)
68   -
69   - /* MCA table */
70   - . = ALIGN(16);
71   - __mca_table : AT(ADDR(__mca_table) - LOAD_OFFSET)
72   - {
73   - __start___mca_table = .;
74   - *(__mca_table)
75   - __stop___mca_table = .;
  75 + /* MCA table */
  76 + . = ALIGN(16);
  77 + __mca_table : AT(ADDR(__mca_table) - LOAD_OFFSET) {
  78 + __start___mca_table = .;
  79 + *(__mca_table)
  80 + __stop___mca_table = .;
76 81 }
77 82  
78   - .data..patch.phys_stack_reg : AT(ADDR(.data..patch.phys_stack_reg) - LOAD_OFFSET)
79   - {
80   - __start___phys_stack_reg_patchlist = .;
81   - *(.data..patch.phys_stack_reg)
82   - __end___phys_stack_reg_patchlist = .;
  83 + .data..patch.phys_stack_reg : AT(ADDR(.data..patch.phys_stack_reg) - LOAD_OFFSET) {
  84 + __start___phys_stack_reg_patchlist = .;
  85 + *(.data..patch.phys_stack_reg)
  86 + __end___phys_stack_reg_patchlist = .;
83 87 }
84 88  
85   - /* Global data */
86   - _data = .;
  89 + /*
  90 + * Global data
  91 + */
  92 + _data = .;
87 93  
88   - /* Unwind info & table: */
89   - . = ALIGN(8);
90   - .IA_64.unwind_info : AT(ADDR(.IA_64.unwind_info) - LOAD_OFFSET)
91   - { *(.IA_64.unwind_info*) }
92   - .IA_64.unwind : AT(ADDR(.IA_64.unwind) - LOAD_OFFSET)
93   - {
94   - __start_unwind = .;
95   - *(.IA_64.unwind*)
96   - __end_unwind = .;
  94 + /* Unwind info & table: */
  95 + . = ALIGN(8);
  96 + .IA_64.unwind_info : AT(ADDR(.IA_64.unwind_info) - LOAD_OFFSET) {
  97 + *(.IA_64.unwind_info*)
  98 + }
  99 + .IA_64.unwind : AT(ADDR(.IA_64.unwind) - LOAD_OFFSET) {
  100 + __start_unwind = .;
  101 + *(.IA_64.unwind*)
  102 + __end_unwind = .;
97 103 } :code :unwind
98   - code_continues2 : {} : code
  104 + code_continues2 : {
  105 + } : code
99 106  
100   - RODATA
  107 + RODATA
101 108  
102   - .opd : AT(ADDR(.opd) - LOAD_OFFSET)
103   - { *(.opd) }
  109 + .opd : AT(ADDR(.opd) - LOAD_OFFSET) {
  110 + *(.opd)
  111 + }
104 112  
105   - /* Initialization code and data: */
  113 + /*
  114 + * Initialization code and data:
  115 + */
  116 + . = ALIGN(PAGE_SIZE);
  117 + __init_begin = .;
106 118  
107   - . = ALIGN(PAGE_SIZE);
108   - __init_begin = .;
  119 + INIT_TEXT_SECTION(PAGE_SIZE)
  120 + INIT_DATA_SECTION(16)
109 121  
110   - INIT_TEXT_SECTION(PAGE_SIZE)
111   - INIT_DATA_SECTION(16)
112   -
113   - .data..patch.vtop : AT(ADDR(.data..patch.vtop) - LOAD_OFFSET)
114   - {
115   - __start___vtop_patchlist = .;
116   - *(.data..patch.vtop)
117   - __end___vtop_patchlist = .;
  122 + .data..patch.vtop : AT(ADDR(.data..patch.vtop) - LOAD_OFFSET) {
  123 + __start___vtop_patchlist = .;
  124 + *(.data..patch.vtop)
  125 + __end___vtop_patchlist = .;
118 126 }
119 127  
120   - .data..patch.rse : AT(ADDR(.data..patch.rse) - LOAD_OFFSET)
121   - {
122   - __start___rse_patchlist = .;
123   - *(.data..patch.rse)
124   - __end___rse_patchlist = .;
  128 + .data..patch.rse : AT(ADDR(.data..patch.rse) - LOAD_OFFSET) {
  129 + __start___rse_patchlist = .;
  130 + *(.data..patch.rse)
  131 + __end___rse_patchlist = .;
125 132 }
126 133  
127   - .data..patch.mckinley_e9 : AT(ADDR(.data..patch.mckinley_e9) - LOAD_OFFSET)
128   - {
129   - __start___mckinley_e9_bundles = .;
130   - *(.data..patch.mckinley_e9)
131   - __end___mckinley_e9_bundles = .;
  134 + .data..patch.mckinley_e9 : AT(ADDR(.data..patch.mckinley_e9) - LOAD_OFFSET) {
  135 + __start___mckinley_e9_bundles = .;
  136 + *(.data..patch.mckinley_e9)
  137 + __end___mckinley_e9_bundles = .;
132 138 }
133 139  
134 140 #if defined(CONFIG_PARAVIRT)
135   - . = ALIGN(16);
136   - .paravirt_bundles : AT(ADDR(.paravirt_bundles) - LOAD_OFFSET)
137   - {
138   - __start_paravirt_bundles = .;
139   - *(.paravirt_bundles)
140   - __stop_paravirt_bundles = .;
  141 + . = ALIGN(16);
  142 + .paravirt_bundles : AT(ADDR(.paravirt_bundles) - LOAD_OFFSET) {
  143 + __start_paravirt_bundles = .;
  144 + *(.paravirt_bundles)
  145 + __stop_paravirt_bundles = .;
141 146 }
142   - . = ALIGN(16);
143   - .paravirt_insts : AT(ADDR(.paravirt_insts) - LOAD_OFFSET)
144   - {
145   - __start_paravirt_insts = .;
146   - *(.paravirt_insts)
147   - __stop_paravirt_insts = .;
  147 + . = ALIGN(16);
  148 + .paravirt_insts : AT(ADDR(.paravirt_insts) - LOAD_OFFSET) {
  149 + __start_paravirt_insts = .;
  150 + *(.paravirt_insts)
  151 + __stop_paravirt_insts = .;
148 152 }
149   - . = ALIGN(16);
150   - .paravirt_branches : AT(ADDR(.paravirt_branches) - LOAD_OFFSET)
151   - {
152   - __start_paravirt_branches = .;
153   - *(.paravirt_branches)
154   - __stop_paravirt_branches = .;
  153 + . = ALIGN(16);
  154 + .paravirt_branches : AT(ADDR(.paravirt_branches) - LOAD_OFFSET) {
  155 + __start_paravirt_branches = .;
  156 + *(.paravirt_branches)
  157 + __stop_paravirt_branches = .;
155 158 }
156 159 #endif
157 160  
158 161 #if defined(CONFIG_IA64_GENERIC)
159   - /* Machine Vector */
160   - . = ALIGN(16);
161   - .machvec : AT(ADDR(.machvec) - LOAD_OFFSET)
162   - {
163   - machvec_start = .;
164   - *(.machvec)
165   - machvec_end = .;
  162 + /* Machine Vector */
  163 + . = ALIGN(16);
  164 + .machvec : AT(ADDR(.machvec) - LOAD_OFFSET) {
  165 + machvec_start = .;
  166 + *(.machvec)
  167 + machvec_end = .;
166 168 }
167 169 #endif
168 170  
169 171 #ifdef CONFIG_SMP
170   - . = ALIGN(PERCPU_PAGE_SIZE);
171   - __cpu0_per_cpu = .;
172   - . = . + PERCPU_PAGE_SIZE; /* cpu0 per-cpu space */
  172 + . = ALIGN(PERCPU_PAGE_SIZE);
  173 + __cpu0_per_cpu = .;
  174 + . = . + PERCPU_PAGE_SIZE; /* cpu0 per-cpu space */
173 175 #endif
174 176  
175   - . = ALIGN(PAGE_SIZE);
176   - __init_end = .;
  177 + . = ALIGN(PAGE_SIZE);
  178 + __init_end = .;
177 179  
178   - .data..page_aligned : AT(ADDR(.data..page_aligned) - LOAD_OFFSET)
179   - {
180   - PAGE_ALIGNED_DATA(PAGE_SIZE)
181   - . = ALIGN(PAGE_SIZE);
182   - __start_gate_section = .;
183   - *(.data..gate)
184   - __stop_gate_section = .;
  180 + .data..page_aligned : AT(ADDR(.data..page_aligned) - LOAD_OFFSET) {
  181 + PAGE_ALIGNED_DATA(PAGE_SIZE)
  182 + . = ALIGN(PAGE_SIZE);
  183 + __start_gate_section = .;
  184 + *(.data..gate)
  185 + __stop_gate_section = .;
185 186 #ifdef CONFIG_XEN
186   - . = ALIGN(PAGE_SIZE);
187   - __xen_start_gate_section = .;
188   - *(.data..gate.xen)
189   - __xen_stop_gate_section = .;
  187 + . = ALIGN(PAGE_SIZE);
  188 + __xen_start_gate_section = .;
  189 + *(.data..gate.xen)
  190 + __xen_stop_gate_section = .;
190 191 #endif
191 192 }
192   - . = ALIGN(PAGE_SIZE); /* make sure the gate page doesn't expose
193   - * kernel data
194   - */
  193 + /*
  194 + * make sure the gate page doesn't expose
  195 + * kernel data
  196 + */
  197 + . = ALIGN(PAGE_SIZE);
195 198  
196   - /* Per-cpu data: */
197   - . = ALIGN(PERCPU_PAGE_SIZE);
198   - PERCPU_VADDR(PERCPU_ADDR, :percpu)
199   - __phys_per_cpu_start = __per_cpu_load;
200   - . = __phys_per_cpu_start + PERCPU_PAGE_SIZE; /* ensure percpu data fits
201   - * into percpu page size
202   - */
  199 + /* Per-cpu data: */
  200 + . = ALIGN(PERCPU_PAGE_SIZE);
  201 + PERCPU_VADDR(PERCPU_ADDR, :percpu)
  202 + __phys_per_cpu_start = __per_cpu_load;
  203 + /*
  204 + * ensure percpu data fits
  205 + * into percpu page size
  206 + */
  207 + . = __phys_per_cpu_start + PERCPU_PAGE_SIZE;
203 208  
204   - data : { } :data
205   - .data : AT(ADDR(.data) - LOAD_OFFSET)
206   - {
  209 + data : {
  210 + } :data
  211 + .data : AT(ADDR(.data) - LOAD_OFFSET) {
207 212 INIT_TASK_DATA(PAGE_SIZE)
208 213 CACHELINE_ALIGNED_DATA(SMP_CACHE_BYTES)
209 214 READ_MOSTLY_DATA(SMP_CACHE_BYTES)
210 215  
211 216  
212 217  
213 218  
214 219  
... ... @@ -213,27 +218,38 @@
213 218 CONSTRUCTORS
214 219 }
215 220  
216   - . = ALIGN(16); /* gp must be 16-byte aligned for exc. table */
217   - .got : AT(ADDR(.got) - LOAD_OFFSET)
218   - { *(.got.plt) *(.got) }
219   - __gp = ADDR(.got) + 0x200000;
220   - /* We want the small data sections together, so single-instruction offsets
221   - can access them all, and initialized data all before uninitialized, so
222   - we can shorten the on-disk segment size. */
223   - .sdata : AT(ADDR(.sdata) - LOAD_OFFSET)
224   - { *(.sdata) *(.sdata1) *(.srdata) }
225   - _edata = .;
  221 + . = ALIGN(16); /* gp must be 16-byte aligned for exc. table */
  222 + .got : AT(ADDR(.got) - LOAD_OFFSET) {
  223 + *(.got.plt)
  224 + *(.got)
  225 + }
  226 + __gp = ADDR(.got) + 0x200000;
226 227  
227   - BSS_SECTION(0, 0, 0)
  228 + /*
  229 + * We want the small data sections together,
  230 + * so single-instruction offsets can access
  231 + * them all, and initialized data all before
  232 + * uninitialized, so we can shorten the
  233 + * on-disk segment size.
  234 + */
  235 + .sdata : AT(ADDR(.sdata) - LOAD_OFFSET) {
  236 + *(.sdata)
  237 + *(.sdata1)
  238 + *(.srdata)
  239 + }
  240 + _edata = .;
228 241  
229   - _end = .;
  242 + BSS_SECTION(0, 0, 0)
230 243  
231   - code : { } :code
  244 + _end = .;
232 245  
233   - STABS_DEBUG
234   - DWARF_DEBUG
  246 + code : {
  247 + } :code
235 248  
236   - /* Default discards */
237   - DISCARDS
  249 + STABS_DEBUG
  250 + DWARF_DEBUG
  251 +
  252 + /* Default discards */
  253 + DISCARDS
238 254 }