tree d4353f5a3b622df47a39bfa84744c5f7e5c9e417
parent b6d5d8808b4c563a56414a4c4c6d652b5f87c088
author adam radford <aradford@gmail.com> 1292955803 -0800
committer James Bottomley <James.Bottomley@suse.de> 1293082012 -0600

[SCSI] megaraid_sas: Add struct megasas_instance_template changes

The following patch adds struct megasas_instance_template changes to
the megaraid_sas driver, and changes all code to use the new instance
entries:

   irqreturn_t (*service_isr )(int irq, void *devp);
   void (*tasklet)(unsigned long);
   u32 (*init_adapter)(struct megasas_instance *);
   u32 (*build_and_issue_cmd) (struct megasas_instance *, struct scsi_cmnd *);
   void (*issue_dcmd) (struct megasas_instance *instance,
                              struct megasas_cmd *cmd);

Signed-off-by: Adam Radford <aradford@gmail.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
