From nobody Fri Apr 3 04:58:56 2026 Received: from mail-yx1-f49.google.com (mail-yx1-f49.google.com [74.125.224.49]) (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 B05993EBF13 for ; Wed, 18 Feb 2026 02:44:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.224.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771382651; cv=none; b=aBJAL5L7UnastoFuUlK6jo+YravjIdG+La+8i/MVQoBL/N5bZFm0a9wlLdCvKs579wMSy+1eT+zOqDCAAGO7udbZuT4Ii9t5U8gNAjyU1XeIlqqzTg739joxq32qOe7ZvWqgGU7HecsAFUd8dxuuM9M/we8xmJgnwMwM0O1oq5w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771382651; c=relaxed/simple; bh=qM96F+m4zeaMT0F3mSDheudUYrXgOUpBnOi12ksTeDM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=HqDGREaTQYwQN5y7Wt8nca3D/e+COjwj5niQnytDWZ62nsVjK5xsFmsdBVLmC+GJ00t8WBCclsxyi654112mFMPirHweUWqPiLXw4Rx+2/7Gtuvz83OMjGC/Z97o86CDjUSiU+bp4yqdijnUlXm1wVcuYDjDp+AkpQwGi1b/hzU= 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=D68Z+vrC; arc=none smtp.client-ip=74.125.224.49 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="D68Z+vrC" Received: by mail-yx1-f49.google.com with SMTP id 956f58d0204a3-649c070ef3bso4834466d50.3 for ; Tue, 17 Feb 2026 18:44:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771382650; x=1771987450; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=lwYCKKks5v0/UTUXbaTWsvyMjdO3lV30MpCD0Gwl1e8=; b=D68Z+vrCF5hECZWCnsylkSvMB9CJThyynWjjHRcrt5sKRBa2zOvJCCd9LuAcOCI3TR DfSCvR1BWzxl1G/5hF95FSf4GgF9CVVoF3fyPpu1RN5yo5VmKg7eUwdWgBDiom4t33CC Vq1eAHOBzjuOmka2g+4z7tT2tVgbGFAmG2PK2rktc8yOnItLoQEbzOSjIGgYG9XEXNEc VUO9MoQn8QpfdZXp+xNGw5fn/qYyWY83sP+/fWPDbV1EQyfs0Nl+llySr/54fONGlLCS KyfFuewAnIQO5XwuYPAKBP+gxZfA1U/UAwCGUXp9pLoFY/Azcz8p8XyqsrvgYEQ+tA2z P44w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771382650; x=1771987450; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=lwYCKKks5v0/UTUXbaTWsvyMjdO3lV30MpCD0Gwl1e8=; b=sUUuNAFYWrVuwdVW7fPwbhIjnZqyWvjs5VwT8EcrJYpvt75ktPzZDPU+KDcBkwieLz cygNx1IYqoTrrViLMt9j3VpIQdbh08at4osZWzZJvv1VYYZMjqxZNck1+IXQfCT4Oak6 cT+TPvB0caHNSMtWtKZ2f8lbfSvL4X4cYuufDkpxGbQtLchXJA1AOsUWo3p3VUWlol2l jkpLLAeRPCllZYIu3M51OItk0CMFXxS82h5URDU3jCvLy6WnzZMXPBJ+BP55Mqn6ZQyL QUW53V4C7SDj8A8JVK22VO0K1SRECgzB12XTbr/tzZdmVp9o7Ob9LHKtDz1OFmP8a6Fh r0Gg== X-Forwarded-Encrypted: i=1; AJvYcCUXGt2WoPVIm3q1DmK7LArJPr1V16ORDDqyloZhofYY5i0N8zzp9PGF+07cuuayh1C6IjqYbERF/ZcMIHU=@vger.kernel.org X-Gm-Message-State: AOJu0Yy51b+P9jmcisdUYjQE8KCtDmv3w3gO+QZCYDb/ybI6G4IWWC8h NjnDST/UYyl/cJIekI6OeAQ3lzOATZiKoGmHn8owYVdf5/o2nDMBWrfc X-Gm-Gg: AZuq6aJCxSKot2gW6RlB4xgLiysjC1D5Gt6yfxBnWBWQLFGoclgA+KEnQZB6xaa+UYr 4jIxVUsloJla26AmjS2Q7HRKPepMgIo4+eaagvkpSifSmY+BfgK8tQBHy5O0luqOvMsV0sdAlB9 M1lM/ipdiqu58sSkFrxpnFHnShHsYp863yQnkFN7zfIzCYiiYiylgETzBF+j4tGUXcVOlC3hNjJ elBwgnFryZ5ShFzsu1c/Gl0xGq1R44kbee8/kMIxSCayhthKCz492WHH6oNG7NxMQtMiU4LEAwM dLylh39HptLx+fCcgdxJIy9W/Kga7Pylw0kxkpUUrvQvfnNXEUPUL/zj+9mKqclXQIwOZ/HLEI8 BUdjTpGIm0ZO5BW1OLOtGKl3RSy4MuLnKTnk8ybyDNZmy/L6GeqiQ9pV8lDnsptq4cFhZ6RW2Ap hG23W9TfhH0b/GIF5R8sBA0PGtwsS3om/9yoocjb9HtnvTlTFKyUrarAJexbjN/qLbGhkelc+P3 XSrGNlC5lv91tP4CQKkZxkXG4h+h6UaVabsW94HNDA= X-Received: by 2002:a05:690e:191e:b0:64a:d35e:d351 with SMTP id 956f58d0204a3-64c198c5a1emr13335699d50.25.1771382649619; Tue, 17 Feb 2026 18:44:09 -0800 (PST) Received: from tux ([2601:7c0:c37c:4c00:e3a8:26f7:7e08:88e1]) by smtp.gmail.com with ESMTPSA id 956f58d0204a3-64c22f8a209sm5383145d50.12.2026.02.17.18.44.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Feb 2026 18:44:09 -0800 (PST) From: Ethan Tidmore To: kys@microsoft.com, haiyangz@microsoft.com, wei.liu@kernel.org, decui@microsoft.com, longli@microsoft.com, tglx@kernel.org, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com Cc: x86@kernel.org, hpa@zytor.com, mhklinux@outlook.com, ssengar@linux.microsoft.com, linux-hyperv@vger.kernel.org, linux-kernel@vger.kernel.org, Ethan Tidmore Subject: [PATCH] x86/hyperv: Fix error pointer deference Date: Tue, 17 Feb 2026 20:43:51 -0600 Message-ID: <20260218024351.594068-1-ethantidmore06@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The function idle_thread_get() can return an error pointer and is not checked for it. Add check for error pointer. Detected by Smatch: arch/x86/hyperv/hv_vtl.c:126 hv_vtl_bringup_vcpu() error: 'idle' dereferencing possible ERR_PTR() Fixes: 2b4b90e053a29 ("x86/hyperv: Use per cpu initial stack for vtl contex= t") Signed-off-by: Ethan Tidmore --- arch/x86/hyperv/hv_vtl.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/arch/x86/hyperv/hv_vtl.c b/arch/x86/hyperv/hv_vtl.c index c0edaed0efb3..9b6a9bc4ab76 100644 --- a/arch/x86/hyperv/hv_vtl.c +++ b/arch/x86/hyperv/hv_vtl.c @@ -110,7 +110,7 @@ static void hv_vtl_ap_entry(void) =20 static int hv_vtl_bringup_vcpu(u32 target_vp_index, int cpu, u64 eip_ignor= ed) { - u64 status; + u64 status, rsp, rip; int ret =3D 0; struct hv_enable_vp_vtl *input; unsigned long irq_flags; @@ -123,9 +123,11 @@ static int hv_vtl_bringup_vcpu(u32 target_vp_index, in= t cpu, u64 eip_ignored) struct desc_struct *gdt; =20 struct task_struct *idle =3D idle_thread_get(cpu); - u64 rsp =3D (unsigned long)idle->thread.sp; + if (IS_ERR(idle)) + return PTR_ERR(idle); =20 - u64 rip =3D (u64)&hv_vtl_ap_entry; + rsp =3D (unsigned long)idle->thread.sp; + rip =3D (u64)&hv_vtl_ap_entry; =20 native_store_gdt(&gdt_ptr); store_idt(&idt_ptr); --=20 2.53.0