From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D71F40DFC2 for ; Thu, 7 May 2026 15:06:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778166409; cv=none; b=UqM5hbn9IX0zgtSIuY3+g/eMhbRnXkAZMWBff6TWmpAlm5AzBNWySE0yC/yODDlFQpknakLLHq5KsTE7Qk4ACB0GatfJ2NHkBaQnWCFBL+q9t5KqMC1bZ5aGy83Nd9K7NjnctOOrRjRTrm8UhflLodgL2FgzO7FAJzuklKFzdHY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778166409; c=relaxed/simple; bh=IP+/Fnx7QZnh8QTBFMIALzP2lGBypeoUrxgpTU306NA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=qIlXRyRPXp4szEDbk8zjDOu3WGDmxsj5VKY6MfBgMsY2Ihdx+vVcBdeCpKIbg1P+XtQr47taX/csGAyL9EM6D252xfy8ssGiZsUyTRJcARs/MHtFcYeKs/NydUA+Hm2opvGpmpDKXbj46fXrWlLRqteU92mhsXsnhZiKRnP27jI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FeW9jMkO; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FeW9jMkO" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-4891b02a0acso1014115e9.3 for ; Thu, 07 May 2026 08:06:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778166407; x=1778771207; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2+BqkKYr5ktDQUipIMVSn9p1dY9rXSMM7LC0Q/JXlrw=; b=FeW9jMkOudobsJ7SjDTMJEqC67MkGQ+JIFV0REm4VWYy4Ykzoikqmwy2zRwaEXxoGR 49xTJ5tiLVZbrEltn/0Pz8b5SzfIA8g2TkbHWWEZ2pFKj5TOHAcflIPimEYciOtc0NMC s83wvW608Cd5CWOxn5Kdw87cIuinFq7q4HIuhHgVjLOjtmm/mLFflUTIQ8vb5cOPDyJl lTa+VtIoM84WJ7/Ltlop0Y7TSNto8AEbBndKf+8J39JErfYyxG5SLHLQ8BMOpD3I7R5M EH+VVsefCrS5s+0gzeTWlLC9VE5PVA/Y314g0xjYkb9QZ5da2KvQOyDQyccot96IID4m 08og== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778166407; x=1778771207; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=2+BqkKYr5ktDQUipIMVSn9p1dY9rXSMM7LC0Q/JXlrw=; b=hcGbJtJzciBrHuIf91vZVLz7cYgIMPJyAB+XroT55sbig+bHf2EkF6fFMqyUAm3mbj DFqPQMsMIqTRloh04y5TAvpN4+PqTaw0RZB1yPF5EKZIc7tkY3QCuvglnPl7tG/blo7S HyWSOI56jzyw3+JZz438Qm+QJ58V31bP70SPI6SRGZcRxhLe5iyTd7ywX7qPjpLqkK5N SF7kalveWW9r5xiv81R3YlE6JIvRFJrs6sX/QgBh6jScZldDj0A82jqQcjvPY3OX10Vj KPfHd+wUywg3wTM1haOUxrsWb7T/+uysuTRHyWvX+yYoSOm/UIunSul8ZX2nUYT1K1I2 842g== X-Forwarded-Encrypted: i=1; AFNElJ9qjoh03JYBIlJEzcJT6XhfYsUW9fGEhWenAOjmZHkVnNpdSPl1zoQAJXsrMDy/VWWgy5w0jk1HMP5BOIU=@vger.kernel.org X-Gm-Message-State: AOJu0YxPlkmXmqGevtKf6BpTN/gRNXQ8M6LybiKaSh8xxtC0vYadNpbm +Mv/SYxjCxX65uqyULdT7G3IpHmMkuAnwkBMHZzqMtNzDTMcfdBDTYoz X-Gm-Gg: AeBDiet4+nl5Otz+ZyJd0TzG7woRtVqRfRGV7aWcE5Ia+3KP7xkLzYwJW67AP4SeyU7 UDBbzES7/krK02AOrrMo2lByLni7C2+oX704Dd7LCovuQ0yMy8822yenDxLpRVvsvXGo753ZawW +Y/WAnaXxyA+2i1NXlDmI7tS5TxghX8TgHGVa3au/JV5FhNK3i2a41+ZTnAZ2km8fCeojFLVrU0 BUy17O7Rz6E2DG9AgI9etOT2S8vCY/Ytj7b67OC0rnTHwSZDtzOL5LdpnnSkndAYQZ9405+Hx+F uwZvlssp/sr6qnyGm67/jJ7CwOtoK6Pzl50bDYMeGa3usNQgS4ofULAOtMpvEdtB4kDRFTFyG3+ JOUjYjLo5iBGQTrZPtVxQ0lYYySE0cEwyCqvE5hHDwk7PNqdBVuJ13p+UtarjjthKDuKdjWqPxQ i7hGlGmM5aj0/AJvqVNlcJaNiZh+VzQSiOSHNPRtbYJhUIbzqy7dhQ9EnY X-Received: by 2002:a05:600c:3595:b0:48a:5664:f44a with SMTP id 5b1f17b1804b1-48e5325018dmr72211695e9.2.1778166406382; Thu, 07 May 2026 08:06:46 -0700 (PDT) Received: from localhost.localdomain ([185.139.138.86]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48e53907e8asm127217385e9.13.2026.05.07.08.06.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 May 2026 08:06:45 -0700 (PDT) From: Stepan Ionichev To: ashish.kalra@amd.com Cc: thomas.lendacky@amd.com, aik@amd.com, john.allen@amd.com, herbert@gondor.apana.org.au, davem@davemloft.net, linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, Stepan Ionichev Subject: [PATCH v2] crypto: ccp: sev-dev-tsm: bail out early when pdev->bus is NULL Date: Thu, 7 May 2026 19:06:08 +0500 Message-Id: <20260507140608.8612-1-sozdayvek@gmail.com> X-Mailer: git-send-email 2.33.0.windows.2 In-Reply-To: <20260507023619.398-1-sozdayvek@gmail.com> References: <20260507023619.398-1-sozdayvek@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit dsm_create() initially checks pdev->bus when computing segment_id: u8 segment_id = pdev->bus ? pci_domain_nr(pdev->bus) : 0; But the next two lines unconditionally dereference pdev->bus via pcie_find_root_port() and especially pci_dev_id(pdev), which expands to PCI_DEVID(dev->bus->number, dev->devfn). If pdev->bus is in fact NULL, segment_id is initialised to 0 but the very next statement crashes the kernel. smatch flags this: drivers/crypto/ccp/sev-dev-tsm.c:253 dsm_create() error: we previously assumed 'pdev->bus' could be null (see line 251) Make the NULL handling consistent: if pdev->bus is NULL the device has no PCI context to work with and SEV TIO setup cannot proceed, so return -ENODEV before any of the bus-dependent lookups. The remaining initialisation now runs only on the path where pdev->bus is known to be valid. No change for callers where pdev->bus is non-NULL, which is the only case where dsm_create() did meaningful work before this change. Fixes: 4be423572da1 ("crypto/ccp: Implement SEV-TIO PCIe IDE (phase1)") Signed-off-by: Stepan Ionichev --- v2: - Add Fixes: tag (suggested by Tom Lendacky). - Cc Alexey Kardashevskiy (original author of the SEV-TIO code). drivers/crypto/ccp/sev-dev-tsm.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/crypto/ccp/sev-dev-tsm.c b/drivers/crypto/ccp/sev-dev-tsm.c index b07ae529b..f303d8f55 100644 --- a/drivers/crypto/ccp/sev-dev-tsm.c +++ b/drivers/crypto/ccp/sev-dev-tsm.c @@ -248,12 +248,19 @@ static void dsm_remove(struct pci_tsm *tsm) static int dsm_create(struct tio_dsm *dsm) { struct pci_dev *pdev = dsm->tsm.base_tsm.pdev; - u8 segment_id = pdev->bus ? pci_domain_nr(pdev->bus) : 0; - struct pci_dev *rootport = pcie_find_root_port(pdev); - u16 device_id = pci_dev_id(pdev); + struct pci_dev *rootport; + u8 segment_id; + u16 device_id; u16 root_port_id; u32 lnkcap = 0; + if (!pdev->bus) + return -ENODEV; + + segment_id = pci_domain_nr(pdev->bus); + rootport = pcie_find_root_port(pdev); + device_id = pci_dev_id(pdev); + if (pci_read_config_dword(rootport, pci_pcie_cap(rootport) + PCI_EXP_LNKCAP, &lnkcap)) return -ENODEV; -- 2.43.0