[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>
This commit is contained in:
@@ -1438,13 +1438,18 @@ static void olympic_arb_cmd(struct net_device *dev)
|
||||
|
||||
if (olympic_priv->olympic_network_monitor) {
|
||||
struct trh_hdr *mac_hdr;
|
||||
DECLARE_MAC_BUF(mac);
|
||||
printk(KERN_WARNING "%s: Received MAC Frame, details: \n",dev->name);
|
||||
mac_hdr = tr_hdr(mac_frame);
|
||||
printk(KERN_WARNING "%s: MAC Frame Dest. Addr: %s\n",
|
||||
dev->name, print_mac(mac, mac_hdr->daddr));
|
||||
printk(KERN_WARNING "%s: MAC Frame Srce. Addr: %s\n",
|
||||
dev->name, print_mac(mac, mac_hdr->saddr));
|
||||
printk(KERN_WARNING "%s: MAC Frame Dest. Addr: "
|
||||
MAC_FMT " \n", dev->name,
|
||||
mac_hdr->daddr[0], mac_hdr->daddr[1],
|
||||
mac_hdr->daddr[2], mac_hdr->daddr[3],
|
||||
mac_hdr->daddr[4], mac_hdr->daddr[5]);
|
||||
printk(KERN_WARNING "%s: MAC Frame Srce. Addr: "
|
||||
MAC_FMT " \n", dev->name,
|
||||
mac_hdr->saddr[0], mac_hdr->saddr[1],
|
||||
mac_hdr->saddr[2], mac_hdr->saddr[3],
|
||||
mac_hdr->saddr[4], mac_hdr->saddr[5]);
|
||||
}
|
||||
netif_rx(mac_frame);
|
||||
dev->last_rx = jiffies;
|
||||
|
Reference in New Issue
Block a user