As there seems to be no activity on this bug yet, I did a binary search in the bcollins/ubuntu-edgy git tree to find the problematic commit that introduced the problem. (I use the http interface on git.kernel.org to do this.)
The situation is quite confusing. There are two files named skge.c in the kernel, one belonging to the skge driver, the other to the sk98lin driver, and it seems that these two files were confused when doing feature backports. This occurs in commit df5831f36218ca9276866ad26524492810cf3d53 from 2006-05-09 and is corrected by commit 37419595bb1bc44c489daa1d101a0e633bf3b934 from 2006-05-11. Before these commits, there is no hw_lock present in the skge driver; the correction commit reintroduces it, but obviously consistently, reverting skge.c from version 1.5 to 1.3 again. The following commit, 2d2a387199bf38c6628adb9c6184d7ab6e306148 from 2006-05-20, eliminates hw_lock again, and the driver version is now 1.5 (and does not contain the locking error). Then, on 2006-08-10 in commit c168e0350ac2d286724ea985227360e9605eb9c3, the error seems to be introduced. Here it gets interesting, as the diff for skge.c in this commit does not match the state of the skge.c file. It (the diff) indicates that the line "spin_unlock(&hw->hw_lock);" causing the error is present in the file both before and after the patch (black color in the http interface, no + or - prefix in the diff), while this line is clearly *not* in the skge.c file before this commit. (However, it was present in the 1.3 branch that we temporarily reverted back to as described above.) Git (or, more precisely, patch) seems to get confused and introduces this line into the file, causing the error we are seeing here. For me, the problem seems to be caused by a commit based on a previous skge.c version (1.3?) instead of the version that was in the git tree at that time (1.5), causing patch to malfunction and introduce the spin_unlock line into the code. As my previous reports said, a comparison with skge 1.5 in vanilla 2.6.17 shows no other significant differences, and an application of the patch I submitted above should be sufficient to correct the situation. -- skge driver broken: invalid call to spin_unlock causes system crash https://launchpad.net/bugs/65631 -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs