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

Reply via email to