Volker Sauer <[EMAIL PROTECTED]> :
[...]
> I'm neither a skilled C-programmer nor a kernel-expert, but looking at
> drivers/net/sundance.c:1605 I see, that SIOCDEVPRIVATE does
> nothing else then printing this debug message.

Yuck.

> So the questions is: why? What is this good for?
> And: can I remove it? I can not abandon snmpd and the messages spam my
> syslog.
> Or: do I have to patch snmpd?

Please try the attached patch.

[...]
> P.S.: there's no one in the MAINTAINERS file for sundance.c. Is someone
> here who still cares about this driver?

Please Cc: [EMAIL PROTECTED] on further replies, thanks.

-- 
Ueimor
>From 27ad88dda586b28327e2e1e95e3a46986d30e0c7 Mon Sep 17 00:00:00 2001
From: Francois Romieu <[EMAIL PROTECTED]>
Date: Wed, 24 Oct 2007 23:35:51 +0200
Subject: [PATCH] sundance: SIOCDEVPRIVATE pollution

To quote one of my favorite contemporary author:
[include/linux/sockios.h]
 *      THESE IOCTLS ARE _DEPRECATED_ AND WILL DISAPPEAR IN 2.5.X -DaveM
 */

#define SIOCDEVPRIVATE  0x89F0  /* to 89FF */

[...]

Gentoo's snmpd trips up over this code when trying to figure if the
driver supports the non-SIOCDEVPRIVATE API or not. One can argue over
its choice of heuristic but there no reason to make ioctl more ugly
than needed.

Signed-off-by: Francois Romieu <[EMAIL PROTECTED]>
Cc: Jesse Huang <[EMAIL PROTECTED]>
Tester-Cc: Volker Sauer <[EMAIL PROTECTED]>
---
 drivers/net/sundance.c |   26 --------------------------
 1 files changed, 0 insertions(+), 26 deletions(-)

diff --git a/drivers/net/sundance.c b/drivers/net/sundance.c
index ff98f5d..f12e727 100644
--- a/drivers/net/sundance.c
+++ b/drivers/net/sundance.c
@@ -1596,9 +1596,7 @@ static const struct ethtool_ops ethtool_ops = {
 static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
 {
        struct netdev_private *np = netdev_priv(dev);
-       void __iomem *ioaddr = np->base;
        int rc;
-       int i;
 
        if (!netif_running(dev))
                return -EINVAL;
@@ -1606,30 +1604,6 @@ static int netdev_ioctl(struct net_device *dev, struct 
ifreq *rq, int cmd)
        spin_lock_irq(&np->lock);
        rc = generic_mii_ioctl(&np->mii_if, if_mii(rq), cmd, NULL);
        spin_unlock_irq(&np->lock);
-       switch (cmd) {
-               case SIOCDEVPRIVATE:
-               for (i=0; i<TX_RING_SIZE; i++) {
-                       printk(KERN_DEBUG "%02x %08llx %08x %08x(%02x) %08x 
%08x\n", i,
-                               (unsigned long long)(np->tx_ring_dma + 
i*sizeof(*np->tx_ring)),
-                               le32_to_cpu(np->tx_ring[i].next_desc),
-                               le32_to_cpu(np->tx_ring[i].status),
-                               (le32_to_cpu(np->tx_ring[i].status) >> 2)
-                                       & 0xff,
-                               le32_to_cpu(np->tx_ring[i].frag[0].addr),
-                               le32_to_cpu(np->tx_ring[i].frag[0].length));
-               }
-               printk(KERN_DEBUG "TxListPtr=%08x netif_queue_stopped=%d\n",
-                       ioread32(np->base + TxListPtr),
-                       netif_queue_stopped(dev));
-               printk(KERN_DEBUG "cur_tx=%d(%02x) dirty_tx=%d(%02x)\n",
-                       np->cur_tx, np->cur_tx % TX_RING_SIZE,
-                       np->dirty_tx, np->dirty_tx % TX_RING_SIZE);
-               printk(KERN_DEBUG "cur_rx=%d dirty_rx=%d\n", np->cur_rx, 
np->dirty_rx);
-               printk(KERN_DEBUG "cur_task=%d\n", np->cur_task);
-               printk(KERN_DEBUG "TxStatus=%04x\n", ioread16(ioaddr + 
TxStatus));
-                       return 0;
-       }
-
 
        return rc;
 }
-- 
1.5.2.4

Reply via email to