https://github.com/torvalds/linux
Revision d36678f7905cbd1dc55a8a96e066dafd749d4600 authored by Andrew Lunn on 09 November 2022, 23:59:02 UTC, committed by Wolfram Sang on 01 December 2022, 23:12:25 UTC
Recent changes to the DMA code has resulting in the IMX driver failing
I2C transfers when the buffer has been vmalloc. Only perform DMA
transfers if the message has the I2C_M_DMA_SAFE flag set, indicating
the client is providing a buffer which is DMA safe.

This is a minimal fix for stable. The I2C core provides helpers to
allocate a bounce buffer. For a fuller fix the master should make use
of these helpers.

Fixes: 4544b9f25e70 ("dma-mapping: Add vmap checks to dma_map_single()")
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
1 parent 7d8ccf4
History
Tip revision: d36678f7905cbd1dc55a8a96e066dafd749d4600 authored by Andrew Lunn on 09 November 2022, 23:59:02 UTC
i2c: imx: Only DMA messages with I2C_M_DMA_SAFE flag set
Tip revision: d36678f
File Mode Size
atomic
basic
clang-tools
coccinelle
dtc
dummy-tools
gcc-plugins
gdb
genksyms
kconfig
ksymoops
mod
package
selinux
tracing
.gitignore -rw-r--r-- 168 bytes
Kbuild.include -rw-r--r-- 8.3 KB
Kconfig.include -rw-r--r-- 2.6 KB
Lindent -rwxr-xr-x 502 bytes
Makefile -rw-r--r-- 1.5 KB
Makefile.asm-generic -rw-r--r-- 1.8 KB
Makefile.build -rw-r--r-- 17.6 KB
Makefile.clang -rw-r--r-- 1.7 KB
Makefile.clean -rw-r--r-- 1.9 KB
Makefile.compiler -rw-r--r-- 2.8 KB
Makefile.debug -rw-r--r-- 1000 bytes
Makefile.dtbinst -rw-r--r-- 999 bytes
Makefile.extrawarn -rw-r--r-- 3.5 KB
Makefile.gcc-plugins -rw-r--r-- 2.6 KB
Makefile.headersinst -rw-r--r-- 2.9 KB
Makefile.host -rw-r--r-- 5.7 KB
Makefile.kasan -rw-r--r-- 1.7 KB
Makefile.kcov -rw-r--r-- 333 bytes
Makefile.kcsan -rw-r--r-- 1004 bytes
Makefile.kmsan -rw-r--r-- 208 bytes
Makefile.lib -rw-r--r-- 20.5 KB
Makefile.modfinal -rw-r--r-- 2.9 KB
Makefile.modinst -rw-r--r-- 2.5 KB
Makefile.modpost -rw-r--r-- 4.4 KB
Makefile.package -rw-r--r-- 7.1 KB
Makefile.randstruct -rw-r--r-- 511 bytes
Makefile.ubsan -rw-r--r-- 770 bytes
Makefile.userprogs -rw-r--r-- 1.6 KB
Makefile.vmlinux -rw-r--r-- 1.4 KB
Makefile.vmlinux_o -rw-r--r-- 3.2 KB
adjust_autoksyms.sh -rwxr-xr-x 2.1 KB
as-version.sh -rwxr-xr-x 2.0 KB
asn1_compiler.c -rw-r--r-- 35.3 KB
bin2c.c -rw-r--r-- 743 bytes
bloat-o-meter -rwxr-xr-x 3.8 KB
bootgraph.pl -rwxr-xr-x 5.6 KB
bpf_doc.py -rwxr-xr-x 30.9 KB
cc-can-link.sh -rwxr-xr-x 166 bytes
cc-version.sh -rwxr-xr-x 1.5 KB
check-local-export -rwxr-xr-x 1.7 KB
check-sysctl-docs -rwxr-xr-x 4.4 KB
check_extable.sh -rwxr-xr-x 4.9 KB
checkdeclares.pl -rwxr-xr-x 1.1 KB
checkincludes.pl -rwxr-xr-x 1.9 KB
checkkconfigsymbols.py -rwxr-xr-x 15.4 KB
checkpatch.pl -rwxr-xr-x 227.4 KB
checkstack.pl -rwxr-xr-x 6.1 KB
checksyscalls.sh -rwxr-xr-x 7.4 KB
checkversion.pl -rwxr-xr-x 2.2 KB
cleanfile -rwxr-xr-x 3.5 KB
cleanpatch -rwxr-xr-x 5.1 KB
coccicheck -rwxr-xr-x 7.9 KB
config -rwxr-xr-x 4.7 KB
const_structs.checkpatch -rw-r--r-- 1.4 KB
decode_stacktrace.sh -rwxr-xr-x 7.2 KB
decodecode -rwxr-xr-x 4.5 KB
depmod.sh -rwxr-xr-x 1.4 KB
dev-needs.sh -rwxr-xr-x 6.1 KB
diffconfig -rwxr-xr-x 3.7 KB
documentation-file-ref-check -rwxr-xr-x 5.7 KB
export_report.pl -rwxr-xr-x 4.5 KB
extract-ikconfig -rwxr-xr-x 1.7 KB
extract-module-sig.pl -rwxr-xr-x 3.7 KB
extract-sys-certs.pl -rwxr-xr-x 3.7 KB
extract-vmlinux -rwxr-xr-x 1.7 KB
extract_xc3028.pl -rwxr-xr-x 44.6 KB
faddr2line -rwxr-xr-x 8.2 KB
file-size.sh -rwxr-xr-x 86 bytes
find-unused-docs.sh -rwxr-xr-x 1.3 KB
gcc-x86_32-has-stack-protector.sh -rwxr-xr-x 408 bytes
gcc-x86_64-has-stack-protector.sh -rwxr-xr-x 198 bytes
gen-randstruct-seed.sh -rwxr-xr-x 228 bytes
gen_autoksyms.sh -rwxr-xr-x 1.5 KB
gen_ksymdeps.sh -rwxr-xr-x 556 bytes
generate_initcall_order.pl -rwxr-xr-x 5.9 KB
generate_rust_analyzer.py -rwxr-xr-x 3.8 KB
generate_rust_target.rs -rw-r--r-- 5.2 KB
get_abi.pl -rwxr-xr-x 25.3 KB
get_dvb_firmware -rwxr-xr-x 24.5 KB
get_feat.pl -rwxr-xr-x 14.6 KB
get_maintainer.pl -rwxr-xr-x 67.2 KB
gfp-translate -rwxr-xr-x 1.7 KB
head-object-list.txt -rw-r--r-- 1.6 KB
headerdep.pl -rwxr-xr-x 3.5 KB
headers_install.sh -rwxr-xr-x 3.2 KB
insert-sys-cert.c -rw-r--r-- 8.9 KB
install.sh -rwxr-xr-x 986 bytes
is_rust_module.sh -rwxr-xr-x 565 bytes
jobserver-exec -rwxr-xr-x 2.2 KB
kallsyms.c -rw-r--r-- 19.5 KB
kernel-doc -rwxr-xr-x 65.5 KB
ld-version.sh -rwxr-xr-x 1.7 KB
leaking_addresses.pl -rwxr-xr-x 12.8 KB
link-vmlinux.sh -rwxr-xr-x 7.4 KB
makelst -rwxr-xr-x 808 bytes
markup_oops.pl -rwxr-xr-x 7.9 KB
min-tool-version.sh -rwxr-xr-x 554 bytes
mkcompile_h -rwxr-xr-x 642 bytes
mksysmap -rwxr-xr-x 1.6 KB
mkuboot.sh -rwxr-xr-x 414 bytes
module.lds.S -rw-r--r-- 1.3 KB
modules-check.sh -rwxr-xr-x 427 bytes
nsdeps -rw-r--r-- 1.6 KB
objdiff -rwxr-xr-x 2.8 KB
objdump-func -rwxr-xr-x 711 bytes
pahole-flags.sh -rwxr-xr-x 585 bytes
pahole-version.sh -rwxr-xr-x 269 bytes
parse-maintainers.pl -rwxr-xr-x 4.5 KB
patch-kernel -rwxr-xr-x 9.9 KB
profile2linkerlist.pl -rwxr-xr-x 414 bytes
prune-kernel -rwxr-xr-x 912 bytes
recordmcount.c -rw-r--r-- 16.7 KB
recordmcount.h -rw-r--r-- 19.4 KB
recordmcount.pl -rwxr-xr-x 17.5 KB
remove-stale-files -rwxr-xr-x 1.7 KB
rust_is_available.sh -rwxr-xr-x 5.6 KB
rust_is_available_bindgen_libclang.h -rw-r--r-- 91 bytes
setlocalversion -rwxr-xr-x 3.6 KB
show_delta -rwxr-xr-x 3.0 KB
sign-file.c -rw-r--r-- 9.9 KB
sorttable.c -rw-r--r-- 7.7 KB
sorttable.h -rw-r--r-- 12.9 KB
spdxcheck-test.sh -rw-r--r-- 284 bytes
spdxcheck.py -rwxr-xr-x 15.2 KB
spdxexclude -rw-r--r-- 417 bytes
spelling.txt -rw-r--r-- 32.5 KB
sphinx-pre-install -rwxr-xr-x 25.8 KB
split-man.pl -rwxr-xr-x 604 bytes
stackdelta -rwxr-xr-x 1.8 KB
stackusage -rwxr-xr-x 794 bytes
subarch.include -rw-r--r-- 647 bytes
syscallhdr.sh -rwxr-xr-x 1.9 KB
syscallnr.sh -rwxr-xr-x 1.5 KB
syscalltbl.sh -rwxr-xr-x 1.5 KB
tags.sh -rwxr-xr-x 10.2 KB
test_fortify.sh -rw-r--r-- 2.2 KB
tools-support-relr.sh -rwxr-xr-x 546 bytes
unifdef.c -rw-r--r-- 34.8 KB
ver_linux -rwxr-xr-x 2.6 KB
xen-hypercalls.sh -rwxr-xr-x 386 bytes
xz_wrap.sh -rwxr-xr-x 563 bytes

back to top