diff options
author | David S. Miller <davem@davemloft.net> | 2008-04-08 19:50:44 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-08 19:50:44 -0400 |
commit | 21f644f3eabde637f255f75ad05d0821a7a36b7f (patch) | |
tree | 2dc70aade59bf77c2d156b8e2544906128368f87 /drivers/net/virtio_net.c | |
parent | 6adb4f733e9996b4fd68a6db50dd51bd2463ccac (diff) |
[NET]: Undo code bloat in hot paths due to print_mac().
If print_mac() is used inside of a pr_debug() the compiler
can't see that the call is redundant so still performs it
even of pr_debug() ends up being a nop.
So don't use print_mac() in such cases in hot code paths,
use MAC_FMT et al. instead.
As noted by Joe Perches, pr_debug() could be modified to
handle this better, but that is a change to an interface
used by the entire kernel and thus needs to be validated
carefully. This here is thus the less risky fix for
2.6.25
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/virtio_net.c')
-rw-r--r-- | drivers/net/virtio_net.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index b58472cf76f..d02d9d75fe1 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c | |||
@@ -234,11 +234,12 @@ static int start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
234 | struct scatterlist sg[1+MAX_SKB_FRAGS]; | 234 | struct scatterlist sg[1+MAX_SKB_FRAGS]; |
235 | struct virtio_net_hdr *hdr; | 235 | struct virtio_net_hdr *hdr; |
236 | const unsigned char *dest = ((struct ethhdr *)skb->data)->h_dest; | 236 | const unsigned char *dest = ((struct ethhdr *)skb->data)->h_dest; |
237 | DECLARE_MAC_BUF(mac); | ||
238 | 237 | ||
239 | sg_init_table(sg, 1+MAX_SKB_FRAGS); | 238 | sg_init_table(sg, 1+MAX_SKB_FRAGS); |
240 | 239 | ||
241 | pr_debug("%s: xmit %p %s\n", dev->name, skb, print_mac(mac, dest)); | 240 | pr_debug("%s: xmit %p " MAC_FMT "\n", dev->name, skb, |
241 | dest[0], dest[1], dest[2], | ||
242 | dest[3], dest[4], dest[5]); | ||
242 | 243 | ||
243 | /* Encode metadata header at front. */ | 244 | /* Encode metadata header at front. */ |
244 | hdr = skb_vnet_hdr(skb); | 245 | hdr = skb_vnet_hdr(skb); |