Skip to content
Heist/ feed
Back to feed
UnratedFix available

RDMA/hfi1: Prevent use of lock before it is initialized

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: RDMA/hfi1: Prevent use of lock before it is initialized If there is a failure during probe of hfi1 before the sdma_map_lock is initialized, the call to hfi1_free_devdata() will attempt to use a lock that has not been initialized. If the locking correctness validator is on then an INFO message and stack trace resembling the following may be seen: INFO: trying to register non-static key. The code is fine but needs lockdep annotation, or maybe you didn't initialize this object before use? turning off the locking correctness validator. Call Trace: register_lock_class+0x11b/0x880 __lock_acquire+0xf3/0x7930 lock_acquire+0xff/0x2d0 _raw_spin_lock_irq+0x46/0x60 sdma_clean+0x42a/0x660 [hfi1] hfi1_free_devdata+0x3a7/0x420 [hfi1] init_one+0x867/0x11a0 [hfi1] pci_device_probe+0x40e/0x8d0 The use of sdma_map_lock in sdma_clean() is for freeing the sdma_map memory, and sdma_map is not allocated/initialized until after sdma_map_lock has been initialized. This code only needs to be run if sdma_map is not NULL, and so checking for that condition will avoid trying to use the lock before it is initialized.

Products
Kernel
Affected versions
Not specified
Fixed versions
4.19.247, 5.10.121, 5.15.46, 5.17.14, 5.18.3, 5.4.198
CVEs
CVE-2022-49433
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 10:37 UTC · Revision 1

Source evidence

RDMA/hfi1: Prevent use of lock before it is initialized

core-osv · Original source

Published 26 Feb 2025, 02:12 UTC

In the Linux kernel, the following vulnerability has been resolved: RDMA/hfi1: Prevent use of lock before it is initialized If there is a failure during probe of hfi1 before the sdma_map_lock is initialized, the call to hfi1_free_devdata() will attempt to use a lock that has not been initialized. If the locking correctness validator is on then an INFO message and stack trace resembling the following may be seen: INFO: trying to register non-static key. The code is fine but needs lockdep annotation, or maybe you didn't initialize this object before use? turning off the locking correctness validator. Call Trace: register_lock_class+0x11b/0x880 __lock_acquire+0xf3/0x7930 lock_acquire+0xff/0x2d0 _raw_spin_lock_irq+0x46/0x60 sdma_clean+0x42a/0x660 [hfi1] hfi1_free_devdata+0x3a7/0x420 [hfi1] init_one+0x867/0x11a0 [hfi1] pci_device_probe+0x40e/0x8d0 The use of sdma_map_lock in sdma_clean() is for freeing the sdma_map memory, and sdma_map is not allocated/initialized until after sdma_map_lock has been initialized. This code only needs to be run if sdma_map is not NULL, and so checking for that condition will avoid trying to use the lock before it is initialized.

osv:CVE-2022-49433

Kernel

Fixed versions: 4.19.247, 5.4.198, 5.10.121, 5.15.46, 5.17.14, 5.18.3

Complete source record
{
  "id": "6168d5d60a9f852824d36d46fc57ad5c20d6de898476781a4b92d76b8bc9b39a",
  "url": "https://osv.dev/vulnerability/CVE-2022-49433",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "RDMA/hfi1: Prevent use of lock before it is initialized",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: RDMA/hfi1: Prevent use of lock before it is initialized If there is a failure during probe of hfi1 before the sdma_map_lock is initialized, the call to hfi1_free_devdata() will attempt to use a lock that has not been initialized. If the locking correctness validator is on then an INFO message and stack trace resembling the following may be seen: INFO: trying to register non-static key. The code is fine but needs lockdep annotation, or maybe you didn't initialize this object before use? turning off the locking correctness validator. Call Trace: register_lock_class+0x11b/0x880 __lock_acquire+0xf3/0x7930 lock_acquire+0xff/0x2d0 _raw_spin_lock_irq+0x46/0x60 sdma_clean+0x42a/0x660 [hfi1] hfi1_free_devdata+0x3a7/0x420 [hfi1] init_one+0x867/0x11a0 [hfi1] pci_device_probe+0x40e/0x8d0 The use of sdma_map_lock in sdma_clean() is for freeing the sdma_map memory, and sdma_map is not allocated/initialized until after sdma_map_lock has been initialized. This code only needs to be run if sdma_map is not NULL, and so checking for that condition will avoid trying to use the lock before it is initialized.",
    "evidence": "osv:CVE-2022-49433",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "4.19.247",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.4.198",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.10.121",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.46",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.17.14",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.18.3",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2022-49433",
      "aliases": [
        "CVE-2022-49433"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "7724105686e718ac476a6ad3304fea2fbcfcffde"
                },
                {
                  "fixed": "66090815a24ce14cf51ef5453fc0218fe8a39bc2"
                },
                {
                  "fixed": "addb192000d8819c0b1553453994df9bb54c28db"
                },
                {
                  "fixed": "fc0750e659db7b315bf6348902cc8ca3cdd4b8d8"
                },
                {
                  "fixed": "ca55150bff5817af4f857a746ecab9862c23e12a"
                },
                {
                  "fixed": "30eb275e7ed588270ae159cc590a96658e0cfd8f"
                },
                {
                  "fixed": "288d198f50434f29b4a26a9de4394ae2305ad8af"
                },
                {
                  "fixed": "05c03dfd09c069c4ffd783b47b2da5dcc9421f2c"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49433.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.3.0"
                },
                {
                  "fixed": "4.19.247"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.20.0"
                },
                {
                  "fixed": "5.4.198"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.5.0"
                },
                {
                  "fixed": "5.10.121"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.46"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "5.17.14"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.18.0"
                },
                {
                  "fixed": "5.18.3"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49433.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:28.024152660Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/05c03dfd09c069c4ffd783b47b2da5dcc9421f2c",
        "https://git.kernel.org/stable/c/288d198f50434f29b4a26a9de4394ae2305ad8af",
        "https://git.kernel.org/stable/c/30eb275e7ed588270ae159cc590a96658e0cfd8f",
        "https://git.kernel.org/stable/c/66090815a24ce14cf51ef5453fc0218fe8a39bc2",
        "https://git.kernel.org/stable/c/addb192000d8819c0b1553453994df9bb54c28db",
        "https://git.kernel.org/stable/c/ca55150bff5817af4f857a746ecab9862c23e12a",
        "https://git.kernel.org/stable/c/fc0750e659db7b315bf6348902cc8ca3cdd4b8d8",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49433.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2022-49433",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49433.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2022-49433",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 494602,
  "published_at": "2025-02-26T02:12:50.553+00:00"
}