alistair23-linux/drivers/base
Johannes Berg 833c95456a device coredump: add new device coredump class
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: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-09-23 22:53:15 -07:00
..
power PM / sleep: fix kernel-doc warnings in drivers/base/power/main.c 2014-07-29 01:32:50 +02:00
regmap Merge remote-tracking branches 'regmap/fix/cache', 'regmap/fix/debugfs' and 'regmap/fix/volatile' into regmap-linus 2014-08-31 13:23:45 +01:00
attribute_container.c
base.h driver core: Move driver_data back to struct device 2014-05-27 12:37:18 -07:00
bus.c
class.c
component.c component: fix bug with legacy API 2014-07-04 18:05:05 +01:00
container.c
core.c
cpu.c
dd.c driver core: Inline dev_set/get_drvdata 2014-05-27 13:46:59 -07:00
devcoredump.c device coredump: add new device coredump class 2014-09-23 22:53:15 -07:00
devres.c devres: Add devm_kasprintf and devm_kvasprintf API 2014-07-17 18:26:44 -07:00
devtmpfs.c
dma-coherent.c
dma-contiguous.c mm, CMA: change cma_declare_contiguous() to obey coding convention 2014-08-06 18:01:16 -07:00
dma-mapping.c
driver.c
firmware.c
firmware_class.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2014-08-06 08:06:39 -07:00
hypervisor.c
init.c
isa.c
Kconfig device coredump: add new device coredump class 2014-09-23 22:53:15 -07:00
Makefile device coredump: add new device coredump class 2014-09-23 22:53:15 -07:00
map.c
memory.c mm/mem-hotplug: replace simple_strtoull() with kstrtoull() 2014-08-06 18:01:18 -07:00
module.c
node.c mm: export NR_SHMEM via sysinfo(2) / si_meminfo() interfaces 2014-08-06 18:01:19 -07:00
pinctrl.c
platform.c Driver core patches for 3.17-rc1 2014-08-04 18:34:04 -07:00
soc.c
syscore.c PM / sleep: trace events for suspend/resume 2014-06-07 00:18:07 +02:00
topology.c
transport_class.c