[ 3.5.y.z extended stable ] Patch "ks8851: Fix interpretation of rxlen field." has been added to staging queue

Luis Henriques luis.henriques at canonical.com
Thu Apr 4 13:25:40 UTC 2013

This is a note to let you know that I have just added a patch titled

    ks8851: Fix interpretation of rxlen field.

to the linux-3.5.y-queue branch of the 3.5.y.z extended stable tree 
which can be found at:


If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.y.z tree, see



>From 4d02b3741de7f2ea1e5d45601a293dc57f1a463f Mon Sep 17 00:00:00 2001
From: "Max.Nekludov at us.elster.com" <Max.Nekludov at us.elster.com>
Date: Fri, 29 Mar 2013 05:27:36 +0000
Subject: [PATCH] ks8851: Fix interpretation of rxlen field.

commit 14bc435ea54cb888409efb54fc6b76c13ef530e9 upstream.

According to the Datasheet (page 52):
15-12 Reserved
11-0 RXBC Receive Byte Count
This field indicates the present received frame byte size.

The code has a bug:
                 rxh = ks8851_rdreg32(ks, KS_RXFHSR);
                 rxstat = rxh & 0xffff;
                 rxlen = rxh >> 16; // BUG!!! 0xFFF mask should be applied

Signed-off-by: Max Nekludov <Max.Nekludov at us.elster.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
 drivers/net/ethernet/micrel/ks8851.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c
index 5e313e9..2a417c3 100644
--- a/drivers/net/ethernet/micrel/ks8851.c
+++ b/drivers/net/ethernet/micrel/ks8851.c
@@ -547,7 +547,7 @@ static void ks8851_rx_pkts(struct ks8851_net *ks)
 	for (; rxfc != 0; rxfc--) {
 		rxh = ks8851_rdreg32(ks, KS_RXFHSR);
 		rxstat = rxh & 0xffff;
-		rxlen = rxh >> 16;
+		rxlen = (rxh >> 16) & 0xfff;

 		netif_dbg(ks, rx_status, ks->netdev,
 			  "rx: stat 0x%04x, len 0x%04x\n", rxstat, rxlen);

More information about the kernel-team mailing list