aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-09-30 23:45:41 -0400
committerJeff Garzik <jeff@garzik.org>2006-09-30 23:45:41 -0400
commit1c7da74c4aab595a994beb5fe728ebf0d0b41f59 (patch)
tree64128abdf9550ebb51d8f3ee6732d7350b9c62f2 /arch/ia64
parentaebb1153ac54ddbbd3d3f0481a193f4bf0ead53b (diff)
parent1bdfd554be94def718323659173517c5d4a69d25 (diff)
Merge branch 'master' into upstream
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/hp/sim/simeth.c4
-rw-r--r--arch/ia64/kernel/time.c2
-rw-r--r--arch/ia64/mm/fault.c8
3 files changed, 8 insertions, 6 deletions
diff --git a/arch/ia64/hp/sim/simeth.c b/arch/ia64/hp/sim/simeth.c
index b5195be628..e1a1b11473 100644
--- a/arch/ia64/hp/sim/simeth.c
+++ b/arch/ia64/hp/sim/simeth.c
@@ -320,7 +320,7 @@ simeth_device_event(struct notifier_block *this,unsigned long event, void *ptr)
320 } 320 }
321 321
322 printk(KERN_INFO "simeth_device_event: %s ipaddr=0x%x\n", 322 printk(KERN_INFO "simeth_device_event: %s ipaddr=0x%x\n",
323 dev->name, htonl(ifa->ifa_local)); 323 dev->name, ntohl(ifa->ifa_local));
324 324
325 /* 325 /*
326 * XXX Fix me 326 * XXX Fix me
@@ -331,7 +331,7 @@ simeth_device_event(struct notifier_block *this,unsigned long event, void *ptr)
331 local = dev->priv; 331 local = dev->priv;
332 /* now do it for real */ 332 /* now do it for real */
333 r = event == NETDEV_UP ? 333 r = event == NETDEV_UP ?
334 netdev_attach(local->simfd, dev->irq, htonl(ifa->ifa_local)): 334 netdev_attach(local->simfd, dev->irq, ntohl(ifa->ifa_local)):
335 netdev_detach(local->simfd); 335 netdev_detach(local->simfd);
336 336
337 printk(KERN_INFO "simeth: netdev_attach/detach: event=%s ->%d\n", 337 printk(KERN_INFO "simeth: netdev_attach/detach: event=%s ->%d\n",
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 6928ef0d64..16262687a1 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -78,7 +78,7 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
78 * xtime_lock. 78 * xtime_lock.
79 */ 79 */
80 write_seqlock(&xtime_lock); 80 write_seqlock(&xtime_lock);
81 do_timer(regs); 81 do_timer(1);
82 local_cpu_data->itm_next = new_itm; 82 local_cpu_data->itm_next = new_itm;
83 write_sequnlock(&xtime_lock); 83 write_sequnlock(&xtime_lock);
84 } else 84 } else
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
index 14ef7cceb2..59f3ab9376 100644
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -146,9 +146,11 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
146# error File is out of sync with <linux/mm.h>. Please update. 146# error File is out of sync with <linux/mm.h>. Please update.
147# endif 147# endif
148 148
149 if (((isr >> IA64_ISR_R_BIT) & 1UL) && (!(vma->vm_flags & (VM_READ | VM_WRITE))))
150 goto bad_area;
151
149 mask = ( (((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT) 152 mask = ( (((isr >> IA64_ISR_X_BIT) & 1UL) << VM_EXEC_BIT)
150 | (((isr >> IA64_ISR_W_BIT) & 1UL) << VM_WRITE_BIT) 153 | (((isr >> IA64_ISR_W_BIT) & 1UL) << VM_WRITE_BIT));
151 | (((isr >> IA64_ISR_R_BIT) & 1UL) << VM_READ_BIT));
152 154
153 if ((vma->vm_flags & mask) != mask) 155 if ((vma->vm_flags & mask) != mask)
154 goto bad_area; 156 goto bad_area;
@@ -278,7 +280,7 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re
278 280
279 out_of_memory: 281 out_of_memory:
280 up_read(&mm->mmap_sem); 282 up_read(&mm->mmap_sem);
281 if (current->pid == 1) { 283 if (is_init(current)) {
282 yield(); 284 yield();
283 down_read(&mm->mmap_sem); 285 down_read(&mm->mmap_sem);
284 goto survive; 286 goto survive;