)]}'
{
  "commit": "6555c7efdfdd61b2bf6e3a5fd05ea4746e7656d5",
  "tree": "d60790f27d09dcfbbf4af6050a47d252ed71b145",
  "parents": [
    "916aefdaf178a48120335760fd34dabc3ec16ed7"
  ],
  "author": {
    "name": "Frederic Weisbecker",
    "email": "frederic@kernel.org",
    "time": "Fri Feb 21 17:12:46 2025 +0100"
  },
  "committer": {
    "name": "Frederic Weisbecker",
    "email": "frederic@kernel.org",
    "time": "Fri Feb 21 17:12:46 2025 +0100"
  },
  "message": "net: Handle napi_schedule() calls from non-interrupt\n\nnapi_schedule() is expected to be called either:\n\n* From an interrupt, where raised softirqs are handled on IRQ exit\n\n* From a softirq disabled section, where raised softirqs are handled on\n  the next call to local_bh_enable().\n\n* From a softirq handler, where raised softirqs are handled on the next\n  round in do_softirq(), or further deferred to a dedicated kthread.\n\nOther bare tasks context may end up ignoring the raised NET_RX vector\nuntil the next random softirq handling opportunity, which may not\nhappen before a while if the CPU goes idle afterwards with the tick\nstopped.\n\nSuch \"misuses\" have been detected on several places thanks to messages\nof the kind:\n\n\t\"NOHZ tick-stop error: local softirq work is pending, handler #08!!!\"\n\nChasing each and every misuse can be challenging given the amount of\nexisting callers. Fixing them can also prove challenging if the caller\nmay be called from different kind of context.\n\nTherefore fix this from napi_schedule() itself with waking up ksoftirqd\nwhen softirqs are raised from task contexts.\n\nReported-by: Paul Menzel \u003cpmenzel@molgen.mpg.de\u003e\nCloses: 354a2690-9bbf-4ccb-8769-fa94707a9340@molgen.mpg.de\nCc: Breno Leitao \u003cleitao@debian.org\u003e\nCc: Jakub Kicinski \u003ckuba@kernel.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Paolo Abeni \u003cpabeni@redhat.com\u003e\nCc: Francois Romieu \u003cromieu@fr.zoreil.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfrederic@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c0021cbd28fc11e4c4eb6184d98a2505fa674871",
      "old_mode": 33188,
      "old_path": "net/core/dev.c",
      "new_id": "2419cc558a649eaea74eea3df0eb19e795fa7aa7",
      "new_mode": 33188,
      "new_path": "net/core/dev.c"
    }
  ]
}
