mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 13:44:26 -04:00
Driver core patches for 3.18-rc1
Here's the driver core patches for 3.18-rc1. Just a few small things, and the addition of a new interface to dump firmware "core dumps" to userspace through sysfs that the wireless and graphic drivers want to use. All of these have been in linux-next for a while. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEABECAAYFAlQ0ZgwACgkQMUfUDdst+ymh9ACfZi5TG1AD8/EesCoKaoTd4yJZ QOcAnjISbF9IKL1ia1fESqFYyTO+XqrP =YdeX -----END PGP SIGNATURE----- Merge tag 'driver-core-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core update from Greg KH: "Here's the driver core patches for 3.18-rc1. Just a few small things, and the addition of a new interface to dump firmware "core dumps" to userspace through sysfs that the wireless and graphic drivers want to use. All of these have been in linux-next for a while" * tag 'driver-core-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: dynamic_debug: change __dynamic_<foo>_dbg return types to void driver/base/node: remove unnecessary kfree of node struct from unregister_one_node devres: Improve devm_kasprintf()/kvasprintf() support Documentation: devres: Add missing devm_kstrdup() managed interface Documentation: devres: Add missing IRQ functions firmware_class: make sure fw requests contain a name driver core: Remove kerneldoc from local function attribute_container: fix coding style issues attribute_container: fix whitespace errors drivers/base: Fix length checks in create_syslog_header()/dev_vprintk_emit() device coredump: add new device coredump class Documentation/sysfs-rules.txt: Add device attribute error code documentation
This commit is contained in:
commit
bca51651fc
16 changed files with 411 additions and 54 deletions
35
include/linux/devcoredump.h
Normal file
35
include/linux/devcoredump.h
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#ifndef __DEVCOREDUMP_H
|
||||
#define __DEVCOREDUMP_H
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/vmalloc.h>
|
||||
|
||||
#ifdef CONFIG_DEV_COREDUMP
|
||||
void dev_coredumpv(struct device *dev, const void *data, size_t datalen,
|
||||
gfp_t gfp);
|
||||
|
||||
void dev_coredumpm(struct device *dev, struct module *owner,
|
||||
const void *data, size_t datalen, gfp_t gfp,
|
||||
ssize_t (*read)(char *buffer, loff_t offset, size_t count,
|
||||
const void *data, size_t datalen),
|
||||
void (*free)(const void *data));
|
||||
#else
|
||||
static inline void dev_coredumpv(struct device *dev, const void *data,
|
||||
size_t datalen, gfp_t gfp)
|
||||
{
|
||||
vfree(data);
|
||||
}
|
||||
|
||||
static inline void
|
||||
dev_coredumpm(struct device *dev, struct module *owner,
|
||||
const void *data, size_t datalen, gfp_t gfp,
|
||||
ssize_t (*read)(char *buffer, loff_t offset, size_t count,
|
||||
const void *data, size_t datalen),
|
||||
void (*free)(const void *data))
|
||||
{
|
||||
free(data);
|
||||
}
|
||||
#endif /* CONFIG_DEV_COREDUMP */
|
||||
|
||||
#endif /* __DEVCOREDUMP_H */
|
||||
|
|
@ -607,8 +607,8 @@ extern int devres_release_group(struct device *dev, void *id);
|
|||
extern void *devm_kmalloc(struct device *dev, size_t size, gfp_t gfp);
|
||||
extern char *devm_kvasprintf(struct device *dev, gfp_t gfp, const char *fmt,
|
||||
va_list ap);
|
||||
extern char *devm_kasprintf(struct device *dev, gfp_t gfp,
|
||||
const char *fmt, ...);
|
||||
extern __printf(3, 4)
|
||||
char *devm_kasprintf(struct device *dev, gfp_t gfp, const char *fmt, ...);
|
||||
static inline void *devm_kzalloc(struct device *dev, size_t size, gfp_t gfp)
|
||||
{
|
||||
return devm_kmalloc(dev, size, gfp | __GFP_ZERO);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ int ddebug_add_module(struct _ddebug *tab, unsigned int n,
|
|||
#if defined(CONFIG_DYNAMIC_DEBUG)
|
||||
extern int ddebug_remove_module(const char *mod_name);
|
||||
extern __printf(2, 3)
|
||||
int __dynamic_pr_debug(struct _ddebug *descriptor, const char *fmt, ...);
|
||||
void __dynamic_pr_debug(struct _ddebug *descriptor, const char *fmt, ...);
|
||||
|
||||
extern int ddebug_dyndbg_module_param_cb(char *param, char *val,
|
||||
const char *modname);
|
||||
|
|
@ -50,15 +50,15 @@ extern int ddebug_dyndbg_module_param_cb(char *param, char *val,
|
|||
struct device;
|
||||
|
||||
extern __printf(3, 4)
|
||||
int __dynamic_dev_dbg(struct _ddebug *descriptor, const struct device *dev,
|
||||
const char *fmt, ...);
|
||||
void __dynamic_dev_dbg(struct _ddebug *descriptor, const struct device *dev,
|
||||
const char *fmt, ...);
|
||||
|
||||
struct net_device;
|
||||
|
||||
extern __printf(3, 4)
|
||||
int __dynamic_netdev_dbg(struct _ddebug *descriptor,
|
||||
const struct net_device *dev,
|
||||
const char *fmt, ...);
|
||||
void __dynamic_netdev_dbg(struct _ddebug *descriptor,
|
||||
const struct net_device *dev,
|
||||
const char *fmt, ...);
|
||||
|
||||
#define DEFINE_DYNAMIC_DEBUG_METADATA(name, fmt) \
|
||||
static struct _ddebug __aligned(8) \
|
||||
|
|
|
|||
Loading…
Reference in a new issue