Hi, this patch adds ocf support to linux 3.2. But maybe this changes should be inside an #ifdef to make it work with linux < 3.2
/Peter
diff --git a/package/kernel/modules/crypto.mk b/package/kernel/modules/crypto.mk index 44c4b5d..c8be6f9 100644 --- a/package/kernel/modules/crypto.mk +++ b/package/kernel/modules/crypto.mk @@ -401,7 +401,7 @@ $(eval $(call KernelPackage,crypto-misc)) define KernelPackage/crypto-ocf TITLE:=OCF modules - DEPENDS:=+@OPENSSL_ENGINE @!TARGET_uml +kmod-crypto-manager @!LINUX_3_2||BROKEN + DEPENDS:=+@OPENSSL_ENGINE @!TARGET_uml +kmod-crypto-manager KCONFIG:= \ CONFIG_OCF_OCF \ CONFIG_OCF_CRYPTODEV \ diff --git a/target/linux/generic/files/crypto/ocf/criov.c b/target/linux/generic/files/crypto/ocf/criov.c index d3d8cfd..9934e09 100644 --- a/target/linux/generic/files/crypto/ocf/criov.c +++ b/target/linux/generic/files/crypto/ocf/criov.c @@ -156,7 +156,7 @@ skb_copy_bits_back(struct sk_buff *skb, int offset, caddr_t cp, int len) offset -= skb_headlen(skb); for (i = 0; len > 0 && i < skb_shinfo(skb)->nr_frags; i++) { if (offset < skb_shinfo(skb)->frags[i].size) { - memcpy(page_address(skb_shinfo(skb)->frags[i].page) + + memcpy(page_address(skb_shinfo(skb)->frags[i].page.p) + skb_shinfo(skb)->frags[i].page_offset, cp, min_t(int, skb_shinfo(skb)->frags[i].size, len)); len -= skb_shinfo(skb)->frags[i].size; diff --git a/target/linux/generic/files/crypto/ocf/cryptosoft.c b/target/linux/generic/files/crypto/ocf/cryptosoft.c index 79aac92..824d2a1 100644 --- a/target/linux/generic/files/crypto/ocf/cryptosoft.c +++ b/target/linux/generic/files/crypto/ocf/cryptosoft.c @@ -777,7 +777,7 @@ static void swcr_process_req(struct swcr_req *req) if (len + sg_len > crd->crd_len) len = crd->crd_len - sg_len; sg_set_page(&req->sg[sg_num], - skb_shinfo(skb)->frags[i].page, + skb_shinfo(skb)->frags[i].page.p, len, skb_shinfo(skb)->frags[i].page_offset + skip); sg_len += len; diff --git a/target/linux/generic/files/crypto/ocf/ubsec_ssb/ubsec_ssb.c b/target/linux/generic/files/crypto/ocf/ubsec_ssb/ubsec_ssb.c index aa0733f..fc40562 100644 --- a/target/linux/generic/files/crypto/ocf/ubsec_ssb/ubsec_ssb.c +++ b/target/linux/generic/files/crypto/ocf/ubsec_ssb/ubsec_ssb.c @@ -297,18 +297,18 @@ dma_map_skb(struct ubsec_softc *sc, struct ubsec_dma_alloc* q_map, struct sk_buf #ifdef UBSEC_VERBOSE_DEBUG DPRINTF("%s - map %d 0x%x %d\n", __FUNCTION__, i + 1, - (unsigned int)page_address(skb_shinfo(skb)->frags[i].page) + + (unsigned int)page_address(skb_shinfo(skb)->frags[i].page.p) + skb_shinfo(skb)->frags[i].page_offset, skb_shinfo(skb)->frags[i].size); #endif tmp = dma_map_single(sc->sc_dv, - page_address(skb_shinfo(skb)->frags[i].page) + + page_address(skb_shinfo(skb)->frags[i].page.p) + skb_shinfo(skb)->frags[i].page_offset, skb_shinfo(skb)->frags[i].size, DMA_BIDIRECTIONAL); q_map[i + 1].dma_paddr = tmp; - q_map[i + 1].dma_vaddr = (void*)(page_address(skb_shinfo(skb)->frags[i].page) + + q_map[i + 1].dma_vaddr = (void*)(page_address(skb_shinfo(skb)->frags[i].page.p) + skb_shinfo(skb)->frags[i].page_offset); q_map[i + 1].dma_size = skb_shinfo(skb)->frags[i].size;
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel