Merge branches 'tracing/ftrace' and 'tracing/urgent' into tracing/core
Conflicts: kernel/trace/ftrace.c [ We conflicted here because we backported a few fixes to tracing/urgent - which has different internal APIs. ]
This commit is contained in:
@@ -380,6 +380,8 @@ struct acpi_bus_type {
|
||||
int register_acpi_bus_type(struct acpi_bus_type *);
|
||||
int unregister_acpi_bus_type(struct acpi_bus_type *);
|
||||
struct device *acpi_get_physical_device(acpi_handle);
|
||||
struct device *acpi_get_physical_pci_device(acpi_handle);
|
||||
|
||||
/* helper */
|
||||
acpi_handle acpi_get_child(acpi_handle, acpi_integer);
|
||||
acpi_handle acpi_get_pci_rootbridge_handle(unsigned int, unsigned int);
|
||||
|
@@ -31,8 +31,24 @@
|
||||
|
||||
#define ACPI_MAX_STRING 80
|
||||
|
||||
/*
|
||||
* Please update drivers/acpi/debug.c and Documentation/acpi/debug.txt
|
||||
* if you add to this list.
|
||||
*/
|
||||
#define ACPI_BUS_COMPONENT 0x00010000
|
||||
#define ACPI_AC_COMPONENT 0x00020000
|
||||
#define ACPI_BATTERY_COMPONENT 0x00040000
|
||||
#define ACPI_BUTTON_COMPONENT 0x00080000
|
||||
#define ACPI_SBS_COMPONENT 0x00100000
|
||||
#define ACPI_FAN_COMPONENT 0x00200000
|
||||
#define ACPI_PCI_COMPONENT 0x00400000
|
||||
#define ACPI_POWER_COMPONENT 0x00800000
|
||||
#define ACPI_CONTAINER_COMPONENT 0x01000000
|
||||
#define ACPI_SYSTEM_COMPONENT 0x02000000
|
||||
#define ACPI_THERMAL_COMPONENT 0x04000000
|
||||
#define ACPI_MEMORY_DEVICE_COMPONENT 0x08000000
|
||||
#define ACPI_VIDEO_COMPONENT 0x10000000
|
||||
#define ACPI_PROCESSOR_COMPONENT 0x20000000
|
||||
|
||||
/*
|
||||
* _HID definitions
|
||||
@@ -41,6 +57,7 @@
|
||||
*/
|
||||
|
||||
#define ACPI_POWER_HID "LNXPOWER"
|
||||
#define ACPI_PROCESSOR_OBJECT_HID "ACPI_CPU"
|
||||
#define ACPI_PROCESSOR_HID "ACPI0007"
|
||||
#define ACPI_SYSTEM_HID "LNXSYSTM"
|
||||
#define ACPI_THERMAL_HID "LNXTHERM"
|
||||
@@ -54,7 +71,6 @@
|
||||
PCI
|
||||
-------------------------------------------------------------------------- */
|
||||
|
||||
#define ACPI_PCI_COMPONENT 0x00400000
|
||||
|
||||
/* ACPI PCI Interrupt Link (pci_link.c) */
|
||||
|
||||
@@ -86,7 +102,6 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_device *device, int domain,
|
||||
Power Resource
|
||||
-------------------------------------------------------------------------- */
|
||||
|
||||
#ifdef CONFIG_ACPI_POWER
|
||||
int acpi_device_sleep_wake(struct acpi_device *dev,
|
||||
int enable, int sleep_state, int dev_state);
|
||||
int acpi_enable_wakeup_device_power(struct acpi_device *dev, int sleep_state);
|
||||
@@ -94,15 +109,12 @@ int acpi_disable_wakeup_device_power(struct acpi_device *dev);
|
||||
int acpi_power_get_inferred_state(struct acpi_device *device);
|
||||
int acpi_power_transition(struct acpi_device *device, int state);
|
||||
extern int acpi_power_nocheck;
|
||||
#endif
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
Embedded Controller
|
||||
-------------------------------------------------------------------------- */
|
||||
#ifdef CONFIG_ACPI_EC
|
||||
int acpi_ec_ecdt_probe(void);
|
||||
int acpi_boot_ec_enable(void);
|
||||
#endif
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
Processor
|
||||
|
@@ -252,9 +252,9 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status);
|
||||
|
||||
acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type);
|
||||
|
||||
acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
|
||||
acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number);
|
||||
|
||||
acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
|
||||
acpi_status acpi_disable_gpe(acpi_handle gpe_device, u32 gpe_number);
|
||||
|
||||
acpi_status acpi_clear_gpe(acpi_handle gpe_device, u32 gpe_number, u32 flags);
|
||||
|
||||
|
@@ -525,6 +525,7 @@ typedef u32 acpi_event_status;
|
||||
#define ACPI_EVENT_FLAG_ENABLED (acpi_event_status) 0x01
|
||||
#define ACPI_EVENT_FLAG_WAKE_ENABLED (acpi_event_status) 0x02
|
||||
#define ACPI_EVENT_FLAG_SET (acpi_event_status) 0x04
|
||||
#define ACPI_EVENT_FLAG_HANDLE (acpi_event_status) 0x08
|
||||
|
||||
/*
|
||||
* General Purpose Events (GPE)
|
||||
|
@@ -163,8 +163,6 @@ struct acpi_pci_driver {
|
||||
int acpi_pci_register_driver(struct acpi_pci_driver *driver);
|
||||
void acpi_pci_unregister_driver(struct acpi_pci_driver *driver);
|
||||
|
||||
#ifdef CONFIG_ACPI_EC
|
||||
|
||||
extern int ec_read(u8 addr, u8 *val);
|
||||
extern int ec_write(u8 addr, u8 val);
|
||||
extern int ec_transaction(u8 command,
|
||||
@@ -172,8 +170,6 @@ extern int ec_transaction(u8 command,
|
||||
u8 *rdata, unsigned rdata_len,
|
||||
int force_poll);
|
||||
|
||||
#endif /*CONFIG_ACPI_EC*/
|
||||
|
||||
#if defined(CONFIG_ACPI_WMI) || defined(CONFIG_ACPI_WMI_MODULE)
|
||||
|
||||
typedef void (*wmi_notify_handler) (u32 value, void *context);
|
||||
@@ -194,6 +190,50 @@ extern bool wmi_has_guid(const char *guid);
|
||||
|
||||
#endif /* CONFIG_ACPI_WMI */
|
||||
|
||||
#define ACPI_VIDEO_OUTPUT_SWITCHING 0x0001
|
||||
#define ACPI_VIDEO_DEVICE_POSTING 0x0002
|
||||
#define ACPI_VIDEO_ROM_AVAILABLE 0x0004
|
||||
#define ACPI_VIDEO_BACKLIGHT 0x0008
|
||||
#define ACPI_VIDEO_BACKLIGHT_FORCE_VENDOR 0x0010
|
||||
#define ACPI_VIDEO_BACKLIGHT_FORCE_VIDEO 0x0020
|
||||
#define ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VENDOR 0x0040
|
||||
#define ACPI_VIDEO_OUTPUT_SWITCHING_FORCE_VIDEO 0x0080
|
||||
#define ACPI_VIDEO_BACKLIGHT_DMI_VENDOR 0x0100
|
||||
#define ACPI_VIDEO_BACKLIGHT_DMI_VIDEO 0x0200
|
||||
#define ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VENDOR 0x0400
|
||||
#define ACPI_VIDEO_OUTPUT_SWITCHING_DMI_VIDEO 0x0800
|
||||
|
||||
#if defined(CONFIG_ACPI_VIDEO) || defined(CONFIG_ACPI_VIDEO_MODULE)
|
||||
|
||||
extern long acpi_video_get_capabilities(acpi_handle graphics_dev_handle);
|
||||
extern long acpi_is_video_device(struct acpi_device *device);
|
||||
extern int acpi_video_backlight_support(void);
|
||||
extern int acpi_video_display_switch_support(void);
|
||||
|
||||
#else
|
||||
|
||||
static inline long acpi_video_get_capabilities(acpi_handle graphics_dev_handle)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline long acpi_is_video_device(struct acpi_device *device)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int acpi_video_backlight_support(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int acpi_video_display_switch_support(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* defined(CONFIG_ACPI_VIDEO) || defined(CONFIG_ACPI_VIDEO_MODULE) */
|
||||
|
||||
extern int acpi_blacklisted(void);
|
||||
#ifdef CONFIG_DMI
|
||||
extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d);
|
||||
|
65
include/linux/c2port.h
Normal file
65
include/linux/c2port.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Silicon Labs C2 port Linux support
|
||||
*
|
||||
* Copyright (c) 2007 Rodolfo Giometti <giometti@linux.it>
|
||||
* Copyright (c) 2007 Eurotech S.p.A. <info@eurotech.it>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 as published by
|
||||
* the Free Software Foundation
|
||||
*/
|
||||
|
||||
#include <linux/device.h>
|
||||
|
||||
#define C2PORT_NAME_LEN 32
|
||||
|
||||
/*
|
||||
* C2 port basic structs
|
||||
*/
|
||||
|
||||
/* Main struct */
|
||||
struct c2port_ops;
|
||||
struct c2port_device {
|
||||
unsigned int access:1;
|
||||
unsigned int flash_access:1;
|
||||
|
||||
int id;
|
||||
char name[C2PORT_NAME_LEN];
|
||||
struct c2port_ops *ops;
|
||||
struct mutex mutex; /* prevent races during read/write */
|
||||
|
||||
struct device *dev;
|
||||
|
||||
void *private_data;
|
||||
};
|
||||
|
||||
/* Basic operations */
|
||||
struct c2port_ops {
|
||||
/* Flash layout */
|
||||
unsigned short block_size; /* flash block size in bytes */
|
||||
unsigned short blocks_num; /* flash blocks number */
|
||||
|
||||
/* Enable or disable the access to C2 port */
|
||||
void (*access)(struct c2port_device *dev, int status);
|
||||
|
||||
/* Set C2D data line as input/output */
|
||||
void (*c2d_dir)(struct c2port_device *dev, int dir);
|
||||
|
||||
/* Read/write C2D data line */
|
||||
int (*c2d_get)(struct c2port_device *dev);
|
||||
void (*c2d_set)(struct c2port_device *dev, int status);
|
||||
|
||||
/* Write C2CK clock line */
|
||||
void (*c2ck_set)(struct c2port_device *dev, int status);
|
||||
};
|
||||
|
||||
/*
|
||||
* Exported functions
|
||||
*/
|
||||
|
||||
#define to_class_dev(obj) container_of((obj), struct class_device, kobj)
|
||||
#define to_c2port_device(obj) container_of((obj), struct c2port_device, class)
|
||||
|
||||
extern struct c2port_device *c2port_device_register(char *name,
|
||||
struct c2port_ops *ops, void *devdata);
|
||||
extern void c2port_device_unregister(struct c2port_device *dev);
|
@@ -522,7 +522,9 @@ extern char *disk_name (struct gendisk *hd, int partno, char *buf);
|
||||
|
||||
extern int disk_expand_part_tbl(struct gendisk *disk, int target);
|
||||
extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev);
|
||||
extern int __must_check add_partition(struct gendisk *, int, sector_t, sector_t, int);
|
||||
extern struct hd_struct * __must_check add_partition(struct gendisk *disk,
|
||||
int partno, sector_t start,
|
||||
sector_t len, int flags);
|
||||
extern void delete_partition(struct gendisk *, int);
|
||||
extern void printk_all_partitions(void);
|
||||
|
||||
|
@@ -46,9 +46,6 @@ enum hrtimer_restart {
|
||||
* hrtimer callback modes:
|
||||
*
|
||||
* HRTIMER_CB_SOFTIRQ: Callback must run in softirq context
|
||||
* HRTIMER_CB_IRQSAFE: Callback may run in hardirq context
|
||||
* HRTIMER_CB_IRQSAFE_NO_RESTART: Callback may run in hardirq context and
|
||||
* does not restart the timer
|
||||
* HRTIMER_CB_IRQSAFE_PERCPU: Callback must run in hardirq context
|
||||
* Special mode for tick emulation and
|
||||
* scheduler timer. Such timers are per
|
||||
@@ -61,8 +58,6 @@ enum hrtimer_restart {
|
||||
*/
|
||||
enum hrtimer_cb_mode {
|
||||
HRTIMER_CB_SOFTIRQ,
|
||||
HRTIMER_CB_IRQSAFE,
|
||||
HRTIMER_CB_IRQSAFE_NO_RESTART,
|
||||
HRTIMER_CB_IRQSAFE_PERCPU,
|
||||
HRTIMER_CB_IRQSAFE_UNLOCKED,
|
||||
};
|
||||
|
@@ -134,6 +134,8 @@ extern void inotify_remove_watch_locked(struct inotify_handle *,
|
||||
struct inotify_watch *);
|
||||
extern void get_inotify_watch(struct inotify_watch *);
|
||||
extern void put_inotify_watch(struct inotify_watch *);
|
||||
extern int pin_inotify_watch(struct inotify_watch *);
|
||||
extern void unpin_inotify_watch(struct inotify_watch *);
|
||||
|
||||
#else
|
||||
|
||||
@@ -228,6 +230,15 @@ static inline void put_inotify_watch(struct inotify_watch *watch)
|
||||
{
|
||||
}
|
||||
|
||||
extern inline int pin_inotify_watch(struct inotify_watch *watch)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
extern inline void unpin_inotify_watch(struct inotify_watch *watch)
|
||||
{
|
||||
}
|
||||
|
||||
#endif /* CONFIG_INOTIFY */
|
||||
|
||||
#endif /* __KERNEL __ */
|
||||
|
@@ -238,6 +238,7 @@ struct input_absinfo {
|
||||
#define KEY_KPEQUAL 117
|
||||
#define KEY_KPPLUSMINUS 118
|
||||
#define KEY_PAUSE 119
|
||||
#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */
|
||||
|
||||
#define KEY_KPCOMMA 121
|
||||
#define KEY_HANGEUL 122
|
||||
@@ -322,6 +323,7 @@ struct input_absinfo {
|
||||
#define KEY_PAUSECD 201
|
||||
#define KEY_PROG3 202
|
||||
#define KEY_PROG4 203
|
||||
#define KEY_DASHBOARD 204 /* AL Dashboard */
|
||||
#define KEY_SUSPEND 205
|
||||
#define KEY_CLOSE 206 /* AC Close */
|
||||
#define KEY_PLAY 207
|
||||
|
@@ -318,32 +318,36 @@ static inline char *pack_hex_byte(char *buf, u8 byte)
|
||||
return buf;
|
||||
}
|
||||
|
||||
#define pr_emerg(fmt, arg...) \
|
||||
printk(KERN_EMERG fmt, ##arg)
|
||||
#define pr_alert(fmt, arg...) \
|
||||
printk(KERN_ALERT fmt, ##arg)
|
||||
#define pr_crit(fmt, arg...) \
|
||||
printk(KERN_CRIT fmt, ##arg)
|
||||
#define pr_err(fmt, arg...) \
|
||||
printk(KERN_ERR fmt, ##arg)
|
||||
#define pr_warning(fmt, arg...) \
|
||||
printk(KERN_WARNING fmt, ##arg)
|
||||
#define pr_notice(fmt, arg...) \
|
||||
printk(KERN_NOTICE fmt, ##arg)
|
||||
#define pr_info(fmt, arg...) \
|
||||
printk(KERN_INFO fmt, ##arg)
|
||||
#ifndef pr_fmt
|
||||
#define pr_fmt(fmt) fmt
|
||||
#endif
|
||||
|
||||
#define pr_emerg(fmt, ...) \
|
||||
printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__)
|
||||
#define pr_alert(fmt, ...) \
|
||||
printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__)
|
||||
#define pr_crit(fmt, ...) \
|
||||
printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__)
|
||||
#define pr_err(fmt, ...) \
|
||||
printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__)
|
||||
#define pr_warning(fmt, ...) \
|
||||
printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
|
||||
#define pr_notice(fmt, ...) \
|
||||
printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__)
|
||||
#define pr_info(fmt, ...) \
|
||||
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
|
||||
|
||||
/* If you are writing a driver, please use dev_dbg instead */
|
||||
#if defined(CONFIG_DYNAMIC_PRINTK_DEBUG)
|
||||
#define pr_debug(fmt, ...) do { \
|
||||
dynamic_pr_debug(fmt, ##__VA_ARGS__); \
|
||||
dynamic_pr_debug(pr_fmt(fmt), ##__VA_ARGS__); \
|
||||
} while (0)
|
||||
#elif defined(DEBUG)
|
||||
#define pr_debug(fmt, arg...) \
|
||||
printk(KERN_DEBUG fmt, ##arg)
|
||||
#define pr_debug(fmt, ...) \
|
||||
printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)
|
||||
#else
|
||||
#define pr_debug(fmt, arg...) \
|
||||
({ if (0) printk(KERN_DEBUG fmt, ##arg); 0; })
|
||||
#define pr_debug(fmt, ...) \
|
||||
({ if (0) printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__); 0; })
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
@@ -331,10 +331,11 @@ static inline void lockdep_on(void)
|
||||
# define lock_set_subclass(l, s, i) do { } while (0)
|
||||
# define lockdep_init() do { } while (0)
|
||||
# define lockdep_info() do { } while (0)
|
||||
# define lockdep_init_map(lock, name, key, sub) do { (void)(key); } while (0)
|
||||
# define lockdep_init_map(lock, name, key, sub) \
|
||||
do { (void)(name); (void)(key); } while (0)
|
||||
# define lockdep_set_class(lock, key) do { (void)(key); } while (0)
|
||||
# define lockdep_set_class_and_name(lock, key, name) \
|
||||
do { (void)(key); } while (0)
|
||||
do { (void)(key); (void)(name); } while (0)
|
||||
#define lockdep_set_class_and_subclass(lock, key, sub) \
|
||||
do { (void)(key); } while (0)
|
||||
#define lockdep_set_subclass(lock, sub) do { } while (0)
|
||||
|
@@ -261,6 +261,8 @@
|
||||
|
||||
struct wm8350_rtc {
|
||||
struct platform_device *pdev;
|
||||
struct rtc_device *rtc;
|
||||
int alarm_enabled; /* used over suspend/resume */
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -17,11 +17,4 @@ struct ratelimit_state {
|
||||
struct ratelimit_state name = {interval, burst,}
|
||||
|
||||
extern int __ratelimit(struct ratelimit_state *rs);
|
||||
|
||||
static inline int ratelimit(void)
|
||||
{
|
||||
static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL,
|
||||
DEFAULT_RATELIMIT_BURST);
|
||||
return __ratelimit(&rs);
|
||||
}
|
||||
#endif
|
||||
|
@@ -155,6 +155,9 @@
|
||||
|
||||
#define PORT_SC26XX 82
|
||||
|
||||
/* SH-SCI */
|
||||
#define PORT_SCIFA 83
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/compiler.h>
|
||||
|
@@ -23,6 +23,34 @@
|
||||
#define SLAB_CACHE_DMA 0x00004000UL /* Use GFP_DMA memory */
|
||||
#define SLAB_STORE_USER 0x00010000UL /* DEBUG: Store the last owner for bug hunting */
|
||||
#define SLAB_PANIC 0x00040000UL /* Panic if kmem_cache_create() fails */
|
||||
/*
|
||||
* SLAB_DESTROY_BY_RCU - **WARNING** READ THIS!
|
||||
*
|
||||
* This delays freeing the SLAB page by a grace period, it does _NOT_
|
||||
* delay object freeing. This means that if you do kmem_cache_free()
|
||||
* that memory location is free to be reused at any time. Thus it may
|
||||
* be possible to see another object there in the same RCU grace period.
|
||||
*
|
||||
* This feature only ensures the memory location backing the object
|
||||
* stays valid, the trick to using this is relying on an independent
|
||||
* object validation pass. Something like:
|
||||
*
|
||||
* rcu_read_lock()
|
||||
* again:
|
||||
* obj = lockless_lookup(key);
|
||||
* if (obj) {
|
||||
* if (!try_get_ref(obj)) // might fail for free objects
|
||||
* goto again;
|
||||
*
|
||||
* if (obj->key != key) { // not the object we expected
|
||||
* put_ref(obj);
|
||||
* goto again;
|
||||
* }
|
||||
* }
|
||||
* rcu_read_unlock();
|
||||
*
|
||||
* See also the comment on struct slab_rcu in mm/slab.c.
|
||||
*/
|
||||
#define SLAB_DESTROY_BY_RCU 0x00080000UL /* Defer freeing slabs to RCU */
|
||||
#define SLAB_MEM_SPREAD 0x00100000UL /* Spread some memory over cpuset */
|
||||
#define SLAB_TRACE 0x00200000UL /* Trace allocations and frees */
|
||||
|
@@ -108,6 +108,7 @@ enum usb_interface_condition {
|
||||
* (in probe()), bound to a driver, or unbinding (in disconnect())
|
||||
* @is_active: flag set when the interface is bound and not suspended.
|
||||
* @sysfs_files_created: sysfs attributes exist
|
||||
* @unregistering: flag set when the interface is being unregistered
|
||||
* @needs_remote_wakeup: flag set when the driver requires remote-wakeup
|
||||
* capability during autosuspend.
|
||||
* @needs_altsetting0: flag set when a set-interface request for altsetting 0
|
||||
@@ -163,6 +164,7 @@ struct usb_interface {
|
||||
enum usb_interface_condition condition; /* state of binding */
|
||||
unsigned is_active:1; /* the interface is not suspended */
|
||||
unsigned sysfs_files_created:1; /* the sysfs attributes exist */
|
||||
unsigned unregistering:1; /* unregistration is in progress */
|
||||
unsigned needs_remote_wakeup:1; /* driver requires remote wakeup */
|
||||
unsigned needs_altsetting0:1; /* switch to altsetting 0 is pending */
|
||||
unsigned needs_binding:1; /* needs delayed unbind/rebind */
|
||||
|
@@ -815,7 +815,7 @@ static inline void sk_wmem_free_skb(struct sock *sk, struct sk_buff *skb)
|
||||
*/
|
||||
#define sock_lock_init_class_and_name(sk, sname, skey, name, key) \
|
||||
do { \
|
||||
sk->sk_lock.owned = 0; \
|
||||
sk->sk_lock.owned = 0; \
|
||||
init_waitqueue_head(&sk->sk_lock.wq); \
|
||||
spin_lock_init(&(sk)->sk_lock.slock); \
|
||||
debug_check_no_locks_freed((void *)&(sk)->sk_lock, \
|
||||
|
@@ -38,7 +38,7 @@ struct atmel_lcdfb_info {
|
||||
spinlock_t lock;
|
||||
struct fb_info *info;
|
||||
void __iomem *mmio;
|
||||
unsigned long irq_base;
|
||||
int irq_base;
|
||||
struct work_struct task;
|
||||
|
||||
unsigned int guard_time;
|
||||
|
Reference in New Issue
Block a user