)]}'
{
  "commit": "33fea794b9deeb8ffb77e284eb37375b8f45a2c4",
  "tree": "4a9a1cbad368c1f6c2c79e334c68f8ca04721b98",
  "parents": [
    "f5cdac274c62ab61874374abb60f2310ab979295"
  ],
  "author": {
    "name": "Martin Schwidefsky",
    "email": "schwidefsky@de.ibm.com",
    "time": "Tue Jul 27 19:29:38 2010 +0200"
  },
  "committer": {
    "name": "Martin Schwidefsky",
    "email": "sky@mschwide.boeblingen.de.ibm.com",
    "time": "Tue Jul 27 19:29:42 2010 +0200"
  },
  "message": "[S390] etr: fix clock synchronization race\n\nThe etr events switch-to-local and sync-check disable the synchronous clock\nand schedule a work queue that tries to get the clock back into sync.\nIf another switch-to-local or sync-check event occurs while the work queue\nfunction etr_work_fn still runs the eacr.es bit and the clock_sync_word can\nbecome inconsistent because check_sync_clock only uses the clock_sync_word\nto determine if the clock is in sync or not. The second pass of the\netr_work_fn will reset the eacr.es bit but will leave the clock_sync_word\nintact. Fix this race by moving the reset of the eacr.es bit into the\nswitch-to-local and sync-check functions and by checking the eacr.es bit\nas well to decide if the clock needs to be synced.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a2163c95eb9845ffac908bf09b7af1bb5084cf3c",
      "old_mode": 33188,
      "old_path": "arch/s390/kernel/time.c",
      "new_id": "15a7536452d508b7998d37d9b679f4545d670dc1",
      "new_mode": 33188,
      "new_path": "arch/s390/kernel/time.c"
    }
  ]
}
