On Tue, 20 Jul 2010 09:55:58 -0400 (EDT), Peter Oberparleiter wrote:
A fix for this problem has been accepted for inclusion into 2.6.35-rc5. See:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=cffab6bc5511cd6f67a60bf16b62de4267b68c4c
Hello, Peter. I finally got a chance to take a look at this today.
I can't apply the patch as written to my 2.6.32 source code due to changes
between 2.6.32 and 2.6.35 that will cause the patch to not apply.
However, I did look at the patch. While I confess to being a complete
novice in the C language, the patch doesn't look quite right to me.
Consider the following excerpt from the patch:
+ if ((info->cu_type == 0x6310&& info->dev_type == 0x9336) ||
+ (info->cu_type == 0x3880&& info->dev_type == 0x3370))
+ labelsect = info->label_block;
+ else
+ labelsect = info->label_block * (blocksize>> 9);
This is unexpected. I expected that last line to be
+ labelsect = info->label_block * (blocksize/512)