linux/drivers
Mathieu Desnoyers 902ccb86ed dax: fix incorrect list of data cache aliasing architectures
commit d92576f116 ("dax: does not work correctly with virtual aliasing caches")
prevents DAX from building on architectures with virtually aliased
dcache with:

  depends on !(ARM || MIPS || SPARC)

This check is too broad (e.g. recent ARMv7 don't have virtually aliased
dcaches), and also misses many other architectures with virtually
aliased data cache.

This is a regression introduced in the v4.0 Linux kernel where the
dax mount option is removed for 32-bit ARMv7 boards which have no data
cache aliasing, and therefore should work fine with FS_DAX.

This was turned into the following check in alloc_dax() by a preparatory
change:

        if (ops && (IS_ENABLED(CONFIG_ARM) ||
            IS_ENABLED(CONFIG_MIPS) ||
            IS_ENABLED(CONFIG_SPARC)))
                return NULL;

Use cpu_dcache_is_aliasing() instead to figure out whether the environment
has aliasing data caches.

Link: https://lkml.kernel.org/r/20240215144633.96437-10-mathieu.desnoyers@efficios.com
Fixes: d92576f116 ("dax: does not work correctly with virtual aliasing caches")
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Alasdair Kergon <agk@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: kernel test robot <lkp@intel.com>
Cc: Michael Sclafani <dm-devel@lists.linux.dev>
Cc: Mike Snitzer <snitzer@kernel.org>
Cc: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-02-22 15:27:20 -08:00
..
accel accel/ivpu: Fix DevTLB errors on suspend/resume and recovery 2024-02-12 09:00:44 +01:00
accessibility
acpi
amba
android
ata
atm
auxdisplay
base mm and cache_info: remove unnecessary CPU cache info update 2024-02-22 10:24:41 -08:00
bcma
block zram: do not allocate physically contiguous strm buffers 2024-02-22 10:24:59 -08:00
bluetooth
bus
cache
cdrom
cdx
char
clk
clocksource
comedi
connector connector/cn_proc: revert "connector: Fix proc_event_num_listeners count not cleared" 2024-02-13 11:15:44 +01:00
counter
cpufreq
cpuidle x86/mm: delete unused cpu argument to leave_mm() 2024-02-22 10:24:41 -08:00
crypto
cxl EFI fixes for v6.8 #1 2024-02-09 10:40:50 -08:00
dax dax: fix incorrect list of data cache aliasing architectures 2024-02-22 15:27:20 -08:00
dca
devfreq
dio
dma
dma-buf
dpll dpll: fix possible deadlock during netlink dump operation 2024-02-08 18:29:21 -08:00
edac
eisa
extcon
firewire firewire: core: send bus reset promptly on gap count error 2024-02-07 08:20:02 +09:00
firmware EFI fixes for v6.8 #1 2024-02-09 10:40:50 -08:00
fpga
fsi
gnss
gpio gpio: remove GPIO device from the list unconditionally in error path 2024-02-08 10:33:03 +01:00
gpu Merge tag 'drm-msm-fixes-2024-02-15' of https://gitlab.freedesktop.org/drm/msm into drm-fixes 2024-02-16 15:47:15 +10:00
greybus
hid HID: wacom: generic: Avoid reporting a serial of '0' to userspace 2024-02-13 11:40:23 +01:00
hsi
hte
hv
hwmon
hwspinlock
hwtracing
i2c i2c: i801: Fix block process call transactions 2024-02-14 22:15:38 +01:00
i3c
idle
iio iio: adc: ad4130: only set GPIO_CTRL if pin is unused 2024-02-10 16:52:39 +00:00
infiniband
input
interconnect
iommu
ipack
irqchip irqchip/gic-v3-its: Fix GICv4.1 VPE affinity update 2024-02-13 11:29:52 +01:00
isdn
leds
macintosh
mailbox
mcb
md dm: treat alloc_dax() -EOPNOTSUPP failure as non-fatal 2024-02-22 15:27:19 -08:00
media
memory
memstick
message
mfd
misc
mmc mmc: slot-gpio: Allow non-sleeping GPIO ro 2024-02-06 12:35:44 +01:00
most
mtd
mux
net Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue 2024-02-15 08:06:51 -08:00
nfc
ntb
nubus
nvdimm nvdimm/pmem: Treat alloc_dax() -EOPNOTSUPP failure as non-fatal 2024-02-22 15:27:19 -08:00
nvme nvmet: remove superfluous initialization 2024-02-13 15:42:44 -08:00
nvmem nvmem: include bit index in cell sysfs file name 2024-02-14 16:28:16 +01:00
of Devicetree fixes for v6.8: 2024-02-15 10:19:55 -08:00
opp
parisc
parport
pci pci-v6.8-fixes-3 2024-02-17 08:06:20 -08:00
pcmcia
peci
perf perf/arm-cmn: Workaround AmpereOneX errata AC04_MESH_1 (incorrect child count) 2024-02-09 17:14:04 +00:00
phy
pinctrl
platform
pmdomain
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390 dcssblk: handle alloc_dax() -EOPNOTSUPP failure 2024-02-22 15:27:19 -08:00
sbus
scsi scsi: fnic: Move fnic_fnic_flush_tx() to a work queue 2024-02-12 20:50:07 -05:00
sh
siox
slimbus
soc
soundwire
spi spi-mxs: Fix chipselect glitch 2024-02-13 15:48:22 +00:00
spmi
ssb
staging Char/Misc changes for 6.8-rc5 2024-02-17 08:52:38 -08:00
target scsi: target: Fix unmap setup during configuration 2024-02-12 20:42:00 -05:00
tc
tee
thermal
thunderbolt
tty serial: mxs-auart: fix tx 2024-02-06 14:42:11 +00:00
ufs scsi: ufs: core: Remove the ufshcd_release() in ufshcd_err_handling_prepare() 2024-02-05 16:31:18 -05:00
uio
usb Revert "usb: dwc3: Support EBC feature of DWC_usb31" 2024-02-09 10:26:08 +00:00
vdpa
vfio
vhost
video
virt
virtio
w1
watchdog
xen xen/events: close evtchn after mapping cleanup 2024-02-13 10:12:47 +01:00
zorro
Kconfig
Makefile