[SCSI] mpt3sas: cut and paste bug storing trigger mpi
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 7 Dec 2012 10:56:22 +0000 (13:56 +0300)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 29 Jan 2013 02:57:34 +0000 (13:57 +1100)
ioc->diag_trigger_mpi is an SL_WH_MPI_TRIGGERS_T struct.

There is a cut and paste error here and SL_WH_EVENT_TRIGGERS_T is used
instead of SL_WH_MPI_TRIGGERS_T.  Since the SL_WH_EVENT_TRIGGERS_T is
smaller than SL_WH_MPI_TRIGGERS_T, it means we only clear part of the
buffer.

I've changed it to use sizeof(ioc->diag_trigger_mpi) which is a bit
simpler.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: "Sreekanth Reddy" <Sreekanth.reddy@lsi.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/mpt3sas/mpt3sas_ctl.c

index 8af944d7d13da258d5ddff2c0f82aa2bb02ff33c..02cd9458d6092d045b80fc921a97bd801af24198 100644 (file)
@@ -3136,7 +3136,7 @@ _ctl_diag_trigger_mpi_store(struct device *cdev,
        spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
        sz = min(sizeof(struct SL_WH_MPI_TRIGGERS_T), count);
        memset(&ioc->diag_trigger_mpi, 0,
-           sizeof(struct SL_WH_EVENT_TRIGGERS_T));
+           sizeof(ioc->diag_trigger_mpi));
        memcpy(&ioc->diag_trigger_mpi, buf, sz);
        if (ioc->diag_trigger_mpi.ValidEntries > NUM_VALID_ENTRIES)
                ioc->diag_trigger_mpi.ValidEntries = NUM_VALID_ENTRIES;