diff options
| author | Christoph Hellwig <hch@infradead.org> | 2014-02-21 02:20:59 +0400 | 
|---|---|---|
| committer | James Bottomley <JBottomley@Parallels.com> | 2014-03-27 19:26:31 +0400 | 
| commit | 0f2bb84d2a68448c29d46f9f77a78bb4ed0218db (patch) | |
| tree | 567416ea674f58eb93e0dc2195cdf6b2483c2ac7 /drivers/scsi/scsi.c | |
| parent | c38c007af04b928b5285da8cc44fbe2f4810e24e (diff) | |
| download | linux-0f2bb84d2a68448c29d46f9f77a78bb4ed0218db.tar.xz | |
[SCSI] megaraid: simplify internal command handling
We don't use the passed in scsi command for anything, so just add a adapter-
wide internal status to go along with the internal scb that is used unter
int_mtx to pass back the return value and get rid of all the complexities
and abuse of the scsi_cmnd structure.
This gets rid of the only user of scsi_allocate_command/scsi_free_command,
which can now be removed.
[jejb: checkpatch fixes]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Adam Radford <aradford@gmail.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/scsi.c')
| -rw-r--r-- | drivers/scsi/scsi.c | 56 | 
1 files changed, 0 insertions, 56 deletions
| diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index 1d98ac960887..c4dd0bfc663a 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -403,62 +403,6 @@ static void scsi_put_host_cmd_pool(gfp_t gfp_mask)  }  /** - * scsi_allocate_command - get a fully allocated SCSI command - * @gfp_mask:	allocation mask - * - * This function is for use outside of the normal host based pools. - * It allocates the relevant command and takes an additional reference - * on the pool it used.  This function *must* be paired with - * scsi_free_command which also has the identical mask, otherwise the - * free pool counts will eventually go wrong and you'll trigger a bug. - * - * This function should *only* be used by drivers that need a static - * command allocation at start of day for internal functions. - */ -struct scsi_cmnd *scsi_allocate_command(gfp_t gfp_mask) -{ -	struct scsi_host_cmd_pool *pool = scsi_get_host_cmd_pool(gfp_mask); - -	if (!pool) -		return NULL; - -	return scsi_pool_alloc_command(pool, gfp_mask); -} -EXPORT_SYMBOL(scsi_allocate_command); - -/** - * scsi_free_command - free a command allocated by scsi_allocate_command - * @gfp_mask:	mask used in the original allocation - * @cmd:	command to free - * - * Note: using the original allocation mask is vital because that's - * what determines which command pool we use to free the command.  Any - * mismatch will cause the system to BUG eventually. - */ -void scsi_free_command(gfp_t gfp_mask, struct scsi_cmnd *cmd) -{ -	struct scsi_host_cmd_pool *pool = scsi_get_host_cmd_pool(gfp_mask); - -	/* -	 * this could trigger if the mask to scsi_allocate_command -	 * doesn't match this mask.  Otherwise we're guaranteed that this -	 * succeeds because scsi_allocate_command must have taken a reference -	 * on the pool -	 */ -	BUG_ON(!pool); - -	scsi_pool_free_command(pool, cmd); -	/* -	 * scsi_put_host_cmd_pool is called twice; once to release the -	 * reference we took above, and once to release the reference -	 * originally taken by scsi_allocate_command -	 */ -	scsi_put_host_cmd_pool(gfp_mask); -	scsi_put_host_cmd_pool(gfp_mask); -} -EXPORT_SYMBOL(scsi_free_command); - -/**   * scsi_setup_command_freelist - Setup the command freelist for a scsi host.   * @shost: host to allocate the freelist for.   * | 
