Mauro (mdrjr) Ribeiro
192e945feb
Merge tag 'v4.9.229' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
Linux 4.9.229
2020-07-13 21:44:05 -03:00
Mauro (mdrjr) Ribeiro
61b0ff0d89
Merge tag 'v4.9.224' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.224 stable release
Change-Id: I0e07ea572bc1a980b42dea56ab1fcb1069640ac1
2020-07-13 17:58:04 -03:00
Mauro (mdrjr) Ribeiro
0a4830f6c9
Merge tag 'v4.9.222' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.222 stable release
Change-Id: If6fac06ffeccb6a7f2b8a2afebd84f586f56f3d7
2020-07-13 17:57:03 -03:00
Mauro (mdrjr) Ribeiro
da5525fbe6
Merge tag 'v4.9.221' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.221 stable release
Change-Id: I78dee45beadfec5998da618b58f0bf592fc346c7
2020-07-13 17:56:46 -03:00
Mauro (mdrjr) Ribeiro
4a44c1b17a
Merge tag 'v4.9.220' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.220 stable release
Change-Id: I5df1feee2bcf4521fe0d4c65868d6b4f4279275d
2020-07-13 17:56:28 -03:00
Mauro (mdrjr) Ribeiro
9658d9b4d6
Merge tag 'v4.9.219' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.219 stable release
Change-Id: I1cb302600e983a1dddadf6236ea8b76f6511a177
2020-07-13 13:53:45 -03:00
Denis Efremov
6d3468bd18
drm/radeon: fix fb_div check in ni_init_smc_spll_table()
...
commit 35f760b44b upstream.
clk_s is checked twice in a row in ni_init_smc_spll_table().
fb_div should be checked instead.
Fixes: 69e0b57a91 ("drm/radeon/kms: add dpm support for cayman (v5)")
Cc: stable@vger.kernel.org
Signed-off-by: Denis Efremov <efremov@linux.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-06-30 15:38:45 -04:00
Chris Wilson
5dfd73f256
drm/i915: Whitelist context-local timestamp in the gen9 cmdparser
...
commit 273500ae71 upstream.
Allow batch buffers to read their own _local_ cumulative HW runtime of
their logical context.
Fixes: 0f2f397583 ("drm/i915: Add gen9 BCS cmdparsing")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com >
Cc: <stable@vger.kernel.org > # v5.4+
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200601161942.30854-1-chris@chris-wilson.co.uk
(cherry picked from commit f9496520df )
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-06-30 15:38:32 -04:00
Lyude Paul
0d6115ea8f
drm/dp_mst: Increase ACT retry timeout to 3s
...
[ Upstream commit 873a95e0d5 ]
Currently we only poll for an ACT up to 30 times, with a busy-wait delay
of 100µs between each attempt - giving us a timeout of 2900µs. While
this might seem sensible, it would appear that in certain scenarios it
can take dramatically longer then that for us to receive an ACT. On one
of the EVGA MST hubs that I have available, I observed said hub
sometimes taking longer then a second before signalling the ACT. These
delays mostly seem to occur when previous sideband messages we've sent
are NAKd by the hub, however it wouldn't be particularly surprising if
it's possible to reproduce times like this simply by introducing branch
devices with large LCTs since payload allocations have to take effect on
every downstream device up to the payload's target.
So, instead of just retrying 30 times we poll for the ACT for up to 3ms,
and additionally use usleep_range() to avoid a very long and rude
busy-wait. Note that the previous retry count of 30 appears to have been
arbitrarily chosen, as I can't find any mention of a recommended timeout
or retry count for ACTs in the DisplayPort 2.0 specification. This also
goes for the range we were previously using for udelay(), although I
suspect that was just copied from the recommended delay for link
training on SST devices.
Changes since v1:
* Use readx_poll_timeout() instead of open-coding timeout loop - Sean
Paul
Changes since v2:
* Increase poll interval to 200us - Sean Paul
* Print status in hex when we timeout waiting for ACT - Sean Paul
Signed-off-by: Lyude Paul <lyude@redhat.com >
Fixes: ad7f8a1f9c ("drm/helper: add Displayport multi-stream helper (v0.6)")
Cc: Sean Paul <sean@poorly.run >
Cc: <stable@vger.kernel.org > # v3.17+
Reviewed-by: Sean Paul <sean@poorly.run >
Link: https://patchwork.freedesktop.org/patch/msgid/20200406221253.1307209-4-lyude@redhat.com
Signed-off-by: Sasha Levin <sashal@kernel.org >
2020-06-30 15:38:31 -04:00
Huacai Chen
d604a3a1dd
drm/qxl: Use correct notify port address when creating cursor ring
...
commit 80e5f89da3 upstream.
The command ring and cursor ring use different notify port addresses
definition: QXL_IO_NOTIFY_CMD and QXL_IO_NOTIFY_CURSOR. However, in
qxl_device_init() we use QXL_IO_NOTIFY_CMD to create both command ring
and cursor ring. This doesn't cause any problems now, because QEMU's
behaviors on QXL_IO_NOTIFY_CMD and QXL_IO_NOTIFY_CURSOR are the same.
However, QEMU's behavior may be change in future, so let's fix it.
P.S.: In the X.org QXL driver, the notify port address of cursor ring
is correct.
Signed-off-by: Huacai Chen <chenhc@lemote.com >
Cc: <stable@vger.kernel.org >
Link: http://patchwork.freedesktop.org/patch/msgid/1585635488-17507-1-git-send-email-chenhc@lemote.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-06-30 15:38:31 -04:00
Lyude Paul
203de6555d
drm/dp_mst: Reformat drm_dp_check_act_status() a bit
...
commit a5cb5fa6c3 upstream.
Just add a bit more line wrapping, get rid of some extraneous
whitespace, remove an unneeded goto label, and move around some variable
declarations. No functional changes here.
Signed-off-by: Lyude Paul <lyude@redhat.com >
[this isn't a fix, but it's needed for the fix that comes after this]
Fixes: ad7f8a1f9c ("drm/helper: add Displayport multi-stream helper (v0.6)")
Cc: Sean Paul <sean@poorly.run >
Cc: <stable@vger.kernel.org > # v3.17+
Reviewed-by: Sean Paul <sean@poorly.run >
Link: https://patchwork.freedesktop.org/patch/msgid/20200406221253.1307209-3-lyude@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-06-30 15:38:31 -04:00
Wolfram Sang
ecc2b1e556
drm: encoder_slave: fix refcouting error for modules
...
[ Upstream commit f78d4032de ]
module_put() balances try_module_get(), not request_module(). Fix the
error path to match that.
Fixes: 2066facca4 ("drm/kms: slave encoder interface.")
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com >
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com >
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Wolfram Sang <wsa@kernel.org >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2020-06-30 15:38:31 -04:00
Roy Spliet
f3d12f8fea
drm/msm/mdp5: Fix mdp5_init error path for failed mdp5_kms allocation
...
[ Upstream commit e4337877c5 ]
When allocation for mdp5_kms fails, calling mdp5_destroy() leads to undefined
behaviour, likely a nullptr exception or use-after-free troubles.
Signed-off-by: Roy Spliet <nouveau@spliet.org >
Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2020-06-30 15:38:25 -04:00
Vasily Averin
f5c0c5434e
drm/qxl: lost qxl_bo_kunmap_atomic_page in qxl_image_init_helper()
...
[ Upstream commit 5b5703dbaf ]
v2: removed TODO reminder
Signed-off-by: Vasily Averin <vvs@virtuozzo.com >
Link: http://patchwork.freedesktop.org/patch/msgid/a4e0ae09-a73c-1c62-04ef-3f990d41bea9@virtuozzo.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2020-05-20 08:15:35 +02:00
Vasily Averin
39c4c5c738
drm/qxl: qxl_release use after free
...
commit 933db73351 upstream.
qxl_release should not be accesses after qxl_push_*_ring_release() calls:
userspace driver can process submitted command quickly, move qxl_release
into release_ring, generate interrupt and trigger garbage collector.
It can lead to crashes in qxl driver or trigger memory corruption
in some kmalloc-192 slab object
Gerd Hoffmann proposes to swap the qxl_release_fence_buffer_objects() +
qxl_push_{cursor,command}_ring_release() calls to close that race window.
cc: stable@vger.kernel.org
Fixes: f64122c1f6 ("drm: add new QXL driver. (v1.4)")
Signed-off-by: Vasily Averin <vvs@virtuozzo.com >
Link: http://patchwork.freedesktop.org/patch/msgid/fa17b338-66ae-f299-68fe-8d32419d9071@virtuozzo.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
[backported to v4.9-stable]
Signed-off-by: Vasily Averin <vvs@virtuozzo.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-05-05 19:14:41 +02:00
Vasily Averin
9148b1aa18
drm/qxl: qxl_release leak in qxl_hw_surface_alloc()
...
commit a65aa9c367 upstream.
Cc: stable@vger.kernel.org
Fixes: 8002db6336 ("qxl: convert qxl driver to proper use for reservations")
Signed-off-by: Vasily Averin <vvs@virtuozzo.com >
Link: http://patchwork.freedesktop.org/patch/msgid/2e5a13ae-9ab2-5401-aa4d-03d5f5593423@virtuozzo.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-05-05 19:14:29 +02:00
Vasily Averin
c1dcdab561
drm/qxl: qxl_release leak in qxl_draw_dirty_fb()
...
commit 85e9b88af1 upstream.
ret should be changed to release allocated struct qxl_release
Cc: stable@vger.kernel.org
Fixes: 8002db6336 ("qxl: convert qxl driver to proper use for reservations")
Signed-off-by: Vasily Averin <vvs@virtuozzo.com >
Link: http://patchwork.freedesktop.org/patch/msgid/22cfd55f-07c8-95d0-a2f7-191b7153c3d4@virtuozzo.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-05-05 19:14:29 +02:00
Ville Syrjälä
9669600d6e
drm/edid: Fix off-by-one in DispID DTD pixel clock
...
commit 6292b8efe3 upstream.
The DispID DTD pixel clock is documented as:
"00 00 00 h → FF FF FF h | Pixel clock ÷ 10,000 0.01 → 167,772.16 Mega Pixels per Sec"
Which seems to imply that we to add one to the raw value.
Reality seems to agree as there are tiled displays in the wild
which currently show a 10kHz difference in the pixel clock
between the tiles (one tile gets its mode from the base EDID,
the other from the DispID block).
Cc: stable@vger.kernel.org
References: https://gitlab.freedesktop.org/drm/intel/-/issues/27
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200423151743.18767-1-ville.syrjala@linux.intel.com
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-05-05 19:14:29 +02:00
Rob Clark
dca9d4ec7c
drm/msm: Use the correct dma_sync calls harder
...
commit 9f614197c7 upstream.
Looks like the dma_sync calls don't do what we want on armv7 either.
Fixes:
Unable to handle kernel paging request at virtual address 50001000
pgd = (ptrval)
[50001000] *pgd=00000000
Internal error: Oops: 805 [#1 ] SMP ARM
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.3.0-rc6-00271-g9f159ae07f07 #4
Hardware name: Freescale i.MX53 (Device Tree Support)
PC is at v7_dma_clean_range+0x20/0x38
LR is at __dma_page_cpu_to_dev+0x28/0x90
pc : [<c011c76c>] lr : [<c01181c4>] psr: 20000013
sp : d80b5a88 ip : de96c000 fp : d840ce6c
r10: 00000000 r9 : 00000001 r8 : d843e010
r7 : 00000000 r6 : 00008000 r5 : ddb6c000 r4 : 00000000
r3 : 0000003f r2 : 00000040 r1 : 50008000 r0 : 50001000
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
Control: 10c5387d Table: 70004019 DAC: 00000051
Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
Signed-off-by: Rob Clark <robdclark@chromium.org >
Fixes: 3de433c5b3 ("drm/msm: Use the correct dma_sync calls in msm_gem")
Tested-by: Fabio Estevam <festevam@gmail.com >
Cc: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-05-02 17:22:57 +02:00
Joe Moriarty
99d85c48b4
drm: NULL pointer dereference [null-pointer-deref] (CWE 476) problem
...
commit 22a07038c0 upstream.
The Parfait (version 2.1.0) static code analysis tool found the
following NULL pointer derefernce problem.
- drivers/gpu/drm/drm_dp_mst_topology.c
The call to drm_dp_calculate_rad() in function drm_dp_port_setup_pdt()
could result in a NULL pointer being returned to port->mstb due to a
failure to allocate memory for port->mstb.
Signed-off-by: Joe Moriarty <joe.moriarty@oracle.com >
Reviewed-by: Steven Sistare <steven.sistare@oracle.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/20180212195144.98323-3-joe.moriarty@oracle.com
Signed-off-by: Lee Jones <lee.jones@linaro.org >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-04-24 07:59:07 +02:00
Chris Wilson
9abfa51e0d
drm: Remove PageReserved manipulation from drm_pci_alloc
...
[ Upstream commit ea36ec8623 ]
drm_pci_alloc/drm_pci_free are very thin wrappers around the core dma
facilities, and we have no special reason within the drm layer to behave
differently. In particular, since
commit de09d31dd3
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com >
Date: Fri Jan 15 16:51:42 2016 -0800
page-flags: define PG_reserved behavior on compound pages
As far as I can see there's no users of PG_reserved on compound pages.
Let's use PF_NO_COMPOUND here.
it has been illegal to combine GFP_COMP with SetPageReserved, so lets
stop doing both and leave the dma layer to its own devices.
Reported-by: Taketo Kabe
Bug: https://gitlab.freedesktop.org/drm/intel/issues/1027
Fixes: de09d31dd3 ("page-flags: define PG_reserved behavior on compound pages")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Cc: <stable@vger.kernel.org > # v4.5+
Reviewed-by: Alex Deucher <alexander.deucher@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200202171635.4039044-1-chris@chris-wilson.co.uk
Signed-off-by: Sasha Levin <sashal@kernel.org >
2020-04-24 07:59:00 +02:00
Lyude Paul
80e21c3e8f
drm/dp_mst: Fix clearing payload state on topology disable
...
[ Upstream commit 8732fe46b2 ]
The issues caused by:
commit 64e62bdf04 ("drm/dp_mst: Remove VCPI while disabling topology
mgr")
Prompted me to take a closer look at how we clear the payload state in
general when disabling the topology, and it turns out there's actually
two subtle issues here.
The first is that we're not grabbing &mgr.payload_lock when clearing the
payloads in drm_dp_mst_topology_mgr_set_mst(). Seeing as the canonical
lock order is &mgr.payload_lock -> &mgr.lock (because we always want
&mgr.lock to be the inner-most lock so topology validation always
works), this makes perfect sense. It also means that -technically- there
could be racing between someone calling
drm_dp_mst_topology_mgr_set_mst() to disable the topology, along with a
modeset occurring that's modifying the payload state at the same time.
The second is the more obvious issue that Wayne Lin discovered, that
we're not clearing proposed_payloads when disabling the topology.
I actually can't see any obvious places where the racing caused by the
first issue would break something, and it could be that some of our
higher-level locks already prevent this by happenstance, but better safe
then sorry. So, let's make it so that drm_dp_mst_topology_mgr_set_mst()
first grabs &mgr.payload_lock followed by &mgr.lock so that we never
race when modifying the payload state. Then, we also clear
proposed_payloads to fix the original issue of enabling a new topology
with a dirty payload state. This doesn't clear any of the drm_dp_vcpi
structures, but those are getting destroyed along with the ports anyway.
Changes since v1:
* Use sizeof(mgr->payloads[0])/sizeof(mgr->proposed_vcpis[0]) instead -
vsyrjala
Cc: Sean Paul <sean@poorly.run >
Cc: Wayne Lin <Wayne.Lin@amd.com >
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com >
Cc: stable@vger.kernel.org # v4.4+
Signed-off-by: Lyude Paul <lyude@redhat.com >
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20200122194321.14953-1-lyude@redhat.com
Signed-off-by: Sasha Levin <sashal@kernel.org >
2020-04-24 07:59:00 +02:00
Rob Clark
dca98889e8
drm/msm: Use the correct dma_sync calls in msm_gem
...
commit 3de433c5b3 upstream.
[subject was: drm/msm: shake fist angrily at dma-mapping]
So, using dma_sync_* for our cache needs works out w/ dma iommu ops, but
it falls appart with dma direct ops. The problem is that, depending on
display generation, we can have either set of dma ops (mdp4 and dpu have
iommu wired to mdss node, which maps to toplevel drm device, but mdp5
has iommu wired up to the mdp sub-node within mdss).
Fixes this splat on mdp5 devices:
Unable to handle kernel paging request at virtual address ffffffff80000000
Mem abort info:
ESR = 0x96000144
Exception class = DABT (current EL), IL = 32 bits
SET = 0, FnV = 0
EA = 0, S1PTW = 0
Data abort info:
ISV = 0, ISS = 0x00000144
CM = 1, WnR = 1
swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000000810e4000
[ffffffff80000000] pgd=0000000000000000
Internal error: Oops: 96000144 [#1 ] SMP
Modules linked in: btqcomsmd btqca bluetooth cfg80211 ecdh_generic ecc rfkill libarc4 panel_simple msm wcnss_ctrl qrtr_smd drm_kms_helper venus_enc venus_dec videobuf2_dma_sg videobuf2_memops drm venus_core ipv6 qrtr qcom_wcnss_pil v4l2_mem2mem qcom_sysmon videobuf2_v4l2 qmi_helpers videobuf2_common crct10dif_ce mdt_loader qcom_common videodev qcom_glink_smem remoteproc bmc150_accel_i2c bmc150_magn_i2c bmc150_accel_core bmc150_magn snd_soc_lpass_apq8016 snd_soc_msm8916_analog mms114 mc nf_defrag_ipv6 snd_soc_lpass_cpu snd_soc_apq8016_sbc industrialio_triggered_buffer kfifo_buf snd_soc_lpass_platform snd_soc_msm8916_digital drm_panel_orientation_quirks
CPU: 2 PID: 33 Comm: kworker/2:1 Not tainted 5.3.0-rc2 #1
Hardware name: Samsung Galaxy A5U (EUR) (DT)
Workqueue: events deferred_probe_work_func
pstate: 80000005 (Nzcv daif -PAN -UAO)
pc : __clean_dcache_area_poc+0x20/0x38
lr : arch_sync_dma_for_device+0x28/0x30
sp : ffff0000115736a0
x29: ffff0000115736a0 x28: 0000000000000001
x27: ffff800074830800 x26: ffff000011478000
x25: 0000000000000000 x24: 0000000000000001
x23: ffff000011478a98 x22: ffff800009fd1c10
x21: 0000000000000001 x20: ffff800075ad0a00
x19: 0000000000000000 x18: ffff0000112b2000
x17: 0000000000000000 x16: 0000000000000000
x15: 00000000fffffff0 x14: ffff000011455d70
x13: 0000000000000000 x12: 0000000000000028
x11: 0000000000000001 x10: ffff00001106c000
x9 : ffff7e0001d6b380 x8 : 0000000000001000
x7 : ffff7e0001d6b380 x6 : ffff7e0001d6b382
x5 : 0000000000000000 x4 : 0000000000001000
x3 : 000000000000003f x2 : 0000000000000040
x1 : ffffffff80001000 x0 : ffffffff80000000
Call trace:
__clean_dcache_area_poc+0x20/0x38
dma_direct_sync_sg_for_device+0xb8/0xe8
get_pages+0x22c/0x250 [msm]
msm_gem_get_and_pin_iova+0xdc/0x168 [msm]
...
Fixes the combination of two patches:
Fixes: 0036bc73cc (drm/msm: stop abusing dma_map/unmap for cache)
Fixes: 449fa54d68 (dma-direct: correct the physical addr in dma_direct_sync_sg_for_cpu/device)
Tested-by: Stephan Gerhold <stephan@gerhold.net >
Signed-off-by: Rob Clark <robdclark@chromium.org >
[seanpaul changed subject to something more desriptive]
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20190730214633.17820-1-robdclark@gmail.com
Cc: nobuhiro1.iwamatsu@toshiba.co.jp
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-04-13 10:32:59 +02:00
Hans Verkuil
4c1baea0dd
drm_dp_mst_topology: fix broken drm_dp_sideband_parse_remote_dpcd_read()
...
commit a4c30a4861 upstream.
When parsing the reply of a DP_REMOTE_DPCD_READ DPCD command the
result is wrong due to a missing idx increment.
This was never noticed since DP_REMOTE_DPCD_READ is currently not
used, but if you enable it, then it is all wrong.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com >
Reviewed-by: Lyude Paul <lyude@redhat.com >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Link: https://patchwork.freedesktop.org/patch/msgid/e72ddac2-1dc0-100a-d816-9ac98ac009dd@xs4all.nl
Signed-off-by: Lee Jones <lee.jones@linaro.org >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-04-13 10:32:59 +02:00
Rob Clark
ed0445d882
drm/msm: stop abusing dma_map/unmap for cache
...
commit 0036bc73cc upstream.
Recently splats like this started showing up:
WARNING: CPU: 4 PID: 251 at drivers/iommu/dma-iommu.c:451 __iommu_dma_unmap+0xb8/0xc0
Modules linked in: ath10k_snoc ath10k_core fuse msm ath mac80211 uvcvideo cfg80211 videobuf2_vmalloc videobuf2_memops vide
CPU: 4 PID: 251 Comm: kworker/u16:4 Tainted: G W 5.2.0-rc5-next-20190619+ #2317
Hardware name: LENOVO 81JL/LNVNB161216, BIOS 9UCN23WW(V1.06) 10/25/2018
Workqueue: msm msm_gem_free_work [msm]
pstate: 80c00005 (Nzcv daif +PAN +UAO)
pc : __iommu_dma_unmap+0xb8/0xc0
lr : __iommu_dma_unmap+0x54/0xc0
sp : ffff0000119abce0
x29: ffff0000119abce0 x28: 0000000000000000
x27: ffff8001f9946648 x26: ffff8001ec271068
x25: 0000000000000000 x24: ffff8001ea3580a8
x23: ffff8001f95ba010 x22: ffff80018e83ba88
x21: ffff8001e548f000 x20: fffffffffffff000
x19: 0000000000001000 x18: 00000000c00001fe
x17: 0000000000000000 x16: 0000000000000000
x15: ffff000015b70068 x14: 0000000000000005
x13: 0003142cc1be1768 x12: 0000000000000001
x11: ffff8001f6de9100 x10: 0000000000000009
x9 : ffff000015b78000 x8 : 0000000000000000
x7 : 0000000000000001 x6 : fffffffffffff000
x5 : 0000000000000fff x4 : ffff00001065dbc8
x3 : 000000000000000d x2 : 0000000000001000
x1 : fffffffffffff000 x0 : 0000000000000000
Call trace:
__iommu_dma_unmap+0xb8/0xc0
iommu_dma_unmap_sg+0x98/0xb8
put_pages+0x5c/0xf0 [msm]
msm_gem_free_work+0x10c/0x150 [msm]
process_one_work+0x1e0/0x330
worker_thread+0x40/0x438
kthread+0x12c/0x130
ret_from_fork+0x10/0x18
---[ end trace afc0dc5ab81a06bf ]---
Not quite sure what triggered that, but we really shouldn't be abusing
dma_{map,unmap}_sg() for cache maint.
Cc: Stephen Boyd <sboyd@kernel.org >
Tested-by: Stephen Boyd <swboyd@chromium.org >
Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org >
Signed-off-by: Rob Clark <robdclark@chromium.org >
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20190630124735.27786-1-robdclark@gmail.com
Signed-off-by: Lee Jones <lee.jones@linaro.org >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-04-13 10:32:58 +02:00
Lucas Stach
4eaf2e4b5e
drm/etnaviv: replace MMU flush marker with flush sequence
...
commit 4900dda90a upstream.
If a MMU is shared between multiple GPUs, all of them need to flush their
TLBs, so a single marker that gets reset on the first flush won't do.
Replace the flush marker with a sequence number, so that it's possible to
check if the TLB is in sync with the current page table state for each GPU.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de >
Reviewed-by: Guido Günther <agx@sigxcpu.org >
Signed-off-by: Robert Beckett <bob.beckett@collabora.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2020-04-13 10:32:52 +02:00
Gerd Hoffmann
4d0cdd6995
drm/bochs: downgrade pci_request_region failure from error to warning
...
[ Upstream commit 8c34cd1a7f ]
Shutdown of firmware framebuffer has a bunch of problems. Because
of this the framebuffer region might still be reserved even after
drm_fb_helper_remove_conflicting_pci_framebuffers() returned.
Don't consider pci_request_region() failure for the framebuffer
region as fatal error to workaround this issue.
Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Acked-by: Sam Ravnborg <sam@ravnborg.org >
Link: http://patchwork.freedesktop.org/patch/msgid/20200313084152.2734-1-kraxel@redhat.com
Signed-off-by: Sasha Levin <sashal@kernel.org >
2020-04-13 10:32:51 +02:00
Mauro (mdrjr) Ribeiro
965041309b
Merge tag 'v4.9.218' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.218 stable release
2020-04-07 21:33:19 -03:00
Mauro (mdrjr) Ribeiro
1e83c7ea8d
Merge tag 'v4.9.217' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.217 stable release
2020-04-07 21:33:14 -03:00
Mauro (mdrjr) Ribeiro
628dd0dff5
Merge tag 'v4.9.216' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.216 stable release
2020-04-07 21:33:09 -03:00
Mauro (mdrjr) Ribeiro
2e7d8f2c65
Merge tag 'v4.9.215' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.215 stable release
2020-04-07 21:32:59 -03:00
Mauro (mdrjr) Ribeiro
e0d4fea76c
Merge tag 'v4.9.214' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.214 stable release
2020-04-07 21:28:16 -03:00
Mauro (mdrjr) Ribeiro
e6b94853ef
Merge tag 'v4.9.212' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.212 stable release
2020-04-07 21:26:32 -03:00
Mauro (mdrjr) Ribeiro
6bea55ddf0
Merge tag 'v4.9.210' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.210 stable release
2020-04-07 21:21:26 -03:00
Mauro (mdrjr) Ribeiro
1e2f3136bb
Merge tag 'v4.9.209' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.209 stable release
2020-04-07 21:21:21 -03:00
Mauro (mdrjr) Ribeiro
61efa5745a
Merge tag 'v4.9.208' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.208 stable release
2020-04-07 21:21:16 -03:00
Mauro (mdrjr) Ribeiro
ef076b4c70
Merge tag 'v4.9.207' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.207 stable release
2020-04-07 21:21:08 -03:00
Mauro (mdrjr) Ribeiro
d84a44562e
Merge tag 'v4.9.201' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.201 stable release
2020-04-07 21:12:38 -03:00
Mauro (mdrjr) Ribeiro
14a84a2ad4
Merge tag 'v4.9.198' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.198 stable release
2020-04-07 21:00:51 -03:00
Mauro (mdrjr) Ribeiro
dae544b697
Merge tag 'v4.9.197' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.197 stable release
2020-04-07 21:00:44 -03:00
Mauro (mdrjr) Ribeiro
7a41df4381
Merge tag 'v4.9.196' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.196 stable release
2020-04-07 20:24:01 -03:00
Mauro (mdrjr) Ribeiro
3e8e8df48a
Merge tag 'v4.9.195' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.195 stable release
2020-04-07 20:23:21 -03:00
Mauro (mdrjr) Ribeiro
8a5e25aba0
Merge tag 'v4.9.194' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.194 stable release
2020-04-07 20:20:25 -03:00
Mauro (mdrjr) Ribeiro
a5b524597b
Merge tag 'v4.9.193' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.193 stable release
2020-04-07 20:20:19 -03:00
Mauro (mdrjr) Ribeiro
c04371e0c4
Merge tag 'v4.9.191' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.191 stable release
2020-04-07 20:20:04 -03:00
Mauro (mdrjr) Ribeiro
33417c4f2f
Merge tag 'v4.9.187' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.187 stable release
2020-04-07 20:10:04 -03:00
Mauro (mdrjr) Ribeiro
a0510d6c1b
Merge tag 'v4.9.185' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.185 stable release
2020-04-07 20:08:40 -03:00
Mauro (mdrjr) Ribeiro
52de765630
Merge tag 'v4.9.183' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.183 stable release
2020-04-07 20:05:53 -03:00
Mauro (mdrjr) Ribeiro
a826960dce
Merge tag 'v4.9.181' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.181 stable release
2020-04-07 20:05:31 -03:00
Mauro (mdrjr) Ribeiro
90a697c7db
Merge tag 'v4.9.180' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroidg12-4.9.y
...
This is the 4.9.180 stable release
2020-04-07 15:18:33 -03:00