From: Tariq Toukan <[email protected]>
Date: Tue, 24 Jul 2018 13:53:00 +0300
> The cited patch added a call to dev_change_tx_queue_len in
> SIOCSIFTXQLEN case.
> This obsoletes the new len comparison check done before the function call.
> Remove it here.
>
> For the desicion of keep/remove the negative value check, we examine the
> range check in dev_change_tx_queue_len.
> On 64-bit we will fail with -ERANGE. The 32-bit int ifr_qlen will be sign
> extended to 64-bits when it is passed into dev_change_tx_queue_len(). And
> then for negative values this test triggers:
>
> if (new_len != (unsigned int)new_len)
> return -ERANGE;
>
> because:
> if (0xffffffffWHATEVER != 0x00000000WHATEVER)
>
> On 32-bit the signed value will be accepted, changing behavior.
>
> Therefore, the negative value check is kept.
>
> Fixes: 3f76df198288 ("net: use dev_change_tx_queue_len() for SIOCSIFTXQLEN")
> Signed-off-by: Tariq Toukan <[email protected]>
> Reviewed-by: Eran Ben Elisha <[email protected]>
Applied, thank you.