mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 22:37:45 -04:00
Since commit1751e8a6cb("Rename superblock flags (MS_xyz -> SB_xyz)"), scripts/gdb should be updated to replace MS_xyz with SB_xyz. This change didn't directly affect the running operation of scripts/gdb until commite262e32d6b"vfs: Suppress MS_* flag defs within the kernel unless explicitly enabled" removed the definitions used by constants.py. Update constants.py.in to utilise the new internal flags, matching the implementation at fs/proc_namespace.c::show_sb_opts. Note to stable,e262e32d6blanded in v5.0-rc1 (which was just released), so we'll want this picked back to 5.0 stable once this patch hits mainline (akpm just picked it up). Without this, debugging a kernel a kernel via GDB+QEMU is broken in the 5.0 release. [[email protected]: add fixes tag, reword commit message] Link: http://lkml.kernel.org/r/[email protected] Fixes:e262e32d6b"vfs: Suppress MS_* flag defs within the kernel unless explicitly enabled" Signed-off-by: Jackie Liu <[email protected]> Signed-off-by: Kieran Bingham <[email protected]> Tested-by: Nick Desaulniers <[email protected]> Tested-by: Kieran Bingham <[email protected]> Cc: Felipe Balbi <[email protected]> Cc: Dan Robertson <[email protected]> Cc: Jan Kiszka <[email protected]> Cc: David Howells <[email protected]> Cc: <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
60 lines
1.3 KiB
Plaintext
60 lines
1.3 KiB
Plaintext
/*
|
|
* gdb helper commands and functions for Linux kernel debugging
|
|
*
|
|
* Kernel constants derived from include files.
|
|
*
|
|
* Copyright (c) 2016 Linaro Ltd
|
|
*
|
|
* Authors:
|
|
* Kieran Bingham <[email protected]>
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL version 2.
|
|
*
|
|
*/
|
|
|
|
#include <linux/fs.h>
|
|
#include <linux/mount.h>
|
|
#include <linux/of_fdt.h>
|
|
|
|
/* We need to stringify expanded macros so that they can be parsed */
|
|
|
|
#define STRING(x) #x
|
|
#define XSTRING(x) STRING(x)
|
|
|
|
#define LX_VALUE(x) LX_##x = x
|
|
#define LX_GDBPARSED(x) LX_##x = gdb.parse_and_eval(XSTRING(x))
|
|
|
|
/*
|
|
* IS_ENABLED generates (a || b) which is not compatible with python
|
|
* We can only switch on configuration items we know are available
|
|
* Therefore - IS_BUILTIN() is more appropriate
|
|
*/
|
|
#define LX_CONFIG(x) LX_##x = IS_BUILTIN(x)
|
|
|
|
/* The build system will take care of deleting everything above this marker */
|
|
<!-- end-c-headers -->
|
|
|
|
import gdb
|
|
|
|
/* linux/fs.h */
|
|
LX_VALUE(SB_RDONLY)
|
|
LX_VALUE(SB_SYNCHRONOUS)
|
|
LX_VALUE(SB_MANDLOCK)
|
|
LX_VALUE(SB_DIRSYNC)
|
|
LX_VALUE(SB_NOATIME)
|
|
LX_VALUE(SB_NODIRATIME)
|
|
|
|
/* linux/mount.h */
|
|
LX_VALUE(MNT_NOSUID)
|
|
LX_VALUE(MNT_NODEV)
|
|
LX_VALUE(MNT_NOEXEC)
|
|
LX_VALUE(MNT_NOATIME)
|
|
LX_VALUE(MNT_NODIRATIME)
|
|
LX_VALUE(MNT_RELATIME)
|
|
|
|
/* linux/of_fdt.h> */
|
|
LX_VALUE(OF_DT_HEADER)
|
|
|
|
/* Kernel Configs */
|
|
LX_CONFIG(CONFIG_OF)
|