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 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>
This commit is contained in:
committed by
Christoph Hellwig
parent
e6842f09aa
commit
73d02c200b
@@ -2432,9 +2432,9 @@ mptctl_hp_hostinfo(unsigned long arg, unsigned int data_size)
|
|||||||
int rc, cim_rev;
|
int rc, cim_rev;
|
||||||
ToolboxIstwiReadWriteRequest_t *IstwiRWRequest;
|
ToolboxIstwiReadWriteRequest_t *IstwiRWRequest;
|
||||||
MPT_FRAME_HDR *mf = NULL;
|
MPT_FRAME_HDR *mf = NULL;
|
||||||
MPIHeader_t *mpi_hdr;
|
|
||||||
unsigned long timeleft;
|
unsigned long timeleft;
|
||||||
int retval;
|
int retval;
|
||||||
|
u32 msgcontext;
|
||||||
|
|
||||||
/* Reset long to int. Should affect IA64 and SPARC only
|
/* 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;
|
IstwiRWRequest = (ToolboxIstwiReadWriteRequest_t *)mf;
|
||||||
mpi_hdr = (MPIHeader_t *) mf;
|
msgcontext = IstwiRWRequest->MsgContext;
|
||||||
memset(IstwiRWRequest,0,sizeof(ToolboxIstwiReadWriteRequest_t));
|
memset(IstwiRWRequest,0,sizeof(ToolboxIstwiReadWriteRequest_t));
|
||||||
|
IstwiRWRequest->MsgContext = msgcontext;
|
||||||
IstwiRWRequest->Function = MPI_FUNCTION_TOOLBOX;
|
IstwiRWRequest->Function = MPI_FUNCTION_TOOLBOX;
|
||||||
IstwiRWRequest->Tool = MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL;
|
IstwiRWRequest->Tool = MPI_TOOLBOX_ISTWI_READ_WRITE_TOOL;
|
||||||
IstwiRWRequest->MsgContext = mpi_hdr->MsgContext;
|
|
||||||
IstwiRWRequest->Flags = MPI_TB_ISTWI_FLAGS_READ;
|
IstwiRWRequest->Flags = MPI_TB_ISTWI_FLAGS_READ;
|
||||||
IstwiRWRequest->NumAddressBytes = 0x01;
|
IstwiRWRequest->NumAddressBytes = 0x01;
|
||||||
IstwiRWRequest->DataLength = cpu_to_le16(0x04);
|
IstwiRWRequest->DataLength = cpu_to_le16(0x04);
|
||||||
|
|||||||
Reference in New Issue
Block a user