]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'mlxsw-Fix-ACL-actions-error-condition-handling'
authorDavid S. Miller <davem@davemloft.net>
Fri, 3 Aug 2018 19:28:02 +0000 (12:28 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 3 Aug 2018 19:28:02 +0000 (12:28 -0700)
commit911bcd5b62b5e76f628a8295db4f8d2552438d64
treeefe603173134e9aa9dda6043038d0d22edf6b454
parentb8a8fb2bc2a999a6ba61db7ed698b3c50f0a5a23
parent9215feb9fe70116e43a221f1abc6fe6a1455f412
Merge branch 'mlxsw-Fix-ACL-actions-error-condition-handling'

Ido Schimmel says:

====================
mlxsw: Fix ACL actions error condition handling

Nir says:

Two issues were lately noticed within mlxsw ACL actions error condition
handling. The first patch deals with conflicting actions such as:

 # tc filter add dev swp49 parent ffff: \
   protocol ip pref 10 flower skip_sw dst_ip 192.168.101.1 \
   action goto chain 100 \
   action mirred egress redirect dev swp4

The second action will never execute, however SW model allows this
configuration, while the mlxsw driver cannot allow for it as it
implements actions in sets of up to three actions per set with a single
termination marking. Conflicting actions create a contradiction over
this single marking and thus cannot be configured. The fix replaces a
misplaced warning with an error code to be returned.

Patches 2-4 fix a condition of duplicate destruction of resources. Some
actions require allocation of specific resource prior to setting the
action itself. On error condition this resource was destroyed twice,
leading to a crash when using mirror action, and to a redundant
destruction in other cases, since for error condition rule destruction
also takes care of resource destruction. In order to fix this state a
symmetry in behavior is added and resource destruction also takes care
of removing the resource from rule's resource list.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>