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
| ||
|
Date: Sun, 20 Sep 2015 21:36:30 -0700 (PDT) From: David Miller <davem@...emloft.net> To: rmk+kernel@....linux.org.uk Cc: andrew@...n.ch, netdev@...r.kernel.org Subject: Re: [PATCH] net: dsa: actually force the speed on the CPU port From: Russell King <rmk+kernel@....linux.org.uk> Date: Mon, 14 Sep 2015 13:09:04 +0100 > Commit 54d792f257c6 ("net: dsa: Centralise global and port setup > code into mv88e6xxx.") merged in the 4.2 merge window broke the link > speed forcing for the CPU port of Marvell DSA switches. The original > code was: > > /* MAC Forcing register: don't force link, speed, duplex > * or flow control state to any particular values on physical > * ports, but force the CPU port and all DSA ports to 1000 Mb/s > * full duplex. > */ > if (dsa_is_cpu_port(ds, p) || ds->dsa_port_mask & (1 << p)) > REG_WRITE(addr, 0x01, 0x003e); > else > REG_WRITE(addr, 0x01, 0x0003); > > but the new code does a read-modify-write: > > reg = _mv88e6xxx_reg_read(ds, REG_PORT(port), PORT_PCS_CTRL); > if (dsa_is_cpu_port(ds, port) || > ds->dsa_port_mask & (1 << port)) { > reg |= PORT_PCS_CTRL_FORCE_LINK | > PORT_PCS_CTRL_LINK_UP | > PORT_PCS_CTRL_DUPLEX_FULL | > PORT_PCS_CTRL_FORCE_DUPLEX; > if (mv88e6xxx_6065_family(ds)) > reg |= PORT_PCS_CTRL_100; > else > reg |= PORT_PCS_CTRL_1000; > > The link speed in the PCS control register is a two bit field. Forcing > the link speed in this way doesn't ensure that the bit field is set to > the correct value - on the hardware I have here, the speed bitfield > remains set to 0x03, resulting in the speed not being forced to gigabit. > > We must clear both bits before forcing the link speed. > > Fixes: 54d792f257c6 ("net: dsa: Centralise global and port setup code into mv88e6xxx.") > Signed-off-by: Russell King <rmk+kernel@....linux.org.uk> This code looks really different now in the current tree, can you please respin? Thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists