Commits

Christos Nouskas committed 3983776

3.7.5-3

  • Participants
  • Parent commits ea5d786

Comments (0)

Files changed (5)

 pkgname=('linux-pf')
 true && pkgname=('linux-pf' 'linux-pf-headers')
 pkgver=${_basekernel}.${_pfrel}
-pkgrel=2
+pkgrel=3
 arch=('i686' 'x86_64')
 url="http://pf.natalenko.name/"
 license=('GPL2')
 pkgdesc="Linux kernel and modules with the pf-kernel patch [-ck patchset (BFS included), TuxOnIce, BFQ] and aufs3"
 
 # makepkg -g >>PKGBUILD
+
+[#75a4d4 224KiB/569KiB(39%) CN:1 DL:1.2MiB]
+
+[NOTICE] Η λήψη ολοκληρώθηκε: /storage/pkgbuild/linux-pf-hg/patch-3.7.5-pf.bz2
+
+Αποτελέσματα λήψης:
+gid   |stat|avg speed  |path/URI
+======+====+===========+=======================================================
+75a4d4|OK  |   1.4MiB/s|/storage/pkgbuild/linux-pf-hg/patch-3.7.5-pf.bz2
+
+Υπόμνημα Κατάστασης:
+(OK):download completed.
 sha256sums=('60a64d0bf76eeec3355f115c577935757b84629c8c129ce5b8bb02075f6b9458'
-            'd0e6772d8c039d3bba4dc0f4e0d7285546188a04ac651db4ba4caab63a4be33d'
-            'a4aaff8663fda6cc36468d03c2702dbb0d68367913461ae9f5315cb71b9e04c9'
+            'd536f65e350b16f3cc469097004c29396c50d12d921632df52f64a823704e26e'
+            'e670e5b3e4b602b70d6ed487a7ec90c6a772789fa8ded77b60ec1b7065c67c0d'
             '82d660caa11db0cd34fd550a049d7296b4a9dcd28f2a50c81418066d6e598864'
             '03ed4eb4a35d42ae6beaaa5e6fdbada4244ed6c343944bba6462defaa6fed0bf'
             '51ea665cfec42d9f9c7796af2b060b7edbdeb367e42811f8c02667ad729f6b19'
             '9e1e81d80afac6f316e53947e1b081017090081cd30e6c4c473420b77af4b52b'
             'b9d79ca33b0b51ff4f6976b7cd6dbb0b624ebf4fbf440222217f8ffc50445de4'
-            'ec53a9c0ac4c8a7e47a4a42371b9b08bd769bd3fca3440e6afab852566750a8d'
+            '3190cffd7bf4906cb85632764d4c5ec22e8da5ccda4daf1f6f8666c6e2c39d52'
             '8f2dad5b89dac8c76c3dd3ad902928d6032ec2c6ada41d873d752bad5586b154'
             '5b712c6b3c4548ee81a2f8a8eb46fbe8d10cd473fd5c62ad280132f752ee1579')
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/i386 3.7-pf Kernel Configuration
+# Linux/i386 3.7.6-1 Kernel Configuration
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
 #
 # General setup
 #
-CONFIG_SCHED_BFS=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
 CONFIG_CROSS_COMPILE=""
-CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION="-ARCH"
 CONFIG_LOCALVERSION_AUTO=y
 CONFIG_HAVE_KERNEL_GZIP=y
 CONFIG_HAVE_KERNEL_BZIP2=y
 CONFIG_HAVE_KERNEL_LZMA=y
 CONFIG_HAVE_KERNEL_XZ=y
 CONFIG_HAVE_KERNEL_LZO=y
-# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_GZIP=y
 # CONFIG_KERNEL_BZIP2 is not set
-CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_LZMA is not set
 # CONFIG_KERNEL_XZ is not set
 # CONFIG_KERNEL_LZO is not set
 CONFIG_DEFAULT_HOSTNAME="(none)"
 # CPU/Task time and stats accounting
 #
 CONFIG_TICK_CPU_ACCOUNTING=y
-CONFIG_IRQ_TIME_ACCOUNTING=y
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
 CONFIG_TASKSTATS=y
 CONFIG_CGROUP_DEVICE=y
 CONFIG_CPUSETS=y
 CONFIG_PROC_PID_CPUSET=y
+CONFIG_CGROUP_CPUACCT=y
 CONFIG_RESOURCE_COUNTERS=y
 CONFIG_MEMCG=y
 CONFIG_MEMCG_SWAP=y
 CONFIG_MEMCG_KMEM=y
 # CONFIG_CGROUP_HUGETLB is not set
 # CONFIG_CGROUP_PERF is not set
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=y
 CONFIG_BLK_CGROUP=y
 # CONFIG_DEBUG_BLK_CGROUP is not set
 # CONFIG_CHECKPOINT_RESTORE is not set
 CONFIG_IPC_NS=y
 CONFIG_PID_NS=y
 CONFIG_NET_NS=y
+CONFIG_SCHED_AUTOGROUP=y
 CONFIG_MM_OWNER=y
 # CONFIG_SYSFS_DEPRECATED is not set
 CONFIG_RELAY=y
 CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
 # CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
 CONFIG_SLUB=y
 CONFIG_PROFILING=y
 CONFIG_TRACEPOINTS=y
 # IO Schedulers
 #
 CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=m
-CONFIG_IOSCHED_CFQ=m
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
 CONFIG_CFQ_GROUP_IOSCHED=y
-CONFIG_IOSCHED_BFQ=y
-CONFIG_CGROUP_BFQIO=y
-CONFIG_DEFAULT_BFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="bfq"
+CONFIG_DEFAULT_IOSCHED="cfq"
 CONFIG_PREEMPT_NOTIFIERS=y
 CONFIG_PADATA=y
 CONFIG_ASN1=m
 # CONFIG_MK6 is not set
 # CONFIG_MK7 is not set
 # CONFIG_MK8 is not set
-# CONFIG_MBARCELONA is not set
-# CONFIG_MBOBCAT is not set
-# CONFIG_MBULLDOZER is not set
-# CONFIG_MPILEDRIVER is not set
 # CONFIG_MCRUSOE is not set
 # CONFIG_MEFFICEON is not set
 # CONFIG_MWINCHIPC6 is not set
 # CONFIG_MVIAC3_2 is not set
 # CONFIG_MVIAC7 is not set
 # CONFIG_MCORE2 is not set
-# CONFIG_MCOREI7 is not set
-# CONFIG_MCOREI7AVX is not set
-# CONFIG_MCOREAVXI is not set
-# CONFIG_MCOREAVX2 is not set
 # CONFIG_MATOM is not set
 CONFIG_X86_GENERIC=y
 CONFIG_X86_INTERNODE_CACHE_SHIFT=6
 # CONFIG_NOHIGHMEM is not set
 CONFIG_HIGHMEM4G=y
 # CONFIG_HIGHMEM64G is not set
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_3G_OPT is not set
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_2G_OPT is not set
-# CONFIG_VMSPLIT_1G is not set
 CONFIG_PAGE_OFFSET=0xC0000000
 CONFIG_HIGHMEM=y
 CONFIG_ARCH_FLATMEM_ENABLE=y
 CONFIG_VIRT_TO_BUS=y
 CONFIG_MMU_NOTIFIER=y
 CONFIG_KSM=y
-CONFIG_UKSM=y
-# CONFIG_KSM_LEGACY is not set
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
 CONFIG_MEMORY_FAILURE=y
 CONFIG_SECCOMP=y
 CONFIG_CC_STACKPROTECTOR=y
 # CONFIG_HZ_100 is not set
-# CONFIG_HZ_250_NODEFAULT is not set
-# CONFIG_HZ_300 is not set
-CONFIG_HZ_1000=y
-# CONFIG_HZ_1500 is not set
-# CONFIG_HZ_2000 is not set
-# CONFIG_HZ_3000 is not set
-# CONFIG_HZ_4000 is not set
-# CONFIG_HZ_5000 is not set
-# CONFIG_HZ_7500 is not set
-# CONFIG_HZ_10000 is not set
-CONFIG_HZ=1000
+# CONFIG_HZ_250 is not set
+CONFIG_HZ_300=y
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=300
 CONFIG_SCHED_HRTICK=y
 CONFIG_KEXEC=y
 # CONFIG_CRASH_DUMP is not set
 CONFIG_HIBERNATE_CALLBACKS=y
 CONFIG_HIBERNATION=y
 CONFIG_PM_STD_PARTITION=""
-CONFIG_TOI_CORE=y
-
-#
-# Image Storage (you need at least one allocator)
-#
-CONFIG_TOI_FILE=m
-CONFIG_TOI_SWAP=m
-
-#
-# General Options
-#
-CONFIG_TOI_CRYPTO=m
-CONFIG_TOI_USERUI=m
-CONFIG_TOI_USERUI_DEFAULT_PATH="/usr/sbin/tuxoniceui"
-CONFIG_TOI_DEFAULT_IMAGE_SIZE_LIMIT=-2
-# CONFIG_TOI_KEEP_IMAGE is not set
-CONFIG_TOI_REPLACE_SWSUSP=y
-CONFIG_TOI_IGNORE_LATE_INITCALL=y
-CONFIG_TOI_DEFAULT_WAIT=25
-CONFIG_TOI_DEFAULT_EXTRA_PAGES_ALLOWANCE=7000
-# CONFIG_TOI_CHECKSUM is not set
-CONFIG_TOI=y
-CONFIG_TOI_EXPORTS=y
-CONFIG_TOI_ZRAM_SUPPORT=y
 CONFIG_PM_SLEEP=y
 CONFIG_PM_SLEEP_SMP=y
 CONFIG_PM_AUTOSLEEP=y
 CONFIG_PM_ADVANCED_DEBUG=y
 # CONFIG_PM_TEST_SUSPEND is not set
 CONFIG_PM_SLEEP_DEBUG=y
-# CONFIG_PM_TRACE_RTC is not set
+CONFIG_PM_TRACE=y
+CONFIG_PM_TRACE_RTC=y
 CONFIG_ACPI=y
 CONFIG_ACPI_SLEEP=y
 # CONFIG_ACPI_PROCFS is not set
 # CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
-# CONFIG_ARPD is not set
+CONFIG_ARPD=y
 CONFIG_SYN_COOKIES=y
 CONFIG_NET_IPVTI=m
 CONFIG_INET_AH=m
 CONFIG_CAIF_SPI_SYNC=y
 CONFIG_CAIF_HSI=m
 CONFIG_ETHERNET=y
-CONFIG_MDIO=y
+CONFIG_MDIO=m
 CONFIG_NET_VENDOR_3COM=y
 CONFIG_EL1=m
 CONFIG_EL3=m
 CONFIG_WIMAX_GDM72XX_USB_PM=y
 CONFIG_CSR_WIFI=m
 CONFIG_ZCACHE2=y
-CONFIG_RAMSTER=y
 CONFIG_NET_VENDOR_SILICOM=y
 CONFIG_SBYPASS=m
 CONFIG_BPCTL=m
 CONFIG_EDD=m
 # CONFIG_EDD_OFF is not set
 CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_EFI_VARS=m
+CONFIG_EFI_VARS=y
 CONFIG_DELL_RBU=m
 CONFIG_DCDBAS=m
 CONFIG_DMIID=y
 CONFIG_TMPFS_XATTR=y
 CONFIG_HUGETLBFS=y
 CONFIG_HUGETLB_PAGE=y
-CONFIG_CONFIGFS_FS=m
+CONFIG_CONFIGFS_FS=y
 CONFIG_MISC_FILESYSTEMS=y
 # CONFIG_ADFS_FS is not set
 CONFIG_AFFS_FS=m
 # CONFIG_UFS_DEBUG is not set
 CONFIG_EXOFS_FS=m
 # CONFIG_EXOFS_DEBUG is not set
-CONFIG_AUFS_FS=m
-CONFIG_AUFS_BRANCH_MAX_127=y
-# CONFIG_AUFS_BRANCH_MAX_511 is not set
-# CONFIG_AUFS_BRANCH_MAX_1023 is not set
-# CONFIG_AUFS_BRANCH_MAX_32767 is not set
-CONFIG_AUFS_SBILIST=y
-CONFIG_AUFS_HNOTIFY=y
-CONFIG_AUFS_HFSNOTIFY=y
-CONFIG_AUFS_EXPORT=y
-CONFIG_AUFS_RDU=y
-CONFIG_AUFS_PROC_MAP=y
-CONFIG_AUFS_SP_IATTR=y
-CONFIG_AUFS_SHWH=y
-CONFIG_AUFS_BR_RAMFS=y
-CONFIG_AUFS_BR_FUSE=y
-CONFIG_AUFS_POLL=y
-CONFIG_AUFS_BR_HFSPLUS=y
-CONFIG_AUFS_BDEV_LOOP=y
-# CONFIG_AUFS_DEBUG is not set
 CONFIG_ORE=m
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
 CONFIG_ARCH_WANT_FRAME_POINTERS=y
 CONFIG_FRAME_POINTER=y
 # CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
 CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # CONFIG_RCU_CPU_STALL_VERBOSE is not set
 # CONFIG_RCU_CPU_STALL_INFO is not set
 # CONFIG_INTERVAL_TREE_TEST is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
-# CONFIG_DYNAMIC_DEBUG is not set
+CONFIG_DYNAMIC_DEBUG=y
 # CONFIG_DMA_API_DEBUG is not set
 # CONFIG_ATOMIC64_SELFTEST is not set
 CONFIG_ASYNC_RAID6_TEST=m

File config.x86_64

 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86_64 3.7-pf Kernel Configuration
+# Linux/x86_64 3.7.5-pf Kernel Configuration
 #
 CONFIG_64BIT=y
 CONFIG_X86_64=y
 CONFIG_IOSCHED_CFQ=m
 CONFIG_CFQ_GROUP_IOSCHED=y
 CONFIG_IOSCHED_BFQ=y
-CONFIG_CGROUP_BFQIO=y
+# CONFIG_CGROUP_BFQIO is not set
 CONFIG_DEFAULT_BFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="bfq"
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
 CONFIG_ARCH_DMA_ADDR_T_64BIT=y
 CONFIG_DIRECT_GBPAGES=y
-CONFIG_NUMA=y
-CONFIG_AMD_NUMA=y
-CONFIG_X86_64_ACPI_NUMA=y
-CONFIG_NODES_SPAN_OTHER_NODES=y
-# CONFIG_NUMA_EMU is not set
-CONFIG_NODES_SHIFT=6
+# CONFIG_NUMA is not set
 CONFIG_ARCH_SPARSEMEM_ENABLE=y
 CONFIG_ARCH_SPARSEMEM_DEFAULT=y
 CONFIG_ARCH_SELECT_MEMORY_MODEL=y
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_SPARSEMEM_MANUAL=y
 CONFIG_SPARSEMEM=y
-CONFIG_NEED_MULTIPLE_NODES=y
 CONFIG_HAVE_MEMORY_PRESENT=y
 CONFIG_SPARSEMEM_EXTREME=y
 CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
 # CONFIG_CMDLINE_BOOL is not set
 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
-CONFIG_USE_PERCPU_NUMA_NODE_ID=y
 
 #
 # Power management and ACPI options
 CONFIG_PM_ADVANCED_DEBUG=y
 # CONFIG_PM_TEST_SUSPEND is not set
 CONFIG_PM_SLEEP_DEBUG=y
-# CONFIG_PM_TRACE_RTC is not set
+CONFIG_PM_TRACE=y
+CONFIG_PM_TRACE_RTC=y
 CONFIG_ACPI=y
 CONFIG_ACPI_SLEEP=y
 # CONFIG_ACPI_PROCFS is not set
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
 CONFIG_ACPI_THERMAL=m
-CONFIG_ACPI_NUMA=y
 # CONFIG_ACPI_CUSTOM_DSDT is not set
 CONFIG_ACPI_BLACKLIST_YEAR=0
 # CONFIG_ACPI_DEBUG is not set
 # CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
-# CONFIG_ARPD is not set
+CONFIG_ARPD=y
 CONFIG_SYN_COOKIES=y
 CONFIG_NET_IPVTI=m
 CONFIG_INET_AH=m
 CONFIG_EDD=m
 # CONFIG_EDD_OFF is not set
 CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_EFI_VARS=m
+CONFIG_EFI_VARS=y
 CONFIG_DELL_RBU=m
 CONFIG_DCDBAS=m
 CONFIG_DMIID=y
 CONFIG_TMPFS_XATTR=y
 CONFIG_HUGETLBFS=y
 CONFIG_HUGETLB_PAGE=y
-CONFIG_CONFIGFS_FS=m
+CONFIG_CONFIGFS_FS=y
 CONFIG_MISC_FILESYSTEMS=y
 # CONFIG_ADFS_FS is not set
 CONFIG_AFFS_FS=m
 # CONFIG_INTERVAL_TREE_TEST is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
-# CONFIG_DYNAMIC_DEBUG is not set
+CONFIG_DYNAMIC_DEBUG=y
 # CONFIG_DMA_API_DEBUG is not set
 # CONFIG_ATOMIC64_SELFTEST is not set
 CONFIG_ASYNC_RAID6_TEST=m

File drm-fix-track-free-areas-3.7.patch

+From 9ff0ab9881bd47f7d8a95c07a2fa61f594a91d0a Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Sun, 16 Dec 2012 16:15:00 +0000
+Subject: [PATCH] drm: Only evict the blocks required to create the requested
+ hole
+
+Avoid clobbering adjacent blocks if they happen to expire earlier and
+amalgamate together to form the requested hole.
+
+In passing this fixes a regression from
+commit ea7b1dd44867e9cd6bac67e7c9fc3f128b5b255c
+Author: Daniel Vetter <daniel.vetter@ffwll.ch>
+Date:   Fri Feb 18 17:59:12 2011 +0100
+
+    drm: mm: track free areas implicitly
+
+which swaps the end address for size (with a potential overflow) and
+effectively causes the eviction code to clobber almost all earlier
+buffers above the evictee.
+
+v2: Check the original hole not the adjusted as the coloring may confuse
+us when later searching for the overlapping nodes. Also make sure that
+we do apply the range restriction and color adjustment in the same
+order for both scanning, searching and insertion.
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
+---
+ drivers/gpu/drm/drm_mm.c |   45 +++++++++++++++++----------------------------
+ include/drm/drm_mm.h     |    2 +-
+ 2 files changed, 18 insertions(+), 29 deletions(-)
+
+diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c
+index 0761a03..665553c 100644
+--- a/drivers/gpu/drm/drm_mm.c
++++ b/drivers/gpu/drm/drm_mm.c
+@@ -213,11 +213,13 @@ static void drm_mm_insert_helper_range(struct drm_mm_node *hole_node,
+
+	BUG_ON(!hole_node->hole_follows || node->allocated);
+
+-	if (mm->color_adjust)
+-		mm->color_adjust(hole_node, color, &adj_start, &adj_end);
+-
+	if (adj_start < start)
+		adj_start = start;
++	if (adj_end > end)
++		adj_end = end;
++
++	if (mm->color_adjust)
++		mm->color_adjust(hole_node, color, &adj_start, &adj_end);
+
+	if (alignment) {
+		unsigned tmp = adj_start % alignment;
+@@ -489,7 +491,7 @@ void drm_mm_init_scan(struct drm_mm *mm,
+	mm->scan_size = size;
+	mm->scanned_blocks = 0;
+	mm->scan_hit_start = 0;
+-	mm->scan_hit_size = 0;
++	mm->scan_hit_end = 0;
+	mm->scan_check_range = 0;
+	mm->prev_scanned_node = NULL;
+ }
+@@ -516,7 +518,7 @@ void drm_mm_init_scan_with_range(struct drm_mm *mm,
+	mm->scan_size = size;
+	mm->scanned_blocks = 0;
+	mm->scan_hit_start = 0;
+-	mm->scan_hit_size = 0;
++	mm->scan_hit_end = 0;
+	mm->scan_start = start;
+	mm->scan_end = end;
+	mm->scan_check_range = 1;
+@@ -535,8 +537,7 @@ int drm_mm_scan_add_block(struct drm_mm_node *node)
+	struct drm_mm *mm = node->mm;
+	struct drm_mm_node *prev_node;
+	unsigned long hole_start, hole_end;
+-	unsigned long adj_start;
+-	unsigned long adj_end;
++	unsigned long adj_start, adj_end;
+
+	mm->scanned_blocks++;
+
+@@ -553,14 +554,8 @@ int drm_mm_scan_add_block(struct drm_mm_node *node)
+	node->node_list.next = &mm->prev_scanned_node->node_list;
+	mm->prev_scanned_node = node;
+
+-	hole_start = drm_mm_hole_node_start(prev_node);
+-	hole_end = drm_mm_hole_node_end(prev_node);
+-
+-	adj_start = hole_start;
+-	adj_end = hole_end;
+-
+-	if (mm->color_adjust)
+-		mm->color_adjust(prev_node, mm->scan_color, &adj_start, &adj_end);
++	adj_start = hole_start = drm_mm_hole_node_start(prev_node);
++	adj_end = hole_end = drm_mm_hole_node_end(prev_node);
+
+	if (mm->scan_check_range) {
+		if (adj_start < mm->scan_start)
+@@ -569,11 +564,14 @@ int drm_mm_scan_add_block(struct drm_mm_node *node)
+			adj_end = mm->scan_end;
+	}
+
++	if (mm->color_adjust)
++		mm->color_adjust(prev_node, mm->scan_color,
++				 &adj_start, &adj_end);
++
+	if (check_free_hole(adj_start, adj_end,
+			    mm->scan_size, mm->scan_alignment)) {
+		mm->scan_hit_start = hole_start;
+-		mm->scan_hit_size = hole_end;
+-
++		mm->scan_hit_end = hole_end;
+		return 1;
+	}
+
+@@ -609,19 +607,10 @@ int drm_mm_scan_remove_block(struct drm_mm_node *node)
+			       node_list);
+
+	prev_node->hole_follows = node->scanned_preceeds_hole;
+-	INIT_LIST_HEAD(&node->node_list);
+	list_add(&node->node_list, &prev_node->node_list);
+
+-	/* Only need to check for containement because start&size for the
+-	 * complete resulting free block (not just the desired part) is
+-	 * stored. */
+-	if (node->start >= mm->scan_hit_start &&
+-	    node->start + node->size
+-	    		<= mm->scan_hit_start + mm->scan_hit_size) {
+-		return 1;
+-	}
+-
+-	return 0;
++	 return (drm_mm_hole_node_end(node) > mm->scan_hit_start &&
++		 node->start < mm->scan_hit_end);
+ }
+ EXPORT_SYMBOL(drm_mm_scan_remove_block);
+
+diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h
+index 06d7f79..a1b66b7 100644
+--- a/include/drm/drm_mm.h
++++ b/include/drm/drm_mm.h
+@@ -70,7 +70,7 @@ struct drm_mm {
+	unsigned long scan_color;
+	unsigned long scan_size;
+	unsigned long scan_hit_start;
+-	unsigned scan_hit_size;
++	unsigned long scan_hit_end;
+	unsigned scanned_blocks;
+	unsigned long scan_start;
+	unsigned long scan_end;
+--
+1.7.10.4

File fat-3.6.x.patch

 	if (isvfat) {
 		if (sbi->nls_io)
 			seq_printf(m, ",iocharset=%s", sbi->nls_io->charset);
-