WSL2-Linux-Kernel/drivers
Robin Murphy 7618e47909 iommu/io-pgtable-arm: Improve attribute handling
By VMSA rules, using Normal Non-Cacheable type with a shareability
attribute of anything other than Outer Shareable is liable to lead into
unpredictable territory:

| Overlaying the shareability attribute (B3-1377, ARM DDI 0406C.c)
|
| A memory region with a resultant memory type attribute of Normal, and
| a resultant cacheability attribute of Inner Non-cacheable, Outer
| Non-cacheable, must have a resultant shareability attribute of Outer
| Shareable, otherwise shareability is UNPREDICTABLE

Although the SMMU architectures seem to give some slightly stronger
guarantees of Non-Cacheable output types becoming implicitly Outer
Shareable in most cases, we may as well be explicit and not take any
chances. It's also weird that LPAE attribute handling is currently split
between prot_to_pte() and init_pte() given that it can all be statically
determined up-front. Thus, collect *all* the LPAE attributes into
prot_to_pte() in order to logically pick the shareability based on the
incoming IOMMU API prot value, and tweak the short-descriptor code to
stop setting TTBR0.NOS for Non-Cacheable walks.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
2020-01-10 15:52:24 +00:00
..
accessibility
acpi iommu/arm-smmu: Support SMMU module probing from the IORT 2019-12-23 14:06:05 +01:00
amba
android binder: fix incorrect calculation for num_valid 2019-12-14 09:10:47 +01:00
ata
atm
auxdisplay
base Merge branch 'remove-ksys-mount-dup' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux 2019-12-15 11:36:12 -08:00
bcma
block block-5.5-20191221 2019-12-22 10:36:55 -08:00
bluetooth
bus bus: ti-sysc: Fix missing reset delay handling 2019-12-12 08:20:10 -08:00
cdrom
char Char/misc driver fixes for 5.5-rc3 2019-12-20 10:11:30 -08:00
clk clk: qcom: Avoid SMMU/cx gdsc corner cases 2019-12-18 22:02:27 -08:00
clocksource
connector
counter
cpufreq cpufreq: vexpress-spc: Switch cpumask from topology core to OPP sharing 2019-12-09 11:52:50 +00:00
cpuidle cpuidle: Drop unnecessary type cast in cpuidle_poll_time() 2019-12-12 17:56:08 +01:00
crypto
dax
dca
devfreq PM / devfreq: Use PM QoS for sysfs min/max_freq 2019-12-09 12:19:16 +09:00
dio
dma
dma-buf - A fix for a memory leak in the dma-buf support 2019-12-09 17:13:19 +10:00
edac riscv: move sifive_l2_cache.c to drivers/soc 2019-12-20 03:40:24 -08:00
eisa
extcon
firewire
firmware Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-12-17 10:39:55 -08:00
fpga
fsi
gnss
gpio spi: Fixes for v5.5 2019-12-17 13:06:31 -08:00
gpu Merge tag 'drm-intel-fixes-2019-12-19' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes 2019-12-21 06:08:20 +10:00
greybus
hid
hsi
hv
hwmon
hwspinlock
hwtracing intel_th: msu: Fix window switching without windows 2019-12-17 15:45:59 +01:00
i2c i2c: remove i2c_new_dummy() API 2019-12-10 23:15:09 +01:00
i3c
ide
idle
iio First set of fixes for IIO in the 5.5 cycle. 2019-12-09 09:27:52 +01:00
infiniband Pull request for 5.5-rc2 2019-12-15 14:58:13 -08:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2019-12-07 18:33:01 -08:00
interconnect interconnect: qcom: msm8974: Walk the list safely on node removal 2019-12-12 10:28:54 +01:00
iommu iommu/io-pgtable-arm: Improve attribute handling 2020-01-10 15:52:24 +00:00
ipack
irqchip
isdn
leds
lightnvm
macintosh
mailbox
mcb
md for-linus-20191212 2019-12-13 14:27:19 -08:00
media treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
memory
memstick
message
mfd
misc powerpc fixes for 5.5 #4 2019-12-21 06:17:05 -08:00
mmc mmc: sdhci-of-esdhc: re-implement erratum A-009204 workaround 2019-12-19 08:13:43 +01:00
mtd
mux
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-12-22 09:54:33 -08:00
nfc nfc: s3fwrn5: replace the assertion with a WARN_ON 2019-12-19 17:33:23 -08:00
ntb Add Hygon Device ID to the AMD NTB device driver 2019-12-07 18:38:17 -08:00
nubus
nvdimm
nvme for-linus-20191212 2019-12-13 14:27:19 -08:00
nvmem
of Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-12-22 09:54:33 -08:00
opp
oprofile
parisc
parport
pci PCI: Export pci_ats_disabled() as a GPL symbol to modules 2019-12-23 14:06:05 +01:00
pcmcia
perf perf/smmuv3: Remove the leftover put_cpu() in error path 2019-12-18 16:15:36 +00:00
phy
pinctrl pinctrl: ingenic: Fixup PIN_CONFIG_OUTPUT config 2019-12-16 11:38:20 +01:00
platform platform/x86: pcengines-apuv2: Spelling fixes in the driver 2019-12-20 19:01:59 +02:00
pnp
power
powercap
pps
ps3
ptp ptp: clockmatrix: add I2C dependency 2019-12-13 15:42:09 -08:00
pwm
rapidio
ras
regulator regulator: Fixes for v5.5 2019-12-17 13:08:41 -08:00
remoteproc
reset reset: Do not register resource data for missing resets 2019-12-10 11:43:37 +01:00
rpmsg
rtc
s390 block-5.5-20191221 2019-12-22 10:36:55 -08:00
sbus
scsi SCSI fixes on 20191214 2019-12-14 12:51:57 -08:00
sfi
sh
siox
slimbus
soc riscv: move sifive_l2_cache.c to drivers/soc 2019-12-20 03:40:24 -08:00
soundwire
spi spi: Fixes for v5.5 2019-12-17 13:06:31 -08:00
spmi
ssb
staging staging: wfx: fix wrong error message 2019-12-18 15:51:06 +01:00
target treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
tc
tee
thermal thermal: power_allocator: Fix Kconfig warning 2019-12-07 21:49:06 +08:00
thunderbolt
tty tty/serial: atmel: fix out of range clock divider handling 2019-12-17 14:17:32 +01:00
uio
usb usb: xhci: Fix build warning seen with CONFIG_PM=n 2019-12-18 19:23:42 +01:00
vfio VFIO updates for v5.5-rc1 2019-12-07 14:51:04 -08:00
vhost Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-12-08 13:28:11 -08:00
video
virt
virtio virtio_balloon: divide/multiply instead of shifts 2019-12-11 08:14:07 -05:00
visorbus
vlynq
vme
w1
watchdog
xen xen: branch for v5.5-rc3 2019-12-21 06:24:56 -08:00
zorro
Kconfig
Makefile