)]}'
{
  "commit": "bb519f65ad42944bcff46f73c932b7bd233b6452",
  "tree": "4bfdbff33f106c3608efa9ec4875c169ac969e73",
  "parents": [
    "de56e5288e92e2c0ab2c3489cb32b5e82b402f6d"
  ],
  "author": {
    "name": "Graham Sanderson",
    "email": "graham.sanderson@raspberrypi.com",
    "time": "Wed Jul 01 13:02:22 2026 -0500"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jul 01 13:02:22 2026 -0500"
  },
  "message": "Pico sync sw spinlock fix (#3040)\n\n* Add PICO_SYNC_RP2350_SPINLOCK_WORKAROUND config item to make lock_internal_ helpers aware of spin lock/unlock on same core doing a SEV on RP2350 when using S/W spin locks\n\nThe fix (which is only designed to work with coordinating lock_internal_unclock_with_ functions is to use a single byte sentinel to see if no other spin lock has raced after our own spin-lock, and if not, insert an extra __wfe\n\nNote that it seems to me that a single byte across all cores and locks is sufficient, since we only care that the value changes from our point of view, and changes are monatomic (well module 256 which seems fair for a rare-race). we don\u0027t care about a rare extra wakeup due to another lock\n\n* add more bazel exclusions\n\n* SPINLOCK-\u003eSPIN_LOCK\n\n* bazel fix\n\n* grrr\n\n* fix silly bug; add test for sleep_until\n\n* fix indent\n\n* fix required on RISC-V too",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9adbd8061e4a2248bf103ca8d5fdfe55c1d6cdfc",
      "old_mode": 33188,
      "old_path": "src/common/pico_sync/include/pico/lock_core.h",
      "new_id": "74224d5c1972bfdad7c8b3b6290c3614aba666ab",
      "new_mode": 33188,
      "new_path": "src/common/pico_sync/include/pico/lock_core.h"
    },
    {
      "type": "modify",
      "old_id": "1bc8df9d565b21484e6525705132dc3f2f706fe1",
      "old_mode": 33188,
      "old_path": "src/common/pico_sync/lock_core.c",
      "new_id": "eb2d5324565415d35010522a7b9597a4505f3a37",
      "new_mode": 33188,
      "new_path": "src/common/pico_sync/lock_core.c"
    },
    {
      "type": "modify",
      "old_id": "a5b383fc42e761abc7e96d83a1cc6fb3d35c6378",
      "old_mode": 33188,
      "old_path": "src/rp2_common/hardware_sync_spin_lock/include/hardware/sync/spin_lock.h",
      "new_id": "1c7e0de4b19d1edb014de9bb61d626c24abac085",
      "new_mode": 33188,
      "new_path": "src/rp2_common/hardware_sync_spin_lock/include/hardware/sync/spin_lock.h"
    },
    {
      "type": "modify",
      "old_id": "e7bb50632dd50523f7fc712ffe8fca6d2c78eb30",
      "old_mode": 33188,
      "old_path": "test/CMakeLists.txt",
      "new_id": "e35796619177d977d7e7b418b142b0b9d5740af6",
      "new_mode": 33188,
      "new_path": "test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5705363cb6aad0ae5a80fd69f2b994430a90c25e",
      "new_mode": 33188,
      "new_path": "test/pico_sync_test/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1b23e283af3778775ccf4baf4ae63522728d4ae6",
      "new_mode": 33188,
      "new_path": "test/pico_sync_test/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e9fd8f7c3c718c3674f530269e446b41eaff4366",
      "new_mode": 33188,
      "new_path": "test/pico_sync_test/pico_sync_test.c"
    },
    {
      "type": "modify",
      "old_id": "5ab84e629744952c6fb7b64660e253e6fd063f25",
      "old_mode": 33188,
      "old_path": "test/pico_test/include/pico/test.h",
      "new_id": "1352424e3c4b2e89dda11db6469b36559a950dd1",
      "new_mode": 33188,
      "new_path": "test/pico_test/include/pico/test.h"
    },
    {
      "type": "modify",
      "old_id": "4800aa55f10a7e9ec67b36666238072ca586cb61",
      "old_mode": 33261,
      "old_path": "tools/bazel_build.py",
      "new_id": "4ba94ce26356993fd99f14eedb247fafed1d8978",
      "new_mode": 33261,
      "new_path": "tools/bazel_build.py"
    }
  ]
}
