diff mbox series

[net-next] net: kbuild: Don't default net vendor configs to y

Message ID 20220131172450.4905-1-saeed@kernel.org (mailing list archive)
State Under Review
Delegated to: Geert Uytterhoeven
Headers show
Series [net-next] net: kbuild: Don't default net vendor configs to y | expand

Commit Message

Saeed Mahameed Jan. 31, 2022, 5:24 p.m. UTC
From: Saeed Mahameed <saeedm@nvidia.com>

NET_VENDOR_XYZ were defaulted to 'y' for no technical reason.

Since all drivers belonging to a vendor are supposed to default to 'n',
defaulting all vendors to 'n' shouldn't be an issue, and aligns well
with the 'no new drivers' by default mentality.

Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 drivers/net/ethernet/3com/Kconfig          | 1 -
 drivers/net/ethernet/8390/Kconfig          | 1 -
 drivers/net/ethernet/adaptec/Kconfig       | 1 -
 drivers/net/ethernet/agere/Kconfig         | 1 -
 drivers/net/ethernet/alacritech/Kconfig    | 1 -
 drivers/net/ethernet/allwinner/Kconfig     | 1 -
 drivers/net/ethernet/alteon/Kconfig        | 1 -
 drivers/net/ethernet/amazon/Kconfig        | 1 -
 drivers/net/ethernet/amd/Kconfig           | 1 -
 drivers/net/ethernet/apple/Kconfig         | 1 -
 drivers/net/ethernet/aquantia/Kconfig      | 1 -
 drivers/net/ethernet/arc/Kconfig           | 1 -
 drivers/net/ethernet/asix/Kconfig          | 1 -
 drivers/net/ethernet/atheros/Kconfig       | 1 -
 drivers/net/ethernet/broadcom/Kconfig      | 1 -
 drivers/net/ethernet/brocade/Kconfig       | 1 -
 drivers/net/ethernet/cadence/Kconfig       | 1 -
 drivers/net/ethernet/cavium/Kconfig        | 1 -
 drivers/net/ethernet/chelsio/Kconfig       | 1 -
 drivers/net/ethernet/cirrus/Kconfig        | 1 -
 drivers/net/ethernet/cisco/Kconfig         | 1 -
 drivers/net/ethernet/cortina/Kconfig       | 1 -
 drivers/net/ethernet/dec/Kconfig           | 1 -
 drivers/net/ethernet/dlink/Kconfig         | 1 -
 drivers/net/ethernet/emulex/Kconfig        | 1 -
 drivers/net/ethernet/engleder/Kconfig      | 1 -
 drivers/net/ethernet/ezchip/Kconfig        | 1 -
 drivers/net/ethernet/faraday/Kconfig       | 1 -
 drivers/net/ethernet/freescale/Kconfig     | 1 -
 drivers/net/ethernet/fujitsu/Kconfig       | 1 -
 drivers/net/ethernet/google/Kconfig        | 1 -
 drivers/net/ethernet/hisilicon/Kconfig     | 1 -
 drivers/net/ethernet/huawei/Kconfig        | 1 -
 drivers/net/ethernet/i825xx/Kconfig        | 1 -
 drivers/net/ethernet/ibm/Kconfig           | 1 -
 drivers/net/ethernet/intel/Kconfig         | 1 -
 drivers/net/ethernet/litex/Kconfig         | 1 -
 drivers/net/ethernet/marvell/Kconfig       | 1 -
 drivers/net/ethernet/mellanox/Kconfig      | 1 -
 drivers/net/ethernet/micrel/Kconfig        | 1 -
 drivers/net/ethernet/microchip/Kconfig     | 1 -
 drivers/net/ethernet/microsoft/Kconfig     | 1 -
 drivers/net/ethernet/moxa/Kconfig          | 1 -
 drivers/net/ethernet/mscc/Kconfig          | 1 -
 drivers/net/ethernet/myricom/Kconfig       | 1 -
 drivers/net/ethernet/natsemi/Kconfig       | 1 -
 drivers/net/ethernet/neterion/Kconfig      | 1 -
 drivers/net/ethernet/netronome/Kconfig     | 1 -
 drivers/net/ethernet/ni/Kconfig            | 1 -
 drivers/net/ethernet/nvidia/Kconfig        | 1 -
 drivers/net/ethernet/oki-semi/Kconfig      | 1 -
 drivers/net/ethernet/packetengines/Kconfig | 1 -
 drivers/net/ethernet/pasemi/Kconfig        | 1 -
 drivers/net/ethernet/pensando/Kconfig      | 1 -
 drivers/net/ethernet/qlogic/Kconfig        | 1 -
 drivers/net/ethernet/qualcomm/Kconfig      | 1 -
 drivers/net/ethernet/rdc/Kconfig           | 1 -
 drivers/net/ethernet/realtek/Kconfig       | 1 -
 drivers/net/ethernet/renesas/Kconfig       | 1 -
 drivers/net/ethernet/rocker/Kconfig        | 1 -
 drivers/net/ethernet/samsung/Kconfig       | 1 -
 drivers/net/ethernet/seeq/Kconfig          | 1 -
 drivers/net/ethernet/sfc/Kconfig           | 1 -
 drivers/net/ethernet/sgi/Kconfig           | 1 -
 drivers/net/ethernet/silan/Kconfig         | 1 -
 drivers/net/ethernet/sis/Kconfig           | 1 -
 drivers/net/ethernet/smsc/Kconfig          | 1 -
 drivers/net/ethernet/socionext/Kconfig     | 1 -
 drivers/net/ethernet/stmicro/Kconfig       | 1 -
 drivers/net/ethernet/sun/Kconfig           | 1 -
 drivers/net/ethernet/synopsys/Kconfig      | 1 -
 drivers/net/ethernet/tehuti/Kconfig        | 1 -
 drivers/net/ethernet/ti/Kconfig            | 1 -
 drivers/net/ethernet/toshiba/Kconfig       | 1 -
 drivers/net/ethernet/tundra/Kconfig        | 1 -
 drivers/net/ethernet/vertexcom/Kconfig     | 1 -
 drivers/net/ethernet/via/Kconfig           | 1 -
 drivers/net/ethernet/wiznet/Kconfig        | 1 -
 drivers/net/ethernet/xilinx/Kconfig        | 1 -
 drivers/net/ethernet/xircom/Kconfig        | 1 -
 drivers/net/ethernet/xscale/Kconfig        | 1 -
 81 files changed, 81 deletions(-)

Comments

Stephen Hemminger Jan. 31, 2022, 5:59 p.m. UTC | #1
On Mon, 31 Jan 2022 09:24:50 -0800
Saeed Mahameed <saeed@kernel.org> wrote:

> From: Saeed Mahameed <saeedm@nvidia.com>
> 
> NET_VENDOR_XYZ were defaulted to 'y' for no technical reason.
> 
> Since all drivers belonging to a vendor are supposed to default to 'n',
> defaulting all vendors to 'n' shouldn't be an issue, and aligns well
> with the 'no new drivers' by default mentality.
> 
> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>

This was done back when vendors were introduced in the network drivers tree.
The default of Y allowed older configurations to just work.

So there was a reason, not sure if it matters anymore.
But it seems like useless repainting to change it now.
Shannon Nelson Jan. 31, 2022, 6:04 p.m. UTC | #2
On 1/31/22 9:24 AM, Saeed Mahameed wrote:
> From: Saeed Mahameed <saeedm@nvidia.com>
>
> NET_VENDOR_XYZ were defaulted to 'y' for no technical reason.
>
> Since all drivers belonging to a vendor are supposed to default to 'n',
> defaulting all vendors to 'n' shouldn't be an issue, and aligns well
> with the 'no new drivers' by default mentality.
>
> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
>

Is there a particular reason to change this?
Broken compiles?  Bad drivers?  Over-sized output?

sln
Geert Uytterhoeven Jan. 31, 2022, 6:30 p.m. UTC | #3
On Mon, Jan 31, 2022 at 6:59 PM Stephen Hemminger
<stephen@networkplumber.org> wrote:
> On Mon, 31 Jan 2022 09:24:50 -0800
> Saeed Mahameed <saeed@kernel.org> wrote:
>
> > From: Saeed Mahameed <saeedm@nvidia.com>
> >
> > NET_VENDOR_XYZ were defaulted to 'y' for no technical reason.
> >
> > Since all drivers belonging to a vendor are supposed to default to 'n',
> > defaulting all vendors to 'n' shouldn't be an issue, and aligns well
> > with the 'no new drivers' by default mentality.
> >
> > Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
>
> This was done back when vendors were introduced in the network drivers tree.
> The default of Y allowed older configurations to just work.

And changing the defaults means all defconfigs must be updated first,
else the user's configs will end up without drivers needed.

> So there was a reason, not sure if it matters anymore.
> But it seems like useless repainting to change it now.

It might make sense to tune some of the defaults (i.e. change to
"default y if ARCH_*") for drivers with clear platform dependencies.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Saeed Mahameed Jan. 31, 2022, 6:31 p.m. UTC | #4
On 31 Jan 09:59, Stephen Hemminger wrote:
>On Mon, 31 Jan 2022 09:24:50 -0800
>Saeed Mahameed <saeed@kernel.org> wrote:
>
>> From: Saeed Mahameed <saeedm@nvidia.com>
>>
>> NET_VENDOR_XYZ were defaulted to 'y' for no technical reason.
>>
>> Since all drivers belonging to a vendor are supposed to default to 'n',
>> defaulting all vendors to 'n' shouldn't be an issue, and aligns well
>> with the 'no new drivers' by default mentality.
>>
>> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
>
>This was done back when vendors were introduced in the network drivers tree.
>The default of Y allowed older configurations to just work.
>
>So there was a reason, not sure if it matters anymore.
>But it seems like useless repainting to change it now.

it sounds like it's useless to have it in first place, and it was and still
confusing to me why vendors need to by Y by default, can you explain what
are those "older configurations" ? 

The idea of this patch is to set a better example for new vendors and
to have a leaner  .config
Saeed Mahameed Jan. 31, 2022, 6:35 p.m. UTC | #5
On 31 Jan 19:30, Geert Uytterhoeven wrote:
>On Mon, Jan 31, 2022 at 6:59 PM Stephen Hemminger
><stephen@networkplumber.org> wrote:
>> On Mon, 31 Jan 2022 09:24:50 -0800
>> Saeed Mahameed <saeed@kernel.org> wrote:
>>
>> > From: Saeed Mahameed <saeedm@nvidia.com>
>> >
>> > NET_VENDOR_XYZ were defaulted to 'y' for no technical reason.
>> >
>> > Since all drivers belonging to a vendor are supposed to default to 'n',
>> > defaulting all vendors to 'n' shouldn't be an issue, and aligns well
>> > with the 'no new drivers' by default mentality.
>> >
>> > Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
>>
>> This was done back when vendors were introduced in the network drivers tree.
>> The default of Y allowed older configurations to just work.
>
>And changing the defaults means all defconfigs must be updated first,
>else the user's configs will end up without drivers needed.
>

As I understand correctly, at least for most common net drivers, 
having NET_VENDOR_XYZ=y doesn't actually build anything, we have flags per
module for each vendor and those are defaulted to N.

>> So there was a reason, not sure if it matters anymore.
>> But it seems like useless repainting to change it now.
>
>It might make sense to tune some of the defaults (i.e. change to
>"default y if ARCH_*") for drivers with clear platform dependencies.
>

either set hard default to 'n' or just keep it as is, anything else is just
more confusion.

>Gr{oetje,eeting}s,
>
>                        Geert
>
>--
>Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
>In personal conversations with technical people, I call myself a hacker. But
>when I'm talking to journalists I just say "programmer" or something like that.
>                                -- Linus Torvalds
Florian Fainelli Jan. 31, 2022, 6:40 p.m. UTC | #6
On 1/31/2022 10:35 AM, Saeed Mahameed wrote:
> On 31 Jan 19:30, Geert Uytterhoeven wrote:
>> On Mon, Jan 31, 2022 at 6:59 PM Stephen Hemminger
>> <stephen@networkplumber.org> wrote:
>>> On Mon, 31 Jan 2022 09:24:50 -0800
>>> Saeed Mahameed <saeed@kernel.org> wrote:
>>>
>>> > From: Saeed Mahameed <saeedm@nvidia.com>
>>> >
>>> > NET_VENDOR_XYZ were defaulted to 'y' for no technical reason.
>>> >
>>> > Since all drivers belonging to a vendor are supposed to default to 
>>> 'n',
>>> > defaulting all vendors to 'n' shouldn't be an issue, and aligns well
>>> > with the 'no new drivers' by default mentality.
>>> >
>>> > Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
>>>
>>> This was done back when vendors were introduced in the network 
>>> drivers tree.
>>> The default of Y allowed older configurations to just work.
>>
>> And changing the defaults means all defconfigs must be updated first,
>> else the user's configs will end up without drivers needed.
>>
> 
> As I understand correctly, at least for most common net drivers, having 
> NET_VENDOR_XYZ=y doesn't actually build anything, we have flags per
> module for each vendor and those are defaulted to N.

Right, but once you start hiding NET_VENDOR_DRIVER_XYZ under a 
NET_VENDOR_XYZ Kconfig symbol dependency, if NET_VENDOR_XYZ is not set 
to Y, then you have no way to select NET_VENDOR_DRIVER_XYZ and so your 
old defconfig breaks.

> 
>>> So there was a reason, not sure if it matters anymore.
>>> But it seems like useless repainting to change it now.
>>
>> It might make sense to tune some of the defaults (i.e. change to
>> "default y if ARCH_*") for drivers with clear platform dependencies.
>>
> 
> either set hard default to 'n' or just keep it as is, anything else is just
> more confusion.

Maybe the rule should go like this: any new driver vendor defaults to n, 
and existing ones remain set to y, until we deprecate doing that and 
switching them all off to n by 5.18?
Hisashi T Fujinaka Jan. 31, 2022, 6:55 p.m. UTC | #7
On Mon, 31 Jan 2022, Florian Fainelli wrote:

> On 1/31/2022 10:35 AM, Saeed Mahameed wrote:
>> On 31 Jan 19:30, Geert Uytterhoeven wrote:
>>> On Mon, Jan 31, 2022 at 6:59 PM Stephen Hemminger
>>> <stephen@networkplumber.org> wrote:
>>>> On Mon, 31 Jan 2022 09:24:50 -0800
>>>> Saeed Mahameed <saeed@kernel.org> wrote:
>>>> 
>>>> > From: Saeed Mahameed <saeedm@nvidia.com>
>>>> >
>>>> > NET_VENDOR_XYZ were defaulted to 'y' for no technical reason.
>>>> >
>>>> > Since all drivers belonging to a vendor are supposed to default to 'n',
>>>> > defaulting all vendors to 'n' shouldn't be an issue, and aligns well
>>>> > with the 'no new drivers' by default mentality.
>>>> >
>>>> > Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
>>>> 
>>>> This was done back when vendors were introduced in the network drivers 
>>>> tree.
>>>> The default of Y allowed older configurations to just work.
>>> 
>>> And changing the defaults means all defconfigs must be updated first,
>>> else the user's configs will end up without drivers needed.
>>> 
>> 
>> As I understand correctly, at least for most common net drivers, having 
>> NET_VENDOR_XYZ=y doesn't actually build anything, we have flags per
>> module for each vendor and those are defaulted to N.
>
> Right, but once you start hiding NET_VENDOR_DRIVER_XYZ under a NET_VENDOR_XYZ 
> Kconfig symbol dependency, if NET_VENDOR_XYZ is not set to Y, then you have 
> no way to select NET_VENDOR_DRIVER_XYZ and so your old defconfig breaks.
>
>> 
>>>> So there was a reason, not sure if it matters anymore.
>>>> But it seems like useless repainting to change it now.
>>> 
>>> It might make sense to tune some of the defaults (i.e. change to
>>> "default y if ARCH_*") for drivers with clear platform dependencies.
>>> 
>> 
>> either set hard default to 'n' or just keep it as is, anything else is just
>> more confusion.
>
> Maybe the rule should go like this: any new driver vendor defaults to n, and 
> existing ones remain set to y, until we deprecate doing that and switching 
> them all off to n by 5.18?

Forgive my ignorance, but isn't it a regression if things quit working
even if it's just a configuration change?

From a user perspective I like having everything turned on initially so
it just works. Pruning things down is a lot easier than trying to figure
out what all to turn on. Especially in graphics.
Richard Cochran Jan. 31, 2022, 7:13 p.m. UTC | #8
On Mon, Jan 31, 2022 at 10:04:40AM -0800, Shannon Nelson wrote:
> Is there a particular reason to change this?
> Broken compiles?  Bad drivers?  Over-sized output?

Having default Y is a PITA to people working on an embedded design
that has just one working MAC.  It means having to scroll through tons
of empty stuff when doing `make menuconfig`

Thanks,
Richard
Richard Cochran Jan. 31, 2022, 7:17 p.m. UTC | #9
On Mon, Jan 31, 2022 at 10:40:38AM -0800, Florian Fainelli wrote:

> Maybe the rule should go like this: any new driver vendor defaults to n, and
> existing ones remain set to y, until we deprecate doing that and switching
> them all off to n by 5.18?

+1

Actually, I wouldn't mind breaking old configs.  Why?  Because never
once have MY configs ever survived a kernel upgrade.  Manual fix ups
are always needed.

Nobody cares about my configs, so why should I care about theirs?

Thanks,
Richard
Jakub Kicinski Jan. 31, 2022, 8:10 p.m. UTC | #10
On Mon, 31 Jan 2022 10:40:38 -0800 Florian Fainelli wrote:
> >> And changing the defaults means all defconfigs must be updated first,
> >> else the user's configs will end up without drivers needed.
> >>  
> > 
> > As I understand correctly, at least for most common net drivers, having 
> > NET_VENDOR_XYZ=y doesn't actually build anything, we have flags per
> > module for each vendor and those are defaulted to N.  
> 
> Right, but once you start hiding NET_VENDOR_DRIVER_XYZ under a 
> NET_VENDOR_XYZ Kconfig symbol dependency, if NET_VENDOR_XYZ is not set 
> to Y, then you have no way to select NET_VENDOR_DRIVER_XYZ and so your 
> old defconfig breaks.

To be clear do we actually care about *old* configs or *def* configs?

Breaking defconfigs seems bad, but I don't think we can break
reasonable oldconfigs at this point?

> >> It might make sense to tune some of the defaults (i.e. change to
> >> "default y if ARCH_*") for drivers with clear platform dependencies.
> >>  
> > 
> > either set hard default to 'n' or just keep it as is, anything else is just
> > more confusion.  
> 
> Maybe the rule should go like this: any new driver vendor defaults to n, 
> and existing ones remain set to y, until we deprecate doing that and 
> switching them all off to n by 5.18?

I'd be afraid that given the work of fixing up defconfigs is
non-trivial we may end up never switching old drivers. And then we'd
have a semi-random soup of defaults :(
Florian Fainelli Jan. 31, 2022, 11:06 p.m. UTC | #11
On 1/31/2022 12:10 PM, Jakub Kicinski wrote:
> On Mon, 31 Jan 2022 10:40:38 -0800 Florian Fainelli wrote:
>>>> And changing the defaults means all defconfigs must be updated first,
>>>> else the user's configs will end up without drivers needed.
>>>>   
>>>
>>> As I understand correctly, at least for most common net drivers, having
>>> NET_VENDOR_XYZ=y doesn't actually build anything, we have flags per
>>> module for each vendor and those are defaulted to N.
>>
>> Right, but once you start hiding NET_VENDOR_DRIVER_XYZ under a
>> NET_VENDOR_XYZ Kconfig symbol dependency, if NET_VENDOR_XYZ is not set
>> to Y, then you have no way to select NET_VENDOR_DRIVER_XYZ and so your
>> old defconfig breaks.
> 
> To be clear do we actually care about *old* configs or *def* configs?

I think we care about oldconfig but maybe less so about defconfigs which 
are in tree and can be updated.

> 
> Breaking defconfigs seems bad, but I don't think we can break
> reasonable oldconfigs at this point?

No preference either way for me, just like Richard, all of the systems I 
typically work with either require a carefully curated configuration 
file to strip out unwanted features. I do like Geert's suggestion of 
adding default ARCH_ for slightly esoteric controllers that are not 
found in off the shelf hardware.

> 
>>>> It might make sense to tune some of the defaults (i.e. change to
>>>> "default y if ARCH_*") for drivers with clear platform dependencies.
>>>>   
>>>
>>> either set hard default to 'n' or just keep it as is, anything else is just
>>> more confusion.
>>
>> Maybe the rule should go like this: any new driver vendor defaults to n,
>> and existing ones remain set to y, until we deprecate doing that and
>> switching them all off to n by 5.18?
> 
> I'd be afraid that given the work of fixing up defconfigs is
> non-trivial we may end up never switching old drivers. And then we'd
> have a semi-random soup of defaults :(

Fair enough.
Jakub Kicinski Jan. 31, 2022, 11:13 p.m. UTC | #12
On Mon, 31 Jan 2022 15:06:01 -0800 Florian Fainelli wrote:
> >> Right, but once you start hiding NET_VENDOR_DRIVER_XYZ under a
> >> NET_VENDOR_XYZ Kconfig symbol dependency, if NET_VENDOR_XYZ is not set
> >> to Y, then you have no way to select NET_VENDOR_DRIVER_XYZ and so your
> >> old defconfig breaks.  
> > 
> > To be clear do we actually care about *old* configs or *def* configs?  
> 
> I think we care about oldconfig but maybe less so about defconfigs which 
> are in tree and can be updated.

The oldconfigs would have to not be updated on any intervening kernel
in the last 10+ years to break, right? Or is there another way that an
oldconfig would not have the vendor config set to y at this point?
Florian Fainelli Jan. 31, 2022, 11:19 p.m. UTC | #13
On 1/31/2022 3:13 PM, Jakub Kicinski wrote:
> On Mon, 31 Jan 2022 15:06:01 -0800 Florian Fainelli wrote:
>>>> Right, but once you start hiding NET_VENDOR_DRIVER_XYZ under a
>>>> NET_VENDOR_XYZ Kconfig symbol dependency, if NET_VENDOR_XYZ is not set
>>>> to Y, then you have no way to select NET_VENDOR_DRIVER_XYZ and so your
>>>> old defconfig breaks.
>>>
>>> To be clear do we actually care about *old* configs or *def* configs?
>>
>> I think we care about oldconfig but maybe less so about defconfigs which
>> are in tree and can be updated.
> 
> The oldconfigs would have to not be updated on any intervening kernel
> in the last 10+ years to break, right? Or is there another way that an
> oldconfig would not have the vendor config set to y at this point?

That sounds very unrealistic, so yes, I don't think at this point that 
would happen. Even if you had your 15 year old .config file and ran make 
oldconfig today, you would have some work to do to make sure it still 
runs on your hardware.
Leon Romanovsky Feb. 1, 2022, 8:58 a.m. UTC | #14
On Mon, Jan 31, 2022 at 10:55:14AM -0800, Hisashi T Fujinaka wrote:
> On Mon, 31 Jan 2022, Florian Fainelli wrote:
> 
> > On 1/31/2022 10:35 AM, Saeed Mahameed wrote:
> > > On 31 Jan 19:30, Geert Uytterhoeven wrote:
> > > > On Mon, Jan 31, 2022 at 6:59 PM Stephen Hemminger
> > > > <stephen@networkplumber.org> wrote:
> > > > > On Mon, 31 Jan 2022 09:24:50 -0800
> > > > > Saeed Mahameed <saeed@kernel.org> wrote:
> > > > > 
> > > > > > From: Saeed Mahameed <saeedm@nvidia.com>
> > > > > >
> > > > > > NET_VENDOR_XYZ were defaulted to 'y' for no technical reason.
> > > > > >
> > > > > > Since all drivers belonging to a vendor are supposed to default to 'n',
> > > > > > defaulting all vendors to 'n' shouldn't be an issue, and aligns well
> > > > > > with the 'no new drivers' by default mentality.
> > > > > >
> > > > > > Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
> > > > > 
> > > > > This was done back when vendors were introduced in the
> > > > > network drivers tree.
> > > > > The default of Y allowed older configurations to just work.
> > > > 
> > > > And changing the defaults means all defconfigs must be updated first,
> > > > else the user's configs will end up without drivers needed.
> > > > 
> > > 
> > > As I understand correctly, at least for most common net drivers,
> > > having NET_VENDOR_XYZ=y doesn't actually build anything, we have
> > > flags per
> > > module for each vendor and those are defaulted to N.
> > 
> > Right, but once you start hiding NET_VENDOR_DRIVER_XYZ under a
> > NET_VENDOR_XYZ Kconfig symbol dependency, if NET_VENDOR_XYZ is not set
> > to Y, then you have no way to select NET_VENDOR_DRIVER_XYZ and so your
> > old defconfig breaks.
> > 
> > > 
> > > > > So there was a reason, not sure if it matters anymore.
> > > > > But it seems like useless repainting to change it now.
> > > > 
> > > > It might make sense to tune some of the defaults (i.e. change to
> > > > "default y if ARCH_*") for drivers with clear platform dependencies.
> > > > 
> > > 
> > > either set hard default to 'n' or just keep it as is, anything else is just
> > > more confusion.
> > 
> > Maybe the rule should go like this: any new driver vendor defaults to n,
> > and existing ones remain set to y, until we deprecate doing that and
> > switching them all off to n by 5.18?
> 
> Forgive my ignorance, but isn't it a regression if things quit working
> even if it's just a configuration change?

No, kernel configs never were declared as ABI as "regular" users are not
supposed to touch it. They use something provided by the distro.

> 
> From a user perspective I like having everything turned on initially so
> it just works. Pruning things down is a lot easier than trying to figure
> out what all to turn on. Especially in graphics.

I have completely opposite view here and prefer to have minimal config
for my CI, and for my working machines as well. 

Thanks

> 
> -- 
> Hisashi T Fujinaka - htodd@twofifty.com
Richard Cochran Feb. 1, 2022, 3:46 p.m. UTC | #15
On Tue, Feb 01, 2022 at 10:58:01AM +0200, Leon Romanovsky wrote:
> No, kernel configs never were declared as ABI as "regular" users are not
> supposed to touch it. They use something provided by the distro.

+1
Saeed Mahameed Feb. 2, 2022, 4:46 a.m. UTC | #16
On 31 Jan 15:19, Florian Fainelli wrote:
>
>
>On 1/31/2022 3:13 PM, Jakub Kicinski wrote:
>>On Mon, 31 Jan 2022 15:06:01 -0800 Florian Fainelli wrote:
>>>>>Right, but once you start hiding NET_VENDOR_DRIVER_XYZ under a
>>>>>NET_VENDOR_XYZ Kconfig symbol dependency, if NET_VENDOR_XYZ is not set
>>>>>to Y, then you have no way to select NET_VENDOR_DRIVER_XYZ and so your
>>>>>old defconfig breaks.
>>>>
>>>>To be clear do we actually care about *old* configs or *def* configs?
>>>
>>>I think we care about oldconfig but maybe less so about defconfigs which
>>>are in tree and can be updated.
>>
>>The oldconfigs would have to not be updated on any intervening kernel
>>in the last 10+ years to break, right? Or is there another way that an
>>oldconfig would not have the vendor config set to y at this point?
>
>That sounds very unrealistic, so yes, I don't think at this point that 
>would happen. Even if you had your 15 year old .config file and ran 
>make oldconfig today, you would have some work to do to make sure it 
>still runs on your hardware.

I am getting mixed messages here, on one hand we know that this patch
might break some old or def configs, but on the other hand people claim
that they have to manually fixup their own configs every time 
"something in configs" changes and they are fine with that. 

Obviously I belong to the 2nd camp, hence this patch..

I can sum it up with "it's fine to controllably break *some* .configs for 
the greater good" .. that's my .2cent.

Thanks,
Saeed.
Jakub Kicinski Feb. 2, 2022, 4:58 a.m. UTC | #17
On Tue, 1 Feb 2022 20:46:03 -0800 Saeed Mahameed wrote:
> I am getting mixed messages here, on one hand we know that this patch
> might break some old or def configs, but on the other hand people claim
> that they have to manually fixup their own configs every time 
> "something in configs" changes and they are fine with that. 
> 
> Obviously I belong to the 2nd camp, hence this patch..
> 
> I can sum it up with "it's fine to controllably break *some* .configs for 
> the greater good" .. that's my .2cent.

I think we agree that we don't care about oldconfigs IOW someone's
random config.

But we do care about defconfigs in the tree, if those indeed include
ethernet drivers which would get masked out by vendor=n - they need
fixin':

$ find arch/ | grep defconfig
arch/x86/configs/i386_defconfig
arch/x86/configs/x86_64_defconfig
arch/ia64/configs/generic_defconfig
arch/ia64/configs/gensparse_defconfig
...

First one from the top:

$ make O=build_tmp/ i386_defconfig
$ $EDITOR drivers/net/ethernet/intel/Kconfig
$ git diff
diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
index 3facb55b7161..b9fdf2a835b0 100644
--- a/drivers/net/ethernet/intel/Kconfig
+++ b/drivers/net/ethernet/intel/Kconfig
@@ -5,7 +5,6 @@
 
 config NET_VENDOR_INTEL
        bool "Intel devices"
-       default y
        help
          If you have a network (Ethernet) card belonging to this class, say Y.
 
$ make O=build_tmp/ i386_defconfig
$ diff -urpb build_tmp/.config.old build_tmp/.config
--- build_tmp/.config.old	2022-02-01 20:55:37.087373905 -0800
+++ build_tmp/.config	2022-02-01 20:56:32.126044628 -0800
@@ -1784,22 +1784,7 @@ CONFIG_NET_VENDOR_GOOGLE=y
 # CONFIG_GVE is not set
 CONFIG_NET_VENDOR_HUAWEI=y
 # CONFIG_HINIC is not set
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_E100=y
-CONFIG_E1000=y
-CONFIG_E1000E=y
-CONFIG_E1000E_HWTS=y
-# CONFIG_IGB is not set
-# CONFIG_IGBVF is not set
-# CONFIG_IXGB is not set
-# CONFIG_IXGBE is not set
-# CONFIG_IXGBEVF is not set
-# CONFIG_I40E is not set
-# CONFIG_I40EVF is not set
-# CONFIG_ICE is not set
-# CONFIG_FM10K is not set
-# CONFIG_IGC is not set
+# CONFIG_NET_VENDOR_INTEL is not set
 CONFIG_NET_VENDOR_MICROSOFT=y
 # CONFIG_JME is not set
 CONFIG_NET_VENDOR_LITEX=y
Saeed Mahameed Feb. 2, 2022, 5:16 a.m. UTC | #18
On 01 Feb 20:58, Jakub Kicinski wrote:
>On Tue, 1 Feb 2022 20:46:03 -0800 Saeed Mahameed wrote:
>> I am getting mixed messages here, on one hand we know that this patch
>> might break some old or def configs, but on the other hand people claim
>> that they have to manually fixup their own configs every time
>> "something in configs" changes and they are fine with that.
>>
>> Obviously I belong to the 2nd camp, hence this patch..
>>
>> I can sum it up with "it's fine to controllably break *some* .configs for
>> the greater good" .. that's my .2cent.
>
>I think we agree that we don't care about oldconfigs IOW someone's
>random config.
>
>But we do care about defconfigs in the tree, if those indeed include
>ethernet drivers which would get masked out by vendor=n - they need
>fixin':
>
>$ find arch/ | grep defconfig
>arch/x86/configs/i386_defconfig
>arch/x86/configs/x86_64_defconfig
>arch/ia64/configs/generic_defconfig
>arch/ia64/configs/gensparse_defconfig
>...
>
>First one from the top:
>
>$ make O=build_tmp/ i386_defconfig
>$ $EDITOR drivers/net/ethernet/intel/Kconfig
>$ git diff
>diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
>index 3facb55b7161..b9fdf2a835b0 100644
>--- a/drivers/net/ethernet/intel/Kconfig
>+++ b/drivers/net/ethernet/intel/Kconfig
>@@ -5,7 +5,6 @@
>
> config NET_VENDOR_INTEL
>        bool "Intel devices"
>-       default y
>        help
>          If you have a network (Ethernet) card belonging to this class, say Y.
>
>$ make O=build_tmp/ i386_defconfig
>$ diff -urpb build_tmp/.config.old build_tmp/.config
>--- build_tmp/.config.old	2022-02-01 20:55:37.087373905 -0800
>+++ build_tmp/.config	2022-02-01 20:56:32.126044628 -0800
>@@ -1784,22 +1784,7 @@ CONFIG_NET_VENDOR_GOOGLE=y
> # CONFIG_GVE is not set
> CONFIG_NET_VENDOR_HUAWEI=y
> # CONFIG_HINIC is not set
>-CONFIG_NET_VENDOR_I825XX=y
>-CONFIG_NET_VENDOR_INTEL=y
>-CONFIG_E100=y
>-CONFIG_E1000=y
>-CONFIG_E1000E=y
>-CONFIG_E1000E_HWTS=y
>-# CONFIG_IGB is not set
>-# CONFIG_IGBVF is not set
>-# CONFIG_IXGB is not set
>-# CONFIG_IXGBE is not set
>-# CONFIG_IXGBEVF is not set
>-# CONFIG_I40E is not set
>-# CONFIG_I40EVF is not set
>-# CONFIG_ICE is not set
>-# CONFIG_FM10K is not set
>-# CONFIG_IGC is not set
>+# CONFIG_NET_VENDOR_INTEL is not set

We can introduce CONFIG_NET_LEGACY_VENDOR that selects all current vendors.
it will be off by default but will be added where needed in the defconfigs
Christophe Leroy Feb. 2, 2022, 6:30 a.m. UTC | #19
Le 02/02/2022 à 06:16, Saeed Mahameed a écrit :
> On 01 Feb 20:58, Jakub Kicinski wrote:
>> On Tue, 1 Feb 2022 20:46:03 -0800 Saeed Mahameed wrote:
>>> I am getting mixed messages here, on one hand we know that this patch
>>> might break some old or def configs, but on the other hand people claim
>>> that they have to manually fixup their own configs every time
>>> "something in configs" changes and they are fine with that.
>>>
>>> Obviously I belong to the 2nd camp, hence this patch..
>>>
>>> I can sum it up with "it's fine to controllably break *some* .configs 
>>> for
>>> the greater good" .. that's my .2cent.
>>
>> I think we agree that we don't care about oldconfigs IOW someone's
>> random config.
>>
>> But we do care about defconfigs in the tree, if those indeed include
>> ethernet drivers which would get masked out by vendor=n - they need
>> fixin':
>>
>> $ find arch/ | grep defconfig
>> arch/x86/configs/i386_defconfig
>> arch/x86/configs/x86_64_defconfig
>> arch/ia64/configs/generic_defconfig
>> arch/ia64/configs/gensparse_defconfig
>> ...
>>
>> First one from the top:
>>
>> $ make O=build_tmp/ i386_defconfig
>> $ $EDITOR drivers/net/ethernet/intel/Kconfig
>> $ git diff
>> diff --git a/drivers/net/ethernet/intel/Kconfig 
>> b/drivers/net/ethernet/intel/Kconfig
>> index 3facb55b7161..b9fdf2a835b0 100644
>> --- a/drivers/net/ethernet/intel/Kconfig
>> +++ b/drivers/net/ethernet/intel/Kconfig
>> @@ -5,7 +5,6 @@
>>
>> config NET_VENDOR_INTEL
>>        bool "Intel devices"
>> -       default y
>>        help
>>          If you have a network (Ethernet) card belonging to this 
>> class, say Y.
>>
>> $ make O=build_tmp/ i386_defconfig
>> $ diff -urpb build_tmp/.config.old build_tmp/.config
>> --- build_tmp/.config.old    2022-02-01 20:55:37.087373905 -0800
>> +++ build_tmp/.config    2022-02-01 20:56:32.126044628 -0800
>> @@ -1784,22 +1784,7 @@ CONFIG_NET_VENDOR_GOOGLE=y
>> # CONFIG_GVE is not set
>> CONFIG_NET_VENDOR_HUAWEI=y
>> # CONFIG_HINIC is not set
>> -CONFIG_NET_VENDOR_I825XX=y
>> -CONFIG_NET_VENDOR_INTEL=y
>> -CONFIG_E100=y
>> -CONFIG_E1000=y
>> -CONFIG_E1000E=y
>> -CONFIG_E1000E_HWTS=y
>> -# CONFIG_IGB is not set
>> -# CONFIG_IGBVF is not set
>> -# CONFIG_IXGB is not set
>> -# CONFIG_IXGBE is not set
>> -# CONFIG_IXGBEVF is not set
>> -# CONFIG_I40E is not set
>> -# CONFIG_I40EVF is not set
>> -# CONFIG_ICE is not set
>> -# CONFIG_FM10K is not set
>> -# CONFIG_IGC is not set
>> +# CONFIG_NET_VENDOR_INTEL is not set
> 
> We can introduce CONFIG_NET_LEGACY_VENDOR that selects all current vendors.
> it will be off by default but will be added where needed in the defconfigs

Why such a hack ?

I think we can fix all defconfig with some scripting, all you have to do 
it to add the relevant CONFIG_NET_VENDOR_SOMEONE=y wherever you find one 
of its boards in the defconfig.

Christophe
Saeed Mahameed Feb. 2, 2022, 6:44 a.m. UTC | #20
On 02 Feb 06:30, Christophe Leroy wrote:
>
>
>Le 02/02/2022 à 06:16, Saeed Mahameed a écrit :
>> On 01 Feb 20:58, Jakub Kicinski wrote:
>>> On Tue, 1 Feb 2022 20:46:03 -0800 Saeed Mahameed wrote:
>>>> I am getting mixed messages here, on one hand we know that this patch
>>>> might break some old or def configs, but on the other hand people claim
>>>> that they have to manually fixup their own configs every time
>>>> "something in configs" changes and they are fine with that.
>>>>
>>>> Obviously I belong to the 2nd camp, hence this patch..
>>>>
>>>> I can sum it up with "it's fine to controllably break *some* .configs
>>>> for
>>>> the greater good" .. that's my .2cent.
>>>
>>> I think we agree that we don't care about oldconfigs IOW someone's
>>> random config.
>>>
>>> But we do care about defconfigs in the tree, if those indeed include
>>> ethernet drivers which would get masked out by vendor=n - they need
>>> fixin':
>>>
>>> $ find arch/ | grep defconfig
>>> arch/x86/configs/i386_defconfig
>>> arch/x86/configs/x86_64_defconfig
>>> arch/ia64/configs/generic_defconfig
>>> arch/ia64/configs/gensparse_defconfig
>>> ...
>>>
>>> First one from the top:
>>>
>>> $ make O=build_tmp/ i386_defconfig
>>> $ $EDITOR drivers/net/ethernet/intel/Kconfig
>>> $ git diff
>>> diff --git a/drivers/net/ethernet/intel/Kconfig
>>> b/drivers/net/ethernet/intel/Kconfig
>>> index 3facb55b7161..b9fdf2a835b0 100644
>>> --- a/drivers/net/ethernet/intel/Kconfig
>>> +++ b/drivers/net/ethernet/intel/Kconfig
>>> @@ -5,7 +5,6 @@
>>>
>>> config NET_VENDOR_INTEL
>>>        bool "Intel devices"
>>> -       default y
>>>        help
>>>          If you have a network (Ethernet) card belonging to this
>>> class, say Y.
>>>
>>> $ make O=build_tmp/ i386_defconfig
>>> $ diff -urpb build_tmp/.config.old build_tmp/.config
>>> --- build_tmp/.config.old    2022-02-01 20:55:37.087373905 -0800
>>> +++ build_tmp/.config    2022-02-01 20:56:32.126044628 -0800
>>> @@ -1784,22 +1784,7 @@ CONFIG_NET_VENDOR_GOOGLE=y
>>> # CONFIG_GVE is not set
>>> CONFIG_NET_VENDOR_HUAWEI=y
>>> # CONFIG_HINIC is not set
>>> -CONFIG_NET_VENDOR_I825XX=y
>>> -CONFIG_NET_VENDOR_INTEL=y
>>> -CONFIG_E100=y
>>> -CONFIG_E1000=y
>>> -CONFIG_E1000E=y
>>> -CONFIG_E1000E_HWTS=y
>>> -# CONFIG_IGB is not set
>>> -# CONFIG_IGBVF is not set
>>> -# CONFIG_IXGB is not set
>>> -# CONFIG_IXGBE is not set
>>> -# CONFIG_IXGBEVF is not set
>>> -# CONFIG_I40E is not set
>>> -# CONFIG_I40EVF is not set
>>> -# CONFIG_ICE is not set
>>> -# CONFIG_FM10K is not set
>>> -# CONFIG_IGC is not set
>>> +# CONFIG_NET_VENDOR_INTEL is not set
>>
>> We can introduce CONFIG_NET_LEGACY_VENDOR that selects all current vendors.
>> it will be off by default but will be added where needed in the defconfigs
>
>Why such a hack ?
>

Reduced chance of error.

>I think we can fix all defconfig with some scripting, all you have to do
>it to add the relevant CONFIG_NET_VENDOR_SOMEONE=y wherever you find one
>of its boards in the defconfig.
>

Such a script could easily mess up!
I can't think of a clever easily verifiable way to map boards to their VENDORS.
Add to that dispersing the VENDORS configs accurately.

I might be just tired though, i will give it a shot in the morning :) 

>Christophe
Saeed Mahameed Feb. 2, 2022, 6:49 a.m. UTC | #21
On 02 Feb 06:30, Christophe Leroy wrote:
>
>
>Le 02/02/2022 à 06:16, Saeed Mahameed a écrit :
>> On 01 Feb 20:58, Jakub Kicinski wrote:
>>> On Tue, 1 Feb 2022 20:46:03 -0800 Saeed Mahameed wrote:
>>>> I am getting mixed messages here, on one hand we know that this patch
>>>> might break some old or def configs, but on the other hand people claim
>>>> that they have to manually fixup their own configs every time
>>>> "something in configs" changes and they are fine with that.
>>>>
>>>> Obviously I belong to the 2nd camp, hence this patch..
>>>>
>>>> I can sum it up with "it's fine to controllably break *some* .configs
>>>> for
>>>> the greater good" .. that's my .2cent.
>>>
>>> I think we agree that we don't care about oldconfigs IOW someone's
>>> random config.
>>>
>>> But we do care about defconfigs in the tree, if those indeed include
>>> ethernet drivers which would get masked out by vendor=n - they need
>>> fixin':
>>>
>>> $ find arch/ | grep defconfig
>>> arch/x86/configs/i386_defconfig
>>> arch/x86/configs/x86_64_defconfig
>>> arch/ia64/configs/generic_defconfig
>>> arch/ia64/configs/gensparse_defconfig
>>> ...
>>>
>>> First one from the top:
>>>
>>> $ make O=build_tmp/ i386_defconfig
>>> $ $EDITOR drivers/net/ethernet/intel/Kconfig
>>> $ git diff
>>> diff --git a/drivers/net/ethernet/intel/Kconfig
>>> b/drivers/net/ethernet/intel/Kconfig
>>> index 3facb55b7161..b9fdf2a835b0 100644
>>> --- a/drivers/net/ethernet/intel/Kconfig
>>> +++ b/drivers/net/ethernet/intel/Kconfig
>>> @@ -5,7 +5,6 @@
>>>
>>> config NET_VENDOR_INTEL
>>>        bool "Intel devices"
>>> -       default y
>>>        help
>>>          If you have a network (Ethernet) card belonging to this
>>> class, say Y.
>>>
>>> $ make O=build_tmp/ i386_defconfig
>>> $ diff -urpb build_tmp/.config.old build_tmp/.config
>>> --- build_tmp/.config.old    2022-02-01 20:55:37.087373905 -0800
>>> +++ build_tmp/.config    2022-02-01 20:56:32.126044628 -0800
>>> @@ -1784,22 +1784,7 @@ CONFIG_NET_VENDOR_GOOGLE=y
>>> # CONFIG_GVE is not set
>>> CONFIG_NET_VENDOR_HUAWEI=y
>>> # CONFIG_HINIC is not set
>>> -CONFIG_NET_VENDOR_I825XX=y
>>> -CONFIG_NET_VENDOR_INTEL=y
>>> -CONFIG_E100=y
>>> -CONFIG_E1000=y
>>> -CONFIG_E1000E=y
>>> -CONFIG_E1000E_HWTS=y
>>> -# CONFIG_IGB is not set
>>> -# CONFIG_IGBVF is not set
>>> -# CONFIG_IXGB is not set
>>> -# CONFIG_IXGBE is not set
>>> -# CONFIG_IXGBEVF is not set
>>> -# CONFIG_I40E is not set
>>> -# CONFIG_I40EVF is not set
>>> -# CONFIG_ICE is not set
>>> -# CONFIG_FM10K is not set
>>> -# CONFIG_IGC is not set
>>> +# CONFIG_NET_VENDOR_INTEL is not set
>>
>> We can introduce CONFIG_NET_LEGACY_VENDOR that selects all current vendors.
>> it will be off by default but will be added where needed in the defconfigs
>

Sorry I think i messed up my previous reply, here it's again just in case.

>Why such a hack ?
>

Reduced chance of error.

>I think we can fix all defconfig with some scripting, all you have to do
>it to add the relevant CONFIG_NET_VENDOR_SOMEONE=y wherever you find one
>of its boards in the defconfig.
>

Such a script could easily mess up!
I can't think of a clever easily verifiable way to map boards to their VENDORS.
Add to that dispersing the VENDORS configs accurately.

I might be just tired though, i will give it a shot in the morning :)

>Christophe
Richard Cochran Feb. 2, 2022, 3:17 p.m. UTC | #22
On Tue, Feb 01, 2022 at 10:49:50PM -0800, Saeed Mahameed wrote:
> I can't think of a clever easily verifiable way to map boards to their VENDORS.
> Add to that dispersing the VENDORS configs accurately.

Just an idea...

1. make foo_defconfig
2. for each vendor, do scripts/config --disable vendor
3. make savedefconfig
4. compare defconfig with foo_defconfig
   difference means some MAC was removed

HTH,
Richard
Arnd Bergmann Feb. 2, 2022, 3:31 p.m. UTC | #23
On Wed, Feb 2, 2022 at 4:17 PM Richard Cochran <richardcochran@gmail.com> wrote:
>
> On Tue, Feb 01, 2022 at 10:49:50PM -0800, Saeed Mahameed wrote:
> > I can't think of a clever easily verifiable way to map boards to their VENDORS.
> > Add to that dispersing the VENDORS configs accurately.
>
> Just an idea...
>
> 1. make foo_defconfig
> 2. for each vendor, do scripts/config --disable vendor
> 3. make savedefconfig
> 4. compare defconfig with foo_defconfig
>    difference means some MAC was removed

This needs an extra 'savedefconfig' step in the beginning, as a lot of
the defconfig
files are already different from what you get after savedefconfig, both in the
order of options, and in options that got renamed or removed over time.

         Arnd
diff mbox series

Patch

diff --git a/drivers/net/ethernet/3com/Kconfig b/drivers/net/ethernet/3com/Kconfig
index 706bd59bf645..a48e879b941e 100644
--- a/drivers/net/ethernet/3com/Kconfig
+++ b/drivers/net/ethernet/3com/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_3COM
 	bool "3Com devices"
-	default y
 	depends on ISA || EISA || PCI || PCMCIA
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/8390/Kconfig b/drivers/net/ethernet/8390/Kconfig
index a4130e643342..e2fd9bd0bf15 100644
--- a/drivers/net/ethernet/8390/Kconfig
+++ b/drivers/net/ethernet/8390/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_8390
 	bool "National Semiconductor 8390 devices"
-	default y
 	depends on NET_VENDOR_NATSEMI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/adaptec/Kconfig b/drivers/net/ethernet/adaptec/Kconfig
index c96edc2e582f..06664de54b34 100644
--- a/drivers/net/ethernet/adaptec/Kconfig
+++ b/drivers/net/ethernet/adaptec/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_ADAPTEC
 	bool "Adaptec devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/agere/Kconfig b/drivers/net/ethernet/agere/Kconfig
index 9cd750184947..623cedaeba4a 100644
--- a/drivers/net/ethernet/agere/Kconfig
+++ b/drivers/net/ethernet/agere/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_AGERE
 	bool "Agere devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/alacritech/Kconfig b/drivers/net/ethernet/alacritech/Kconfig
index 5f285e18faf7..7ed4dbb6a4b2 100644
--- a/drivers/net/ethernet/alacritech/Kconfig
+++ b/drivers/net/ethernet/alacritech/Kconfig
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: GPL-2.0-only
 config NET_VENDOR_ALACRITECH
 	bool "Alacritech devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/allwinner/Kconfig b/drivers/net/ethernet/allwinner/Kconfig
index 3e81059f8693..c5e86a908e89 100644
--- a/drivers/net/ethernet/allwinner/Kconfig
+++ b/drivers/net/ethernet/allwinner/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_ALLWINNER
 	bool "Allwinner devices"
-	default y
 
 	depends on ARCH_SUNXI
 	help
diff --git a/drivers/net/ethernet/alteon/Kconfig b/drivers/net/ethernet/alteon/Kconfig
index cfe1f3159d61..eebf3a225f05 100644
--- a/drivers/net/ethernet/alteon/Kconfig
+++ b/drivers/net/ethernet/alteon/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_ALTEON
 	bool "Alteon devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/amazon/Kconfig b/drivers/net/ethernet/amazon/Kconfig
index c37fa393b99e..9d0a862feace 100644
--- a/drivers/net/ethernet/amazon/Kconfig
+++ b/drivers/net/ethernet/amazon/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_AMAZON
 	bool "Amazon Devices"
-	default y
 	help
 	  If you have a network (Ethernet) device belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/amd/Kconfig b/drivers/net/ethernet/amd/Kconfig
index 899c8a2a34b6..78b8fcddf734 100644
--- a/drivers/net/ethernet/amd/Kconfig
+++ b/drivers/net/ethernet/amd/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_AMD
 	bool "AMD devices"
-	default y
 	depends on DIO || MACH_DECSTATION || MVME147 || ATARI || SUN3 || \
 		   SUN3X || SBUS || PCI || ZORRO || (ISA && ISA_DMA_API) || \
 		   ISA || EISA || PCMCIA || ARM64
diff --git a/drivers/net/ethernet/apple/Kconfig b/drivers/net/ethernet/apple/Kconfig
index a4176d2ecec6..769411fad5f0 100644
--- a/drivers/net/ethernet/apple/Kconfig
+++ b/drivers/net/ethernet/apple/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_APPLE
 	bool "Apple devices"
-	default y
 	depends on (PPC_PMAC && PPC32) || MAC
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/aquantia/Kconfig b/drivers/net/ethernet/aquantia/Kconfig
index cec2018c84a9..8db49cd12cfb 100644
--- a/drivers/net/ethernet/aquantia/Kconfig
+++ b/drivers/net/ethernet/aquantia/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_AQUANTIA
 	bool "aQuantia devices"
-	default y
 	help
 	  Set this to y if you have an Ethernet network cards that uses the aQuantia
 	  AQC107/AQC108 chipset.
diff --git a/drivers/net/ethernet/arc/Kconfig b/drivers/net/ethernet/arc/Kconfig
index 0a67612af228..2b94bd928772 100644
--- a/drivers/net/ethernet/arc/Kconfig
+++ b/drivers/net/ethernet/arc/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_ARC
 	bool "ARC devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/asix/Kconfig b/drivers/net/ethernet/asix/Kconfig
index eed02453314c..8c03ef3b1852 100644
--- a/drivers/net/ethernet/asix/Kconfig
+++ b/drivers/net/ethernet/asix/Kconfig
@@ -4,7 +4,6 @@ 
 
 config NET_VENDOR_ASIX
 	bool "Asix devices"
-	default y
 	help
 	  If you have a network (Ethernet, non-USB, not NE2000 compatible)
 	  interface based on a chip from ASIX, say Y.
diff --git a/drivers/net/ethernet/atheros/Kconfig b/drivers/net/ethernet/atheros/Kconfig
index 482c58c4c584..27719e5a2898 100644
--- a/drivers/net/ethernet/atheros/Kconfig
+++ b/drivers/net/ethernet/atheros/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_ATHEROS
 	bool "Atheros devices"
-	default y
 	depends on (PCI || ATH79)
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/broadcom/Kconfig b/drivers/net/ethernet/broadcom/Kconfig
index 56e0fb07aec7..b4634c175091 100644
--- a/drivers/net/ethernet/broadcom/Kconfig
+++ b/drivers/net/ethernet/broadcom/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_BROADCOM
 	bool "Broadcom devices"
-	default y
 	depends on (SSB_POSSIBLE && HAS_DMA) || PCI || BCM63XX || \
 		   SIBYTE_SB1xxx_SOC
 	help
diff --git a/drivers/net/ethernet/brocade/Kconfig b/drivers/net/ethernet/brocade/Kconfig
index fb4c3cdf7233..b8c71e98d81e 100644
--- a/drivers/net/ethernet/brocade/Kconfig
+++ b/drivers/net/ethernet/brocade/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_BROCADE
 	bool "QLogic BR-series devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/cadence/Kconfig b/drivers/net/ethernet/cadence/Kconfig
index 5b2a461dfd28..9e1698fccd2c 100644
--- a/drivers/net/ethernet/cadence/Kconfig
+++ b/drivers/net/ethernet/cadence/Kconfig
@@ -6,7 +6,6 @@ 
 config NET_VENDOR_CADENCE
 	bool "Cadence devices"
 	depends on HAS_IOMEM
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/cavium/Kconfig b/drivers/net/ethernet/cavium/Kconfig
index 1c76c95b0b27..0ee3f99e0b68 100644
--- a/drivers/net/ethernet/cavium/Kconfig
+++ b/drivers/net/ethernet/cavium/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_CAVIUM
 	bool "Cavium ethernet drivers"
-	default y
 	help
 	  Select this option if you want enable Cavium network support.
 
diff --git a/drivers/net/ethernet/chelsio/Kconfig b/drivers/net/ethernet/chelsio/Kconfig
index c931ec8cac40..6377430f519a 100644
--- a/drivers/net/ethernet/chelsio/Kconfig
+++ b/drivers/net/ethernet/chelsio/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_CHELSIO
 	bool "Chelsio devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/cirrus/Kconfig b/drivers/net/ethernet/cirrus/Kconfig
index 5bdf731d9503..bebfc95fae0f 100644
--- a/drivers/net/ethernet/cirrus/Kconfig
+++ b/drivers/net/ethernet/cirrus/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_CIRRUS
 	bool "Cirrus devices"
-	default y
 	depends on ISA || EISA || ARM || MAC || COMPILE_TEST
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/cisco/Kconfig b/drivers/net/ethernet/cisco/Kconfig
index 18c3a0718d6f..64353561fb52 100644
--- a/drivers/net/ethernet/cisco/Kconfig
+++ b/drivers/net/ethernet/cisco/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_CISCO
 	bool "Cisco devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/cortina/Kconfig b/drivers/net/ethernet/cortina/Kconfig
index aaf9e294b70b..0da6ddd9ac89 100644
--- a/drivers/net/ethernet/cortina/Kconfig
+++ b/drivers/net/ethernet/cortina/Kconfig
@@ -3,7 +3,6 @@ 
 
 config NET_VENDOR_CORTINA
 	bool "Cortina Gemini devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y
 	  and read the Ethernet-HOWTO, available from
diff --git a/drivers/net/ethernet/dec/Kconfig b/drivers/net/ethernet/dec/Kconfig
index 9e5e5f10bd19..1cfe23876f70 100644
--- a/drivers/net/ethernet/dec/Kconfig
+++ b/drivers/net/ethernet/dec/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_DEC
 	bool "Digital Equipment devices"
-	default y
 	depends on PCI || EISA || CARDBUS
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/dlink/Kconfig b/drivers/net/ethernet/dlink/Kconfig
index 0d77f84c8e7b..f383aaabfa10 100644
--- a/drivers/net/ethernet/dlink/Kconfig
+++ b/drivers/net/ethernet/dlink/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_DLINK
 	bool "D-Link devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/emulex/Kconfig b/drivers/net/ethernet/emulex/Kconfig
index 5797a76dc731..18ec22423d79 100644
--- a/drivers/net/ethernet/emulex/Kconfig
+++ b/drivers/net/ethernet/emulex/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_EMULEX
 	bool "Emulex devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/engleder/Kconfig b/drivers/net/ethernet/engleder/Kconfig
index f4e2b1102d8f..dbbc6b8943e3 100644
--- a/drivers/net/ethernet/engleder/Kconfig
+++ b/drivers/net/ethernet/engleder/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_ENGLEDER
 	bool "Engleder devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/ezchip/Kconfig b/drivers/net/ethernet/ezchip/Kconfig
index 9241b9b1c7a3..411217ba51ea 100644
--- a/drivers/net/ethernet/ezchip/Kconfig
+++ b/drivers/net/ethernet/ezchip/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_EZCHIP
 	bool "EZchip devices"
-	default y
 	help
 	  If you have a network (Ethernet) device belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/faraday/Kconfig b/drivers/net/ethernet/faraday/Kconfig
index 3d1e9a302148..c6f2ac2bb153 100644
--- a/drivers/net/ethernet/faraday/Kconfig
+++ b/drivers/net/ethernet/faraday/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_FARADAY
 	bool "Faraday devices"
-	default y
 	depends on ARM || NDS32 || COMPILE_TEST
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/freescale/Kconfig b/drivers/net/ethernet/freescale/Kconfig
index e04e1c5cb013..336fee3bb012 100644
--- a/drivers/net/ethernet/freescale/Kconfig
+++ b/drivers/net/ethernet/freescale/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_FREESCALE
 	bool "Freescale devices"
-	default y
 	depends on FSL_SOC || QUICC_ENGINE || CPM1 || CPM2 || PPC_MPC512x || \
 		   M523x || M527x || M5272 || M528x || M520x || M532x || \
 		   ARCH_MXC || ARCH_MXS || (PPC_MPC52xx && PPC_BESTCOMM) || \
diff --git a/drivers/net/ethernet/fujitsu/Kconfig b/drivers/net/ethernet/fujitsu/Kconfig
index 0a1400cb410a..435037e34efd 100644
--- a/drivers/net/ethernet/fujitsu/Kconfig
+++ b/drivers/net/ethernet/fujitsu/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_FUJITSU
 	bool "Fujitsu devices"
-	default y
 	depends on PCMCIA
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/google/Kconfig b/drivers/net/ethernet/google/Kconfig
index 8641a00f8e63..ababdcb01bbb 100644
--- a/drivers/net/ethernet/google/Kconfig
+++ b/drivers/net/ethernet/google/Kconfig
@@ -4,7 +4,6 @@ 
 
 config NET_VENDOR_GOOGLE
 	bool "Google Devices"
-	default y
 	help
 	  If you have a network (Ethernet) device belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/hisilicon/Kconfig b/drivers/net/ethernet/hisilicon/Kconfig
index 3312e1d93c3b..0445aa064a20 100644
--- a/drivers/net/ethernet/hisilicon/Kconfig
+++ b/drivers/net/ethernet/hisilicon/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_HISILICON
 	bool "Hisilicon devices"
-	default y
 	depends on OF || ACPI
 	depends on ARM || ARM64 || COMPILE_TEST
 	help
diff --git a/drivers/net/ethernet/huawei/Kconfig b/drivers/net/ethernet/huawei/Kconfig
index c05fce15eb51..a5b2f00403df 100644
--- a/drivers/net/ethernet/huawei/Kconfig
+++ b/drivers/net/ethernet/huawei/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_HUAWEI
 	bool "Huawei devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 	  Note that the answer to this question doesn't directly affect the
diff --git a/drivers/net/ethernet/i825xx/Kconfig b/drivers/net/ethernet/i825xx/Kconfig
index 3b5fab123824..3812783a804b 100644
--- a/drivers/net/ethernet/i825xx/Kconfig
+++ b/drivers/net/ethernet/i825xx/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_I825XX
 	bool "Intel (82586/82593/82596) devices"
-	default y
 	depends on NET_VENDOR_INTEL
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/ibm/Kconfig b/drivers/net/ethernet/ibm/Kconfig
index c0c112d95b89..dc2098fb1c8f 100644
--- a/drivers/net/ethernet/ibm/Kconfig
+++ b/drivers/net/ethernet/ibm/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_IBM
 	bool "IBM devices"
-	default y
 	depends on PPC_PSERIES || PPC_DCR || (IBMEBUS && SPARSEMEM)
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/intel/Kconfig b/drivers/net/ethernet/intel/Kconfig
index 3facb55b7161..b9fdf2a835b0 100644
--- a/drivers/net/ethernet/intel/Kconfig
+++ b/drivers/net/ethernet/intel/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_INTEL
 	bool "Intel devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/litex/Kconfig b/drivers/net/ethernet/litex/Kconfig
index f99adbf26ab4..417129027b9a 100644
--- a/drivers/net/ethernet/litex/Kconfig
+++ b/drivers/net/ethernet/litex/Kconfig
@@ -4,7 +4,6 @@ 
 
 config NET_VENDOR_LITEX
 	bool "LiteX devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/marvell/Kconfig b/drivers/net/ethernet/marvell/Kconfig
index fe0989c0fc25..2a3f06b9f4f7 100644
--- a/drivers/net/ethernet/marvell/Kconfig
+++ b/drivers/net/ethernet/marvell/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_MARVELL
 	bool "Marvell devices"
-	default y
 	depends on PCI || CPU_PXA168 || PPC32 || PLAT_ORION || INET || COMPILE_TEST
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/mellanox/Kconfig b/drivers/net/ethernet/mellanox/Kconfig
index b4f66eb9ddb9..d2dd728bb016 100644
--- a/drivers/net/ethernet/mellanox/Kconfig
+++ b/drivers/net/ethernet/mellanox/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_MELLANOX
 	bool "Mellanox devices"
-	default y
 	depends on PCI || I2C
 	help
 	  If you have a network (Ethernet or RDMA) device belonging to this
diff --git a/drivers/net/ethernet/micrel/Kconfig b/drivers/net/ethernet/micrel/Kconfig
index 93df3049cdc0..bf0c84117f8b 100644
--- a/drivers/net/ethernet/micrel/Kconfig
+++ b/drivers/net/ethernet/micrel/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_MICREL
 	bool "Micrel devices"
-	default y
 	depends on (HAS_IOMEM && DMA_ENGINE) || SPI || PCI || HAS_IOMEM
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/microchip/Kconfig b/drivers/net/ethernet/microchip/Kconfig
index ed7a35c3ceac..cfcd4cf3e14b 100644
--- a/drivers/net/ethernet/microchip/Kconfig
+++ b/drivers/net/ethernet/microchip/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_MICROCHIP
 	bool "Microchip devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/microsoft/Kconfig b/drivers/net/ethernet/microsoft/Kconfig
index fe4e7a7d9c0b..b651441c83b6 100644
--- a/drivers/net/ethernet/microsoft/Kconfig
+++ b/drivers/net/ethernet/microsoft/Kconfig
@@ -4,7 +4,6 @@ 
 
 config NET_VENDOR_MICROSOFT
 	bool "Microsoft Network Devices"
-	default y
 	help
 	  If you have a network (Ethernet) device belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/moxa/Kconfig b/drivers/net/ethernet/moxa/Kconfig
index 134802b521cb..0cccb1a39ef5 100644
--- a/drivers/net/ethernet/moxa/Kconfig
+++ b/drivers/net/ethernet/moxa/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_MOXART
 	bool "MOXA ART devices"
-	default y
 	depends on (ARM && ARCH_MOXART)
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/mscc/Kconfig b/drivers/net/ethernet/mscc/Kconfig
index 8dd8c7f425d2..8d3e50e253d6 100644
--- a/drivers/net/ethernet/mscc/Kconfig
+++ b/drivers/net/ethernet/mscc/Kconfig
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: (GPL-2.0 OR MIT)
 config NET_VENDOR_MICROSEMI
 	bool "Microsemi devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/myricom/Kconfig b/drivers/net/ethernet/myricom/Kconfig
index 81267fd72dbf..fd3497219b14 100644
--- a/drivers/net/ethernet/myricom/Kconfig
+++ b/drivers/net/ethernet/myricom/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_MYRI
 	bool "Myricom devices"
-	default y
 	depends on PCI && INET
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/natsemi/Kconfig b/drivers/net/ethernet/natsemi/Kconfig
index 0a92101aa3f1..8938ac439257 100644
--- a/drivers/net/ethernet/natsemi/Kconfig
+++ b/drivers/net/ethernet/natsemi/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_NATSEMI
 	bool "National Semiconductor devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/neterion/Kconfig b/drivers/net/ethernet/neterion/Kconfig
index 0c0d127906dd..27e3dd441e31 100644
--- a/drivers/net/ethernet/neterion/Kconfig
+++ b/drivers/net/ethernet/neterion/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_NETERION
 	bool "Neterion (Exar) devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/netronome/Kconfig b/drivers/net/ethernet/netronome/Kconfig
index 8844d1ac053a..c48999fd1bf0 100644
--- a/drivers/net/ethernet/netronome/Kconfig
+++ b/drivers/net/ethernet/netronome/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_NETRONOME
 	bool "Netronome(R) devices"
-	default y
 	help
 	  If you have a Netronome(R) network (Ethernet) card or device, say Y.
 
diff --git a/drivers/net/ethernet/ni/Kconfig b/drivers/net/ethernet/ni/Kconfig
index dcfbfa516e67..63edc754e4ec 100644
--- a/drivers/net/ethernet/ni/Kconfig
+++ b/drivers/net/ethernet/ni/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_NI
 	bool "National Instruments Devices"
-	default y
 	help
 	  If you have a network (Ethernet) device belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/nvidia/Kconfig b/drivers/net/ethernet/nvidia/Kconfig
index c653786b1d05..80ea04280302 100644
--- a/drivers/net/ethernet/nvidia/Kconfig
+++ b/drivers/net/ethernet/nvidia/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_NVIDIA
 	bool "NVIDIA devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/oki-semi/Kconfig b/drivers/net/ethernet/oki-semi/Kconfig
index c2fff04ba7b6..6965467a4250 100644
--- a/drivers/net/ethernet/oki-semi/Kconfig
+++ b/drivers/net/ethernet/oki-semi/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_OKI
 	bool "OKI Semiconductor devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/packetengines/Kconfig b/drivers/net/ethernet/packetengines/Kconfig
index de91331dcb7d..05a185bc5e3c 100644
--- a/drivers/net/ethernet/packetengines/Kconfig
+++ b/drivers/net/ethernet/packetengines/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_PACKET_ENGINES
 	bool "Packet Engines devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/pasemi/Kconfig b/drivers/net/ethernet/pasemi/Kconfig
index cd68ebcf3e47..8b2c89961562 100644
--- a/drivers/net/ethernet/pasemi/Kconfig
+++ b/drivers/net/ethernet/pasemi/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_PASEMI
 	bool "PA Semi devices"
-	default y
 	depends on PPC_PASEMI && PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/pensando/Kconfig b/drivers/net/ethernet/pensando/Kconfig
index 3f7519e435b8..332cb71061d8 100644
--- a/drivers/net/ethernet/pensando/Kconfig
+++ b/drivers/net/ethernet/pensando/Kconfig
@@ -6,7 +6,6 @@ 
 
 config NET_VENDOR_PENSANDO
 	bool "Pensando devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/qlogic/Kconfig b/drivers/net/ethernet/qlogic/Kconfig
index 1203353238e5..8c0605424406 100644
--- a/drivers/net/ethernet/qlogic/Kconfig
+++ b/drivers/net/ethernet/qlogic/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_QLOGIC
 	bool "QLogic devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/qualcomm/Kconfig b/drivers/net/ethernet/qualcomm/Kconfig
index a4434eb38950..c764d73bca24 100644
--- a/drivers/net/ethernet/qualcomm/Kconfig
+++ b/drivers/net/ethernet/qualcomm/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_QUALCOMM
 	bool "Qualcomm devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/rdc/Kconfig b/drivers/net/ethernet/rdc/Kconfig
index 6884c7864bb9..59e4f08b5840 100644
--- a/drivers/net/ethernet/rdc/Kconfig
+++ b/drivers/net/ethernet/rdc/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_RDC
 	bool "RDC devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/realtek/Kconfig b/drivers/net/ethernet/realtek/Kconfig
index 93d9df55b361..62d4ed369dcd 100644
--- a/drivers/net/ethernet/realtek/Kconfig
+++ b/drivers/net/ethernet/realtek/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_REALTEK
 	bool "Realtek devices"
-	default y
 	depends on PCI || (PARPORT && X86)
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/renesas/Kconfig b/drivers/net/ethernet/renesas/Kconfig
index 8008b2f45934..09f406d80e51 100644
--- a/drivers/net/ethernet/renesas/Kconfig
+++ b/drivers/net/ethernet/renesas/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_RENESAS
 	bool "Renesas devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/rocker/Kconfig b/drivers/net/ethernet/rocker/Kconfig
index 2318811ff75a..e3c28ecca99c 100644
--- a/drivers/net/ethernet/rocker/Kconfig
+++ b/drivers/net/ethernet/rocker/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_ROCKER
 	bool "Rocker devices"
-	default y
 	help
 	  If you have a network device belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/samsung/Kconfig b/drivers/net/ethernet/samsung/Kconfig
index 2a6c2658d284..d6646b2c85fd 100644
--- a/drivers/net/ethernet/samsung/Kconfig
+++ b/drivers/net/ethernet/samsung/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_SAMSUNG
 	bool "Samsung Ethernet devices"
-	default y
 	help
 	  If you have a network (Ethernet) chipset belonging to this class,
 	  say Y.
diff --git a/drivers/net/ethernet/seeq/Kconfig b/drivers/net/ethernet/seeq/Kconfig
index ad1df37571dd..f3b7d0e71032 100644
--- a/drivers/net/ethernet/seeq/Kconfig
+++ b/drivers/net/ethernet/seeq/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_SEEQ
 	bool "SEEQ devices"
-	default y
 	depends on HAS_IOMEM
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/sfc/Kconfig b/drivers/net/ethernet/sfc/Kconfig
index 97ce64079855..29c79a42b2ac 100644
--- a/drivers/net/ethernet/sfc/Kconfig
+++ b/drivers/net/ethernet/sfc/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_SOLARFLARE
 	bool "Solarflare devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/sgi/Kconfig b/drivers/net/ethernet/sgi/Kconfig
index af66bb0a20d1..49ea41c80fbc 100644
--- a/drivers/net/ethernet/sgi/Kconfig
+++ b/drivers/net/ethernet/sgi/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_SGI
 	bool "SGI devices"
-	default y
 	depends on (PCI && SGI_MFD_IOC3) ||  SGI_IP32
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/silan/Kconfig b/drivers/net/ethernet/silan/Kconfig
index 7ed08d588ac2..fe85c23ebf86 100644
--- a/drivers/net/ethernet/silan/Kconfig
+++ b/drivers/net/ethernet/silan/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_SILAN
 	bool "Silan devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/sis/Kconfig b/drivers/net/ethernet/sis/Kconfig
index 775d76d9890e..5aa21a750add 100644
--- a/drivers/net/ethernet/sis/Kconfig
+++ b/drivers/net/ethernet/sis/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_SIS
 	bool "Silicon Integrated Systems (SiS) devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/smsc/Kconfig b/drivers/net/ethernet/smsc/Kconfig
index 72e42a868346..ed7c3d0b4bbb 100644
--- a/drivers/net/ethernet/smsc/Kconfig
+++ b/drivers/net/ethernet/smsc/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_SMSC
 	bool "SMC (SMSC)/Western Digital devices"
-	default y
 	depends on ARM || ARM64 || ATARI_ETHERNAT || COLDFIRE || \
 		   ISA || MAC || MIPS || NIOS2 || PCI || \
 		   PCMCIA || SUPERH || XTENSA || H8300 || COMPILE_TEST
diff --git a/drivers/net/ethernet/socionext/Kconfig b/drivers/net/ethernet/socionext/Kconfig
index 48298389851d..f00270bcd93c 100644
--- a/drivers/net/ethernet/socionext/Kconfig
+++ b/drivers/net/ethernet/socionext/Kconfig
@@ -1,7 +1,6 @@ 
 # SPDX-License-Identifier: GPL-2.0-only
 config NET_VENDOR_SOCIONEXT
 	bool "Socionext ethernet drivers"
-	default y
 	help
 	  Option to select ethernet drivers for Socionext platforms.
 
diff --git a/drivers/net/ethernet/stmicro/Kconfig b/drivers/net/ethernet/stmicro/Kconfig
index cc136b4c9afd..d9bd40d0b4a4 100644
--- a/drivers/net/ethernet/stmicro/Kconfig
+++ b/drivers/net/ethernet/stmicro/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_STMICRO
 	bool "STMicroelectronics devices"
-	default y
 	depends on HAS_IOMEM
 	help
 	  If you have a network (Ethernet) card based on Synopsys Ethernet IP
diff --git a/drivers/net/ethernet/sun/Kconfig b/drivers/net/ethernet/sun/Kconfig
index b0d3f9a2950c..a7c7ac62c909 100644
--- a/drivers/net/ethernet/sun/Kconfig
+++ b/drivers/net/ethernet/sun/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_SUN
 	bool "Sun devices"
-	default y
 	depends on SUN3 || SBUS || PCI || SUN_LDOMS
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/synopsys/Kconfig b/drivers/net/ethernet/synopsys/Kconfig
index f2a4287c48b8..ba48dc425d35 100644
--- a/drivers/net/ethernet/synopsys/Kconfig
+++ b/drivers/net/ethernet/synopsys/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_SYNOPSYS
 	bool "Synopsys devices"
-	default y
 	help
 	  If you have a network (Ethernet) device belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/tehuti/Kconfig b/drivers/net/ethernet/tehuti/Kconfig
index 8735633765a1..1e1adf005732 100644
--- a/drivers/net/ethernet/tehuti/Kconfig
+++ b/drivers/net/ethernet/tehuti/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_TEHUTI
 	bool "Tehuti devices"
-	default y
 	depends on PCI
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig
index affcf92cd3aa..cff101c1b822 100644
--- a/drivers/net/ethernet/ti/Kconfig
+++ b/drivers/net/ethernet/ti/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_TI
 	bool "Texas Instruments (TI) devices"
-	default y
 	depends on PCI || EISA || AR7 || ARCH_DAVINCI || ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/toshiba/Kconfig b/drivers/net/ethernet/toshiba/Kconfig
index 701e9b7c1c3b..710eab65312b 100644
--- a/drivers/net/ethernet/toshiba/Kconfig
+++ b/drivers/net/ethernet/toshiba/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_TOSHIBA
 	bool "Toshiba devices"
-	default y
 	depends on PCI && (PPC_IBM_CELL_BLADE || MIPS) || PPC_PS3
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/tundra/Kconfig b/drivers/net/ethernet/tundra/Kconfig
index edd52b2bd135..f0f5598610ff 100644
--- a/drivers/net/ethernet/tundra/Kconfig
+++ b/drivers/net/ethernet/tundra/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_TUNDRA
 	bool "Tundra devices"
-	default y
 	depends on TSI108_BRIDGE
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/vertexcom/Kconfig b/drivers/net/ethernet/vertexcom/Kconfig
index 4184a635fe01..f0a2c2a68059 100644
--- a/drivers/net/ethernet/vertexcom/Kconfig
+++ b/drivers/net/ethernet/vertexcom/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_VERTEXCOM
 	bool "Vertexcom devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/via/Kconfig b/drivers/net/ethernet/via/Kconfig
index da287ef65be7..7021eac0403b 100644
--- a/drivers/net/ethernet/via/Kconfig
+++ b/drivers/net/ethernet/via/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_VIA
 	bool "VIA devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/wiznet/Kconfig b/drivers/net/ethernet/wiznet/Kconfig
index 4bac2ad2d6a1..1f4749bde571 100644
--- a/drivers/net/ethernet/wiznet/Kconfig
+++ b/drivers/net/ethernet/wiznet/Kconfig
@@ -6,7 +6,6 @@ 
 config NET_VENDOR_WIZNET
 	bool "WIZnet devices"
 	depends on HAS_IOMEM
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/xilinx/Kconfig b/drivers/net/ethernet/xilinx/Kconfig
index 911b5ef9e680..85b18c7b3fac 100644
--- a/drivers/net/ethernet/xilinx/Kconfig
+++ b/drivers/net/ethernet/xilinx/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_XILINX
 	bool "Xilinx devices"
-	default y
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
 
diff --git a/drivers/net/ethernet/xircom/Kconfig b/drivers/net/ethernet/xircom/Kconfig
index 7497b9bea511..985b23591f44 100644
--- a/drivers/net/ethernet/xircom/Kconfig
+++ b/drivers/net/ethernet/xircom/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_XIRCOM
 	bool "Xircom devices"
-	default y
 	depends on PCMCIA
 	help
 	  If you have a network (Ethernet) card belonging to this class, say Y.
diff --git a/drivers/net/ethernet/xscale/Kconfig b/drivers/net/ethernet/xscale/Kconfig
index 0e878fa6e322..bfe23ceaacad 100644
--- a/drivers/net/ethernet/xscale/Kconfig
+++ b/drivers/net/ethernet/xscale/Kconfig
@@ -5,7 +5,6 @@ 
 
 config NET_VENDOR_XSCALE
 	bool "Intel XScale IXP devices"
-	default y
 	depends on NET_VENDOR_INTEL && (ARM && ARCH_IXP4XX && \
 		   IXP4XX_NPE && IXP4XX_QMGR)
 	help