--- /dev/null
+From c10b854a6fc07dbe7fcadcb0366954a1fe54e415 Mon Sep 17 00:00:00 2001
+From: David S. Miller <davem@davemloft.net>
+Date: Thu, 8 May 2008 23:40:26 -0700
+Subject: sit: Add missing kfree_skb() on pskb_may_pull() failure.
+
+From: David S. Miller <davem@davemloft.net>
+
+[ Upstream commit: 36ca34cc3b8335eb1fe8bd9a1d0a2592980c3f02 ]
+
+Noticed by Paul Marks <paul@pmarks.net>.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/ipv6/sit.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/net/ipv6/sit.c
++++ b/net/ipv6/sit.c
+@@ -446,9 +446,9 @@ static int ipip6_rcv(struct sk_buff *skb
+ }
+
+ icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
+- kfree_skb(skb);
+ read_unlock(&ipip6_lock);
+ out:
++ kfree_skb(skb);
+ return 0;
+ }
+
--- /dev/null
+From 4c25c4bd281d97295a321ab1a22440a26708ce5e Mon Sep 17 00:00:00 2001
+From: David S. Miller <davem@davemloft.net>
+Date: Wed, 7 May 2008 02:24:28 -0700
+Subject: sparc: Fix mmap VA span checking.
+
+From: David S. Miller <davem@davemloft.net>
+
+[ Upstream commit: 5816339310b2d9623cf413d33e538b45e815da5d ]
+
+We should not conditionalize VA range checks on MAP_FIXED.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/sparc/kernel/sys_sparc.c | 3 +--
+ arch/sparc64/kernel/sys_sparc.c | 4 ++--
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+--- a/arch/sparc/kernel/sys_sparc.c
++++ b/arch/sparc/kernel/sys_sparc.c
+@@ -224,8 +224,7 @@ int sparc_mmap_check(unsigned long addr,
+ {
+ if (ARCH_SUN4C_SUN4 &&
+ (len > 0x20000000 ||
+- ((flags & MAP_FIXED) &&
+- addr < 0xe0000000 && addr + len > 0x20000000)))
++ (addr < 0xe0000000 && addr + len > 0x20000000)))
+ return -EINVAL;
+
+ /* See asm-sparc/uaccess.h */
+--- a/arch/sparc64/kernel/sys_sparc.c
++++ b/arch/sparc64/kernel/sys_sparc.c
+@@ -549,13 +549,13 @@ int sparc64_mmap_check(unsigned long add
+ if (len >= STACK_TOP32)
+ return -EINVAL;
+
+- if ((flags & MAP_FIXED) && addr > STACK_TOP32 - len)
++ if (addr > STACK_TOP32 - len)
+ return -EINVAL;
+ } else {
+ if (len >= VA_EXCLUDE_START)
+ return -EINVAL;
+
+- if ((flags & MAP_FIXED) && invalid_64bit_range(addr, len))
++ if (invalid_64bit_range(addr, len))
+ return -EINVAL;
+ }
+