summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Khlebnikov <khlebnikov@yandex-team.ru>2019-05-15 14:40:52 +0300
committerDavid S. Miller <davem@davemloft.net>2019-05-16 12:12:40 -0700
commit752beb5ec4413d40434957e427c6c48d5043f805 (patch)
tree0519e27006d93cebe14fd330464728190a79aed8
parenta9eeb998c28d5506616426bd3a216bd5735a18b8 (diff)
downloadlinux-752beb5ec4413d40434957e427c6c48d5043f805.tar.gz
linux-752beb5ec4413d40434957e427c6c48d5043f805.tar.bz2
linux-752beb5ec4413d40434957e427c6c48d5043f805.zip
net: bpfilter: fallback to netfilter if failed to load bpfilter kernel module
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> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv4/bpfilter/sockopt.c6
1 files changed, 2 insertions, 4 deletions
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;
}
}