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]
Date:   Wed, 28 Mar 2018 03:33:57 -0700
From:   Joe Perches <joe@...ches.com>
To:     Russell King <rmk+kernel@...linux.org.uk>,
        Andrew Lunn <andrew@...n.ch>,
        Florian Fainelli <f.fainelli@...il.com>
Cc:     netdev@...r.kernel.org
Subject: Re: [PATCH] sfp: allow cotsworks modules

On Wed, 2018-03-28 at 11:18 +0100, Russell King wrote:
> Cotsworks modules fail the checksums - it appears that Cotsworks
> reprograms the EEPROM at the end of production with the final product
> information (serial, date code, and exact part number for module
> options) and fails to update the checksum.

trivia:

> diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c
[]
> @@ -574,23 +575,43 @@ static int sfp_sm_mod_probe(struct sfp *sfp)
[]
> +		if (cotsworks) {
> +			dev_warn(sfp->dev,
> +				 "EEPROM base structure checksum failure (0x%02x != 0x%02x)\n",
> +				 check, id.base.cc_base);
> +		} else {
> +			dev_err(sfp->dev,
> +				"EEPROM base structure checksum failure: 0x%02x != 0x%02x\n",

It'd be better to move this above the if and
use only a single format string instead of
using 2 slightly different formats.

> +				check, id.base.cc_base);
> +			print_hex_dump(KERN_ERR, "sfp EE: ", DUMP_PREFIX_OFFSET,
> +				       16, 1, &id, sizeof(id), true);
> +			return -EINVAL;
> +		}
>  	}
>  
>  	check = sfp_check(&id.ext, sizeof(id.ext) - 1);
>  	if (check != id.ext.cc_ext) {
> -		dev_err(sfp->dev,
> -			"EEPROM extended structure checksum failure: 0x%02x\n",
> -			check);
> -		memset(&id.ext, 0, sizeof(id.ext));
> +		if (cotsworks) {
> +			dev_warn(sfp->dev,
> +				 "EEPROM extended structure checksum failure (0x%02x != 0x%02x)\n",
> +				 check, id.ext.cc_ext);
> +		} else {
> +			dev_err(sfp->dev,
> +				"EEPROM extended structure checksum failure: 0x%02x != 0x%02x\n",
> +				check, id.ext.cc_ext);


here too

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ