Subject: Re: [PATCH] ixgb: Delete IXGB_DBG() macro and call pr_debug() directly.

From: Auke Kok <[email-masked]>
Date: Tue, 10 Oct 2006 11:18:36 -0700

Robert P. J. Day wrote:
> On Tue, 10 Oct 2006, Auke Kok wrote:
> 
>> Robert P. J. Day wrote:
> 
> ... snip ...
> 
>>>   if someone wants to tell me what, in the context of ixgb_main.c,
>>> i would use as that "dev" argument [for dev_dbg], i'm all for
>>> that.
>> (CC netdev since it's a network driver topic).
>>
>> all our macro's (e100, e1000, ixgb) use adapter->netdev->name
>> inserted through the DPRINTK macro.
>>
>> if you'd really want to clean it all up, you'd have to replace all
>> DPRINTK() calls with dev_dbg(adapter->netdev->name, ....) which
>> would just make it more lengthy and uncomfortable to read.
>>
>> which puts this in a bigger perspective. I suppose the nicest way to do
>> program these is to do something like this:
>>
>> #define ixgb_dbg(args...) dev_dbg(adapter->netdev->name, args)
>> #define ixgb_err(args...) dev_err(adapter->netdev->name, args)
>> #define ixgb_info(args...) dev_info(adapter->netdev->name, args)
>>
>> and use those consistently throughout the driver, ditto for e100/e1000.
>>
>> I'll look into it and see what I can do.
> 
> um, yeah.  i'm rapidly getting out of my comfort zone here.  this
> seemed like such a simple submission six hours ago.  :-)  live and
> learn.

digging into it much deeper, dev_dbg seems horribly unsuited for our needs as it prints 
the pci bus address and al. That's a lot of information when we really only care about 
'eth0: ' perhaps with 'ixgb: ' prepended to it.

You end up with pretty much the same code that was there before - unless we make 
something common for netdevices and use that instead:

#define netdev_dbg(netdev, args...) pr_debug(netdev->name, args)

and then use this stacked in the driver:

#define ixgb_dbg(args...) netdev_dbg(adapter->netdev, args)

that would seem clean and appropriate, and since this bit of infrastructure is missing 
from netdevice.h, explains the current situation in all netdrivers (chaos).

of course, I'm completely not taking netif_msg_level into account yet here, which 
probably makes it a bit more hairy.

Auke