linux-sg2042/drivers
Daniel Vetter 8dcf015eb9 drm/i915: optimize the shmem_pwrite slowpath handling
Since we drop dev->struct_mutex when going through the slowpath, the
object might have been moved out of the cpu domain. Hence we need to
clflush the entire object to ensure that after the ioctl returns,
everything is coherent again (interwoven writes are ill-defined
anyway).

But we only need to do this if we start in the cpu domain and the
object requires flushing for coherency. So don't do the flushing if
the object is coherent anyway or if we've done in-line clfushing
already.

v2: i915_gem_clflush_object already checks whether the object is
coherent and if so, drops the flushing. Hence we don't need to check
that ourselves, simplifying the condition.

v3: Reorder the checks for better clarity (and adjust the comment
accordingly), suggested by Chris Wilson.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-11-29 13:49:08 +01:00
..
accessibility
acpi ACPI video: Ignore errors after _DOD evaluation. 2012-11-03 09:52:54 +08:00
amba
ata Merge branch 'samsung_platform_data' into staging/for_v3.7 2012-10-05 22:32:05 -03:00
atm sections: fix section conflicts in drivers/atm 2012-10-06 03:04:40 +09:00
auxdisplay
base Power management and ACPI fixes for 3.7-rc3 2012-10-26 14:23:35 -07:00
bcma bcma: fix unregistration of cores 2012-10-15 14:45:51 -04:00
block loop: Make explicit loop device destruction lazy 2012-10-30 08:37:31 +01:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00
bus drivers: bus: omap_l3: fixup merge conflict resolution 2012-10-01 19:39:48 -07:00
cdrom
char Merge branch 'for-airlied' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2012-11-20 09:22:35 +10:00
clk spi: Updates for v3.7 2012-10-02 17:26:42 -07:00
clocksource Power management updates for 3.7-rc1 2012-10-02 18:32:35 -07:00
connector Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00
cpufreq cpufreq / powernow-k8: Change maintainer's email address 2012-10-31 21:02:57 +01:00
cpuidle ACPI idle, CPU hotplug: Fix NULL pointer dereference during hotplug 2012-10-08 22:52:54 -04:00
crypto ARM: soc: late platform updates 2012-10-07 20:55:16 +09:00
dca
devfreq
dio
dma Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma 2012-10-26 14:59:01 -07:00
edac amd64_edac:__amd64_set_scrub_rate(): avoid overindexing scrubrates[] 2012-10-24 16:13:27 +02:00
eisa
extcon extcon : register for cable interest by cable name 2012-10-23 16:32:18 +09:00
firewire firewire: cdev: fix user memory corruption (i386 userland on amd64 kernel) 2012-10-09 18:26:28 +02:00
firmware firmware/memmap: avoid type conflicts with the generic memmap_init() 2012-10-19 14:07:47 -07:00
gpio Some GPIO fixes for the v3.7 series since -rc1: 2012-10-30 15:56:22 -07:00
gpu drm/i915: optimize the shmem_pwrite slowpath handling 2012-11-29 13:49:08 +01:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2012-10-31 15:39:28 -07:00
hsi
hv Drivers: hv: Cleanup error handling in vmbus_open() 2012-10-24 15:46:27 -07:00
hwmon hwmon: Only include of_match_table with CONFIG_OF_GPIO 2012-11-01 17:31:20 -07:00
hwspinlock
i2c Merge branch 'i2c-embedded/for-current' of git://git.pengutronix.de/git/wsa/linux 2012-11-03 15:14:54 -07:00
ide sections: fix section conflicts in drivers/ide 2012-10-06 03:04:41 +09:00
idle intel_idle: enable IVB Xeon support 2012-09-26 22:28:21 -04:00
iio iio: Remove duplicates for light/ in Kconfig and Makefile 2012-10-19 19:44:06 +01:00
infiniband Merge branches 'cxgb4' and 'mlx4' into for-next 2012-10-23 09:03:49 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2012-11-02 16:11:15 -07:00
iommu iommu/tegra: smmu: Fix deadly typo 2012-10-24 16:58:53 +02:00
irqchip
isdn bas_gigaset: fix pre_reset handling 2012-10-26 02:20:36 -04:00
leds Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2012-10-10 20:14:07 +09:00
lguest Merge branch 'virtio-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux 2012-10-07 21:04:56 +09:00
macintosh Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-10-06 03:16:12 +09:00
md MD RAID10: Fix oops when creating RAID10 arrays via dm-raid.c 2012-10-31 11:42:30 +11:00
media [media] Kconfig: Fix dependencies for driver autoselect options 2012-10-17 16:45:56 -03:00
memory memory: tegra{20,30}-mc: Fix reading incorrect register in mc_readl() 2012-09-26 14:04:09 -07:00
memstick
message
mfd 1. New drivers: 2012-10-07 17:29:24 +09:00
misc pwm: Changes for v3.7-rc1 2012-10-10 20:15:24 +09:00
mmc mmc: mxs-mmc: Fix merge issue causing build error 2012-10-11 17:21:40 -04:00
mtd mtd: Disable mtdchar mmap on MMU systems 2012-10-09 15:08:42 +01:00
net vmxnet3: must split too big fragments 2012-11-02 21:58:09 -04:00
nfc NFC: Fix missing mutex unlock in pn533_send_cmd_frame_async 2012-09-27 10:47:48 +02:00
nubus
of of/platform: sparse fix 2012-10-17 15:53:03 -05:00
oprofile mm: use mm->exe_file instead of first VM_EXECUTABLE vma->vm_file 2012-10-09 16:22:18 +09:00
parisc
parport Xtensa patchset for 3.7 2012-10-09 16:11:46 +09:00
pci Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-10-06 03:16:12 +09:00
pcmcia Merge branch 'testing/driver-warnings' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc into fixes 2012-10-19 15:40:18 -07:00
pinctrl pinctrl/nomadik: pass DT node to the irqdomain 2012-10-23 11:52:25 +02:00
platform Merge branches 'fixes-for-37', 'ec' and 'thermal' into release 2012-10-09 01:47:35 -04:00
pnp
power Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux 2012-10-13 11:27:59 +09:00
pps idr: rename MAX_LEVEL to MAX_IDR_LEVEL 2012-10-06 03:04:56 +09:00
ps3
ptp
pwm pwm: Changes for v3.7-rc1 2012-10-10 20:15:24 +09:00
rapidio rapidio: update for destination ID allocation 2012-10-11 08:50:15 +09:00
regulator MFD bits for the 3.7 merge window. 2012-10-05 12:01:30 +09:00
remoteproc Merge branch 'virtio-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux 2012-10-07 21:04:56 +09:00
rpmsg Merge branch 'virtio-next' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux 2012-10-07 21:04:56 +09:00
rtc drivers/rtc/rtc-imxdi.c: add missing spin lock initialization 2012-10-25 14:37:53 -07:00
s390 s390/css: stop stsch loop after cc 3 2012-10-18 17:50:08 +02:00
sbus
scsi qla2xxx: Update target lookup session tables when a target session changes 2012-10-26 12:29:46 -07:00
sfi
sh sh: Fix up more fallout from pointless ARM __iomem churn. 2012-10-15 14:08:48 +09:00
sn
spi spi: Some minor MXS fixes 2012-10-28 11:13:54 -07:00
ssb
staging Staging driver fixes for 3.7-rc3 2012-10-26 10:25:31 -07:00
target target: Fix incorrect usage of nested IRQ spinlocks in ABORT_TASK path 2012-11-01 00:38:45 -07:00
tc
thermal exynos4_tmu_driver_ids should be exynos_tmu_driver_ids. 2012-11-03 09:52:55 +08:00
tty Revert "serial: omap: fix software flow control" 2012-10-24 11:57:21 -07:00
uio mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
usb xhci: trivial: Remove assigned but unused ep_ctx. 2012-10-25 13:13:48 -07:00
uwb
vfio vfio: Fix PCI INTx disable consistency 2012-10-10 09:10:32 -06:00
vhost vhost: fix mergeable bufs on BE hosts 2012-10-24 23:19:30 -04:00
video Bug-fixes: 2012-11-02 13:26:11 -07:00
virt
virtio virtio_mmio: Don't attempt to create empty virtqueues 2012-09-28 15:05:16 +09:30
vlynq
vme
w1 char/misc driver merge for 3.7-rc1 2012-10-01 12:09:59 -07:00
watchdog Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu 2012-10-07 21:06:10 +09:00
xen Bug-fixes: 2012-11-02 13:26:11 -07:00
zorro
Kconfig ARM: soc: driver specific changes 2012-10-01 18:46:13 -07:00
Makefile IPMI: Change link order 2012-10-16 18:07:12 -07:00