diff options
Diffstat (limited to 'drivers/gpu/drm/drm_cache.c')
-rw-r--r-- | drivers/gpu/drm/drm_cache.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_cache.c b/drivers/gpu/drm/drm_cache.c index 9a62d7a53553..6743ff7dccfa 100644 --- a/drivers/gpu/drm/drm_cache.c +++ b/drivers/gpu/drm/drm_cache.c | |||
@@ -130,11 +130,12 @@ drm_clflush_virt_range(void *addr, unsigned long length) | |||
130 | { | 130 | { |
131 | #if defined(CONFIG_X86) | 131 | #if defined(CONFIG_X86) |
132 | if (cpu_has_clflush) { | 132 | if (cpu_has_clflush) { |
133 | const int size = boot_cpu_data.x86_clflush_size; | ||
133 | void *end = addr + length; | 134 | void *end = addr + length; |
135 | addr = (void *)(((unsigned long)addr) & -size); | ||
134 | mb(); | 136 | mb(); |
135 | for (; addr < end; addr += boot_cpu_data.x86_clflush_size) | 137 | for (; addr < end; addr += size) |
136 | clflushopt(addr); | 138 | clflushopt(addr); |
137 | clflushopt(end - 1); | ||
138 | mb(); | 139 | mb(); |
139 | return; | 140 | return; |
140 | } | 141 | } |