Merge 3.15-rc6 into driver-core-next
We want the kernfs fixes in this branch as well for testing. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
commit
cbfef53360
724 changed files with 8057 additions and 4802 deletions
|
|
@ -473,6 +473,7 @@ struct cftype {
|
|||
};
|
||||
|
||||
extern struct cgroup_root cgrp_dfl_root;
|
||||
extern struct css_set init_css_set;
|
||||
|
||||
static inline bool cgroup_on_dfl(const struct cgroup *cgrp)
|
||||
{
|
||||
|
|
@ -700,6 +701,20 @@ static inline struct cgroup_subsys_state *task_css(struct task_struct *task,
|
|||
return task_css_check(task, subsys_id, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* task_css_is_root - test whether a task belongs to the root css
|
||||
* @task: the target task
|
||||
* @subsys_id: the target subsystem ID
|
||||
*
|
||||
* Test whether @task belongs to the root css on the specified subsystem.
|
||||
* May be invoked in any context.
|
||||
*/
|
||||
static inline bool task_css_is_root(struct task_struct *task, int subsys_id)
|
||||
{
|
||||
return task_css_check(task, subsys_id, true) ==
|
||||
init_css_set.subsys[subsys_id];
|
||||
}
|
||||
|
||||
static inline struct cgroup *task_cgroup(struct task_struct *task,
|
||||
int subsys_id)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -221,6 +221,8 @@ struct dentry_operations {
|
|||
#define DCACHE_SYMLINK_TYPE 0x00300000 /* Symlink */
|
||||
#define DCACHE_FILE_TYPE 0x00400000 /* Other file type */
|
||||
|
||||
#define DCACHE_MAY_FREE 0x00800000
|
||||
|
||||
extern seqlock_t rename_lock;
|
||||
|
||||
static inline int dname_external(const struct dentry *dentry)
|
||||
|
|
|
|||
|
|
@ -535,6 +535,7 @@ static inline int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_a
|
|||
extern int ftrace_arch_read_dyn_info(char *buf, int size);
|
||||
|
||||
extern int skip_trace(unsigned long ip);
|
||||
extern void ftrace_module_init(struct module *mod);
|
||||
|
||||
extern void ftrace_disable_daemon(void);
|
||||
extern void ftrace_enable_daemon(void);
|
||||
|
|
@ -544,6 +545,7 @@ static inline int ftrace_force_update(void) { return 0; }
|
|||
static inline void ftrace_disable_daemon(void) { }
|
||||
static inline void ftrace_enable_daemon(void) { }
|
||||
static inline void ftrace_release_mod(struct module *mod) {}
|
||||
static inline void ftrace_module_init(struct module *mod) {}
|
||||
static inline __init int register_ftrace_command(struct ftrace_func_command *cmd)
|
||||
{
|
||||
return -EINVAL;
|
||||
|
|
|
|||
|
|
@ -412,6 +412,16 @@ static inline spinlock_t *huge_pte_lockptr(struct hstate *h,
|
|||
return &mm->page_table_lock;
|
||||
}
|
||||
|
||||
static inline bool hugepages_supported(void)
|
||||
{
|
||||
/*
|
||||
* Some platform decide whether they support huge pages at boot
|
||||
* time. On these, such as powerpc, HPAGE_SHIFT is set to 0 when
|
||||
* there is no such support
|
||||
*/
|
||||
return HPAGE_SHIFT != 0;
|
||||
}
|
||||
|
||||
#else /* CONFIG_HUGETLB_PAGE */
|
||||
struct hstate {};
|
||||
#define alloc_huge_page_node(h, nid) NULL
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ extern int __irq_set_affinity(unsigned int irq, const struct cpumask *cpumask,
|
|||
/**
|
||||
* irq_set_affinity - Set the irq affinity of a given irq
|
||||
* @irq: Interrupt to set affinity
|
||||
* @mask: cpumask
|
||||
* @cpumask: cpumask
|
||||
*
|
||||
* Fails if cpumask does not contain an online CPU
|
||||
*/
|
||||
|
|
@ -223,7 +223,7 @@ irq_set_affinity(unsigned int irq, const struct cpumask *cpumask)
|
|||
/**
|
||||
* irq_force_affinity - Force the irq affinity of a given irq
|
||||
* @irq: Interrupt to set affinity
|
||||
* @mask: cpumask
|
||||
* @cpumask: cpumask
|
||||
*
|
||||
* Same as irq_set_affinity, but without checking the mask against
|
||||
* online cpus.
|
||||
|
|
@ -272,6 +272,11 @@ static inline int irq_set_affinity(unsigned int irq, const struct cpumask *m)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
static inline int irq_force_affinity(unsigned int irq, const struct cpumask *cpumask)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int irq_can_set_affinity(unsigned int irq)
|
||||
{
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -603,6 +603,8 @@ static inline u32 irq_get_trigger_type(unsigned int irq)
|
|||
return d ? irqd_get_trigger_type(d) : 0;
|
||||
}
|
||||
|
||||
unsigned int arch_dynirq_lower_bound(unsigned int from);
|
||||
|
||||
int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node,
|
||||
struct module *owner);
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,24 @@ enum kernfs_node_flag {
|
|||
|
||||
/* @flags for kernfs_create_root() */
|
||||
enum kernfs_root_flag {
|
||||
KERNFS_ROOT_CREATE_DEACTIVATED = 0x0001,
|
||||
/*
|
||||
* kernfs_nodes are created in the deactivated state and invisible.
|
||||
* They require explicit kernfs_activate() to become visible. This
|
||||
* can be used to make related nodes become visible atomically
|
||||
* after all nodes are created successfully.
|
||||
*/
|
||||
KERNFS_ROOT_CREATE_DEACTIVATED = 0x0001,
|
||||
|
||||
/*
|
||||
* For regular flies, if the opener has CAP_DAC_OVERRIDE, open(2)
|
||||
* succeeds regardless of the RW permissions. sysfs had an extra
|
||||
* layer of enforcement where open(2) fails with -EACCES regardless
|
||||
* of CAP_DAC_OVERRIDE if the permission doesn't have the
|
||||
* respective read or write access at all (none of S_IRUGO or
|
||||
* S_IWUGO) or the respective operation isn't implemented. The
|
||||
* following flag enables that behavior.
|
||||
*/
|
||||
KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK = 0x0002,
|
||||
};
|
||||
|
||||
/* type-specific structures for kernfs_node union members */
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@
|
|||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define CPP_ASMLINKAGE extern "C" __visible
|
||||
#define CPP_ASMLINKAGE extern "C"
|
||||
#else
|
||||
#define CPP_ASMLINKAGE __visible
|
||||
#define CPP_ASMLINKAGE
|
||||
#endif
|
||||
|
||||
#ifndef asmlinkage
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@ struct platform_device;
|
|||
struct rtsx_slot {
|
||||
struct platform_device *p_dev;
|
||||
void (*card_event)(struct platform_device *p_dev);
|
||||
void (*done_transfer)(struct platform_device *p_dev);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -943,12 +943,6 @@ void rtsx_pci_send_cmd_no_wait(struct rtsx_pcr *pcr);
|
|||
int rtsx_pci_send_cmd(struct rtsx_pcr *pcr, int timeout);
|
||||
int rtsx_pci_transfer_data(struct rtsx_pcr *pcr, struct scatterlist *sglist,
|
||||
int num_sg, bool read, int timeout);
|
||||
int rtsx_pci_dma_map_sg(struct rtsx_pcr *pcr, struct scatterlist *sglist,
|
||||
int num_sg, bool read);
|
||||
int rtsx_pci_dma_unmap_sg(struct rtsx_pcr *pcr, struct scatterlist *sglist,
|
||||
int num_sg, bool read);
|
||||
int rtsx_pci_dma_transfer(struct rtsx_pcr *pcr, struct scatterlist *sglist,
|
||||
int sg_count, bool read);
|
||||
int rtsx_pci_read_ppbuf(struct rtsx_pcr *pcr, u8 *buf, int buf_len);
|
||||
int rtsx_pci_write_ppbuf(struct rtsx_pcr *pcr, u8 *buf, int buf_len);
|
||||
int rtsx_pci_card_pull_ctl_enable(struct rtsx_pcr *pcr, int card);
|
||||
|
|
|
|||
|
|
@ -370,6 +370,8 @@ static inline int is_vmalloc_or_module_addr(const void *x)
|
|||
}
|
||||
#endif
|
||||
|
||||
extern void kvfree(const void *addr);
|
||||
|
||||
static inline void compound_lock(struct page *page)
|
||||
{
|
||||
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
||||
|
|
|
|||
|
|
@ -169,4 +169,11 @@ struct netlink_tap {
|
|||
extern int netlink_add_tap(struct netlink_tap *nt);
|
||||
extern int netlink_remove_tap(struct netlink_tap *nt);
|
||||
|
||||
bool __netlink_ns_capable(const struct netlink_skb_parms *nsp,
|
||||
struct user_namespace *ns, int cap);
|
||||
bool netlink_ns_capable(const struct sk_buff *skb,
|
||||
struct user_namespace *ns, int cap);
|
||||
bool netlink_capable(const struct sk_buff *skb, int cap);
|
||||
bool netlink_net_capable(const struct sk_buff *skb, int cap);
|
||||
|
||||
#endif /* __LINUX_NETLINK_H */
|
||||
|
|
|
|||
|
|
@ -349,7 +349,7 @@ int of_device_is_stdout_path(struct device_node *dn);
|
|||
|
||||
#else /* CONFIG_OF */
|
||||
|
||||
static inline const char* of_node_full_name(struct device_node *np)
|
||||
static inline const char* of_node_full_name(const struct device_node *np)
|
||||
{
|
||||
return "<no-node>";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,11 +44,16 @@ extern void of_irq_init(const struct of_device_id *matches);
|
|||
|
||||
#ifdef CONFIG_OF_IRQ
|
||||
extern int of_irq_count(struct device_node *dev);
|
||||
extern int of_irq_get(struct device_node *dev, int index);
|
||||
#else
|
||||
static inline int of_irq_count(struct device_node *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int of_irq_get(struct device_node *dev, int index)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_OF)
|
||||
|
|
|
|||
|
|
@ -101,4 +101,13 @@ struct kmem_cache {
|
|||
struct kmem_cache_node *node[MAX_NUMNODES];
|
||||
};
|
||||
|
||||
#ifdef CONFIG_SYSFS
|
||||
#define SLAB_SUPPORTS_SYSFS
|
||||
void sysfs_slab_remove(struct kmem_cache *);
|
||||
#else
|
||||
static inline void sysfs_slab_remove(struct kmem_cache *s)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _LINUX_SLUB_DEF_H */
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ int sock_diag_check_cookie(void *sk, __u32 *cookie);
|
|||
void sock_diag_save_cookie(void *sk, __u32 *cookie);
|
||||
|
||||
int sock_diag_put_meminfo(struct sock *sk, struct sk_buff *skb, int attr);
|
||||
int sock_diag_put_filterinfo(struct user_namespace *user_ns, struct sock *sk,
|
||||
int sock_diag_put_filterinfo(bool may_report_filterinfo, struct sock *sk,
|
||||
struct sk_buff *skb, int attrtype);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -61,7 +61,6 @@ struct tty_bufhead {
|
|||
struct tty_buffer *head; /* Queue head */
|
||||
struct work_struct work;
|
||||
struct mutex lock;
|
||||
spinlock_t flush_lock;
|
||||
atomic_t priority;
|
||||
struct tty_buffer sentinel;
|
||||
struct llist_head free; /* Free queue head */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue