.. | .. |
---|
289 | 289 | unaligned_addr += shift; |
---|
290 | 290 | |
---|
291 | 291 | if (load) { |
---|
292 | | - if (!access_ok(VERIFY_READ, (void *)unaligned_addr, len)) |
---|
| 292 | + if (!access_ok((void *)unaligned_addr, len)) |
---|
293 | 293 | return -EACCES; |
---|
294 | 294 | |
---|
295 | 295 | get_data(unaligned_addr, &target_val, len); |
---|
296 | 296 | *idx_to_addr(regs, target_idx) = target_val; |
---|
297 | 297 | } else { |
---|
298 | | - if (!access_ok(VERIFY_WRITE, (void *)unaligned_addr, len)) |
---|
| 298 | + if (!access_ok((void *)unaligned_addr, len)) |
---|
299 | 299 | return -EACCES; |
---|
300 | 300 | target_val = *idx_to_addr(regs, target_idx); |
---|
301 | 301 | set_data((void *)unaligned_addr, target_val, len); |
---|
.. | .. |
---|
479 | 479 | |
---|
480 | 480 | if (load) { |
---|
481 | 481 | |
---|
482 | | - if (!access_ok(VERIFY_READ, (void *)unaligned_addr, len)) |
---|
| 482 | + if (!access_ok((void *)unaligned_addr, len)) |
---|
483 | 483 | return -EACCES; |
---|
484 | 484 | |
---|
485 | 485 | get_data(unaligned_addr, &target_val, len); |
---|
.. | .. |
---|
491 | 491 | *idx_to_addr(regs, RT(inst)) = target_val; |
---|
492 | 492 | } else { |
---|
493 | 493 | |
---|
494 | | - if (!access_ok(VERIFY_WRITE, (void *)unaligned_addr, len)) |
---|
| 494 | + if (!access_ok((void *)unaligned_addr, len)) |
---|
495 | 495 | return -EACCES; |
---|
496 | 496 | |
---|
497 | 497 | target_val = *idx_to_addr(regs, RT(inst)); |
---|
.. | .. |
---|
512 | 512 | { |
---|
513 | 513 | unsigned long inst; |
---|
514 | 514 | int ret = -EFAULT; |
---|
515 | | - mm_segment_t seg = get_fs(); |
---|
| 515 | + mm_segment_t seg; |
---|
516 | 516 | |
---|
517 | 517 | inst = get_inst(regs->ipc); |
---|
518 | 518 | |
---|
.. | .. |
---|
520 | 520 | "Faulting addr: 0x%08lx, pc: 0x%08lx [inst: 0x%08lx ]\n", addr, |
---|
521 | 521 | regs->ipc, inst); |
---|
522 | 522 | |
---|
523 | | - set_fs(USER_DS); |
---|
524 | | - |
---|
| 523 | + seg = force_uaccess_begin(); |
---|
525 | 524 | if (inst & NDS32_16BIT_INSTRUCTION) |
---|
526 | 525 | ret = do_16((inst >> 16) & 0xffff, regs); |
---|
527 | 526 | else |
---|
528 | 527 | ret = do_32(inst, regs); |
---|
529 | | - set_fs(seg); |
---|
| 528 | + force_uaccess_end(seg); |
---|
530 | 529 | |
---|
531 | 530 | return ret; |
---|
532 | 531 | } |
---|