On Tue 30-01-24 11:52:50, Mathieu Desnoyers wrote: > Use dax_is_supported() to validate whether the architecture has > virtually aliased data caches at mount time. Print an error and disable > DAX if dax=always is requested as a mount option on an architecture > which does not support DAX. > > This is relevant for architectures which require a dynamic check > to validate whether they have virtually aliased data caches. > > Fixes: d92576f1167c ("dax: does not work correctly with virtual aliasing caches") > Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx> > Cc: Jan Kara <jack@xxxxxxxx> > Cc: linux-ext4@xxxxxxxxxxxxxxx > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > Cc: linux-mm@xxxxxxxxx > Cc: linux-arch@xxxxxxxxxxxxxxx > Cc: Dan Williams <dan.j.williams@xxxxxxxxx> > Cc: Vishal Verma <vishal.l.verma@xxxxxxxxx> > Cc: Dave Jiang <dave.jiang@xxxxxxxxx> > Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> > Cc: Arnd Bergmann <arnd@xxxxxxxx> > Cc: Russell King <linux@xxxxxxxxxxxxxxx> > Cc: nvdimm@xxxxxxxxxxxxxxx > Cc: linux-cxl@xxxxxxxxxxxxxxx > Cc: linux-fsdevel@xxxxxxxxxxxxxxx OK, yeah, this is better than v1. Feel free to add: Acked-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/ext2/super.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/fs/ext2/super.c b/fs/ext2/super.c > index 01f9addc8b1f..30ff57d47ed4 100644 > --- a/fs/ext2/super.c > +++ b/fs/ext2/super.c > @@ -955,7 +955,11 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent) > blocksize = BLOCK_SIZE << le32_to_cpu(sbi->s_es->s_log_block_size); > > if (test_opt(sb, DAX)) { > - if (!sbi->s_daxdev) { > + if (!dax_is_supported()) { > + ext2_msg(sb, KERN_ERR, > + "DAX unsupported by architecture. Turning off DAX."); > + clear_opt(sbi->s_mount_opt, DAX); > + } else if (!sbi->s_daxdev) { > ext2_msg(sb, KERN_ERR, > "DAX unsupported by block device. Turning off DAX."); > clear_opt(sbi->s_mount_opt, DAX); > -- > 2.39.2 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR