]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
xfrm: Remove documentation WARN_ON to limit return values for offloaded SA
authorPatrisious Haddad <phaddad@nvidia.com>
Sun, 11 Aug 2024 08:56:42 +0000 (11:56 +0300)
committerSteffen Klassert <steffen.klassert@secunet.com>
Fri, 16 Aug 2024 06:17:05 +0000 (08:17 +0200)
The original idea to put WARN_ON() on return value from driver code was
to make sure that packet offload doesn't have silent fallback to
SW implementation, like crypto offload has.

In reality, this is not needed as all *swan implementations followed
this request and used explicit configuration style to make sure that
"users will get what they ask".
So instead of forcing drivers to make sure that even their internal flows
don't return -EOPNOTSUPP, let's remove this WARN_ON.

Signed-off-by: Patrisious Haddad <phaddad@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/xfrm/xfrm_device.c

index 9a44d363ba6205621d6dc30359df90ed04c0575b..f123b7c9ec82594fd2c4b5275f3fc737ad5449cb 100644 (file)
@@ -328,12 +328,8 @@ int xfrm_dev_state_add(struct net *net, struct xfrm_state *x,
                /* User explicitly requested packet offload mode and configured
                 * policy in addition to the XFRM state. So be civil to users,
                 * and return an error instead of taking fallback path.
-                *
-                * This WARN_ON() can be seen as a documentation for driver
-                * authors to do not return -EOPNOTSUPP in packet offload mode.
                 */
-               WARN_ON(err == -EOPNOTSUPP && is_packet_offload);
-               if (err != -EOPNOTSUPP || is_packet_offload) {
+               if ((err != -EOPNOTSUPP && !is_packet_offload) || is_packet_offload) {
                        NL_SET_ERR_MSG_WEAK(extack, "Device failed to offload this state");
                        return err;
                }