f0 [ 4.965023] Call Trace: [ 4.965413] [ 4.966021] ? __kasan_unpoison_range+0x26/0x50 [ 4.966759] alloc_slab_obj_exts_early.constprop.0+0x136/0x240 [ 4.967021] allocate_slab+0x107/0x4b0 [ 4.968021] ___slab_alloc+0x8f6/0xec0 [ 4.969021] ? kstrdup_const+0x2c/0x40 [ 4.969615] ? __xa_alloc+0x227/0x320 [ 4.970021] __slab_alloc.isra.0+0x35/0x90 [ 4.970663] __kmalloc_node_track_caller_noprof+0x4e2/0x7a0 [ 4.971021] ? kstrdup_const+0x2c/0x40 [ 4.972021] kstrdup+0x48/0xf0 [ 4.972505] ? kstrdup+0x48/0xf0 [ 4.973021] kstrdup_const+0x2c/0x40 [ 4.973589] alloc_vfsmnt+0xd5/0x680 [ 4.974021] vfs_create_mount.part.0+0x42/0x3e0 [ 4.975021] vfs_kern_mount.part.0+0x10c/0x150 [ 4.975722] vfs_kern_mount+0x13/0x40 [ 4.976021] devtmpfs_init+0xa8/0x430 [ 4.977021] ? __percpu_counter_init_many+0x199/0x360 [ 4.977812] ? __pfx_devtmpfs_init+0x10/0x10 [ 4.978021] ? page_offline_thaw+0x5/0x20 [ 4.979021] ? __kasan_check_write+0x14/0x30 [ 4.979694] driver_init+0x1a/0x60 [ 4.980021] kernel_init_freeable+0x7de/0xeb0 [ 4.981021] ? __pfx_kernel_init+0x10/0x10 [ 4.981667] kernel_init+0x1f/0x220 [ 4.982021] ? __pfx_kernel_init+0x10/0x10 [ 4.983021] ret_from_fork+0x2b8/0x3b0 [ 4.983618] ? __pfx_kernel_init+0x10/0x10 [ 4.984021] ret_from_fork_asm+0x1a/0x30 [ 4.984639] RIP: 2e66:0x0 [ 4.985021] Code: Unable to access opcode bytes at 0xffffffffffffffd6. [ 4.986021] RSP: 0084:0000000000000000 EFLAGS: 841f0f2e660000 ORIG_RAX: 2e66000000000084 [ 4.987021] RAX: 0000000000000000 RBX: 2e66000000000084 RCX: 0000000000841f0f [ 4.988021] RDX: 000000841f0f2e66 RSI: 00841f0f2e660000 RDI: 1f0f2e6600000000 [ 4.989021] RBP: 1f0f2e6600000000 R08: 1f0f2e6600000000 R09: 00841f0f2e660000 [ 4.990021] R10: 000000841f0f2e66 R11: 0000000000841f0f R12: 00841f0f2e660000 [ 4.991021] R13: 000000841f0f2e66 R14: 0000000000841f0f R15: 2e66000000000084 [ 4.992022] [ 4.992372] ---[ end trace 0000000000000000 ]--- This warning is from kasan_unpoison(): if (WARN_ON((unsigned long)addr & KASAN_GRANULE_MASK)) return; on x86_64, the address passed to kasan_{poison,unpoison}() should be at least aligned with 8 bytes. After manual investigation it turns out when the SLAB_STORE_USER flag is specified, any metadata after the original kmalloc request size is misaligned. Questions: - Could it cause any issues other than the one described above? - Does KASAN even support architectures that have issues with unaligned accesses? - How come we haven't seen any issues regarding this so far? :/ -- Cheers, Harry / Hyeonggon[PATCH] mm/slab: ensure all metadata in slab object are word-alignedHarry Yoo undefinedVlastimil Babka undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined…kƒÂo