mptfusion: fix msgContext in mptctl_hp_hostinfo
Subsystems (2)
PATCH 1/1 mptfusion: fix msgContext in mptctl_hp_hostinfo
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 <mailto:[email protected]>David Jeffery who found the issue and did the analysis.
drivers/message/fusion/mptctl.c +3 -3
@@ -2423,9 +2423,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 */
@@ -2572,11 +2572,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 );
James, This patch looks valid fix. Please consider this as an ACKed by me.
~ Kashyap
Quoted 55 lines
-----Original Message-----
From: Tomas Henzl [mailto:[email protected]]
Sent: Tuesday, March 08, 2011 7:42 PM
To: [email protected]
Cc: [email protected]; Desai, Kashyap
Subject: [PATCH] mptfusion: fix msgContext inmptctl_hp_hostinfoHi,
without this patch the
istwiRWRequest->MsgContextis always set to zero,
this patch saves the MsgContext in a msgcontext variable and then restores
the value.
Thanks to <mailto:[email protected]>David Jeffery who found the issue and did the analysis.Signed-off-by Tomas Henzl <[email protected]>drivers/message/fusion/mptctl.c +1
-1@@ -2423,9 +2423,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 drivers/message/fusion/mptctl.c +2
-2*/ @@ -2572,11 +2572,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);