| 123456789101112131415161718192021222324252627282930313233 | diff -Nur linux-4.4.13.orig/arch/cris/arch-v32/mm/intmem.c linux-4.4.13/arch/cris/arch-v32/mm/intmem.c--- linux-4.4.13.orig/arch/cris/arch-v32/mm/intmem.c	2016-06-08 03:14:51.000000000 +0200+++ linux-4.4.13/arch/cris/arch-v32/mm/intmem.c	2016-06-21 20:40:18.919361891 +0200@@ -113,14 +113,14 @@  			allocation->status = STATUS_FREE; 			/* Join with prev and/or next if also free */-			if ((prev != &intmem_allocations) &&+			if ((&prev->entry != &intmem_allocations) && 					(prev->status == STATUS_FREE)) { 				prev->size += allocation->size; 				list_del(&allocation->entry); 				kfree(allocation); 				allocation = prev; 			}-			if ((next != &intmem_allocations) &&+			if ((&next->entry != &intmem_allocations) && 					(next->status == STATUS_FREE)) { 				allocation->size += next->size; 				list_del(&next->entry);@@ -145,5 +145,11 @@ 		(unsigned long)intmem_virtual + MEM_INTMEM_START + 		RESERVED_SIZE); }-device_initcall(crisv32_intmem_init); +static int __init crisv32_intmem_setup(void)+{+	crisv32_intmem_init();++	return 0;+}+device_initcall(crisv32_intmem_setup);
 |