)]}'
{
  "commit": "4df1d2ffe1765f7bbfae61ca3c3bedbc83fa699d",
  "tree": "a9fbbbc66bc7f74f90ea7861d314c198278de92d",
  "parents": [
    "86c87779ede40b30fa9e0fefedfea08a794b1a46"
  ],
  "author": {
    "name": "Will Deacon",
    "email": "willdeacon@google.com",
    "time": "Tue Dec 15 15:48:22 2020 +0000"
  },
  "committer": {
    "name": "Giuliano Procida",
    "email": "gprocida@google.com",
    "time": "Tue Jan 05 10:12:26 2021 +0000"
  },
  "message": "ANDROID: usb: f_accessory: Fix teardown ordering in acc_release()\n\nacc_release() attempts to synchronise with acc_open() using an atomic\n\u0027open_excl\u0027 member in \u0027struct acc_dev\u0027. Unfortunately, acc_release()\nprematurely resets this atomic variable to zero, meaning there is a\npotential race on \u0027dev-\u003edisconnected\u0027:\n\nacc_open()\t\t\t\tacc_release()\n\t\t\t\t\t\tatomic_xchg(open_excl), 0)\n\tatomic_xchg(open_excl, 1)\n\tdev-\u003edisconnected \u003d 0;\t\t\tdev-\u003edisconnected \u003d 1;\n\nFix the race by ensuring that the \u0027disconnected\u0027 field is written\nbefore clearing \u0027open_excl\u0027 in acc_release().\n\nBug: 173789633\nSigned-off-by: Will Deacon \u003cwilldeacon@google.com\u003e\nChange-Id: Ib9a21f2305f6d70de3e760da62dbfdd66889200a\nSigned-off-by: Giuliano Procida \u003cgprocida@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "97a6bd8bac90af17373bd58bfd17e95c05bf51f5",
      "old_mode": 33188,
      "old_path": "drivers/usb/gadget/function/f_accessory.c",
      "new_id": "592d59c942224bd068cb6b32cb60da277f765776",
      "new_mode": 33188,
      "new_path": "drivers/usb/gadget/function/f_accessory.c"
    }
  ]
}
