diff --git a/ports-foc/Makefile b/ports-foc/Makefile index c1feeed9e..3362a6e08 100644 --- a/ports-foc/Makefile +++ b/ports-foc/Makefile @@ -8,7 +8,7 @@ VERBOSE ?= @ ECHO = @echo TARGET ?= l4linux -PATCH-l4linux = patches/l4lx_genode.patch +PATCH-l4linux = patches/l4lx_genode.patch patches/icmp_align.patch REV-l4linux = 23 REPO-l4linux = http://svn.tudos.org/repos/oc/l4linux/trunk @@ -62,7 +62,7 @@ help: prepare: clean $(VERBOSE)$(UPDATE) $(ECHO) "applying patches to '$(REAL_CONTRIB_DIR)/$(TARGET)'" - $(VERBOSE)$(PATCH) -d $(REAL_CONTRIB_DIR)/$(TARGET) -i $(realpath $(PATCH-$(TARGET))) + $(VERBOSE)for i in $(PATCH-$(TARGET)); do $(PATCH) -d $(REAL_CONTRIB_DIR)/$(TARGET) < $$i; done $(VERBOSE)ln -s $(shell pwd)/src/drivers $(REAL_CONTRIB_DIR)/$(TARGET)/arch/l4/drivers $(ECHO) $(ECHO) "Preparation completed!" diff --git a/ports-foc/patches/icmp_align.patch b/ports-foc/patches/icmp_align.patch new file mode 100644 index 000000000..21a3d9ad4 --- /dev/null +++ b/ports-foc/patches/icmp_align.patch @@ -0,0 +1,13 @@ +Index: net/ipv4/icmp.c +=================================================================== +--- net/ipv4/icmp.c (revision 23) ++++ net/ipv4/icmp.c (working copy) +@@ -818,7 +818,7 @@ + if (!net->ipv4.sysctl_icmp_echo_ignore_all) { + struct icmp_bxm icmp_param; + +- icmp_param.data.icmph = *icmp_hdr(skb); ++ memcpy(&icmp_param.data.icmph, icmp_hdr(skb), sizeof(struct icmphdr)); + icmp_param.data.icmph.type = ICMP_ECHOREPLY; + icmp_param.skb = skb; + icmp_param.offset = 0;