From 51dde547ae2294112ed529a43779369306250eda Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Thu, 15 Jan 2009 15:29:35 -0800 Subject: [PATCH] --- yaml --- r: 129807 b: refs/heads/master c: a58c891a53aca81c78f9cbe0572a301042470e96 h: refs/heads/master i: 129805: e9ecaf91cab842a0684159da964d975d89f33be6 129803: 75b5d8076c70762c0f244711386dadf5e64fca10 129799: b64147a6e09e87fa106e7eedab4d5c6463c4d7c3 129791: bb48d71eab41f3c4e4c59c44aaf7f774bdcf0e57 v: v3 --- [refs] | 2 +- trunk/drivers/net/b44.c | 4 +++- trunk/drivers/net/b44.h | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index fcfe2a177087..54676ff67a87 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1c5625cf0f121486abad4da0e0251ec67765aa95 +refs/heads/master: a58c891a53aca81c78f9cbe0572a301042470e96 diff --git a/trunk/drivers/net/b44.c b/trunk/drivers/net/b44.c index 5ae131c147f9..c38512ebcea6 100644 --- a/trunk/drivers/net/b44.c +++ b/trunk/drivers/net/b44.c @@ -679,6 +679,7 @@ static int b44_alloc_rx_skb(struct b44 *bp, int src_idx, u32 dest_idx_unmasked) dev_kfree_skb_any(skb); return -ENOMEM; } + bp->force_copybreak = 1; } rh = (struct rx_header *) skb->data; @@ -800,7 +801,7 @@ static int b44_rx(struct b44 *bp, int budget) /* Omit CRC. */ len -= 4; - if (len > RX_COPY_THRESHOLD) { + if (!bp->force_copybreak && len > RX_COPY_THRESHOLD) { int skb_size; skb_size = b44_alloc_rx_skb(bp, cons, bp->rx_prod); if (skb_size < 0) @@ -2152,6 +2153,7 @@ static int __devinit b44_init_one(struct ssb_device *sdev, bp = netdev_priv(dev); bp->sdev = sdev; bp->dev = dev; + bp->force_copybreak = 0; bp->msg_enable = netif_msg_init(b44_debug, B44_DEF_MSG_ENABLE); diff --git a/trunk/drivers/net/b44.h b/trunk/drivers/net/b44.h index 7db0c84a7950..e678498de6db 100644 --- a/trunk/drivers/net/b44.h +++ b/trunk/drivers/net/b44.h @@ -395,7 +395,7 @@ struct b44 { u32 rx_pending; u32 tx_pending; u8 phy_addr; - + u8 force_copybreak; struct mii_if_info mii_if; };