qed: Prevent stack corruption on MFW interaction
authorMintz, Yuval <Yuval.Mintz@cavium.com>
Sun, 6 Nov 2016 15:12:27 +0000 (17:12 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 9 Nov 2016 18:27:25 +0000 (13:27 -0500)
commitbb48024284327768debd03a197d7c4179ec6ca05
tree0cb38c93e295418812234bb180fdac7fc951d910
parentb12ab9b11966ee6c724e34b2f0f13ea76932b6bf
qed: Prevent stack corruption on MFW interaction

Driver uses a union for copying data to & from management firmware
when interacting with it.
Problem is that the function always copies sizeof(union) while commit
2edbff8dcb5d ("qed: Learn resources from management firmware") is casting
a union elements which is of smaller size [24-byte instead of 88-bytes].

Also, the union contains some inappropriate elements which increase its
size [should have been 32-bytes]. While this shouldn't corrupt other
PF messages to the MFW [as management firmware enforces permissions so
that each PF is allowed to write only to its own mailbox] we fix this
here as well.

Fixes: 2edbff8dcb5d ("qed: Learn resources from management firmware")
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qed/qed_hsi.h
drivers/net/ethernet/qlogic/qed/qed_mcp.c