Patch(2.4.2): isapnp detect fix (wrong checksum)

Gunther Mayer (Gunther.Mayer@t-online.de)
Fri, 16 Mar 2001 09:30:42 +0100


This is a multi-part message in MIME format.
--------------B53AC69B36E4583888D1D0E5
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,
this fix lets linux detect cards which don't
have a correct checksum.

These are probably common, it seems isapnptools _silently_
fixes this up !

Please apply if you like, comments welcome.

Regards, Gunther

--- linux/drivers/pnp/isapnp.c-2.4.2-orig Fri Mar 16 09:08:47 2001
+++ linux/drivers/pnp/isapnp.c Fri Mar 16 09:21:45 2001
@@ -993,10 +993,15 @@
header[4], header[5], header[6], header[7], header[8]);
printk("checksum = 0x%x\n", checksum);
#endif
- if (checksum == 0x00 || checksum != header[8]) /* not valid CSN */
+ /* Don't be strict on the checksum, here !
+ e.g. 'SCM SwapBox Plug and Play' has header[8]==0 (should be: b7)*/
+ if (header[8] == 0)
+ ;
+ else if (checksum == 0x00 || checksum != header[8]) /* not valid CSN */
continue;
if ((card = isapnp_alloc(sizeof(struct pci_bus))) == NULL)
continue;
+
card->number = csn;
card->vendor = (header[1] << 8) | header[0];
card->device = (header[3] << 8) | header[2];
--------------B53AC69B36E4583888D1D0E5
Content-Type: application/octet-stream;
name="gmdiff-242-isapnp-checksum-swapbox"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="gmdiff-242-isapnp-checksum-swapbox"

LS0tIGxpbnV4L2RyaXZlcnMvcG5wL2lzYXBucC5jLTIuNC4yLW9yaWcJRnJpIE1hciAxNiAw
OTowODo0NyAyMDAxCisrKyBsaW51eC9kcml2ZXJzL3BucC9pc2FwbnAuYwlGcmkgTWFyIDE2
IDA5OjIxOjQ1IDIwMDEKQEAgLTk5MywxMCArOTkzLDE1IEBACiAJCQloZWFkZXJbNF0sIGhl
YWRlcls1XSwgaGVhZGVyWzZdLCBoZWFkZXJbN10sIGhlYWRlcls4XSk7CiAJCXByaW50aygi
Y2hlY2tzdW0gPSAweCV4XG4iLCBjaGVja3N1bSk7CiAjZW5kaWYKLQkJaWYgKGNoZWNrc3Vt
ID09IDB4MDAgfHwgY2hlY2tzdW0gIT0gaGVhZGVyWzhdKQkvKiBub3QgdmFsaWQgQ1NOICov
CisJCS8qIERvbid0IGJlIHN0cmljdCBvbiB0aGUgY2hlY2tzdW0sIGhlcmUgIQorICAgICAg
ICAgICAgICAgICAgIGUuZy4gJ1NDTSBTd2FwQm94IFBsdWcgYW5kIFBsYXknIGhhcyBoZWFk
ZXJbOF09PTAgKHNob3VsZCBiZTogYjcpKi8KKwkJaWYgKGhlYWRlcls4XSA9PSAwKQorCQkJ
OworCQllbHNlIGlmIChjaGVja3N1bSA9PSAweDAwIHx8IGNoZWNrc3VtICE9IGhlYWRlcls4
XSkJLyogbm90IHZhbGlkIENTTiAqLwogCQkJY29udGludWU7CiAJCWlmICgoY2FyZCA9IGlz
YXBucF9hbGxvYyhzaXplb2Yoc3RydWN0IHBjaV9idXMpKSkgPT0gTlVMTCkKIAkJCWNvbnRp
bnVlOworCiAJCWNhcmQtPm51bWJlciA9IGNzbjsKIAkJY2FyZC0+dmVuZG9yID0gKGhlYWRl
clsxXSA8PCA4KSB8IGhlYWRlclswXTsKIAkJY2FyZC0+ZGV2aWNlID0gKGhlYWRlclszXSA8
PCA4KSB8IGhlYWRlclsyXTsK
--------------B53AC69B36E4583888D1D0E5--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/