mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-24 07:29:55 -04:00
Merge branch 'linus' into timers/core
Reason: Get upstream fixes before adding conflicting code. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
@@ -235,6 +235,9 @@ extern void acpi_processor_unregister_performance(struct
|
||||
if a _PPC object exists, rmmod is disallowed then */
|
||||
int acpi_processor_notify_smm(struct module *calling_module);
|
||||
|
||||
/* parsing the _P* objects. */
|
||||
extern int acpi_processor_get_performance_info(struct acpi_processor *pr);
|
||||
|
||||
/* for communication between multiple parts of the processor kernel module */
|
||||
DECLARE_PER_CPU(struct acpi_processor *, processors);
|
||||
extern struct acpi_processor_errata errata;
|
||||
|
||||
@@ -136,12 +136,6 @@ static inline void atomic_dec(atomic_t *v)
|
||||
#define atomic_xchg(ptr, v) (xchg(&(ptr)->counter, (v)))
|
||||
#define atomic_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new)))
|
||||
|
||||
#define cmpxchg_local(ptr, o, n) \
|
||||
((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\
|
||||
(unsigned long)(n), sizeof(*(ptr))))
|
||||
|
||||
#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
|
||||
|
||||
static inline int __atomic_add_unless(atomic_t *v, int a, int u)
|
||||
{
|
||||
int c, old;
|
||||
|
||||
@@ -92,6 +92,16 @@ unsigned long __xchg(unsigned long x, volatile void *ptr, int size)
|
||||
*/
|
||||
#include <asm-generic/cmpxchg-local.h>
|
||||
|
||||
#ifndef cmpxchg_local
|
||||
#define cmpxchg_local(ptr, o, n) \
|
||||
((__typeof__(*(ptr)))__cmpxchg_local_generic((ptr), (unsigned long)(o),\
|
||||
(unsigned long)(n), sizeof(*(ptr))))
|
||||
#endif
|
||||
|
||||
#ifndef cmpxchg64_local
|
||||
#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
|
||||
#endif
|
||||
|
||||
#define cmpxchg(ptr, o, n) cmpxchg_local((ptr), (o), (n))
|
||||
#define cmpxchg64(ptr, o, n) cmpxchg64_local((ptr), (o), (n))
|
||||
|
||||
|
||||
@@ -99,7 +99,12 @@ struct mmu_gather {
|
||||
unsigned int need_flush : 1, /* Did free PTEs */
|
||||
fast_mode : 1; /* No batching */
|
||||
|
||||
unsigned int fullmm;
|
||||
/* we are in the middle of an operation to clear
|
||||
* a full mm and can make some optimizations */
|
||||
unsigned int fullmm : 1,
|
||||
/* we have performed an operation which
|
||||
* requires a complete flush of the tlb */
|
||||
need_flush_all : 1;
|
||||
|
||||
struct mmu_gather_batch *active;
|
||||
struct mmu_gather_batch local;
|
||||
|
||||
@@ -581,7 +581,11 @@
|
||||
{0x1002, 0x9908, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x9909, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x990A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x990F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x990B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x990C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x990D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x990E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x990F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x9910, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x9913, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x9917, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
@@ -592,6 +596,13 @@
|
||||
{0x1002, 0x9992, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x9993, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x9994, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x9995, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x9996, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x9997, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x9998, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x9999, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x999A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x999B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x99A0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x99A2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
{0x1002, 0x99A4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_ARUBA|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
|
||||
|
||||
@@ -954,7 +954,7 @@ static inline int atapi_cdb_len(const u16 *dev_id)
|
||||
}
|
||||
}
|
||||
|
||||
static inline bool atapi_command_packet_set(const u16 *dev_id)
|
||||
static inline int atapi_command_packet_set(const u16 *dev_id)
|
||||
{
|
||||
return (dev_id[ATA_ID_CONFIG] >> 8) & 0x1f;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
|
||||
struct blk_trace {
|
||||
int trace_state;
|
||||
bool rq_based;
|
||||
struct rchan *rchan;
|
||||
unsigned long __percpu *sequence;
|
||||
unsigned char __percpu *msg_data;
|
||||
|
||||
@@ -35,6 +35,7 @@ struct cpu_vfs_cap_data {
|
||||
#define _KERNEL_CAP_T_SIZE (sizeof(kernel_cap_t))
|
||||
|
||||
|
||||
struct file;
|
||||
struct inode;
|
||||
struct dentry;
|
||||
struct user_namespace;
|
||||
@@ -211,6 +212,7 @@ extern bool capable(int cap);
|
||||
extern bool ns_capable(struct user_namespace *ns, int cap);
|
||||
extern bool nsown_capable(int cap);
|
||||
extern bool inode_capable(const struct inode *inode, int cap);
|
||||
extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap);
|
||||
|
||||
/* audit system wants to get cap info from files as well */
|
||||
extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps);
|
||||
|
||||
@@ -141,11 +141,11 @@ typedef struct {
|
||||
} compat_sigset_t;
|
||||
|
||||
struct compat_sigaction {
|
||||
#ifndef __ARCH_HAS_ODD_SIGACTION
|
||||
#ifndef __ARCH_HAS_IRIX_SIGACTION
|
||||
compat_uptr_t sa_handler;
|
||||
compat_ulong_t sa_flags;
|
||||
#else
|
||||
compat_ulong_t sa_flags;
|
||||
compat_uint_t sa_flags;
|
||||
compat_uptr_t sa_handler;
|
||||
#endif
|
||||
#ifdef __ARCH_HAS_SA_RESTORER
|
||||
|
||||
@@ -51,7 +51,7 @@ struct task_struct;
|
||||
extern void debug_show_all_locks(void);
|
||||
extern void debug_show_held_locks(struct task_struct *task);
|
||||
extern void debug_check_no_locks_freed(const void *from, unsigned long len);
|
||||
extern void debug_check_no_locks_held(void);
|
||||
extern void debug_check_no_locks_held(struct task_struct *task);
|
||||
#else
|
||||
static inline void debug_show_all_locks(void)
|
||||
{
|
||||
@@ -67,7 +67,7 @@ debug_check_no_locks_freed(const void *from, unsigned long len)
|
||||
}
|
||||
|
||||
static inline void
|
||||
debug_check_no_locks_held(void)
|
||||
debug_check_no_locks_held(struct task_struct *task)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -213,7 +213,7 @@ struct devfreq_simple_ondemand_data {
|
||||
#endif
|
||||
|
||||
#else /* !CONFIG_PM_DEVFREQ */
|
||||
static struct devfreq *devfreq_add_device(struct device *dev,
|
||||
static inline struct devfreq *devfreq_add_device(struct device *dev,
|
||||
struct devfreq_dev_profile *profile,
|
||||
const char *governor_name,
|
||||
void *data)
|
||||
@@ -221,34 +221,34 @@ static struct devfreq *devfreq_add_device(struct device *dev,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int devfreq_remove_device(struct devfreq *devfreq)
|
||||
static inline int devfreq_remove_device(struct devfreq *devfreq)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int devfreq_suspend_device(struct devfreq *devfreq)
|
||||
static inline int devfreq_suspend_device(struct devfreq *devfreq)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int devfreq_resume_device(struct devfreq *devfreq)
|
||||
static inline int devfreq_resume_device(struct devfreq *devfreq)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct opp *devfreq_recommended_opp(struct device *dev,
|
||||
static inline struct opp *devfreq_recommended_opp(struct device *dev,
|
||||
unsigned long *freq, u32 flags)
|
||||
{
|
||||
return -EINVAL;
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
|
||||
static int devfreq_register_opp_notifier(struct device *dev,
|
||||
static inline int devfreq_register_opp_notifier(struct device *dev,
|
||||
struct devfreq *devfreq)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static int devfreq_unregister_opp_notifier(struct device *dev,
|
||||
static inline int devfreq_unregister_opp_notifier(struct device *dev,
|
||||
struct devfreq *devfreq)
|
||||
{
|
||||
return -EINVAL;
|
||||
|
||||
@@ -561,7 +561,6 @@ struct csrow_info {
|
||||
|
||||
u32 ue_count; /* Uncorrectable Errors for this csrow */
|
||||
u32 ce_count; /* Correctable Errors for this csrow */
|
||||
u32 nr_pages; /* combined pages count of all channels */
|
||||
|
||||
struct mem_ctl_info *mci; /* the parent */
|
||||
|
||||
@@ -676,11 +675,11 @@ struct mem_ctl_info {
|
||||
* sees memory sticks ("dimms"), and the ones that sees memory ranks.
|
||||
* All old memory controllers enumerate memories per rank, but most
|
||||
* of the recent drivers enumerate memories per DIMM, instead.
|
||||
* When the memory controller is per rank, mem_is_per_rank is true.
|
||||
* When the memory controller is per rank, csbased is true.
|
||||
*/
|
||||
unsigned n_layers;
|
||||
struct edac_mc_layer *layers;
|
||||
bool mem_is_per_rank;
|
||||
bool csbased;
|
||||
|
||||
/*
|
||||
* DIMM info. Will eventually remove the entire csrows_info some day
|
||||
@@ -741,8 +740,6 @@ struct mem_ctl_info {
|
||||
u32 fake_inject_ue;
|
||||
u16 fake_inject_count;
|
||||
#endif
|
||||
__u8 csbased : 1, /* csrow-based memory controller */
|
||||
__resv : 7;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -333,6 +333,7 @@ typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **capsules,
|
||||
unsigned long count,
|
||||
u64 *max_size,
|
||||
int *reset_type);
|
||||
typedef efi_status_t efi_query_variable_store_t(u32 attributes, unsigned long size);
|
||||
|
||||
/*
|
||||
* EFI Configuration Table and GUID definitions
|
||||
@@ -575,9 +576,15 @@ extern void efi_enter_virtual_mode (void); /* switch EFI to virtual mode, if pos
|
||||
#ifdef CONFIG_X86
|
||||
extern void efi_late_init(void);
|
||||
extern void efi_free_boot_services(void);
|
||||
extern efi_status_t efi_query_variable_store(u32 attributes, unsigned long size);
|
||||
#else
|
||||
static inline void efi_late_init(void) {}
|
||||
static inline void efi_free_boot_services(void) {}
|
||||
|
||||
static inline efi_status_t efi_query_variable_store(u32 attributes, unsigned long size)
|
||||
{
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
extern void __iomem *efi_lookup_mapped_addr(u64 phys_addr);
|
||||
extern u64 efi_get_iobase (void);
|
||||
@@ -731,7 +738,7 @@ struct efivar_operations {
|
||||
efi_get_variable_t *get_variable;
|
||||
efi_get_next_variable_t *get_next_variable;
|
||||
efi_set_variable_t *set_variable;
|
||||
efi_query_variable_info_t *query_variable_info;
|
||||
efi_query_variable_store_t *query_variable_store;
|
||||
};
|
||||
|
||||
struct efivars {
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#ifndef FREEZER_H_INCLUDED
|
||||
#define FREEZER_H_INCLUDED
|
||||
|
||||
#include <linux/debug_locks.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/wait.h>
|
||||
#include <linux/atomic.h>
|
||||
@@ -49,8 +48,6 @@ extern void thaw_kernel_threads(void);
|
||||
|
||||
static inline bool try_to_freeze(void)
|
||||
{
|
||||
if (!(current->flags & PF_NOFREEZE))
|
||||
debug_check_no_locks_held();
|
||||
might_sleep();
|
||||
if (likely(!freezing(current)))
|
||||
return false;
|
||||
|
||||
@@ -50,4 +50,6 @@ static inline void get_fs_root_and_pwd(struct fs_struct *fs, struct path *root,
|
||||
spin_unlock(&fs->lock);
|
||||
}
|
||||
|
||||
extern bool current_chrooted(void);
|
||||
|
||||
#endif /* _LINUX_FS_STRUCT_H */
|
||||
|
||||
@@ -89,6 +89,7 @@ typedef void (*ftrace_func_t)(unsigned long ip, unsigned long parent_ip,
|
||||
* that the call back has its own recursion protection. If it does
|
||||
* not set this, then the ftrace infrastructure will add recursion
|
||||
* protection for the caller.
|
||||
* STUB - The ftrace_ops is just a place holder.
|
||||
*/
|
||||
enum {
|
||||
FTRACE_OPS_FL_ENABLED = 1 << 0,
|
||||
@@ -98,6 +99,7 @@ enum {
|
||||
FTRACE_OPS_FL_SAVE_REGS = 1 << 4,
|
||||
FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 1 << 5,
|
||||
FTRACE_OPS_FL_RECURSION_SAFE = 1 << 6,
|
||||
FTRACE_OPS_FL_STUB = 1 << 7,
|
||||
};
|
||||
|
||||
struct ftrace_ops {
|
||||
@@ -394,7 +396,6 @@ ssize_t ftrace_filter_write(struct file *file, const char __user *ubuf,
|
||||
size_t cnt, loff_t *ppos);
|
||||
ssize_t ftrace_notrace_write(struct file *file, const char __user *ubuf,
|
||||
size_t cnt, loff_t *ppos);
|
||||
loff_t ftrace_regex_lseek(struct file *file, loff_t offset, int whence);
|
||||
int ftrace_regex_release(struct inode *inode, struct file *file);
|
||||
|
||||
void __init
|
||||
@@ -567,6 +568,8 @@ static inline int
|
||||
ftrace_regex_release(struct inode *inode, struct file *file) { return -ENODEV; }
|
||||
#endif /* CONFIG_DYNAMIC_FTRACE */
|
||||
|
||||
loff_t ftrace_filter_lseek(struct file *file, loff_t offset, int whence);
|
||||
|
||||
/* totally disable ftrace - can not re-enable after this */
|
||||
void ftrace_kill(void);
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
|
||||
#include <asm/types.h>
|
||||
#include <linux/compiler.h>
|
||||
|
||||
/* 2^31 + 2^29 - 2^25 + 2^22 - 2^19 - 2^16 + 1 */
|
||||
#define GOLDEN_RATIO_PRIME_32 0x9e370001UL
|
||||
@@ -31,7 +32,7 @@
|
||||
#error Wordsize not 32 or 64
|
||||
#endif
|
||||
|
||||
static inline u64 hash_64(u64 val, unsigned int bits)
|
||||
static __always_inline u64 hash_64(u64 val, unsigned int bits)
|
||||
{
|
||||
u64 hash = val;
|
||||
|
||||
|
||||
@@ -73,8 +73,6 @@ struct idr {
|
||||
*/
|
||||
|
||||
void *idr_find_slowpath(struct idr *idp, int id);
|
||||
int idr_pre_get(struct idr *idp, gfp_t gfp_mask);
|
||||
int idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id);
|
||||
void idr_preload(gfp_t gfp_mask);
|
||||
int idr_alloc(struct idr *idp, void *ptr, int start, int end, gfp_t gfp_mask);
|
||||
int idr_for_each(struct idr *idp,
|
||||
@@ -99,7 +97,7 @@ static inline void idr_preload_end(void)
|
||||
|
||||
/**
|
||||
* idr_find - return pointer for given id
|
||||
* @idp: idr handle
|
||||
* @idr: idr handle
|
||||
* @id: lookup key
|
||||
*
|
||||
* Return the pointer given the id it has been registered with. A %NULL
|
||||
@@ -119,19 +117,6 @@ static inline void *idr_find(struct idr *idr, int id)
|
||||
return idr_find_slowpath(idr, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* idr_get_new - allocate new idr entry
|
||||
* @idp: idr handle
|
||||
* @ptr: pointer you want associated with the id
|
||||
* @id: pointer to the allocated handle
|
||||
*
|
||||
* Simple wrapper around idr_get_new_above() w/ @starting_id of zero.
|
||||
*/
|
||||
static inline int idr_get_new(struct idr *idp, void *ptr, int *id)
|
||||
{
|
||||
return idr_get_new_above(idp, ptr, 0, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* idr_for_each_entry - iterate over an idr's elements of a given type
|
||||
* @idp: idr handle
|
||||
@@ -143,7 +128,56 @@ static inline int idr_get_new(struct idr *idp, void *ptr, int *id)
|
||||
entry != NULL; \
|
||||
++id, entry = (typeof(entry))idr_get_next((idp), &(id)))
|
||||
|
||||
void __idr_remove_all(struct idr *idp); /* don't use */
|
||||
/*
|
||||
* Don't use the following functions. These exist only to suppress
|
||||
* deprecated warnings on EXPORT_SYMBOL()s.
|
||||
*/
|
||||
int __idr_pre_get(struct idr *idp, gfp_t gfp_mask);
|
||||
int __idr_get_new_above(struct idr *idp, void *ptr, int starting_id, int *id);
|
||||
void __idr_remove_all(struct idr *idp);
|
||||
|
||||
/**
|
||||
* idr_pre_get - reserve resources for idr allocation
|
||||
* @idp: idr handle
|
||||
* @gfp_mask: memory allocation flags
|
||||
*
|
||||
* Part of old alloc interface. This is going away. Use
|
||||
* idr_preload[_end]() and idr_alloc() instead.
|
||||
*/
|
||||
static inline int __deprecated idr_pre_get(struct idr *idp, gfp_t gfp_mask)
|
||||
{
|
||||
return __idr_pre_get(idp, gfp_mask);
|
||||
}
|
||||
|
||||
/**
|
||||
* idr_get_new_above - allocate new idr entry above or equal to a start id
|
||||
* @idp: idr handle
|
||||
* @ptr: pointer you want associated with the id
|
||||
* @starting_id: id to start search at
|
||||
* @id: pointer to the allocated handle
|
||||
*
|
||||
* Part of old alloc interface. This is going away. Use
|
||||
* idr_preload[_end]() and idr_alloc() instead.
|
||||
*/
|
||||
static inline int __deprecated idr_get_new_above(struct idr *idp, void *ptr,
|
||||
int starting_id, int *id)
|
||||
{
|
||||
return __idr_get_new_above(idp, ptr, starting_id, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* idr_get_new - allocate new idr entry
|
||||
* @idp: idr handle
|
||||
* @ptr: pointer you want associated with the id
|
||||
* @id: pointer to the allocated handle
|
||||
*
|
||||
* Part of old alloc interface. This is going away. Use
|
||||
* idr_preload[_end]() and idr_alloc() instead.
|
||||
*/
|
||||
static inline int __deprecated idr_get_new(struct idr *idp, void *ptr, int *id)
|
||||
{
|
||||
return __idr_get_new_above(idp, ptr, 0, id);
|
||||
}
|
||||
|
||||
/**
|
||||
* idr_remove_all - remove all ids from the given idr tree
|
||||
|
||||
@@ -227,14 +227,17 @@ struct st_sensor_data {
|
||||
};
|
||||
|
||||
#ifdef CONFIG_IIO_BUFFER
|
||||
irqreturn_t st_sensors_trigger_handler(int irq, void *p);
|
||||
|
||||
int st_sensors_get_buffer_element(struct iio_dev *indio_dev, u8 *buf);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_IIO_TRIGGER
|
||||
int st_sensors_allocate_trigger(struct iio_dev *indio_dev,
|
||||
const struct iio_trigger_ops *trigger_ops);
|
||||
|
||||
void st_sensors_deallocate_trigger(struct iio_dev *indio_dev);
|
||||
|
||||
irqreturn_t st_sensors_trigger_handler(int irq, void *p);
|
||||
|
||||
int st_sensors_get_buffer_element(struct iio_dev *indio_dev, u8 *buf);
|
||||
#else
|
||||
static inline int st_sensors_allocate_trigger(struct iio_dev *indio_dev,
|
||||
const struct iio_trigger_ops *trigger_ops)
|
||||
|
||||
@@ -37,7 +37,7 @@ void irq_work_sync(struct irq_work *work);
|
||||
#ifdef CONFIG_IRQ_WORK
|
||||
bool irq_work_needs_cpu(void);
|
||||
#else
|
||||
static bool irq_work_needs_cpu(void) { return false; }
|
||||
static inline bool irq_work_needs_cpu(void) { return false; }
|
||||
#endif
|
||||
|
||||
#endif /* _LINUX_IRQ_WORK_H */
|
||||
|
||||
@@ -390,7 +390,6 @@ extern struct pid *session_of_pgrp(struct pid *pgrp);
|
||||
unsigned long int_sqrt(unsigned long);
|
||||
|
||||
extern void bust_spinlocks(int yes);
|
||||
extern void wake_up_klogd(void);
|
||||
extern int oops_in_progress; /* If set, an oops, panic(), BUG() or die() is in progress */
|
||||
extern int panic_timeout;
|
||||
extern int panic_on_oops;
|
||||
|
||||
@@ -200,6 +200,8 @@ extern size_t vmcoreinfo_max_size;
|
||||
|
||||
int __init parse_crashkernel(char *cmdline, unsigned long long system_ram,
|
||||
unsigned long long *crash_size, unsigned long long *crash_base);
|
||||
int parse_crashkernel_high(char *cmdline, unsigned long long system_ram,
|
||||
unsigned long long *crash_size, unsigned long long *crash_base);
|
||||
int parse_crashkernel_low(char *cmdline, unsigned long long system_ram,
|
||||
unsigned long long *crash_size, unsigned long long *crash_base);
|
||||
int crash_shrink_memory(unsigned long new_size);
|
||||
|
||||
@@ -518,7 +518,7 @@ int kvm_write_guest(struct kvm *kvm, gpa_t gpa, const void *data,
|
||||
int kvm_write_guest_cached(struct kvm *kvm, struct gfn_to_hva_cache *ghc,
|
||||
void *data, unsigned long len);
|
||||
int kvm_gfn_to_hva_cache_init(struct kvm *kvm, struct gfn_to_hva_cache *ghc,
|
||||
gpa_t gpa);
|
||||
gpa_t gpa, unsigned long len);
|
||||
int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len);
|
||||
int kvm_clear_guest(struct kvm *kvm, gpa_t gpa, unsigned long len);
|
||||
struct kvm_memory_slot *gfn_to_memslot(struct kvm *kvm, gfn_t gfn);
|
||||
|
||||
@@ -71,6 +71,7 @@ struct gfn_to_hva_cache {
|
||||
u64 generation;
|
||||
gpa_t gpa;
|
||||
unsigned long hva;
|
||||
unsigned long len;
|
||||
struct kvm_memory_slot *memslot;
|
||||
};
|
||||
|
||||
|
||||
@@ -398,6 +398,7 @@ enum {
|
||||
ATA_HORKAGE_NOSETXFER = (1 << 14), /* skip SETXFER, SATA only */
|
||||
ATA_HORKAGE_BROKEN_FPDMA_AA = (1 << 15), /* skip AA */
|
||||
ATA_HORKAGE_DUMP_ID = (1 << 16), /* dump IDENTIFY data */
|
||||
ATA_HORKAGE_MAX_SEC_LBA48 = (1 << 17), /* Set max sects to 65535 */
|
||||
|
||||
/* DMA mask for user DMA control: User visible values; DO NOT
|
||||
renumber */
|
||||
|
||||
@@ -667,7 +667,9 @@ static inline void hlist_move_list(struct hlist_head *old,
|
||||
pos = n)
|
||||
|
||||
#define hlist_entry_safe(ptr, type, member) \
|
||||
(ptr) ? hlist_entry(ptr, type, member) : NULL
|
||||
({ typeof(ptr) ____ptr = (ptr); \
|
||||
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
|
||||
})
|
||||
|
||||
/**
|
||||
* hlist_for_each_entry - iterate over list of given type
|
||||
|
||||
@@ -106,6 +106,29 @@ enum max77693_muic_reg {
|
||||
MAX77693_MUIC_REG_END,
|
||||
};
|
||||
|
||||
/* MAX77693 INTMASK1~2 Register */
|
||||
#define INTMASK1_ADC1K_SHIFT 3
|
||||
#define INTMASK1_ADCERR_SHIFT 2
|
||||
#define INTMASK1_ADCLOW_SHIFT 1
|
||||
#define INTMASK1_ADC_SHIFT 0
|
||||
#define INTMASK1_ADC1K_MASK (1 << INTMASK1_ADC1K_SHIFT)
|
||||
#define INTMASK1_ADCERR_MASK (1 << INTMASK1_ADCERR_SHIFT)
|
||||
#define INTMASK1_ADCLOW_MASK (1 << INTMASK1_ADCLOW_SHIFT)
|
||||
#define INTMASK1_ADC_MASK (1 << INTMASK1_ADC_SHIFT)
|
||||
|
||||
#define INTMASK2_VIDRM_SHIFT 5
|
||||
#define INTMASK2_VBVOLT_SHIFT 4
|
||||
#define INTMASK2_DXOVP_SHIFT 3
|
||||
#define INTMASK2_DCDTMR_SHIFT 2
|
||||
#define INTMASK2_CHGDETRUN_SHIFT 1
|
||||
#define INTMASK2_CHGTYP_SHIFT 0
|
||||
#define INTMASK2_VIDRM_MASK (1 << INTMASK2_VIDRM_SHIFT)
|
||||
#define INTMASK2_VBVOLT_MASK (1 << INTMASK2_VBVOLT_SHIFT)
|
||||
#define INTMASK2_DXOVP_MASK (1 << INTMASK2_DXOVP_SHIFT)
|
||||
#define INTMASK2_DCDTMR_MASK (1 << INTMASK2_DCDTMR_SHIFT)
|
||||
#define INTMASK2_CHGDETRUN_MASK (1 << INTMASK2_CHGDETRUN_SHIFT)
|
||||
#define INTMASK2_CHGTYP_MASK (1 << INTMASK2_CHGTYP_SHIFT)
|
||||
|
||||
/* MAX77693 MUIC - STATUS1~3 Register */
|
||||
#define STATUS1_ADC_SHIFT (0)
|
||||
#define STATUS1_ADCLOW_SHIFT (5)
|
||||
|
||||
@@ -221,6 +221,7 @@ struct palmas_clk_platform_data {
|
||||
};
|
||||
|
||||
struct palmas_platform_data {
|
||||
int irq_flags;
|
||||
int gpio_base;
|
||||
|
||||
/* bit value to be loaded to the POWER_CTRL register */
|
||||
|
||||
@@ -323,5 +323,6 @@ int tps65912_device_init(struct tps65912 *tps65912);
|
||||
void tps65912_device_exit(struct tps65912 *tps65912);
|
||||
int tps65912_irq_init(struct tps65912 *tps65912, int irq,
|
||||
struct tps65912_platform_data *pdata);
|
||||
int tps65912_irq_exit(struct tps65912 *tps65912);
|
||||
|
||||
#endif /* __LINUX_MFD_TPS65912_H */
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
#ifndef __MFD_WM831X_AUXADC_H__
|
||||
#define __MFD_WM831X_AUXADC_H__
|
||||
|
||||
struct wm831x;
|
||||
|
||||
/*
|
||||
* R16429 (0x402D) - AuxADC Data
|
||||
*/
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/mfd/wm831x/auxadc.h>
|
||||
|
||||
/*
|
||||
* Register values.
|
||||
@@ -355,7 +356,6 @@ enum wm831x_parent {
|
||||
};
|
||||
|
||||
struct wm831x;
|
||||
enum wm831x_auxadc;
|
||||
|
||||
typedef int (*wm831x_auxadc_read_fn)(struct wm831x *wm831x,
|
||||
enum wm831x_auxadc input);
|
||||
|
||||
@@ -87,7 +87,6 @@ extern unsigned int kobjsize(const void *objp);
|
||||
#define VM_PFNMAP 0x00000400 /* Page-ranges managed without "struct page", just pure PFN */
|
||||
#define VM_DENYWRITE 0x00000800 /* ETXTBSY on write attempts.. */
|
||||
|
||||
#define VM_POPULATE 0x00001000
|
||||
#define VM_LOCKED 0x00002000
|
||||
#define VM_IO 0x00004000 /* Memory mapped I/O or similar */
|
||||
|
||||
@@ -1612,6 +1611,8 @@ int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,
|
||||
unsigned long pfn);
|
||||
int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
|
||||
unsigned long pfn);
|
||||
int vm_iomap_memory(struct vm_area_struct *vma, phys_addr_t start, unsigned long len);
|
||||
|
||||
|
||||
struct page *follow_page_mask(struct vm_area_struct *vma,
|
||||
unsigned long address, unsigned int foll_flags,
|
||||
|
||||
@@ -79,8 +79,6 @@ calc_vm_flag_bits(unsigned long flags)
|
||||
{
|
||||
return _calc_vm_trans(flags, MAP_GROWSDOWN, VM_GROWSDOWN ) |
|
||||
_calc_vm_trans(flags, MAP_DENYWRITE, VM_DENYWRITE ) |
|
||||
((flags & MAP_LOCKED) ? (VM_LOCKED | VM_POPULATE) : 0) |
|
||||
(((flags & (MAP_POPULATE | MAP_NONBLOCK)) == MAP_POPULATE) ?
|
||||
VM_POPULATE : 0);
|
||||
_calc_vm_trans(flags, MAP_LOCKED, VM_LOCKED );
|
||||
}
|
||||
#endif /* _LINUX_MMAN_H */
|
||||
|
||||
@@ -527,7 +527,7 @@ static inline int zone_is_oom_locked(const struct zone *zone)
|
||||
return test_bit(ZONE_OOM_LOCKED, &zone->flags);
|
||||
}
|
||||
|
||||
static inline unsigned zone_end_pfn(const struct zone *zone)
|
||||
static inline unsigned long zone_end_pfn(const struct zone *zone)
|
||||
{
|
||||
return zone->zone_start_pfn + zone->spanned_pages;
|
||||
}
|
||||
|
||||
@@ -47,6 +47,8 @@ struct mnt_namespace;
|
||||
|
||||
#define MNT_INTERNAL 0x4000
|
||||
|
||||
#define MNT_LOCK_READONLY 0x400000
|
||||
|
||||
struct vfsmount {
|
||||
struct dentry *mnt_root; /* root of the mounted tree */
|
||||
struct super_block *mnt_sb; /* pointer to superblock */
|
||||
|
||||
@@ -187,6 +187,13 @@ typedef enum {
|
||||
* This happens with the Renesas AG-AND chips, possibly others.
|
||||
*/
|
||||
#define BBT_AUTO_REFRESH 0x00000080
|
||||
/*
|
||||
* Chip requires ready check on read (for auto-incremented sequential read).
|
||||
* True only for small page devices; large page devices do not support
|
||||
* autoincrement.
|
||||
*/
|
||||
#define NAND_NEED_READRDY 0x00000100
|
||||
|
||||
/* Chip does not allow subpage writes */
|
||||
#define NAND_NO_SUBPAGE_WRITE 0x00000200
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
#define STMLCDIF_18BIT 2 /** pixel data bus to the display is of 18 bit width */
|
||||
#define STMLCDIF_24BIT 3 /** pixel data bus to the display is of 24 bit width */
|
||||
|
||||
#define FB_SYNC_DATA_ENABLE_HIGH_ACT (1 << 6)
|
||||
#define FB_SYNC_DOTCLK_FAILING_ACT (1 << 7) /* failing/negtive edge sampling */
|
||||
#define MXSFB_SYNC_DATA_ENABLE_HIGH_ACT (1 << 6)
|
||||
#define MXSFB_SYNC_DOTCLK_FAILING_ACT (1 << 7) /* failing/negtive edge sampling */
|
||||
|
||||
struct mxsfb_platform_data {
|
||||
struct fb_videomode *mode_list;
|
||||
@@ -44,6 +44,9 @@ struct mxsfb_platform_data {
|
||||
* allocated. If specified,fb_size must also be specified.
|
||||
* fb_phys must be unused by Linux.
|
||||
*/
|
||||
u32 sync; /* sync mask, contains MXSFB specifics not
|
||||
* carried in fb_info->var.sync
|
||||
*/
|
||||
};
|
||||
|
||||
#endif /* __LINUX_MXSFB_H */
|
||||
|
||||
@@ -210,9 +210,9 @@ struct netdev_hw_addr {
|
||||
#define NETDEV_HW_ADDR_T_SLAVE 3
|
||||
#define NETDEV_HW_ADDR_T_UNICAST 4
|
||||
#define NETDEV_HW_ADDR_T_MULTICAST 5
|
||||
bool synced;
|
||||
bool global_use;
|
||||
int refcount;
|
||||
int synced;
|
||||
struct rcu_head rcu_head;
|
||||
};
|
||||
|
||||
@@ -895,7 +895,7 @@ struct netdev_fcoe_hbainfo {
|
||||
*
|
||||
* int (*ndo_bridge_setlink)(struct net_device *dev, struct nlmsghdr *nlh)
|
||||
* int (*ndo_bridge_getlink)(struct sk_buff *skb, u32 pid, u32 seq,
|
||||
* struct net_device *dev)
|
||||
* struct net_device *dev, u32 filter_mask)
|
||||
*
|
||||
* int (*ndo_change_carrier)(struct net_device *dev, bool new_carrier);
|
||||
* Called to change device carrier. Soft-devices (like dummy, team, etc)
|
||||
|
||||
@@ -291,6 +291,7 @@ ip_set_hash_destroy(struct ip_set *set)
|
||||
#define type_pf_data_tlist TOKEN(TYPE, PF, _data_tlist)
|
||||
#define type_pf_data_next TOKEN(TYPE, PF, _data_next)
|
||||
#define type_pf_data_flags TOKEN(TYPE, PF, _data_flags)
|
||||
#define type_pf_data_reset_flags TOKEN(TYPE, PF, _data_reset_flags)
|
||||
#ifdef IP_SET_HASH_WITH_NETS
|
||||
#define type_pf_data_match TOKEN(TYPE, PF, _data_match)
|
||||
#else
|
||||
@@ -385,9 +386,9 @@ type_pf_resize(struct ip_set *set, bool retried)
|
||||
struct ip_set_hash *h = set->data;
|
||||
struct htable *t, *orig = h->table;
|
||||
u8 htable_bits = orig->htable_bits;
|
||||
const struct type_pf_elem *data;
|
||||
struct type_pf_elem *data;
|
||||
struct hbucket *n, *m;
|
||||
u32 i, j;
|
||||
u32 i, j, flags = 0;
|
||||
int ret;
|
||||
|
||||
retry:
|
||||
@@ -412,9 +413,16 @@ type_pf_resize(struct ip_set *set, bool retried)
|
||||
n = hbucket(orig, i);
|
||||
for (j = 0; j < n->pos; j++) {
|
||||
data = ahash_data(n, j);
|
||||
#ifdef IP_SET_HASH_WITH_NETS
|
||||
flags = 0;
|
||||
type_pf_data_reset_flags(data, &flags);
|
||||
#endif
|
||||
m = hbucket(t, HKEY(data, h->initval, htable_bits));
|
||||
ret = type_pf_elem_add(m, data, AHASH_MAX(h), 0);
|
||||
ret = type_pf_elem_add(m, data, AHASH_MAX(h), flags);
|
||||
if (ret < 0) {
|
||||
#ifdef IP_SET_HASH_WITH_NETS
|
||||
type_pf_data_flags(data, flags);
|
||||
#endif
|
||||
read_unlock_bh(&set->lock);
|
||||
ahash_destroy(t);
|
||||
if (ret == -EAGAIN)
|
||||
@@ -836,9 +844,9 @@ type_pf_tresize(struct ip_set *set, bool retried)
|
||||
struct ip_set_hash *h = set->data;
|
||||
struct htable *t, *orig = h->table;
|
||||
u8 htable_bits = orig->htable_bits;
|
||||
const struct type_pf_elem *data;
|
||||
struct type_pf_elem *data;
|
||||
struct hbucket *n, *m;
|
||||
u32 i, j;
|
||||
u32 i, j, flags = 0;
|
||||
int ret;
|
||||
|
||||
/* Try to cleanup once */
|
||||
@@ -873,10 +881,17 @@ type_pf_tresize(struct ip_set *set, bool retried)
|
||||
n = hbucket(orig, i);
|
||||
for (j = 0; j < n->pos; j++) {
|
||||
data = ahash_tdata(n, j);
|
||||
#ifdef IP_SET_HASH_WITH_NETS
|
||||
flags = 0;
|
||||
type_pf_data_reset_flags(data, &flags);
|
||||
#endif
|
||||
m = hbucket(t, HKEY(data, h->initval, htable_bits));
|
||||
ret = type_pf_elem_tadd(m, data, AHASH_MAX(h), 0,
|
||||
ip_set_timeout_get(type_pf_data_timeout(data)));
|
||||
ret = type_pf_elem_tadd(m, data, AHASH_MAX(h), flags,
|
||||
ip_set_timeout_get(type_pf_data_timeout(data)));
|
||||
if (ret < 0) {
|
||||
#ifdef IP_SET_HASH_WITH_NETS
|
||||
type_pf_data_flags(data, flags);
|
||||
#endif
|
||||
read_unlock_bh(&set->lock);
|
||||
ahash_destroy(t);
|
||||
if (ret == -EAGAIN)
|
||||
@@ -1187,6 +1202,7 @@ type_pf_gc_init(struct ip_set *set)
|
||||
#undef type_pf_data_tlist
|
||||
#undef type_pf_data_next
|
||||
#undef type_pf_data_flags
|
||||
#undef type_pf_data_reset_flags
|
||||
#undef type_pf_data_match
|
||||
|
||||
#undef type_pf_elem
|
||||
|
||||
@@ -137,6 +137,34 @@ enum {
|
||||
NVME_LBAF_RP_DEGRADED = 3,
|
||||
};
|
||||
|
||||
struct nvme_smart_log {
|
||||
__u8 critical_warning;
|
||||
__u8 temperature[2];
|
||||
__u8 avail_spare;
|
||||
__u8 spare_thresh;
|
||||
__u8 percent_used;
|
||||
__u8 rsvd6[26];
|
||||
__u8 data_units_read[16];
|
||||
__u8 data_units_written[16];
|
||||
__u8 host_reads[16];
|
||||
__u8 host_writes[16];
|
||||
__u8 ctrl_busy_time[16];
|
||||
__u8 power_cycles[16];
|
||||
__u8 power_on_hours[16];
|
||||
__u8 unsafe_shutdowns[16];
|
||||
__u8 media_errors[16];
|
||||
__u8 num_err_log_entries[16];
|
||||
__u8 rsvd192[320];
|
||||
};
|
||||
|
||||
enum {
|
||||
NVME_SMART_CRIT_SPARE = 1 << 0,
|
||||
NVME_SMART_CRIT_TEMPERATURE = 1 << 1,
|
||||
NVME_SMART_CRIT_RELIABILITY = 1 << 2,
|
||||
NVME_SMART_CRIT_MEDIA = 1 << 3,
|
||||
NVME_SMART_CRIT_VOLATILE_MEMORY = 1 << 4,
|
||||
};
|
||||
|
||||
struct nvme_lba_range_type {
|
||||
__u8 type;
|
||||
__u8 attributes;
|
||||
|
||||
@@ -916,6 +916,7 @@ void pci_disable_rom(struct pci_dev *pdev);
|
||||
void __iomem __must_check *pci_map_rom(struct pci_dev *pdev, size_t *size);
|
||||
void pci_unmap_rom(struct pci_dev *pdev, void __iomem *rom);
|
||||
size_t pci_get_rom_size(struct pci_dev *pdev, void __iomem *rom, size_t size);
|
||||
void __iomem __must_check *pci_platform_rom(struct pci_dev *pdev, size_t *size);
|
||||
|
||||
/* Power management related routines */
|
||||
int pci_save_state(struct pci_dev *dev);
|
||||
|
||||
@@ -799,6 +799,12 @@ static inline int __perf_event_disable(void *info) { return -1; }
|
||||
static inline void perf_event_task_tick(void) { }
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_INTEL)
|
||||
extern void perf_restore_debug_store(void);
|
||||
#else
|
||||
static inline void perf_restore_debug_store(void) { }
|
||||
#endif
|
||||
|
||||
#define perf_output_put(handle, x) perf_output_copy((handle), &(x), sizeof(x))
|
||||
|
||||
/*
|
||||
|
||||
@@ -93,14 +93,20 @@ do { \
|
||||
|
||||
#else /* !CONFIG_PREEMPT_COUNT */
|
||||
|
||||
#define preempt_disable() do { } while (0)
|
||||
#define sched_preempt_enable_no_resched() do { } while (0)
|
||||
#define preempt_enable_no_resched() do { } while (0)
|
||||
#define preempt_enable() do { } while (0)
|
||||
/*
|
||||
* Even if we don't have any preemption, we need preempt disable/enable
|
||||
* to be barriers, so that we don't have things like get_user/put_user
|
||||
* that can cause faults and scheduling migrate into our preempt-protected
|
||||
* region.
|
||||
*/
|
||||
#define preempt_disable() barrier()
|
||||
#define sched_preempt_enable_no_resched() barrier()
|
||||
#define preempt_enable_no_resched() barrier()
|
||||
#define preempt_enable() barrier()
|
||||
|
||||
#define preempt_disable_notrace() do { } while (0)
|
||||
#define preempt_enable_no_resched_notrace() do { } while (0)
|
||||
#define preempt_enable_notrace() do { } while (0)
|
||||
#define preempt_disable_notrace() barrier()
|
||||
#define preempt_enable_no_resched_notrace() barrier()
|
||||
#define preempt_enable_notrace() barrier()
|
||||
|
||||
#endif /* CONFIG_PREEMPT_COUNT */
|
||||
|
||||
|
||||
@@ -134,6 +134,8 @@ extern int printk_delay_msec;
|
||||
extern int dmesg_restrict;
|
||||
extern int kptr_restrict;
|
||||
|
||||
extern void wake_up_klogd(void);
|
||||
|
||||
void log_buf_kexec_setup(void);
|
||||
void __init setup_log_buf(int early);
|
||||
#else
|
||||
@@ -162,6 +164,10 @@ static inline bool printk_timed_ratelimit(unsigned long *caller_jiffies,
|
||||
return false;
|
||||
}
|
||||
|
||||
static inline void wake_up_klogd(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void log_buf_kexec_setup(void)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -117,6 +117,7 @@ struct proc_dir_entry *proc_create_data(const char *name, umode_t mode,
|
||||
const struct file_operations *proc_fops,
|
||||
void *data);
|
||||
extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent);
|
||||
extern int remove_proc_subtree(const char *name, struct proc_dir_entry *parent);
|
||||
|
||||
struct pid_namespace;
|
||||
|
||||
@@ -202,6 +203,7 @@ static inline struct proc_dir_entry *proc_create_data(const char *name,
|
||||
return NULL;
|
||||
}
|
||||
#define remove_proc_entry(name, parent) do {} while (0)
|
||||
#define remove_proc_subtree(name, parent) do {} while (0)
|
||||
|
||||
static inline struct proc_dir_entry *proc_symlink(const char *name,
|
||||
struct proc_dir_entry *parent,const char *dest) {return NULL;}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/cgroup.h>
|
||||
#include <linux/errno.h>
|
||||
|
||||
/*
|
||||
* The core object. the cgroup that wishes to account for some
|
||||
|
||||
@@ -163,9 +163,10 @@ print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq)
|
||||
#define TASK_DEAD 64
|
||||
#define TASK_WAKEKILL 128
|
||||
#define TASK_WAKING 256
|
||||
#define TASK_STATE_MAX 512
|
||||
#define TASK_PARKED 512
|
||||
#define TASK_STATE_MAX 1024
|
||||
|
||||
#define TASK_STATE_TO_CHAR_STR "RSDTtZXxKW"
|
||||
#define TASK_STATE_TO_CHAR_STR "RSDTtZXxKWP"
|
||||
|
||||
extern char ___assert_task_state[1 - 2*!!(
|
||||
sizeof(TASK_STATE_TO_CHAR_STR)-1 != ilog2(TASK_STATE_MAX)+1)];
|
||||
|
||||
@@ -1012,6 +1012,10 @@ static inline void security_free_mnt_opts(struct security_mnt_opts *opts)
|
||||
* This hook can be used by the module to update any security state
|
||||
* associated with the TUN device's security structure.
|
||||
* @security pointer to the TUN devices's security structure.
|
||||
* @skb_owned_by:
|
||||
* This hook sets the packet's owning sock.
|
||||
* @skb is the packet.
|
||||
* @sk the sock which owns the packet.
|
||||
*
|
||||
* Security hooks for XFRM operations.
|
||||
*
|
||||
@@ -1638,6 +1642,7 @@ struct security_operations {
|
||||
int (*tun_dev_attach_queue) (void *security);
|
||||
int (*tun_dev_attach) (struct sock *sk, void *security);
|
||||
int (*tun_dev_open) (void *security);
|
||||
void (*skb_owned_by) (struct sk_buff *skb, struct sock *sk);
|
||||
#endif /* CONFIG_SECURITY_NETWORK */
|
||||
|
||||
#ifdef CONFIG_SECURITY_NETWORK_XFRM
|
||||
@@ -2588,6 +2593,8 @@ int security_tun_dev_attach_queue(void *security);
|
||||
int security_tun_dev_attach(struct sock *sk, void *security);
|
||||
int security_tun_dev_open(void *security);
|
||||
|
||||
void security_skb_owned_by(struct sk_buff *skb, struct sock *sk);
|
||||
|
||||
#else /* CONFIG_SECURITY_NETWORK */
|
||||
static inline int security_unix_stream_connect(struct sock *sock,
|
||||
struct sock *other,
|
||||
@@ -2779,6 +2786,11 @@ static inline int security_tun_dev_open(void *security)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void security_skb_owned_by(struct sk_buff *skb, struct sock *sk)
|
||||
{
|
||||
}
|
||||
|
||||
#endif /* CONFIG_SECURITY_NETWORK */
|
||||
|
||||
#ifdef CONFIG_SECURITY_NETWORK_XFRM
|
||||
|
||||
@@ -250,11 +250,11 @@ extern int show_unhandled_signals;
|
||||
extern int sigsuspend(sigset_t *);
|
||||
|
||||
struct sigaction {
|
||||
#ifndef __ARCH_HAS_ODD_SIGACTION
|
||||
#ifndef __ARCH_HAS_IRIX_SIGACTION
|
||||
__sighandler_t sa_handler;
|
||||
unsigned long sa_flags;
|
||||
#else
|
||||
unsigned long sa_flags;
|
||||
unsigned int sa_flags;
|
||||
__sighandler_t sa_handler;
|
||||
#endif
|
||||
#ifdef __ARCH_HAS_SA_RESTORER
|
||||
|
||||
@@ -500,7 +500,7 @@ struct sk_buff {
|
||||
union {
|
||||
__u32 mark;
|
||||
__u32 dropcount;
|
||||
__u32 avail_size;
|
||||
__u32 reserved_tailroom;
|
||||
};
|
||||
|
||||
sk_buff_data_t inner_transport_header;
|
||||
@@ -1288,11 +1288,13 @@ static inline void __skb_fill_page_desc(struct sk_buff *skb, int i,
|
||||
* do not lose pfmemalloc information as the pages would not be
|
||||
* allocated using __GFP_MEMALLOC.
|
||||
*/
|
||||
if (page->pfmemalloc && !page->mapping)
|
||||
skb->pfmemalloc = true;
|
||||
frag->page.p = page;
|
||||
frag->page_offset = off;
|
||||
skb_frag_size_set(frag, size);
|
||||
|
||||
page = compound_head(page);
|
||||
if (page->pfmemalloc && !page->mapping)
|
||||
skb->pfmemalloc = true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1447,7 +1449,10 @@ static inline int skb_tailroom(const struct sk_buff *skb)
|
||||
*/
|
||||
static inline int skb_availroom(const struct sk_buff *skb)
|
||||
{
|
||||
return skb_is_nonlinear(skb) ? 0 : skb->avail_size - skb->len;
|
||||
if (skb_is_nonlinear(skb))
|
||||
return 0;
|
||||
|
||||
return skb->end - skb->tail - skb->reserved_tailroom;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2638,6 +2643,13 @@ static inline void nf_reset(struct sk_buff *skb)
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void nf_reset_trace(struct sk_buff *skb)
|
||||
{
|
||||
#if IS_ENABLED(CONFIG_NETFILTER_XT_TARGET_TRACE)
|
||||
skb->nf_trace = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Note: This doesn't put any conntrack and bridge info in dst. */
|
||||
static inline void __nf_copy(struct sk_buff *dst, const struct sk_buff *src)
|
||||
{
|
||||
|
||||
@@ -16,7 +16,10 @@
|
||||
* In the debug case, 1 means unlocked, 0 means locked. (the values
|
||||
* are inverted, to catch initialization bugs)
|
||||
*
|
||||
* No atomicity anywhere, we are on UP.
|
||||
* No atomicity anywhere, we are on UP. However, we still need
|
||||
* the compiler barriers, because we do not want the compiler to
|
||||
* move potentially faulting instructions (notably user accesses)
|
||||
* into the locked sequence, resulting in non-atomic execution.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_DEBUG_SPINLOCK
|
||||
@@ -25,6 +28,7 @@
|
||||
static inline void arch_spin_lock(arch_spinlock_t *lock)
|
||||
{
|
||||
lock->slock = 0;
|
||||
barrier();
|
||||
}
|
||||
|
||||
static inline void
|
||||
@@ -32,6 +36,7 @@ arch_spin_lock_flags(arch_spinlock_t *lock, unsigned long flags)
|
||||
{
|
||||
local_irq_save(flags);
|
||||
lock->slock = 0;
|
||||
barrier();
|
||||
}
|
||||
|
||||
static inline int arch_spin_trylock(arch_spinlock_t *lock)
|
||||
@@ -39,32 +44,34 @@ static inline int arch_spin_trylock(arch_spinlock_t *lock)
|
||||
char oldval = lock->slock;
|
||||
|
||||
lock->slock = 0;
|
||||
barrier();
|
||||
|
||||
return oldval > 0;
|
||||
}
|
||||
|
||||
static inline void arch_spin_unlock(arch_spinlock_t *lock)
|
||||
{
|
||||
barrier();
|
||||
lock->slock = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Read-write spinlocks. No debug version.
|
||||
*/
|
||||
#define arch_read_lock(lock) do { (void)(lock); } while (0)
|
||||
#define arch_write_lock(lock) do { (void)(lock); } while (0)
|
||||
#define arch_read_trylock(lock) ({ (void)(lock); 1; })
|
||||
#define arch_write_trylock(lock) ({ (void)(lock); 1; })
|
||||
#define arch_read_unlock(lock) do { (void)(lock); } while (0)
|
||||
#define arch_write_unlock(lock) do { (void)(lock); } while (0)
|
||||
#define arch_read_lock(lock) do { barrier(); (void)(lock); } while (0)
|
||||
#define arch_write_lock(lock) do { barrier(); (void)(lock); } while (0)
|
||||
#define arch_read_trylock(lock) ({ barrier(); (void)(lock); 1; })
|
||||
#define arch_write_trylock(lock) ({ barrier(); (void)(lock); 1; })
|
||||
#define arch_read_unlock(lock) do { barrier(); (void)(lock); } while (0)
|
||||
#define arch_write_unlock(lock) do { barrier(); (void)(lock); } while (0)
|
||||
|
||||
#else /* DEBUG_SPINLOCK */
|
||||
#define arch_spin_is_locked(lock) ((void)(lock), 0)
|
||||
/* for sched.c and kernel_lock.c: */
|
||||
# define arch_spin_lock(lock) do { (void)(lock); } while (0)
|
||||
# define arch_spin_lock_flags(lock, flags) do { (void)(lock); } while (0)
|
||||
# define arch_spin_unlock(lock) do { (void)(lock); } while (0)
|
||||
# define arch_spin_trylock(lock) ({ (void)(lock); 1; })
|
||||
# define arch_spin_lock(lock) do { barrier(); (void)(lock); } while (0)
|
||||
# define arch_spin_lock_flags(lock, flags) do { barrier(); (void)(lock); } while (0)
|
||||
# define arch_spin_unlock(lock) do { barrier(); (void)(lock); } while (0)
|
||||
# define arch_spin_trylock(lock) ({ barrier(); (void)(lock); 1; })
|
||||
#endif /* DEBUG_SPINLOCK */
|
||||
|
||||
#define arch_spin_is_contended(lock) (((void)(lock), 0))
|
||||
|
||||
@@ -219,6 +219,7 @@
|
||||
#define SSB_CHIPCO_PMU_CTL 0x0600 /* PMU control */
|
||||
#define SSB_CHIPCO_PMU_CTL_ILP_DIV 0xFFFF0000 /* ILP div mask */
|
||||
#define SSB_CHIPCO_PMU_CTL_ILP_DIV_SHIFT 16
|
||||
#define SSB_CHIPCO_PMU_CTL_PLL_UPD 0x00000400
|
||||
#define SSB_CHIPCO_PMU_CTL_NOILPONW 0x00000200 /* No ILP on wait */
|
||||
#define SSB_CHIPCO_PMU_CTL_HTREQEN 0x00000100 /* HT req enable */
|
||||
#define SSB_CHIPCO_PMU_CTL_ALPREQEN 0x00000080 /* ALP req enable */
|
||||
@@ -667,5 +668,6 @@ enum ssb_pmu_ldo_volt_id {
|
||||
void ssb_pmu_set_ldo_voltage(struct ssb_chipcommon *cc,
|
||||
enum ssb_pmu_ldo_volt_id id, u32 voltage);
|
||||
void ssb_pmu_set_ldo_paref(struct ssb_chipcommon *cc, bool on);
|
||||
void ssb_pmu_spuravoid_pllupdate(struct ssb_chipcommon *cc, int spuravoid);
|
||||
|
||||
#endif /* LINUX_SSB_CHIPCO_H_ */
|
||||
|
||||
@@ -25,6 +25,7 @@ extern int swiotlb_force;
|
||||
extern void swiotlb_init(int verbose);
|
||||
int swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose);
|
||||
extern unsigned long swiotlb_nr_tbl(void);
|
||||
unsigned long swiotlb_size_or_default(void);
|
||||
extern int swiotlb_late_init_with_tbl(char *tlb, unsigned long nslabs);
|
||||
|
||||
/*
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
/* Adding event notification support elements */
|
||||
#define THERMAL_GENL_FAMILY_NAME "thermal_event"
|
||||
#define THERMAL_GENL_VERSION 0x01
|
||||
#define THERMAL_GENL_MCAST_GROUP_NAME "thermal_mc_group"
|
||||
#define THERMAL_GENL_MCAST_GROUP_NAME "thermal_mc_grp"
|
||||
|
||||
/* Default Thermal Governor */
|
||||
#if defined(CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE)
|
||||
|
||||
14
include/linux/ucs2_string.h
Normal file
14
include/linux/ucs2_string.h
Normal file
@@ -0,0 +1,14 @@
|
||||
#ifndef _LINUX_UCS2_STRING_H_
|
||||
#define _LINUX_UCS2_STRING_H_
|
||||
|
||||
#include <linux/types.h> /* for size_t */
|
||||
#include <linux/stddef.h> /* for NULL */
|
||||
|
||||
typedef u16 ucs2_char_t;
|
||||
|
||||
unsigned long ucs2_strnlen(const ucs2_char_t *s, size_t maxlength);
|
||||
unsigned long ucs2_strlen(const ucs2_char_t *s);
|
||||
unsigned long ucs2_strsize(const ucs2_char_t *data, unsigned long maxlength);
|
||||
int ucs2_strncmp(const ucs2_char_t *a, const ucs2_char_t *b, size_t len);
|
||||
|
||||
#endif /* _LINUX_UCS2_STRING_H_ */
|
||||
@@ -68,6 +68,7 @@ struct udp_sock {
|
||||
* For encapsulation sockets.
|
||||
*/
|
||||
int (*encap_rcv)(struct sock *sk, struct sk_buff *skb);
|
||||
void (*encap_destroy)(struct sock *sk);
|
||||
};
|
||||
|
||||
static inline struct udp_sock *udp_sk(const struct sock *sk)
|
||||
|
||||
@@ -127,6 +127,7 @@ struct cdc_ncm_ctx {
|
||||
u16 connected;
|
||||
};
|
||||
|
||||
extern u8 cdc_ncm_select_altsetting(struct usbnet *dev, struct usb_interface *intf);
|
||||
extern int cdc_ncm_bind_common(struct usbnet *dev, struct usb_interface *intf, u8 data_altsetting);
|
||||
extern void cdc_ncm_unbind(struct usbnet *dev, struct usb_interface *intf);
|
||||
extern struct sk_buff *cdc_ncm_fill_tx_frame(struct cdc_ncm_ctx *ctx, struct sk_buff *skb, __le32 sign);
|
||||
|
||||
@@ -60,7 +60,7 @@ struct usb_configuration;
|
||||
* @name: For diagnostics, identifies the function.
|
||||
* @strings: tables of strings, keyed by identifiers assigned during bind()
|
||||
* and by language IDs provided in control requests
|
||||
* @descriptors: Table of full (or low) speed descriptors, using interface and
|
||||
* @fs_descriptors: Table of full (or low) speed descriptors, using interface and
|
||||
* string identifiers assigned during @bind(). If this pointer is null,
|
||||
* the function will not be available at full speed (or at low speed).
|
||||
* @hs_descriptors: Table of high speed descriptors, using interface and
|
||||
@@ -290,6 +290,7 @@ enum {
|
||||
* after function notifications
|
||||
* @resume: Notifies configuration when the host restarts USB traffic,
|
||||
* before function notifications
|
||||
* @gadget_driver: Gadget driver controlling this driver
|
||||
*
|
||||
* Devices default to reporting self powered operation. Devices which rely
|
||||
* on bus powered operation should report this in their @bind method.
|
||||
|
||||
@@ -357,6 +357,7 @@ struct hc_driver {
|
||||
*/
|
||||
int (*disable_usb3_lpm_timeout)(struct usb_hcd *,
|
||||
struct usb_device *, enum usb3_link_state state);
|
||||
int (*find_raw_port_number)(struct usb_hcd *, int);
|
||||
};
|
||||
|
||||
extern int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd, struct urb *urb);
|
||||
@@ -396,6 +397,7 @@ extern int usb_hcd_is_primary_hcd(struct usb_hcd *hcd);
|
||||
extern int usb_add_hcd(struct usb_hcd *hcd,
|
||||
unsigned int irqnum, unsigned long irqflags);
|
||||
extern void usb_remove_hcd(struct usb_hcd *hcd);
|
||||
extern int usb_hcd_find_raw_port_number(struct usb_hcd *hcd, int port1);
|
||||
|
||||
struct platform_device;
|
||||
extern void usb_hcd_platform_shutdown(struct platform_device *dev);
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
* port.
|
||||
* @flags: usb serial port flags
|
||||
* @write_wait: a wait_queue_head_t used by the port.
|
||||
* @delta_msr_wait: modem-status-change wait queue
|
||||
* @work: work queue entry for the line discipline waking up.
|
||||
* @throttled: nonzero if the read urb is inactive to throttle the device
|
||||
* @throttle_req: nonzero if the tty wants to throttle us
|
||||
@@ -112,6 +113,7 @@ struct usb_serial_port {
|
||||
|
||||
unsigned long flags;
|
||||
wait_queue_head_t write_wait;
|
||||
wait_queue_head_t delta_msr_wait;
|
||||
struct work_struct work;
|
||||
char throttled;
|
||||
char throttle_req;
|
||||
|
||||
@@ -181,8 +181,16 @@
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
#if IS_ENABLED(CONFIG_USB_ULPI)
|
||||
struct usb_phy *otg_ulpi_create(struct usb_phy_io_ops *ops,
|
||||
unsigned int flags);
|
||||
#else
|
||||
static inline struct usb_phy *otg_ulpi_create(struct usb_phy_io_ops *ops,
|
||||
unsigned int flags)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_USB_ULPI_VIEWPORT
|
||||
/* access ops for controllers with a viewport register */
|
||||
|
||||
@@ -26,6 +26,8 @@ struct user_namespace {
|
||||
kuid_t owner;
|
||||
kgid_t group;
|
||||
unsigned int proc_inum;
|
||||
bool may_mount_sysfs;
|
||||
bool may_mount_proc;
|
||||
};
|
||||
|
||||
extern struct user_namespace init_user_ns;
|
||||
@@ -82,4 +84,6 @@ static inline void put_user_ns(struct user_namespace *ns)
|
||||
|
||||
#endif
|
||||
|
||||
void update_mnt_policy(struct user_namespace *userns);
|
||||
|
||||
#endif /* _LINUX_USER_H */
|
||||
|
||||
@@ -199,6 +199,7 @@ extern bool ipv6_chk_acast_addr(struct net *net, struct net_device *dev,
|
||||
/* Device notifier */
|
||||
extern int register_inet6addr_notifier(struct notifier_block *nb);
|
||||
extern int unregister_inet6addr_notifier(struct notifier_block *nb);
|
||||
extern int inet6addr_notifier_call_chain(unsigned long val, void *v);
|
||||
|
||||
extern void inet6_netconf_notify_devconf(struct net *net, int type, int ifindex,
|
||||
struct ipv6_devconf *devconf);
|
||||
|
||||
@@ -413,13 +413,15 @@ static inline int dst_neigh_output(struct dst_entry *dst, struct neighbour *n,
|
||||
|
||||
static inline struct neighbour *dst_neigh_lookup(const struct dst_entry *dst, const void *daddr)
|
||||
{
|
||||
return dst->ops->neigh_lookup(dst, NULL, daddr);
|
||||
struct neighbour *n = dst->ops->neigh_lookup(dst, NULL, daddr);
|
||||
return IS_ERR(n) ? NULL : n;
|
||||
}
|
||||
|
||||
static inline struct neighbour *dst_neigh_lookup_skb(const struct dst_entry *dst,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
return dst->ops->neigh_lookup(dst, skb, NULL);
|
||||
struct neighbour *n = dst->ops->neigh_lookup(dst, skb, NULL);
|
||||
return IS_ERR(n) ? NULL : n;
|
||||
}
|
||||
|
||||
static inline void dst_link_failure(struct sk_buff *skb)
|
||||
|
||||
@@ -9,6 +9,7 @@ struct flow_keys {
|
||||
__be32 ports;
|
||||
__be16 port16[2];
|
||||
};
|
||||
u16 thoff;
|
||||
u8 ip_proto;
|
||||
};
|
||||
|
||||
|
||||
@@ -43,6 +43,13 @@ struct inet_frag_queue {
|
||||
|
||||
#define INETFRAGS_HASHSZ 64
|
||||
|
||||
/* averaged:
|
||||
* max_depth = default ipfrag_high_thresh / INETFRAGS_HASHSZ /
|
||||
* rounded up (SKB_TRUELEN(0) + sizeof(struct ipq or
|
||||
* struct frag_queue))
|
||||
*/
|
||||
#define INETFRAGS_MAXDEPTH 128
|
||||
|
||||
struct inet_frags {
|
||||
struct hlist_head hash[INETFRAGS_HASHSZ];
|
||||
/* This rwlock is a global lock (seperate per IPv4, IPv6 and
|
||||
@@ -76,6 +83,8 @@ int inet_frag_evictor(struct netns_frags *nf, struct inet_frags *f, bool force);
|
||||
struct inet_frag_queue *inet_frag_find(struct netns_frags *nf,
|
||||
struct inet_frags *f, void *key, unsigned int hash)
|
||||
__releases(&f->lock);
|
||||
void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q,
|
||||
const char *prefix);
|
||||
|
||||
static inline void inet_frag_put(struct inet_frag_queue *q, struct inet_frags *f)
|
||||
{
|
||||
|
||||
@@ -152,19 +152,17 @@ struct fib_result_nl {
|
||||
};
|
||||
|
||||
#ifdef CONFIG_IP_ROUTE_MULTIPATH
|
||||
|
||||
#define FIB_RES_NH(res) ((res).fi->fib_nh[(res).nh_sel])
|
||||
|
||||
#define FIB_TABLE_HASHSZ 2
|
||||
|
||||
#else /* CONFIG_IP_ROUTE_MULTIPATH */
|
||||
|
||||
#define FIB_RES_NH(res) ((res).fi->fib_nh[0])
|
||||
|
||||
#define FIB_TABLE_HASHSZ 256
|
||||
|
||||
#endif /* CONFIG_IP_ROUTE_MULTIPATH */
|
||||
|
||||
#ifdef CONFIG_IP_MULTIPLE_TABLES
|
||||
#define FIB_TABLE_HASHSZ 256
|
||||
#else
|
||||
#define FIB_TABLE_HASHSZ 2
|
||||
#endif
|
||||
|
||||
extern __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh);
|
||||
|
||||
#define FIB_RES_SADDR(net, res) \
|
||||
|
||||
@@ -976,6 +976,7 @@ struct netns_ipvs {
|
||||
int sysctl_sync_retries;
|
||||
int sysctl_nat_icmp_send;
|
||||
int sysctl_pmtu_disc;
|
||||
int sysctl_backup_only;
|
||||
|
||||
/* ip_vs_lblc */
|
||||
int sysctl_lblc_expiration;
|
||||
@@ -1067,6 +1068,12 @@ static inline int sysctl_pmtu_disc(struct netns_ipvs *ipvs)
|
||||
return ipvs->sysctl_pmtu_disc;
|
||||
}
|
||||
|
||||
static inline int sysctl_backup_only(struct netns_ipvs *ipvs)
|
||||
{
|
||||
return ipvs->sync_state & IP_VS_STATE_BACKUP &&
|
||||
ipvs->sysctl_backup_only;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
static inline int sysctl_sync_threshold(struct netns_ipvs *ipvs)
|
||||
@@ -1114,6 +1121,11 @@ static inline int sysctl_pmtu_disc(struct netns_ipvs *ipvs)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static inline int sysctl_backup_only(struct netns_ipvs *ipvs)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
||||
@@ -77,15 +77,11 @@ static inline void tunnel_ip_select_ident(struct sk_buff *skb,
|
||||
{
|
||||
struct iphdr *iph = ip_hdr(skb);
|
||||
|
||||
if (iph->frag_off & htons(IP_DF))
|
||||
iph->id = 0;
|
||||
else {
|
||||
/* Use inner packet iph-id if possible. */
|
||||
if (skb->protocol == htons(ETH_P_IP) && old_iph->id)
|
||||
iph->id = old_iph->id;
|
||||
else
|
||||
__ip_select_ident(iph, dst,
|
||||
(skb_shinfo(skb)->gso_segs ?: 1) - 1);
|
||||
}
|
||||
/* Use inner packet iph-id if possible. */
|
||||
if (skb->protocol == htons(ETH_P_IP) && old_iph->id)
|
||||
iph->id = old_iph->id;
|
||||
else
|
||||
__ip_select_ident(iph, dst,
|
||||
(skb_shinfo(skb)->gso_segs ?: 1) - 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -256,7 +256,8 @@ static inline __u32 irlmp_get_daddr(const struct lsap_cb *self)
|
||||
return (self && self->lap) ? self->lap->daddr : 0;
|
||||
}
|
||||
|
||||
extern const char *irlmp_reasons[];
|
||||
const char *irlmp_reason_str(LM_REASON reason);
|
||||
|
||||
extern int sysctl_discovery_timeout;
|
||||
extern int sysctl_discovery_slots;
|
||||
extern int sysctl_discovery;
|
||||
|
||||
@@ -130,6 +130,14 @@ struct iucv_sock {
|
||||
enum iucv_tx_notify n);
|
||||
};
|
||||
|
||||
struct iucv_skb_cb {
|
||||
u32 class; /* target class of message */
|
||||
u32 tag; /* tag associated with message */
|
||||
u32 offset; /* offset for skb receival */
|
||||
};
|
||||
|
||||
#define IUCV_SKB_CB(__skb) ((struct iucv_skb_cb *)&((__skb)->cb[0]))
|
||||
|
||||
/* iucv socket options (SOL_IUCV) */
|
||||
#define SO_IPRMDATA_MSG 0x0080 /* send/recv IPRM_DATA msgs */
|
||||
#define SO_MSGLIMIT 0x1000 /* get/set IUCV MSGLIMIT */
|
||||
|
||||
@@ -56,8 +56,8 @@ static __inline__ void scm_set_cred(struct scm_cookie *scm,
|
||||
scm->pid = get_pid(pid);
|
||||
scm->cred = cred ? get_cred(cred) : NULL;
|
||||
scm->creds.pid = pid_vnr(pid);
|
||||
scm->creds.uid = cred ? cred->euid : INVALID_UID;
|
||||
scm->creds.gid = cred ? cred->egid : INVALID_GID;
|
||||
scm->creds.uid = cred ? cred->uid : INVALID_UID;
|
||||
scm->creds.gid = cred ? cred->gid : INVALID_GID;
|
||||
}
|
||||
|
||||
static __inline__ void scm_destroy_cred(struct scm_cookie *scm)
|
||||
|
||||
@@ -1074,7 +1074,8 @@ void fc_rport_terminate_io(struct fc_rport *);
|
||||
/*
|
||||
* DISCOVERY LAYER
|
||||
*****************************/
|
||||
int fc_disc_init(struct fc_lport *);
|
||||
void fc_disc_init(struct fc_lport *);
|
||||
void fc_disc_config(struct fc_lport *, void *);
|
||||
|
||||
static inline struct fc_lport *fc_disc_lport(struct fc_disc *disc)
|
||||
{
|
||||
|
||||
0
include/sound/max98090.h
Executable file → Normal file
0
include/sound/max98090.h
Executable file → Normal file
@@ -488,6 +488,7 @@ struct snd_soc_dapm_path {
|
||||
/* status */
|
||||
u32 connect:1; /* source and sink widgets are connected */
|
||||
u32 walked:1; /* path has been walked */
|
||||
u32 walking:1; /* path is in the process of being walked */
|
||||
u32 weak:1; /* path ignored for power management */
|
||||
|
||||
int (*connected)(struct snd_soc_dapm_widget *source,
|
||||
|
||||
@@ -257,6 +257,7 @@ TRACE_EVENT(block_bio_bounce,
|
||||
|
||||
/**
|
||||
* block_bio_complete - completed all work on the block operation
|
||||
* @q: queue holding the block operation
|
||||
* @bio: block operation completed
|
||||
* @error: io error value
|
||||
*
|
||||
@@ -265,9 +266,9 @@ TRACE_EVENT(block_bio_bounce,
|
||||
*/
|
||||
TRACE_EVENT(block_bio_complete,
|
||||
|
||||
TP_PROTO(struct bio *bio, int error),
|
||||
TP_PROTO(struct request_queue *q, struct bio *bio, int error),
|
||||
|
||||
TP_ARGS(bio, error),
|
||||
TP_ARGS(q, bio, error),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field( dev_t, dev )
|
||||
@@ -278,8 +279,7 @@ TRACE_EVENT(block_bio_complete,
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->dev = bio->bi_bdev ?
|
||||
bio->bi_bdev->bd_dev : 0;
|
||||
__entry->dev = bio->bi_bdev->bd_dev;
|
||||
__entry->sector = bio->bi_sector;
|
||||
__entry->nr_sector = bio->bi_size >> 9;
|
||||
__entry->error = error;
|
||||
|
||||
@@ -147,7 +147,7 @@ TRACE_EVENT(sched_switch,
|
||||
__print_flags(__entry->prev_state & (TASK_STATE_MAX-1), "|",
|
||||
{ 1, "S"} , { 2, "D" }, { 4, "T" }, { 8, "t" },
|
||||
{ 16, "Z" }, { 32, "X" }, { 64, "x" },
|
||||
{ 128, "W" }) : "R",
|
||||
{ 128, "K" }, { 256, "W" }, { 512, "P" }) : "R",
|
||||
__entry->prev_state & TASK_STATE_MAX ? "+" : "",
|
||||
__entry->next_comm, __entry->next_pid, __entry->next_prio)
|
||||
);
|
||||
|
||||
@@ -107,10 +107,12 @@ struct acct_v3
|
||||
#define ACORE 0x08 /* ... dumped core */
|
||||
#define AXSIG 0x10 /* ... was killed by a signal */
|
||||
|
||||
#ifdef __BIG_ENDIAN
|
||||
#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
|
||||
#define ACCT_BYTEORDER 0x80 /* accounting file is big endian */
|
||||
#else
|
||||
#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
|
||||
#define ACCT_BYTEORDER 0x00 /* accounting file is little endian */
|
||||
#else
|
||||
#error unspecified endianness
|
||||
#endif
|
||||
|
||||
#ifndef __KERNEL__
|
||||
|
||||
@@ -62,9 +62,9 @@ struct io_event {
|
||||
__s64 res2; /* secondary result */
|
||||
};
|
||||
|
||||
#if defined(__LITTLE_ENDIAN)
|
||||
#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
|
||||
#define PADDED(x,y) x, y
|
||||
#elif defined(__BIG_ENDIAN)
|
||||
#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
|
||||
#define PADDED(x,y) y, x
|
||||
#else
|
||||
#error edit for your odd byteorder.
|
||||
|
||||
@@ -95,15 +95,10 @@
|
||||
#ifndef _LINUX_FUSE_H
|
||||
#define _LINUX_FUSE_H
|
||||
|
||||
#ifdef __linux__
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/types.h>
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#define __u64 uint64_t
|
||||
#define __s64 int64_t
|
||||
#define __u32 uint32_t
|
||||
#define __s32 int32_t
|
||||
#define __u16 uint16_t
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -139,42 +134,42 @@
|
||||
userspace works under 64bit kernels */
|
||||
|
||||
struct fuse_attr {
|
||||
__u64 ino;
|
||||
__u64 size;
|
||||
__u64 blocks;
|
||||
__u64 atime;
|
||||
__u64 mtime;
|
||||
__u64 ctime;
|
||||
__u32 atimensec;
|
||||
__u32 mtimensec;
|
||||
__u32 ctimensec;
|
||||
__u32 mode;
|
||||
__u32 nlink;
|
||||
__u32 uid;
|
||||
__u32 gid;
|
||||
__u32 rdev;
|
||||
__u32 blksize;
|
||||
__u32 padding;
|
||||
uint64_t ino;
|
||||
uint64_t size;
|
||||
uint64_t blocks;
|
||||
uint64_t atime;
|
||||
uint64_t mtime;
|
||||
uint64_t ctime;
|
||||
uint32_t atimensec;
|
||||
uint32_t mtimensec;
|
||||
uint32_t ctimensec;
|
||||
uint32_t mode;
|
||||
uint32_t nlink;
|
||||
uint32_t uid;
|
||||
uint32_t gid;
|
||||
uint32_t rdev;
|
||||
uint32_t blksize;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_kstatfs {
|
||||
__u64 blocks;
|
||||
__u64 bfree;
|
||||
__u64 bavail;
|
||||
__u64 files;
|
||||
__u64 ffree;
|
||||
__u32 bsize;
|
||||
__u32 namelen;
|
||||
__u32 frsize;
|
||||
__u32 padding;
|
||||
__u32 spare[6];
|
||||
uint64_t blocks;
|
||||
uint64_t bfree;
|
||||
uint64_t bavail;
|
||||
uint64_t files;
|
||||
uint64_t ffree;
|
||||
uint32_t bsize;
|
||||
uint32_t namelen;
|
||||
uint32_t frsize;
|
||||
uint32_t padding;
|
||||
uint32_t spare[6];
|
||||
};
|
||||
|
||||
struct fuse_file_lock {
|
||||
__u64 start;
|
||||
__u64 end;
|
||||
__u32 type;
|
||||
__u32 pid; /* tgid */
|
||||
uint64_t start;
|
||||
uint64_t end;
|
||||
uint32_t type;
|
||||
uint32_t pid; /* tgid */
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -364,143 +359,143 @@ enum fuse_notify_code {
|
||||
#define FUSE_COMPAT_ENTRY_OUT_SIZE 120
|
||||
|
||||
struct fuse_entry_out {
|
||||
__u64 nodeid; /* Inode ID */
|
||||
__u64 generation; /* Inode generation: nodeid:gen must
|
||||
be unique for the fs's lifetime */
|
||||
__u64 entry_valid; /* Cache timeout for the name */
|
||||
__u64 attr_valid; /* Cache timeout for the attributes */
|
||||
__u32 entry_valid_nsec;
|
||||
__u32 attr_valid_nsec;
|
||||
uint64_t nodeid; /* Inode ID */
|
||||
uint64_t generation; /* Inode generation: nodeid:gen must
|
||||
be unique for the fs's lifetime */
|
||||
uint64_t entry_valid; /* Cache timeout for the name */
|
||||
uint64_t attr_valid; /* Cache timeout for the attributes */
|
||||
uint32_t entry_valid_nsec;
|
||||
uint32_t attr_valid_nsec;
|
||||
struct fuse_attr attr;
|
||||
};
|
||||
|
||||
struct fuse_forget_in {
|
||||
__u64 nlookup;
|
||||
uint64_t nlookup;
|
||||
};
|
||||
|
||||
struct fuse_forget_one {
|
||||
__u64 nodeid;
|
||||
__u64 nlookup;
|
||||
uint64_t nodeid;
|
||||
uint64_t nlookup;
|
||||
};
|
||||
|
||||
struct fuse_batch_forget_in {
|
||||
__u32 count;
|
||||
__u32 dummy;
|
||||
uint32_t count;
|
||||
uint32_t dummy;
|
||||
};
|
||||
|
||||
struct fuse_getattr_in {
|
||||
__u32 getattr_flags;
|
||||
__u32 dummy;
|
||||
__u64 fh;
|
||||
uint32_t getattr_flags;
|
||||
uint32_t dummy;
|
||||
uint64_t fh;
|
||||
};
|
||||
|
||||
#define FUSE_COMPAT_ATTR_OUT_SIZE 96
|
||||
|
||||
struct fuse_attr_out {
|
||||
__u64 attr_valid; /* Cache timeout for the attributes */
|
||||
__u32 attr_valid_nsec;
|
||||
__u32 dummy;
|
||||
uint64_t attr_valid; /* Cache timeout for the attributes */
|
||||
uint32_t attr_valid_nsec;
|
||||
uint32_t dummy;
|
||||
struct fuse_attr attr;
|
||||
};
|
||||
|
||||
#define FUSE_COMPAT_MKNOD_IN_SIZE 8
|
||||
|
||||
struct fuse_mknod_in {
|
||||
__u32 mode;
|
||||
__u32 rdev;
|
||||
__u32 umask;
|
||||
__u32 padding;
|
||||
uint32_t mode;
|
||||
uint32_t rdev;
|
||||
uint32_t umask;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_mkdir_in {
|
||||
__u32 mode;
|
||||
__u32 umask;
|
||||
uint32_t mode;
|
||||
uint32_t umask;
|
||||
};
|
||||
|
||||
struct fuse_rename_in {
|
||||
__u64 newdir;
|
||||
uint64_t newdir;
|
||||
};
|
||||
|
||||
struct fuse_link_in {
|
||||
__u64 oldnodeid;
|
||||
uint64_t oldnodeid;
|
||||
};
|
||||
|
||||
struct fuse_setattr_in {
|
||||
__u32 valid;
|
||||
__u32 padding;
|
||||
__u64 fh;
|
||||
__u64 size;
|
||||
__u64 lock_owner;
|
||||
__u64 atime;
|
||||
__u64 mtime;
|
||||
__u64 unused2;
|
||||
__u32 atimensec;
|
||||
__u32 mtimensec;
|
||||
__u32 unused3;
|
||||
__u32 mode;
|
||||
__u32 unused4;
|
||||
__u32 uid;
|
||||
__u32 gid;
|
||||
__u32 unused5;
|
||||
uint32_t valid;
|
||||
uint32_t padding;
|
||||
uint64_t fh;
|
||||
uint64_t size;
|
||||
uint64_t lock_owner;
|
||||
uint64_t atime;
|
||||
uint64_t mtime;
|
||||
uint64_t unused2;
|
||||
uint32_t atimensec;
|
||||
uint32_t mtimensec;
|
||||
uint32_t unused3;
|
||||
uint32_t mode;
|
||||
uint32_t unused4;
|
||||
uint32_t uid;
|
||||
uint32_t gid;
|
||||
uint32_t unused5;
|
||||
};
|
||||
|
||||
struct fuse_open_in {
|
||||
__u32 flags;
|
||||
__u32 unused;
|
||||
uint32_t flags;
|
||||
uint32_t unused;
|
||||
};
|
||||
|
||||
struct fuse_create_in {
|
||||
__u32 flags;
|
||||
__u32 mode;
|
||||
__u32 umask;
|
||||
__u32 padding;
|
||||
uint32_t flags;
|
||||
uint32_t mode;
|
||||
uint32_t umask;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_open_out {
|
||||
__u64 fh;
|
||||
__u32 open_flags;
|
||||
__u32 padding;
|
||||
uint64_t fh;
|
||||
uint32_t open_flags;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_release_in {
|
||||
__u64 fh;
|
||||
__u32 flags;
|
||||
__u32 release_flags;
|
||||
__u64 lock_owner;
|
||||
uint64_t fh;
|
||||
uint32_t flags;
|
||||
uint32_t release_flags;
|
||||
uint64_t lock_owner;
|
||||
};
|
||||
|
||||
struct fuse_flush_in {
|
||||
__u64 fh;
|
||||
__u32 unused;
|
||||
__u32 padding;
|
||||
__u64 lock_owner;
|
||||
uint64_t fh;
|
||||
uint32_t unused;
|
||||
uint32_t padding;
|
||||
uint64_t lock_owner;
|
||||
};
|
||||
|
||||
struct fuse_read_in {
|
||||
__u64 fh;
|
||||
__u64 offset;
|
||||
__u32 size;
|
||||
__u32 read_flags;
|
||||
__u64 lock_owner;
|
||||
__u32 flags;
|
||||
__u32 padding;
|
||||
uint64_t fh;
|
||||
uint64_t offset;
|
||||
uint32_t size;
|
||||
uint32_t read_flags;
|
||||
uint64_t lock_owner;
|
||||
uint32_t flags;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
#define FUSE_COMPAT_WRITE_IN_SIZE 24
|
||||
|
||||
struct fuse_write_in {
|
||||
__u64 fh;
|
||||
__u64 offset;
|
||||
__u32 size;
|
||||
__u32 write_flags;
|
||||
__u64 lock_owner;
|
||||
__u32 flags;
|
||||
__u32 padding;
|
||||
uint64_t fh;
|
||||
uint64_t offset;
|
||||
uint32_t size;
|
||||
uint32_t write_flags;
|
||||
uint64_t lock_owner;
|
||||
uint32_t flags;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_write_out {
|
||||
__u32 size;
|
||||
__u32 padding;
|
||||
uint32_t size;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
#define FUSE_COMPAT_STATFS_SIZE 48
|
||||
@@ -510,32 +505,32 @@ struct fuse_statfs_out {
|
||||
};
|
||||
|
||||
struct fuse_fsync_in {
|
||||
__u64 fh;
|
||||
__u32 fsync_flags;
|
||||
__u32 padding;
|
||||
uint64_t fh;
|
||||
uint32_t fsync_flags;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_setxattr_in {
|
||||
__u32 size;
|
||||
__u32 flags;
|
||||
uint32_t size;
|
||||
uint32_t flags;
|
||||
};
|
||||
|
||||
struct fuse_getxattr_in {
|
||||
__u32 size;
|
||||
__u32 padding;
|
||||
uint32_t size;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_getxattr_out {
|
||||
__u32 size;
|
||||
__u32 padding;
|
||||
uint32_t size;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_lk_in {
|
||||
__u64 fh;
|
||||
__u64 owner;
|
||||
uint64_t fh;
|
||||
uint64_t owner;
|
||||
struct fuse_file_lock lk;
|
||||
__u32 lk_flags;
|
||||
__u32 padding;
|
||||
uint32_t lk_flags;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_lk_out {
|
||||
@@ -543,134 +538,135 @@ struct fuse_lk_out {
|
||||
};
|
||||
|
||||
struct fuse_access_in {
|
||||
__u32 mask;
|
||||
__u32 padding;
|
||||
uint32_t mask;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_init_in {
|
||||
__u32 major;
|
||||
__u32 minor;
|
||||
__u32 max_readahead;
|
||||
__u32 flags;
|
||||
uint32_t major;
|
||||
uint32_t minor;
|
||||
uint32_t max_readahead;
|
||||
uint32_t flags;
|
||||
};
|
||||
|
||||
struct fuse_init_out {
|
||||
__u32 major;
|
||||
__u32 minor;
|
||||
__u32 max_readahead;
|
||||
__u32 flags;
|
||||
__u16 max_background;
|
||||
__u16 congestion_threshold;
|
||||
__u32 max_write;
|
||||
uint32_t major;
|
||||
uint32_t minor;
|
||||
uint32_t max_readahead;
|
||||
uint32_t flags;
|
||||
uint16_t max_background;
|
||||
uint16_t congestion_threshold;
|
||||
uint32_t max_write;
|
||||
};
|
||||
|
||||
#define CUSE_INIT_INFO_MAX 4096
|
||||
|
||||
struct cuse_init_in {
|
||||
__u32 major;
|
||||
__u32 minor;
|
||||
__u32 unused;
|
||||
__u32 flags;
|
||||
uint32_t major;
|
||||
uint32_t minor;
|
||||
uint32_t unused;
|
||||
uint32_t flags;
|
||||
};
|
||||
|
||||
struct cuse_init_out {
|
||||
__u32 major;
|
||||
__u32 minor;
|
||||
__u32 unused;
|
||||
__u32 flags;
|
||||
__u32 max_read;
|
||||
__u32 max_write;
|
||||
__u32 dev_major; /* chardev major */
|
||||
__u32 dev_minor; /* chardev minor */
|
||||
__u32 spare[10];
|
||||
uint32_t major;
|
||||
uint32_t minor;
|
||||
uint32_t unused;
|
||||
uint32_t flags;
|
||||
uint32_t max_read;
|
||||
uint32_t max_write;
|
||||
uint32_t dev_major; /* chardev major */
|
||||
uint32_t dev_minor; /* chardev minor */
|
||||
uint32_t spare[10];
|
||||
};
|
||||
|
||||
struct fuse_interrupt_in {
|
||||
__u64 unique;
|
||||
uint64_t unique;
|
||||
};
|
||||
|
||||
struct fuse_bmap_in {
|
||||
__u64 block;
|
||||
__u32 blocksize;
|
||||
__u32 padding;
|
||||
uint64_t block;
|
||||
uint32_t blocksize;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_bmap_out {
|
||||
__u64 block;
|
||||
uint64_t block;
|
||||
};
|
||||
|
||||
struct fuse_ioctl_in {
|
||||
__u64 fh;
|
||||
__u32 flags;
|
||||
__u32 cmd;
|
||||
__u64 arg;
|
||||
__u32 in_size;
|
||||
__u32 out_size;
|
||||
uint64_t fh;
|
||||
uint32_t flags;
|
||||
uint32_t cmd;
|
||||
uint64_t arg;
|
||||
uint32_t in_size;
|
||||
uint32_t out_size;
|
||||
};
|
||||
|
||||
struct fuse_ioctl_iovec {
|
||||
__u64 base;
|
||||
__u64 len;
|
||||
uint64_t base;
|
||||
uint64_t len;
|
||||
};
|
||||
|
||||
struct fuse_ioctl_out {
|
||||
__s32 result;
|
||||
__u32 flags;
|
||||
__u32 in_iovs;
|
||||
__u32 out_iovs;
|
||||
int32_t result;
|
||||
uint32_t flags;
|
||||
uint32_t in_iovs;
|
||||
uint32_t out_iovs;
|
||||
};
|
||||
|
||||
struct fuse_poll_in {
|
||||
__u64 fh;
|
||||
__u64 kh;
|
||||
__u32 flags;
|
||||
__u32 events;
|
||||
uint64_t fh;
|
||||
uint64_t kh;
|
||||
uint32_t flags;
|
||||
uint32_t events;
|
||||
};
|
||||
|
||||
struct fuse_poll_out {
|
||||
__u32 revents;
|
||||
__u32 padding;
|
||||
uint32_t revents;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_notify_poll_wakeup_out {
|
||||
__u64 kh;
|
||||
uint64_t kh;
|
||||
};
|
||||
|
||||
struct fuse_fallocate_in {
|
||||
__u64 fh;
|
||||
__u64 offset;
|
||||
__u64 length;
|
||||
__u32 mode;
|
||||
__u32 padding;
|
||||
uint64_t fh;
|
||||
uint64_t offset;
|
||||
uint64_t length;
|
||||
uint32_t mode;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_in_header {
|
||||
__u32 len;
|
||||
__u32 opcode;
|
||||
__u64 unique;
|
||||
__u64 nodeid;
|
||||
__u32 uid;
|
||||
__u32 gid;
|
||||
__u32 pid;
|
||||
__u32 padding;
|
||||
uint32_t len;
|
||||
uint32_t opcode;
|
||||
uint64_t unique;
|
||||
uint64_t nodeid;
|
||||
uint32_t uid;
|
||||
uint32_t gid;
|
||||
uint32_t pid;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_out_header {
|
||||
__u32 len;
|
||||
__s32 error;
|
||||
__u64 unique;
|
||||
uint32_t len;
|
||||
int32_t error;
|
||||
uint64_t unique;
|
||||
};
|
||||
|
||||
struct fuse_dirent {
|
||||
__u64 ino;
|
||||
__u64 off;
|
||||
__u32 namelen;
|
||||
__u32 type;
|
||||
uint64_t ino;
|
||||
uint64_t off;
|
||||
uint32_t namelen;
|
||||
uint32_t type;
|
||||
char name[];
|
||||
};
|
||||
|
||||
#define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
|
||||
#define FUSE_DIRENT_ALIGN(x) (((x) + sizeof(__u64) - 1) & ~(sizeof(__u64) - 1))
|
||||
#define FUSE_DIRENT_ALIGN(x) \
|
||||
(((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
|
||||
#define FUSE_DIRENT_SIZE(d) \
|
||||
FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
|
||||
|
||||
@@ -685,47 +681,47 @@ struct fuse_direntplus {
|
||||
FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET_DIRENTPLUS + (d)->dirent.namelen)
|
||||
|
||||
struct fuse_notify_inval_inode_out {
|
||||
__u64 ino;
|
||||
__s64 off;
|
||||
__s64 len;
|
||||
uint64_t ino;
|
||||
int64_t off;
|
||||
int64_t len;
|
||||
};
|
||||
|
||||
struct fuse_notify_inval_entry_out {
|
||||
__u64 parent;
|
||||
__u32 namelen;
|
||||
__u32 padding;
|
||||
uint64_t parent;
|
||||
uint32_t namelen;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_notify_delete_out {
|
||||
__u64 parent;
|
||||
__u64 child;
|
||||
__u32 namelen;
|
||||
__u32 padding;
|
||||
uint64_t parent;
|
||||
uint64_t child;
|
||||
uint32_t namelen;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_notify_store_out {
|
||||
__u64 nodeid;
|
||||
__u64 offset;
|
||||
__u32 size;
|
||||
__u32 padding;
|
||||
uint64_t nodeid;
|
||||
uint64_t offset;
|
||||
uint32_t size;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
struct fuse_notify_retrieve_out {
|
||||
__u64 notify_unique;
|
||||
__u64 nodeid;
|
||||
__u64 offset;
|
||||
__u32 size;
|
||||
__u32 padding;
|
||||
uint64_t notify_unique;
|
||||
uint64_t nodeid;
|
||||
uint64_t offset;
|
||||
uint32_t size;
|
||||
uint32_t padding;
|
||||
};
|
||||
|
||||
/* Matches the size of fuse_write_in */
|
||||
struct fuse_notify_retrieve_in {
|
||||
__u64 dummy1;
|
||||
__u64 offset;
|
||||
__u32 size;
|
||||
__u32 dummy2;
|
||||
__u64 dummy3;
|
||||
__u64 dummy4;
|
||||
uint64_t dummy1;
|
||||
uint64_t offset;
|
||||
uint32_t size;
|
||||
uint32_t dummy2;
|
||||
uint64_t dummy3;
|
||||
uint64_t dummy4;
|
||||
};
|
||||
|
||||
#endif /* _LINUX_FUSE_H */
|
||||
|
||||
@@ -33,9 +33,11 @@ enum {
|
||||
PACKET_DIAG_TX_RING,
|
||||
PACKET_DIAG_FANOUT,
|
||||
|
||||
PACKET_DIAG_MAX,
|
||||
__PACKET_DIAG_MAX,
|
||||
};
|
||||
|
||||
#define PACKET_DIAG_MAX (__PACKET_DIAG_MAX - 1)
|
||||
|
||||
struct packet_diag_info {
|
||||
__u32 pdi_index;
|
||||
__u32 pdi_version;
|
||||
|
||||
@@ -145,16 +145,18 @@ typedef struct mdp_superblock_s {
|
||||
__u32 failed_disks; /* 4 Number of failed disks */
|
||||
__u32 spare_disks; /* 5 Number of spare disks */
|
||||
__u32 sb_csum; /* 6 checksum of the whole superblock */
|
||||
#ifdef __BIG_ENDIAN
|
||||
#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
|
||||
__u32 events_hi; /* 7 high-order of superblock update count */
|
||||
__u32 events_lo; /* 8 low-order of superblock update count */
|
||||
__u32 cp_events_hi; /* 9 high-order of checkpoint update count */
|
||||
__u32 cp_events_lo; /* 10 low-order of checkpoint update count */
|
||||
#else
|
||||
#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
|
||||
__u32 events_lo; /* 7 low-order of superblock update count */
|
||||
__u32 events_hi; /* 8 high-order of superblock update count */
|
||||
__u32 cp_events_lo; /* 9 low-order of checkpoint update count */
|
||||
__u32 cp_events_hi; /* 10 high-order of checkpoint update count */
|
||||
#else
|
||||
#error unspecified endianness
|
||||
#endif
|
||||
__u32 recovery_cp; /* 11 recovery checkpoint sector count */
|
||||
/* There are only valid for minor_version > 90 */
|
||||
|
||||
@@ -51,7 +51,10 @@
|
||||
#define PORT_8250_CIR 23 /* CIR infrared port, has its own driver */
|
||||
#define PORT_XR17V35X 24 /* Exar XR17V35x UARTs */
|
||||
#define PORT_BRCM_TRUMANAGE 25
|
||||
#define PORT_MAX_8250 25 /* max port ID */
|
||||
#define PORT_ALTR_16550_F32 26 /* Altera 16550 UART with 32 FIFOs */
|
||||
#define PORT_ALTR_16550_F64 27 /* Altera 16550 UART with 64 FIFOs */
|
||||
#define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */
|
||||
#define PORT_MAX_8250 28 /* max port ID */
|
||||
|
||||
/*
|
||||
* ARM specific type numbers. These are not currently guaranteed
|
||||
|
||||
@@ -39,9 +39,11 @@ enum {
|
||||
UNIX_DIAG_MEMINFO,
|
||||
UNIX_DIAG_SHUTDOWN,
|
||||
|
||||
UNIX_DIAG_MAX,
|
||||
__UNIX_DIAG_MAX,
|
||||
};
|
||||
|
||||
#define UNIX_DIAG_MAX (__UNIX_DIAG_MAX - 1)
|
||||
|
||||
struct unix_diag_vfs {
|
||||
__u32 udiag_vfs_ino;
|
||||
__u32 udiag_vfs_dev;
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
*/
|
||||
#define ATMEL_LCDC_WIRING_BGR 0
|
||||
#define ATMEL_LCDC_WIRING_RGB 1
|
||||
#define ATMEL_LCDC_WIRING_RGB555 2
|
||||
|
||||
|
||||
/* LCD Controller info data structure, stored in device platform_data */
|
||||
@@ -62,6 +61,7 @@ struct atmel_lcdfb_info {
|
||||
void (*atmel_lcdfb_power_control)(int on);
|
||||
struct fb_monspecs *default_monspecs;
|
||||
u32 pseudo_palette[16];
|
||||
bool have_intensity_bit;
|
||||
};
|
||||
|
||||
#define ATMEL_LCDC_DMABADDR1 0x00
|
||||
|
||||
@@ -138,11 +138,21 @@ struct blkif_request_discard {
|
||||
uint8_t _pad3;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
struct blkif_request_other {
|
||||
uint8_t _pad1;
|
||||
blkif_vdev_t _pad2; /* only for read/write requests */
|
||||
#ifdef CONFIG_X86_64
|
||||
uint32_t _pad3; /* offsetof(blkif_req..,u.other.id)==8*/
|
||||
#endif
|
||||
uint64_t id; /* private guest value, echoed in resp */
|
||||
} __attribute__((__packed__));
|
||||
|
||||
struct blkif_request {
|
||||
uint8_t operation; /* BLKIF_OP_??? */
|
||||
union {
|
||||
struct blkif_request_rw rw;
|
||||
struct blkif_request_discard discard;
|
||||
struct blkif_request_other other;
|
||||
} u;
|
||||
} __attribute__((__packed__));
|
||||
|
||||
|
||||
@@ -251,6 +251,12 @@ struct physdev_pci_device_add {
|
||||
|
||||
#define PHYSDEVOP_pci_device_remove 26
|
||||
#define PHYSDEVOP_restore_msi_ext 27
|
||||
/*
|
||||
* Dom0 should use these two to announce MMIO resources assigned to
|
||||
* MSI-X capable devices won't (prepare) or may (release) change.
|
||||
*/
|
||||
#define PHYSDEVOP_prepare_msix 30
|
||||
#define PHYSDEVOP_release_msix 31
|
||||
struct physdev_pci_device {
|
||||
/* IN */
|
||||
uint16_t seg;
|
||||
|
||||
Reference in New Issue
Block a user