Skip to contentSkip to conversation

net/netfilter/nfnetlink_queue_ct.c:23:18: sparse: incompatible types in comparison expression (different address spaces)

PATCH Fengguang Wu 3 participants 4 messages Jun 19, 2012 – Jun 23, 2012 2 messages not in the archive

lore
Share & tools
lore
#2 lore raw
In reply to a message not in the archive
Quoted 28 lines · Pablo Neira Ayuso
Quoted 18 lines · On Tue, Jun 19, 2012 at 02:00:50PM +0800, [email protected] wrote:

Hi Pablo,

There are new sparse warnings show up in

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master
head:   6bdc5f49e365a5403b9fdef01ceb37241ab00f9b
commit: 7c62234547255ce4c385a218915965bc2f14fe45 [49/50] netfilter: nfnetlink_queue: fix compilation with NF_CONNTRACK disabled

All sparse warnings:

net/netfilter/nfnetlink_queue_ct.c:23:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nfnetlink_queue_ct.c:45:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nfnetlink_queue_ct.c:63:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nfnetlink_queue_ct.c:91:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nf_conntrack_netlink.c:1100:27: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nf_conntrack_netlink.c:1222:34: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nf_conntrack_netlink.c:1222:34: sparse: incompatible types in comparison expression (different address spaces)

Quoted 8 lines

net/netfilter/nfnetlink_queue_ct.c:23:

    20		struct nf_conn *ct;
    21	
    22		/* rcu_read_lock()ed by __nf_queue already. */
Quoted 1 line

23 nfq_ct = rcu_dereference(nfq_ct_hook);

    24		if (nfq_ct == NULL)
    25			return NULL;
    26	
Quoted 2 lines

What CF options are you using to make sparse spot this? I cannot hit those message here.

I don't specify any options. I do use the sparse compiled from latest git tree.

git://git.kernel.org/pub/scm/devel/sparse/chrisl/sparse.git

And changed its code to output "sparse:" rather than "error:"/"warning:" so that they can be distinguished from the gcc error/warnings.

Quoted 1 line

I've got a fix but I don't want to send you an untested patch.

Appreciated!

I run a special service for this. If you push a patch to your git tree containing the line

And not containing any "Tested-by:" line, my script will automatically test it and send a success/failure notification back to you, normally within one hour.

Thanks,
Fengguang

#3 lore raw
Quoted 32 lines · Fengguang Wu
Quoted 28 lines · Pablo Neira Ayuso
Quoted 18 lines · On Tue, Jun 19, 2012 at 02:00:50PM +0800, [email protected] wrote:

Hi Pablo,

There are new sparse warnings show up in

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master
head:   6bdc5f49e365a5403b9fdef01ceb37241ab00f9b
commit: 7c62234547255ce4c385a218915965bc2f14fe45 [49/50] netfilter: nfnetlink_queue: fix compilation with NF_CONNTRACK disabled

All sparse warnings:

net/netfilter/nfnetlink_queue_ct.c:23:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nfnetlink_queue_ct.c:45:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nfnetlink_queue_ct.c:63:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nfnetlink_queue_ct.c:91:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nf_conntrack_netlink.c:1100:27: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nf_conntrack_netlink.c:1222:34: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nf_conntrack_netlink.c:1222:34: sparse: incompatible types in comparison expression (different address spaces)

Quoted 8 lines

net/netfilter/nfnetlink_queue_ct.c:23:

    20		struct nf_conn *ct;
    21	
    22		/* rcu_read_lock()ed by __nf_queue already. */
Quoted 1 line

23 nfq_ct = rcu_dereference(nfq_ct_hook);

    24		if (nfq_ct == NULL)
    25			return NULL;
    26	
Quoted 2 lines

What CF options are you using to make sparse spot this? I cannot hit those message here.

Quoted 7 lines

I don't specify any options. I do use the sparse compiled from latest git tree.

git://git.kernel.org/pub/scm/devel/sparse/chrisl/sparse.git

And changed its code to output "sparse:" rather than "error:"/"warning:" so that they can be distinguished from the gcc error/warnings.

I don't hit those errors here with:

make C=2 net/netfilter/nfnetlink_queue_ct.o

using latest sparse from git tree.

I guess it's related to some missing __rcu tag, but I need to make sure. I don't want to play whack-a-mole game ;-).

Quoted 8 lines
Quoted 1 line

I've got a fix but I don't want to send you an untested patch.

Appreciated!

I run a special service for this. If you push a patch to your git tree containing the line

yes, I always try to add that tag.

Quoted 3 lines

And not containing any "Tested-by:" line, my script will automatically test it and send a success/failure notification back to you, normally within one hour.

Great to know.

#4 lore raw
Quoted 8 lines · Pablo Neira Ayuso

I don't hit those errors here with:

make C=2 net/netfilter/nfnetlink_queue_ct.o

using latest sparse from git tree.

I guess it's related to some missing __rcu tag, but I need to make sure. I don't want to play whack-a-mole game ;-).

Hint :

CONFIG_SPARSE_RCU_POINTER=y

#5 lore raw
In reply to Fengguang Wu
Quoted 18 lines · On Tue, Jun 19, 2012 at 02:00:50PM +0800, [email protected] wrote:

Hi Pablo,

There are new sparse warnings show up in

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git master
head:   6bdc5f49e365a5403b9fdef01ceb37241ab00f9b
commit: 7c62234547255ce4c385a218915965bc2f14fe45 [49/50] netfilter: nfnetlink_queue: fix compilation with NF_CONNTRACK disabled

All sparse warnings:

net/netfilter/nfnetlink_queue_ct.c:23:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nfnetlink_queue_ct.c:45:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nfnetlink_queue_ct.c:63:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nfnetlink_queue_ct.c:91:18: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nf_conntrack_netlink.c:1100:27: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nf_conntrack_netlink.c:1222:34: sparse: incompatible types in comparison expression (different address spaces) net/netfilter/nf_conntrack_netlink.c:1222:34: sparse: incompatible types in comparison expression (different address spaces)

Quoted 8 lines

net/netfilter/nfnetlink_queue_ct.c:23:

    20		struct nf_conn *ct;
    21	
    22		/* rcu_read_lock()ed by __nf_queue already. */
Quoted 1 line

23 nfq_ct = rcu_dereference(nfq_ct_hook);

    24		if (nfq_ct == NULL)
    25			return NULL;
    26	

JFYI: I've enqueued the following patch to fix this sparse warning:

http://1984.lsi.us.es/git/nf-next/commit/?id=5a05fae5ca7cd5279567747fc34d60413b504cd6