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@xxxxxxxxx> 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@xxxxxxxxx> --- 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 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel