* [PATCH nf-next] netfilter: conntrack: pptp: use single option structure
@ 2022-01-20 15:09 Florian Westphal
0 siblings, 0 replies; 5+ messages in thread
From: Florian Westphal @ 2022-01-20 15:09 UTC (permalink / raw)
To: netfilter-devel; +Cc: Florian Westphal
Instead of exposing the four hooks individually use a sinle hook ops
structure.
Signed-off-by: Florian Westphal <fw@strlen.de>
---
include/linux/netfilter/nf_conntrack_pptp.h | 38 ++++++-------
net/ipv4/netfilter/nf_nat_pptp.c | 24 ++++-----
net/netfilter/nf_conntrack_pptp.c | 60 +++++++--------------
3 files changed, 45 insertions(+), 77 deletions(-)
diff --git a/include/linux/netfilter/nf_conntrack_pptp.h b/include/linux/netfilter/nf_conntrack_pptp.h
index a28aa289afdc..c3bdb4370938 100644
--- a/include/linux/netfilter/nf_conntrack_pptp.h
+++ b/include/linux/netfilter/nf_conntrack_pptp.h
@@ -300,26 +300,22 @@ union pptp_ctrl_union {
struct PptpSetLinkInfo setlink;
};
-extern int
-(*nf_nat_pptp_hook_outbound)(struct sk_buff *skb,
- struct nf_conn *ct, enum ip_conntrack_info ctinfo,
- unsigned int protoff,
- struct PptpControlHeader *ctlh,
- union pptp_ctrl_union *pptpReq);
-
-extern int
-(*nf_nat_pptp_hook_inbound)(struct sk_buff *skb,
- struct nf_conn *ct, enum ip_conntrack_info ctinfo,
- unsigned int protoff,
- struct PptpControlHeader *ctlh,
- union pptp_ctrl_union *pptpReq);
-
-extern void
-(*nf_nat_pptp_hook_exp_gre)(struct nf_conntrack_expect *exp_orig,
- struct nf_conntrack_expect *exp_reply);
-
-extern void
-(*nf_nat_pptp_hook_expectfn)(struct nf_conn *ct,
- struct nf_conntrack_expect *exp);
+struct nf_nat_pptp_hook {
+ int (*outbound)(struct sk_buff *skb,
+ struct nf_conn *ct, enum ip_conntrack_info ctinfo,
+ unsigned int protoff,
+ struct PptpControlHeader *ctlh,
+ union pptp_ctrl_union *pptpReq);
+ int (*inbound)(struct sk_buff *skb,
+ struct nf_conn *ct, enum ip_conntrack_info ctinfo,
+ unsigned int protoff,
+ struct PptpControlHeader *ctlh,
+ union pptp_ctrl_union *pptpReq);
+ void (*exp_gre)(struct nf_conntrack_expect *exp_orig,
+ struct nf_conntrack_expect *exp_reply);
+ void (*expectfn)(struct nf_conn *ct,
+ struct nf_conntrack_expect *exp);
+};
+extern const struct nf_nat_pptp_hook __rcu *nf_nat_pptp_hook;
#endif /* _NF_CONNTRACK_PPTP_H */
diff --git a/net/ipv4/netfilter/nf_nat_pptp.c b/net/ipv4/netfilter/nf_nat_pptp.c
index 3f248a19faa3..fab357cc8559 100644
--- a/net/ipv4/netfilter/nf_nat_pptp.c
+++ b/net/ipv4/netfilter/nf_nat_pptp.c
@@ -295,28 +295,24 @@ pptp_inbound_pkt(struct sk_buff *skb,
return NF_ACCEPT;
}
+static const struct nf_nat_pptp_hook pptp_hooks = {
+ .outbound = pptp_outbound_pkt,
+ .inbound = pptp_inbound_pkt,
+ .exp_gre = pptp_exp_gre,
+ .expectfn = pptp_nat_expected,
+};
+
static int __init nf_nat_helper_pptp_init(void)
{
- BUG_ON(nf_nat_pptp_hook_outbound != NULL);
- RCU_INIT_POINTER(nf_nat_pptp_hook_outbound, pptp_outbound_pkt);
-
- BUG_ON(nf_nat_pptp_hook_inbound != NULL);
- RCU_INIT_POINTER(nf_nat_pptp_hook_inbound, pptp_inbound_pkt);
-
- BUG_ON(nf_nat_pptp_hook_exp_gre != NULL);
- RCU_INIT_POINTER(nf_nat_pptp_hook_exp_gre, pptp_exp_gre);
+ WARN_ON(nf_nat_pptp_hook != NULL);
+ RCU_INIT_POINTER(nf_nat_pptp_hook, &pptp_hooks);
- BUG_ON(nf_nat_pptp_hook_expectfn != NULL);
- RCU_INIT_POINTER(nf_nat_pptp_hook_expectfn, pptp_nat_expected);
return 0;
}
static void __exit nf_nat_helper_pptp_fini(void)
{
- RCU_INIT_POINTER(nf_nat_pptp_hook_expectfn, NULL);
- RCU_INIT_POINTER(nf_nat_pptp_hook_exp_gre, NULL);
- RCU_INIT_POINTER(nf_nat_pptp_hook_inbound, NULL);
- RCU_INIT_POINTER(nf_nat_pptp_hook_outbound, NULL);
+ RCU_INIT_POINTER(nf_nat_pptp_hook, NULL);
synchronize_rcu();
}
diff --git a/net/netfilter/nf_conntrack_pptp.c b/net/netfilter/nf_conntrack_pptp.c
index 7d5708b92138..f3fa367b455f 100644
--- a/net/netfilter/nf_conntrack_pptp.c
+++ b/net/netfilter/nf_conntrack_pptp.c
@@ -45,30 +45,8 @@ MODULE_ALIAS_NFCT_HELPER("pptp");
static DEFINE_SPINLOCK(nf_pptp_lock);
-int
-(*nf_nat_pptp_hook_outbound)(struct sk_buff *skb,
- struct nf_conn *ct, enum ip_conntrack_info ctinfo,
- unsigned int protoff, struct PptpControlHeader *ctlh,
- union pptp_ctrl_union *pptpReq) __read_mostly;
-EXPORT_SYMBOL_GPL(nf_nat_pptp_hook_outbound);
-
-int
-(*nf_nat_pptp_hook_inbound)(struct sk_buff *skb,
- struct nf_conn *ct, enum ip_conntrack_info ctinfo,
- unsigned int protoff, struct PptpControlHeader *ctlh,
- union pptp_ctrl_union *pptpReq) __read_mostly;
-EXPORT_SYMBOL_GPL(nf_nat_pptp_hook_inbound);
-
-void
-(*nf_nat_pptp_hook_exp_gre)(struct nf_conntrack_expect *expect_orig,
- struct nf_conntrack_expect *expect_reply)
- __read_mostly;
-EXPORT_SYMBOL_GPL(nf_nat_pptp_hook_exp_gre);
-
-void
-(*nf_nat_pptp_hook_expectfn)(struct nf_conn *ct,
- struct nf_conntrack_expect *exp) __read_mostly;
-EXPORT_SYMBOL_GPL(nf_nat_pptp_hook_expectfn);
+const struct nf_nat_pptp_hook *nf_nat_pptp_hook;
+EXPORT_SYMBOL_GPL(nf_nat_pptp_hook);
#if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG)
/* PptpControlMessageType names */
@@ -111,8 +89,8 @@ EXPORT_SYMBOL(pptp_msg_name);
static void pptp_expectfn(struct nf_conn *ct,
struct nf_conntrack_expect *exp)
{
+ const struct nf_nat_pptp_hook *hook;
struct net *net = nf_ct_net(ct);
- typeof(nf_nat_pptp_hook_expectfn) nf_nat_pptp_expectfn;
pr_debug("increasing timeouts\n");
/* increase timeout of GRE data channel conntrack entry */
@@ -122,9 +100,9 @@ static void pptp_expectfn(struct nf_conn *ct,
/* Can you see how rusty this code is, compared with the pre-2.6.11
* one? That's what happened to my shiny newnat of 2002 ;( -HW */
- nf_nat_pptp_expectfn = rcu_dereference(nf_nat_pptp_hook_expectfn);
- if (nf_nat_pptp_expectfn && ct->master->status & IPS_NAT_MASK)
- nf_nat_pptp_expectfn(ct, exp);
+ hook = rcu_dereference(nf_nat_pptp_hook);
+ if (hook && ct->master->status & IPS_NAT_MASK)
+ hook->expectfn(ct, exp);
else {
struct nf_conntrack_tuple inv_t;
struct nf_conntrack_expect *exp_other;
@@ -209,9 +187,9 @@ static void pptp_destroy_siblings(struct nf_conn *ct)
static int exp_gre(struct nf_conn *ct, __be16 callid, __be16 peer_callid)
{
struct nf_conntrack_expect *exp_orig, *exp_reply;
+ const struct nf_nat_pptp_hook *hook;
enum ip_conntrack_dir dir;
int ret = 1;
- typeof(nf_nat_pptp_hook_exp_gre) nf_nat_pptp_exp_gre;
exp_orig = nf_ct_expect_alloc(ct);
if (exp_orig == NULL)
@@ -239,9 +217,9 @@ static int exp_gre(struct nf_conn *ct, __be16 callid, __be16 peer_callid)
IPPROTO_GRE, &callid, &peer_callid);
exp_reply->expectfn = pptp_expectfn;
- nf_nat_pptp_exp_gre = rcu_dereference(nf_nat_pptp_hook_exp_gre);
- if (nf_nat_pptp_exp_gre && ct->status & IPS_NAT_MASK)
- nf_nat_pptp_exp_gre(exp_orig, exp_reply);
+ hook = rcu_dereference(nf_nat_pptp_hook);
+ if (hook && ct->status & IPS_NAT_MASK)
+ hook->exp_gre(exp_orig, exp_reply);
if (nf_ct_expect_related(exp_orig, 0) != 0)
goto out_put_both;
if (nf_ct_expect_related(exp_reply, 0) != 0)
@@ -279,9 +257,9 @@ pptp_inbound_pkt(struct sk_buff *skb, unsigned int protoff,
enum ip_conntrack_info ctinfo)
{
struct nf_ct_pptp_master *info = nfct_help_data(ct);
+ const struct nf_nat_pptp_hook *hook;
u_int16_t msg;
__be16 cid = 0, pcid = 0;
- typeof(nf_nat_pptp_hook_inbound) nf_nat_pptp_inbound;
msg = ntohs(ctlh->messageType);
pr_debug("inbound control message %s\n", pptp_msg_name(msg));
@@ -383,10 +361,9 @@ pptp_inbound_pkt(struct sk_buff *skb, unsigned int protoff,
goto invalid;
}
- nf_nat_pptp_inbound = rcu_dereference(nf_nat_pptp_hook_inbound);
- if (nf_nat_pptp_inbound && ct->status & IPS_NAT_MASK)
- return nf_nat_pptp_inbound(skb, ct, ctinfo,
- protoff, ctlh, pptpReq);
+ hook = rcu_dereference(nf_nat_pptp_hook);
+ if (hook && ct->status & IPS_NAT_MASK)
+ return hook->inbound(skb, ct, ctinfo, protoff, ctlh, pptpReq);
return NF_ACCEPT;
invalid:
@@ -407,9 +384,9 @@ pptp_outbound_pkt(struct sk_buff *skb, unsigned int protoff,
enum ip_conntrack_info ctinfo)
{
struct nf_ct_pptp_master *info = nfct_help_data(ct);
+ const struct nf_nat_pptp_hook *hook;
u_int16_t msg;
__be16 cid = 0, pcid = 0;
- typeof(nf_nat_pptp_hook_outbound) nf_nat_pptp_outbound;
msg = ntohs(ctlh->messageType);
pr_debug("outbound control message %s\n", pptp_msg_name(msg));
@@ -479,10 +456,9 @@ pptp_outbound_pkt(struct sk_buff *skb, unsigned int protoff,
goto invalid;
}
- nf_nat_pptp_outbound = rcu_dereference(nf_nat_pptp_hook_outbound);
- if (nf_nat_pptp_outbound && ct->status & IPS_NAT_MASK)
- return nf_nat_pptp_outbound(skb, ct, ctinfo,
- protoff, ctlh, pptpReq);
+ hook = rcu_dereference(nf_nat_pptp_hook);
+ if (hook && ct->status & IPS_NAT_MASK)
+ return hook->outbound(skb, ct, ctinfo, protoff, ctlh, pptpReq);
return NF_ACCEPT;
invalid:
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH nf-next] netfilter: conntrack: pptp: use single option structure
@ 2022-01-21 3:10 kernel test robot
0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2022-01-21 3:10 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 10218 bytes --]
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220120150913.8719-1-fw@strlen.de>
References: <20220120150913.8719-1-fw@strlen.de>
TO: Florian Westphal <fw@strlen.de>
TO: netfilter-devel(a)vger.kernel.org
CC: Florian Westphal <fw@strlen.de>
Hi Florian,
I love your patch! Perhaps something to improve:
[auto build test WARNING on nf-next/master]
url: https://github.com/0day-ci/linux/commits/Florian-Westphal/netfilter-conntrack-pptp-use-single-option-structure/20220120-230953
base: https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master
:::::: branch date: 12 hours ago
:::::: commit date: 12 hours ago
config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220121/202201211119.uNz9yzDZ-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/0day-ci/linux/commit/ffa8a2dcecaa350f84e5747750956010d5514ab2
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Florian-Westphal/netfilter-conntrack-pptp-use-single-option-structure/20220120-230953
git checkout ffa8a2dcecaa350f84e5747750956010d5514ab2
# save the config file to linux build tree
mkdir build_dir
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
net/netfilter/nf_conntrack_pptp.c:48:31: sparse: sparse: symbol 'nf_nat_pptp_hook' redeclared with different type (different address spaces):
>> net/netfilter/nf_conntrack_pptp.c:48:31: sparse: struct nf_nat_pptp_hook const *[addressable] [toplevel] nf_nat_pptp_hook
net/netfilter/nf_conntrack_pptp.c: note: in included file:
include/linux/netfilter/nf_conntrack_pptp.h:320:44: sparse: note: previously declared as:
>> include/linux/netfilter/nf_conntrack_pptp.h:320:44: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *extern [addressable] [toplevel] nf_nat_pptp_hook
net/netfilter/nf_conntrack_pptp.c:103:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> net/netfilter/nf_conntrack_pptp.c:103:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
>> net/netfilter/nf_conntrack_pptp.c:103:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: struct nf_nat_pptp_hook const *
vim +48 net/netfilter/nf_conntrack_pptp.c
f09943fefe6b70 Patrick McHardy 2006-12-02 47
ffa8a2dcecaa35 Florian Westphal 2022-01-20 @48 const struct nf_nat_pptp_hook *nf_nat_pptp_hook;
ffa8a2dcecaa35 Florian Westphal 2022-01-20 49 EXPORT_SYMBOL_GPL(nf_nat_pptp_hook);
f09943fefe6b70 Patrick McHardy 2006-12-02 50
e9d376f0fa66bd Jason Baron 2009-02-05 51 #if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG)
f09943fefe6b70 Patrick McHardy 2006-12-02 52 /* PptpControlMessageType names */
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 53 static const char *const pptp_msg_name_array[PPTP_MSG_MAX + 1] = {
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 54 [0] = "UNKNOWN_MESSAGE",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 55 [PPTP_START_SESSION_REQUEST] = "START_SESSION_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 56 [PPTP_START_SESSION_REPLY] = "START_SESSION_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 57 [PPTP_STOP_SESSION_REQUEST] = "STOP_SESSION_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 58 [PPTP_STOP_SESSION_REPLY] = "STOP_SESSION_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 59 [PPTP_ECHO_REQUEST] = "ECHO_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 60 [PPTP_ECHO_REPLY] = "ECHO_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 61 [PPTP_OUT_CALL_REQUEST] = "OUT_CALL_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 62 [PPTP_OUT_CALL_REPLY] = "OUT_CALL_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 63 [PPTP_IN_CALL_REQUEST] = "IN_CALL_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 64 [PPTP_IN_CALL_REPLY] = "IN_CALL_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 65 [PPTP_IN_CALL_CONNECT] = "IN_CALL_CONNECT",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 66 [PPTP_CALL_CLEAR_REQUEST] = "CALL_CLEAR_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 67 [PPTP_CALL_DISCONNECT_NOTIFY] = "CALL_DISCONNECT_NOTIFY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 68 [PPTP_WAN_ERROR_NOTIFY] = "WAN_ERROR_NOTIFY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 69 [PPTP_SET_LINK_INFO] = "SET_LINK_INFO"
f09943fefe6b70 Patrick McHardy 2006-12-02 70 };
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 71
4946ea5c123703 Pablo Neira Ayuso 2020-05-27 72 const char *pptp_msg_name(u_int16_t msg)
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 73 {
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 74 if (msg > PPTP_MSG_MAX)
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 75 return pptp_msg_name_array[0];
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 76
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 77 return pptp_msg_name_array[msg];
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 78 }
f09943fefe6b70 Patrick McHardy 2006-12-02 79 EXPORT_SYMBOL(pptp_msg_name);
f09943fefe6b70 Patrick McHardy 2006-12-02 80 #endif
f09943fefe6b70 Patrick McHardy 2006-12-02 81
f09943fefe6b70 Patrick McHardy 2006-12-02 82 #define SECS *HZ
f09943fefe6b70 Patrick McHardy 2006-12-02 83 #define MINS * 60 SECS
f09943fefe6b70 Patrick McHardy 2006-12-02 84 #define HOURS * 60 MINS
f09943fefe6b70 Patrick McHardy 2006-12-02 85
f09943fefe6b70 Patrick McHardy 2006-12-02 86 #define PPTP_GRE_TIMEOUT (10 MINS)
f09943fefe6b70 Patrick McHardy 2006-12-02 87 #define PPTP_GRE_STREAM_TIMEOUT (5 HOURS)
f09943fefe6b70 Patrick McHardy 2006-12-02 88
f09943fefe6b70 Patrick McHardy 2006-12-02 89 static void pptp_expectfn(struct nf_conn *ct,
f09943fefe6b70 Patrick McHardy 2006-12-02 90 struct nf_conntrack_expect *exp)
f09943fefe6b70 Patrick McHardy 2006-12-02 91 {
ffa8a2dcecaa35 Florian Westphal 2022-01-20 92 const struct nf_nat_pptp_hook *hook;
0e6e75af921d1f Alexey Dobriyan 2008-10-08 93 struct net *net = nf_ct_net(ct);
0d53778e81ac7a Patrick McHardy 2007-07-07 94 pr_debug("increasing timeouts\n");
f09943fefe6b70 Patrick McHardy 2006-12-02 95
f09943fefe6b70 Patrick McHardy 2006-12-02 96 /* increase timeout of GRE data channel conntrack entry */
f09943fefe6b70 Patrick McHardy 2006-12-02 97 ct->proto.gre.timeout = PPTP_GRE_TIMEOUT;
f09943fefe6b70 Patrick McHardy 2006-12-02 98 ct->proto.gre.stream_timeout = PPTP_GRE_STREAM_TIMEOUT;
f09943fefe6b70 Patrick McHardy 2006-12-02 99
f09943fefe6b70 Patrick McHardy 2006-12-02 100 /* Can you see how rusty this code is, compared with the pre-2.6.11
f09943fefe6b70 Patrick McHardy 2006-12-02 101 * one? That's what happened to my shiny newnat of 2002 ;( -HW */
f09943fefe6b70 Patrick McHardy 2006-12-02 102
ffa8a2dcecaa35 Florian Westphal 2022-01-20 @103 hook = rcu_dereference(nf_nat_pptp_hook);
ffa8a2dcecaa35 Florian Westphal 2022-01-20 104 if (hook && ct->master->status & IPS_NAT_MASK)
ffa8a2dcecaa35 Florian Westphal 2022-01-20 105 hook->expectfn(ct, exp);
f09943fefe6b70 Patrick McHardy 2006-12-02 106 else {
f09943fefe6b70 Patrick McHardy 2006-12-02 107 struct nf_conntrack_tuple inv_t;
f09943fefe6b70 Patrick McHardy 2006-12-02 108 struct nf_conntrack_expect *exp_other;
f09943fefe6b70 Patrick McHardy 2006-12-02 109
f09943fefe6b70 Patrick McHardy 2006-12-02 110 /* obviously this tuple inversion only works until you do NAT */
303e0c5589592e Florian Westphal 2019-01-15 111 nf_ct_invert_tuple(&inv_t, &exp->tuple);
0d53778e81ac7a Patrick McHardy 2007-07-07 112 pr_debug("trying to unexpect other dir: ");
3c9fba656a185c Jan Engelhardt 2008-04-14 113 nf_ct_dump_tuple(&inv_t);
f09943fefe6b70 Patrick McHardy 2006-12-02 114
5d0aa2ccd4699a Patrick McHardy 2010-02-15 115 exp_other = nf_ct_expect_find_get(net, nf_ct_zone(ct), &inv_t);
f09943fefe6b70 Patrick McHardy 2006-12-02 116 if (exp_other) {
f09943fefe6b70 Patrick McHardy 2006-12-02 117 /* delete other expectation. */
0d53778e81ac7a Patrick McHardy 2007-07-07 118 pr_debug("found\n");
6823645d608541 Patrick McHardy 2007-07-07 119 nf_ct_unexpect_related(exp_other);
6823645d608541 Patrick McHardy 2007-07-07 120 nf_ct_expect_put(exp_other);
f09943fefe6b70 Patrick McHardy 2006-12-02 121 } else {
0d53778e81ac7a Patrick McHardy 2007-07-07 122 pr_debug("not found\n");
f09943fefe6b70 Patrick McHardy 2006-12-02 123 }
f09943fefe6b70 Patrick McHardy 2006-12-02 124 }
f09943fefe6b70 Patrick McHardy 2006-12-02 125 }
f09943fefe6b70 Patrick McHardy 2006-12-02 126
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH nf-next] netfilter: conntrack: pptp: use single option structure
@ 2022-01-25 10:43 kernel test robot
0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2022-01-25 10:43 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 10214 bytes --]
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220120150913.8719-1-fw@strlen.de>
References: <20220120150913.8719-1-fw@strlen.de>
TO: Florian Westphal <fw@strlen.de>
TO: netfilter-devel(a)vger.kernel.org
CC: Florian Westphal <fw@strlen.de>
Hi Florian,
I love your patch! Perhaps something to improve:
[auto build test WARNING on nf-next/master]
url: https://github.com/0day-ci/linux/commits/Florian-Westphal/netfilter-conntrack-pptp-use-single-option-structure/20220120-230953
base: https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master
:::::: branch date: 5 days ago
:::::: commit date: 5 days ago
config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220125/202201251811.PdPnjAPm-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/0day-ci/linux/commit/ffa8a2dcecaa350f84e5747750956010d5514ab2
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Florian-Westphal/netfilter-conntrack-pptp-use-single-option-structure/20220120-230953
git checkout ffa8a2dcecaa350f84e5747750956010d5514ab2
# save the config file to linux build tree
mkdir build_dir
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
net/netfilter/nf_conntrack_pptp.c:48:31: sparse: sparse: symbol 'nf_nat_pptp_hook' redeclared with different type (different address spaces):
>> net/netfilter/nf_conntrack_pptp.c:48:31: sparse: struct nf_nat_pptp_hook const *[addressable] [toplevel] nf_nat_pptp_hook
net/netfilter/nf_conntrack_pptp.c: note: in included file:
include/linux/netfilter/nf_conntrack_pptp.h:320:44: sparse: note: previously declared as:
>> include/linux/netfilter/nf_conntrack_pptp.h:320:44: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *extern [addressable] [toplevel] nf_nat_pptp_hook
net/netfilter/nf_conntrack_pptp.c:103:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> net/netfilter/nf_conntrack_pptp.c:103:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
>> net/netfilter/nf_conntrack_pptp.c:103:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: struct nf_nat_pptp_hook const *
vim +48 net/netfilter/nf_conntrack_pptp.c
f09943fefe6b70 Patrick McHardy 2006-12-02 47
ffa8a2dcecaa35 Florian Westphal 2022-01-20 @48 const struct nf_nat_pptp_hook *nf_nat_pptp_hook;
ffa8a2dcecaa35 Florian Westphal 2022-01-20 49 EXPORT_SYMBOL_GPL(nf_nat_pptp_hook);
f09943fefe6b70 Patrick McHardy 2006-12-02 50
e9d376f0fa66bd Jason Baron 2009-02-05 51 #if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG)
f09943fefe6b70 Patrick McHardy 2006-12-02 52 /* PptpControlMessageType names */
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 53 static const char *const pptp_msg_name_array[PPTP_MSG_MAX + 1] = {
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 54 [0] = "UNKNOWN_MESSAGE",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 55 [PPTP_START_SESSION_REQUEST] = "START_SESSION_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 56 [PPTP_START_SESSION_REPLY] = "START_SESSION_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 57 [PPTP_STOP_SESSION_REQUEST] = "STOP_SESSION_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 58 [PPTP_STOP_SESSION_REPLY] = "STOP_SESSION_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 59 [PPTP_ECHO_REQUEST] = "ECHO_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 60 [PPTP_ECHO_REPLY] = "ECHO_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 61 [PPTP_OUT_CALL_REQUEST] = "OUT_CALL_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 62 [PPTP_OUT_CALL_REPLY] = "OUT_CALL_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 63 [PPTP_IN_CALL_REQUEST] = "IN_CALL_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 64 [PPTP_IN_CALL_REPLY] = "IN_CALL_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 65 [PPTP_IN_CALL_CONNECT] = "IN_CALL_CONNECT",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 66 [PPTP_CALL_CLEAR_REQUEST] = "CALL_CLEAR_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 67 [PPTP_CALL_DISCONNECT_NOTIFY] = "CALL_DISCONNECT_NOTIFY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 68 [PPTP_WAN_ERROR_NOTIFY] = "WAN_ERROR_NOTIFY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 69 [PPTP_SET_LINK_INFO] = "SET_LINK_INFO"
f09943fefe6b70 Patrick McHardy 2006-12-02 70 };
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 71
4946ea5c123703 Pablo Neira Ayuso 2020-05-27 72 const char *pptp_msg_name(u_int16_t msg)
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 73 {
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 74 if (msg > PPTP_MSG_MAX)
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 75 return pptp_msg_name_array[0];
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 76
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 77 return pptp_msg_name_array[msg];
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 78 }
f09943fefe6b70 Patrick McHardy 2006-12-02 79 EXPORT_SYMBOL(pptp_msg_name);
f09943fefe6b70 Patrick McHardy 2006-12-02 80 #endif
f09943fefe6b70 Patrick McHardy 2006-12-02 81
f09943fefe6b70 Patrick McHardy 2006-12-02 82 #define SECS *HZ
f09943fefe6b70 Patrick McHardy 2006-12-02 83 #define MINS * 60 SECS
f09943fefe6b70 Patrick McHardy 2006-12-02 84 #define HOURS * 60 MINS
f09943fefe6b70 Patrick McHardy 2006-12-02 85
f09943fefe6b70 Patrick McHardy 2006-12-02 86 #define PPTP_GRE_TIMEOUT (10 MINS)
f09943fefe6b70 Patrick McHardy 2006-12-02 87 #define PPTP_GRE_STREAM_TIMEOUT (5 HOURS)
f09943fefe6b70 Patrick McHardy 2006-12-02 88
f09943fefe6b70 Patrick McHardy 2006-12-02 89 static void pptp_expectfn(struct nf_conn *ct,
f09943fefe6b70 Patrick McHardy 2006-12-02 90 struct nf_conntrack_expect *exp)
f09943fefe6b70 Patrick McHardy 2006-12-02 91 {
ffa8a2dcecaa35 Florian Westphal 2022-01-20 92 const struct nf_nat_pptp_hook *hook;
0e6e75af921d1f Alexey Dobriyan 2008-10-08 93 struct net *net = nf_ct_net(ct);
0d53778e81ac7a Patrick McHardy 2007-07-07 94 pr_debug("increasing timeouts\n");
f09943fefe6b70 Patrick McHardy 2006-12-02 95
f09943fefe6b70 Patrick McHardy 2006-12-02 96 /* increase timeout of GRE data channel conntrack entry */
f09943fefe6b70 Patrick McHardy 2006-12-02 97 ct->proto.gre.timeout = PPTP_GRE_TIMEOUT;
f09943fefe6b70 Patrick McHardy 2006-12-02 98 ct->proto.gre.stream_timeout = PPTP_GRE_STREAM_TIMEOUT;
f09943fefe6b70 Patrick McHardy 2006-12-02 99
f09943fefe6b70 Patrick McHardy 2006-12-02 100 /* Can you see how rusty this code is, compared with the pre-2.6.11
f09943fefe6b70 Patrick McHardy 2006-12-02 101 * one? That's what happened to my shiny newnat of 2002 ;( -HW */
f09943fefe6b70 Patrick McHardy 2006-12-02 102
ffa8a2dcecaa35 Florian Westphal 2022-01-20 @103 hook = rcu_dereference(nf_nat_pptp_hook);
ffa8a2dcecaa35 Florian Westphal 2022-01-20 104 if (hook && ct->master->status & IPS_NAT_MASK)
ffa8a2dcecaa35 Florian Westphal 2022-01-20 105 hook->expectfn(ct, exp);
f09943fefe6b70 Patrick McHardy 2006-12-02 106 else {
f09943fefe6b70 Patrick McHardy 2006-12-02 107 struct nf_conntrack_tuple inv_t;
f09943fefe6b70 Patrick McHardy 2006-12-02 108 struct nf_conntrack_expect *exp_other;
f09943fefe6b70 Patrick McHardy 2006-12-02 109
f09943fefe6b70 Patrick McHardy 2006-12-02 110 /* obviously this tuple inversion only works until you do NAT */
303e0c5589592e Florian Westphal 2019-01-15 111 nf_ct_invert_tuple(&inv_t, &exp->tuple);
0d53778e81ac7a Patrick McHardy 2007-07-07 112 pr_debug("trying to unexpect other dir: ");
3c9fba656a185c Jan Engelhardt 2008-04-14 113 nf_ct_dump_tuple(&inv_t);
f09943fefe6b70 Patrick McHardy 2006-12-02 114
5d0aa2ccd4699a Patrick McHardy 2010-02-15 115 exp_other = nf_ct_expect_find_get(net, nf_ct_zone(ct), &inv_t);
f09943fefe6b70 Patrick McHardy 2006-12-02 116 if (exp_other) {
f09943fefe6b70 Patrick McHardy 2006-12-02 117 /* delete other expectation. */
0d53778e81ac7a Patrick McHardy 2007-07-07 118 pr_debug("found\n");
6823645d608541 Patrick McHardy 2007-07-07 119 nf_ct_unexpect_related(exp_other);
6823645d608541 Patrick McHardy 2007-07-07 120 nf_ct_expect_put(exp_other);
f09943fefe6b70 Patrick McHardy 2006-12-02 121 } else {
0d53778e81ac7a Patrick McHardy 2007-07-07 122 pr_debug("not found\n");
f09943fefe6b70 Patrick McHardy 2006-12-02 123 }
f09943fefe6b70 Patrick McHardy 2006-12-02 124 }
f09943fefe6b70 Patrick McHardy 2006-12-02 125 }
f09943fefe6b70 Patrick McHardy 2006-12-02 126
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH nf-next] netfilter: conntrack: pptp: use single option structure
@ 2022-02-07 10:01 kernel test robot
0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2022-02-07 10:01 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 10140 bytes --]
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220120150913.8719-1-fw@strlen.de>
References: <20220120150913.8719-1-fw@strlen.de>
TO: Florian Westphal <fw@strlen.de>
Hi Florian,
I love your patch! Perhaps something to improve:
[auto build test WARNING on nf-next/master]
url: https://github.com/0day-ci/linux/commits/Florian-Westphal/netfilter-conntrack-pptp-use-single-option-structure/20220120-230953
base: https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master
:::::: branch date: 3 weeks ago
:::::: commit date: 3 weeks ago
config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220207/202202071734.MhUN0ouB-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/0day-ci/linux/commit/ffa8a2dcecaa350f84e5747750956010d5514ab2
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Florian-Westphal/netfilter-conntrack-pptp-use-single-option-structure/20220120-230953
git checkout ffa8a2dcecaa350f84e5747750956010d5514ab2
# save the config file to linux build tree
mkdir build_dir
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
net/netfilter/nf_conntrack_pptp.c:48:31: sparse: sparse: symbol 'nf_nat_pptp_hook' redeclared with different type (different address spaces):
>> net/netfilter/nf_conntrack_pptp.c:48:31: sparse: struct nf_nat_pptp_hook const *[addressable] [toplevel] nf_nat_pptp_hook
net/netfilter/nf_conntrack_pptp.c: note: in included file:
include/linux/netfilter/nf_conntrack_pptp.h:320:44: sparse: note: previously declared as:
>> include/linux/netfilter/nf_conntrack_pptp.h:320:44: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *extern [addressable] [toplevel] nf_nat_pptp_hook
net/netfilter/nf_conntrack_pptp.c:103:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> net/netfilter/nf_conntrack_pptp.c:103:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
>> net/netfilter/nf_conntrack_pptp.c:103:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: struct nf_nat_pptp_hook const *
vim +48 net/netfilter/nf_conntrack_pptp.c
f09943fefe6b70 Patrick McHardy 2006-12-02 47
ffa8a2dcecaa35 Florian Westphal 2022-01-20 @48 const struct nf_nat_pptp_hook *nf_nat_pptp_hook;
ffa8a2dcecaa35 Florian Westphal 2022-01-20 49 EXPORT_SYMBOL_GPL(nf_nat_pptp_hook);
f09943fefe6b70 Patrick McHardy 2006-12-02 50
e9d376f0fa66bd Jason Baron 2009-02-05 51 #if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG)
f09943fefe6b70 Patrick McHardy 2006-12-02 52 /* PptpControlMessageType names */
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 53 static const char *const pptp_msg_name_array[PPTP_MSG_MAX + 1] = {
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 54 [0] = "UNKNOWN_MESSAGE",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 55 [PPTP_START_SESSION_REQUEST] = "START_SESSION_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 56 [PPTP_START_SESSION_REPLY] = "START_SESSION_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 57 [PPTP_STOP_SESSION_REQUEST] = "STOP_SESSION_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 58 [PPTP_STOP_SESSION_REPLY] = "STOP_SESSION_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 59 [PPTP_ECHO_REQUEST] = "ECHO_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 60 [PPTP_ECHO_REPLY] = "ECHO_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 61 [PPTP_OUT_CALL_REQUEST] = "OUT_CALL_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 62 [PPTP_OUT_CALL_REPLY] = "OUT_CALL_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 63 [PPTP_IN_CALL_REQUEST] = "IN_CALL_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 64 [PPTP_IN_CALL_REPLY] = "IN_CALL_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 65 [PPTP_IN_CALL_CONNECT] = "IN_CALL_CONNECT",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 66 [PPTP_CALL_CLEAR_REQUEST] = "CALL_CLEAR_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 67 [PPTP_CALL_DISCONNECT_NOTIFY] = "CALL_DISCONNECT_NOTIFY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 68 [PPTP_WAN_ERROR_NOTIFY] = "WAN_ERROR_NOTIFY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 69 [PPTP_SET_LINK_INFO] = "SET_LINK_INFO"
f09943fefe6b70 Patrick McHardy 2006-12-02 70 };
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 71
4946ea5c123703 Pablo Neira Ayuso 2020-05-27 72 const char *pptp_msg_name(u_int16_t msg)
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 73 {
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 74 if (msg > PPTP_MSG_MAX)
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 75 return pptp_msg_name_array[0];
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 76
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 77 return pptp_msg_name_array[msg];
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 78 }
f09943fefe6b70 Patrick McHardy 2006-12-02 79 EXPORT_SYMBOL(pptp_msg_name);
f09943fefe6b70 Patrick McHardy 2006-12-02 80 #endif
f09943fefe6b70 Patrick McHardy 2006-12-02 81
f09943fefe6b70 Patrick McHardy 2006-12-02 82 #define SECS *HZ
f09943fefe6b70 Patrick McHardy 2006-12-02 83 #define MINS * 60 SECS
f09943fefe6b70 Patrick McHardy 2006-12-02 84 #define HOURS * 60 MINS
f09943fefe6b70 Patrick McHardy 2006-12-02 85
f09943fefe6b70 Patrick McHardy 2006-12-02 86 #define PPTP_GRE_TIMEOUT (10 MINS)
f09943fefe6b70 Patrick McHardy 2006-12-02 87 #define PPTP_GRE_STREAM_TIMEOUT (5 HOURS)
f09943fefe6b70 Patrick McHardy 2006-12-02 88
f09943fefe6b70 Patrick McHardy 2006-12-02 89 static void pptp_expectfn(struct nf_conn *ct,
f09943fefe6b70 Patrick McHardy 2006-12-02 90 struct nf_conntrack_expect *exp)
f09943fefe6b70 Patrick McHardy 2006-12-02 91 {
ffa8a2dcecaa35 Florian Westphal 2022-01-20 92 const struct nf_nat_pptp_hook *hook;
0e6e75af921d1f Alexey Dobriyan 2008-10-08 93 struct net *net = nf_ct_net(ct);
0d53778e81ac7a Patrick McHardy 2007-07-07 94 pr_debug("increasing timeouts\n");
f09943fefe6b70 Patrick McHardy 2006-12-02 95
f09943fefe6b70 Patrick McHardy 2006-12-02 96 /* increase timeout of GRE data channel conntrack entry */
f09943fefe6b70 Patrick McHardy 2006-12-02 97 ct->proto.gre.timeout = PPTP_GRE_TIMEOUT;
f09943fefe6b70 Patrick McHardy 2006-12-02 98 ct->proto.gre.stream_timeout = PPTP_GRE_STREAM_TIMEOUT;
f09943fefe6b70 Patrick McHardy 2006-12-02 99
f09943fefe6b70 Patrick McHardy 2006-12-02 100 /* Can you see how rusty this code is, compared with the pre-2.6.11
f09943fefe6b70 Patrick McHardy 2006-12-02 101 * one? That's what happened to my shiny newnat of 2002 ;( -HW */
f09943fefe6b70 Patrick McHardy 2006-12-02 102
ffa8a2dcecaa35 Florian Westphal 2022-01-20 @103 hook = rcu_dereference(nf_nat_pptp_hook);
ffa8a2dcecaa35 Florian Westphal 2022-01-20 104 if (hook && ct->master->status & IPS_NAT_MASK)
ffa8a2dcecaa35 Florian Westphal 2022-01-20 105 hook->expectfn(ct, exp);
f09943fefe6b70 Patrick McHardy 2006-12-02 106 else {
f09943fefe6b70 Patrick McHardy 2006-12-02 107 struct nf_conntrack_tuple inv_t;
f09943fefe6b70 Patrick McHardy 2006-12-02 108 struct nf_conntrack_expect *exp_other;
f09943fefe6b70 Patrick McHardy 2006-12-02 109
f09943fefe6b70 Patrick McHardy 2006-12-02 110 /* obviously this tuple inversion only works until you do NAT */
303e0c5589592e Florian Westphal 2019-01-15 111 nf_ct_invert_tuple(&inv_t, &exp->tuple);
0d53778e81ac7a Patrick McHardy 2007-07-07 112 pr_debug("trying to unexpect other dir: ");
3c9fba656a185c Jan Engelhardt 2008-04-14 113 nf_ct_dump_tuple(&inv_t);
f09943fefe6b70 Patrick McHardy 2006-12-02 114
5d0aa2ccd4699a Patrick McHardy 2010-02-15 115 exp_other = nf_ct_expect_find_get(net, nf_ct_zone(ct), &inv_t);
f09943fefe6b70 Patrick McHardy 2006-12-02 116 if (exp_other) {
f09943fefe6b70 Patrick McHardy 2006-12-02 117 /* delete other expectation. */
0d53778e81ac7a Patrick McHardy 2007-07-07 118 pr_debug("found\n");
6823645d608541 Patrick McHardy 2007-07-07 119 nf_ct_unexpect_related(exp_other);
6823645d608541 Patrick McHardy 2007-07-07 120 nf_ct_expect_put(exp_other);
f09943fefe6b70 Patrick McHardy 2006-12-02 121 } else {
0d53778e81ac7a Patrick McHardy 2007-07-07 122 pr_debug("not found\n");
f09943fefe6b70 Patrick McHardy 2006-12-02 123 }
f09943fefe6b70 Patrick McHardy 2006-12-02 124 }
f09943fefe6b70 Patrick McHardy 2006-12-02 125 }
f09943fefe6b70 Patrick McHardy 2006-12-02 126
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH nf-next] netfilter: conntrack: pptp: use single option structure
@ 2022-02-08 15:29 kernel test robot
0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2022-02-08 15:29 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 10140 bytes --]
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220120150913.8719-1-fw@strlen.de>
References: <20220120150913.8719-1-fw@strlen.de>
TO: Florian Westphal <fw@strlen.de>
Hi Florian,
I love your patch! Perhaps something to improve:
[auto build test WARNING on nf-next/master]
url: https://github.com/0day-ci/linux/commits/Florian-Westphal/netfilter-conntrack-pptp-use-single-option-structure/20220120-230953
base: https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master
:::::: branch date: 3 weeks ago
:::::: commit date: 3 weeks ago
config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220208/202202082301.DuvjSsUQ-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://github.com/0day-ci/linux/commit/ffa8a2dcecaa350f84e5747750956010d5514ab2
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Florian-Westphal/netfilter-conntrack-pptp-use-single-option-structure/20220120-230953
git checkout ffa8a2dcecaa350f84e5747750956010d5514ab2
# save the config file to linux build tree
mkdir build_dir
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
net/netfilter/nf_conntrack_pptp.c:48:31: sparse: sparse: symbol 'nf_nat_pptp_hook' redeclared with different type (different address spaces):
>> net/netfilter/nf_conntrack_pptp.c:48:31: sparse: struct nf_nat_pptp_hook const *[addressable] [toplevel] nf_nat_pptp_hook
net/netfilter/nf_conntrack_pptp.c: note: in included file:
include/linux/netfilter/nf_conntrack_pptp.h:320:44: sparse: note: previously declared as:
>> include/linux/netfilter/nf_conntrack_pptp.h:320:44: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *extern [addressable] [toplevel] nf_nat_pptp_hook
net/netfilter/nf_conntrack_pptp.c:103:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> net/netfilter/nf_conntrack_pptp.c:103:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
>> net/netfilter/nf_conntrack_pptp.c:103:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:220:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:364:16: sparse: struct nf_nat_pptp_hook const *
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: struct nf_nat_pptp_hook const [noderef] __rcu *
net/netfilter/nf_conntrack_pptp.c:459:16: sparse: struct nf_nat_pptp_hook const *
vim +48 net/netfilter/nf_conntrack_pptp.c
f09943fefe6b70 Patrick McHardy 2006-12-02 47
ffa8a2dcecaa35 Florian Westphal 2022-01-20 @48 const struct nf_nat_pptp_hook *nf_nat_pptp_hook;
ffa8a2dcecaa35 Florian Westphal 2022-01-20 49 EXPORT_SYMBOL_GPL(nf_nat_pptp_hook);
f09943fefe6b70 Patrick McHardy 2006-12-02 50
e9d376f0fa66bd Jason Baron 2009-02-05 51 #if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG)
f09943fefe6b70 Patrick McHardy 2006-12-02 52 /* PptpControlMessageType names */
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 53 static const char *const pptp_msg_name_array[PPTP_MSG_MAX + 1] = {
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 54 [0] = "UNKNOWN_MESSAGE",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 55 [PPTP_START_SESSION_REQUEST] = "START_SESSION_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 56 [PPTP_START_SESSION_REPLY] = "START_SESSION_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 57 [PPTP_STOP_SESSION_REQUEST] = "STOP_SESSION_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 58 [PPTP_STOP_SESSION_REPLY] = "STOP_SESSION_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 59 [PPTP_ECHO_REQUEST] = "ECHO_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 60 [PPTP_ECHO_REPLY] = "ECHO_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 61 [PPTP_OUT_CALL_REQUEST] = "OUT_CALL_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 62 [PPTP_OUT_CALL_REPLY] = "OUT_CALL_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 63 [PPTP_IN_CALL_REQUEST] = "IN_CALL_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 64 [PPTP_IN_CALL_REPLY] = "IN_CALL_REPLY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 65 [PPTP_IN_CALL_CONNECT] = "IN_CALL_CONNECT",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 66 [PPTP_CALL_CLEAR_REQUEST] = "CALL_CLEAR_REQUEST",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 67 [PPTP_CALL_DISCONNECT_NOTIFY] = "CALL_DISCONNECT_NOTIFY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 68 [PPTP_WAN_ERROR_NOTIFY] = "WAN_ERROR_NOTIFY",
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 69 [PPTP_SET_LINK_INFO] = "SET_LINK_INFO"
f09943fefe6b70 Patrick McHardy 2006-12-02 70 };
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 71
4946ea5c123703 Pablo Neira Ayuso 2020-05-27 72 const char *pptp_msg_name(u_int16_t msg)
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 73 {
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 74 if (msg > PPTP_MSG_MAX)
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 75 return pptp_msg_name_array[0];
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 76
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 77 return pptp_msg_name_array[msg];
4c559f15efcc43 Pablo Neira Ayuso 2020-05-14 78 }
f09943fefe6b70 Patrick McHardy 2006-12-02 79 EXPORT_SYMBOL(pptp_msg_name);
f09943fefe6b70 Patrick McHardy 2006-12-02 80 #endif
f09943fefe6b70 Patrick McHardy 2006-12-02 81
f09943fefe6b70 Patrick McHardy 2006-12-02 82 #define SECS *HZ
f09943fefe6b70 Patrick McHardy 2006-12-02 83 #define MINS * 60 SECS
f09943fefe6b70 Patrick McHardy 2006-12-02 84 #define HOURS * 60 MINS
f09943fefe6b70 Patrick McHardy 2006-12-02 85
f09943fefe6b70 Patrick McHardy 2006-12-02 86 #define PPTP_GRE_TIMEOUT (10 MINS)
f09943fefe6b70 Patrick McHardy 2006-12-02 87 #define PPTP_GRE_STREAM_TIMEOUT (5 HOURS)
f09943fefe6b70 Patrick McHardy 2006-12-02 88
f09943fefe6b70 Patrick McHardy 2006-12-02 89 static void pptp_expectfn(struct nf_conn *ct,
f09943fefe6b70 Patrick McHardy 2006-12-02 90 struct nf_conntrack_expect *exp)
f09943fefe6b70 Patrick McHardy 2006-12-02 91 {
ffa8a2dcecaa35 Florian Westphal 2022-01-20 92 const struct nf_nat_pptp_hook *hook;
0e6e75af921d1f Alexey Dobriyan 2008-10-08 93 struct net *net = nf_ct_net(ct);
0d53778e81ac7a Patrick McHardy 2007-07-07 94 pr_debug("increasing timeouts\n");
f09943fefe6b70 Patrick McHardy 2006-12-02 95
f09943fefe6b70 Patrick McHardy 2006-12-02 96 /* increase timeout of GRE data channel conntrack entry */
f09943fefe6b70 Patrick McHardy 2006-12-02 97 ct->proto.gre.timeout = PPTP_GRE_TIMEOUT;
f09943fefe6b70 Patrick McHardy 2006-12-02 98 ct->proto.gre.stream_timeout = PPTP_GRE_STREAM_TIMEOUT;
f09943fefe6b70 Patrick McHardy 2006-12-02 99
f09943fefe6b70 Patrick McHardy 2006-12-02 100 /* Can you see how rusty this code is, compared with the pre-2.6.11
f09943fefe6b70 Patrick McHardy 2006-12-02 101 * one? That's what happened to my shiny newnat of 2002 ;( -HW */
f09943fefe6b70 Patrick McHardy 2006-12-02 102
ffa8a2dcecaa35 Florian Westphal 2022-01-20 @103 hook = rcu_dereference(nf_nat_pptp_hook);
ffa8a2dcecaa35 Florian Westphal 2022-01-20 104 if (hook && ct->master->status & IPS_NAT_MASK)
ffa8a2dcecaa35 Florian Westphal 2022-01-20 105 hook->expectfn(ct, exp);
f09943fefe6b70 Patrick McHardy 2006-12-02 106 else {
f09943fefe6b70 Patrick McHardy 2006-12-02 107 struct nf_conntrack_tuple inv_t;
f09943fefe6b70 Patrick McHardy 2006-12-02 108 struct nf_conntrack_expect *exp_other;
f09943fefe6b70 Patrick McHardy 2006-12-02 109
f09943fefe6b70 Patrick McHardy 2006-12-02 110 /* obviously this tuple inversion only works until you do NAT */
303e0c5589592e Florian Westphal 2019-01-15 111 nf_ct_invert_tuple(&inv_t, &exp->tuple);
0d53778e81ac7a Patrick McHardy 2007-07-07 112 pr_debug("trying to unexpect other dir: ");
3c9fba656a185c Jan Engelhardt 2008-04-14 113 nf_ct_dump_tuple(&inv_t);
f09943fefe6b70 Patrick McHardy 2006-12-02 114
5d0aa2ccd4699a Patrick McHardy 2010-02-15 115 exp_other = nf_ct_expect_find_get(net, nf_ct_zone(ct), &inv_t);
f09943fefe6b70 Patrick McHardy 2006-12-02 116 if (exp_other) {
f09943fefe6b70 Patrick McHardy 2006-12-02 117 /* delete other expectation. */
0d53778e81ac7a Patrick McHardy 2007-07-07 118 pr_debug("found\n");
6823645d608541 Patrick McHardy 2007-07-07 119 nf_ct_unexpect_related(exp_other);
6823645d608541 Patrick McHardy 2007-07-07 120 nf_ct_expect_put(exp_other);
f09943fefe6b70 Patrick McHardy 2006-12-02 121 } else {
0d53778e81ac7a Patrick McHardy 2007-07-07 122 pr_debug("not found\n");
f09943fefe6b70 Patrick McHardy 2006-12-02 123 }
f09943fefe6b70 Patrick McHardy 2006-12-02 124 }
f09943fefe6b70 Patrick McHardy 2006-12-02 125 }
f09943fefe6b70 Patrick McHardy 2006-12-02 126
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-02-08 15:29 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-25 10:43 [PATCH nf-next] netfilter: conntrack: pptp: use single option structure kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2022-02-08 15:29 kernel test robot
2022-02-07 10:01 kernel test robot
2022-01-21 3:10 kernel test robot
2022-01-20 15:09 Florian Westphal
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.