diff options
| author | Tony Jones <tonyj@suse.de> | 2008-02-22 00:13:36 +0100 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-04-19 19:10:33 -0700 | 
| commit | ee959b00c335d7780136c5abda37809191fe52c3 (patch) | |
| tree | 7775f3b274fd8caf5e7e5154fea89e96f2babd94 /drivers/scsi/arcmsr | |
| parent | 56d110e852b0b1c85ad6c9bfe1cb4473ceb16402 (diff) | |
| download | linux-ee959b00c335d7780136c5abda37809191fe52c3.tar.bz2 | |
SCSI: convert struct class_device to struct device
It's big, but there doesn't seem to be a way to split it up smaller...
Signed-off-by: Tony Jones <tonyj@suse.de>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Cc: Roland Dreier <rolandd@cisco.com>
Cc: Sean Hefty <sean.hefty@intel.com>
Cc: Hal Rosenstock <hal.rosenstock@gmail.com>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/scsi/arcmsr')
| -rw-r--r-- | drivers/scsi/arcmsr/arcmsr.h | 4 | ||||
| -rw-r--r-- | drivers/scsi/arcmsr/arcmsr_attr.c | 163 | 
2 files changed, 98 insertions, 69 deletions
| diff --git a/drivers/scsi/arcmsr/arcmsr.h b/drivers/scsi/arcmsr/arcmsr.h index 3288be2e49f8..ab646e580d64 100644 --- a/drivers/scsi/arcmsr/arcmsr.h +++ b/drivers/scsi/arcmsr/arcmsr.h @@ -44,7 +44,7 @@  */  #include <linux/interrupt.h> -struct class_device_attribute; +struct device_attribute;  /*The limit of outstanding scsi command that firmware can handle*/  #define ARCMSR_MAX_OUTSTANDING_CMD						256  #define ARCMSR_MAX_FREECCB_NUM							320 @@ -556,6 +556,6 @@ struct SENSE_DATA  extern void arcmsr_post_ioctldata2iop(struct AdapterControlBlock *);  extern void arcmsr_iop_message_read(struct AdapterControlBlock *);  extern struct QBUFFER __iomem *arcmsr_get_iop_rqbuffer(struct AdapterControlBlock *); -extern struct class_device_attribute *arcmsr_host_attrs[]; +extern struct device_attribute *arcmsr_host_attrs[];  extern int arcmsr_alloc_sysfs_attr(struct AdapterControlBlock *);  void arcmsr_free_sysfs_attr(struct AdapterControlBlock *acb); diff --git a/drivers/scsi/arcmsr/arcmsr_attr.c b/drivers/scsi/arcmsr/arcmsr_attr.c index 7d7b0a554276..69f8346aa288 100644 --- a/drivers/scsi/arcmsr/arcmsr_attr.c +++ b/drivers/scsi/arcmsr/arcmsr_attr.c @@ -57,15 +57,15 @@  #include <scsi/scsi_transport.h>  #include "arcmsr.h" -struct class_device_attribute *arcmsr_host_attrs[]; +struct device_attribute *arcmsr_host_attrs[];  static ssize_t arcmsr_sysfs_iop_message_read(struct kobject *kobj,  					     struct bin_attribute *bin,  					     char *buf, loff_t off,  					     size_t count)  { -	struct class_device *cdev = container_of(kobj,struct class_device,kobj); -	struct Scsi_Host *host = class_to_shost(cdev); +	struct device *dev = container_of(kobj,struct device,kobj); +	struct Scsi_Host *host = class_to_shost(dev);  	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata;  	uint8_t *pQbuffer,*ptmpQbuffer;  	int32_t allxfer_len = 0; @@ -110,8 +110,8 @@ static ssize_t arcmsr_sysfs_iop_message_write(struct kobject *kobj,  					      char *buf, loff_t off,  					      size_t count)  { -	struct class_device *cdev = container_of(kobj,struct class_device,kobj); -	struct Scsi_Host *host = class_to_shost(cdev); +	struct device *dev = container_of(kobj,struct device,kobj); +	struct Scsi_Host *host = class_to_shost(dev);  	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata;  	int32_t my_empty_len, user_len, wqbuf_firstindex, wqbuf_lastindex;  	uint8_t *pQbuffer, *ptmpuserbuffer; @@ -158,8 +158,8 @@ static ssize_t arcmsr_sysfs_iop_message_clear(struct kobject *kobj,  					      char *buf, loff_t off,  					      size_t count)  { -	struct class_device *cdev = container_of(kobj,struct class_device,kobj); -	struct Scsi_Host *host = class_to_shost(cdev); +	struct device *dev = container_of(kobj,struct device,kobj); +	struct Scsi_Host *host = class_to_shost(dev);  	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata;  	uint8_t *pQbuffer; @@ -220,87 +220,104 @@ int arcmsr_alloc_sysfs_attr(struct AdapterControlBlock *acb)  	struct Scsi_Host *host = acb->host;  	int error; -	error = sysfs_create_bin_file(&host->shost_classdev.kobj, &arcmsr_sysfs_message_read_attr); +	error = sysfs_create_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_read_attr);  	if (error) {  		printk(KERN_ERR "arcmsr: alloc sysfs mu_read failed\n");  		goto error_bin_file_message_read;  	} -	error = sysfs_create_bin_file(&host->shost_classdev.kobj, &arcmsr_sysfs_message_write_attr); +	error = sysfs_create_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_write_attr);  	if (error) {  		printk(KERN_ERR "arcmsr: alloc sysfs mu_write failed\n");  		goto error_bin_file_message_write;  	} -	error = sysfs_create_bin_file(&host->shost_classdev.kobj, &arcmsr_sysfs_message_clear_attr); +	error = sysfs_create_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_clear_attr);  	if (error) {  		printk(KERN_ERR "arcmsr: alloc sysfs mu_clear failed\n");  		goto error_bin_file_message_clear;  	}  	return 0;  error_bin_file_message_clear: -	sysfs_remove_bin_file(&host->shost_classdev.kobj, &arcmsr_sysfs_message_write_attr); +	sysfs_remove_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_write_attr);  error_bin_file_message_write: -	sysfs_remove_bin_file(&host->shost_classdev.kobj, &arcmsr_sysfs_message_read_attr); +	sysfs_remove_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_read_attr);  error_bin_file_message_read:  	return error;  } -void -arcmsr_free_sysfs_attr(struct AdapterControlBlock *acb) { +void arcmsr_free_sysfs_attr(struct AdapterControlBlock *acb) +{  	struct Scsi_Host *host = acb->host; -	sysfs_remove_bin_file(&host->shost_classdev.kobj, &arcmsr_sysfs_message_clear_attr); -	sysfs_remove_bin_file(&host->shost_classdev.kobj, &arcmsr_sysfs_message_write_attr); -	sysfs_remove_bin_file(&host->shost_classdev.kobj, &arcmsr_sysfs_message_read_attr); +	sysfs_remove_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_clear_attr); +	sysfs_remove_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_write_attr); +	sysfs_remove_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_read_attr);  }  static ssize_t -arcmsr_attr_host_driver_version(struct class_device *cdev, char *buf) { +arcmsr_attr_host_driver_version(struct device *dev, +				struct device_attribute *attr, char *buf) +{  	return snprintf(buf, PAGE_SIZE,  			"%s\n",  			ARCMSR_DRIVER_VERSION);  }  static ssize_t -arcmsr_attr_host_driver_posted_cmd(struct class_device *cdev, char *buf) { -	struct Scsi_Host *host = class_to_shost(cdev); -	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; +arcmsr_attr_host_driver_posted_cmd(struct device *dev, +				   struct device_attribute *attr, char *buf) +{ +	struct Scsi_Host *host = class_to_shost(dev); +	struct AdapterControlBlock *acb = +		(struct AdapterControlBlock *) host->hostdata;  	return snprintf(buf, PAGE_SIZE,  			"%4d\n",  			atomic_read(&acb->ccboutstandingcount));  }  static ssize_t -arcmsr_attr_host_driver_reset(struct class_device *cdev, char *buf) { -	struct Scsi_Host *host = class_to_shost(cdev); -	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; +arcmsr_attr_host_driver_reset(struct device *dev, +			      struct device_attribute *attr, char *buf) +{ +	struct Scsi_Host *host = class_to_shost(dev); +	struct AdapterControlBlock *acb = +		(struct AdapterControlBlock *) host->hostdata;  	return snprintf(buf, PAGE_SIZE,  			"%4d\n",  			acb->num_resets);  }  static ssize_t -arcmsr_attr_host_driver_abort(struct class_device *cdev, char *buf) { -	struct Scsi_Host *host = class_to_shost(cdev); -	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; +arcmsr_attr_host_driver_abort(struct device *dev, +			      struct device_attribute *attr, char *buf) +{ +	struct Scsi_Host *host = class_to_shost(dev); +	struct AdapterControlBlock *acb = +		(struct AdapterControlBlock *) host->hostdata;  	return snprintf(buf, PAGE_SIZE,  			"%4d\n",  			acb->num_aborts);  }  static ssize_t -arcmsr_attr_host_fw_model(struct class_device *cdev, char *buf) { -    struct Scsi_Host *host = class_to_shost(cdev); -	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; +arcmsr_attr_host_fw_model(struct device *dev, struct device_attribute *attr, +			  char *buf) +{ +	struct Scsi_Host *host = class_to_shost(dev); +	struct AdapterControlBlock *acb = +		(struct AdapterControlBlock *) host->hostdata;  	return snprintf(buf, PAGE_SIZE,  			"%s\n",  			acb->firm_model);  }  static ssize_t -arcmsr_attr_host_fw_version(struct class_device *cdev, char *buf) { -	struct Scsi_Host *host = class_to_shost(cdev); -	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; +arcmsr_attr_host_fw_version(struct device *dev, +			    struct device_attribute *attr, char *buf) +{ +	struct Scsi_Host *host = class_to_shost(dev); +	struct AdapterControlBlock *acb = +			(struct AdapterControlBlock *) host->hostdata;  	return snprintf(buf, PAGE_SIZE,  			"%s\n", @@ -308,9 +325,12 @@ arcmsr_attr_host_fw_version(struct class_device *cdev, char *buf) {  }  static ssize_t -arcmsr_attr_host_fw_request_len(struct class_device *cdev, char *buf) { -	struct Scsi_Host *host = class_to_shost(cdev); -	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; +arcmsr_attr_host_fw_request_len(struct device *dev, +				struct device_attribute *attr, char *buf) +{ +	struct Scsi_Host *host = class_to_shost(dev); +	struct AdapterControlBlock *acb = +		(struct AdapterControlBlock *) host->hostdata;  	return snprintf(buf, PAGE_SIZE,  			"%4d\n", @@ -318,9 +338,12 @@ arcmsr_attr_host_fw_request_len(struct class_device *cdev, char *buf) {  }  static ssize_t -arcmsr_attr_host_fw_numbers_queue(struct class_device *cdev, char *buf) { -	struct Scsi_Host *host = class_to_shost(cdev); -	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; +arcmsr_attr_host_fw_numbers_queue(struct device *dev, +				  struct device_attribute *attr, char *buf) +{ +	struct Scsi_Host *host = class_to_shost(dev); +	struct AdapterControlBlock *acb = +		(struct AdapterControlBlock *) host->hostdata;  	return snprintf(buf, PAGE_SIZE,  			"%4d\n", @@ -328,9 +351,12 @@ arcmsr_attr_host_fw_numbers_queue(struct class_device *cdev, char *buf) {  }  static ssize_t -arcmsr_attr_host_fw_sdram_size(struct class_device *cdev, char *buf) { -	struct Scsi_Host *host = class_to_shost(cdev); -	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; +arcmsr_attr_host_fw_sdram_size(struct device *dev, +			       struct device_attribute *attr, char *buf) +{ +	struct Scsi_Host *host = class_to_shost(dev); +	struct AdapterControlBlock *acb = +		(struct AdapterControlBlock *) host->hostdata;  	return snprintf(buf, PAGE_SIZE,  			"%4d\n", @@ -338,36 +364,39 @@ arcmsr_attr_host_fw_sdram_size(struct class_device *cdev, char *buf) {  }  static ssize_t -arcmsr_attr_host_fw_hd_channels(struct class_device *cdev, char *buf) { -	struct Scsi_Host *host = class_to_shost(cdev); -	struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; +arcmsr_attr_host_fw_hd_channels(struct device *dev, +				struct device_attribute *attr, char *buf) +{ +	struct Scsi_Host *host = class_to_shost(dev); +	struct AdapterControlBlock *acb = +		(struct AdapterControlBlock *) host->hostdata;  	return snprintf(buf, PAGE_SIZE,  			"%4d\n",  			acb->firm_hd_channels);  } -static CLASS_DEVICE_ATTR(host_driver_version, S_IRUGO, arcmsr_attr_host_driver_version, NULL); -static CLASS_DEVICE_ATTR(host_driver_posted_cmd, S_IRUGO, arcmsr_attr_host_driver_posted_cmd, NULL); -static CLASS_DEVICE_ATTR(host_driver_reset, S_IRUGO, arcmsr_attr_host_driver_reset, NULL); -static CLASS_DEVICE_ATTR(host_driver_abort, S_IRUGO, arcmsr_attr_host_driver_abort, NULL); -static CLASS_DEVICE_ATTR(host_fw_model, S_IRUGO, arcmsr_attr_host_fw_model, NULL); -static CLASS_DEVICE_ATTR(host_fw_version, S_IRUGO, arcmsr_attr_host_fw_version, NULL); -static CLASS_DEVICE_ATTR(host_fw_request_len, S_IRUGO, arcmsr_attr_host_fw_request_len, NULL); -static CLASS_DEVICE_ATTR(host_fw_numbers_queue, S_IRUGO, arcmsr_attr_host_fw_numbers_queue, NULL); -static CLASS_DEVICE_ATTR(host_fw_sdram_size, S_IRUGO, arcmsr_attr_host_fw_sdram_size, NULL); -static CLASS_DEVICE_ATTR(host_fw_hd_channels, S_IRUGO, arcmsr_attr_host_fw_hd_channels, NULL); - -struct class_device_attribute *arcmsr_host_attrs[] = { -	&class_device_attr_host_driver_version, -	&class_device_attr_host_driver_posted_cmd, -	&class_device_attr_host_driver_reset, -	&class_device_attr_host_driver_abort, -	&class_device_attr_host_fw_model, -	&class_device_attr_host_fw_version, -	&class_device_attr_host_fw_request_len, -	&class_device_attr_host_fw_numbers_queue, -	&class_device_attr_host_fw_sdram_size, -	&class_device_attr_host_fw_hd_channels, +static DEVICE_ATTR(host_driver_version, S_IRUGO, arcmsr_attr_host_driver_version, NULL); +static DEVICE_ATTR(host_driver_posted_cmd, S_IRUGO, arcmsr_attr_host_driver_posted_cmd, NULL); +static DEVICE_ATTR(host_driver_reset, S_IRUGO, arcmsr_attr_host_driver_reset, NULL); +static DEVICE_ATTR(host_driver_abort, S_IRUGO, arcmsr_attr_host_driver_abort, NULL); +static DEVICE_ATTR(host_fw_model, S_IRUGO, arcmsr_attr_host_fw_model, NULL); +static DEVICE_ATTR(host_fw_version, S_IRUGO, arcmsr_attr_host_fw_version, NULL); +static DEVICE_ATTR(host_fw_request_len, S_IRUGO, arcmsr_attr_host_fw_request_len, NULL); +static DEVICE_ATTR(host_fw_numbers_queue, S_IRUGO, arcmsr_attr_host_fw_numbers_queue, NULL); +static DEVICE_ATTR(host_fw_sdram_size, S_IRUGO, arcmsr_attr_host_fw_sdram_size, NULL); +static DEVICE_ATTR(host_fw_hd_channels, S_IRUGO, arcmsr_attr_host_fw_hd_channels, NULL); + +struct device_attribute *arcmsr_host_attrs[] = { +	&dev_attr_host_driver_version, +	&dev_attr_host_driver_posted_cmd, +	&dev_attr_host_driver_reset, +	&dev_attr_host_driver_abort, +	&dev_attr_host_fw_model, +	&dev_attr_host_fw_version, +	&dev_attr_host_fw_request_len, +	&dev_attr_host_fw_numbers_queue, +	&dev_attr_host_fw_sdram_size, +	&dev_attr_host_fw_hd_channels,  	NULL,  }; |