ACK: [SRU][F][G][PATCH 1/1] net/mlx5e: Fix endianness handling in pedit mask
Kleber Souza
kleber.souza at canonical.com
Wed May 13 10:08:37 UTC 2020
On 13.05.20 12:05, Kleber Souza wrote:
> On 06.05.20 13:40, frank.heimes at canonical.com wrote:
>> From: Sebastian Hense <sebastian.hense1 at ibm.com>
>>
>> BugLink: https://bugs.launchpad.net/bugs/1872726
Hi Frank,
I also forgot a comment about this one as well :-).
Can you please set the 'linux -> Focal' nomination to 'In Progress'?
'Fix Committed' should be set by the kernel team when the patch is applied
only.
Thanks,
Kleber
>>
>> The mask value is provided as 64 bit and has to be casted in
>> either 32 or 16 bit. On big endian systems the wrong half was
>> casted which resulted in an all zero mask.
>>
>> Fixes: 2b64beba0251 ("net/mlx5e: Support header re-write of partial fields in TC pedit offload")
>>
>> Signed-off-by: Sebastian Hense <sebastian.hense1 at ibm.com>
>> Reviewed-by: Roi Dayan <roid at mellanox.com>
>> Signed-off-by: Saeed Mahameed <saeedm at mellanox.com>
>> (backported from commit 404402abd5f90aa90a134eb9604b1750c1941529)
>> Signed-off-by: Frank Heimes <frank.heimes at canonical.com>
>
> Acked-by: Kleber Sacilotto de Souza <kleber.souza at canonical.com>
>
>> ---
>> drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
>> index ec117e441425..a8817ded2959 100644
>> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
>> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
>> @@ -2424,10 +2424,11 @@ static int offload_pedit_fields(struct pedit_headers_action *hdrs,
>> field_bsize = f->size * BITS_PER_BYTE;
>>
>> if (field_bsize == 32) {
>> - mask_be32 = *(__be32 *)&mask;
>> + mask_be32 = (__be32)mask;
>> mask = (__force unsigned long)cpu_to_le32(be32_to_cpu(mask_be32));
>> } else if (field_bsize == 16) {
>> - mask_be16 = *(__be16 *)&mask;
>> + mask_be32 = (__be32)mask;
>> + mask_be16 = *(__be16 *)&mask_be32;
>> mask = (__force unsigned long)cpu_to_le16(be16_to_cpu(mask_be16));
>> }
>>
>>
>
More information about the kernel-team
mailing list