Linux kernel source tree
Go to file
Herve Codina 84e77e7236 dmaengine: dw-edma: Fix unaligned 64bit access
[ Upstream commit 8fc5133d6d ]

On some arch (ie aarch64 iMX8MM) unaligned PCIe accesses are
not allowed and lead to a kernel Oops.
  [ 1911.668835] Unable to handle kernel paging request at virtual address ffff80001bc00a8c
  [ 1911.668841] Mem abort info:
  [ 1911.668844]   ESR = 0x96000061
  [ 1911.668847]   EC = 0x25: DABT (current EL), IL = 32 bits
  [ 1911.668850]   SET = 0, FnV = 0
  [ 1911.668852]   EA = 0, S1PTW = 0
  [ 1911.668853] Data abort info:
  [ 1911.668855]   ISV = 0, ISS = 0x00000061
  [ 1911.668857]   CM = 0, WnR = 1
  [ 1911.668861] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000040ff4000
  [ 1911.668864] [ffff80001bc00a8c] pgd=00000000bffff003, pud=00000000bfffe003, pmd=0068000018400705
  [ 1911.668872] Internal error: Oops: 96000061 [#1] PREEMPT SMP
  ...

The llp register present in the channel group registers is not
aligned on 64bit.

Fix unaligned 64bit access using two 32bit accesses

Fixes: 04e0a39fc1 ("dmaengine: dw-edma: Add writeq() and readq() for 64 bits architectures")
Signed-off-by: Herve Codina <herve.codina@bootlin.com>
Link: https://lore.kernel.org/r/20220225120252.309404-1-herve.codina@bootlin.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-04-27 14:38:52 +02:00
arch arm64/mm: drop HAVE_ARCH_PFN_VALID 2022-04-27 14:38:50 +02:00
block block: simplify the block device syncing code 2022-04-27 14:38:50 +02:00
certs
crypto crypto: xts - Add softdep on ecb 2022-04-08 14:23:55 +02:00
Documentation dt-bindings: net: snps: remove duplicate name 2022-04-20 09:34:21 +02:00
drivers dmaengine: dw-edma: Fix unaligned 64bit access 2022-04-27 14:38:52 +02:00
fs gfs2: assign rgrp glock before compute_bitstructs 2022-04-27 14:38:51 +02:00
include mm, kfence: support kmem_dump_obj() for KFENCE objects 2022-04-27 14:38:51 +02:00
init init/main.c: return 1 from handled __setup() functions 2022-04-13 20:59:10 +02:00
ipc ipc/sem: do not sleep with a spin lock held 2022-02-08 18:34:03 +01:00
kernel dma-mapping: remove bogus test for pfn_valid from dma_map_resource 2022-04-27 14:38:50 +02:00
lib stacktrace: move filter_irq_stacks() to kernel/stacktrace.c 2022-04-13 20:59:28 +02:00
LICENSES
mm mm, kfence: support kmem_dump_obj() for KFENCE objects 2022-04-27 14:38:51 +02:00
net net/sched: cls_u32: fix netns refcount changes in u32_change() 2022-04-27 14:38:51 +02:00
samples samples/bpf, xdpsock: Fix race when running for fix duration of time 2022-04-08 14:23:40 +02:00
scripts gcc-plugins: latent_entropy: use /dev/urandom 2022-04-20 09:34:18 +02:00
security Fix incorrect type in assignment of ipv6 port for audit 2022-04-08 14:23:55 +02:00
sound ASoC: codecs: wcd934x: do not switch off SIDO Buck when codec is in use 2022-04-27 14:38:52 +02:00
tools perf tools: Fix segfault accessing sample_id xyarray 2022-04-27 14:38:50 +02:00
usr
virt KVM: avoid NULL pointer dereference in kvm_dirty_ring_push 2022-04-13 20:59:26 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: adjust file entry for of_net.c after movement 2022-03-08 19:12:53 +01:00
Makefile Linux 5.15.35 2022-04-20 09:34:22 +02:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.