X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fscsi%2Fwd7000.c;h=553a5f1e2d99d20c1bbe95e06e3c5229cf65c1a7;hb=44c40f29869a02dd430beb7fed0b6ca7d8ef5e54;hp=bf4a758e2801d4e541a473716b9b39d2662f99d2;hpb=8d40237c730b8be87c1b80a5d96b9c603fefa829;p=linux-2.6.git diff --git a/drivers/scsi/wd7000.c b/drivers/scsi/wd7000.c index bf4a758e2..553a5f1e2 100644 --- a/drivers/scsi/wd7000.c +++ b/drivers/scsi/wd7000.c @@ -589,7 +589,7 @@ typedef union icb { #ifdef MODULE static char *wd7000; -module_param(wd7000, charp, 0); +MODULE_PARM(wd7000, "s"); #endif /* @@ -1429,16 +1429,16 @@ static int wd7000_detect(struct scsi_host_template *tpnt) break; if (i == pass) { - void __iomem *biosaddr = ioremap(wd7000_biosaddr[biosaddr_ptr] + signatures[sig_ptr].ofs, + void *biosaddr = ioremap(wd7000_biosaddr[biosaddr_ptr] + signatures[sig_ptr].ofs, signatures[sig_ptr].len); - short bios_match = 1; + short bios_match = 0; if (biosaddr) - bios_match = check_signature(biosaddr, signatures[sig_ptr].sig, signatures[sig_ptr].len); + bios_match = memcmp((char *) biosaddr, signatures[sig_ptr].sig, signatures[sig_ptr].len); iounmap(biosaddr); - if (bios_match) + if (!bios_match) goto bios_matched; } } @@ -1473,7 +1473,8 @@ static int wd7000_detect(struct scsi_host_template *tpnt) * ASC reset... */ outb(ASC_RES, iobase + ASC_CONTROL); - msleep(10); + set_current_state(TASK_UNINTERRUPTIBLE); + schedule_timeout(HZ / 100); outb(0, iobase + ASC_CONTROL); if (WAIT(iobase + ASC_STAT, ASC_STATMASK, CMD_RDY, 0)) {