[Crash-utility] [PATCH] Fix the "kmem -s" option for Linux 5.7 and later kernels

Kazuhito Hagio kazuhito.hagio at gmail.com
Fri May 28 20:43:09 UTC 2021


> -----Original Message-----
> > Linux 5.7 and later kernels that contain kernel commit <1ad53d9fa3f6>
> > ("slub: improve bit diffusion for freelist ptr obfuscation") changed
> > the calculation formula in the freelist_ptr(), which added a swab()
> > call to mix bits a little more. When kernel is built with the
> > "CONFIG_SLAB_FREELIST_HARDENED=y",the "kmem -s" option fails with the
> > following errors, if there is no such patch.
> >
> > crash> kmem -s
> > CACHE             OBJSIZE  ALLOCATED     TOTAL  SLABS  SSIZE  NAME
> > 82166d00              144          0         0      0     4k  fuse_request
> > 82166e00              792          0         0      0    16k  fuse_inode
> > 87201e00              528          0         0      0     8k  xfs_dqtrx
> > 87201f00              496          0         0      0     8k  xfs_dquot
> > kmem: xfs_buf: slab: 37202e6e900 invalid freepointer: b844bab900001d70
> > kmem: xfs_buf: slab: 3720250fd80 invalid freepointer: b8603f9400001370
> > ...
>
> Good catch!  And the patch diff looks good to me.

Sorry, I completely misread the code..  Please ignore the comments below.
I will check again next week.

Thanks,
Kazu

>
> But the freelist_ptr() function, which is patched, is called only when
> the error message is NOT printed.  So it seems like the patch does not
> stop the message, right?




More information about the Crash-utility mailing list