]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/xfrm/xfrm_input.c
[PATCH] bcm43xx: WE-21 support
[linux-2.6-omap-h63xx.git] / net / xfrm / xfrm_input.c
index 2407a7072327f9156ea6e5771762bb6adc0f072b..dfc90bb1cf1f53d054c2fc7f15e0b72ed3013f2a 100644 (file)
@@ -18,7 +18,7 @@ void __secpath_destroy(struct sec_path *sp)
 {
        int i;
        for (i = 0; i < sp->len; i++)
-               xfrm_state_put(sp->x[i].xvec);
+               xfrm_state_put(sp->xvec[i]);
        kmem_cache_free(secpath_cachep, sp);
 }
 EXPORT_SYMBOL(__secpath_destroy);
@@ -37,7 +37,7 @@ struct sec_path *secpath_dup(struct sec_path *src)
 
                memcpy(sp, src, sizeof(*sp));
                for (i = 0; i < sp->len; i++)
-                       xfrm_state_hold(sp->x[i].xvec);
+                       xfrm_state_hold(sp->xvec[i]);
        }
        atomic_set(&sp->refcnt, 1);
        return sp;
@@ -62,7 +62,7 @@ int xfrm_parse_spi(struct sk_buff *skb, u8 nexthdr, u32 *spi, u32 *seq)
        case IPPROTO_COMP:
                if (!pskb_may_pull(skb, sizeof(struct ip_comp_hdr)))
                        return -EINVAL;
-               *spi = ntohl(ntohs(*(u16*)(skb->h.raw + 2)));
+               *spi = htonl(ntohs(*(u16*)(skb->h.raw + 2)));
                *seq = 0;
                return 0;
        default:
@@ -82,8 +82,6 @@ void __init xfrm_input_init(void)
 {
        secpath_cachep = kmem_cache_create("secpath_cache",
                                           sizeof(struct sec_path),
-                                          0, SLAB_HWCACHE_ALIGN,
+                                          0, SLAB_HWCACHE_ALIGN|SLAB_PANIC,
                                           NULL, NULL);
-       if (!secpath_cachep)
-               panic("XFRM: failed to allocate secpath_cache\n");
 }