kernel_optimize_test/net/core
Kees Cook 161d179261 net: core: Distribute switch variables for initialization
Variables declared in a switch statement before any case statements
cannot be automatically initialized with compiler instrumentation (as
they are not part of any execution flow). With GCC's proposed automatic
stack variable initialization feature, this triggers a warning (and they
don't get initialized). Clang's automatic stack variable initialization
(via CONFIG_INIT_STACK_ALL=y) doesn't throw a warning, but it also
doesn't initialize such variables[1]. Note that these warnings (or silent
skipping) happen before the dead-store elimination optimization phase,
so even when the automatic initializations are later elided in favor of
direct initializations, the warnings remain.

To avoid these problems, move such variables into the "case" where
they're used or lift them up into the main function body.

net/core/skbuff.c: In function ‘skb_checksum_setup_ip’:
net/core/skbuff.c:4809:7: warning: statement will never be executed [-Wswitch-unreachable]
 4809 |   int err;
      |       ^~~

[1] https://bugs.llvm.org/show_bug.cgi?id=44916

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2020-02-20 10:00:19 -08:00
..
bpf_sk_storage.c bpf: Improve bucket_log calculation logic 2020-02-07 23:01:41 +01:00
datagram.c net: add queue argument to __skb_wait_for_more_packets and __skb_{,try_}recv_datagram 2019-12-09 09:59:07 +01:00
datagram.h
dev_addr_lists.c
dev_ioctl.c net: Introduce peer to peer one step PTP time stamping. 2019-12-25 19:51:34 -08:00
dev.c Revert "net: dev: introduce support for sch BYPASS for lockless qdisc" 2020-02-18 12:37:45 -08:00
devlink.c devlink: report 0 after hitting end in region read 2020-02-05 14:23:20 +01:00
drop_monitor.c drop_monitor: Do not cancel uninitialized work item 2020-02-07 18:48:36 +01:00
dst_cache.c
dst.c
failover.c
fib_notifier.c
fib_rules.c net: fib_rules: Correctly set table field when table number exceeds 8 bits 2020-02-16 18:38:24 -08:00
filter.c treewide: remove redundant IS_ERR() before error code check 2020-02-04 03:05:27 +00:00
flow_dissector.c flow_dissector: Fix to use new variables for port ranges in bpf hook 2020-01-27 11:25:07 +01:00
flow_offload.c net: core: rename indirect block ingress cb function 2019-12-06 20:45:09 -08:00
gen_estimator.c
gen_stats.c
gro_cells.c
hwbm.c
link_watch.c
lwt_bpf.c net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup 2019-12-04 12:27:13 -08:00
lwtunnel.c
Makefile ethtool: move to its own directory 2019-12-12 17:07:05 -08:00
neighbour.c neigh_stat_seq_next() should increase position index 2020-01-24 11:42:18 +01:00
net_namespace.c netns: Constify exported functions 2020-01-17 13:25:24 +01:00
net-procfs.c
net-sysfs.c net-sysfs: Call dev_hold always in rx_queue_add_kobject 2019-12-17 22:57:11 -08:00
net-sysfs.h
net-traces.c
netclassid_cgroup.c
netevent.c
netpoll.c
netprio_cgroup.c
page_pool.c page_pool: refill page when alloc.count of pool is zero 2020-02-13 14:11:51 -08:00
pktgen.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
ptp_classifier.c
request_sock.c
rtnetlink.c net: rtnetlink: fix bugs in rtnl_alt_ifname() 2020-02-16 18:51:59 -08:00
scm.c
secure_seq.c
skbuff.c net: core: Distribute switch variables for initialization 2020-02-20 10:00:19 -08:00
skmsg.c net, sk_msg: Don't check if sock is locked when tearing down psock 2020-01-22 20:30:20 +01:00
sock_diag.c
sock_map.c bpf, sockhash: Synchronize_rcu before free'ing map 2020-02-07 22:36:26 +01:00
sock_reuseport.c soreuseport: Cleanup duplicate initialization of more_reuse->max_socks. 2020-01-27 11:01:16 +01:00
sock.c xsk, net: Make sock_def_readable() have external linkage 2020-01-22 00:08:52 +01:00
stream.c
sysctl_net_core.c net, sysctl: Fix compiler warning when only cBPF is present 2019-12-19 17:17:51 +01:00
timestamping.c net: Introduce a new MII time stamping interface. 2019-12-25 19:51:33 -08:00
tso.c
utils.c net: Fix skb->csum update in inet_proto_csum_replace16(). 2020-01-24 20:54:30 +01:00
xdp.c treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00