staging: unisys: visorbus: tolerate larger-than-expected controlvm channel
Use the dynamic size of the controlvm channel (struct channel_header.size) instead of the statically computed sizeof(struct controlvm_channel) when determining the valid bounds for visorchannel_read() and visorchannel_write(). This prevents an observed problem where kdump was failing because controlvm_channel.local_crash_msg_offset was pointing beyond the statically computed size of the channel, even though the channel was physically large enough. This was causing visorchannel_read() to unecessarily fail, because we thought we were attempting to access memory outside of the channel. Signed-off-by: Timothy Sell <timothy.sell@unisys.com> Signed-off-by: David Kershner <david.kershner@unisys.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing
Please register or sign in to comment