)]}'
{
  "commit": "c062934fa816c521f0745512cd6b581220bdeca5",
  "tree": "4dd74d0016ea42691d09784752eb6481395aacf6",
  "parents": [
    "cf3984fc169ad6885806fe0ee89783c788764afe"
  ],
  "author": {
    "name": "Guangzong Chen",
    "email": "guangzong@google.com",
    "time": "Fri Sep 18 21:23:14 2026 +0000"
  },
  "committer": {
    "name": "Guangzong Chen",
    "email": "guangzong@google.com",
    "time": "Mon Sep 21 14:57:57 2026 -0700"
  },
  "message": "nvmed: probe features on no ONCS bit 4 and skip empty FeatureStore\n\nWhen ONCS bit 4 is not set (e.g. IronFist controllers) and Log Page 12h\nis not supported, discoverFeatures previously assumed all standard NVMe\nfeatures were supported and populated featureCollection without\nverification. Subsequent Redfish queries (like $expand on /Features)\ncalled GetFeature on these unsupported features, causing NVMe-MI command\nfailures (Vendor Specific Status SCT 7 SC 0xf3 on IronFist) and HTTP 500\nInternal Error responses.\n\nThis change actively queries asyncAdminGetFeatures with SEL\u003dCURRENT when\nONCS bit 4 is not set to verify feature support before adding to\nfeatureCollection. Furthermore, when featureCollection is empty (no\nfeatures supported by the device), FeatureStore::init returns\nerrc::not_supported and skips registering the D-Bus interface, and\ncontroller/subsystem/volume classes log info and reset the featureStore\npointer.\n\nTested: Added unit tests and verified with gbmc ci docker nvmed.\nGoogle-Bug-Id: 558424309\nChange-Id: I50c067e5c73987eb59658530788563e1ac867d0d\nSigned-off-by: Guangzong Chen \u003cguangzong@google.com\u003e\nTAG\u003dagy\nCONV\u003d466d579d-564d-4675-89fd-3d720b796c05\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d7fe044f25abe3d94dbcc034932202d68f83afef",
      "old_mode": 33188,
      "old_path": "src/NVMeController.cpp",
      "new_id": "b359c0e860659bd7c7547d5577b9cc053b0fb8bc",
      "new_mode": 33188,
      "new_path": "src/NVMeController.cpp"
    },
    {
      "type": "modify",
      "old_id": "1980adac90a49c3290f7d441bbffe64a8e5c1315",
      "old_mode": 33188,
      "old_path": "src/NVMeFeatureStore.cpp",
      "new_id": "41ac1c4e2b7eff7d7e4265440f99fb91cf54c898",
      "new_mode": 33188,
      "new_path": "src/NVMeFeatureStore.cpp"
    },
    {
      "type": "modify",
      "old_id": "2f021b60dcdd0655b7d9c3e9c40637b8ff2df44f",
      "old_mode": 33188,
      "old_path": "src/NVMeSubsys.cpp",
      "new_id": "112f906b2d873162a35138b9571b018485d0ecdc",
      "new_mode": 33188,
      "new_path": "src/NVMeSubsys.cpp"
    },
    {
      "type": "modify",
      "old_id": "0e078dc50c798a6c814dbccff60f07b384aee337",
      "old_mode": 33188,
      "old_path": "src/NVMeVolume.cpp",
      "new_id": "b0afbe8eee30e1b032dbd8a8eee766a97e2a7488",
      "new_mode": 33188,
      "new_path": "src/NVMeVolume.cpp"
    },
    {
      "type": "modify",
      "old_id": "9a16224d04dceccbc7836340bfa2d9a79783583b",
      "old_mode": 33188,
      "old_path": "tests/test_nvme_feature_store.cpp",
      "new_id": "2346abc2e6462e32edb820bb45e56009a56b8cfd",
      "new_mode": 33188,
      "new_path": "tests/test_nvme_feature_store.cpp"
    }
  ]
}
