ethtool: provide message mask with DEBUG_GET request
Implement DEBUG_GET request to get debugging settings for a device. At the moment, only message mask corresponding to message level as reported by ETHTOOL_GMSGLVL ioctl request is provided. (It is called message level in ioctl interface but almost all drivers interpret it as a bit mask.) As part of the implementation, provide symbolic names for message mask bits as ETH_SS_MSG_CLASSES string set. Signed-off-by: Michal Kubecek <mkubecek@suse.cz> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
d2c4b444fd
commit
6a94b8ccf6
@@ -3913,22 +3913,48 @@ void netif_device_attach(struct net_device *dev);
|
||||
*/
|
||||
|
||||
enum {
|
||||
NETIF_MSG_DRV = 0x0001,
|
||||
NETIF_MSG_PROBE = 0x0002,
|
||||
NETIF_MSG_LINK = 0x0004,
|
||||
NETIF_MSG_TIMER = 0x0008,
|
||||
NETIF_MSG_IFDOWN = 0x0010,
|
||||
NETIF_MSG_IFUP = 0x0020,
|
||||
NETIF_MSG_RX_ERR = 0x0040,
|
||||
NETIF_MSG_TX_ERR = 0x0080,
|
||||
NETIF_MSG_TX_QUEUED = 0x0100,
|
||||
NETIF_MSG_INTR = 0x0200,
|
||||
NETIF_MSG_TX_DONE = 0x0400,
|
||||
NETIF_MSG_RX_STATUS = 0x0800,
|
||||
NETIF_MSG_PKTDATA = 0x1000,
|
||||
NETIF_MSG_HW = 0x2000,
|
||||
NETIF_MSG_WOL = 0x4000,
|
||||
NETIF_MSG_DRV_BIT,
|
||||
NETIF_MSG_PROBE_BIT,
|
||||
NETIF_MSG_LINK_BIT,
|
||||
NETIF_MSG_TIMER_BIT,
|
||||
NETIF_MSG_IFDOWN_BIT,
|
||||
NETIF_MSG_IFUP_BIT,
|
||||
NETIF_MSG_RX_ERR_BIT,
|
||||
NETIF_MSG_TX_ERR_BIT,
|
||||
NETIF_MSG_TX_QUEUED_BIT,
|
||||
NETIF_MSG_INTR_BIT,
|
||||
NETIF_MSG_TX_DONE_BIT,
|
||||
NETIF_MSG_RX_STATUS_BIT,
|
||||
NETIF_MSG_PKTDATA_BIT,
|
||||
NETIF_MSG_HW_BIT,
|
||||
NETIF_MSG_WOL_BIT,
|
||||
|
||||
/* When you add a new bit above, update netif_msg_class_names array
|
||||
* in net/ethtool/common.c
|
||||
*/
|
||||
NETIF_MSG_CLASS_COUNT,
|
||||
};
|
||||
/* Both ethtool_ops interface and internal driver implementation use u32 */
|
||||
static_assert(NETIF_MSG_CLASS_COUNT <= 32);
|
||||
|
||||
#define __NETIF_MSG_BIT(bit) ((u32)1 << (bit))
|
||||
#define __NETIF_MSG(name) __NETIF_MSG_BIT(NETIF_MSG_ ## name ## _BIT)
|
||||
|
||||
#define NETIF_MSG_DRV __NETIF_MSG(DRV)
|
||||
#define NETIF_MSG_PROBE __NETIF_MSG(PROBE)
|
||||
#define NETIF_MSG_LINK __NETIF_MSG(LINK)
|
||||
#define NETIF_MSG_TIMER __NETIF_MSG(TIMER)
|
||||
#define NETIF_MSG_IFDOWN __NETIF_MSG(IFDOWN)
|
||||
#define NETIF_MSG_IFUP __NETIF_MSG(IFUP)
|
||||
#define NETIF_MSG_RX_ERR __NETIF_MSG(RX_ERR)
|
||||
#define NETIF_MSG_TX_ERR __NETIF_MSG(TX_ERR)
|
||||
#define NETIF_MSG_TX_QUEUED __NETIF_MSG(TX_QUEUED)
|
||||
#define NETIF_MSG_INTR __NETIF_MSG(INTR)
|
||||
#define NETIF_MSG_TX_DONE __NETIF_MSG(TX_DONE)
|
||||
#define NETIF_MSG_RX_STATUS __NETIF_MSG(RX_STATUS)
|
||||
#define NETIF_MSG_PKTDATA __NETIF_MSG(PKTDATA)
|
||||
#define NETIF_MSG_HW __NETIF_MSG(HW)
|
||||
#define NETIF_MSG_WOL __NETIF_MSG(WOL)
|
||||
|
||||
#define netif_msg_drv(p) ((p)->msg_enable & NETIF_MSG_DRV)
|
||||
#define netif_msg_probe(p) ((p)->msg_enable & NETIF_MSG_PROBE)
|
||||
|
Reference in New Issue
Block a user