From: Steve Glendinning Date: Thu, 19 Feb 2015 18:47:12 +0000 (+0000) Subject: smsx95xx: fix crimes against truesize X-Git-Tag: accepted/tizen/unified/20210330.111217~855 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cc3f8952866fe6df6f878b743193a6a982f2877e;p=platform%2Fkernel%2Flinux-rpi.git smsx95xx: fix crimes against truesize smsc95xx is adjusting truesize when it shouldn't, and following a recent patch from Eric this is now triggering warnings. This patch stops smsc95xx from changing truesize. Signed-off-by: Steve Glendinning --- diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index ea0d5f04..a7591cec 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -67,6 +67,10 @@ static bool turbo_mode = true; module_param(turbo_mode, bool, 0644); MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction"); +static bool truesize_mode = false; +module_param(truesize_mode, bool, 0644); +MODULE_PARM_DESC(truesize_mode, "Report larger truesize value"); + static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { @@ -1827,7 +1831,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(skb); skb_trim(skb, skb->len - 4); /* remove fcs */ - skb->truesize = size + sizeof(struct sk_buff); + if (truesize_mode) + skb->truesize = size + sizeof(struct sk_buff); return 1; } @@ -1845,7 +1850,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) if (dev->net->features & NETIF_F_RXCSUM) smsc95xx_rx_csum_offload(ax_skb); skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */ - ax_skb->truesize = size + sizeof(struct sk_buff); + if (truesize_mode) + ax_skb->truesize = size + sizeof(struct sk_buff); usbnet_skb_return(dev, ax_skb); }