atomic_t                qlen_dec; /* qlen = qlen_inc - qlen_dec */
        atomic_t                young_dec;
 
-       u8                      max_qlen_log ____cacheline_aligned_in_smp;
-       u8                      synflood_warned;
-       /* 2 bytes hole, try to use */
+       u32                     max_qlen_log ____cacheline_aligned_in_smp;
+       u32                     synflood_warned;
        u32                     hash_rnd;
        u32                     nr_table_entries;
        struct request_sock     *syn_table[0];
 
 /*
  * Return true if a syncookie should be sent
  */
-static bool tcp_syn_flood_action(struct sock *sk,
+static bool tcp_syn_flood_action(const struct sock *sk,
                                 const struct sk_buff *skb,
                                 const char *proto)
 {
                NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPREQQFULLDROP);
 
        lopt = inet_csk(sk)->icsk_accept_queue.listen_opt;
-       if (!lopt->synflood_warned && sysctl_tcp_syncookies != 2) {
-               lopt->synflood_warned = 1;
+       if (!lopt->synflood_warned &&
+           sysctl_tcp_syncookies != 2 &&
+           xchg(&lopt->synflood_warned, 1) == 0)
                pr_info("%s: Possible SYN flooding on port %d. %s.  Check SNMP counters.\n",
                        proto, ntohs(tcp_hdr(skb)->dest), msg);
-       }
+
        return want_cookie;
 }