aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
authorMichał Mirosław <mirq-linux@rere.qmqm.pl>2011-05-16 15:14:21 -0400
committerDavid S. Miller <davem@davemloft.net>2011-05-16 15:14:21 -0400
commit6f404e441d169afc90929ef5e451ec9779c1f11a (patch)
treed8ad18c3501f8fdbfc01a6470ddd765711ee1760 /net/core/dev.c
parentebde6f8acba92abfc203585198a54f47e83e2cd0 (diff)
net: Change netdev_fix_features messages loglevel
Those reduced to DEBUG can possibly be triggered by unprivileged processes and are nothing exceptional. Illegal checksum combinations can only be caused by driver bug, so promote those messages to WARN. Since GSO without SG will now only cause DEBUG message from netdev_fix_features(), remove the workaround from register_netdevice(). Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 92009440d28..b624fe4d9bd 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -5186,27 +5186,27 @@ u32 netdev_fix_features(struct net_device *dev, u32 features)
5186 /* Fix illegal checksum combinations */ 5186 /* Fix illegal checksum combinations */
5187 if ((features & NETIF_F_HW_CSUM) && 5187 if ((features & NETIF_F_HW_CSUM) &&
5188 (features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) { 5188 (features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) {
5189 netdev_info(dev, "mixed HW and IP checksum settings.\n"); 5189 netdev_warn(dev, "mixed HW and IP checksum settings.\n");
5190 features &= ~(NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM); 5190 features &= ~(NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM);
5191 } 5191 }
5192 5192
5193 if ((features & NETIF_F_NO_CSUM) && 5193 if ((features & NETIF_F_NO_CSUM) &&
5194 (features & (NETIF_F_HW_CSUM|NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) { 5194 (features & (NETIF_F_HW_CSUM|NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) {
5195 netdev_info(dev, "mixed no checksumming and other settings.\n"); 5195 netdev_warn(dev, "mixed no checksumming and other settings.\n");
5196 features &= ~(NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM|NETIF_F_HW_CSUM); 5196 features &= ~(NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM|NETIF_F_HW_CSUM);
5197 } 5197 }
5198 5198
5199 /* Fix illegal SG+CSUM combinations. */ 5199 /* Fix illegal SG+CSUM combinations. */
5200 if ((features & NETIF_F_SG) && 5200 if ((features & NETIF_F_SG) &&
5201 !(features & NETIF_F_ALL_CSUM)) { 5201 !(features & NETIF_F_ALL_CSUM)) {
5202 netdev_info(dev, 5202 netdev_dbg(dev,
5203 "Dropping NETIF_F_SG since no checksum feature.\n"); 5203 "Dropping NETIF_F_SG since no checksum feature.\n");
5204 features &= ~NETIF_F_SG; 5204 features &= ~NETIF_F_SG;
5205 } 5205 }
5206 5206
5207 /* TSO requires that SG is present as well. */ 5207 /* TSO requires that SG is present as well. */
5208 if ((features & NETIF_F_ALL_TSO) && !(features & NETIF_F_SG)) { 5208 if ((features & NETIF_F_ALL_TSO) && !(features & NETIF_F_SG)) {
5209 netdev_info(dev, "Dropping TSO features since no SG feature.\n"); 5209 netdev_dbg(dev, "Dropping TSO features since no SG feature.\n");
5210 features &= ~NETIF_F_ALL_TSO; 5210 features &= ~NETIF_F_ALL_TSO;
5211 } 5211 }
5212 5212
@@ -5216,7 +5216,7 @@ u32 netdev_fix_features(struct net_device *dev, u32 features)
5216 5216
5217 /* Software GSO depends on SG. */ 5217 /* Software GSO depends on SG. */
5218 if ((features & NETIF_F_GSO) && !(features & NETIF_F_SG)) { 5218 if ((features & NETIF_F_GSO) && !(features & NETIF_F_SG)) {
5219 netdev_info(dev, "Dropping NETIF_F_GSO since no SG feature.\n"); 5219 netdev_dbg(dev, "Dropping NETIF_F_GSO since no SG feature.\n");
5220 features &= ~NETIF_F_GSO; 5220 features &= ~NETIF_F_GSO;
5221 } 5221 }
5222 5222
@@ -5226,13 +5226,13 @@ u32 netdev_fix_features(struct net_device *dev, u32 features)
5226 if (!((features & NETIF_F_GEN_CSUM) || 5226 if (!((features & NETIF_F_GEN_CSUM) ||
5227 (features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM)) 5227 (features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))
5228 == (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) { 5228 == (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) {
5229 netdev_info(dev, 5229 netdev_dbg(dev,
5230 "Dropping NETIF_F_UFO since no checksum offload features.\n"); 5230 "Dropping NETIF_F_UFO since no checksum offload features.\n");
5231 features &= ~NETIF_F_UFO; 5231 features &= ~NETIF_F_UFO;
5232 } 5232 }
5233 5233
5234 if (!(features & NETIF_F_SG)) { 5234 if (!(features & NETIF_F_SG)) {
5235 netdev_info(dev, 5235 netdev_dbg(dev,
5236 "Dropping NETIF_F_UFO since no NETIF_F_SG feature.\n"); 5236 "Dropping NETIF_F_UFO since no NETIF_F_SG feature.\n");
5237 features &= ~NETIF_F_UFO; 5237 features &= ~NETIF_F_UFO;
5238 } 5238 }
@@ -5414,12 +5414,6 @@ int register_netdevice(struct net_device *dev)
5414 dev->features |= NETIF_F_SOFT_FEATURES; 5414 dev->features |= NETIF_F_SOFT_FEATURES;
5415 dev->wanted_features = dev->features & dev->hw_features; 5415 dev->wanted_features = dev->features & dev->hw_features;
5416 5416
5417 /* Avoid warning from netdev_fix_features() for GSO without SG */
5418 if (!(dev->wanted_features & NETIF_F_SG)) {
5419 dev->wanted_features &= ~NETIF_F_GSO;
5420 dev->features &= ~NETIF_F_GSO;
5421 }
5422
5423 /* Enable GRO and NETIF_F_HIGHDMA for vlans by default, 5417 /* Enable GRO and NETIF_F_HIGHDMA for vlans by default,
5424 * vlan_dev_init() will do the dev->features check, so these features 5418 * vlan_dev_init() will do the dev->features check, so these features
5425 * are enabled only if supported by underlying device. 5419 * are enabled only if supported by underlying device.