diff options
author | Jack Morgenstein <jackm@dev.mellanox.co.il> | 2015-01-27 15:58:04 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-01-27 17:12:57 -0800 |
commit | dc7d500451277fde0a6fe46bd45249978c8e697e (patch) | |
tree | 5005b9d7c104d93530717110a53b37436ed43b79 /drivers | |
parent | 30a5da5b3301e386de99911fe6c1cd1aa37fb970 (diff) | |
download | linux-dc7d500451277fde0a6fe46bd45249978c8e697e.tar.gz linux-dc7d500451277fde0a6fe46bd45249978c8e697e.tar.bz2 linux-dc7d500451277fde0a6fe46bd45249978c8e697e.zip |
net/mlx4_core: Fix struct mlx4_vhcr_cmd to make implicit padding explicit
Struct mlx4_vhcr was implicitly padded by the gcc compiler on 64-bit
architectures.
This commit makes that padding explicit, to prevent issues with
changing compilers and with incompatibilities between 32-bit architecture
implicit padding and 64-bit architecture implicit padding.
This structure is used in virtualization for communication between
the Host and its Guests. The explicit padding allows 64-bit Hosts
(old and new) to continue to interoperate with 64-bit Guests (old and new).
However, without this fix, 64-bit Hosts could not interoperate with 32-bit
Guests (since these did not insert the padding dword). With this fix,
32-bit Guests will be able to interoperate with 64-bit Hosts (since
the structure offsets will be identical on both).
Reported-by: Alexander Schmidt <alexs@linux.vnet.ibm.com>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/mlx4.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/mlx4.h b/drivers/net/ethernet/mellanox/mlx4/mlx4.h index 096a81c16a9b..148dc0945aab 100644 --- a/drivers/net/ethernet/mellanox/mlx4/mlx4.h +++ b/drivers/net/ethernet/mellanox/mlx4/mlx4.h @@ -196,6 +196,7 @@ struct mlx4_vhcr { struct mlx4_vhcr_cmd { __be64 in_param; __be32 in_modifier; + u32 reserved1; __be64 out_param; __be16 token; u16 reserved; |