mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-24 13:44:26 -04:00
Merge commit 'v2.6.38' into x86/mm
Conflicts: arch/x86/mm/numa_64.c Merge reason: Resolve the conflict, update the branch to .38. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
commit
8460b3e5bc
810 changed files with 8447 additions and 6214 deletions
|
|
@ -699,7 +699,7 @@ extern void blk_start_queue(struct request_queue *q);
|
|||
extern void blk_stop_queue(struct request_queue *q);
|
||||
extern void blk_sync_queue(struct request_queue *q);
|
||||
extern void __blk_stop_queue(struct request_queue *q);
|
||||
extern void __blk_run_queue(struct request_queue *);
|
||||
extern void __blk_run_queue(struct request_queue *q, bool force_kblockd);
|
||||
extern void blk_run_queue(struct request_queue *);
|
||||
extern int blk_rq_map_user(struct request_queue *, struct request *,
|
||||
struct rq_map_data *, void __user *, unsigned long,
|
||||
|
|
@ -1088,7 +1088,6 @@ static inline void put_dev_sector(Sector p)
|
|||
|
||||
struct work_struct;
|
||||
int kblockd_schedule_work(struct request_queue *q, struct work_struct *work);
|
||||
int kblockd_schedule_delayed_work(struct request_queue *q, struct delayed_work *dwork, unsigned long delay);
|
||||
|
||||
#ifdef CONFIG_BLK_CGROUP
|
||||
/*
|
||||
|
|
@ -1136,7 +1135,6 @@ static inline uint64_t rq_io_start_time_ns(struct request *req)
|
|||
extern int blk_throtl_init(struct request_queue *q);
|
||||
extern void blk_throtl_exit(struct request_queue *q);
|
||||
extern int blk_throtl_bio(struct request_queue *q, struct bio **bio);
|
||||
extern void throtl_schedule_delayed_work(struct request_queue *q, unsigned long delay);
|
||||
extern void throtl_shutdown_timer_wq(struct request_queue *q);
|
||||
#else /* CONFIG_BLK_DEV_THROTTLING */
|
||||
static inline int blk_throtl_bio(struct request_queue *q, struct bio **bio)
|
||||
|
|
@ -1146,7 +1144,6 @@ static inline int blk_throtl_bio(struct request_queue *q, struct bio **bio)
|
|||
|
||||
static inline int blk_throtl_init(struct request_queue *q) { return 0; }
|
||||
static inline int blk_throtl_exit(struct request_queue *q) { return 0; }
|
||||
static inline void throtl_schedule_delayed_work(struct request_queue *q, unsigned long delay) {}
|
||||
static inline void throtl_shutdown_timer_wq(struct request_queue *q) {}
|
||||
#endif /* CONFIG_BLK_DEV_THROTTLING */
|
||||
|
||||
|
|
|
|||
|
|
@ -245,7 +245,6 @@ static inline int blk_cmd_buf_len(struct request *rq)
|
|||
|
||||
extern void blk_dump_cmd(char *buf, struct request *rq);
|
||||
extern void blk_fill_rwbs(char *rwbs, u32 rw, int bytes);
|
||||
extern void blk_fill_rwbs_rq(char *rwbs, struct request *rq);
|
||||
|
||||
#endif /* CONFIG_EVENT_TRACING && CONFIG_BLOCK */
|
||||
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@ struct ceph_msg_pos {
|
|||
#define SOCK_CLOSED 11 /* socket state changed to closed */
|
||||
#define OPENING 13 /* open connection w/ (possibly new) peer */
|
||||
#define DEAD 14 /* dead, about to kfree */
|
||||
#define BACKOFF 15
|
||||
|
||||
/*
|
||||
* A single connection with another host.
|
||||
|
|
@ -160,7 +161,6 @@ struct ceph_connection {
|
|||
struct list_head out_queue;
|
||||
struct list_head out_sent; /* sending or sent but unacked */
|
||||
u64 out_seq; /* last message queued for send */
|
||||
bool out_keepalive_pending;
|
||||
|
||||
u64 in_seq, in_seq_acked; /* last message received, acked */
|
||||
|
||||
|
|
|
|||
|
|
@ -101,8 +101,8 @@ struct ieee_pfc {
|
|||
*/
|
||||
struct dcb_app {
|
||||
__u8 selector;
|
||||
__u32 protocol;
|
||||
__u8 priority;
|
||||
__u16 protocol;
|
||||
};
|
||||
|
||||
struct dcbmsg {
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ static inline void freezer_count(void)
|
|||
}
|
||||
|
||||
/*
|
||||
* Check if the task should be counted as freezeable by the freezer
|
||||
* Check if the task should be counted as freezable by the freezer
|
||||
*/
|
||||
static inline int freezer_should_skip(struct task_struct *p)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -649,6 +649,7 @@ struct address_space {
|
|||
spinlock_t private_lock; /* for use by the address_space */
|
||||
struct list_head private_list; /* ditto */
|
||||
struct address_space *assoc_mapping; /* ditto */
|
||||
struct mutex unmap_mutex; /* to protect unmapping */
|
||||
} __attribute__((aligned(sizeof(long))));
|
||||
/*
|
||||
* On most architectures that alignment is already the case; but
|
||||
|
|
@ -2139,7 +2140,7 @@ extern void check_disk_size_change(struct gendisk *disk,
|
|||
struct block_device *bdev);
|
||||
extern int revalidate_disk(struct gendisk *);
|
||||
extern int check_disk_change(struct block_device *);
|
||||
extern int __invalidate_device(struct block_device *);
|
||||
extern int __invalidate_device(struct block_device *, bool);
|
||||
extern int invalidate_partition(struct gendisk *, int);
|
||||
#endif
|
||||
unsigned long invalidate_mapping_pages(struct address_space *mapping,
|
||||
|
|
@ -2225,6 +2226,7 @@ extern loff_t vfs_llseek(struct file *file, loff_t offset, int origin);
|
|||
|
||||
extern int inode_init_always(struct super_block *, struct inode *);
|
||||
extern void inode_init_once(struct inode *);
|
||||
extern void address_space_init_once(struct address_space *mapping);
|
||||
extern void ihold(struct inode * inode);
|
||||
extern void iput(struct inode *);
|
||||
extern struct inode * igrab(struct inode *);
|
||||
|
|
|
|||
|
|
@ -332,16 +332,19 @@ alloc_pages(gfp_t gfp_mask, unsigned int order)
|
|||
return alloc_pages_current(gfp_mask, order);
|
||||
}
|
||||
extern struct page *alloc_pages_vma(gfp_t gfp_mask, int order,
|
||||
struct vm_area_struct *vma, unsigned long addr);
|
||||
struct vm_area_struct *vma, unsigned long addr,
|
||||
int node);
|
||||
#else
|
||||
#define alloc_pages(gfp_mask, order) \
|
||||
alloc_pages_node(numa_node_id(), gfp_mask, order)
|
||||
#define alloc_pages_vma(gfp_mask, order, vma, addr) \
|
||||
#define alloc_pages_vma(gfp_mask, order, vma, addr, node) \
|
||||
alloc_pages(gfp_mask, order)
|
||||
#endif
|
||||
#define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0)
|
||||
#define alloc_page_vma(gfp_mask, vma, addr) \
|
||||
alloc_pages_vma(gfp_mask, 0, vma, addr)
|
||||
#define alloc_page_vma(gfp_mask, vma, addr) \
|
||||
alloc_pages_vma(gfp_mask, 0, vma, addr, numa_node_id())
|
||||
#define alloc_page_vma_node(gfp_mask, vma, addr, node) \
|
||||
alloc_pages_vma(gfp_mask, 0, vma, addr, node)
|
||||
|
||||
extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order);
|
||||
extern unsigned long get_zeroed_page(gfp_t gfp_mask);
|
||||
|
|
|
|||
|
|
@ -57,7 +57,8 @@ extern pmd_t *page_check_address_pmd(struct page *page,
|
|||
(transparent_hugepage_flags & \
|
||||
(1<<TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG) && \
|
||||
((__vma)->vm_flags & VM_HUGEPAGE))) && \
|
||||
!((__vma)->vm_flags & VM_NOHUGEPAGE))
|
||||
!((__vma)->vm_flags & VM_NOHUGEPAGE) && \
|
||||
!is_vma_temporary_stack(__vma))
|
||||
#define transparent_hugepage_defrag(__vma) \
|
||||
((transparent_hugepage_flags & \
|
||||
(1<<TRANSPARENT_HUGEPAGE_DEFRAG_FLAG)) || \
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/input.h>
|
||||
|
||||
#define MATRIX_MAX_ROWS 16
|
||||
#define MATRIX_MAX_COLS 16
|
||||
#define MATRIX_MAX_ROWS 32
|
||||
#define MATRIX_MAX_COLS 32
|
||||
|
||||
#define KEY(row, col, val) ((((row) & (MATRIX_MAX_ROWS - 1)) << 24) |\
|
||||
(((col) & (MATRIX_MAX_COLS - 1)) << 16) |\
|
||||
|
|
|
|||
|
|
@ -96,6 +96,11 @@ static inline void __list_del(struct list_head * prev, struct list_head * next)
|
|||
* in an undefined state.
|
||||
*/
|
||||
#ifndef CONFIG_DEBUG_LIST
|
||||
static inline void __list_del_entry(struct list_head *entry)
|
||||
{
|
||||
__list_del(entry->prev, entry->next);
|
||||
}
|
||||
|
||||
static inline void list_del(struct list_head *entry)
|
||||
{
|
||||
__list_del(entry->prev, entry->next);
|
||||
|
|
@ -103,6 +108,7 @@ static inline void list_del(struct list_head *entry)
|
|||
entry->prev = LIST_POISON2;
|
||||
}
|
||||
#else
|
||||
extern void __list_del_entry(struct list_head *entry);
|
||||
extern void list_del(struct list_head *entry);
|
||||
#endif
|
||||
|
||||
|
|
@ -135,7 +141,7 @@ static inline void list_replace_init(struct list_head *old,
|
|||
*/
|
||||
static inline void list_del_init(struct list_head *entry)
|
||||
{
|
||||
__list_del(entry->prev, entry->next);
|
||||
__list_del_entry(entry);
|
||||
INIT_LIST_HEAD(entry);
|
||||
}
|
||||
|
||||
|
|
@ -146,7 +152,7 @@ static inline void list_del_init(struct list_head *entry)
|
|||
*/
|
||||
static inline void list_move(struct list_head *list, struct list_head *head)
|
||||
{
|
||||
__list_del(list->prev, list->next);
|
||||
__list_del_entry(list);
|
||||
list_add(list, head);
|
||||
}
|
||||
|
||||
|
|
@ -158,7 +164,7 @@ static inline void list_move(struct list_head *list, struct list_head *head)
|
|||
static inline void list_move_tail(struct list_head *list,
|
||||
struct list_head *head)
|
||||
{
|
||||
__list_del(list->prev, list->next);
|
||||
__list_del_entry(list);
|
||||
list_add_tail(list, head);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ struct wm8994 {
|
|||
u16 irq_masks_cache[WM8994_NUM_IRQ_REGS];
|
||||
|
||||
/* Used over suspend/resume */
|
||||
bool suspended;
|
||||
u16 ldo_regs[WM8994_NUM_LDO_REGS];
|
||||
u16 gpio_regs[WM8994_NUM_GPIO_REGS];
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ struct module_version_attribute {
|
|||
struct module_attribute mattr;
|
||||
const char *module_name;
|
||||
const char *version;
|
||||
};
|
||||
} __attribute__ ((__aligned__(sizeof(void *))));
|
||||
|
||||
struct module_kobject
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2392,6 +2392,9 @@ extern int netdev_notice(const struct net_device *dev, const char *format, ...)
|
|||
extern int netdev_info(const struct net_device *dev, const char *format, ...)
|
||||
__attribute__ ((format (printf, 2, 3)));
|
||||
|
||||
#define MODULE_ALIAS_NETDEV(device) \
|
||||
MODULE_ALIAS("netdev-" device)
|
||||
|
||||
#if defined(DEBUG)
|
||||
#define netdev_dbg(__dev, format, args...) \
|
||||
netdev_printk(KERN_DEBUG, __dev, format, ##args)
|
||||
|
|
|
|||
|
|
@ -68,11 +68,7 @@ struct nfs_client {
|
|||
unsigned char cl_id_uniquifier;
|
||||
u32 cl_cb_ident; /* v4.0 callback identifier */
|
||||
const struct nfs4_minor_version_ops *cl_mvops;
|
||||
#endif /* CONFIG_NFS_V4 */
|
||||
|
||||
#ifdef CONFIG_NFS_V4_1
|
||||
/* clientid returned from EXCHANGE_ID, used by session operations */
|
||||
u64 cl_ex_clid;
|
||||
/* The sequence id to use for the next CREATE_SESSION */
|
||||
u32 cl_seqid;
|
||||
/* The flags used for obtaining the clientid during EXCHANGE_ID */
|
||||
|
|
@ -80,7 +76,7 @@ struct nfs_client {
|
|||
struct nfs4_session *cl_session; /* sharred session */
|
||||
struct list_head cl_layouts;
|
||||
struct pnfs_deviceid_cache *cl_devid_cache; /* pNFS deviceid cache */
|
||||
#endif /* CONFIG_NFS_V4_1 */
|
||||
#endif /* CONFIG_NFS_V4 */
|
||||
|
||||
#ifdef CONFIG_NFS_FSCACHE
|
||||
struct fscache_cookie *fscache; /* client index cache cookie */
|
||||
|
|
@ -185,7 +181,7 @@ struct nfs_server {
|
|||
/* maximum number of slots to use */
|
||||
#define NFS4_MAX_SLOT_TABLE RPC_MAX_SLOT_TABLE
|
||||
|
||||
#if defined(CONFIG_NFS_V4_1)
|
||||
#if defined(CONFIG_NFS_V4)
|
||||
|
||||
/* Sessions */
|
||||
#define SLOT_TABLE_SZ (NFS4_MAX_SLOT_TABLE/(8*sizeof(long)))
|
||||
|
|
@ -225,5 +221,5 @@ struct nfs4_session {
|
|||
struct nfs_client *clp;
|
||||
};
|
||||
|
||||
#endif /* CONFIG_NFS_V4_1 */
|
||||
#endif /* CONFIG_NFS_V4 */
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/printk.h>
|
||||
#include <asm/atomic.h>
|
||||
|
||||
/* Each escaped entry is prefixed by ESCAPE_CODE
|
||||
|
|
@ -186,10 +188,17 @@ int oprofile_add_data(struct op_entry *entry, unsigned long val);
|
|||
int oprofile_add_data64(struct op_entry *entry, u64 val);
|
||||
int oprofile_write_commit(struct op_entry *entry);
|
||||
|
||||
#ifdef CONFIG_PERF_EVENTS
|
||||
#ifdef CONFIG_HW_PERF_EVENTS
|
||||
int __init oprofile_perf_init(struct oprofile_operations *ops);
|
||||
void oprofile_perf_exit(void);
|
||||
char *op_name_from_perf_id(void);
|
||||
#endif /* CONFIG_PERF_EVENTS */
|
||||
#else
|
||||
static inline int __init oprofile_perf_init(struct oprofile_operations *ops)
|
||||
{
|
||||
pr_info("oprofile: hardware counters not available\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
static inline void oprofile_perf_exit(void) { }
|
||||
#endif /* CONFIG_HW_PERF_EVENTS */
|
||||
|
||||
#endif /* OPROFILE_H */
|
||||
|
|
|
|||
|
|
@ -431,6 +431,8 @@ struct dev_pm_info {
|
|||
struct list_head entry;
|
||||
struct completion completion;
|
||||
struct wakeup_source *wakeup;
|
||||
#else
|
||||
unsigned int should_wakeup:1;
|
||||
#endif
|
||||
#ifdef CONFIG_PM_RUNTIME
|
||||
struct timer_list suspend_timer;
|
||||
|
|
|
|||
|
|
@ -109,11 +109,6 @@ static inline bool device_can_wakeup(struct device *dev)
|
|||
return dev->power.can_wakeup;
|
||||
}
|
||||
|
||||
static inline bool device_may_wakeup(struct device *dev)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline struct wakeup_source *wakeup_source_create(const char *name)
|
||||
{
|
||||
return NULL;
|
||||
|
|
@ -134,24 +129,32 @@ static inline void wakeup_source_unregister(struct wakeup_source *ws) {}
|
|||
|
||||
static inline int device_wakeup_enable(struct device *dev)
|
||||
{
|
||||
return -EINVAL;
|
||||
dev->power.should_wakeup = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int device_wakeup_disable(struct device *dev)
|
||||
{
|
||||
dev->power.should_wakeup = false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int device_set_wakeup_enable(struct device *dev, bool enable)
|
||||
{
|
||||
dev->power.should_wakeup = enable;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int device_init_wakeup(struct device *dev, bool val)
|
||||
{
|
||||
dev->power.can_wakeup = val;
|
||||
return val ? -EINVAL : 0;
|
||||
device_set_wakeup_capable(dev, val);
|
||||
device_set_wakeup_enable(dev, val);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static inline int device_set_wakeup_enable(struct device *dev, bool enable)
|
||||
static inline bool device_may_wakeup(struct device *dev)
|
||||
{
|
||||
return -EINVAL;
|
||||
return dev->power.can_wakeup && dev->power.should_wakeup;
|
||||
}
|
||||
|
||||
static inline void __pm_stay_awake(struct wakeup_source *ws) {}
|
||||
|
|
|
|||
|
|
@ -102,11 +102,8 @@
|
|||
|
||||
extern long arch_ptrace(struct task_struct *child, long request,
|
||||
unsigned long addr, unsigned long data);
|
||||
extern int ptrace_traceme(void);
|
||||
extern int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst, int len);
|
||||
extern int ptrace_writedata(struct task_struct *tsk, char __user *src, unsigned long dst, int len);
|
||||
extern int ptrace_attach(struct task_struct *tsk);
|
||||
extern int ptrace_detach(struct task_struct *, unsigned int);
|
||||
extern void ptrace_disable(struct task_struct *);
|
||||
extern int ptrace_check_attach(struct task_struct *task, int kill);
|
||||
extern int ptrace_request(struct task_struct *child, long request,
|
||||
|
|
|
|||
|
|
@ -14,10 +14,12 @@
|
|||
#define LINUX_RIO_REGS_H
|
||||
|
||||
/*
|
||||
* In RapidIO, each device has a 2MB configuration space that is
|
||||
* In RapidIO, each device has a 16MB configuration space that is
|
||||
* accessed via maintenance transactions. Portions of configuration
|
||||
* space are standardized and/or reserved.
|
||||
*/
|
||||
#define RIO_MAINT_SPACE_SZ 0x1000000 /* 16MB of RapidIO mainenance space */
|
||||
|
||||
#define RIO_DEV_ID_CAR 0x00 /* [I] Device Identity CAR */
|
||||
#define RIO_DEV_INFO_CAR 0x04 /* [I] Device Information CAR */
|
||||
#define RIO_ASM_ID_CAR 0x08 /* [I] Assembly Identity CAR */
|
||||
|
|
|
|||
|
|
@ -203,6 +203,18 @@ struct rtc_device
|
|||
struct hrtimer pie_timer; /* sub second exp, so needs hrtimer */
|
||||
int pie_enabled;
|
||||
struct work_struct irqwork;
|
||||
|
||||
|
||||
#ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL
|
||||
struct work_struct uie_task;
|
||||
struct timer_list uie_timer;
|
||||
/* Those fields are protected by rtc->irq_lock */
|
||||
unsigned int oldsecs;
|
||||
unsigned int uie_irq_active:1;
|
||||
unsigned int stop_uie_polling:1;
|
||||
unsigned int uie_task_active:1;
|
||||
unsigned int uie_timer_active:1;
|
||||
#endif
|
||||
};
|
||||
#define to_rtc_device(d) container_of(d, struct rtc_device, dev)
|
||||
|
||||
|
|
@ -235,7 +247,10 @@ extern int rtc_irq_set_freq(struct rtc_device *rtc,
|
|||
struct rtc_task *task, int freq);
|
||||
extern int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int enabled);
|
||||
extern int rtc_alarm_irq_enable(struct rtc_device *rtc, unsigned int enabled);
|
||||
extern int rtc_dev_update_irq_enable_emul(struct rtc_device *rtc,
|
||||
unsigned int enabled);
|
||||
|
||||
void rtc_handle_legacy_irq(struct rtc_device *rtc, int num, int mode);
|
||||
void rtc_aie_update_irq(void *private);
|
||||
void rtc_uie_update_irq(void *private);
|
||||
enum hrtimer_restart rtc_pie_update_irq(struct hrtimer *timer);
|
||||
|
|
|
|||
|
|
@ -1744,7 +1744,7 @@ extern void thread_group_times(struct task_struct *p, cputime_t *ut, cputime_t *
|
|||
#define PF_MCE_EARLY 0x08000000 /* Early kill for mce process policy */
|
||||
#define PF_MEMPOLICY 0x10000000 /* Non-default NUMA mempolicy */
|
||||
#define PF_MUTEX_TESTER 0x20000000 /* Thread belongs to the rt mutex tester */
|
||||
#define PF_FREEZER_SKIP 0x40000000 /* Freezer should not count it as freezeable */
|
||||
#define PF_FREEZER_SKIP 0x40000000 /* Freezer should not count it as freezable */
|
||||
#define PF_FREEZER_NOSIG 0x80000000 /* Freezer won't send signals to it */
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -212,6 +212,7 @@ struct rpc_task *rpc_run_task(const struct rpc_task_setup *);
|
|||
struct rpc_task *rpc_run_bc_task(struct rpc_rqst *req,
|
||||
const struct rpc_call_ops *ops);
|
||||
void rpc_put_task(struct rpc_task *);
|
||||
void rpc_put_task_async(struct rpc_task *);
|
||||
void rpc_exit_task(struct rpc_task *);
|
||||
void rpc_exit(struct rpc_task *, int);
|
||||
void rpc_release_calldata(const struct rpc_call_ops *, void *);
|
||||
|
|
|
|||
|
|
@ -930,6 +930,7 @@ enum
|
|||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/list.h>
|
||||
#include <linux/rcupdate.h>
|
||||
|
||||
/* For the /proc/sys support */
|
||||
struct ctl_table;
|
||||
|
|
@ -1037,10 +1038,15 @@ struct ctl_table_root {
|
|||
struct ctl_table trees. */
|
||||
struct ctl_table_header
|
||||
{
|
||||
struct ctl_table *ctl_table;
|
||||
struct list_head ctl_entry;
|
||||
int used;
|
||||
int count;
|
||||
union {
|
||||
struct {
|
||||
struct ctl_table *ctl_table;
|
||||
struct list_head ctl_entry;
|
||||
int used;
|
||||
int count;
|
||||
};
|
||||
struct rcu_head rcu;
|
||||
};
|
||||
struct completion *unregistering;
|
||||
struct ctl_table *ctl_table_arg;
|
||||
struct ctl_table_root *root;
|
||||
|
|
|
|||
|
|
@ -172,6 +172,14 @@ void thermal_zone_device_update(struct thermal_zone_device *);
|
|||
struct thermal_cooling_device *thermal_cooling_device_register(char *, void *,
|
||||
const struct thermal_cooling_device_ops *);
|
||||
void thermal_cooling_device_unregister(struct thermal_cooling_device *);
|
||||
|
||||
#ifdef CONFIG_NET
|
||||
extern int generate_netlink_event(u32 orig, enum events event);
|
||||
#else
|
||||
static inline int generate_netlink_event(u32 orig, enum events event)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __THERMAL_H__ */
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ static inline unsigned int work_static(struct work_struct *work) { return 0; }
|
|||
enum {
|
||||
WQ_NON_REENTRANT = 1 << 0, /* guarantee non-reentrance */
|
||||
WQ_UNBOUND = 1 << 1, /* not bound to any cpu */
|
||||
WQ_FREEZEABLE = 1 << 2, /* freeze during suspend */
|
||||
WQ_FREEZABLE = 1 << 2, /* freeze during suspend */
|
||||
WQ_MEM_RECLAIM = 1 << 3, /* may be used for memory reclaim */
|
||||
WQ_HIGHPRI = 1 << 4, /* high priority */
|
||||
WQ_CPU_INTENSIVE = 1 << 5, /* cpu instensive workqueue */
|
||||
|
|
@ -318,7 +318,7 @@ __alloc_workqueue_key(const char *name, unsigned int flags, int max_active,
|
|||
/**
|
||||
* alloc_ordered_workqueue - allocate an ordered workqueue
|
||||
* @name: name of the workqueue
|
||||
* @flags: WQ_* flags (only WQ_FREEZEABLE and WQ_MEM_RECLAIM are meaningful)
|
||||
* @flags: WQ_* flags (only WQ_FREEZABLE and WQ_MEM_RECLAIM are meaningful)
|
||||
*
|
||||
* Allocate an ordered workqueue. An ordered workqueue executes at
|
||||
* most one work item at any given time in the queued order. They are
|
||||
|
|
@ -335,8 +335,8 @@ alloc_ordered_workqueue(const char *name, unsigned int flags)
|
|||
|
||||
#define create_workqueue(name) \
|
||||
alloc_workqueue((name), WQ_MEM_RECLAIM, 1)
|
||||
#define create_freezeable_workqueue(name) \
|
||||
alloc_workqueue((name), WQ_FREEZEABLE | WQ_UNBOUND | WQ_MEM_RECLAIM, 1)
|
||||
#define create_freezable_workqueue(name) \
|
||||
alloc_workqueue((name), WQ_FREEZABLE | WQ_UNBOUND | WQ_MEM_RECLAIM, 1)
|
||||
#define create_singlethread_workqueue(name) \
|
||||
alloc_workqueue((name), WQ_UNBOUND | WQ_MEM_RECLAIM, 1)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue