Re: [PATCH v2 3/3] net: phy: add Rust Asix PHY driver

Greg KH
2023-10-06T14:37:45Z

On Fri, Oct 06, 2023 at 11:30:54PM +0900, FUJITA Tomonori wrote:
> On Fri, 6 Oct 2023 16:12:24 +0200
> Greg KH <gregkh@linuxfoundation.org> wrote:
>
> > On Fri, Oct 06, 2023 at 10:53:25PM +0900, FUJITA Tomonori wrote:
> >> On Fri, 6 Oct 2023 12:31:59 +0200
> >> Greg KH <gregkh@linuxfoundation.org> wrote:
> >>
> >> > On Fri, Oct 06, 2023 at 06:49:11PM +0900, FUJITA Tomonori wrote:
> >> >> +config AX88796B_RUST_PHY
> >> >> + bool "Rust reference driver"
> >> >> + depends on RUST && AX88796B_PHY
> >> >> + default n
> >> >
> >> > Nit, "n" is always the default, there is no need for this line.
> >>
> >> Understood, I'll remove this line.
> >>
> >> >> + help
> >> >> + Uses the Rust version driver for Asix PHYs.
> >> >
> >> > You need more text here please. Provide a better description of what
> >> > hardware is supported and the name of the module if it is built aas a
> >> > module.
> >> >
> >> > Also that if you select this one, the C driver will not be built (which
> >> > is not expressed in the Kconfig language, why not?
> >>
> >> Because the way to load a PHY driver module can't handle multiple
> >> modules with the same phy id (a NIC driver loads a PHY driver module).
> >> There is no machinism to specify which PHY driver module should be
> >> loaded when multiple PHY modules have the same phy id (as far as I know).
> >
> > Sorry, I know that, I mean I am pretty sure you can express this "one or
> > the other" type of restriction in Kconfig, no need to encode it in the
> > Makefile logic.
> >
> > Try doing "depens on AX88796B_PHY=n" as the dependency for the rust
> > driver.
>
> You meant the following?
>
> config AX88796B_PHY
> tristate "Asix PHYs"
> help
> Currently supports the Asix Electronics PHY found in the X-Surf 100
> AX88796B package.
>
> config AX88796B_RUST_PHY
> bool "Rust reference driver"
> depends on RUST && AX88796B_PHY
> default n
> help
> Uses the Rust version driver for Asix PHYs.

Nope, that's not going to work.

And your string is wrong :(

> The problem is that there are NIC drivers that `select
> AX88796B_PHY`. the Kconfig language doesn't support something like
> `select AX88796B_PHY or AX88796B_RUST_PHY`, I guess.

You're going to have to figure out which you want to have in the system,
so if a NIC driver selects the C version, live with that.

This is just the tip of the iceburg of the mess that is "duplicate
drivers in the kernel tree" that I keep warning people about.

You all are on your own here now, good luck!

greg k-h