)]}'
{
  "commit": "4238a40abae6f3a3548e5d9856f2da0dc9a8131d",
  "tree": "a038eae2c2aecee2b0ae42c37f2bc71940592a83",
  "parents": [
    "b524b7777cc86cb628fb707fb9a6688255f394c6"
  ],
  "author": {
    "name": "Boqun Feng",
    "email": "boqun.feng@gmail.com",
    "time": "Sun Apr 13 23:00:55 2025 -0700"
  },
  "committer": {
    "name": "Boqun Feng",
    "email": "boqun.feng@gmail.com",
    "time": "Mon Jun 23 06:32:20 2025 -0700"
  },
  "message": "locking/lockdep: Use shazptr to protect the key hashlist\n\nErik Lundgren and Breno Leitao reported [1] a case where\nlockdep_unregister_key() can be called from time critical code pathes\nwhere rntl_lock() may be held. And the synchronize_rcu() in it can slow\ndown operations such as using tc to replace a qdisc in a network device.\n\nIn fact the synchronize_rcu() in lockdep_unregister_key() is to wait for\nall is_dynamic_key() callers to finish so that removing a key from the\nkey hashlist, and we can use shazptr to protect the hashlist as well.\n\nCompared to the proposed solution which replaces synchronize_rcu() with\nsynchronize_rcu_expedited(), using shazptr here can achieve the\nsame/better synchronization time without the need to send IPI. Hence use\nshazptr here.\n\nReported-by: Erik Lundgren \u003celundgren@meta.com\u003e\nReported-by: Breno Leitao \u003cleitao@debian.org\u003e\nLink: https://lore.kernel.org/all/20250321-lockdep-v1-1-78b732d195fb@debian.org/ [1]\nSigned-off-by: Boqun Feng \u003cboqun.feng@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dd2bbf73718b06caf9ded9aa6be73d616b154785",
      "old_mode": 33188,
      "old_path": "kernel/locking/lockdep.c",
      "new_id": "5c205dd425f8861d2a05fb0446fab35e53725ed4",
      "new_mode": 33188,
      "new_path": "kernel/locking/lockdep.c"
    }
  ]
}
