]>
Commit | Line | Data |
---|---|---|
b084f1df JR |
1 | diff -urN linux-2.4.20-uml/arch/um/include/2_5compat.h linux-2.4.20-uml-o1/arch/um/include/2_5compat.h |
2 | --- linux-2.4.20-uml/arch/um/include/2_5compat.h Sat Mar 15 18:34:03 2003 | |
3 | +++ linux-2.4.20-uml-o1/arch/um/include/2_5compat.h Sat Mar 15 20:46:24 2003 | |
4 | @@ -32,8 +31,7 @@ | |
5 | ||
6 | #define IS_WRITE(req) ((req)->cmd == WRITE) | |
7 | ||
8 | -#define SET_PRI(task) \ | |
9 | - do { (task)->nice = 20; (task)->counter = -100; } while(0); | |
10 | +#define SET_PRI(task) do { } while(0) | |
11 | ||
12 | #else | |
13 | ||
14 | diff -u um/arch/um/include/kern_util.h um/arch/um/include/kern_util.h | |
15 | --- um/arch/um/include/kern_util.h | |
16 | +++ um/arch/um/include/kern_util.h | |
17 | @@ -106,7 +106,7 @@ | |
18 | extern void arch_switch(void); | |
19 | extern void free_irq(unsigned int, void *); | |
20 | extern int um_in_interrupt(void); | |
21 | -extern int cpu(void); | |
22 | +extern int um_cpu(void); | |
23 | #endif | |
24 | ||
25 | /* | |
26 | diff -urN linux-2.4.20-uml/arch/um/include/user_util.h linux-2.4.20-uml-o1/arch/um/include/user_util.h | |
27 | --- linux-2.4.20-uml/arch/um/include/user_util.h Sat Mar 15 18:34:03 2003 | |
28 | +++ linux-2.4.20-uml-o1/arch/um/include/user_util.h Sat Mar 15 19:58:20 2003 | |
29 | @@ -89,6 +89,7 @@ | |
30 | extern int arch_fixup(unsigned long address, void *sc_ptr); | |
31 | extern int can_do_skas(void); | |
32 | extern void arch_init_thread(void); | |
33 | +extern void forward_pending_sigio(int target); | |
34 | ||
35 | #endif | |
36 | ||
37 | diff -urN linux-2.4.20-uml/arch/um/kernel/irq.c linux-2.4.20-uml-o1/arch/um/kernel/irq.c | |
38 | --- linux-2.4.20-uml/arch/um/kernel/irq.c Sat Mar 15 18:34:03 2003 | |
39 | +++ linux-2.4.20-uml-o1/arch/um/kernel/irq.c Sat Mar 15 20:30:22 2003 | |
40 | @@ -151,10 +151,12 @@ | |
41 | ||
42 | status = 1; /* Force the "do bottom halves" bit */ | |
43 | ||
44 | - if (!(action->flags & SA_INTERRUPT)) | |
45 | - __sti(); | |
46 | - | |
47 | do { | |
48 | + if (!(action->flags & SA_INTERRUPT)) | |
49 | + __sti(); | |
50 | + else | |
51 | + __cli(); | |
52 | + | |
53 | status |= action->flags; | |
54 | action->handler(irq, action->dev_id, regs); | |
55 | action = action->next; | |
56 | diff -urN linux-2.4.20-uml/arch/um/kernel/process.c linux-2.4.20-uml-o1/arch/um/kernel/process.c | |
57 | --- linux-2.4.20-uml/arch/um/kernel/process.c Sat Mar 15 18:34:03 2003 | |
58 | +++ linux-2.4.20-uml-o1/arch/um/kernel/process.c Sat Mar 15 19:59:12 2003 | |
59 | @@ -275,6 +275,16 @@ | |
60 | #endif | |
61 | } | |
62 | ||
63 | +void forward_pending_sigio(int target) | |
64 | +{ | |
65 | + sigset_t sigs; | |
66 | + | |
67 | + if(sigpending(&sigs)) | |
68 | + panic("forward_pending_sigio : sigpending failed"); | |
69 | + if(sigismember(&sigs, SIGIO)) | |
70 | + kill(target, SIGIO); | |
71 | +} | |
72 | + | |
73 | /* | |
74 | * Overrides for Emacs so that we follow Linus's tabbing style. | |
75 | * Emacs will notice this stuff at the end of the file and automatically | |
76 | diff -u um/arch/um/kernel/process_kern.c um/arch/um/kernel/process_kern.c | |
77 | --- um/arch/um/kernel/process_kern.c | |
78 | +++ um/arch/um/kernel/process_kern.c | |
79 | @@ -124,7 +124,7 @@ | |
80 | { | |
81 | struct task_struct *task = t; | |
82 | ||
83 | - cpu_tasks[task->processor] = ((struct cpu_task) | |
84 | + cpu_tasks[task->cpu] = ((struct cpu_task) | |
85 | { external_pid(task), task }); | |
86 | } | |
87 | ||
88 | @@ -360,7 +360,7 @@ | |
89 | int smp_sigio_handler(void) | |
90 | { | |
91 | #ifdef CONFIG_SMP | |
92 | - int cpu = current->processor; | |
93 | + int cpu = current->cpu; | |
94 | ||
95 | IPI_handler(cpu); | |
96 | if(cpu != 0) | |
97 | @@ -374,9 +374,9 @@ | |
98 | return(in_interrupt()); | |
99 | } | |
100 | ||
101 | -int cpu(void) | |
102 | +int um_cpu(void) | |
103 | { | |
104 | - return(current->processor); | |
105 | + return(current->cpu); | |
106 | } | |
107 | ||
108 | /* | |
109 | --- linux-2.4.20/arch/um/kernel/reboot.c~ Sun Mar 16 01:41:54 2003 | |
110 | +++ linux-2.4.20/arch/um/kernel/reboot.c Sun Mar 16 03:05:25 2003 | |
111 | @@ -14,15 +14,9 @@ | |
112 | #ifdef CONFIG_SMP | |
113 | static void kill_idlers(int me) | |
114 | { | |
115 | - struct task_struct *p; | |
116 | - int i; | |
117 | - | |
118 | - for(i = 0; i < sizeof(init_tasks)/sizeof(init_tasks[0]); i++){ | |
119 | - p = init_tasks[i]; | |
120 | - if((p != NULL) && (p->thread.mode.tt.extern_pid != me) && | |
121 | - (p->thread.mode.tt.extern_pid != -1)) | |
122 | - os_kill_process(p->thread.mode.tt.extern_pid, 0); | |
123 | - } | |
124 | + if((init_task.thread.mode.tt.extern_pid != me) && | |
125 | + (init_task.thread.mode.tt.extern_pid != -1)) | |
126 | + os_kill_process(init_task.thread.mode.tt.extern_pid, 0); | |
127 | } | |
128 | #endif | |
129 | ||
130 | diff -urN linux-2.4.20-uml/arch/um/kernel/skas/process_kern.c linux-2.4.20-uml-o1/arch/um/kernel/skas/process_kern.c | |
131 | --- linux-2.4.20-uml/arch/um/kernel/skas/process_kern.c Sat Mar 15 18:34:03 2003 | |
132 | +++ linux-2.4.20-uml-o1/arch/um/kernel/skas/process_kern.c Sat Mar 15 20:03:07 2003 | |
133 | @@ -47,7 +47,7 @@ | |
134 | return(current->thread.prev_sched); | |
135 | } | |
136 | ||
137 | -extern void schedule_tail(struct task_struct *prev); | |
138 | +asmlinkage void schedule_tail(task_t *prev); | |
139 | ||
140 | void new_thread_handler(int sig) | |
141 | { | |
142 | @@ -60,8 +60,10 @@ | |
143 | thread_wait(¤t->thread.mode.skas.switch_buf, | |
144 | current->thread.mode.skas.fork_buf); | |
145 | ||
146 | +#ifdef CONFIG_SMP | |
147 | if(current->thread.prev_sched != NULL) | |
148 | schedule_tail(current->thread.prev_sched); | |
149 | +#endif | |
150 | current->thread.prev_sched = NULL; | |
151 | ||
152 | n = run_kernel_thread(fn, arg, ¤t->thread.exec_buf); | |
153 | @@ -91,8 +93,10 @@ | |
154 | current->thread.mode.skas.fork_buf); | |
155 | ||
156 | force_flush_all(); | |
157 | +#ifdef CONFIG_SMP | |
158 | if(current->thread.prev_sched != NULL) | |
159 | schedule_tail(current->thread.prev_sched); | |
160 | +#endif | |
161 | current->thread.prev_sched = NULL; | |
162 | unblock_signals(); | |
163 | ||
164 | @@ -137,7 +137,7 @@ | |
165 | ||
166 | void init_idle_skas(void) | |
167 | { | |
168 | - cpu_tasks[current->processor].pid = os_getpid(); | |
169 | + cpu_tasks[current->cpu].pid = os_getpid(); | |
170 | } | |
171 | ||
172 | extern void start_kernel(void); | |
173 | diff -u um/arch/um/kernel/skas/trap_user.c um/arch/um/kernel/skas/trap_user.c | |
174 | --- um/arch/um/kernel/skas/trap_user.c | |
175 | +++ um/arch/um/kernel/skas/trap_user.c | |
176 | @@ -42,7 +42,7 @@ | |
177 | struct signal_info *info; | |
178 | ||
179 | if(sig == SIGVTALRM) | |
180 | - missed_ticks[cpu()]++; | |
181 | + missed_ticks[um_cpu()]++; | |
182 | regs->skas.is_user = 1; | |
183 | regs->skas.fault_addr = 0; | |
184 | regs->skas.fault_type = 0; | |
185 | --- linux-2.4.20/arch/um/kernel/smp.c~ Sat Mar 15 23:38:50 2003 | |
186 | +++ linux-2.4.20/arch/um/kernel/smp.c Sun Mar 16 01:27:45 2003 | |
187 | @@ -30,6 +30,8 @@ | |
188 | ||
189 | /* Per CPU bogomips and other parameters */ | |
190 | ||
191 | +unsigned long cache_decay_ticks = HZ/100; | |
192 | + | |
193 | /* The only piece used here is the ipi pipe, which is set before SMP is | |
194 | * started and never changed. | |
195 | */ | |
196 | @@ -97,7 +97,7 @@ | |
197 | ||
198 | printk(KERN_INFO "Stopping all CPUs..."); | |
199 | for(i = 0; i < ncpus; i++){ | |
200 | - if(i == current->processor) | |
201 | + if(i == current->cpu) | |
202 | continue; | |
203 | write(cpu_data[i].ipi_pipe[1], "S", 1); | |
204 | } | |
205 | @@ -121,10 +121,9 @@ | |
206 | int cpu, err; | |
207 | ||
208 | set_current(current); | |
209 | - del_from_runqueue(current); | |
210 | unhash_process(current); | |
211 | ||
212 | - cpu = current->processor; | |
213 | + cpu = current->cpu; | |
214 | err = os_pipe(cpu_data[cpu].ipi_pipe, 1, 1); | |
215 | if(err) | |
216 | panic("CPU#%d failed to create IPI pipe, errno = %d", cpu, | |
217 | @@ -134,8 +134,8 @@ | |
218 | current->thread.mode.tt.extern_pid); | |
219 | ||
220 | wmb(); | |
221 | - if (test_and_set_bit(current->processor, &smp_callin_map)) { | |
222 | - printk("huh, CPU#%d already present??\n", current->processor); | |
223 | + if (test_and_set_bit(current->cpu, &smp_callin_map)) { | |
224 | + printk("huh, CPU#%d already present??\n", current->cpu); | |
225 | BUG(); | |
226 | } | |
227 | ||
228 | @@ -142,7 +142,6 @@ | |
229 | while (!atomic_read(&smp_commenced)) | |
230 | cpu_relax(); | |
231 | ||
232 | - init_idle(); | |
233 | cpu_idle(); | |
234 | return(0); | |
235 | } | |
236 | @@ -161,10 +160,8 @@ | |
237 | ||
238 | cpu_tasks[cpu].pid = new_task->thread.mode.tt.extern_pid; | |
239 | cpu_tasks[cpu].task = new_task; | |
240 | - init_tasks[cpu] = new_task; | |
241 | - new_task->processor = cpu; | |
242 | + init_idle(new_task, cpu); | |
243 | new_task->cpus_allowed = 1 << cpu; | |
244 | - new_task->cpus_runnable = new_task->cpus_allowed; | |
245 | CHOOSE_MODE(write(new_task->thread.mode.tt.switch_pipe[1], &c, | |
246 | sizeof(c)), | |
247 | ({ panic("skas mode doesn't support SMP"); })); | |
248 | @@ -296,7 +296,7 @@ | |
249 | info = _info; | |
250 | ||
251 | for (i=0;i<NR_CPUS;i++) | |
252 | - if (i != current->processor && test_bit(i, &cpu_online_map)) | |
253 | + if (i != current->cpu && test_bit(i, &cpu_online_map)) | |
254 | write(cpu_data[i].ipi_pipe[1], "C", 1); | |
255 | ||
256 | while (atomic_read(&scf_started) != cpus) | |
257 | diff -urN linux-2.4.20-uml/arch/um/kernel/sys_call_table.c linux-2.4.20-uml-o1/arch/um/kernel/sys_call_table.c | |
258 | --- linux-2.4.20-uml/arch/um/kernel/sys_call_table.c Sat Mar 15 18:34:03 2003 | |
259 | +++ linux-2.4.20-uml-o1/arch/um/kernel/sys_call_table.c Sat Mar 15 19:41:51 2003 | |
260 | @@ -153,6 +153,7 @@ | |
261 | extern syscall_handler_t sys_sched_getparam; | |
262 | extern syscall_handler_t sys_sched_setscheduler; | |
263 | extern syscall_handler_t sys_sched_getscheduler; | |
264 | +extern syscall_handler_t sys_sched_yield; | |
265 | extern syscall_handler_t sys_sched_get_priority_max; | |
266 | extern syscall_handler_t sys_sched_get_priority_min; | |
267 | extern syscall_handler_t sys_sched_rr_get_interval; | |
268 | @@ -261,7 +262,7 @@ | |
269 | ||
270 | /* declared differently in kern_util.h */ | |
271 | [ __NR_execve ] = (syscall_handler_t *) sys_execve, | |
272 | - [ __NR_chdir ] = sys_chdir, | |
273 | + [ __NR_chdir ] = (syscall_handler_t *) sys_chdir, | |
274 | [ __NR_time ] = um_time, | |
275 | [ __NR_mknod ] = sys_mknod, | |
276 | [ __NR_chmod ] = sys_chmod, | |
277 | @@ -306,15 +307,15 @@ | |
278 | [ __NR_umount2 ] = sys_umount, | |
279 | [ __NR_lock ] = sys_ni_syscall, | |
280 | [ __NR_ioctl ] = sys_ioctl, | |
281 | - [ __NR_fcntl ] = sys_fcntl, | |
282 | + [ __NR_fcntl ] = (syscall_handler_t *) sys_fcntl, | |
283 | [ __NR_mpx ] = sys_ni_syscall, | |
284 | [ __NR_setpgid ] = sys_setpgid, | |
285 | [ __NR_ulimit ] = sys_ni_syscall, | |
286 | [ __NR_oldolduname ] = sys_olduname, | |
287 | [ __NR_umask ] = sys_umask, | |
288 | - [ __NR_chroot ] = sys_chroot, | |
289 | + [ __NR_chroot ] = (syscall_handler_t *) sys_chroot, | |
290 | [ __NR_ustat ] = sys_ustat, | |
291 | - [ __NR_dup2 ] = sys_dup2, | |
292 | + [ __NR_dup2 ] = (syscall_handler_t *) sys_dup2, | |
293 | [ __NR_getppid ] = sys_getppid, | |
294 | [ __NR_getpgrp ] = sys_getpgrp, | |
295 | [ __NR_setsid ] = (syscall_handler_t *) sys_setsid, | |
296 | --- linux-2.4.20/arch/um/kernel/time_kern.c~ Sat Mar 15 23:38:50 2003 | |
297 | +++ linux-2.4.20/arch/um/kernel/time_kern.c Sun Mar 16 01:20:23 2003 | |
298 | @@ -37,7 +37,7 @@ | |
299 | ||
300 | void timer_irq(union uml_pt_regs *regs) | |
301 | { | |
302 | - int cpu = current->processor, ticks = missed_ticks[cpu]; | |
303 | + int cpu = current->cpu, ticks = missed_ticks[cpu]; | |
304 | ||
305 | if(!timer_irq_inited) return; | |
306 | missed_ticks[cpu] = 0; | |
307 | @@ -123,7 +123,7 @@ | |
308 | #ifdef CONFIG_SMP | |
309 | update_process_times(user_context(UPT_SP(regs))); | |
310 | #endif | |
311 | - if(current->processor == 0) | |
312 | + if(current->cpu == 0) | |
313 | timer_irq(regs); | |
314 | } | |
315 | ||
316 | diff -u um/arch/um/kernel/trap_user.c um/arch/um/kernel/trap_user.c | |
317 | --- um/arch/um/kernel/trap_user.c | |
318 | +++ um/arch/um/kernel/trap_user.c | |
319 | @@ -107,7 +107,7 @@ | |
320 | void alarm_handler(int sig, struct sigcontext sc) | |
321 | { | |
322 | if(!timer_irq_inited) return; | |
323 | - missed_ticks[cpu()]++; | |
324 | + missed_ticks[um_cpu()]++; | |
325 | ||
326 | if(sig == SIGALRM) | |
327 | switch_timers(0); | |
328 | --- linux-2.4.20/arch/um/kernel/tt/exec_kern.c~ Sat Mar 15 23:38:50 2003 | |
329 | +++ linux-2.4.20/arch/um/kernel/tt/exec_kern.c Sun Mar 16 01:12:57 2003 | |
330 | @@ -46,7 +46,7 @@ | |
331 | do_exit(SIGKILL); | |
332 | } | |
333 | ||
334 | - if(current->processor == 0) | |
335 | + if(current->cpu == 0) | |
336 | forward_interrupts(new_pid); | |
337 | current->thread.request.op = OP_EXEC; | |
338 | current->thread.request.u.exec.pid = new_pid; | |
339 | diff -urN linux-2.4.20-uml/arch/um/kernel/tt/process_kern.c linux-2.4.20-uml-o1/arch/um/kernel/tt/process_kern.c | |
340 | --- linux-2.4.20-uml/arch/um/kernel/tt/process_kern.c Sat Mar 15 18:34:04 2003 | |
341 | +++ linux-2.4.20-uml-o1/arch/um/kernel/tt/process_kern.c Sat Mar 15 20:06:05 2003 | |
342 | @@ -29,10 +29,6 @@ | |
343 | unsigned long flags; | |
344 | int err, vtalrm, alrm, prof, cpu; | |
345 | char c; | |
346 | - /* jailing and SMP are incompatible, so this doesn't need to be | |
347 | - * made per-cpu | |
348 | - */ | |
349 | - static int reading; | |
350 | ||
351 | from = prev; | |
352 | to = next; | |
353 | @@ -35,7 +35,7 @@ | |
354 | ||
355 | to->thread.prev_sched = from; | |
356 | ||
357 | - cpu = from->processor; | |
358 | + cpu = from->cpu; | |
359 | if(cpu == 0) | |
360 | forward_interrupts(to->thread.mode.tt.extern_pid); | |
361 | #ifdef CONFIG_SMP | |
362 | @@ -51,15 +47,15 @@ | |
363 | alrm = change_sig(SIGALRM, 0); | |
364 | prof = change_sig(SIGPROF, 0); | |
365 | ||
366 | + forward_pending_sigio(to->thread.mode.tt.extern_pid); | |
367 | + | |
368 | c = 0; | |
369 | set_current(to); | |
370 | ||
371 | - reading = 0; | |
372 | err = os_write_file(to->thread.mode.tt.switch_pipe[1], &c, sizeof(c)); | |
373 | if(err != sizeof(c)) | |
374 | panic("write of switch_pipe failed, errno = %d", -err); | |
375 | ||
376 | - reading = 1; | |
377 | if(from->state == TASK_ZOMBIE) | |
378 | os_kill_process(os_getpid(), 0); | |
379 | ||
380 | @@ -67,24 +63,6 @@ | |
381 | if(err != sizeof(c)) | |
382 | panic("read of switch_pipe failed, errno = %d", -err); | |
383 | ||
384 | - /* This works around a nasty race with 'jail'. If we are switching | |
385 | - * between two threads of a threaded app and the incoming process | |
386 | - * runs before the outgoing process reaches the read, and it makes | |
387 | - * it all the way out to userspace, then it will have write-protected | |
388 | - * the outgoing process stack. Then, when the outgoing process | |
389 | - * returns from the write, it will segfault because it can no longer | |
390 | - * write its own stack. So, in order to avoid that, the incoming | |
391 | - * thread sits in a loop yielding until 'reading' is set. This | |
392 | - * isn't entirely safe, since there may be a reschedule from a timer | |
393 | - * happening between setting 'reading' and sleeping in read. But, | |
394 | - * it should get a whole quantum in which to reach the read and sleep, | |
395 | - * which should be enough. | |
396 | - */ | |
397 | - | |
398 | - if(jail){ | |
399 | - while(!reading) sched_yield(); | |
400 | - } | |
401 | - | |
402 | change_sig(SIGVTALRM, vtalrm); | |
403 | change_sig(SIGALRM, alrm); | |
404 | change_sig(SIGPROF, prof); | |
405 | @@ -108,7 +86,7 @@ | |
406 | close(current->thread.mode.tt.switch_pipe[1]); | |
407 | } | |
408 | ||
409 | -extern void schedule_tail(struct task_struct *prev); | |
410 | +asmlinkage void schedule_tail(task_t *prev); | |
411 | ||
412 | static void new_thread_handler(int sig) | |
413 | { | |
414 | @@ -126,8 +104,10 @@ | |
415 | set_cmdline("(kernel thread)"); | |
416 | force_flush_all(); | |
417 | ||
418 | +#ifdef CONFIG_SMP | |
419 | if(current->thread.prev_sched != NULL) | |
420 | schedule_tail(current->thread.prev_sched); | |
421 | +#endif | |
422 | current->thread.prev_sched = NULL; | |
423 | ||
424 | change_sig(SIGUSR1, 1); | |
425 | @@ -169,8 +149,10 @@ | |
426 | 1, 0, 1); | |
427 | task_protections((unsigned long) current); | |
428 | ||
429 | +#ifdef CONFIG_SMP | |
430 | if(current->thread.prev_sched != NULL) | |
431 | schedule_tail(current->thread.prev_sched); | |
432 | +#endif | |
433 | current->thread.prev_sched = NULL; | |
434 | ||
435 | free_page(current->thread.temp_stack); | |
436 | @@ -281,7 +281,7 @@ | |
437 | pid = thread->request.u.exec.pid; | |
438 | do_exec(thread->mode.tt.extern_pid, pid); | |
439 | thread->mode.tt.extern_pid = pid; | |
440 | - cpu_tasks[task->processor].pid = pid; | |
441 | + cpu_tasks[task->cpu].pid = pid; | |
442 | break; | |
443 | case OP_FORK: | |
444 | attach_process(thread->request.u.fork.pid); | |
445 | diff -urN linux-2.4.20-uml/include/asm-um/cache.h linux-2.4.20-uml-o1/include/asm-um/cache.h | |
446 | --- linux-2.4.20-uml/include/asm-um/cache.h Sat Mar 15 18:34:04 2003 | |
447 | +++ linux-2.4.20-uml-o1/include/asm-um/cache.h Sat Mar 15 20:23:30 2003 | |
448 | @@ -1,6 +1,7 @@ | |
449 | #ifndef __UM_CACHE_H | |
450 | #define __UM_CACHE_H | |
451 | ||
452 | -#define L1_CACHE_BYTES 32 | |
453 | +#define L1_CACHE_SHIFT (5) | |
454 | +#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) | |
455 | ||
456 | #endif | |
457 | diff -urN linux-2.4.20-uml/include/asm-um/fixmap.h linux-2.4.20-uml-o1/include/asm-um/fixmap.h | |
458 | --- linux-2.4.20-uml/include/asm-um/fixmap.h Sat Mar 15 18:34:04 2003 | |
459 | +++ linux-2.4.20-uml-o1/include/asm-um/fixmap.h Sat Mar 15 20:44:39 2003 | |
460 | @@ -2,7 +2,9 @@ | |
461 | #define __UM_FIXMAP_H | |
462 | ||
463 | #include <linux/config.h> | |
464 | +#ifdef CONFIG_HIGHMEM | |
465 | #include <asm/kmap_types.h> | |
466 | +#endif | |
467 | ||
468 | /* | |
469 | * Here we define all the compile-time 'special' virtual | |
470 | diff -urN linux-2.4.20-uml/include/asm-um/page.h linux-2.4.20-uml-o1/include/asm-um/page.h | |
471 | --- linux-2.4.20-uml/include/asm-um/page.h Sat Mar 15 18:34:04 2003 | |
472 | +++ linux-2.4.20-uml-o1/include/asm-um/page.h Sat Mar 15 19:47:48 2003 | |
473 | @@ -50,4 +50,7 @@ | |
474 | extern struct page *arch_validate(struct page *page, int mask, int order); | |
475 | #define HAVE_ARCH_VALIDATE | |
476 | ||
477 | +#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ | |
478 | + VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | |
479 | + | |
480 | #endif | |
481 | diff -urN linux-2.4.20-uml/include/asm-um/smp.h linux-2.4.20-uml-o1/include/asm-um/smp.h | |
482 | --- linux-2.4.20-uml/include/asm-um/smp.h Sat Mar 15 18:34:04 2003 | |
483 | +++ linux-2.4.20-uml-o1/include/asm-um/smp.h Sat Mar 15 19:50:18 2003 | |
484 | @@ -6,7 +6,7 @@ | |
485 | #include "linux/config.h" | |
486 | #include "asm/current.h" | |
487 | ||
488 | -#define smp_processor_id() (current->processor) | |
489 | +#define smp_processor_id() (current->cpu) | |
490 | #define cpu_logical_map(n) (n) | |
491 | #define cpu_number_map(n) (n) | |
492 | #define PROC_CHANGE_PENALTY 15 /* Pick a number, any number */ |