From nobody Sat Feb 7 18:20:25 2026 Received: from mx14lb.world4you.com (mx14lb.world4you.com [81.19.149.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 424661891D9 for ; Mon, 19 Aug 2024 20:14:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=81.19.149.124 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724098447; cv=none; b=LYAlzwSvo/XxoTNK0V6QmmhntX2sLhleUkqWxp9thshzMg5+WY840zrYM3BoNoUq9ieytn8NXa9uiqAUx1XC70VDC0iLYczXSDN4FimjPMj8vbmziVnaiRvZPNNiGxoYa9OXjrVQsvlA+npvOPjh6xvBvgiNMokEC7lSdJHltqc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724098447; c=relaxed/simple; bh=X0d1s5YDtJblz2a9A/iODWTVwyvHX7wVajoH70X677s=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=cNhuhRRz7oSUcid0iQiy/2Mc3gmfjUbuPJFcyc6nSbJnBK8qiegRpxQCDr9vIVXacsADtnoHYQz0k2K2WNWqNCuGAKwOCz91dEzV7rGVBb9IkFlIKDOmTd5whCOpGQAAYJgIg2+YZSjdJ4Daid3GJkKkWSOB0moAnVJoBYjmb9Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=engleder-embedded.com; spf=pass smtp.mailfrom=engleder-embedded.com; dkim=pass (1024-bit key) header.d=engleder-embedded.com header.i=@engleder-embedded.com header.b=GpXTxvR4; arc=none smtp.client-ip=81.19.149.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=engleder-embedded.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=engleder-embedded.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=engleder-embedded.com header.i=@engleder-embedded.com header.b="GpXTxvR4" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=engleder-embedded.com; s=dkim11; h=Content-Transfer-Encoding:MIME-Version: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=K8RSHjHTYAWv95BsWuQX1QGsu952Wudcs9NTcvFuhv8=; b=GpXTxvR4FBRFJKyd9ilyPVKjxg oGB7zIn/G6HFBzgWX25W+m5kispOQy2KR6y3eTdZkbICxsie5d702KaQbPdPLJfa1lGtNSRXEXfCK HZWkKUjnVzQ3K7WhUpH1DqHJm0N08aZqbOU9cxs6dS0MIypBHwyAh/xUwuO6ekIPnTJM=; Received: from [88.117.63.232] (helo=hornet.engleder.at) by mx14lb.world4you.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from ) id 1sg82G-0001gg-1f; Mon, 19 Aug 2024 21:27:24 +0200 From: Gerhard Engleder To: linux-kernel@vger.kernel.org Cc: arnd@arndb.de, gregkh@linuxfoundation.org, Gerhard Engleder , Gerhard Engleder Subject: [PATCH] misc: keba: Fix sysfs group creation Date: Mon, 19 Aug 2024 21:26:45 +0200 Message-Id: <20240819192645.50171-1-gerhard@engleder-embedded.com> X-Mailer: git-send-email 2.39.2 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 X-AV-Do-Run: Yes X-ACL-Warn: X-W4Y-Internal Content-Type: text/plain; charset="utf-8" From: Gerhard Engleder sysfs_create_group() races with userspace. Use dev_groups instead which prevents all the problems of sysfs_create_group(). Fixes: a1944676767e ("misc: keba: Add basic KEBA CP500 system FPGA support") Suggested-by: Greg Kroah-Hartman Signed-off-by: Gerhard Engleder --- drivers/misc/keba/cp500.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/misc/keba/cp500.c b/drivers/misc/keba/cp500.c index 9ba46f0f9392..ae0922817881 100644 --- a/drivers/misc/keba/cp500.c +++ b/drivers/misc/keba/cp500.c @@ -212,12 +212,12 @@ static ssize_t keep_cfg_store(struct device *dev, str= uct device_attribute *attr, } static DEVICE_ATTR_RW(keep_cfg); =20 -static struct attribute *attrs[] =3D { +static struct attribute *cp500_attrs[] =3D { &dev_attr_version.attr, &dev_attr_keep_cfg.attr, NULL }; -static const struct attribute_group attrs_group =3D { .attrs =3D attrs }; +ATTRIBUTE_GROUPS(cp500); =20 static void cp500_i2c_release(struct device *dev) { @@ -396,20 +396,15 @@ static int cp500_probe(struct pci_dev *pci_dev, const= struct pci_device_id *id) =20 pci_set_drvdata(pci_dev, cp500); =20 - ret =3D sysfs_create_group(&pci_dev->dev.kobj, &attrs_group); - if (ret !=3D 0) - goto out_free_irq; =20 ret =3D cp500_enable(cp500); if (ret !=3D 0) - goto out_remove_group; + goto out_free_irq; =20 cp500_register_auxiliary_devs(cp500); =20 return 0; =20 -out_remove_group: - sysfs_remove_group(&pci_dev->dev.kobj, &attrs_group); out_free_irq: pci_free_irq_vectors(pci_dev); out_disable: @@ -427,8 +422,6 @@ static void cp500_remove(struct pci_dev *pci_dev) =20 cp500_disable(cp500); =20 - sysfs_remove_group(&pci_dev->dev.kobj, &attrs_group); - pci_set_drvdata(pci_dev, 0); =20 pci_free_irq_vectors(pci_dev); @@ -450,6 +443,7 @@ static struct pci_driver cp500_driver =3D { .id_table =3D cp500_ids, .probe =3D cp500_probe, .remove =3D cp500_remove, + .dev_groups =3D cp500_groups, }; module_pci_driver(cp500_driver); =20 --=20 2.39.2