@@ -75,6 +75,10 @@ static bool turbo_mode = false;
75
75
module_param (turbo_mode , bool , 0644 );
76
76
MODULE_PARM_DESC (turbo_mode , "Enable multiple frames per Rx transaction" );
77
77
78
+ static bool truesize_mode = false;
79
+ module_param (truesize_mode , bool , 0644 );
80
+ MODULE_PARM_DESC (truesize_mode , "Report larger truesize value" );
81
+
78
82
static char * macaddr = ":" ;
79
83
module_param (macaddr , charp , 0 );
80
84
MODULE_PARM_DESC (macaddr , "MAC address" );
@@ -1841,6 +1845,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
1841
1845
if (dev -> net -> features & NETIF_F_RXCSUM )
1842
1846
smsc95xx_rx_csum_offload (skb );
1843
1847
skb_trim (skb , skb -> len - 4 ); /* remove fcs */
1848
+ if (truesize_mode )
1849
+ skb -> truesize = size + sizeof (struct sk_buff );
1844
1850
1845
1851
return 1 ;
1846
1852
}
@@ -1858,6 +1864,8 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
1858
1864
if (dev -> net -> features & NETIF_F_RXCSUM )
1859
1865
smsc95xx_rx_csum_offload (ax_skb );
1860
1866
skb_trim (ax_skb , ax_skb -> len - 4 ); /* remove fcs */
1867
+ if (truesize_mode )
1868
+ ax_skb -> truesize = size + sizeof (struct sk_buff );
1861
1869
1862
1870
usbnet_skb_return (dev , ax_skb );
1863
1871
}
0 commit comments