diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 7565beeea4cb674bcd4e421733dac4fdde2b465c..93353b6fb88138ddd1a3872503055f1e48d573e8 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -38,8 +38,8 @@ endif
 ifeq ($(LINUX_VERSION),3.2.14)
   LINUX_KERNEL_MD5SUM:=961da0dc037181a4a5059f763b70eabd
 endif
-ifeq ($(LINUX_VERSION),3.3)
-  LINUX_KERNEL_MD5SUM:=98a6cdd7d082b7ea72df9c89842bac74
+ifeq ($(LINUX_VERSION),3.3.1)
+  LINUX_KERNEL_MD5SUM:=ded7229c02a53cd071e541f73b9ef547
 endif
 
 # disable the md5sum check for unknown kernel versions
diff --git a/target/linux/generic/patches-3.3/120-ppp_txqueue_restart.patch b/target/linux/generic/patches-3.3/120-ppp_txqueue_restart.patch
index 83033a16c24c77d32402c92c2b418e9dd5ee9d1d..84eb4e41ba8b71346ec4f93cea5d7535e608f861 100644
--- a/target/linux/generic/patches-3.3/120-ppp_txqueue_restart.patch
+++ b/target/linux/generic/patches-3.3/120-ppp_txqueue_restart.patch
@@ -22,8 +22,8 @@ harmless in the TX path.
 
 Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
 
---- a/drivers/net/ppp/ppp_generic.c~	2012-01-26 00:39:32.000000000 +0000
-+++ b/drivers/net/ppp/ppp_generic.c	2012-03-26 10:32:31.286744147 +0100
+--- a/drivers/net/ppp/ppp_generic.c
++++ b/drivers/net/ppp/ppp_generic.c
 @@ -235,7 +235,7 @@ struct ppp_net {
  /* Prototypes. */
  static int ppp_unattached_ioctl(struct net *net, struct ppp_file *pf,
@@ -73,10 +73,3 @@ Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
  }
  
  static inline struct sk_buff *
-
--- 
-David Woodhouse                            Open Source Technology Centre
-David.Woodhouse@intel.com                              Intel Corporation
-
-
-
diff --git a/target/linux/generic/patches-3.3/910-kobject_uevent.patch b/target/linux/generic/patches-3.3/910-kobject_uevent.patch
index f15749fa1780d5680c596a302bb9a5b0f942cc66..aa9a40f0998100b97c1fd4303c54f4d992d08194 100644
--- a/target/linux/generic/patches-3.3/910-kobject_uevent.patch
+++ b/target/linux/generic/patches-3.3/910-kobject_uevent.patch
@@ -1,6 +1,6 @@
 --- a/lib/kobject_uevent.c
 +++ b/lib/kobject_uevent.c
-@@ -49,6 +49,18 @@ static const char *kobject_actions[] = {
+@@ -50,6 +50,18 @@ static const char *kobject_actions[] = {
  	[KOBJ_OFFLINE] =	"offline",
  };
  
@@ -8,9 +8,9 @@
 +{
 +	u64 seq;
 +
-+	spin_lock(&sequence_lock);
++	mutex_lock(&uevent_sock_mutex);
 +	seq = ++uevent_seqnum;
-+	spin_unlock(&sequence_lock);
++	mutex_unlock(&uevent_sock_mutex);
 +
 +	return seq;
 +}
@@ -19,14 +19,3 @@
  /**
   * kobject_action_type - translate action string to numeric type
   *
-@@ -244,9 +256,7 @@ int kobject_uevent_env(struct kobject *k
- 		kobj->state_remove_uevent_sent = 1;
- 
- 	/* we will send an event, so request a new sequence number */
--	spin_lock(&sequence_lock);
--	seq = ++uevent_seqnum;
--	spin_unlock(&sequence_lock);
-+	seq = uevent_next_seqnum();
- 	retval = add_uevent_var(env, "SEQNUM=%llu", (unsigned long long)seq);
- 	if (retval)
- 		goto exit;
diff --git a/target/linux/generic/patches-3.3/911-kobject_add_broadcast_uevent.patch b/target/linux/generic/patches-3.3/911-kobject_add_broadcast_uevent.patch
index 5573266255a243ffc58bb3336b1352fda62a65aa..104df13bf295ef69d91bbb26e5d5a9cc3f4508f1 100644
--- a/target/linux/generic/patches-3.3/911-kobject_add_broadcast_uevent.patch
+++ b/target/linux/generic/patches-3.3/911-kobject_add_broadcast_uevent.patch
@@ -39,7 +39,7 @@
  #endif /* _KOBJECT_H_ */
 --- a/lib/kobject_uevent.c
 +++ b/lib/kobject_uevent.c
-@@ -380,6 +380,43 @@ int add_uevent_var(struct kobj_uevent_en
+@@ -381,6 +381,43 @@ int add_uevent_var(struct kobj_uevent_en
  EXPORT_SYMBOL_GPL(add_uevent_var);
  
  #if defined(CONFIG_NET)
diff --git a/target/linux/generic/patches-3.3/950-vm_exports.patch b/target/linux/generic/patches-3.3/950-vm_exports.patch
index 3fa1ece71f61f06f31ff85287084d952bf448f3a..b9abd0c1ca4bb69b35065eaacacf0786cc8368d1 100644
--- a/target/linux/generic/patches-3.3/950-vm_exports.patch
+++ b/target/linux/generic/patches-3.3/950-vm_exports.patch
@@ -71,7 +71,7 @@
  
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -1404,6 +1404,7 @@ unsigned long zap_page_range(struct vm_a
+@@ -1412,6 +1412,7 @@ unsigned long zap_page_range(struct vm_a
  	tlb_finish_mmu(&tlb, address, end);
  	return end;
  }
@@ -79,7 +79,7 @@
  
  /**
   * zap_vma_ptes - remove ptes mapping the vma
-@@ -3079,6 +3080,7 @@ static inline int check_stack_guard_page
+@@ -3087,6 +3088,7 @@ static inline int check_stack_guard_page
  	}
  	return 0;
  }