Re: [PATCH v1 01/12] gna: add driver module

From: Maciej Kwapulinski
Date: Mon Mar 01 2021 - 06:48:24 EST



Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> writes:

> On Mon, Mar 01, 2021 at 11:39:23AM +0100, Maciej Kwapulinski wrote:
>>
>> Maciej Kwapulinski <maciej.kwapulinski@xxxxxxxxxxxxxxx> writes:
>>
>> > Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> writes:
>> >
>> >> On Mon, Mar 01, 2021 at 11:18:59AM +0100, Maciej Kwapulinski wrote:
>> >>>
>> >>> Andy Shevchenko <andy.shevchenko@xxxxxxxxx> writes:
>> >>>
>> >>> > On Tue, Feb 16, 2021 at 6:11 PM Maciej Kwapulinski
>> >>> > <maciej.kwapulinski@xxxxxxxxxxxxxxx> wrote:
>> >>> >>
>> >>> ....
>> >>> >> +static int __init gna_drv_init(void)
>> >>> >> +{
>> >>> >> + int ret;
>> >>> >> +
>> >>> >> + mutex_init(&gna_drv_priv.lock);
>> >>> >> +
>> >>> >> + gna_class = class_create(THIS_MODULE, "gna");
>> >>> >> + if (IS_ERR(gna_class)) {
>> >>> >> + pr_err("class device create failed\n");
>> >>> >> + return PTR_ERR(gna_class);
>> >>> >> + }
>> >>> >> + gna_class->devnode = gna_devnode;
>> >>> >> +
>> >>> >> + ret = pci_register_driver(&gna_driver);
>> >>> >
>> >>> > Is it possible to decouple a PCI glue driver from the class as many
>> >>> > other existing examples are doing?
>> >>> >
>> >>>
>> >>> I see many pci drivers (including staging) that do have it glued though.
>> >>>
>> >>> Examples are:
>> >>> 1. "static int __init kp2000_pcie_init(void)" (commit on May 20 09:34:11
>> >>> 2019)
>> >>> 2. "static int __init hl_init(void)" (commit on Mon Feb 18 09:46:43 2019)
>> >>>
>> >>> Please give me more details.
>> >>
>> >> Never use a staging driver for any type of example, _EXECPT_ for a bad
>> >> one. There's a reason the code is in staging and not in the "real" part
>> >> of the kernel.
>> >
>> > ok.
>> >
>> > another one (1) is not staging..
>>
>> I meant "static int __init hl_init(void)" is not staging one....
>
> Still doesn't mean it is a good thing to do. Again, why isn't this
> driver just using the misc driver interface instead? It's much simpler
> to use and should work just fine for this tiny driver, instead of having
> to create a custom class just for it.
>

ok