sparse false positive in net/packet/af_packet.c
Subsystems (3)
sparse triggers warnings in net/packet/af_packet.c in upstream Linux.
This is with sparse 0.5.0 in Fedora 20. See below for more info.
I worked around this in source, but I think it's a good idea to fix it in sparse as well, isn't it?
----- Forwarded message from "Michael S. Tsirkin" <[email protected]> -----
Date: Mon, 24 Nov 2014 13:32:16 +0200
From: "Michael S. Tsirkin" <[email protected]>
To: [email protected]
Cc: "David S. Miller" <[email protected]>, Daniel Borkmann <[email protected]>, Eric Dumazet <[email protected]>, Atzm Watanabe
<[email protected]>, Hannes Frederic Sowa <[email protected]>, Tom Herbert <[email protected]>, [email protected]
Subject: [PATCH] af_packet: fix sparse warning
Message-ID: <[email protected]>
af_packet produces lots of these:
net/packet/af_packet.c:384:39: warning: incorrect type in return expression (different modifiers)
net/packet/af_packet.c:384:39: expected struct page [pure] *
net/packet/af_packet.c:384:39: got struct page *
this seems to be because sparse does not realize that _pure refers to function, not the returned pointer.
Tweak code slightly to avoid the warning.
--- net/packet/af_packet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
net/packet/af_packet.c +1 -1
@@ -378,7 +378,7 @@ static void unregister_prot_hook(struct sock *sk, bool sync)__unregister_prot_hook (sk, sync); } -static inline __pure struct page *pgv_to_page (void *addr) +static inline struct page *__pure pgv_to_page (void *addr) {if (is_vmalloc_addr (addr))return vmalloc_to_page (addr);
Signature · 3 lines
MST ----- End forwarded message -----