staging: unisys: visorhba: remove unused (and broken) logic

The handling of CMD_NOTIFYGUEST_TYPE messages from the IO partition appears
to be only partially implemented, but fortunately it is never used in our
current environment.  This patch deletes the unused code.

Signed-off-by: Tim Sell <Timothy.Sell@unisys.com>
Signed-off-by: David Kershner <david.kershner@unisys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Tim Sell 2016-05-12 09:14:42 -04:00 committed by Greg Kroah-Hartman
parent a7d656063e
commit bf817f2f40
1 changed files with 4 additions and 74 deletions

View File

@ -100,14 +100,6 @@ struct scsipending {
char cmdtype; /* Type of pointer that is being stored */
};
/* Work Data for dar_work_queue */
struct diskaddremove {
u8 add; /* 0-remove, 1-add */
struct Scsi_Host *shost; /* Scsi Host for this visorhba instance */
u32 channel, id, lun; /* Disk Path */
struct diskaddremove *next;
};
/* Each scsi_host has a host_data area that contains this struct. */
struct visorhba_devdata {
struct Scsi_Host *scsihost;
@ -967,62 +959,6 @@ complete_scsi_command(struct uiscmdrsp *cmdrsp, struct scsi_cmnd *scsicmd)
scsicmd->scsi_done(scsicmd);
}
static struct work_struct dar_work_queue;
static struct diskaddremove *dar_work_queue_head;
static spinlock_t dar_work_queue_lock; /* Lock to protet dar_work_queue_head */
static unsigned short dar_work_queue_sched;
/**
* queue_disk_add_remove - IOSP has sent us a add/remove request
* @dar: disk add/remove request
*
* Queue the work needed to add/remove a disk.
* Returns void
*/
static inline void queue_disk_add_remove(struct diskaddremove *dar)
{
unsigned long flags;
spin_lock_irqsave(&dar_work_queue_lock, flags);
if (!dar_work_queue_head) {
dar_work_queue_head = dar;
dar->next = NULL;
} else {
dar->next = dar_work_queue_head;
dar_work_queue_head = dar;
}
if (!dar_work_queue_sched) {
schedule_work(&dar_work_queue);
dar_work_queue_sched = 1;
}
spin_unlock_irqrestore(&dar_work_queue_lock, flags);
}
/**
* process_disk_notify - IOSP has sent a process disk notify event
* @shost: Scsi hot
* @cmdrsp: Response from the IOSP
*
* Queue it to the work queue.
* Return void.
*/
static void process_disk_notify(struct Scsi_Host *shost,
struct uiscmdrsp *cmdrsp)
{
struct diskaddremove *dar;
dar = kzalloc(sizeof(*dar), GFP_ATOMIC);
if (!dar)
return;
dar->add = cmdrsp->disknotify.add;
dar->shost = shost;
dar->channel = cmdrsp->disknotify.channel;
dar->id = cmdrsp->disknotify.id;
dar->lun = cmdrsp->disknotify.lun;
queue_disk_add_remove(dar);
}
/**
* drain_queue - pull responses out of iochannel
* @cmdrsp: Response from the IOSP
@ -1035,7 +971,6 @@ static void
drain_queue(struct uiscmdrsp *cmdrsp, struct visorhba_devdata *devdata)
{
struct scsi_cmnd *scsicmd;
struct Scsi_Host *shost = devdata->scsihost;
while (1) {
if (!visorchannel_signalremove(devdata->dev->visorchannel,
@ -1059,15 +994,10 @@ drain_queue(struct uiscmdrsp *cmdrsp, struct visorhba_devdata *devdata)
break;
complete_taskmgmt_command(&devdata->idr, cmdrsp,
cmdrsp->scsitaskmgmt.result);
} else if (cmdrsp->cmdtype == CMD_NOTIFYGUEST_TYPE) {
/* The vHba pointer has no meaning in a
* guest partition. Let's be safe and set it
* to NULL now. Do not use it here!
*/
cmdrsp->disknotify.v_hba = NULL;
process_disk_notify(shost, cmdrsp);
}
/* cmdrsp is now available for resuse */
} else if (cmdrsp->cmdtype == CMD_NOTIFYGUEST_TYPE)
dev_err_once(&devdata->dev->device,
"ignoring unsupported NOTIFYGUEST\n");
/* cmdrsp is now available for re-use */
}
}