Commit d54c5c24 authored by Stephen Cameron's avatar Stephen Cameron Committed by James Bottomley

hpsa: reserve some commands for use by driver

We need to reserve some commands for device rescans,
aborts, and the pass through ioctls, etc. so we cannot
give them all to the scsi mid layer.

This is in preparation for removing cmd_special_alloc and
cmd_special_free so that we can stop queuing commands internally
in the driver so that we can remove the locks thta protect the
queue that we will no longer have.
Reviewed-by: default avatarScott Teel <scott.teel@pmcs.com>
Signed-off-by: default avatarDon Brace <don.brace@pmcs.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 8947fd10
...@@ -4064,11 +4064,14 @@ static int hpsa_register_scsi(struct ctlr_info *h) ...@@ -4064,11 +4064,14 @@ static int hpsa_register_scsi(struct ctlr_info *h)
sh->max_cmd_len = MAX_COMMAND_SIZE; sh->max_cmd_len = MAX_COMMAND_SIZE;
sh->max_lun = HPSA_MAX_LUN; sh->max_lun = HPSA_MAX_LUN;
sh->max_id = HPSA_MAX_LUN; sh->max_id = HPSA_MAX_LUN;
sh->can_queue = h->nr_cmds; sh->can_queue = h->nr_cmds -
HPSA_CMDS_RESERVED_FOR_ABORTS -
HPSA_CMDS_RESERVED_FOR_DRIVER -
HPSA_MAX_CONCURRENT_PASSTHRUS;
if (h->hba_mode_enabled) if (h->hba_mode_enabled)
sh->cmd_per_lun = 7; sh->cmd_per_lun = 7;
else else
sh->cmd_per_lun = h->nr_cmds; sh->cmd_per_lun = sh->can_queue;
sh->sg_tablesize = h->maxsgentries; sh->sg_tablesize = h->maxsgentries;
h->scsi_host = sh; h->scsi_host = sh;
sh->hostdata[0] = (unsigned long) h; sh->hostdata[0] = (unsigned long) h;
......
...@@ -115,6 +115,8 @@ struct ctlr_info { ...@@ -115,6 +115,8 @@ struct ctlr_info {
void __iomem *vaddr; void __iomem *vaddr;
unsigned long paddr; unsigned long paddr;
int nr_cmds; /* Number of commands allowed on this controller */ int nr_cmds; /* Number of commands allowed on this controller */
#define HPSA_CMDS_RESERVED_FOR_ABORTS 2
#define HPSA_CMDS_RESERVED_FOR_DRIVER 1
struct CfgTable __iomem *cfgtable; struct CfgTable __iomem *cfgtable;
int interrupts_enabled; int interrupts_enabled;
int max_commands; int max_commands;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment