Merge branch 'linus' into perf/core
Conflicts: tools/perf/Makefile tools/perf/builtin-test.c tools/perf/perf.h tools/perf/tests/parse-events.c tools/perf/util/evsel.h Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
@@ -205,9 +205,12 @@
|
||||
{0x1002, 0x6788, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x678A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6790, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6791, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6792, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6798, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6799, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x679A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x679B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x679E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x679F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TAHITI|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6800, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \
|
||||
@@ -217,6 +220,7 @@
|
||||
{0x1002, 0x6808, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6809, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6810, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6811, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6816, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6817, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
{0x1002, 0x6818, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PITCAIRN|RADEON_NEW_MEMMAP}, \
|
||||
|
||||
@@ -15,6 +15,7 @@ struct pt_regs;
|
||||
#define BUILD_BUG_ON_NOT_POWER_OF_2(n)
|
||||
#define BUILD_BUG_ON_ZERO(e) (0)
|
||||
#define BUILD_BUG_ON_NULL(e) ((void*)0)
|
||||
#define BUILD_BUG_ON_INVALID(e) (0)
|
||||
#define BUILD_BUG_ON(condition)
|
||||
#define BUILD_BUG() (0)
|
||||
#else /* __CHECKER__ */
|
||||
|
||||
@@ -335,8 +335,8 @@ const char *__clk_get_name(struct clk *clk);
|
||||
struct clk_hw *__clk_get_hw(struct clk *clk);
|
||||
u8 __clk_get_num_parents(struct clk *clk);
|
||||
struct clk *__clk_get_parent(struct clk *clk);
|
||||
inline int __clk_get_enable_count(struct clk *clk);
|
||||
inline int __clk_get_prepare_count(struct clk *clk);
|
||||
int __clk_get_enable_count(struct clk *clk);
|
||||
int __clk_get_prepare_count(struct clk *clk);
|
||||
unsigned long __clk_get_rate(struct clk *clk);
|
||||
unsigned long __clk_get_flags(struct clk *clk);
|
||||
int __clk_is_enabled(struct clk *clk);
|
||||
|
||||
@@ -61,7 +61,7 @@ int __dynamic_netdev_dbg(struct _ddebug *descriptor,
|
||||
const char *fmt, ...);
|
||||
|
||||
#define DEFINE_DYNAMIC_DEBUG_METADATA(name, fmt) \
|
||||
static struct _ddebug __used __aligned(8) \
|
||||
static struct _ddebug __aligned(8) \
|
||||
__attribute__((section("__verbose"))) name = { \
|
||||
.modname = KBUILD_MODNAME, \
|
||||
.function = __func__, \
|
||||
|
||||
@@ -68,7 +68,7 @@ enum extcon_cable_name {
|
||||
EXTCON_VIDEO_OUT,
|
||||
EXTCON_MECHANICAL,
|
||||
};
|
||||
extern const char *extcon_cable_name[];
|
||||
extern const char extcon_cable_name[][CABLE_NAME_MAX + 1];
|
||||
|
||||
struct extcon_cable;
|
||||
|
||||
|
||||
@@ -462,8 +462,6 @@ struct block_device {
|
||||
int bd_fsfreeze_count;
|
||||
/* Mutex for freeze */
|
||||
struct mutex bd_fsfreeze_mutex;
|
||||
/* A semaphore that prevents I/O while block size is being changed */
|
||||
struct percpu_rw_semaphore bd_block_size_semaphore;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -2049,7 +2047,6 @@ extern void unregister_blkdev(unsigned int, const char *);
|
||||
extern struct block_device *bdget(dev_t);
|
||||
extern struct block_device *bdgrab(struct block_device *bdev);
|
||||
extern void bd_set_size(struct block_device *, loff_t size);
|
||||
extern sector_t blkdev_max_block(struct block_device *bdev);
|
||||
extern void bd_forget(struct inode *inode);
|
||||
extern void bdput(struct block_device *);
|
||||
extern void invalidate_bdev(struct block_device *);
|
||||
@@ -2379,8 +2376,6 @@ extern int generic_segment_checks(const struct iovec *iov,
|
||||
unsigned long *nr_segs, size_t *count, int access_flags);
|
||||
|
||||
/* fs/block_dev.c */
|
||||
extern ssize_t blkdev_aio_read(struct kiocb *iocb, const struct iovec *iov,
|
||||
unsigned long nr_segs, loff_t pos);
|
||||
extern ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov,
|
||||
unsigned long nr_segs, loff_t pos);
|
||||
extern int blkdev_fsync(struct file *filp, loff_t start, loff_t end,
|
||||
|
||||
@@ -30,9 +30,9 @@ struct vm_area_struct;
|
||||
#define ___GFP_HARDWALL 0x20000u
|
||||
#define ___GFP_THISNODE 0x40000u
|
||||
#define ___GFP_RECLAIMABLE 0x80000u
|
||||
#define ___GFP_NOTRACK 0x200000u
|
||||
#define ___GFP_OTHER_NODE 0x800000u
|
||||
#define ___GFP_WRITE 0x1000000u
|
||||
#define ___GFP_NOTRACK 0x100000u
|
||||
#define ___GFP_OTHER_NODE 0x200000u
|
||||
#define ___GFP_WRITE 0x400000u
|
||||
|
||||
/*
|
||||
* GFP bitmasks..
|
||||
@@ -94,7 +94,7 @@ struct vm_area_struct;
|
||||
*/
|
||||
#define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK)
|
||||
|
||||
#define __GFP_BITS_SHIFT 25 /* Room for N __GFP_FOO bits */
|
||||
#define __GFP_BITS_SHIFT 23 /* Room for N __GFP_FOO bits */
|
||||
#define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
|
||||
|
||||
/* This equals 0, but use constants in case they ever change */
|
||||
|
||||
192
include/linux/hashtable.h
Normal file
192
include/linux/hashtable.h
Normal file
@@ -0,0 +1,192 @@
|
||||
/*
|
||||
* Statically sized hash table implementation
|
||||
* (C) 2012 Sasha Levin <levinsasha928@gmail.com>
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_HASHTABLE_H
|
||||
#define _LINUX_HASHTABLE_H
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/hash.h>
|
||||
#include <linux/rculist.h>
|
||||
|
||||
#define DEFINE_HASHTABLE(name, bits) \
|
||||
struct hlist_head name[1 << (bits)] = \
|
||||
{ [0 ... ((1 << (bits)) - 1)] = HLIST_HEAD_INIT }
|
||||
|
||||
#define DECLARE_HASHTABLE(name, bits) \
|
||||
struct hlist_head name[1 << (bits)]
|
||||
|
||||
#define HASH_SIZE(name) (ARRAY_SIZE(name))
|
||||
#define HASH_BITS(name) ilog2(HASH_SIZE(name))
|
||||
|
||||
/* Use hash_32 when possible to allow for fast 32bit hashing in 64bit kernels. */
|
||||
#define hash_min(val, bits) \
|
||||
(sizeof(val) <= 4 ? hash_32(val, bits) : hash_long(val, bits))
|
||||
|
||||
static inline void __hash_init(struct hlist_head *ht, unsigned int sz)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < sz; i++)
|
||||
INIT_HLIST_HEAD(&ht[i]);
|
||||
}
|
||||
|
||||
/**
|
||||
* hash_init - initialize a hash table
|
||||
* @hashtable: hashtable to be initialized
|
||||
*
|
||||
* Calculates the size of the hashtable from the given parameter, otherwise
|
||||
* same as hash_init_size.
|
||||
*
|
||||
* This has to be a macro since HASH_BITS() will not work on pointers since
|
||||
* it calculates the size during preprocessing.
|
||||
*/
|
||||
#define hash_init(hashtable) __hash_init(hashtable, HASH_SIZE(hashtable))
|
||||
|
||||
/**
|
||||
* hash_add - add an object to a hashtable
|
||||
* @hashtable: hashtable to add to
|
||||
* @node: the &struct hlist_node of the object to be added
|
||||
* @key: the key of the object to be added
|
||||
*/
|
||||
#define hash_add(hashtable, node, key) \
|
||||
hlist_add_head(node, &hashtable[hash_min(key, HASH_BITS(hashtable))])
|
||||
|
||||
/**
|
||||
* hash_add_rcu - add an object to a rcu enabled hashtable
|
||||
* @hashtable: hashtable to add to
|
||||
* @node: the &struct hlist_node of the object to be added
|
||||
* @key: the key of the object to be added
|
||||
*/
|
||||
#define hash_add_rcu(hashtable, node, key) \
|
||||
hlist_add_head_rcu(node, &hashtable[hash_min(key, HASH_BITS(hashtable))])
|
||||
|
||||
/**
|
||||
* hash_hashed - check whether an object is in any hashtable
|
||||
* @node: the &struct hlist_node of the object to be checked
|
||||
*/
|
||||
static inline bool hash_hashed(struct hlist_node *node)
|
||||
{
|
||||
return !hlist_unhashed(node);
|
||||
}
|
||||
|
||||
static inline bool __hash_empty(struct hlist_head *ht, unsigned int sz)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < sz; i++)
|
||||
if (!hlist_empty(&ht[i]))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* hash_empty - check whether a hashtable is empty
|
||||
* @hashtable: hashtable to check
|
||||
*
|
||||
* This has to be a macro since HASH_BITS() will not work on pointers since
|
||||
* it calculates the size during preprocessing.
|
||||
*/
|
||||
#define hash_empty(hashtable) __hash_empty(hashtable, HASH_SIZE(hashtable))
|
||||
|
||||
/**
|
||||
* hash_del - remove an object from a hashtable
|
||||
* @node: &struct hlist_node of the object to remove
|
||||
*/
|
||||
static inline void hash_del(struct hlist_node *node)
|
||||
{
|
||||
hlist_del_init(node);
|
||||
}
|
||||
|
||||
/**
|
||||
* hash_del_rcu - remove an object from a rcu enabled hashtable
|
||||
* @node: &struct hlist_node of the object to remove
|
||||
*/
|
||||
static inline void hash_del_rcu(struct hlist_node *node)
|
||||
{
|
||||
hlist_del_init_rcu(node);
|
||||
}
|
||||
|
||||
/**
|
||||
* hash_for_each - iterate over a hashtable
|
||||
* @name: hashtable to iterate
|
||||
* @bkt: integer to use as bucket loop cursor
|
||||
* @node: the &struct list_head to use as a loop cursor for each entry
|
||||
* @obj: the type * to use as a loop cursor for each entry
|
||||
* @member: the name of the hlist_node within the struct
|
||||
*/
|
||||
#define hash_for_each(name, bkt, node, obj, member) \
|
||||
for ((bkt) = 0, node = NULL; node == NULL && (bkt) < HASH_SIZE(name); (bkt)++)\
|
||||
hlist_for_each_entry(obj, node, &name[bkt], member)
|
||||
|
||||
/**
|
||||
* hash_for_each_rcu - iterate over a rcu enabled hashtable
|
||||
* @name: hashtable to iterate
|
||||
* @bkt: integer to use as bucket loop cursor
|
||||
* @node: the &struct list_head to use as a loop cursor for each entry
|
||||
* @obj: the type * to use as a loop cursor for each entry
|
||||
* @member: the name of the hlist_node within the struct
|
||||
*/
|
||||
#define hash_for_each_rcu(name, bkt, node, obj, member) \
|
||||
for ((bkt) = 0, node = NULL; node == NULL && (bkt) < HASH_SIZE(name); (bkt)++)\
|
||||
hlist_for_each_entry_rcu(obj, node, &name[bkt], member)
|
||||
|
||||
/**
|
||||
* hash_for_each_safe - iterate over a hashtable safe against removal of
|
||||
* hash entry
|
||||
* @name: hashtable to iterate
|
||||
* @bkt: integer to use as bucket loop cursor
|
||||
* @node: the &struct list_head to use as a loop cursor for each entry
|
||||
* @tmp: a &struct used for temporary storage
|
||||
* @obj: the type * to use as a loop cursor for each entry
|
||||
* @member: the name of the hlist_node within the struct
|
||||
*/
|
||||
#define hash_for_each_safe(name, bkt, node, tmp, obj, member) \
|
||||
for ((bkt) = 0, node = NULL; node == NULL && (bkt) < HASH_SIZE(name); (bkt)++)\
|
||||
hlist_for_each_entry_safe(obj, node, tmp, &name[bkt], member)
|
||||
|
||||
/**
|
||||
* hash_for_each_possible - iterate over all possible objects hashing to the
|
||||
* same bucket
|
||||
* @name: hashtable to iterate
|
||||
* @obj: the type * to use as a loop cursor for each entry
|
||||
* @node: the &struct list_head to use as a loop cursor for each entry
|
||||
* @member: the name of the hlist_node within the struct
|
||||
* @key: the key of the objects to iterate over
|
||||
*/
|
||||
#define hash_for_each_possible(name, obj, node, member, key) \
|
||||
hlist_for_each_entry(obj, node, &name[hash_min(key, HASH_BITS(name))], member)
|
||||
|
||||
/**
|
||||
* hash_for_each_possible_rcu - iterate over all possible objects hashing to the
|
||||
* same bucket in an rcu enabled hashtable
|
||||
* in a rcu enabled hashtable
|
||||
* @name: hashtable to iterate
|
||||
* @obj: the type * to use as a loop cursor for each entry
|
||||
* @node: the &struct list_head to use as a loop cursor for each entry
|
||||
* @member: the name of the hlist_node within the struct
|
||||
* @key: the key of the objects to iterate over
|
||||
*/
|
||||
#define hash_for_each_possible_rcu(name, obj, node, member, key) \
|
||||
hlist_for_each_entry_rcu(obj, node, &name[hash_min(key, HASH_BITS(name))], member)
|
||||
|
||||
/**
|
||||
* hash_for_each_possible_safe - iterate over all possible objects hashing to the
|
||||
* same bucket safe against removals
|
||||
* @name: hashtable to iterate
|
||||
* @obj: the type * to use as a loop cursor for each entry
|
||||
* @node: the &struct list_head to use as a loop cursor for each entry
|
||||
* @tmp: a &struct used for temporary storage
|
||||
* @member: the name of the hlist_node within the struct
|
||||
* @key: the key of the objects to iterate over
|
||||
*/
|
||||
#define hash_for_each_possible_safe(name, obj, node, tmp, member, key) \
|
||||
hlist_for_each_entry_safe(obj, node, tmp, \
|
||||
&name[hash_min(key, HASH_BITS(name))], member)
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,35 +1,8 @@
|
||||
#ifndef _LINUX_HW_BREAKPOINT_H
|
||||
#define _LINUX_HW_BREAKPOINT_H
|
||||
|
||||
enum {
|
||||
HW_BREAKPOINT_LEN_1 = 1,
|
||||
HW_BREAKPOINT_LEN_2 = 2,
|
||||
HW_BREAKPOINT_LEN_4 = 4,
|
||||
HW_BREAKPOINT_LEN_8 = 8,
|
||||
};
|
||||
|
||||
enum {
|
||||
HW_BREAKPOINT_EMPTY = 0,
|
||||
HW_BREAKPOINT_R = 1,
|
||||
HW_BREAKPOINT_W = 2,
|
||||
HW_BREAKPOINT_RW = HW_BREAKPOINT_R | HW_BREAKPOINT_W,
|
||||
HW_BREAKPOINT_X = 4,
|
||||
HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X,
|
||||
};
|
||||
|
||||
enum bp_type_idx {
|
||||
TYPE_INST = 0,
|
||||
#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS
|
||||
TYPE_DATA = 0,
|
||||
#else
|
||||
TYPE_DATA = 1,
|
||||
#endif
|
||||
TYPE_MAX
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/perf_event.h>
|
||||
#include <uapi/linux/hw_breakpoint.h>
|
||||
|
||||
#ifdef CONFIG_HAVE_HW_BREAKPOINT
|
||||
|
||||
@@ -151,6 +124,4 @@ static inline struct arch_hw_breakpoint *counter_arch_bp(struct perf_event *bp)
|
||||
}
|
||||
|
||||
#endif /* CONFIG_HAVE_HW_BREAKPOINT */
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _LINUX_HW_BREAKPOINT_H */
|
||||
|
||||
@@ -34,6 +34,7 @@ struct omap_i2c_bus_platform_data {
|
||||
u32 clkrate;
|
||||
u32 rev;
|
||||
u32 flags;
|
||||
void (*set_mpu_wkup_lat)(struct device *dev, long set);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -618,4 +618,20 @@ static inline struct dentry *iio_get_debugfs_dentry(struct iio_dev *indio_dev)
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* IIO_DEGREE_TO_RAD() - Convert degree to rad
|
||||
* @deg: A value in degree
|
||||
*
|
||||
* Returns the given value converted from degree to rad
|
||||
*/
|
||||
#define IIO_DEGREE_TO_RAD(deg) (((deg) * 314159ULL + 9000000ULL) / 18000000ULL)
|
||||
|
||||
/**
|
||||
* IIO_G_TO_M_S_2() - Convert g to meter / second**2
|
||||
* @g: A value in g
|
||||
*
|
||||
* Returns the given value converted from g to meter / second**2
|
||||
*/
|
||||
#define IIO_G_TO_M_S_2(g) ((g) * 980665ULL / 100000ULL)
|
||||
|
||||
#endif /* _INDUSTRIAL_IO_H_ */
|
||||
|
||||
@@ -698,6 +698,13 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
|
||||
#define COMPACTION_BUILD 0
|
||||
#endif
|
||||
|
||||
/* This helps us to avoid #ifdef CONFIG_SYMBOL_PREFIX */
|
||||
#ifdef CONFIG_SYMBOL_PREFIX
|
||||
#define SYMBOL_PREFIX CONFIG_SYMBOL_PREFIX
|
||||
#else
|
||||
#define SYMBOL_PREFIX ""
|
||||
#endif
|
||||
|
||||
/* Rebuild everything on CONFIG_FTRACE_MCOUNT_RECORD */
|
||||
#ifdef CONFIG_FTRACE_MCOUNT_RECORD
|
||||
# define REBUILD_DUE_TO_FTRACE_MCOUNT_RECORD
|
||||
|
||||
@@ -42,19 +42,8 @@
|
||||
*/
|
||||
#define KVM_MEMSLOT_INVALID (1UL << 16)
|
||||
|
||||
/*
|
||||
* If we support unaligned MMIO, at most one fragment will be split into two:
|
||||
*/
|
||||
#ifdef KVM_UNALIGNED_MMIO
|
||||
# define KVM_EXTRA_MMIO_FRAGMENTS 1
|
||||
#else
|
||||
# define KVM_EXTRA_MMIO_FRAGMENTS 0
|
||||
#endif
|
||||
|
||||
#define KVM_USER_MMIO_SIZE 8
|
||||
|
||||
#define KVM_MAX_MMIO_FRAGMENTS \
|
||||
(KVM_MMIO_SIZE / KVM_USER_MMIO_SIZE + KVM_EXTRA_MMIO_FRAGMENTS)
|
||||
/* Two fragments for cross MMIO pages. */
|
||||
#define KVM_MAX_MMIO_FRAGMENTS 2
|
||||
|
||||
/*
|
||||
* For the normal pfn, the highest 12 bits should be zero,
|
||||
|
||||
@@ -57,6 +57,7 @@ int memblock_add(phys_addr_t base, phys_addr_t size);
|
||||
int memblock_remove(phys_addr_t base, phys_addr_t size);
|
||||
int memblock_free(phys_addr_t base, phys_addr_t size);
|
||||
int memblock_reserve(phys_addr_t base, phys_addr_t size);
|
||||
void memblock_trim_memory(phys_addr_t align);
|
||||
|
||||
#ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
|
||||
void __next_mem_pfn_range(int *idx, int nid, unsigned long *out_start_pfn,
|
||||
|
||||
@@ -82,16 +82,6 @@ static inline void mpol_cond_put(struct mempolicy *pol)
|
||||
__mpol_put(pol);
|
||||
}
|
||||
|
||||
extern struct mempolicy *__mpol_cond_copy(struct mempolicy *tompol,
|
||||
struct mempolicy *frompol);
|
||||
static inline struct mempolicy *mpol_cond_copy(struct mempolicy *tompol,
|
||||
struct mempolicy *frompol)
|
||||
{
|
||||
if (!frompol)
|
||||
return frompol;
|
||||
return __mpol_cond_copy(tompol, frompol);
|
||||
}
|
||||
|
||||
extern struct mempolicy *__mpol_dup(struct mempolicy *pol);
|
||||
static inline struct mempolicy *mpol_dup(struct mempolicy *pol)
|
||||
{
|
||||
@@ -215,12 +205,6 @@ static inline void mpol_cond_put(struct mempolicy *pol)
|
||||
{
|
||||
}
|
||||
|
||||
static inline struct mempolicy *mpol_cond_copy(struct mempolicy *to,
|
||||
struct mempolicy *from)
|
||||
{
|
||||
return from;
|
||||
}
|
||||
|
||||
static inline void mpol_get(struct mempolicy *pol)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -30,7 +30,20 @@
|
||||
#ifndef __LINUX_MFD_MAX77693_H
|
||||
#define __LINUX_MFD_MAX77693_H
|
||||
|
||||
struct max77693_reg_data {
|
||||
u8 addr;
|
||||
u8 data;
|
||||
};
|
||||
|
||||
struct max77693_muic_platform_data {
|
||||
struct max77693_reg_data *init_data;
|
||||
int num_init_data;
|
||||
};
|
||||
|
||||
struct max77693_platform_data {
|
||||
int wakeup;
|
||||
|
||||
/* muic data */
|
||||
struct max77693_muic_platform_data *muic_data;
|
||||
};
|
||||
#endif /* __LINUX_MFD_MAX77693_H */
|
||||
|
||||
@@ -1684,9 +1684,5 @@ static inline unsigned int debug_guardpage_minorder(void) { return 0; }
|
||||
static inline bool page_is_guard(struct page *page) { return false; }
|
||||
#endif /* CONFIG_DEBUG_PAGEALLOC */
|
||||
|
||||
extern void reset_zone_present_pages(void);
|
||||
extern void fixup_zone_present_pages(int nid, unsigned long start_pfn,
|
||||
unsigned long end_pfn);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* _LINUX_MM_H */
|
||||
|
||||
@@ -137,7 +137,7 @@ struct dw_mci {
|
||||
|
||||
dma_addr_t sg_dma;
|
||||
void *sg_cpu;
|
||||
struct dw_mci_dma_ops *dma_ops;
|
||||
const struct dw_mci_dma_ops *dma_ops;
|
||||
#ifdef CONFIG_MMC_DW_IDMAC
|
||||
unsigned int ring_size;
|
||||
#else
|
||||
@@ -162,7 +162,7 @@ struct dw_mci {
|
||||
u16 data_offset;
|
||||
struct device *dev;
|
||||
struct dw_mci_board *pdata;
|
||||
struct dw_mci_drv_data *drv_data;
|
||||
const struct dw_mci_drv_data *drv_data;
|
||||
void *priv;
|
||||
struct clk *biu_clk;
|
||||
struct clk *ciu_clk;
|
||||
@@ -186,7 +186,7 @@ struct dw_mci {
|
||||
|
||||
struct regulator *vmmc; /* Power regulator */
|
||||
unsigned long irq_flags; /* IRQ flags */
|
||||
unsigned int irq;
|
||||
int irq;
|
||||
};
|
||||
|
||||
/* DMA ops for Internal/External DMAC interface */
|
||||
|
||||
@@ -91,6 +91,7 @@ struct sdhci_host {
|
||||
unsigned int quirks2; /* More deviations from spec. */
|
||||
|
||||
#define SDHCI_QUIRK2_HOST_OFF_CARD_ON (1<<0)
|
||||
#define SDHCI_QUIRK2_HOST_NO_CMD23 (1<<1)
|
||||
|
||||
int irq; /* Device IRQ */
|
||||
void __iomem *ioaddr; /* Mapped address */
|
||||
|
||||
@@ -752,7 +752,7 @@ extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn,
|
||||
unsigned long size,
|
||||
enum memmap_context context);
|
||||
|
||||
extern void lruvec_init(struct lruvec *lruvec, struct zone *zone);
|
||||
extern void lruvec_init(struct lruvec *lruvec);
|
||||
|
||||
static inline struct zone *lruvec_zone(struct lruvec *lruvec)
|
||||
{
|
||||
|
||||
@@ -1488,6 +1488,9 @@ struct napi_gro_cb {
|
||||
|
||||
/* Used in ipv6_gro_receive() */
|
||||
int proto;
|
||||
|
||||
/* used in skb_gro_receive() slow path */
|
||||
struct sk_buff *last;
|
||||
};
|
||||
|
||||
#define NAPI_GRO_CB(skb) ((struct napi_gro_cb *)(skb)->cb)
|
||||
|
||||
@@ -28,11 +28,13 @@ static inline unsigned long pci_address_to_pio(phys_addr_t addr) { return -1; }
|
||||
#endif
|
||||
|
||||
#else /* CONFIG_OF_ADDRESS */
|
||||
#ifndef of_address_to_resource
|
||||
static inline int of_address_to_resource(struct device_node *dev, int index,
|
||||
struct resource *r)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif
|
||||
static inline struct device_node *of_find_matching_node_by_address(
|
||||
struct device_node *from,
|
||||
const struct of_device_id *matches,
|
||||
@@ -40,10 +42,12 @@ static inline struct device_node *of_find_matching_node_by_address(
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
#ifndef of_iomap
|
||||
static inline void __iomem *of_iomap(struct device_node *device, int index)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
static inline const __be32 *of_get_address(struct device_node *dev, int index,
|
||||
u64 *size, unsigned int *flags)
|
||||
{
|
||||
|
||||
@@ -12,34 +12,27 @@ struct percpu_rw_semaphore {
|
||||
struct mutex mtx;
|
||||
};
|
||||
|
||||
#define light_mb() barrier()
|
||||
#define heavy_mb() synchronize_sched_expedited()
|
||||
|
||||
static inline void percpu_down_read(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
rcu_read_lock();
|
||||
rcu_read_lock_sched();
|
||||
if (unlikely(p->locked)) {
|
||||
rcu_read_unlock();
|
||||
rcu_read_unlock_sched();
|
||||
mutex_lock(&p->mtx);
|
||||
this_cpu_inc(*p->counters);
|
||||
mutex_unlock(&p->mtx);
|
||||
return;
|
||||
}
|
||||
this_cpu_inc(*p->counters);
|
||||
rcu_read_unlock();
|
||||
rcu_read_unlock_sched();
|
||||
light_mb(); /* A, between read of p->locked and read of data, paired with D */
|
||||
}
|
||||
|
||||
static inline void percpu_up_read(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
/*
|
||||
* On X86, write operation in this_cpu_dec serves as a memory unlock
|
||||
* barrier (i.e. memory accesses may be moved before the write, but
|
||||
* no memory accesses are moved past the write).
|
||||
* On other architectures this may not be the case, so we need smp_mb()
|
||||
* there.
|
||||
*/
|
||||
#if defined(CONFIG_X86) && (!defined(CONFIG_X86_PPRO_FENCE) && !defined(CONFIG_X86_OOSTORE))
|
||||
barrier();
|
||||
#else
|
||||
smp_mb();
|
||||
#endif
|
||||
light_mb(); /* B, between read of the data and write to p->counter, paired with C */
|
||||
this_cpu_dec(*p->counters);
|
||||
}
|
||||
|
||||
@@ -58,14 +51,15 @@ static inline void percpu_down_write(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
mutex_lock(&p->mtx);
|
||||
p->locked = true;
|
||||
synchronize_rcu();
|
||||
synchronize_sched_expedited(); /* make sure that all readers exit the rcu_read_lock_sched region */
|
||||
while (__percpu_count(p->counters))
|
||||
msleep(1);
|
||||
smp_rmb(); /* paired with smp_mb() in percpu_sem_up_read() */
|
||||
heavy_mb(); /* C, between read of p->counter and write to data, paired with B */
|
||||
}
|
||||
|
||||
static inline void percpu_up_write(struct percpu_rw_semaphore *p)
|
||||
{
|
||||
heavy_mb(); /* D, between write to data and write to p->locked, paired with A */
|
||||
p->locked = false;
|
||||
mutex_unlock(&p->mtx);
|
||||
}
|
||||
|
||||
31
include/linux/platform_data/omap_ocp2scp.h
Normal file
31
include/linux/platform_data/omap_ocp2scp.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* omap_ocp2scp.h -- ocp2scp header file
|
||||
*
|
||||
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Author: Kishon Vijay Abraham I <kishon@ti.com>
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __DRIVERS_OMAP_OCP2SCP_H
|
||||
#define __DRIVERS_OMAP_OCP2SCP_H
|
||||
|
||||
struct omap_ocp2scp_dev {
|
||||
const char *drv_name;
|
||||
struct resource *res;
|
||||
};
|
||||
|
||||
struct omap_ocp2scp_platform_data {
|
||||
int dev_cnt;
|
||||
struct omap_ocp2scp_dev **devices;
|
||||
};
|
||||
#endif /* __DRIVERS_OMAP_OCP2SCP_H */
|
||||
@@ -54,7 +54,8 @@ struct ptp_clock_request {
|
||||
* clock operations
|
||||
*
|
||||
* @adjfreq: Adjusts the frequency of the hardware clock.
|
||||
* parameter delta: Desired period change in parts per billion.
|
||||
* parameter delta: Desired frequency offset from nominal frequency
|
||||
* in parts per billion
|
||||
*
|
||||
* @adjtime: Shifts the time of the hardware clock.
|
||||
* parameter delta: Desired change in nanoseconds.
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
header-y += md_p.h
|
||||
header-y += md_u.h
|
||||
|
||||
@@ -11,149 +11,10 @@
|
||||
(for example /usr/src/linux/COPYING); if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef _MD_U_H
|
||||
#define _MD_U_H
|
||||
|
||||
/*
|
||||
* Different major versions are not compatible.
|
||||
* Different minor versions are only downward compatible.
|
||||
* Different patchlevel versions are downward and upward compatible.
|
||||
*/
|
||||
#define MD_MAJOR_VERSION 0
|
||||
#define MD_MINOR_VERSION 90
|
||||
/*
|
||||
* MD_PATCHLEVEL_VERSION indicates kernel functionality.
|
||||
* >=1 means different superblock formats are selectable using SET_ARRAY_INFO
|
||||
* and major_version/minor_version accordingly
|
||||
* >=2 means that Internal bitmaps are supported by setting MD_SB_BITMAP_PRESENT
|
||||
* in the super status byte
|
||||
* >=3 means that bitmap superblock version 4 is supported, which uses
|
||||
* little-ending representation rather than host-endian
|
||||
*/
|
||||
#define MD_PATCHLEVEL_VERSION 3
|
||||
#include <uapi/linux/raid/md_u.h>
|
||||
|
||||
/* ioctls */
|
||||
|
||||
/* status */
|
||||
#define RAID_VERSION _IOR (MD_MAJOR, 0x10, mdu_version_t)
|
||||
#define GET_ARRAY_INFO _IOR (MD_MAJOR, 0x11, mdu_array_info_t)
|
||||
#define GET_DISK_INFO _IOR (MD_MAJOR, 0x12, mdu_disk_info_t)
|
||||
#define PRINT_RAID_DEBUG _IO (MD_MAJOR, 0x13)
|
||||
#define RAID_AUTORUN _IO (MD_MAJOR, 0x14)
|
||||
#define GET_BITMAP_FILE _IOR (MD_MAJOR, 0x15, mdu_bitmap_file_t)
|
||||
|
||||
/* configuration */
|
||||
#define CLEAR_ARRAY _IO (MD_MAJOR, 0x20)
|
||||
#define ADD_NEW_DISK _IOW (MD_MAJOR, 0x21, mdu_disk_info_t)
|
||||
#define HOT_REMOVE_DISK _IO (MD_MAJOR, 0x22)
|
||||
#define SET_ARRAY_INFO _IOW (MD_MAJOR, 0x23, mdu_array_info_t)
|
||||
#define SET_DISK_INFO _IO (MD_MAJOR, 0x24)
|
||||
#define WRITE_RAID_INFO _IO (MD_MAJOR, 0x25)
|
||||
#define UNPROTECT_ARRAY _IO (MD_MAJOR, 0x26)
|
||||
#define PROTECT_ARRAY _IO (MD_MAJOR, 0x27)
|
||||
#define HOT_ADD_DISK _IO (MD_MAJOR, 0x28)
|
||||
#define SET_DISK_FAULTY _IO (MD_MAJOR, 0x29)
|
||||
#define HOT_GENERATE_ERROR _IO (MD_MAJOR, 0x2a)
|
||||
#define SET_BITMAP_FILE _IOW (MD_MAJOR, 0x2b, int)
|
||||
|
||||
/* usage */
|
||||
#define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t)
|
||||
/* 0x31 was START_ARRAY */
|
||||
#define STOP_ARRAY _IO (MD_MAJOR, 0x32)
|
||||
#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
|
||||
#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)
|
||||
|
||||
/* 63 partitions with the alternate major number (mdp) */
|
||||
#define MdpMinorShift 6
|
||||
#ifdef __KERNEL__
|
||||
extern int mdp_major;
|
||||
#endif
|
||||
|
||||
typedef struct mdu_version_s {
|
||||
int major;
|
||||
int minor;
|
||||
int patchlevel;
|
||||
} mdu_version_t;
|
||||
|
||||
typedef struct mdu_array_info_s {
|
||||
/*
|
||||
* Generic constant information
|
||||
*/
|
||||
int major_version;
|
||||
int minor_version;
|
||||
int patch_version;
|
||||
int ctime;
|
||||
int level;
|
||||
int size;
|
||||
int nr_disks;
|
||||
int raid_disks;
|
||||
int md_minor;
|
||||
int not_persistent;
|
||||
|
||||
/*
|
||||
* Generic state information
|
||||
*/
|
||||
int utime; /* 0 Superblock update time */
|
||||
int state; /* 1 State bits (clean, ...) */
|
||||
int active_disks; /* 2 Number of currently active disks */
|
||||
int working_disks; /* 3 Number of working disks */
|
||||
int failed_disks; /* 4 Number of failed disks */
|
||||
int spare_disks; /* 5 Number of spare disks */
|
||||
|
||||
/*
|
||||
* Personality information
|
||||
*/
|
||||
int layout; /* 0 the array's physical layout */
|
||||
int chunk_size; /* 1 chunk size in bytes */
|
||||
|
||||
} mdu_array_info_t;
|
||||
|
||||
/* non-obvious values for 'level' */
|
||||
#define LEVEL_MULTIPATH (-4)
|
||||
#define LEVEL_LINEAR (-1)
|
||||
#define LEVEL_FAULTY (-5)
|
||||
|
||||
/* we need a value for 'no level specified' and 0
|
||||
* means 'raid0', so we need something else. This is
|
||||
* for internal use only
|
||||
*/
|
||||
#define LEVEL_NONE (-1000000)
|
||||
|
||||
typedef struct mdu_disk_info_s {
|
||||
/*
|
||||
* configuration/status of one particular disk
|
||||
*/
|
||||
int number;
|
||||
int major;
|
||||
int minor;
|
||||
int raid_disk;
|
||||
int state;
|
||||
|
||||
} mdu_disk_info_t;
|
||||
|
||||
typedef struct mdu_start_info_s {
|
||||
/*
|
||||
* configuration/status of one particular disk
|
||||
*/
|
||||
int major;
|
||||
int minor;
|
||||
int raid_disk;
|
||||
int state;
|
||||
|
||||
} mdu_start_info_t;
|
||||
|
||||
typedef struct mdu_bitmap_file_s
|
||||
{
|
||||
char pathname[4096];
|
||||
} mdu_bitmap_file_t;
|
||||
|
||||
typedef struct mdu_param_s
|
||||
{
|
||||
int personality; /* 1,2,3,4 */
|
||||
int chunk_size; /* in bytes */
|
||||
int max_fault; /* unused for now */
|
||||
} mdu_param_t;
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#ifndef _LINUX_RBTREE_AUGMENTED_H
|
||||
#define _LINUX_RBTREE_AUGMENTED_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/rbtree.h>
|
||||
|
||||
/*
|
||||
|
||||
@@ -275,9 +275,11 @@ struct rio_id_table {
|
||||
* struct rio_net - RIO network info
|
||||
* @node: Node in global list of RIO networks
|
||||
* @devices: List of devices in this network
|
||||
* @switches: List of switches in this netowrk
|
||||
* @mports: List of master ports accessing this network
|
||||
* @hport: Default port for accessing this network
|
||||
* @id: RIO network ID
|
||||
* @destid_table: destID allocation table
|
||||
*/
|
||||
struct rio_net {
|
||||
struct list_head node; /* node in list of networks */
|
||||
|
||||
@@ -46,8 +46,9 @@ struct ads7846_platform_data {
|
||||
u16 debounce_rep; /* additional consecutive good readings
|
||||
* required after the first two */
|
||||
int gpio_pendown; /* the GPIO used to decide the pendown
|
||||
* state if get_pendown_state == NULL
|
||||
*/
|
||||
* state if get_pendown_state == NULL */
|
||||
int gpio_pendown_debounce; /* platform specific debounce time for
|
||||
* the gpio_pendown */
|
||||
int (*get_pendown_state)(void);
|
||||
int (*filter_init) (const struct ads7846_platform_data *pdata,
|
||||
void **filter_data);
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
*
|
||||
* Copyright (C) 2009-2010 Nokia Corporation
|
||||
*
|
||||
* Contact: Aaro Koskinen <aaro.koskinen@nokia.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
|
||||
@@ -191,7 +191,8 @@ struct tcp_sock {
|
||||
u8 do_early_retrans:1,/* Enable RFC5827 early-retransmit */
|
||||
early_retrans_delayed:1, /* Delayed ER timer installed */
|
||||
syn_data:1, /* SYN includes data */
|
||||
syn_fastopen:1; /* SYN includes Fast Open option */
|
||||
syn_fastopen:1, /* SYN includes Fast Open option */
|
||||
syn_data_acked:1;/* data in SYN is acked by SYN-ACK */
|
||||
|
||||
/* RTT measurement */
|
||||
u32 srtt; /* smoothed round trip time << 3 */
|
||||
|
||||
@@ -40,14 +40,6 @@ enum adv7604_op_ch_sel {
|
||||
ADV7604_OP_CH_SEL_RBG = 5,
|
||||
};
|
||||
|
||||
/* Primary mode (IO register 0x01, [3:0]) */
|
||||
enum adv7604_prim_mode {
|
||||
ADV7604_PRIM_MODE_COMP = 1,
|
||||
ADV7604_PRIM_MODE_RGB = 2,
|
||||
ADV7604_PRIM_MODE_HDMI_COMP = 5,
|
||||
ADV7604_PRIM_MODE_HDMI_GR = 6,
|
||||
};
|
||||
|
||||
/* Input Color Space (IO register 0x02, [7:4]) */
|
||||
enum adv7604_inp_color_space {
|
||||
ADV7604_INP_COLOR_SPACE_LIM_RGB = 0,
|
||||
@@ -103,9 +95,6 @@ struct adv7604_platform_data {
|
||||
/* Bus rotation and reordering */
|
||||
enum adv7604_op_ch_sel op_ch_sel;
|
||||
|
||||
/* Primary mode */
|
||||
enum adv7604_prim_mode prim_mode;
|
||||
|
||||
/* Select output format */
|
||||
enum adv7604_op_format_sel op_format_sel;
|
||||
|
||||
@@ -142,6 +131,16 @@ struct adv7604_platform_data {
|
||||
u8 i2c_vdp;
|
||||
};
|
||||
|
||||
/*
|
||||
* Mode of operation.
|
||||
* This is used as the input argument of the s_routing video op.
|
||||
*/
|
||||
enum adv7604_mode {
|
||||
ADV7604_MODE_COMP,
|
||||
ADV7604_MODE_GR,
|
||||
ADV7604_MODE_HDMI,
|
||||
};
|
||||
|
||||
#define V4L2_CID_ADV_RX_ANALOG_SAMPLING_PHASE (V4L2_CID_DV_CLASS_BASE + 0x1000)
|
||||
#define V4L2_CID_ADV_RX_FREE_RUN_COLOR_MANUAL (V4L2_CID_DV_CLASS_BASE + 0x1001)
|
||||
#define V4L2_CID_ADV_RX_FREE_RUN_COLOR (V4L2_CID_DV_CLASS_BASE + 0x1002)
|
||||
|
||||
@@ -1218,6 +1218,7 @@ struct cfg80211_deauth_request {
|
||||
const u8 *ie;
|
||||
size_t ie_len;
|
||||
u16 reason_code;
|
||||
bool local_state_change;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -2650,6 +2651,15 @@ unsigned int ieee80211_get_hdrlen_from_skb(const struct sk_buff *skb);
|
||||
*/
|
||||
unsigned int __attribute_const__ ieee80211_hdrlen(__le16 fc);
|
||||
|
||||
/**
|
||||
* ieee80211_get_mesh_hdrlen - get mesh extension header length
|
||||
* @meshhdr: the mesh extension header, only the flags field
|
||||
* (first byte) will be accessed
|
||||
* Returns the length of the extension header, which is always at
|
||||
* least 6 bytes and at most 18 if address 5 and 6 are present.
|
||||
*/
|
||||
unsigned int ieee80211_get_mesh_hdrlen(struct ieee80211s_hdr *meshhdr);
|
||||
|
||||
/**
|
||||
* DOC: Data path helpers
|
||||
*
|
||||
|
||||
@@ -525,6 +525,7 @@ static inline __u32 cookie_v6_init_sequence(struct sock *sk,
|
||||
extern void __tcp_push_pending_frames(struct sock *sk, unsigned int cur_mss,
|
||||
int nonagle);
|
||||
extern bool tcp_may_send_now(struct sock *sk);
|
||||
extern int __tcp_retransmit_skb(struct sock *, struct sk_buff *);
|
||||
extern int tcp_retransmit_skb(struct sock *, struct sk_buff *);
|
||||
extern void tcp_retransmit_timer(struct sock *sk);
|
||||
extern void tcp_xmit_retransmit_queue(struct sock *);
|
||||
|
||||
@@ -1351,7 +1351,7 @@ struct xfrm6_tunnel {
|
||||
};
|
||||
|
||||
extern void xfrm_init(void);
|
||||
extern void xfrm4_init(int rt_hash_size);
|
||||
extern void xfrm4_init(void);
|
||||
extern int xfrm_state_init(struct net *net);
|
||||
extern void xfrm_state_fini(struct net *net);
|
||||
extern void xfrm4_state_init(void);
|
||||
|
||||
@@ -135,6 +135,8 @@ struct scsi_device {
|
||||
* because we did a bus reset. */
|
||||
unsigned use_10_for_rw:1; /* first try 10-byte read / write */
|
||||
unsigned use_10_for_ms:1; /* first try 10-byte mode sense/select */
|
||||
unsigned no_report_opcodes:1; /* no REPORT SUPPORTED OPERATION CODES */
|
||||
unsigned no_write_same:1; /* no WRITE SAME command */
|
||||
unsigned skip_ms_page_8:1; /* do not use MODE SENSE page 0x08 */
|
||||
unsigned skip_ms_page_3f:1; /* do not use MODE SENSE page 0x3f */
|
||||
unsigned skip_vpd_pages:1; /* do not read VPD pages */
|
||||
@@ -362,6 +364,8 @@ extern int scsi_test_unit_ready(struct scsi_device *sdev, int timeout,
|
||||
int retries, struct scsi_sense_hdr *sshdr);
|
||||
extern int scsi_get_vpd_page(struct scsi_device *, u8 page, unsigned char *buf,
|
||||
int buf_len);
|
||||
extern int scsi_report_opcode(struct scsi_device *sdev, unsigned char *buffer,
|
||||
unsigned int len, unsigned char opcode);
|
||||
extern int scsi_device_set_state(struct scsi_device *sdev,
|
||||
enum scsi_device_state state);
|
||||
extern struct scsi_event *sdev_evt_alloc(enum scsi_device_event evt_type,
|
||||
|
||||
@@ -132,6 +132,7 @@ struct snd_card {
|
||||
int shutdown; /* this card is going down */
|
||||
int free_on_last_close; /* free in context of file_release */
|
||||
wait_queue_head_t shutdown_sleep;
|
||||
atomic_t refcount; /* refcount for disconnection */
|
||||
struct device *dev; /* device assigned to this card */
|
||||
struct device *card_dev; /* cardX object for sysfs */
|
||||
|
||||
@@ -189,6 +190,7 @@ struct snd_minor {
|
||||
const struct file_operations *f_ops; /* file operations */
|
||||
void *private_data; /* private data for f_ops->open */
|
||||
struct device *dev; /* device for sysfs */
|
||||
struct snd_card *card_ptr; /* assigned card instance */
|
||||
};
|
||||
|
||||
/* return a device pointer linked to each sound device as a parent */
|
||||
@@ -295,6 +297,7 @@ int snd_card_info_done(void);
|
||||
int snd_component_add(struct snd_card *card, const char *component);
|
||||
int snd_card_file_add(struct snd_card *card, struct file *file);
|
||||
int snd_card_file_remove(struct snd_card *card, struct file *file);
|
||||
void snd_card_unref(struct snd_card *card);
|
||||
|
||||
#define snd_card_set_dev(card, devptr) ((card)->dev = (devptr))
|
||||
|
||||
|
||||
@@ -377,6 +377,14 @@ DECLARE_EVENT_CLASS(xen_mmu_pgd,
|
||||
DEFINE_XEN_MMU_PGD_EVENT(xen_mmu_pgd_pin);
|
||||
DEFINE_XEN_MMU_PGD_EVENT(xen_mmu_pgd_unpin);
|
||||
|
||||
TRACE_EVENT(xen_mmu_flush_tlb_all,
|
||||
TP_PROTO(int x),
|
||||
TP_ARGS(x),
|
||||
TP_STRUCT__entry(__array(char, x, 0)),
|
||||
TP_fast_assign((void)x),
|
||||
TP_printk("%s", "")
|
||||
);
|
||||
|
||||
TRACE_EVENT(xen_mmu_flush_tlb,
|
||||
TP_PROTO(int x),
|
||||
TP_ARGS(x),
|
||||
|
||||
@@ -415,3 +415,4 @@ header-y += wireless.h
|
||||
header-y += x25.h
|
||||
header-y += xattr.h
|
||||
header-y += xfrm.h
|
||||
header-y += hw_breakpoint.h
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
#define EPOLL_CTL_ADD 1
|
||||
#define EPOLL_CTL_DEL 2
|
||||
#define EPOLL_CTL_MOD 3
|
||||
#define EPOLL_CTL_DISABLE 4
|
||||
|
||||
/*
|
||||
* Request the handling of system wakeup events so as to prevent system suspends
|
||||
|
||||
30
include/uapi/linux/hw_breakpoint.h
Normal file
30
include/uapi/linux/hw_breakpoint.h
Normal file
@@ -0,0 +1,30 @@
|
||||
#ifndef _UAPI_LINUX_HW_BREAKPOINT_H
|
||||
#define _UAPI_LINUX_HW_BREAKPOINT_H
|
||||
|
||||
enum {
|
||||
HW_BREAKPOINT_LEN_1 = 1,
|
||||
HW_BREAKPOINT_LEN_2 = 2,
|
||||
HW_BREAKPOINT_LEN_4 = 4,
|
||||
HW_BREAKPOINT_LEN_8 = 8,
|
||||
};
|
||||
|
||||
enum {
|
||||
HW_BREAKPOINT_EMPTY = 0,
|
||||
HW_BREAKPOINT_R = 1,
|
||||
HW_BREAKPOINT_W = 2,
|
||||
HW_BREAKPOINT_RW = HW_BREAKPOINT_R | HW_BREAKPOINT_W,
|
||||
HW_BREAKPOINT_X = 4,
|
||||
HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X,
|
||||
};
|
||||
|
||||
enum bp_type_idx {
|
||||
TYPE_INST = 0,
|
||||
#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS
|
||||
TYPE_DATA = 0,
|
||||
#else
|
||||
TYPE_DATA = 1,
|
||||
#endif
|
||||
TYPE_MAX
|
||||
};
|
||||
|
||||
#endif /* _UAPI_LINUX_HW_BREAKPOINT_H */
|
||||
@@ -8,4 +8,13 @@
|
||||
#define OOM_SCORE_ADJ_MIN (-1000)
|
||||
#define OOM_SCORE_ADJ_MAX 1000
|
||||
|
||||
/*
|
||||
* /proc/<pid>/oom_adj set to -17 protects from the oom killer for legacy
|
||||
* purposes.
|
||||
*/
|
||||
#define OOM_DISABLE (-17)
|
||||
/* inclusive */
|
||||
#define OOM_ADJUST_MIN (-16)
|
||||
#define OOM_ADJUST_MAX 15
|
||||
|
||||
#endif /* _UAPI__INCLUDE_LINUX_OOM_H */
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
# UAPI Header export list
|
||||
header-y += md_p.h
|
||||
header-y += md_u.h
|
||||
|
||||
155
include/uapi/linux/raid/md_u.h
Normal file
155
include/uapi/linux/raid/md_u.h
Normal file
@@ -0,0 +1,155 @@
|
||||
/*
|
||||
md_u.h : user <=> kernel API between Linux raidtools and RAID drivers
|
||||
Copyright (C) 1998 Ingo Molnar
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
(for example /usr/src/linux/COPYING); if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef _UAPI_MD_U_H
|
||||
#define _UAPI_MD_U_H
|
||||
|
||||
/*
|
||||
* Different major versions are not compatible.
|
||||
* Different minor versions are only downward compatible.
|
||||
* Different patchlevel versions are downward and upward compatible.
|
||||
*/
|
||||
#define MD_MAJOR_VERSION 0
|
||||
#define MD_MINOR_VERSION 90
|
||||
/*
|
||||
* MD_PATCHLEVEL_VERSION indicates kernel functionality.
|
||||
* >=1 means different superblock formats are selectable using SET_ARRAY_INFO
|
||||
* and major_version/minor_version accordingly
|
||||
* >=2 means that Internal bitmaps are supported by setting MD_SB_BITMAP_PRESENT
|
||||
* in the super status byte
|
||||
* >=3 means that bitmap superblock version 4 is supported, which uses
|
||||
* little-ending representation rather than host-endian
|
||||
*/
|
||||
#define MD_PATCHLEVEL_VERSION 3
|
||||
|
||||
/* ioctls */
|
||||
|
||||
/* status */
|
||||
#define RAID_VERSION _IOR (MD_MAJOR, 0x10, mdu_version_t)
|
||||
#define GET_ARRAY_INFO _IOR (MD_MAJOR, 0x11, mdu_array_info_t)
|
||||
#define GET_DISK_INFO _IOR (MD_MAJOR, 0x12, mdu_disk_info_t)
|
||||
#define PRINT_RAID_DEBUG _IO (MD_MAJOR, 0x13)
|
||||
#define RAID_AUTORUN _IO (MD_MAJOR, 0x14)
|
||||
#define GET_BITMAP_FILE _IOR (MD_MAJOR, 0x15, mdu_bitmap_file_t)
|
||||
|
||||
/* configuration */
|
||||
#define CLEAR_ARRAY _IO (MD_MAJOR, 0x20)
|
||||
#define ADD_NEW_DISK _IOW (MD_MAJOR, 0x21, mdu_disk_info_t)
|
||||
#define HOT_REMOVE_DISK _IO (MD_MAJOR, 0x22)
|
||||
#define SET_ARRAY_INFO _IOW (MD_MAJOR, 0x23, mdu_array_info_t)
|
||||
#define SET_DISK_INFO _IO (MD_MAJOR, 0x24)
|
||||
#define WRITE_RAID_INFO _IO (MD_MAJOR, 0x25)
|
||||
#define UNPROTECT_ARRAY _IO (MD_MAJOR, 0x26)
|
||||
#define PROTECT_ARRAY _IO (MD_MAJOR, 0x27)
|
||||
#define HOT_ADD_DISK _IO (MD_MAJOR, 0x28)
|
||||
#define SET_DISK_FAULTY _IO (MD_MAJOR, 0x29)
|
||||
#define HOT_GENERATE_ERROR _IO (MD_MAJOR, 0x2a)
|
||||
#define SET_BITMAP_FILE _IOW (MD_MAJOR, 0x2b, int)
|
||||
|
||||
/* usage */
|
||||
#define RUN_ARRAY _IOW (MD_MAJOR, 0x30, mdu_param_t)
|
||||
/* 0x31 was START_ARRAY */
|
||||
#define STOP_ARRAY _IO (MD_MAJOR, 0x32)
|
||||
#define STOP_ARRAY_RO _IO (MD_MAJOR, 0x33)
|
||||
#define RESTART_ARRAY_RW _IO (MD_MAJOR, 0x34)
|
||||
|
||||
/* 63 partitions with the alternate major number (mdp) */
|
||||
#define MdpMinorShift 6
|
||||
|
||||
typedef struct mdu_version_s {
|
||||
int major;
|
||||
int minor;
|
||||
int patchlevel;
|
||||
} mdu_version_t;
|
||||
|
||||
typedef struct mdu_array_info_s {
|
||||
/*
|
||||
* Generic constant information
|
||||
*/
|
||||
int major_version;
|
||||
int minor_version;
|
||||
int patch_version;
|
||||
int ctime;
|
||||
int level;
|
||||
int size;
|
||||
int nr_disks;
|
||||
int raid_disks;
|
||||
int md_minor;
|
||||
int not_persistent;
|
||||
|
||||
/*
|
||||
* Generic state information
|
||||
*/
|
||||
int utime; /* 0 Superblock update time */
|
||||
int state; /* 1 State bits (clean, ...) */
|
||||
int active_disks; /* 2 Number of currently active disks */
|
||||
int working_disks; /* 3 Number of working disks */
|
||||
int failed_disks; /* 4 Number of failed disks */
|
||||
int spare_disks; /* 5 Number of spare disks */
|
||||
|
||||
/*
|
||||
* Personality information
|
||||
*/
|
||||
int layout; /* 0 the array's physical layout */
|
||||
int chunk_size; /* 1 chunk size in bytes */
|
||||
|
||||
} mdu_array_info_t;
|
||||
|
||||
/* non-obvious values for 'level' */
|
||||
#define LEVEL_MULTIPATH (-4)
|
||||
#define LEVEL_LINEAR (-1)
|
||||
#define LEVEL_FAULTY (-5)
|
||||
|
||||
/* we need a value for 'no level specified' and 0
|
||||
* means 'raid0', so we need something else. This is
|
||||
* for internal use only
|
||||
*/
|
||||
#define LEVEL_NONE (-1000000)
|
||||
|
||||
typedef struct mdu_disk_info_s {
|
||||
/*
|
||||
* configuration/status of one particular disk
|
||||
*/
|
||||
int number;
|
||||
int major;
|
||||
int minor;
|
||||
int raid_disk;
|
||||
int state;
|
||||
|
||||
} mdu_disk_info_t;
|
||||
|
||||
typedef struct mdu_start_info_s {
|
||||
/*
|
||||
* configuration/status of one particular disk
|
||||
*/
|
||||
int major;
|
||||
int minor;
|
||||
int raid_disk;
|
||||
int state;
|
||||
|
||||
} mdu_start_info_t;
|
||||
|
||||
typedef struct mdu_bitmap_file_s
|
||||
{
|
||||
char pathname[4096];
|
||||
} mdu_bitmap_file_t;
|
||||
|
||||
typedef struct mdu_param_s
|
||||
{
|
||||
int personality; /* 1,2,3,4 */
|
||||
int chunk_size; /* in bytes */
|
||||
int max_fault; /* unused for now */
|
||||
} mdu_param_t;
|
||||
|
||||
#endif /* _UAPI_MD_U_H */
|
||||
@@ -130,6 +130,7 @@ enum {
|
||||
#define TCPI_OPT_WSCALE 4
|
||||
#define TCPI_OPT_ECN 8 /* ECN was negociated at TCP session init */
|
||||
#define TCPI_OPT_ECN_SEEN 16 /* we received at least one packet with ECT */
|
||||
#define TCPI_OPT_SYN_DATA 32 /* SYN-ACK acked data in SYN sent or rcvd */
|
||||
|
||||
enum tcp_ca_state {
|
||||
TCP_CA_Open = 0,
|
||||
|
||||
@@ -5,6 +5,36 @@
|
||||
#include <xen/interface/hvm/params.h>
|
||||
#include <asm/xen/hypercall.h>
|
||||
|
||||
static const char *param_name(int op)
|
||||
{
|
||||
#define PARAM(x) [HVM_PARAM_##x] = #x
|
||||
static const char *const names[] = {
|
||||
PARAM(CALLBACK_IRQ),
|
||||
PARAM(STORE_PFN),
|
||||
PARAM(STORE_EVTCHN),
|
||||
PARAM(PAE_ENABLED),
|
||||
PARAM(IOREQ_PFN),
|
||||
PARAM(BUFIOREQ_PFN),
|
||||
PARAM(TIMER_MODE),
|
||||
PARAM(HPET_ENABLED),
|
||||
PARAM(IDENT_PT),
|
||||
PARAM(DM_DOMAIN),
|
||||
PARAM(ACPI_S_STATE),
|
||||
PARAM(VM86_TSS),
|
||||
PARAM(VPT_ALIGN),
|
||||
PARAM(CONSOLE_PFN),
|
||||
PARAM(CONSOLE_EVTCHN),
|
||||
};
|
||||
#undef PARAM
|
||||
|
||||
if (op >= ARRAY_SIZE(names))
|
||||
return "unknown";
|
||||
|
||||
if (!names[op])
|
||||
return "reserved";
|
||||
|
||||
return names[op];
|
||||
}
|
||||
static inline int hvm_get_parameter(int idx, uint64_t *value)
|
||||
{
|
||||
struct xen_hvm_param xhv;
|
||||
@@ -14,8 +44,8 @@ static inline int hvm_get_parameter(int idx, uint64_t *value)
|
||||
xhv.index = idx;
|
||||
r = HYPERVISOR_hvm_op(HVMOP_get_param, &xhv);
|
||||
if (r < 0) {
|
||||
printk(KERN_ERR "Cannot get hvm parameter %d: %d!\n",
|
||||
idx, r);
|
||||
printk(KERN_ERR "Cannot get hvm parameter %s (%d): %d!\n",
|
||||
param_name(idx), idx, r);
|
||||
return r;
|
||||
}
|
||||
*value = xhv.value;
|
||||
|
||||
Reference in New Issue
Block a user