[RFC] Device class rework [3/5]

Greg KH (greg@kroah.com)
Tue, 22 Apr 2003 13:58:27 -0700


On Tue, Apr 22, 2003 at 01:55:45PM -0700, Greg KH wrote:
> - Crude patches to the scsi core to get it to build properly. This
> patch is not correct, but needed if your machines have scsi. Mike
> Anderson has said he will fix up the scsi code based on these core
> changes.

diff -Nru a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
--- a/drivers/scsi/hosts.c Tue Apr 22 13:08:01 2003
+++ b/drivers/scsi/hosts.c Tue Apr 22 13:08:01 2003
@@ -294,7 +294,7 @@
sht->info ? sht->info(shost) : sht->name);

if (dev) {
- dev->class_data = shost;
+// dev->class_data = shost;
shost->host_gendev = dev;
}

diff -Nru a/drivers/scsi/hosts.h b/drivers/scsi/hosts.h
--- a/drivers/scsi/hosts.h Tue Apr 22 13:07:58 2003
+++ b/drivers/scsi/hosts.h Tue Apr 22 13:07:58 2003
@@ -495,7 +495,8 @@
__attribute__ ((aligned (sizeof(unsigned long))));
};

-#define to_scsi_host(d) d->class_data
+//#define to_scsi_host(d) d->class_data
+#define to_scsi_host(d) d->driver_data // Major breakage, but we compile now...

/*
* These two functions are used to allocate and free a pseudo device
@@ -607,7 +608,7 @@
extern int scsi_upper_driver_register(struct Scsi_Device_Template *);
extern void scsi_upper_driver_unregister(struct Scsi_Device_Template *);

-extern struct device_class shost_devclass;
+extern struct class shost_devclass;

#endif
/*
diff -Nru a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
--- a/drivers/scsi/scsi_debug.c Tue Apr 22 13:07:57 2003
+++ b/drivers/scsi/scsi_debug.c Tue Apr 22 13:07:57 2003
@@ -183,7 +183,7 @@
.name = sdebug_proc_name,
.probe = sdebug_driver_probe,
.remove = sdebug_driver_remove,
- .devclass = &shost_devclass,
+// .devclass = &shost_devclass,
};

static const int check_condition_result =
diff -Nru a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
--- a/drivers/scsi/scsi_sysfs.c Tue Apr 22 13:08:01 2003
+++ b/drivers/scsi/scsi_sysfs.c Tue Apr 22 13:08:01 2003
@@ -95,10 +95,8 @@
device_remove_file(dev, &dev_attr_class_name);
}

-struct device_class shost_devclass = {
+struct class shost_devclass = {
.name = "scsi-host",
- .add_device = scsi_host_class_add_dev,
- .remove_device = scsi_host_class_rm_dev,
};

/**
@@ -136,14 +134,14 @@
int scsi_sysfs_register(void)
{
bus_register(&scsi_bus_type);
- devclass_register(&shost_devclass);
+ class_register(&shost_devclass);

return 0;
}

void scsi_sysfs_unregister(void)
{
- devclass_unregister(&shost_devclass);
+ class_unregister(&shost_devclass);
bus_unregister(&scsi_bus_type);
}

-
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/