)]}'
{
  "commit": "7db07547d8fc97fcc7c4e154361e3b94e2273d92",
  "tree": "61aab90513a4e0273c0f3e2d3287d6144fc43e11",
  "parents": [
    "d5d40c1758ffb89aacaacd4f82373385b9587d30"
  ],
  "author": {
    "name": "Mark Brown",
    "email": "broonie@kernel.org",
    "time": "Thu Jul 27 14:53:15 2023 +0100"
  },
  "committer": {
    "name": "Mark Brown",
    "email": "broonie@kernel.org",
    "time": "Sun Jul 30 21:45:01 2023 +0100"
  },
  "message": "arm64/fpsimd: Only provide the length to cpufeature for xCR registers\n\nFor both SVE and SME we abuse the generic register field comparison\nsupport in the cpufeature code as part of our detection of unsupported\nvariations in the vector lengths available to PEs, reporting the maximum\nvector lengths via ZCR_EL1.LEN and SMCR_EL1.LEN.  Since these are\nconfiguration registers rather than identification registers the\nassumptions the cpufeature code makes about how unknown bitfields behave\nare invalid, leading to warnings when SME features like FA64 are enabled\nand we hotplug a CPU:\n\n  CPU features: SANITY CHECK: Unexpected variation in SYS_SMCR_EL1. Boot CPU: 0x0000000000000f, CPU3: 0x0000008000000f\n  CPU features: Unsupported CPU feature variation detected.\n\nSVE has no controls other than the vector length so is not yet impacted\nbut the same issue will apply there if any are defined.\n\nSince the only field we are interested in having the cpufeature code\nhandle is the length field and we use a custom read function to obtain\nthe value we can avoid these warnings by filtering out all other bits\nwhen we return the register value, if we\u0027re doing that we don\u0027t need to\nbother reading the register at all and can simply use the RDVL/RDSVL\nvalue we were filling in instead.\n\nFixes: 2e0f2478ea37eb (\"arm64/sve: Probe SVE capabilities and usable vector lengths\")\nFixeS: b42990d3bf77cc (\"arm64/sme: Identify supported SME vector lengths at boot\")\nSigned-off-by: Mark Brown \u003cbroonie@kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "520b681a07bb0987ef595b7d0bbb795b7b8911ec",
      "old_mode": 33188,
      "old_path": "arch/arm64/kernel/fpsimd.c",
      "new_id": "aa4194c646b22885554024d7ee4dcfd3c5aab75e",
      "new_mode": 33188,
      "new_path": "arch/arm64/kernel/fpsimd.c"
    }
  ]
}
