Skip to content

Commit

Permalink
[SCSI] mptlan: bug fix, only half the message frame is dma'd resultin…
Browse files Browse the repository at this point in the history
…g in corruption

NB = number of blocks.  This represents the number of blocks to
transfer.  The block size is based on the message frame size provided
in the ioc_facts. A value of zero indicates the entire message frame
should be copied. This is two bit value.  So by setting this to
non-zero vaule, you increase performance by reducing amount of data
needing to be dma'd.  The value that is stored in ioc->ReqeustNB is
sometimes a non-zero vaule, which creates a bug in mptlan, where not
the entire message frame is getting transfer to firware, resulting in
corruption.  This fix sets the default to zero, thus entire message
frame is copied.

Signed-off-by: Eric Moore <Eric.Moore@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
  • Loading branch information
Eric Moore authored and James Bottomley committed Oct 12, 2007
1 parent c51d0be commit e1fc2b5
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions drivers/message/fusion/mptlan.c
Original file line number Diff line number Diff line change
Expand Up @@ -1224,6 +1224,8 @@ mpt_lan_post_receive_buckets(struct mpt_lan_priv *priv)
}
pRecvReq = (LANReceivePostRequest_t *) mf;

i = le16_to_cpu(mf->u.frame.hwhdr.msgctxu.fld.req_idx);
mpt_dev->RequestNB[i] = 0;
count = buckets;
if (count > max)
count = max;
Expand Down

0 comments on commit e1fc2b5

Please sign in to comment.