diff --git a/arch/i386/kernel/microcode.c b/arch/i386/kernel/microcode.c
index 467901ebb99230f4c5555b9fb56a4acdaa7cc374..9b9479768d5ebcda920044781234b8aa2d4183d3 100644
--- a/arch/i386/kernel/microcode.c
+++ b/arch/i386/kernel/microcode.c
@@ -187,8 +187,7 @@ static int microcode_sanity_check(void *mc)
 
 	total_size = get_totalsize(mc_header);
 	data_size = get_datasize(mc_header);
-	if ((data_size + MC_HEADER_SIZE > total_size)
-		|| (data_size < DEFAULT_UCODE_DATASIZE)) {
+	if (data_size + MC_HEADER_SIZE > total_size) {
 		printk(KERN_ERR "microcode: error! "
 			"Bad data size in microcode data file\n");
 		return -EINVAL;
@@ -365,8 +364,7 @@ static long get_next_ucode(void **mc, long offset)
 		return -EFAULT;
 	}
 	total_size = get_totalsize(&mc_header);
-	if ((offset + total_size > user_buffer_size)
-		|| (total_size < DEFAULT_UCODE_TOTALSIZE)) {
+	if (offset + total_size > user_buffer_size) {
 		printk(KERN_ERR "microcode: error! Bad total size in microcode "
 				"data file\n");
 		return -EINVAL;
@@ -432,11 +430,6 @@ static ssize_t microcode_write (struct file *file, const char __user *buf, size_
 {
 	ssize_t ret;
 
-	if (len < DEFAULT_UCODE_TOTALSIZE) {
-		printk(KERN_ERR "microcode: not enough data\n"); 
-		return -EINVAL;
-	}
-
 	if ((len >> PAGE_SHIFT) > num_physpages) {
 		printk(KERN_ERR "microcode: too much data (max %ld pages)\n", num_physpages);
 		return -EINVAL;
@@ -508,8 +501,7 @@ static long get_next_ucode_from_buffer(void **mc, void *buf,
 	mc_header = (microcode_header_t *)(buf + offset);
 	total_size = get_totalsize(mc_header);
 
-	if ((offset + total_size > size)
-		|| (total_size < DEFAULT_UCODE_TOTALSIZE)) {
+	if (offset + total_size > size) {
 		printk(KERN_ERR "microcode: error! Bad data in microcode data file\n");
 		return -EINVAL;
 	}