• Johannes Berg's avatar
    device coredump: add new device coredump class · 833c9545
    Johannes Berg authored
    Many devices run firmware and/or complex hardware, and most of that
    can have bugs. When it misbehaves, however, it is often much harder
    to debug than software running on the host.
    
    Introduce a "device coredump" mechanism to allow dumping internal
    device/firmware state through a generalized mechanism. As devices
    are different and information needed can vary accordingly, this
    doesn't prescribe a file format - it just provides mechanism to
    get data to be able to capture it in a generalized way (e.g. in
    distributions.)
    
    The dumped data will be readable in sysfs in the virtual device's
    data file under /sys/class/devcoredump/devcd*/. Writing to it will
    free the data and remove the device, as does a 5-minute timeout.
    
    Note that generalized capturing of such data may result in privacy
    issues, so users generally need to be involved. In order to allow
    certain users/system integrators/... to disable the feature at all,
    introduce a Kconfig option to override the drivers that would like
    to have the feature.
    
    For now, this provides two ways of dumping data:
     1) with a vmalloc'ed area, that is then given to the subsystem
        and freed after retrieval or timeout
     2) with a generalized reader/free function method
    
    We could/should add more options, e.g. a list of pages, since the
    vmalloc area is very limited on some architectures.
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    833c9545
devcoredump.h 986 Bytes