lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <fcf7b3f2-eaf3-4da6-ab9a-a83acc9692b0@bootlin.com>
Date: Fri, 16 Jan 2026 15:16:27 +0100
From: Maxime Chevallier <maxime.chevallier@...tlin.com>
To: Andrew Lunn <andrew@...n.ch>, Jonas Jelonek <jelonek.jonas@...il.com>
Cc: Russell King <linux@...linux.org.uk>,
 Heiner Kallweit <hkallweit1@...il.com>,
 "David S . Miller" <davem@...emloft.net>, Eric Dumazet
 <edumazet@...gle.com>, Jakub Kicinski <kuba@...nel.org>,
 Paolo Abeni <pabeni@...hat.com>, netdev@...r.kernel.org,
 linux-kernel@...r.kernel.org, Bjørn Mork <bjorn@...k.no>
Subject: Re: [PATCH net-next v5] net: sfp: extend SMBus support



On 16/01/2026 15:07, Andrew Lunn wrote:
> On Fri, Jan 16, 2026 at 02:43:47PM +0100, Jonas Jelonek wrote:
>> Hi,
>>
>> On 16.01.26 14:23, Maxime Chevallier wrote:
>>> I think Russell pointed it out, but I was also wondering the same.
>>> How do we deal with controllers that cannot do neither block nor
>>> single-byte, i.e. that can only do word access ?
>>>
>>> We can't do transfers that have an odd length. And there are some,
>>> see sfp_cotsworks_fixup_check() for example.
>>>
>>> Maybe these smbus controller don't even exist, but I think we should
>>> anyway have some log saying that this doesn't work, either at SFP
>>> access time, or at init time.
>>
>> I tried to guard that in the sfp_i2c_configure() right now. The whole path
>> to allow SMBus transfers is only allowed if there's at least byte access. For
>> exactly the reason that we need byte access in case of odd lengths.
> 
> Is there a use case for odd lengths? Apart from 1.

There's sfp_cotsworks_fixup_check() that does a 3-byte access :
	
	id->base.phys_id = SFF8024_ID_SFF_8472;
	id->base.phys_ext_id = SFP_PHYS_EXT_ID_SFP;
	id->base.connector = SFF8024_CONNECTOR_LC;
	sfp_write(sfp, false, SFP_PHYS_ID, &id->base, 3);

It may be possible to turn that into 2 2-byte accesses if we write

	id->base.phys_id = SFF8024_ID_SFF_8472;
	id->base.phys_ext_id = SFP_PHYS_EXT_ID_SFP;

and then

	id->base.phys_ext_id = SFP_PHYS_EXT_ID_SFP;
	id->base.connector = SFF8024_CONNECTOR_LC;

But let's first figure-out if word-only smbus are really a thing

> 
>> This of course rules out any controllers which just can do word access.
> 
> There are some PHYs embedded within SFPs which kill the bus if you do
> anything but 1 byte access. There is a quirk for it. We should refuse
> to drive the SFP if we have such an SFP and an I2C bus that can only
> do words.

Heh true, same for the weird SGMII <-> 100FX from Prolabs

Maxime


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ