From: Michael Brown Date: Thu, 25 Jun 2015 16:30:12 +0000 (+0100) Subject: [stp] Fix interpretaton of hello time X-Git-Tag: v1.20.1~799 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=94dbfb43746445e91e775c498db89392313934c7;p=thirdparty%2Fipxe.git [stp] Fix interpretaton of hello time Times in STP packets are expressed in units of 1/256 of a second. Signed-off-by: Michael Brown --- diff --git a/src/net/stp.c b/src/net/stp.c index cafb6b8ee..d4e65a1a2 100644 --- a/src/net/stp.c +++ b/src/net/stp.c @@ -65,7 +65,7 @@ static int stp_rx ( struct io_buffer *iobuf, struct net_device *netdev, const void *ll_source __unused, unsigned int flags __unused ) { struct stp_bpdu *stp; - unsigned int timeout; + unsigned int hello; int rc; /* Sanity check */ @@ -110,8 +110,8 @@ static int stp_rx ( struct io_buffer *iobuf, struct net_device *netdev, "forwarding\n", netdev->name, eth_ntoa ( stp->sender.mac ), ntohs ( stp->port ), stp->flags ); - timeout = ( ntohs ( stp->hello ) * TICKS_PER_SEC * 2 ); - netdev_link_block ( netdev, timeout ); + hello = ( ( ntohs ( stp->hello ) * TICKS_PER_SEC ) / 256 ); + netdev_link_block ( netdev, ( hello * 2 ) ); rc = -ENETUNREACH; goto done; }