)]}'
{
  "commit": "c3df5fb57fe8756d67fd56ed29da65cdfde839f9",
  "tree": "58e8de70658fb85ae8e451194bd9aa742618acec",
  "parents": [
    "1e7107c5ef44431bc1ebbd4c353f1d7c22e5f2ec"
  ],
  "author": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Tue Jul 27 13:12:20 2021 -1000"
  },
  "committer": {
    "name": "Tejun Heo",
    "email": "tj@kernel.org",
    "time": "Tue Jul 27 13:12:20 2021 -1000"
  },
  "message": "cgroup: rstat: fix A-A deadlock on 32bit around u64_stats_sync\n\n0fa294fb1985 (\"cgroup: Replace cgroup_rstat_mutex with a spinlock\") added\ncgroup_rstat_flush_irqsafe() allowing flushing to happen from the irq\ncontext. However, rstat paths use u64_stats_sync to synchronize access to\n64bit stat counters on 32bit machines. u64_stats_sync is implemented using\nseq_lock and trying to read from an irq context can lead to A-A deadlock if\nthe irq happens to interrupt the stat update.\n\nFix it by using the irqsafe variants - u64_stats_update_begin_irqsave() and\nu64_stats_update_end_irqrestore() - in the update paths. Note that none of\nthis matters on 64bit machines. All these are just for 32bit SMP setups.\n\nNote that the interface was introduced way back, its first and currently\nonly use was recently added by 2d146aa3aa84 (\"mm: memcontrol: switch to\nrstat\"). Stable tagging targets this commit.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Rik van Riel \u003criel@surriel.com\u003e\nFixes: 2d146aa3aa84 (\"mm: memcontrol: switch to rstat\")\nCc: stable@vger.kernel.org # v5.13+\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "575d7a2e7203b87a6df7b360cef002b143dc8a19",
      "old_mode": 33188,
      "old_path": "block/blk-cgroup.c",
      "new_id": "31fe9be179d99b8a0fd07feb44cc47459428c205",
      "new_mode": 33188,
      "new_path": "block/blk-cgroup.c"
    },
    {
      "type": "modify",
      "old_id": "7f0e58917432965397dd521c2f7c83e2d4d27617",
      "old_mode": 33188,
      "old_path": "kernel/cgroup/rstat.c",
      "new_id": "b264ab5652ba9f5e40f3df6a95f43b2dab8d04d4",
      "new_mode": 33188,
      "new_path": "kernel/cgroup/rstat.c"
    }
  ]
}
