diff mbox series

net: bpfilter: fallback to netfilter if failed to loadbpfilter kernel module

Message ID 155792045295.940.7526963251434168966.stgit@buzz
State Accepted
Delegated to: David Miller
Headers show
Series net: bpfilter: fallback to netfilter if failed to loadbpfilter kernel module | expand

Commit Message

Konstantin Khlebnikov May 15, 2019, 11:40 a.m. UTC
If bpfilter is not available return ENOPROTOOPT to fallback to netfilter.

Function request_module() returns both errors and userspace exit codes.
Just ignore them. Rechecking bpfilter_ops is enough.

Fixes: d2ba09c17a06 ("net: add skeleton of bpfilter kernel module")
Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
---
 net/ipv4/bpfilter/sockopt.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Comments

David Miller May 16, 2019, 7:12 p.m. UTC | #1
From: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Date: Wed, 15 May 2019 14:40:52 +0300

> If bpfilter is not available return ENOPROTOOPT to fallback to netfilter.
> 
> Function request_module() returns both errors and userspace exit codes.
> Just ignore them. Rechecking bpfilter_ops is enough.
> 
> Fixes: d2ba09c17a06 ("net: add skeleton of bpfilter kernel module")
> Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>

Applied, thanks.
diff mbox series

Patch

diff --git a/net/ipv4/bpfilter/sockopt.c b/net/ipv4/bpfilter/sockopt.c
index 15427163a041..0480918bfc7c 100644
--- a/net/ipv4/bpfilter/sockopt.c
+++ b/net/ipv4/bpfilter/sockopt.c
@@ -30,13 +30,11 @@  static int bpfilter_mbox_request(struct sock *sk, int optname,
 	mutex_lock(&bpfilter_ops.lock);
 	if (!bpfilter_ops.sockopt) {
 		mutex_unlock(&bpfilter_ops.lock);
-		err = request_module("bpfilter");
+		request_module("bpfilter");
 		mutex_lock(&bpfilter_ops.lock);
 
-		if (err)
-			goto out;
 		if (!bpfilter_ops.sockopt) {
-			err = -ECHILD;
+			err = -ENOPROTOOPT;
 			goto out;
 		}
 	}