)]}'
{
  "commit": "83e56c38ee181357a3a95ece7b57c515fed70d2b",
  "tree": "e128e29819620ebddd1769195a34c8db17104fd5",
  "parents": [
    "fc253649315aed0be745970fb73a803c2d8ee85f"
  ],
  "author": {
    "name": "Archit Gupta",
    "email": "archigup@amazon.com",
    "time": "Mon Jun 15 22:30:25 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Jun 15 15:30:25 2026 -0700"
  },
  "message": "Disallow unprivileged critical sections with MPU wrappers v2 (#1427)\n\nWhen using MPU wrappers version 2 (configUSE_MPU_WRAPPERS_V1 \u003d\u003d 0),\nportRAISE_PRIVILEGE() is a no-op because the portSVC_RAISE_PRIVILEGE\nhandler is compiled only for MPU wrappers version 1. As a result, an\nunprivileged task that calls taskENTER_CRITICAL() does not actually raise\nits privilege, so the subsequent BASEPRI write is ignored by the hardware\nand the critical section silently fails to mask interrupts. This produces\nlatent, hard-to-debug faults.\n\nconfigALLOW_UNPRIVILEGED_CRITICAL_SECTIONS is therefore not supported with\nMPU wrappers version 2. In the ARMv7-M MPU ports:\n\n- When the option is left undefined under v2, default it to 0 instead of 1\n  so the dangerous default configuration is safe.\n- When the option is explicitly set to 1 under v2, raise a compile-time\n  #error so the unsupported configuration is rejected loudly rather than\n  failing silently at run time.\n\nBehaviour for MPU wrappers version 1 is unchanged.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8c4dd7800d26d8b275a01082028c2c387703b70f",
      "old_mode": 33188,
      "old_path": "portable/GCC/ARM_CM3_MPU/port.c",
      "new_id": "c8d3439b646eb12f23e6bf85f1963c41771ee242",
      "new_mode": 33188,
      "new_path": "portable/GCC/ARM_CM3_MPU/port.c"
    },
    {
      "type": "modify",
      "old_id": "79f5e76d5149d00c810250aa5b290518cb765175",
      "old_mode": 33188,
      "old_path": "portable/GCC/ARM_CM4_MPU/port.c",
      "new_id": "5a35271577e008911797f5680ec324eba3a591b9",
      "new_mode": 33188,
      "new_path": "portable/GCC/ARM_CM4_MPU/port.c"
    },
    {
      "type": "modify",
      "old_id": "720138f089f1533f8b4843a186a3816020d7ca52",
      "old_mode": 33188,
      "old_path": "portable/IAR/ARM_CM4F_MPU/port.c",
      "new_id": "0441e0f0c689f51303924f9928c06cffae08f267",
      "new_mode": 33188,
      "new_path": "portable/IAR/ARM_CM4F_MPU/port.c"
    },
    {
      "type": "modify",
      "old_id": "450b86211697ecbd8fc34fe60441a13153e5cfa7",
      "old_mode": 33188,
      "old_path": "portable/RVDS/ARM_CM4_MPU/port.c",
      "new_id": "8620325ca6c13f6aced8a23dd341e64a26da0063",
      "new_mode": 33188,
      "new_path": "portable/RVDS/ARM_CM4_MPU/port.c"
    }
  ]
}
