Re: [PATCH v2 net-next 01/14] qed: convert link mode from u32 to bitmap

From: Alexander Lobakin
Date: Mon Jul 20 2020 - 11:30:16 EST


Hi Joe,

From: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon, 20 Jul 2020 08:19:52 -0700

> On Mon, 2020-07-20 at 12:23 +0300, Alexander Lobakin wrote:
>> Date: Sun, 19 Jul 2020 23:21:00 +0200 From: Andrew Lunn <andrew@xxxxxxx>
>>> On Sun, Jul 19, 2020 at 11:14:40PM +0300, Alexander Lobakin wrote:
>>>> Currently qed driver already ran out of 32 bits to store link modes,
>>>> and this doesn't allow to add and support more speeds.
>>>> Convert link mode to bitmap that will always have enough space for
>>>> any number of speeds and modes.
> []
>>> Why not just throw away all these QED_LM_ defines and use the kernel
>>> link modes? The fact you are changing the u32 to a bitmap suggests the
>>> hardware does not use them.
>>
>> I've just double-checked, and you're right, management firmware operates
>> with NVM_* definitions, while QED_LM_* are used only in QED and QEDE to
>> fill Ethtool link settings.
>> I didn't notice this while working on the series, but it would be really
>> a lot better to just use generic definitions.
>> So I'll send v3 soon.
>
> While you're at it, why are you using __set_bit and not set_bit?

Because I'm filling link modes and don't need any atomicity at all.
If you refer linkmode_*() functions [1], they also use non-atomic
variants of bitops.

Al

[1] https://elixir.bootlin.com/linux/v5.8-rc4/source/include/linux/linkmode.h