)]}'
{
  "commit": "fc66127dc3396338f287c3b494dfbf102547e770",
  "tree": "5c18d8af2e864a4251bb9f33983c18cd53ffcfea",
  "parents": [
    "13311e74253fe64329390df80bed3f07314ddd61"
  ],
  "author": {
    "name": "Sven Schnelle",
    "email": "svens@linux.ibm.com",
    "time": "Fri Jun 11 10:27:51 2021 +0200"
  },
  "committer": {
    "name": "Vasily Gorbik",
    "email": "gor@linux.ibm.com",
    "time": "Mon Jun 21 11:19:18 2021 +0200"
  },
  "message": "s390: fix system call restart with multiple signals\n\nglibc complained with \"The futex facility returned an unexpected error\ncode.\". It turned out that the futex syscall returned -ERESTARTSYS because\na signal is pending. arch_do_signal_or_restart() restored the syscall\nparameters (nameley regs-\u003egprs[2]) and set PIF_SYSCALL_RESTART. When\nanother signal is made pending later in the exit loop\narch_do_signal_or_restart() is called again. This function clears\nPIF_SYSCALL_RESTART and checks the return code which is set in\nregs-\u003egprs[2]. However, regs-\u003egprs[2] was restored in the previous run\nand no longer contains -ERESTARTSYS, so PIF_SYSCALL_RESTART isn\u0027t set\nagain and the syscall is skipped.\n\nFix this by not clearing PIF_SYSCALL_RESTART - it is already cleared in\n__do_syscall() when the syscall is restarted.\n\nReported-by: Bjoern Walk \u003cbwalk@linux.ibm.com\u003e\nSigned-off-by: Sven Schnelle \u003csvens@linux.ibm.com\u003e\nReviewed-by: Heiko Carstens \u003chca@linux.ibm.com\u003e\nFixes: 56e62a737028 (\"s390: convert to generic entry\")\nCc: \u003cstable@vger.kernel.org\u003e # 5.12\nSigned-off-by: Vasily Gorbik \u003cgor@linux.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "90163e6184f5c5bd53aeeb795b4514abafa4d6d5",
      "old_mode": 33188,
      "old_path": "arch/s390/kernel/signal.c",
      "new_id": "080e7aed181f4b36b05e7c087bb45007cbf47b2c",
      "new_mode": 33188,
      "new_path": "arch/s390/kernel/signal.c"
    }
  ]
}
