)]}'
{
  "commit": "985131a81ef6ffbbda082fe8cda039f8dfe173b0",
  "tree": "668481346f71ca789fc31d0d74f20ef5989db2d6",
  "parents": [
    "28b2ec0662a817043f76900e131cc5376c2df725"
  ],
  "author": {
    "name": "Srinivas Kandagatla",
    "email": "srinivas.kandagatla@oss.qualcomm.com",
    "time": "Mon Jan 05 10:10:08 2026 -0500"
  },
  "committer": {
    "name": "Greg Kroah-Hartman",
    "email": "gregkh@linuxfoundation.org",
    "time": "Thu Jan 08 10:15:04 2026 +0100"
  },
  "message": "ASoC: qcom: sdw: fix memory leak for sdw_stream_runtime\n\n[ Upstream commit bcba17279327c6e85dee6a97014dc642e2dc93cc ]\n\nFor some reason we endedup allocating sdw_stream_runtime for every cpu dai,\nthis has two issues.\n1. we never set snd_soc_dai_set_stream for non soundwire dai, which\n   means there is no way that we can free this, resulting in memory leak\n2. startup and shutdown callbacks can be called without\n   hw_params callback called. This combination results in memory leak\nbecause machine driver sruntime array pointer is only set in hw_params\ncallback.\n\nFix this by\n 1. adding a helper function to get sdw_runtime for substream\nwhich can be used by shutdown callback to get hold of sruntime to free.\n 2. only allocate sdw_runtime for soundwire dais.\n\nFixes: d32bac9cb09c (\"ASoC: qcom: Add helper for allocating Soundwire stream runtime\")\nCc: Krzysztof Kozlowski \u003ckrzysztof.kozlowski@linaro.org\u003e\nCc: Stable@vger.kernel.org\nSigned-off-by: Srinivas Kandagatla \u003csrinivas.kandagatla@oss.qualcomm.com\u003e\nTested-by: Steev Klimaszewski \u003cthreeway@gmail.com\u003e # Thinkpad X13s\nLink: https://patch.msgid.link/20251022143349.1081513-2-srinivas.kandagatla@oss.qualcomm.com\nSigned-off-by: Mark Brown \u003cbroonie@kernel.org\u003e\nSigned-off-by: Sasha Levin \u003csashal@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "230af8d7b205d418e6d278b4222278a3e6c0c595",
      "old_mode": 33188,
      "old_path": "sound/soc/qcom/sc7280.c",
      "new_id": "bc12aa5064ceaaf647c2cc66baaffb0f7c0efacf",
      "new_mode": 33188,
      "new_path": "sound/soc/qcom/sc7280.c"
    },
    {
      "type": "modify",
      "old_id": "916a156f991fa7a44fccf04562fd2ef1f0f2c338",
      "old_mode": 33188,
      "old_path": "sound/soc/qcom/sc8280xp.c",
      "new_id": "1c482a012920a1c419ba5704a9048c8cdab9ae8c",
      "new_mode": 33188,
      "new_path": "sound/soc/qcom/sc8280xp.c"
    },
    {
      "type": "modify",
      "old_id": "875da4adb1d7b4efdee47baa4fa8a3c1305e6c04",
      "old_mode": 33188,
      "old_path": "sound/soc/qcom/sdw.c",
      "new_id": "52e9ad24b5eeb075faf8170eca3685ec1c2ff2e2",
      "new_mode": 33188,
      "new_path": "sound/soc/qcom/sdw.c"
    },
    {
      "type": "modify",
      "old_id": "392e3455f1b198bb3cba61dfbd3b70eef60f85b2",
      "old_mode": 33188,
      "old_path": "sound/soc/qcom/sdw.h",
      "new_id": "b8bc5beb052230aceb8f0591e22df838ec54020a",
      "new_mode": 33188,
      "new_path": "sound/soc/qcom/sdw.h"
    },
    {
      "type": "modify",
      "old_id": "1001fd32138037a8fd569f3ab046b0ddd0e0b3c6",
      "old_mode": 33188,
      "old_path": "sound/soc/qcom/sm8250.c",
      "new_id": "ff1ef5363983f047dddddf34656e6b4ff8acc8d4",
      "new_mode": 33188,
      "new_path": "sound/soc/qcom/sm8250.c"
    },
    {
      "type": "modify",
      "old_id": "898b5c26bf1ee6bfa6a7a296f90257c6b31851fb",
      "old_mode": 33188,
      "old_path": "sound/soc/qcom/x1e80100.c",
      "new_id": "3645fafcd45a5ed0fdbe953b3ff9ab656625c41c",
      "new_mode": 33188,
      "new_path": "sound/soc/qcom/x1e80100.c"
    }
  ]
}
