linux/drivers
Lyude Paul 68b58d3924 drm/i915: Call dma_set_max_seg_size() in i915_driver_hw_probe()
commit 32f0a98265 upstream.

Currently, we don't call dma_set_max_seg_size() for i915 because we
intentionally do not limit the segment length that the device supports.
However, this results in a warning being emitted if we try to map
anything larger than SZ_64K on a kernel with CONFIG_DMA_API_DEBUG_SG
enabled:

[    7.751926] DMA-API: i915 0000:00:02.0: mapping sg segment longer
than device claims to support [len=98304] [max=65536]
[    7.751934] WARNING: CPU: 5 PID: 474 at kernel/dma/debug.c:1220
debug_dma_map_sg+0x20f/0x340

This was originally brought up on
https://bugs.freedesktop.org/show_bug.cgi?id=108517 , and the consensus
there was it wasn't really useful to set a limit (and that dma-debug
isn't really all that useful for i915 in the first place). Unfortunately
though, CONFIG_DMA_API_DEBUG_SG is enabled in the debug configs for
various distro kernels. Since a WARN_ON() will disable automatic problem
reporting (and cause any CI with said option enabled to start
complaining), we really should just fix the problem.

Note that as me and Chris Wilson discussed, the other solution for this
would be to make DMA-API not make such assumptions when a driver hasn't
explicitly set a maximum segment size. But, taking a look at the commit
which originally introduced this behavior, commit 78c47830a5
("dma-debug: check scatterlist segments"), there is an explicit mention
of this assumption and how it applies to devices with no segment size:

	Conversely, devices which are less limited than the rather
	conservative defaults, or indeed have no limitations at all
	(e.g. GPUs with their own internal MMU), should be encouraged to
	set appropriate dma_parms, as they may get more efficient DMA
	mapping performance out of it.

So unless there's any concerns (I'm open to discussion!), let's just
follow suite and call dma_set_max_seg_size() with UINT_MAX as our limit
to silence any warnings.

Changes since v3:
* Drop patch for enabling CONFIG_DMA_API_DEBUG_SG in CI. It looks like
  just turning it on causes the kernel to spit out bogus WARN_ONs()
  during some igt tests which would otherwise require teaching igt to
  disable the various DMA-API debugging options causing this. This is
  too much work to be worth it, since DMA-API debugging is useless for
  us. So, we'll just settle with this single patch to squelch WARN_ONs()
  during driver load for users that have CONFIG_DMA_API_DEBUG_SG turned
  on for some reason.
* Move dma_set_max_seg_size() call into i915_driver_hw_probe() - Chris
  Wilson

Signed-off-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: <stable@vger.kernel.org> # v4.18+
Link: https://patchwork.freedesktop.org/patch/msgid/20190823205251.14298-1-lyude@redhat.com
(cherry picked from commit acd674af95)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-09-06 10:22:20 +02:00
..
accessibility
acpi ACPI/IORT: Fix off-by-one check in iort_dev_find_its_id() 2019-08-16 10:12:48 +02:00
amba
android binder: fix possible UAF when freeing buffer 2019-08-04 09:30:53 +02:00
ata libata: add SG safety checks in SFF pio transfers 2019-08-29 08:28:45 +02:00
atm atm: iphase: Fix Spectre v1 vulnerability 2019-08-09 17:52:29 +02:00
auxdisplay auxdisplay: panel: need to delete scan_timer when misc_register fails in panel_attach 2019-09-06 10:21:56 +02:00
base drivers/base: Introduce kill_device() 2019-08-09 17:52:28 +02:00
bcma
block xen/blkback: fix memory leaks 2019-09-06 10:21:57 +02:00
bluetooth Bluetooth: hci_uart: check for missing tty operations 2019-08-04 09:30:55 +02:00
bus
cdrom cdrom: Fix race condition in cdrom_sysctl_register 2019-04-05 22:33:10 +02:00
char hpet: Fix division by zero in hpet_time_div() 2019-07-31 07:27:10 +02:00
clk clk: socfpga: stratix10: fix rate caclulationg for cnt_clks 2019-08-29 08:28:49 +02:00
clocksource clocksource/drivers/exynos_mct: Increase priority over ARM arch timer 2019-07-26 09:14:12 +02:00
connector
cpufreq cpufreq/pasemi: fix use-after-free in pas_cpufreq_cpu_init() 2019-08-16 10:12:46 +02:00
cpuidle
crypto crypto: ccp - Ignore tag length when decrypting GCM ciphertext 2019-08-16 10:12:38 +02:00
dax mm/huge_memory: fix vmf_insert_pfn_{pmd, pud}() crash, handle unaligned addresses 2019-05-22 07:37:40 +02:00
dca
devfreq
dio
dma omap-dma/omap_vout_vrfb: fix off-by-one fi value 2019-09-06 10:21:56 +02:00
dma-buf dma-buf: Discard old fence_excl on retrying get_fences_rcu for realloc 2019-07-28 08:29:28 +02:00
edac EDAC: Fix global-out-of-bounds write when setting edac_mc_poll_msec 2019-07-26 09:14:13 +02:00
eisa
extcon extcon: arizona: Disable mic detect if running when driver is removed 2019-05-31 06:46:23 -07:00
firewire
firmware iscsi_ibft: make ISCSI_IBFT dependson ACPI instead of ISCSI_IBFT_FIND 2019-08-16 10:12:45 +02:00
fmc
fpga fpga-manager: altera-ps-spi: Fix build error 2019-07-31 07:27:10 +02:00
fsi fsi: scom: Don't abort operations for minor errors 2019-09-06 10:22:19 +02:00
gnss
gpio gpiolib: never report open-drain/source lines as 'input' to user-space 2019-08-29 08:28:51 +02:00
gpu drm/i915: Call dma_set_max_seg_size() in i915_driver_hw_probe() 2019-09-06 10:22:20 +02:00
hid HID: wacom: Correct distance scale for 2nd-gen Intuos devices 2019-08-29 08:28:49 +02:00
hsi
hv Drivers: hv: vmbus: Fix virt_to_hvpfn() for X86_PAE 2019-08-29 08:28:51 +02:00
hwmon hwmon: (nct7802) Fix wrong detection of in4 presence 2019-08-16 10:12:51 +02:00
hwspinlock
hwtracing intel_th: pci: Add Tiger Lake support 2019-09-06 10:22:18 +02:00
i2c i2c: emev2: avoid race when unregistering slave client 2019-09-06 10:21:59 +02:00
ide
idle x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:17:53 +02:00
iio iio: adc: max9611: Fix temperature reading in probe 2019-08-25 10:47:59 +02:00
infiniband IB/mad: Fix use-after-free in ib mad completion handling 2019-08-25 10:47:57 +02:00
input Input: psmouse - fix build error of multiple definition 2019-08-25 10:48:02 +02:00
iommu iommu/dma: Handle SG length overflow better 2019-09-06 10:21:57 +02:00
ipack
irqchip irqchip/irq-imx-gpcv2: Forward irq type to parent 2019-08-25 10:47:53 +02:00
isdn isdn: hfcsusb: Fix mISDN driver crash caused by transfer buffer on the stack 2019-08-29 08:28:35 +02:00
leds leds: trigger: netdev: use memcpy in device_name_store 2019-05-04 09:20:22 +02:00
lightnvm lightnvm: pblk: fix freeing of merged pages 2019-07-26 09:14:09 +02:00
macintosh
mailbox mailbox: handle failed named mailbox channel request 2019-07-31 07:27:07 +02:00
mcb
md dm zoned: fix potential NULL dereference in dmz_do_reclaim() 2019-08-29 08:28:59 +02:00
media omap-dma/omap_vout_vrfb: fix off-by-one fi value 2019-09-06 10:21:56 +02:00
memory memory: tegra: Fix integer overflow on tick value calculation 2019-05-25 18:23:32 +02:00
memstick memstick: Fix error cleanup path of memstick_init 2019-07-31 07:26:59 +02:00
message
mfd mfd: hi655x-pmic: Fix missing return value check for devm_regmap_init_mmio_clk 2019-07-31 07:27:03 +02:00
misc mei: me: add Tiger Lake point LP device ID 2019-09-06 10:22:17 +02:00
mmc mmc: core: Fix init of SD cards reporting an invalid VDD range 2019-09-06 10:22:17 +02:00
mtd mtd: rawnand: micron: handle on-die "ECC-off" devices correctly 2019-08-06 19:06:54 +02:00
mux
net net: hisilicon: Fix dma_map_single failed on arm64 2019-08-29 08:28:44 +02:00
nfc st_nci_hci_connectivity_event_received: null check the allocation 2019-08-29 08:28:31 +02:00
ntb
nubus
nvdimm libnvdimm/bus: Fix wait_nvdimm_bus_probe_idle() ABBA deadlock 2019-08-09 17:52:28 +02:00
nvme nvme-pci: Fix async probe remove race 2019-09-06 10:21:55 +02:00
nvmem nvmem: sunxi_sid: Support SID on A83T and H5 2019-06-15 11:54:07 +02:00
of of: overlay: set node fields from properties when add new overlay node 2019-06-09 09:17:24 +02:00
opp
oprofile
parisc parisc: Use implicit space register selection for loading the coherence index of I/O pdirs 2019-06-11 12:20:51 +02:00
parport parport: Fix mem leak in parport_register_dev_model 2019-06-25 11:35:55 +08:00
pci PCI: dwc: pci-dra7xx: Fix compilation when !CONFIG_GPIOLIB 2019-07-31 07:27:07 +02:00
pcmcia
perf drivers/perf: arm_pmu: Fix failure path in PM notifier 2019-08-06 19:06:55 +02:00
phy phy: renesas: rcar-gen2: Fix memory leak at error paths 2019-07-31 07:27:00 +02:00
pinctrl pinctrl: rockchip: fix leaked of_node references 2019-07-31 07:26:57 +02:00
platform platform/mellanox: mlxreg-hotplug: Add devm_free_irq call to remove flow 2019-07-10 09:53:38 +02:00
pnp
power power: supply: max14656: fix potential use-before-alloc 2019-06-15 11:54:09 +02:00
powercap x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:17:53 +02:00
pps drivers/pps/pps.c: clear offset flags in PPS_SETPARAMS ioctl 2019-08-04 09:30:56 +02:00
ps3
ptp
pwm Revert "pwm: Set class for exported channels in sysfs" 2019-08-25 10:47:46 +02:00
rapidio drivers/rapidio/devices/rio_mport_cdev.c: NUL terminate some strings 2019-08-06 19:06:52 +02:00
ras RAS/CEC: Fix pfn insertion 2019-07-26 09:14:05 +02:00
regulator regulator: s2mps11: Fix buck7 and buck8 wrong voltages 2019-07-26 09:14:22 +02:00
remoteproc
reset reset: meson-audio-arb: Fix missing .owner setting of reset_controller_dev 2019-05-08 07:21:47 +02:00
rpmsg
rtc rtc: pcf8523: don't return invalid date when battery is low 2019-06-19 08:18:07 +02:00
s390 s390/qdio: add sanity checks to the fast-requeue path 2019-08-16 10:12:46 +02:00
sbus
scsi scsi: ufs: Fix RX_TERMINATION_FORCE_ENABLE define value 2019-09-06 10:22:02 +02:00
sfi
sh
siox
slimbus slimbus: fix a potential NULL pointer dereference in of_qcom_slim_ngd_register 2019-05-31 06:46:14 -07:00
sn
soc soc: bcm: brcmstb: biuctrl: Register writes require a barrier 2019-07-14 08:11:03 +02:00
soundwire soundwire: cadence_master: fix definitions for INTSTAT0/1 2019-09-06 10:21:56 +02:00
spi spi: bcm2835: Fix 3-wire mode if DMA is enabled 2019-08-09 17:52:35 +02:00
spmi
ssb ssb: Fix possible NULL pointer dereference in ssb_host_pcmcia_exit 2019-05-31 06:46:04 -07:00
staging staging: comedi: dt3000: Fix rounding up of timer divisor 2019-08-25 10:47:59 +02:00
target scsi: iscsi: set auth_protocol back to NULL if CHAP_A value is not supported 2019-07-26 09:13:56 +02:00
tc
tee
thermal drivers: thermal: tsens: Don't print error message on -EPROBE_DEFER 2019-06-15 11:54:02 +02:00
thunderbolt thunderbolt: property: Fix a NULL pointer dereference 2019-05-31 06:46:31 -07:00
tty tty/ldsem, locking/rwsem: Add missing ACQUIRE to read_failed sleep loop 2019-08-16 10:12:50 +02:00
uio
usb typec: tcpm: fix a typo in the comparison of pdo_max_voltage 2019-09-06 10:22:18 +02:00
uwb
vfio vfio: Fix WARNING "do not call blocking ops when !TASK_RUNNING" 2019-06-15 11:54:07 +02:00
vhost vhost: scsi: add weight support 2019-08-04 09:30:55 +02:00
video video: imsttfb: fix potential NULL pointer dereferences 2019-06-15 11:54:10 +02:00
virt drivers/virt/fsl_hypervisor.c: prevent integer overflow in ioctl 2019-05-16 19:41:31 +02:00
virtio virtio_pci: fix a NULL pointer reference in vp_del_vqs 2019-05-10 17:54:08 +02:00
visorbus
vlynq
vme
w1 w1: fix the resume command API 2019-05-31 06:46:14 -07:00
watchdog watchdog: bcm2835_wdt: Fix module autoload 2019-09-06 10:22:02 +02:00
xen xen/pciback: remove set but not used variable 'old_state' 2019-08-25 10:47:52 +02:00
zorro
Kconfig
Makefile