diff options
author | Stephen Cameron <stephenmcameron@gmail.com> | 2015-01-23 16:44:40 -0600 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2015-02-02 09:57:43 -0800 |
commit | c05e8866a17470a978b2c7cbc73d51891cd78f0e (patch) | |
tree | cc608344f62071c3d5f192d1819c440517433786 /drivers/scsi/hpsa.c | |
parent | f42e81e156bc34b7e52c50e3e042ec21e85015ee (diff) | |
download | lwn-c05e8866a17470a978b2c7cbc73d51891cd78f0e.tar.gz lwn-c05e8866a17470a978b2c7cbc73d51891cd78f0e.zip |
hpsa: do not use function pointers in fast path command submission
Performance tweak, avoid unnecessary function calls.
Reviewed-by: Scott Teel <scott.teel@pmcs.com>
Signed-off-by: Don Brace <don.brace@pmcs.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/scsi/hpsa.c')
-rw-r--r-- | drivers/scsi/hpsa.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index 18bcba99b286..a23277d24383 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c @@ -821,19 +821,21 @@ static void dial_up_lockup_detection_on_fw_flash_complete(struct ctlr_info *h, static void enqueue_cmd_and_start_io(struct ctlr_info *h, struct CommandList *c) { + dial_down_lockup_detection_during_fw_flash(h, c); + atomic_inc(&h->commands_outstanding); switch (c->cmd_type) { case CMD_IOACCEL1: set_ioaccel1_performant_mode(h, c); + writel(c->busaddr, h->vaddr + SA5_REQUEST_PORT_OFFSET); break; case CMD_IOACCEL2: set_ioaccel2_performant_mode(h, c); + writel(c->busaddr, h->vaddr + IOACCEL2_INBOUND_POSTQ_32); break; default: set_performant_mode(h, c); + h->access.submit_command(h, c); } - dial_down_lockup_detection_during_fw_flash(h, c); - atomic_inc(&h->commands_outstanding); - h->access.submit_command(h, c); } static inline int is_hba_lunid(unsigned char scsi3addr[]) |