WARNING in module rt2870sta stable kernel 2.6.37

Giangiacomo Mariotti gg.mariotti at gmail.com
Tue Jan 18 20:16:37 UTC 2011


Hi, the following message was logged on a 2.6.37 kernel(it says
tainted, but it's actually a micro patch I wrote and applied on top of
current 2.6.37 vanilla, patch appended, but it should be irrelevant, I
just shut up a bunch of useless debug output for this staging driver):

[   31.747937] ------------[ cut here ]------------
[   31.747958] WARNING: at include/linux/netdevice.h:1557
netif_stop_queue.clone.3+0x1a/0x36 [rt2870sta]()
[   31.747961] Hardware name: EX58-UD5
[   31.747963] Modules linked in: rt2870sta(C+) i2c_i801 shpchp
i7core_edac edac_core snd_hwdep i2c_core snd_pcm pci_hotplug pcspkr
evdev snd_seq snd_timer snd_seq_device snd tpm_tis tpm tpm_bios
crc_ccitt soundcore snd_page_alloc processor thermal_sys wmi button
crc32c_intel sg sr_mod usbhid firewire_ohci sd_mod hid cdrom
ata_generic crc_t10dif usb_storage uas uhci_hcd ehci_hcd ahci
firewire_core usbcore r8169 libahci pata_jmicron crc_itu_t mii
nls_base floppy [last unloaded: scsi_wait_scan]
[   31.747999] Pid: 669, comm: modprobe Tainted: G         C  2.6.37-my001+ #1
[   31.748002] Call Trace:
[   31.748010]  [<ffffffff8103b961>] ? warn_slowpath_common+0x78/0x8c
[   31.748029]  [<ffffffffa03e5b0f>] ?
netif_stop_queue.clone.3+0x1a/0x36 [rt2870sta]
[   31.748048]  [<ffffffffa03e60d2>] ? RtmpPhyNetDevInit+0x6d/0x75 [rt2870sta]
[   31.748065]  [<ffffffffa03f5034>] ? rtusb_probe+0x28c/0x36e [rt2870sta]
[   31.748071]  [<ffffffffa0035572>] ? usb_probe_interface+0xfc/0x16f [usbcore]
[   31.748075]  [<ffffffff812a5b61>] ? driver_probe_device+0xb2/0x142
[   31.748077]  [<ffffffff812a5c40>] ? __driver_attach+0x4f/0x6f
[   31.748079]  [<ffffffff812a5bf1>] ? __driver_attach+0x0/0x6f
[   31.748082]  [<ffffffff812a4e05>] ? bus_for_each_dev+0x47/0x72
[   31.748084]  [<ffffffff812a54dd>] ? bus_add_driver+0xa2/0x1f2
[   31.748086]  [<ffffffff812a5e64>] ? driver_register+0x8d/0xf5
[   31.748091]  [<ffffffffa003473a>] ? usb_register_driver+0x80/0x128 [usbcore]
[   31.748097]  [<ffffffffa0412000>] ? init_module+0x0/0x30 [rt2870sta]
[   31.748100]  [<ffffffff810002eb>] ? do_one_initcall+0x78/0x129
[   31.748104]  [<ffffffff81069c68>] ? sys_init_module+0x9c/0x1d7
[   31.748106]  [<ffffffff8100293b>] ? system_call_fastpath+0x16/0x1b
[   31.748108] ---[ end trace 285f31f0bc9e54ab ]---
[   31.748109] netif_stop_queue() cannot be called before register_netdev()
[   31.748533] usbcore: registered new interface driver rt2870


My micro patch:

>From a7335c70ec821221b79b7607765d2a7de5fc78e3 Mon Sep 17 00:00:00 2001
From: Giangiacomo Mariotti <giangiacomo.mariotti at gmail.com>
Date: Tue, 11 Jan 2011 04:57:58 +0100
Subject: 0001-make-debug-output-standard-compliant-in-rt2870.patch


Signed-off-by: Giangiacomo Mariotti <giangiacomo.mariotti at gmail.com>
---
 drivers/staging/rt2860/chip/mac_usb.h        |    3 ++-
 drivers/staging/rt2860/common/cmm_data_usb.c |    6 +++---
 drivers/staging/rt2860/sta_ioctl.c           |   12 ++++++------
 drivers/staging/rt2860/usb_main_dev.c        |    2 +-
 4 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/drivers/staging/rt2860/chip/mac_usb.h
b/drivers/staging/rt2860/chip/mac_usb.h
index ed0c0b4..e2310dc 100644
--- a/drivers/staging/rt2860/chip/mac_usb.h
+++ b/drivers/staging/rt2860/chip/mac_usb.h
@@ -37,6 +37,7 @@
 #ifndef __MAC_USB_H__
 #define __MAC_USB_H__

+#include <linux/kernel.h>
 #include "../rtmp_type.h"
 #include "rtmp_mac.h"
 #include "rtmp_phy.h"
@@ -224,7 +225,7 @@ struct rt_rx_context {
 				RTMP_IRQ_LOCK(&pAd->DeQueueLock[QueIdx], irqFlags);		\
 				if (pAd->DeQueueRunning[QueIdx]) {						\
 					RTMP_IRQ_UNLOCK(&pAd->DeQueueLock[QueIdx], irqFlags); \
-					DBGPRINT(RT_DEBUG_OFF, ("DeQueueRunning[%d]= TRUE!\n", QueIdx));		\
+					pr_debug("DeQueueRunning[%d]= TRUE!\n", QueIdx);		\
 					continue;											\
 				} else {												\
 					pAd->DeQueueRunning[QueIdx] = TRUE;					\
diff --git a/drivers/staging/rt2860/common/cmm_data_usb.c
b/drivers/staging/rt2860/common/cmm_data_usb.c
index 7c56c2f..be930ae 100644
--- a/drivers/staging/rt2860/common/cmm_data_usb.c
+++ b/drivers/staging/rt2860/common/cmm_data_usb.c
@@ -51,16 +51,16 @@ static inline int RtmpUSBCanDoWrite(struct
rt_rtmp_adapter *pAd,
 	     pHTTXContext->NextBulkOutPosition)
 	    && (pHTTXContext->CurWritePosition + LOCAL_TXBUF_SIZE) >
 	    pHTTXContext->NextBulkOutPosition) {
-		DBGPRINT(RT_DEBUG_ERROR, ("RtmpUSBCanDoWrite c1!\n"));
+		pr_debug("RtmpUSBCanDoWrite c1!\n");
 		RTUSB_SET_BULK_FLAG(pAd,
 				    (fRTUSB_BULK_OUT_DATA_NORMAL << QueIdx));
 	} else if ((pHTTXContext->CurWritePosition == 8)
 		   && (pHTTXContext->NextBulkOutPosition < LOCAL_TXBUF_SIZE)) {
-		DBGPRINT(RT_DEBUG_ERROR, ("RtmpUSBCanDoWrite c2!\n"));
+		pr_debug("RtmpUSBCanDoWrite c2!\n");
 		RTUSB_SET_BULK_FLAG(pAd,
 				    (fRTUSB_BULK_OUT_DATA_NORMAL << QueIdx));
 	} else if (pHTTXContext->bCurWriting == TRUE) {
-		DBGPRINT(RT_DEBUG_ERROR, ("RtmpUSBCanDoWrite c3!\n"));
+		pr_debug("RtmpUSBCanDoWrite c3!\n");
 	} else {
 		canWrite = NDIS_STATUS_SUCCESS;
 	}
diff --git a/drivers/staging/rt2860/sta_ioctl.c
b/drivers/staging/rt2860/sta_ioctl.c
index e095a44..00fe666 100644
--- a/drivers/staging/rt2860/sta_ioctl.c
+++ b/drivers/staging/rt2860/sta_ioctl.c
@@ -394,9 +394,9 @@ int rt_ioctl_siwfreq(struct net_device *dev,

 	if (ChannelSanity(pAdapter, chan) == TRUE) {
 		pAdapter->CommonCfg.Channel = chan;
-		DBGPRINT(RT_DEBUG_ERROR,
-			 ("==>rt_ioctl_siwfreq::SIOCSIWFREQ[cmd=0x%x] (Channel=%d)\n",
-			  SIOCSIWFREQ, pAdapter->CommonCfg.Channel));
+		netdev_dbg(dev,
+			"==>rt_ioctl_siwfreq::SIOCSIWFREQ[cmd=0x%x] (Channel=%d)\n",
+			SIOCSIWFREQ, pAdapter->CommonCfg.Channel);
 	} else
 		return -EINVAL;

@@ -1113,9 +1113,9 @@ int rt_ioctl_giwscan(struct net_device *dev,

 	data->length = current_ev - extra;
 	pAdapter->StaCfg.bScanReqIsFromWebUI = FALSE;
-	DBGPRINT(RT_DEBUG_ERROR,
-		 ("===>rt_ioctl_giwscan. %d(%d) BSS returned, data->length = %d\n",
-		  i, pAdapter->ScanTab.BssNr, data->length));
+	netdev_dbg(dev,
+		"===>rt_ioctl_giwscan. %d(%d) BSS returned, data->length = %d\n",
+		i, pAdapter->ScanTab.BssNr, data->length);
 	return 0;
 }

diff --git a/drivers/staging/rt2860/usb_main_dev.c
b/drivers/staging/rt2860/usb_main_dev.c
index cd15daa..5b0dfc0 100644
--- a/drivers/staging/rt2860/usb_main_dev.c
+++ b/drivers/staging/rt2860/usb_main_dev.c
@@ -715,7 +715,7 @@ void RTUSBWatchDog(struct rt_rtmp_adapter *pAd)
 				RTMP_IRQ_UNLOCK(&pAd->BulkOutLock[idx],
 						irqFlags);

-				printk(KERN_INFO "%d:%lu LTL=%d , TL=%d L:%d\n",
+				pr_debug("%d:%lu LTL=%d , TL=%d L:%d\n",
 				       idx, pAd->watchDogTxPendingCnt[idx],
 				       pAd->TransferedLength[idx],
 				       actual_length, transfer_buffer_length);
-- 
1.7.2.3

-- 
Giangiacomo



More information about the devel mailing list