> +static int generic_NCR5380_isa_match(struct device *pdev, unsigned int ndev) > +{ > + struct Scsi_Host *sh = NULL; > + > + sh = generic_NCR5380_hw_init(&driver_template, pdev, base[ndev], > + irq[ndev], card[ndev]); > + if (!sh && base[ndev]) > + printk(KERN_WARNING "Card not found at address 0x%03x\n", > + base[ndev]); > + if (!sh) > + return 0; > > + dev_set_drvdata(pdev, sh);
Any reason not to move the dev_set_drvdata into generic_NCR5380_hw_init? That would also allow to properly propagate the error down to the caller, which would be useful for the PNP case. Otherwise this look great to me.