gadget g_ether problem in 2.6.37

Go To Last Post
2 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This error occurs when I insert the USB cable after the g_ether module is loaded.

g_ether gadget: high speed config #2: RNDIS
------------[ cut here ]------------
WARNING: at kernel/softirq.c:159
Modules linked in: ubifs crc16 ubi rtc_max6902 wpr_gprs_v3_0 wpr_msp430 wpr_event wpr_power wpr_gpio wpr_debug g_ether
PC is at local_bh_enable+0x2a/0x70
LR is at dev_txq_stats_fold+0x7e/0xb4
pc : [<900203a6>]    lr : [<90106c72>]    Not tainted
sp : 901add40  r12: 91d94800  r11: 00000000
r10: 00000000  r9 : 00000000  r8 : 00000000
r7 : 901add40  r6 : 91d605c0  r5 : 901addbc  r4 : 11ffe43c
r3 : 00000000  r2 : 00000000  r1 : 00000000  r0 : 00000000
Flags: qvnZc
Mode bits: hjmde...0G
CPU Mode: Interrupt level 0
Process: swapper [0] (task: 901b1c50 thread: 901ac000)
Call trace:
 [<90106c72>] dev_txq_stats_fold+0x7e/0xb4
 [<90106cf2>] dev_get_stats+0x4a/0x64
 [] rndis_msg_parser+0x152/0x5b0 [g_ether]
 [] rndis_command_complete+0x16/0x40 [g_ether]
 [<900ee312>] receive_data+0x8a/0xc0
 [<900eed92>] usba_udc_irq+0x3ea/0x874
 [<90039c58>] handle_IRQ_event+0x16/0x8e
 [<9003ae6e>] handle_simple_irq+0x52/0x68
 [<90013f30>] do_IRQ+0x2c/0x50
 [<90012424>] irq_level0+0x18/0x5c
 [<9014ad9c>] rest_init+0x44/0x5c
 [<90000614>] start_kernel+0x1fc/0x230
 [<00000000>] 0x0

---[ end trace be5011e8b353e1ec ]---
Disabling lock debugging due to kernel taint

The usb is configured with:

#define WPR_USB_DET	GPIO_PIN_PA(27)

...

static struct usba_platform_data __initdata usba_pdata = {
	.vbus_pin	= WPR_USB_DET,
	.vbus_pin_inverted = 1,
};

...

at32_add_device_usba(0, &usba_pdata);

Everything works but still this error gets me puzzled. Can anyone shine som light on this?

Life's to short for waiting on slow CPU's

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I bet it is a bug because of using local_bh_enable_ip with irqs disabled. Nothing to worry about though

WARN_ON_ONCE(in_irq() || irqs_disabled())

This has been changed from Kernel 2.6.27, before this it was only

WARN_ON_ONCE(in_irq())