};
 #endif
 
-static unsigned int ip6qhashfn(__be32 id, struct in6_addr *saddr,
-                              struct in6_addr *daddr)
+static unsigned int ip6qhashfn(__be32 id, const struct in6_addr *saddr,
+                              const struct in6_addr *daddr)
 {
        u32 a, b, c;
 
 
 static unsigned int nf_hashfn(struct inet_frag_queue *q)
 {
-       struct nf_ct_frag6_queue *nq;
+       const struct nf_ct_frag6_queue *nq;
 
        nq = container_of(q, struct nf_ct_frag6_queue, q);
        return ip6qhashfn(nq->id, &nq->saddr, &nq->daddr);
 
 
 static int nf_ct_frag6_queue(struct nf_ct_frag6_queue *fq, struct sk_buff *skb,
-                            struct frag_hdr *fhdr, int nhoff)
+                            const struct frag_hdr *fhdr, int nhoff)
 {
        struct sk_buff *prev, *next;
        int offset, end;
 
 module_param(dcc_timeout, uint, 0400);
 MODULE_PARM_DESC(dcc_timeout, "timeout on for unestablished DCC channels");
 
-static const char *dccprotos[] = {
+static const char *const dccprotos[] = {
        "SEND ", "CHAT ", "MOVE ", "TSEND ", "SCHAT "
 };
 
  *     ad_beg_p        returns pointer to first byte of addr data
  *     ad_end_p        returns pointer to last byte of addr data
  */
-static int parse_dcc(char *data, char *data_end, u_int32_t *ip,
+static int parse_dcc(char *data, const char *data_end, u_int32_t *ip,
                     u_int16_t *port, char **ad_beg_p, char **ad_end_p)
 {
        /* at least 12: "AAAAAAAA P\1\n" */
                struct nf_conn *ct, enum ip_conntrack_info ctinfo)
 {
        unsigned int dataoff;
-       struct iphdr *iph;
-       struct tcphdr _tcph, *th;
-       char *data, *data_limit, *ib_ptr;
+       const struct iphdr *iph;
+       const struct tcphdr *th;
+       struct tcphdr _tcph;
+       const char *data_limit;
+       char *data, *ib_ptr;
        int dir = CTINFO2DIR(ctinfo);
        struct nf_conntrack_expect *exp;
        struct nf_conntrack_tuple *tuple;
                        /* we have at least
                         * (19+MINMATCHLEN)-5-dccprotos[i].matchlen bytes valid
                         * data left (== 14/13 bytes) */
-                       if (parse_dcc((char *)data, data_limit, &dcc_ip,
+                       if (parse_dcc(data, data_limit, &dcc_ip,
                                       &dcc_port, &addr_beg_p, &addr_end_p)) {
                                pr_debug("unable to parse dcc command\n");
                                continue;