Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d626e3bf authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6:
  [SCSI] aic94xx: fix section mismatch
  [SCSI] u14-34f: Fix 32bit only problem
  [SCSI] dpt_i2o: sysfs code
  [SCSI] dpt_i2o: 64 bit support
  [SCSI] dpt_i2o: move from virt_to_bus/bus_to_virt to dma_alloc_coherent
  [SCSI] dpt_i2o: use standard __init / __exit code
  [SCSI] megaraid_sas: fix suspend/resume sections
  [SCSI] aacraid: Add Power Management support
  [SCSI] aacraid: Fix jbod operations scan issues
  [SCSI] aacraid: Fix warning about macro side-effects
  [SCSI] add support for variable length extended commands
  [SCSI] Let scsi_cmnd->cmnd use request->cmd buffer
  [SCSI] bsg: add large command support
  [SCSI] aacraid: Fix down_interruptible() to check the return value correctly
  [SCSI] megaraid_sas; Update the Version and Changelog
  [SCSI] ibmvscsi: Handle non SCSI error status
  [SCSI] bug fix for free list handling
  [SCSI] ipr: Rename ipr's state scsi host attribute to prevent collisions
  [SCSI] megaraid_mbox: fix Dell CERC firmware problem
parents b66e1f11 7ad4a485
Loading
Loading
Loading
Loading
+22 −0
Original line number Original line Diff line number Diff line
1 Release Date    : Mon. March 10 11:02:31 PDT 2008 -
			(emaild-id:megaraidlinux@lsi.com)
			Sumant Patro
			Bo Yang

2 Current Version : 00.00.03.20-RC1
3 Older Version   : 00.00.03.16

1. Rollback the sense info implementation
	Sense buffer ptr data type in the ioctl path is reverted back
	to u32 * as in previous versions of driver.

2. Fixed the driver frame count.
	When Driver sent wrong frame count to firmware.  As this
	particular command is sent to drive, FW is seeing continuous
	chip resets and so the command will timeout.

3. Add the new controller(1078DE) support to the driver
	and Increase the max_wait to 60 from 10 in the controller
	operational status.  With this max_wait increase, driver will
	make sure the FW will 	finish the pending cmd for KDUMP case.

1 Release Date    : Thur. Nov. 07 16:30:43 PST 2007 -
1 Release Date    : Thur. Nov. 07 16:30:43 PST 2007 -
			(emaild-id:megaraidlinux@lsi.com)
			(emaild-id:megaraidlinux@lsi.com)
			Sumant Patro
			Sumant Patro
+9 −3
Original line number Original line Diff line number Diff line
@@ -174,7 +174,11 @@ static int bsg_io_schedule(struct bsg_device *bd)
static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
				struct sg_io_v4 *hdr, int has_write_perm)
				struct sg_io_v4 *hdr, int has_write_perm)
{
{
	memset(rq->cmd, 0, BLK_MAX_CDB); /* ATAPI hates garbage after CDB */
	if (hdr->request_len > BLK_MAX_CDB) {
		rq->cmd = kzalloc(hdr->request_len, GFP_KERNEL);
		if (!rq->cmd)
			return -ENOMEM;
	}


	if (copy_from_user(rq->cmd, (void *)(unsigned long)hdr->request,
	if (copy_from_user(rq->cmd, (void *)(unsigned long)hdr->request,
			   hdr->request_len))
			   hdr->request_len))
@@ -211,8 +215,6 @@ bsg_validate_sgv4_hdr(struct request_queue *q, struct sg_io_v4 *hdr, int *rw)


	if (hdr->guard != 'Q')
	if (hdr->guard != 'Q')
		return -EINVAL;
		return -EINVAL;
	if (hdr->request_len > BLK_MAX_CDB)
		return -EINVAL;
	if (hdr->dout_xfer_len > (q->max_sectors << 9) ||
	if (hdr->dout_xfer_len > (q->max_sectors << 9) ||
	    hdr->din_xfer_len > (q->max_sectors << 9))
	    hdr->din_xfer_len > (q->max_sectors << 9))
		return -EIO;
		return -EIO;
@@ -302,6 +304,8 @@ bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr)
	}
	}
	return rq;
	return rq;
out:
out:
	if (rq->cmd != rq->__cmd)
		kfree(rq->cmd);
	blk_put_request(rq);
	blk_put_request(rq);
	if (next_rq) {
	if (next_rq) {
		blk_rq_unmap_user(next_rq->bio);
		blk_rq_unmap_user(next_rq->bio);
@@ -455,6 +459,8 @@ static int blk_complete_sgv4_hdr_rq(struct request *rq, struct sg_io_v4 *hdr,
		ret = rq->errors;
		ret = rq->errors;


	blk_rq_unmap_user(bio);
	blk_rq_unmap_user(bio);
	if (rq->cmd != rq->__cmd)
		kfree(rq->cmd);
	blk_put_request(rq);
	blk_put_request(rq);


	return ret;
	return ret;
+2 −3
Original line number Original line Diff line number Diff line
@@ -33,13 +33,12 @@
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_cmnd.h>


/* Command group 3 is reserved and should never be used.  */
/* Command group 3 is reserved and should never be used.  */
const unsigned char scsi_command_size[8] =
const unsigned char scsi_command_size_tbl[8] =
{
{
	6, 10, 10, 12,
	6, 10, 10, 12,
	16, 12, 10, 10
	16, 12, 10, 10
};
};

EXPORT_SYMBOL(scsi_command_size_tbl);
EXPORT_SYMBOL(scsi_command_size);


#include <scsi/sg.h>
#include <scsi/sg.h>


+1 −1
Original line number Original line Diff line number Diff line
@@ -1487,7 +1487,7 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done)
	if (scsi_sg_count(cmd) && sbp2_map_scatterlist(orb, device, lu) < 0)
	if (scsi_sg_count(cmd) && sbp2_map_scatterlist(orb, device, lu) < 0)
		goto out;
		goto out;


	memcpy(orb->request.command_block, cmd->cmnd, COMMAND_SIZE(*cmd->cmnd));
	memcpy(orb->request.command_block, cmd->cmnd, cmd->cmd_len);


	orb->base.callback = complete_command_orb;
	orb->base.callback = complete_command_orb;
	orb->base.request_bus =
	orb->base.request_bus =
+1 −1
Original line number Original line Diff line number Diff line
@@ -1055,7 +1055,7 @@ static void zfcp_scsi_dbf_event(const char *tag, const char *tag2, int level,
				rec->scsi_result = scsi_cmnd->result;
				rec->scsi_result = scsi_cmnd->result;
				rec->scsi_cmnd = (unsigned long)scsi_cmnd;
				rec->scsi_cmnd = (unsigned long)scsi_cmnd;
				rec->scsi_serial = scsi_cmnd->serial_number;
				rec->scsi_serial = scsi_cmnd->serial_number;
				memcpy(rec->scsi_opcode, &scsi_cmnd->cmnd,
				memcpy(rec->scsi_opcode, scsi_cmnd->cmnd,
					min((int)scsi_cmnd->cmd_len,
					min((int)scsi_cmnd->cmd_len,
						ZFCP_DBF_SCSI_OPCODE));
						ZFCP_DBF_SCSI_OPCODE));
				rec->scsi_retries = scsi_cmnd->retries;
				rec->scsi_retries = scsi_cmnd->retries;
Loading