On 08/01/2025 19:24, Sudheer Kumar Doredla wrote: > CPSW ALE has 75-bit ALE entries stored across three 32-bit words. > The cpsw_ale_get_field() and cpsw_ale_set_field() functions support > ALE field entries spanning up to two words at the most. > > The cpsw_ale_get_field() and cpsw_ale_set_field() functions work as > expected when ALE field spanned across word1 and word2, but fails when > ALE field spanned across word2 and word3. > > For example, while reading the ALE field spanned across word2 and word3 > (i.e. bits 62 to 64), the word3 data shifted to an incorrect position > due to the index becoming zero while flipping. > The same issue occurred when setting an ALE entry. > > This issue has not been seen in practice but will be an issue in the future > if the driver supports accessing ALE fields spanning word2 and word3 > > Fix the methods to handle getting/setting fields spanning up to two words. > > Fixes: b685f1a58956 ("net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field()") > Signed-off-by: Sudheer Kumar Doredla <s-doredla@xxxxxx> > Reviewed-by: Simon Horman <horms@xxxxxxxxxx> Reviewed-by: Roger Quadros <rogerq@xxxxxxxxxx> -- cheers, -roger