On Tue, Jul 17, 2007 at 10:55:21AM -0600, Matthew Wilcox wrote: > Unfortunately, I don't have a good idea about how to solve this. The > least lame perhaps is to have separate routines for EISA and MCA > devices, each of which passes the shost to this routine. I had an idea. How does this look? It's what I'm doing in advansys. Note that I've not tested it more than compilation ... need to get the EISA configurator running on parisc-linux in order to test it. diff --git a/drivers/scsi/sim710.c b/drivers/scsi/sim710.c index 018c65f..6ab11b4 100644 --- a/drivers/scsi/sim710.c +++ b/drivers/scsi/sim710.c @@ -139,6 +139,7 @@ sim710_probe_common(struct device *dev, unsigned long base_addr, goto out_put_host; } + dev_set_drvdata(dev, host); scsi_scan_host(host); return 0; @@ -156,7 +157,7 @@ sim710_probe_common(struct device *dev, unsigned long base_addr, static __devexit int sim710_device_remove(struct device *dev) { - struct Scsi_Host *host = dev_to_shost(dev); + struct Scsi_Host *host = dev_get_drvdata(dev); struct NCR_700_Host_Parameters *hostdata = (struct NCR_700_Host_Parameters *)host->hostdata[0]; -- "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html