mptfusion: fix msgContext in mptctl_hp_hostinfo
authorTomas Henzl <thenzl@redhat.com>
Wed, 28 May 2014 16:04:20 +0000 (18:04 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 28 May 2014 16:14:16 +0000 (18:14 +0200)
Hi,

without this patch the istwiRWRequest->MsgContext is always set to zero,
this patch saves the MsgContext in a msgcontext variable and then restores
the value.
Thanks to  David Jeffery who found the issue and did the analysis.

Signed-off-by: Tomas Henzl <thenzl@redhat.com>
Acked-by: Desai, Kashyap <Kashyap.Desai@lsi.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/message/fusion/mptctl.c

index dcc8385adeb3b8b830a58cfad62f19604122a52b..8a050e8856881ada1094954c5ce04f9584ed36e7 100644 (file)
@@ -2432,9 +2432,9 @@ mptctl_hp_hostinfo(unsigned long arg, unsigned int data_size)
        int                     rc, cim_rev;
        ToolboxIstwiReadWriteRequest_t  *IstwiRWRequest;
        MPT_FRAME_HDR           *mf = NULL;
-       MPIHeader_t             *mpi_hdr;
        unsigned long           timeleft;
        int                     retval;
+       u32                     msgcontext;
 
        /* Reset long to int. Should affect IA64 and SPARC only
         */
@@ -2581,11 +2581,11 @@ mptctl_hp_hostinfo(unsigned long arg, unsigned int data_size)
        }
 
        IstwiRWRequest = (ToolboxIstwiReadWriteRequest_t *)mf;
-       mpi_hdr = (MPIHeader_t *) mf;
+       msgcontext = IstwiRWRequest->MsgContext;
        memset(IstwiRWRequest,0,sizeof(ToolboxIstwiReadWriteRequest_t));
+       IstwiRWRequest->MsgContext = msgcontext;
        IstwiRWRequest->Function = MPI_FUNCTION_TOOLBOX;
        IstwiRWRequest->Tool = MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL;
-       IstwiRWRequest->MsgContext = mpi_hdr->MsgContext;
        IstwiRWRequest->Flags = MPI_TB_ISTWI_FLAGS_READ;
        IstwiRWRequest->NumAddressBytes = 0x01;
        IstwiRWRequest->DataLength = cpu_to_le16(0x04);