)]}'
{
  "commit": "c11149e84a7caf2f48178363e2ecb33fe89bdea3",
  "tree": "b792f7154d923ec47d2ffd167cdcb388232313b0",
  "parents": [
    "bc2895c982d5940f89fde7e8849c9fd119a39c57"
  ],
  "author": {
    "name": "Jinliang Wang",
    "email": "jinliangw@google.com",
    "time": "Thu Aug 17 18:39:39 2023 -0700"
  },
  "committer": {
    "name": "Jinliang Wang",
    "email": "jinliangw@google.com",
    "time": "Tue Aug 22 12:02:01 2023 -0700"
  },
  "message": "linux-gbmc: i2c-npcm7xx.c: add msleep in polling loop to avoid RCU stall\n\nWhen some malfunctional I2C device hangs the bus, the npcm_i2c_master_xfer\nwill almost stall the current CPU because there is a do {} while loop (used to\ndetect I2C bus idle condition) which will keep calling spin_lock_irqsave again and again.\nAdding a msleep_interruptible(10) can help release the current CPU so it can do\nother tasks.\n\nTested:\nBefore the fix, when dealing with hanging I2C device:\n\n    kernel: i2c i2c-10: __i2c_transfer failed -11\n    kernel: rcu: INFO: rcu_sched self-detected stall on CPU\n\nAfter the fix, when dealing with hanging I2C device, there\nis only :\n      kernel: i2c i2c-6: __i2c_transfer failed -11\n\nAlso, we built staging image 91.23.18.200 and tested passed on 3 machines.\n\nGoogle-Bug-Id: 295580753\nChange-Id: I96538284a7d11fe19374a2f17696bf2e0f3ba29a\nSigned-off-by: Jinliang Wang \u003cjinliangw@google.com\u003e\n(cherry picked from commit 36886d473729667e51852f4c61de5661181dedaa)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d7661f1fb36e72af87ded7a20c81d4d74db863cf",
      "old_mode": 33188,
      "old_path": "recipes-kernel/linux/files/0001-i2c-npcm-quirk-to-fix-multiple-master-xfer-failure.patch",
      "new_id": "4f5427e9b3b1a29663cd0e85c5350e4c31aa97ca",
      "new_mode": 33188,
      "new_path": "recipes-kernel/linux/files/0001-i2c-npcm-quirk-to-fix-multiple-master-xfer-failure.patch"
    }
  ]
}
