|
@@ -9968,12 +9968,14 @@ static int bnx2x_set_flags(struct net_device *dev, u32 data)
|
|
|
|
|
|
/* TPA requires Rx CSUM offloading */
|
|
|
if ((data & ETH_FLAG_LRO) && bp->rx_csum) {
|
|
|
- if (!(dev->features & NETIF_F_LRO)) {
|
|
|
- dev->features |= NETIF_F_LRO;
|
|
|
- bp->flags |= TPA_ENABLE_FLAG;
|
|
|
- changed = 1;
|
|
|
- }
|
|
|
-
|
|
|
+ if (!disable_tpa) {
|
|
|
+ if (!(dev->features & NETIF_F_LRO)) {
|
|
|
+ dev->features |= NETIF_F_LRO;
|
|
|
+ bp->flags |= TPA_ENABLE_FLAG;
|
|
|
+ changed = 1;
|
|
|
+ }
|
|
|
+ } else
|
|
|
+ rc = -EINVAL;
|
|
|
} else if (dev->features & NETIF_F_LRO) {
|
|
|
dev->features &= ~NETIF_F_LRO;
|
|
|
bp->flags &= ~TPA_ENABLE_FLAG;
|