From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: "Thomas Weißschuh" <linux@weissschuh.net>
Cc: Arnd Bergmann <arnd@arndb.de>,
Mihai Carabas <mihai.carabas@oracle.com>,
linux-kernel@vger.kernel.org, stable@vger.kernel.org
Subject: Re: [PATCH] misc/pvpanic-pci: register attributes via pci_driver
Date: Fri, 12 Apr 2024 09:45:28 +0200 [thread overview]
Message-ID: <2024041228-maximum-aware-f078@gregkh> (raw)
In-Reply-To: <20240411-pvpanic-pci-dev-groups-v1-1-db8cb69f1b09@weissschuh.net>
On Thu, Apr 11, 2024 at 11:33:51PM +0200, Thomas Weißschuh wrote:
> In __pci_register_driver(), the pci core overwrites the dev_groups field of
> the embedded struct device_driver with the dev_groups from the outer
> struct pci_driver unconditionally.
>
> Set dev_groups in the pci_driver to make sure it is used.
>
> This was broken since the introduction of pvpanic-pci.
>
> Fixes: db3a4f0abefd ("misc/pvpanic: add PCI driver")
> Cc: stable@vger.kernel.org
> Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
> ---
> Greg,
>
> does it make sense to duplicate fields between struct pci_driver and
> struct device_driver?
> The fields "name", "groups" and "dev_groups" are duplicated.
>
> pci_driver::dev_groups was introduced in
> commit ded13b9cfd59 ("PCI: Add support for dev_groups to struct pci_driver")
> because "this helps converting PCI drivers sysfs attributes to static"
>
> I don't understand the reasoning. The embedded device_driver shares the
> same storage lifetime and the fields have the exact same type.
It's "simpler" to have the fields be in the pci_driver structure as then
you don't need to do the crazy:
.driver = {
.field = FOO,
},
type of declaration just for simplicity.
And as the number overall of these structures is very very small,
duplication on the driver level is not really an issue.
Duplication on a device level is another story, there should not be any
duplication at all if possible there, as that is where it really
matters.
> ---
> drivers/misc/pvpanic/pvpanic-pci.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/misc/pvpanic/pvpanic-pci.c b/drivers/misc/pvpanic/pvpanic-pci.c
> index 9ad20e82785b..b21598a18f6d 100644
> --- a/drivers/misc/pvpanic/pvpanic-pci.c
> +++ b/drivers/misc/pvpanic/pvpanic-pci.c
> @@ -44,8 +44,6 @@ static struct pci_driver pvpanic_pci_driver = {
> .name = "pvpanic-pci",
> .id_table = pvpanic_pci_id_tbl,
> .probe = pvpanic_pci_probe,
> - .driver = {
> - .dev_groups = pvpanic_dev_groups,
> - },
> + .dev_groups = pvpanic_dev_groups,
Maybe we should throw a trace in the pci core if we find that dev_groups
is set to something before we override it to catch this type of mistake
in the future?
Although, given that this never worked in the first place, it seems odd
that the original developer never noticed it, so perhaps that's not
really an issue here.
Oh wait, it originally did, but the pci change caused it to break,
nevermind, it is relevent, thanks.
thanks,
greg k-h
next prev parent reply other threads:[~2024-04-12 7:45 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-11 21:33 [PATCH] misc/pvpanic-pci: register attributes via pci_driver Thomas Weißschuh
2024-04-12 7:45 ` Greg Kroah-Hartman [this message]
2024-04-12 8:05 ` Thomas Weißschuh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2024041228-maximum-aware-f078@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=arnd@arndb.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@weissschuh.net \
--cc=mihai.carabas@oracle.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox