From 06b61a00b4456d1a4dda38ecaaf318c619f389c4 Mon Sep 17 00:00:00 2001 From: Francois Romieu Date: Sat, 30 Jul 2005 13:13:03 +0200 Subject: [PATCH] --- yaml --- r: 6591 b: refs/heads/master c: 8b5641d4f1f7376257783b79f121a19ccd86b56b h: refs/heads/master i: 6589: d7002b74504de97f9ced7998fcd8b9f2a31c4bbf 6587: 2b049bccb112feea4e5904812f525b32c5c9bf62 6583: 78dae839897f48534e7234ebf1210c1303edb04f 6575: b7f9a04924446a0c7ad8a76795d30b75a9524747 6559: 01a9b50fc5479576a34260c9be9bb5c3f5a3a430 6527: 1141fec648e2025050a6db128c797e37b4609bb9 v: v3 --- [refs] | 2 +- trunk/drivers/net/sis190.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 48c7f1781a77..55374d431fb2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 830fb7d23217ae748df0b16d4d419110810036b7 +refs/heads/master: 8b5641d4f1f7376257783b79f121a19ccd86b56b diff --git a/trunk/drivers/net/sis190.c b/trunk/drivers/net/sis190.c index 1e8e7111c261..2229698debbd 100644 --- a/trunk/drivers/net/sis190.c +++ b/trunk/drivers/net/sis190.c @@ -69,6 +69,7 @@ #define TX_RING_BYTES (NUM_TX_DESC * sizeof(struct TxDesc)) #define RX_RING_BYTES (NUM_RX_DESC * sizeof(struct RxDesc)) #define RX_BUF_SIZE 1536 +#define RX_BUF_MASK 0xfff8 #define SIS190_REGS_SIZE 0x80 #define SIS190_TX_TIMEOUT (6*HZ) @@ -400,7 +401,7 @@ static inline void sis190_give_to_asic(struct RxDesc *desc, u32 rx_buf_sz) u32 eor = le32_to_cpu(desc->size) & RingEnd; desc->PSize = 0x0; - desc->size = cpu_to_le32(rx_buf_sz | eor); + desc->size = cpu_to_le32((rx_buf_sz & RX_BUF_MASK) | eor); wmb(); desc->status = cpu_to_le32(OWNbit | INTbit); } @@ -924,6 +925,11 @@ static void sis190_set_rxbufsize(struct sis190_private *tp, unsigned int mtu = dev->mtu; tp->rx_buf_sz = (mtu > RX_BUF_SIZE) ? mtu + ETH_HLEN + 8 : RX_BUF_SIZE; + /* RxDesc->size has a licence to kill the lower bits */ + if (tp->rx_buf_sz & 0x07) { + tp->rx_buf_sz += 8; + tp->rx_buf_sz &= RX_BUF_MASK; + } } static int sis190_open(struct net_device *dev)