Changeset 00dfdd6 in rtems


Ignore:
Timestamp:
Sep 2, 2016, 11:30:47 PM (3 years ago)
Author:
Pavel Pisa <pisa@…>
Branches:
4.11
Children:
28eeb6a
Parents:
6f4e903
git-author:
Pavel Pisa <pisa@…> (09/02/16 23:30:47)
git-committer:
Pavel Pisa <pisa@…> (10/02/16 08:40:34)
Message:

bsps/arm: remove lock in arm_cp15_set_translation_table_entries().

Protection by rtems_interrupt_disable() is incompatible with SMP build.
Actual page table entries manipulation function does not need locking
and disabling cache and can be run concurrently even on multiple
CPUs as long as changes do not modify same region. If the function
is called from more threads/CPUs to modify same region with different
mapping options concurrently then there is problem at another level
of virtual address space management and has to be solved by mutex
or other locking at that level.

Updates #2782
Updates #2783

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/arm/shared/arm-cp15-set-ttb-entries.c

    r6f4e903 r00dfdd6  
    8686)
    8787{
    88   rtems_interrupt_level level;
    89   uint32_t section_flags_of_first_entry;
    90 
    91   rtems_interrupt_disable(level);
    92   section_flags_of_first_entry =
    93     set_translation_table_entries(begin, end, section_flags);
    94   rtems_interrupt_enable(level);
    95 
    96   return section_flags_of_first_entry;
     88  return set_translation_table_entries(begin, end, section_flags);
    9789}
Note: See TracChangeset for help on using the changeset viewer.