Gc Linux 2 Cvsimport Git Log


Commit Date  
[cd6e39] by Albert Herranz Albert Herranz

From: Albert Herranz <albert_herranz@yahoo.es>
Date: Sun, 25 Jan 2009 19:28:42 +0100
Subject: [PATCH] usbnet: fix spinlock recursion

This patch fixes the following spinlock recursion bug seen when bringing down
the ethernet interface.

[ 87.354683] BUG: spinlock recursion on CPU#0, ifconfig/1722
[ 87.360899] lock: d2e01cd0, .magic: dead4ead, .owner: ifconfig/1722, .owner_cpu: 0
[ 87.373410] Call Trace:
[ 87.379546] [d2f13c30] [c0008394] show_stack+0x3c/0x160 (unreliable)
[ 87.386227] [d2f13c60] [c0169dd8] spin_bug+0x8c/0xd0
[ 87.392858] [d2f13c80] [c016a0e4] _raw_spin_lock+0xb4/0xb8
[ 87.399570] [d2f13c90] [c02c855c] _spin_lock_irqsave+0x30/0x48
[ 87.406258] [d2f13cb0] [c01aa5d4] defer_bh+0x28/0xfc
[ 87.412726] [d2f13cd0] [c01c32e8] usb_hcd_giveback_urb+0x5c/0xdc
[ 87.419209] [d2f13ce0] [c01d2cec] sthcd_giveback_urb+0x30/0x50
[ 87.425762] [d2f13d00] [c01d488c] sthcd_urb_dequeue+0x7c/0xac
[ 87.432318] [d2f13d30] [c01c3478] unlink1+0x3c/0x4c
[ 87.438960] [d2f13d40] [c01c45c8] usb_hcd_unlink_urb+0x88/0xa4
[ 87.445629] [d2f13d60] [c01c49ac] usb_unlink_urb+0x54/0x5c
[ 87.452210] [d2f13d70] [c01aa170] unlink_urbs+0x40/0xb0
[ 87.458762] [d2f13d90] [c01ab470] usbnet_stop+0xdc/0x1a0
[ 87.465320] [d2f13df0] [c023bf18] dev_close+0xa0/0xdc
[ 87.471639] [d2f13e00] [c023bc98] dev_change_flags+0x84/0x1b4
[ 87.477908] [d2f13e20] [c0283f50] devinet_ioctl+0x5ec/0x6b8
[ 87.484222] [d2f13e90] [c0284cbc] inet_ioctl+0x98/0xbc
[ 87.490450] [d2f13ea0] [c022a300] sock_ioctl+0x60/0x284
[ 87.496566] [d2f13ec0] [c00a2714] vfs_ioctl+0x44/0xa8
[ 87.502657] [d2f13ee0] [c00a2d24] do_vfs_ioctl+0x88/0x24c
[ 87.508707] [d2f13f10] [c00a2f28] sys_ioctl+0x40/0x74
[ 87.514728] [d2f13f40] [c0011bbc] ret_from_syscall+0x0/0x38
[ 87.520780] --- Exception: c01 at 0xff59878
[ 87.520783] LR = 0xff597dc

unlink_urbs() takes the sk_buff queue lock &q->lock before removing the
queued URBs via usb_unlink_urb().
The issue here is that the completion handler of a queued TX URB will
get called when the URB is unlinked, then tx_complete() will call defer_bh()
which will try to take the queue lock again and fail.

The fix here is to release the list lock before unlinking a URB.

Signed-off-by: Albert Herranz <albert_herranz@yahoo.es>

2009-03-02 18:08:43 Tree
[51b1d4] by Albert Herranz Albert Herranz

Add vanilla drivers/net/usb/usbnet.c.

2009-03-02 18:06:43 Tree
[355768] by Albert Herranz Albert Herranz

- add GPIO fixes (now hopefully)

2009-02-01 18:50:33 Tree
[4c6651] by Albert Herranz Albert Herranz

Merge 2.6.28.
Also:
- run checkpatch against the non-broken source code
- add GPIO driver fixes
- implement getgeo for the special block drivers
- small fixes

2009-02-01 18:29:34 Tree
[a144b3] by Albert Herranz Albert Herranz

Add two include files I missed on latest commit.

2009-01-11 20:07:04 Tree
[e30722] by Albert Herranz Albert Herranz

Apply:
gc-linux+fix_cputable-2.6.27.patch
gcnfb+fix_mmap-2.6.27.patch
usbgecko_udbg+safeness.patch
rvl-sthcd+workaround_7005.patch

2008-11-25 19:09:31 Tree
[e726eb] by Albert Herranz Albert Herranz

- merge 2.6.27

2008-11-15 20:30:55 Tree
[916875] by Albert Herranz Albert Herranz

- merge 2.6.27
- add gcnvi_udbg driver
- add starlet-gpio driver
- add initial SDHC support to rvl-stsd driver
- add support for MEM1+MEM2 as normal RAM
- enhanced rvl-sthcd device detection

2008-11-15 20:10:13 Tree
[619560] by Albert Herranz Albert Herranz

Merge 2.6.26.

2008-09-14 19:20:17 Tree
[54b3c1] by Albert Herranz Albert Herranz

Merged 2.6.25.
Queued small fixes for:
- starlet-es
- starlet-ipc
- starlet-stm
- rvl-stsd
- rvl-sthcd
- gcn-ai

2008-09-13 19:42:52 Tree
[506eea] by Albert Herranz Albert Herranz

- update Nintendo Wii default config

2008-07-02 22:32:33 Tree
[292db0] by Albert Herranz Albert Herranz

- Add rvl-sthcd USB Host Controller driver.
This driver is a bridge between the Linux kernel USB subsystem, for which
it provides a nearly complete USB hcd implementation, and the starlet
subsystem API.

2008-07-02 20:51:21 Tree
[41af6f] by Albert Herranz Albert Herranz

- do not build the starlet keyboard driver if USB is enabled

2008-07-02 20:45:36 Tree
[63d116] by Albert Herranz Albert Herranz

- rename functions: start_ios_* -> starlet_*
- get rid of the old explicit ioctl completion function

2008-07-02 20:43:10 Tree
[c0c0f7] by Albert Herranz Albert Herranz

- change driver description to include the Nintendo Wii too

2008-07-02 20:42:39 Tree
[a5192a] by Albert Herranz Albert Herranz

- rename functions: start_ios_* -> starlet_*
- maybe remove the io_mutex

2008-07-02 20:42:11 Tree
[ac9b74] by Albert Herranz Albert Herranz

- rename functions: start_ios_* -> starlet_*
- rename buffers: out -> io
- use sg_init_one when possible
- FIX: add function to prevent the nwc24 scheduler to kick in
This fixes the dreaded "keyboard hang after login" of PoC 0.4 when
NWC24 is on. Actually, all IOS IPC calls were affected.

2008-07-02 20:41:41 Tree
[1a352e] by Albert Herranz Albert Herranz

- rename functions: start_ios_* -> starlet_*

2008-07-02 20:39:11 Tree
[b5222b] by Albert Herranz Albert Herranz

- move memory allocation functions to starlet-malloc
- add gfp_t flags to starlet_ipc_alloc_request
- bootstrap malloc library from ipc initialization code
- change (experiment) a bit with the irq completion logic for ipc
- use per call type automatic completion handlers
- separate the allocation and preparation of ipc requests
- close the 24 file descriptors on startup
- comment out part of the debugging code
- add (disabled) watchdog code to report long-standing ipc requests

2008-07-02 20:38:46 Tree
[446519] by Albert Herranz Albert Herranz

- add io heap library based on the existing kernel remote heap

2008-07-02 20:38:06 Tree
[13a277] by Albert Herranz Albert Herranz

- rename functions: start_ios_* -> starlet_*
- add io heap library based on the existing kernel remote heap

2008-07-02 20:37:05 Tree
[a59367] by Albert Herranz Albert Herranz

- add mem2 area for io heap
- add device entry for starlet usb host controller
- add command-line configuration examples
- default to root fs over 2nd partition in front SD card

2008-07-02 20:36:22 Tree
[ecaf20] by Albert Herranz Albert Herranz

Added 'starlet-es' and 'starlet-keyboard' devices to the dts.

2008-04-12 17:37:52 Tree
[6b4165] by Albert Herranz Albert Herranz

Added 'rvl-stkbd' driver supporting USB keyboards through IOS.

2008-04-12 17:34:03 Tree
[5763e8] by Albert Herranz Albert Herranz

Use GFP_ATOMIC for request allocations during hardware register io.
Use GFP_NOIO for command/reply allocations during block io.
Properly size the small buffer to avoid discarding data located near the
small buffer during cache invalidation operations. The small buffer is now
at least a cache line long.

2008-04-12 17:32:50 Tree
Older >