VIA RAID checksum off by 1

Woody Suwalski <[email protected]>
Newsgroups gmane.linux.ataraid
Message-ID <[email protected]>
I have here a VIA RAID which is not picked up by -rc9. -rc10, -rc11 nor -rc12 (binary only???)
It seems that the checksum calculated is off by 1 == 1 too big.
Could anybody else try to duplicate the problem?

Thanks, Woody




	class = 0x010400
	classname = RAID bus controller
	desc = VT8251 AHCI/SATA 4-Port Controller
	manu = VIA Technologies, Inc.
	pci = 0x1106, 0x3349, 0x1106, 0x3349
	subdesc = VT8251 AHCI/SATA 4-Port Controller
	submanu = VIA Technologies, Inc.


--- dmraid/1.0.0.rc11/lib/format/ataraid/via.c.old      2006-08-09 13:34:07.000000000 -0400
+++ dmraid/1.0.0.rc11/lib/format/ataraid/via.c  2006-08-09 13:38:40.000000000 -0400
@@ -142,6 +142,10 @@ static uint8_t checksum(struct via *via)
        while (i--)
                sum += ((uint8_t*) via)[i];

+       /* wms: on my VIA the calculated checksum is off by 1 (too big) */
+       if (sum == via->checksum + 1)
+               sum --;
+
        return sum == via->checksum;
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.