From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) (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 957AD2BE035 for ; Mon, 15 Jun 2026 18:07:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781546872; cv=none; b=gBG6kbGxgFVy3zrvK01p4lhE8C4QEYaCVVohWCPSuqQDkaHVfQuJHYWDtIslBHMNlqAyYTTvL5wrx8j/t7pTDrcLxenDP+RAsUzENxV+HDlwsw/4bRQWNNW5d/ZnhB8Ys85jkag5f/e+zwmj02Ek0ZxbRZ+rEokFSn3DnxlxtpE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781546872; c=relaxed/simple; bh=yy8qYpMu/qvx0MaX0eKKn0gnX6JlDAP5Q2vLiSAzxDc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=EVjzZqSWJcuPJMXGwfbHu/k5rsjt4/RysxLl53GJJQHjUZPJ+WrFIoyIb4Sy6Kq5FwF9fAhKYVm6yBi0hMK9SfZp4otzQf3/+PeTriH/pXtb7EQpw7/xEjCZR47bNo1SLYb4hGizXhp0gy12QN76FStaMf3m0YzTCG0+NPA1xL4= 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=pb/e/Uie; arc=none smtp.client-ip=209.85.222.182 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="pb/e/Uie" Received: by mail-qk1-f182.google.com with SMTP id af79cd13be357-9159f631656so442169385a.1 for ; Mon, 15 Jun 2026 11:07:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781546870; x=1782151670; 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=0xlEHlIP73MalHhAbT/i7sY49D1aaBfLCIuZGXaOO5o=; b=pb/e/UieCcVmHE7Plz/8Ar4+L3jT+JJ+cTSPtMgBzu6AaWiqIAhnRly/3o8FY/l7M+ f+ggWzz8Kb+E3XNHDi/vbXsC5Kv97XnEgxl1RopQabDGAx6zTe4vbZ0bQWa5CbJ90yay 4f0XxzMKn/+k7mndcgBMfFifmDybhUMljulJdp5uPKaJ2z16sowWjT4+XkDyA2mg9+97 Cgr1b2EWxaWnkFN9ixUsmxmNE0G0EMBqJdl47iAEObxV+1TZ20o66mxr3yHfENf8aVZ7 1bD6TTR+2IUnP7zOQdx9CqM/VGpIccSB8tusyyTaB5IW+k5Q47lwGG4IcwK5ISoNzTpk yX0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781546870; x=1782151670; 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=0xlEHlIP73MalHhAbT/i7sY49D1aaBfLCIuZGXaOO5o=; b=oFabvAWOzpVsJcUmT2BVwr+UdX+q5DSxTQzl5TUmyTqPUWaZ2CQnHkxR4iHXnzS+SS boFaY5E5lRxvfjxvsBUX0hD/XpLrC+dWCK5gYNrYFnib4opfLqlAqA/9I3/kqVcoQ9hp laPFsTfccg1QbchHTzuNUoKZXjxOG6Xp69Lty0QDpd8Mteny/evQbJHUcFsOJZ7iV0C+ 3LxcIJZNneFL6ViKzjC7CwjG8xJGvuzXbNcEOFWfSVa3DgteQvhCTzvo5v4VJn1IYqYE IVmw08tN39hcERu/PqzF0Hx/K58/3lFuOFb9gs/L6efSlf0wr4gQLexPlQ2uEDTx347P rr+g== X-Forwarded-Encrypted: i=1; AFNElJ8Qio85PnqsLDsGt1q3/aY5YyONjo4rtFst6bdKR1whrIE7JcZQngubUJNUKo/G7Haqm45uDvqR4ZmkbMY=@vger.kernel.org X-Gm-Message-State: AOJu0YyTaLdT1EYBBdsmpp1oR38MXOUXjgwjjfyWghHgn9hHU7Lay+nb ct9B4p2P3yQ4JbfekmkIOD4fAbr3u5ae0GZrn3+phWXse6hCSQ6QiWIi X-Gm-Gg: Acq92OERGbbHHeBof/UCxuTgZWfsI+a1ebrMizJqmKDA3bpW01ICRJcQp0oKlMuoko5 94BDdMJXqkjFemWoURHXCR3tA8ngiV+yZOPfif4hKHaU9w11jOxq0IEsn/T4dg3sMafwuOXLr2l 25aIXxxYiTp9vjcL8llLZ3Igk5W7CxxGzsSD9pRKi9p1DhX8+sDINMyG2A2fiHEhIy0TczbOYgk xRszIMwNe+sq7t5KsY40qUg7VkdCWboOBl66trTSdsuqkIfFT1H1B/n46+PkMfwEICycpido+oz R6VeHp8o9jekug4gM5mqcR7vdP+BplsH6YV1ua/J8El0iqJUCSOoD5A1ZagVAAGlJ2ILer1x0Y4 BLa5oZhyCVD6lkrEql55S4Az4QW5C+LBu3MdpxbtFCBnAfRJmM6RY34s5gnKNTqSjmXkGWhfqZF RB7vZIa57fQf1qEKZeUcBwvTRrbG+n4Jjr3B7wzRXC X-Received: by 2002:a05:620a:7109:b0:915:80ed:8327 with SMTP id af79cd13be357-91c2fd810d9mr78092685a.41.1781546870502; Mon, 15 Jun 2026 11:07:50 -0700 (PDT) Received: from i4-gl-tmk5904.ad.psu.edu ([130.203.156.186]) by smtp.gmail.com with ESMTPSA id af79cd13be357-9161a005a49sm1187435685a.23.2026.06.15.11.07.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Jun 2026 11:07:49 -0700 (PDT) From: Yuho Choi To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich Cc: driver-core@lists.linux.dev, linux-kernel@vger.kernel.org, Yuho Choi Subject: [PATCH v1] driver core: soc: Unregister bus on early device registration failure Date: Mon, 15 Jun 2026 14:07:46 -0400 Message-ID: <20260615180746.713540-1-dbgh9129@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit soc_bus_register() registers the SoC bus before registering a deferred early SoC device. If soc_device_register() fails in that path, the function returns the error directly and leaves the bus registered. Store the returned SoC device pointer explicitly so the success and error cases are handled separately. On failure, clear soc_bus_registered and unregister the bus before returning the error. Fixes: 6e12db376b60 ("base: soc: Allow early registration of a single SoC device") Signed-off-by: Yuho Choi --- drivers/base/soc.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/base/soc.c b/drivers/base/soc.c index 65ce72d49230..af7d71393774 100644 --- a/drivers/base/soc.c +++ b/drivers/base/soc.c @@ -191,6 +191,7 @@ EXPORT_SYMBOL_GPL(soc_device_unregister); static int __init soc_bus_register(void) { + struct soc_device *soc_dev; int ret; ret = bus_register(&soc_bus_type); @@ -198,10 +199,20 @@ static int __init soc_bus_register(void) return ret; soc_bus_registered = true; - if (early_soc_dev_attr) - return PTR_ERR(soc_device_register(early_soc_dev_attr)); + if (early_soc_dev_attr) { + soc_dev = soc_device_register(early_soc_dev_attr); + if (IS_ERR(soc_dev)) { + ret = PTR_ERR(soc_dev); + goto err_unregister_bus; + } + } return 0; + +err_unregister_bus: + soc_bus_registered = false; + bus_unregister(&soc_bus_type); + return ret; } core_initcall(soc_bus_register); -- 2.43.0