if (flags & MAP_FIXED) {
/* Ok, don't mess with it. */
- return get_unmapped_area(NULL, addr, len, pgoff, flags);
+ return get_unmapped_area(NULL, addr, len, pgoff, flags, 0);
}
flags &= ~MAP_SHARED;
align_goal = (64UL * 1024);
do {
- addr = get_unmapped_area(NULL, orig_addr, len + (align_goal - PAGE_SIZE), pgoff, flags);
+ addr = get_unmapped_area(NULL, orig_addr, len + (align_goal - PAGE_SIZE), pgoff, flags, 0);
if (!(addr & ~PAGE_MASK)) {
addr = (addr + (align_goal - 1UL)) & ~(align_goal - 1UL);
break;
* be obtained.
*/
if (addr & ~PAGE_MASK)
- addr = get_unmapped_area(NULL, orig_addr, len, pgoff, flags);
+ addr = get_unmapped_area(NULL, orig_addr, len, pgoff, flags, 0);
return addr;
}
if (call <= SEMCTL)
switch (call) {
case SEMOP:
- err = sys_semtimedop (first, (struct sembuf *)ptr, second, NULL);
+ err = sys_semtimedop (first, (struct sembuf __user *)ptr, second, NULL);
goto out;
case SEMTIMEDOP:
- err = sys_semtimedop (first, (struct sembuf *)ptr, second, (const struct timespec *) fifth);
+ err = sys_semtimedop (first, (struct sembuf __user *)ptr, second, (const struct timespec __user *) fifth);
goto out;
case SEMGET:
err = sys_semget (first, second, (int)third);
if (!ptr)
goto out;
err = -EFAULT;
- if(get_user(fourth.__pad, (void **)ptr))
+ if (get_user(fourth.__pad, (void __user * __user *)ptr))
goto out;
err = sys_semctl (first, second | IPC_64, (int)third, fourth);
goto out;
if (call <= MSGCTL)
switch (call) {
case MSGSND:
- err = sys_msgsnd (first, (struct msgbuf *) ptr,
+ err = sys_msgsnd (first, (struct msgbuf __user *) ptr,
second, (int)third);
goto out;
case MSGRCV:
- err = sys_msgrcv (first, (struct msgbuf *) ptr, second, fifth, (int)third);
+ err = sys_msgrcv (first, (struct msgbuf __user *) ptr, second, fifth, (int)third);
goto out;
case MSGGET:
err = sys_msgget ((key_t) first, second);
goto out;
case MSGCTL:
- err = sys_msgctl (first, second | IPC_64, (struct msqid_ds *) ptr);
+ err = sys_msgctl (first, second | IPC_64, (struct msqid_ds __user *) ptr);
goto out;
default:
err = -ENOSYS;
switch (call) {
case SHMAT: {
ulong raddr;
- err = do_shmat (first, (char *) ptr, second, &raddr);
+ err = do_shmat (first, (char __user *) ptr, second, &raddr);
if (!err) {
if (put_user(raddr, (ulong __user *) third))
err = -EFAULT;
goto out;
}
case SHMDT:
- err = sys_shmdt ((char *)ptr);
+ err = sys_shmdt ((char __user *)ptr);
goto out;
case SHMGET:
err = sys_shmget (first, second, (int)third);
goto out;
case SHMCTL:
- err = sys_shmctl (first, second | IPC_64, (struct shmid_ds *) ptr);
+ err = sys_shmctl (first, second | IPC_64, (struct shmid_ds __user *) ptr);
goto out;
default:
err = -ENOSYS;
/* MREMAP_FIXED checked above. */
new_addr = get_unmapped_area(file, addr, new_len,
vma ? vma->vm_pgoff : 0,
- map_flags);
+ map_flags, vma->vm_flags & VM_EXEC);
ret = new_addr;
if (new_addr & ~PAGE_MASK)
goto out_sem;
switch(opcode) {
case PERFCTR_ON:
current_thread_info()->pcr_reg = arg2;
- current_thread_info()->user_cntd0 = (u64 *) arg0;
- current_thread_info()->user_cntd1 = (u64 *) arg1;
+ current_thread_info()->user_cntd0 = (u64 __user *) arg0;
+ current_thread_info()->user_cntd1 = (u64 __user *) arg1;
current_thread_info()->kernel_cntd0 =
current_thread_info()->kernel_cntd1 = 0;
write_pcr(arg2);
break;
case PERFCTR_SETPCR: {
- u64 *user_pcr = (u64 *)arg0;
+ u64 __user *user_pcr = (u64 __user *)arg0;
+
if (!test_thread_flag(TIF_PERFCTR)) {
err = -EINVAL;
break;
}
case PERFCTR_GETPCR: {
- u64 *user_pcr = (u64 *)arg0;
+ u64 __user *user_pcr = (u64 __user *)arg0;
+
if (!test_thread_flag(TIF_PERFCTR)) {
err = -EINVAL;
break;