• Dongdong Deng's avatar
    kgdbts: prevent re-entry to kgdbts before it unregisters · 4dacd5c0
    Dongdong Deng authored
    The "kgdb_connected" variable of debug_core just indicates whether or
    not kgdbts is connected to the debug_core.  It does not completely
    prevent a script from trying invoke kgdbts again and possibly crashing
    the system (see Call Trace below).
    
    The configured variable in kgtbts can be used instead of
    kgdb_connected instead of kgdb_connected. The cleanup_kgdbts() can
    also be removed because there is no possible way to build kgdbts as a
    kernel module that you could unload with rmmod.
    
    Call Trace:
    -----------------------------------------------------------------
    root:/$ echo kgdbts=V1S1000 > /sys/module/kgdbts/parameters/kgdbts
    kgdb: Unregistered I/O driver kgdbts, debugger disabled.
    ------------[ cut here ]------------
    WARNING: at kernel/debug/debug_core.c:1002
    kgdb_unregister_io_module+0xec/0x100()
    Hardware name: Moon Creek platform
    Modules linked in:
    Pid: 664, comm: sh Not tainted 2.6.34.1-WR4.0.0.0_standard #58
    Call Trace:
     [<c103b1ed>] warn_slowpath_common+0x6d/0xa0
     [<c1079fdc>] ? kgdb_unregister_io_module+0xec/0x100
     [<c1079fdc>] ? kgdb_unregister_io_module+0xec/0x100
     [<c10544e0>] ? param_attr_store+0x0/0x20
     [<c103b235>] warn_slowpath_null+0x15/0x20
     [<c1079fdc>] kgdb_unregister_io_module+0xec/0x100
     [<c124e4ea>] cleanup_kgdbts+0x1a/0x20
     [<c124eced>] param_set_kgdbts_var+0x6d/0xb0
     [<c124ec80>] ? param_set_kgdbts_var+0x0/0xb0
     [<c10544f7>] param_attr_store+0x17/0x20
     [<c105457c>] module_attr_store+0x2c/0x40
     [<c111fe84>] sysfs_write_file+0x94/0xf0
     [<c10d42f6>] vfs_write+0x96/0x130
     [<c111fdf0>] ? sysfs_write_file+0x0/0xf0
     [<c10d44d6>] sys_write+0x46/0xd0
     [<c13bf329>] system_call_done+0x0/0x4
    ---[ end trace 4eb028c6ee43154c ]---
    kgdb: Unregistered I/O driver kgdbts, debugger disabled.
    -----------------------------------------------------------------
    
    [jason.wessel@windriver.com: remove cleanup_kgdbts() ]
    Signed-off-by: default avatarDongdong Deng <dongdong.deng@windriver.com>
    Signed-off-by: default avatarJason Wessel <jason.wessel@windriver.com>
    4dacd5c0
kgdbts.c 28.7 KB