Ville Syrjälä
76dc3769d7
drm/i915: Don't clobber the addfb2 ioctl params
...
We try to convert the old way of of specifying fb tiling (obj->tiling)
into the new fb modifiers. We store the result in the passed in mode_cmd
structure. But that structure comes directly from the addfb2 ioctl, and
gets copied back out to userspace, which means we're clobbering the
modifiers that the user provided (all 0 since the DRM_MODE_FB_MODIFIERS
flag wasn't even set by the user). Hence if the user reuses the struct
for another addfb2, the ioctl will be rejected since it's now asking for
some modifiers w/o the flag set.
Fix the problem by making a copy of the user provided structure. We can
play any games we want with the copy.
IGT-Version: 1.12-git (x86_64) (Linux: 4.4.0-rc1-stereo+ x86_64)
...
Subtest basic-X-tiled: SUCCESS (0.001s)
Test assertion failure function pitch_tests, file kms_addfb_basic.c:167:
Failed assertion: drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f) == 0
Last errno: 22, Invalid argument
Stack trace:
#0 [__igt_fail_assert+0x101]
#1 [pitch_tests+0x619]
#2 [__real_main426+0x2f]
#3 [main+0x23]
#4 [__libc_start_main+0xf0]
#5 [_start+0x29]
#6 [<unknown>+0x29]
Subtest framebuffer-vs-set-tiling failed.
**** DEBUG ****
Test assertion failure function pitch_tests, file kms_addfb_basic.c:167:
Failed assertion: drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &f) == 0
Last errno: 22, Invalid argument
**** END ****
Subtest framebuffer-vs-set-tiling: FAIL (0.003s)
...
IGT-Version: 1.12-git (x86_64) (Linux: 4.4.0-rc1-stereo+ x86_64)
Subtest framebuffer-vs-set-tiling: SUCCESS (0.000s)
Cc: stable@vger.kernel.org # v4.1+
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Fixes: 2a80eada32 ("drm/i915: Add fb format modifier support")
Testcase: igt/kms_addfb_basic/clobbered-modifier
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1447261890-3960-1-git-send-email-ville.syrjala@linux.intel.com
2015-11-17 16:30:55 +02:00
..
accessibility
acpi
More power management and ACPI updates for v4.4-rc1
2015-11-12 11:50:33 -08:00
amba
android
ata
SCSI misc on 20151113
2015-11-13 20:35:54 -08:00
atm
auxdisplay
base
More power management and ACPI updates for v4.4-rc1
2015-11-12 11:50:33 -08:00
bcma
block
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
2015-11-13 09:24:40 -08:00
bluetooth
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2015-11-10 18:11:41 -08:00
bus
ARM: SoC driver updates for v4.4
2015-11-10 15:00:03 -08:00
cdrom
char
Merge tag 'tpmdd-next-20151110' of https://github.com/jsakkine/linux-tpmdd into for-linus
2015-11-12 20:38:04 +11:00
clk
h8300 update for v4.4
2015-11-12 15:26:39 -08:00
clocksource
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
2015-11-15 09:10:53 -08:00
connector
mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd
2015-11-06 17:50:42 -08:00
cpufreq
More power management and ACPI updates for v4.4-rc1
2015-11-12 11:50:33 -08:00
cpuidle
crypto
More power management and ACPI updates for v4.4-rc1
2015-11-12 11:50:33 -08:00
dca
devfreq
dio
dma
dmaengine updates for 4.4-rc1
2015-11-10 10:05:17 -08:00
dma-buf
dma-buf/fence: add fence_wait_any_timeout function v2
2015-10-30 01:16:16 -04:00
edac
asm-generic cleanups
2015-11-06 14:22:15 -08:00
eisa
extcon
firewire
IEEE 1394 subsystem patch:
2015-11-11 10:21:34 -08:00
firmware
ARM: SoC driver updates for v4.4
2015-11-10 15:00:03 -08:00
fmc
fpga
fpga: socfpga: Fix check of return value of devm_request_irq
2015-10-29 15:20:25 -07:00
gpio
asm-generic cleanups
2015-11-06 14:22:15 -08:00
gpu
drm/i915: Don't clobber the addfb2 ioctl params
2015-11-17 16:30:55 +02:00
hid
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
2015-11-07 12:49:27 -08:00
hsi
hsi: controllers:remove redundant code
2015-10-30 16:10:40 +01:00
hv
drivers/hv: share Hyper-V SynIC constants with userspace
2015-11-04 16:24:33 +01:00
hwmon
ARM: SoC driver updates for v4.4
2015-11-10 15:00:03 -08:00
hwspinlock
hwtracing
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2015-11-13 20:04:17 -08:00
i2c
Merge branch 'i2c/for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
2015-11-10 11:58:25 -08:00
ide
mm, page_alloc: rename __GFP_WAIT to __GFP_RECLAIM
2015-11-06 17:50:42 -08:00
idle
iio
spi: Updates for v4.4
2015-11-05 13:15:12 -08:00
infiniband
SCSI misc on 20151113
2015-11-13 20:35:54 -08:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2015-11-13 21:41:14 -08:00
iommu
mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd
2015-11-06 17:50:42 -08:00
ipack
irqchip
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
2015-11-15 09:10:53 -08:00
isdn
TTY/Serial driver patches for 4.4-rc1
2015-11-04 21:35:12 -08:00
leds
spi: Updates for v4.4
2015-11-05 13:15:12 -08:00
lguest
lightnvm
block: change ->make_request_fn() and users to return a queue cookie
2015-11-07 10:40:46 -07:00
macintosh
mailbox
mailbox: mailbox-test: avoid reading iomem twice
2015-11-04 14:03:04 +05:30
mcb
mcb: Destroy IDA on module unload
2015-10-29 09:02:16 +09:00
md
Merge branch 'for-4.4/io-poll' of git://git.kernel.dk/linux-block
2015-11-10 17:23:49 -08:00
media
netup_unidvb: use pci_set_dma_mask insted of pci_dma_supported
2015-11-10 16:32:11 -08:00
memory
ARM: SoC driver updates for v4.4
2015-11-10 15:00:03 -08:00
memstick
message
SCSI queue for 4.4.
2015-11-12 07:06:18 -05:00
mfd
asm-generic cleanups
2015-11-06 14:22:15 -08:00
misc
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2015-11-13 20:04:17 -08:00
mmc
spi: Updates for v4.4
2015-11-05 13:15:12 -08:00
mtd
This pull request includes the following UBI/UBIFS changes:
2015-11-10 16:35:06 -08:00
net
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2015-11-13 20:04:17 -08:00
nfc
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2015-11-10 18:11:41 -08:00
ntb
NTB: fix 32-bit compiler warning
2015-11-08 16:24:43 -05:00
nubus
nvdimm
libnvdimm, pmem: fix size trim in pmem_direct_access()
2015-11-12 09:55:23 -08:00
nvme
NVMe: add support for Apple NVMe controller
2015-11-11 09:36:57 -07:00
nvmem
of
More power management and ACPI updates for v4.4-rc1
2015-11-12 11:50:33 -08:00
oprofile
parisc
pci: remove pci_dma_supported
2015-11-10 16:32:11 -08:00
parport
pci
More power management and ACPI updates for v4.4-rc1
2015-11-12 11:50:33 -08:00
pcmcia
perf
arm64 updates for 4.4:
2015-11-04 14:47:13 -08:00
phy
phy: qcom-ufs: fix build error when the component is built as a module
2015-11-09 17:44:24 -05:00
pinctrl
This is the bulk of GPIO changes for v4.4:
2015-11-02 12:59:12 -08:00
platform
platform/chrome: Branch for v4.4
2015-11-13 21:53:18 -08:00
pnp
power
- New Device Support
2015-11-06 10:23:50 -08:00
powercap
pps
ps3
ptp
pwm
pwm: Changes for v4.4-rc1
2015-11-11 09:16:10 -08:00
rapidio
ras
regulator
spi: Updates for v4.4
2015-11-05 13:15:12 -08:00
remoteproc
reset
rpmsg
rtc
RTC for 4.4
2015-11-10 10:01:21 -08:00
s390
block: change ->make_request_fn() and users to return a queue cookie
2015-11-07 10:40:46 -07:00
sbus
scsi
SCSI misc on 20151113
2015-11-13 20:35:54 -08:00
sfi
sh
sn
soc
ARM: SoC driver updates for v4.4
2015-11-10 15:00:03 -08:00
spi
Merge remote-tracking branches 'spi/topic/s3c64xx', 'spi/topic/ti-qspi' and 'spi/topic/txx9' into spi-next
2015-11-04 11:02:16 +00:00
spmi
char/misc drivers for 4.4-rc1
2015-11-04 22:15:15 -08:00
ssb
staging
Merge branch 'for-4.4/io-poll' of git://git.kernel.dk/linux-block
2015-11-10 17:23:49 -08:00
target
SCSI misc on 20151113
2015-11-13 20:35:54 -08:00
tc
thermal
thermal: rockchip: fix compile error
2015-11-11 19:52:39 -08:00
thunderbolt
tty
asm-generic cleanups
2015-11-06 14:22:15 -08:00
uio
usb
SCSI misc on 20151113
2015-11-13 20:35:54 -08:00
uwb
driver core update for 4.4-rc1
2015-11-04 21:50:37 -08:00
vfio
VFIO updates for v4.4-rc1
2015-11-13 17:05:32 -08:00
vhost
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2015-11-13 20:04:17 -08:00
video
fbdev changes for 4.4
2015-11-10 10:00:09 -08:00
virt
virtio
vlynq
vme
char/misc drivers for 4.4-rc1
2015-11-04 22:15:15 -08:00
w1
power supply and reset changes for the v4.4 series
2015-11-05 12:28:15 -08:00
watchdog
Merge git://www.linux-watchdog.org/linux-watchdog
2015-11-10 10:11:12 -08:00
xen
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
2015-11-13 20:04:17 -08:00
zorro
Kconfig
char/misc drivers for 4.4-rc1
2015-11-04 22:15:15 -08:00
Makefile
char/misc drivers for 4.4-rc1
2015-11-04 22:15:15 -08:00