Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
This commit is contained in:
commit
eb84d6b604
694 changed files with 6362 additions and 3447 deletions
|
|
@ -127,10 +127,9 @@ enum {
|
|||
BLK_MQ_RQ_QUEUE_ERROR = 2, /* end IO with error */
|
||||
|
||||
BLK_MQ_F_SHOULD_MERGE = 1 << 0,
|
||||
BLK_MQ_F_SHOULD_SORT = 1 << 1,
|
||||
BLK_MQ_F_TAG_SHARED = 1 << 2,
|
||||
BLK_MQ_F_SG_MERGE = 1 << 3,
|
||||
BLK_MQ_F_SYSFS_UP = 1 << 4,
|
||||
BLK_MQ_F_TAG_SHARED = 1 << 1,
|
||||
BLK_MQ_F_SG_MERGE = 1 << 2,
|
||||
BLK_MQ_F_SYSFS_UP = 1 << 3,
|
||||
|
||||
BLK_MQ_S_STOPPED = 0,
|
||||
BLK_MQ_S_TAG_ACTIVE = 1,
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@
|
|||
#define NULL_ADDR ((block_t)0) /* used as block_t addresses */
|
||||
#define NEW_ADDR ((block_t)-1) /* used as block_t addresses */
|
||||
|
||||
/* 0, 1(node nid), 2(meta nid) are reserved node id */
|
||||
#define F2FS_RESERVED_NODE_NUM 3
|
||||
|
||||
#define F2FS_ROOT_INO(sbi) (sbi->root_ino_num)
|
||||
#define F2FS_NODE_INO(sbi) (sbi->node_ino_num)
|
||||
#define F2FS_META_INO(sbi) (sbi->meta_ino_num)
|
||||
|
|
@ -87,6 +90,8 @@ struct f2fs_super_block {
|
|||
#define CP_ORPHAN_PRESENT_FLAG 0x00000002
|
||||
#define CP_UMOUNT_FLAG 0x00000001
|
||||
|
||||
#define F2FS_CP_PACKS 2 /* # of checkpoint packs */
|
||||
|
||||
struct f2fs_checkpoint {
|
||||
__le64 checkpoint_ver; /* checkpoint block version number */
|
||||
__le64 user_block_count; /* # of user blocks */
|
||||
|
|
@ -123,6 +128,9 @@ struct f2fs_checkpoint {
|
|||
*/
|
||||
#define F2FS_ORPHANS_PER_BLOCK 1020
|
||||
|
||||
#define GET_ORPHAN_BLOCKS(n) ((n + F2FS_ORPHANS_PER_BLOCK - 1) / \
|
||||
F2FS_ORPHANS_PER_BLOCK)
|
||||
|
||||
struct f2fs_orphan_block {
|
||||
__le32 ino[F2FS_ORPHANS_PER_BLOCK]; /* inode numbers */
|
||||
__le32 reserved; /* reserved */
|
||||
|
|
@ -144,6 +152,7 @@ struct f2fs_extent {
|
|||
#define F2FS_NAME_LEN 255
|
||||
#define F2FS_INLINE_XATTR_ADDRS 50 /* 200 bytes for inline xattrs */
|
||||
#define DEF_ADDRS_PER_INODE 923 /* Address Pointers in an Inode */
|
||||
#define DEF_NIDS_PER_INODE 5 /* Node IDs in an Inode */
|
||||
#define ADDRS_PER_INODE(fi) addrs_per_inode(fi)
|
||||
#define ADDRS_PER_BLOCK 1018 /* Address Pointers in a Direct Block */
|
||||
#define NIDS_PER_BLOCK 1018 /* Node IDs in an Indirect Block */
|
||||
|
|
@ -163,8 +172,9 @@ struct f2fs_extent {
|
|||
#define MAX_INLINE_DATA (sizeof(__le32) * (DEF_ADDRS_PER_INODE - \
|
||||
F2FS_INLINE_XATTR_ADDRS - 1))
|
||||
|
||||
#define INLINE_DATA_OFFSET (PAGE_CACHE_SIZE - sizeof(struct node_footer) \
|
||||
- sizeof(__le32) * (DEF_ADDRS_PER_INODE + 5 - 1))
|
||||
#define INLINE_DATA_OFFSET (PAGE_CACHE_SIZE - sizeof(struct node_footer) -\
|
||||
sizeof(__le32) * (DEF_ADDRS_PER_INODE + \
|
||||
DEF_NIDS_PER_INODE - 1))
|
||||
|
||||
struct f2fs_inode {
|
||||
__le16 i_mode; /* file mode */
|
||||
|
|
@ -194,7 +204,7 @@ struct f2fs_inode {
|
|||
|
||||
__le32 i_addr[DEF_ADDRS_PER_INODE]; /* Pointers to data blocks */
|
||||
|
||||
__le32 i_nid[5]; /* direct(2), indirect(2),
|
||||
__le32 i_nid[DEF_NIDS_PER_INODE]; /* direct(2), indirect(2),
|
||||
double_indirect(1) node id */
|
||||
} __packed;
|
||||
|
||||
|
|
|
|||
|
|
@ -102,6 +102,15 @@ enum {
|
|||
FTRACE_OPS_FL_DELETED = 1 << 8,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_DYNAMIC_FTRACE
|
||||
/* The hash used to know what functions callbacks trace */
|
||||
struct ftrace_ops_hash {
|
||||
struct ftrace_hash *notrace_hash;
|
||||
struct ftrace_hash *filter_hash;
|
||||
struct mutex regex_lock;
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Note, ftrace_ops can be referenced outside of RCU protection.
|
||||
* (Although, for perf, the control ops prevent that). If ftrace_ops is
|
||||
|
|
@ -121,10 +130,9 @@ struct ftrace_ops {
|
|||
int __percpu *disabled;
|
||||
#ifdef CONFIG_DYNAMIC_FTRACE
|
||||
int nr_trampolines;
|
||||
struct ftrace_hash *notrace_hash;
|
||||
struct ftrace_hash *filter_hash;
|
||||
struct ftrace_ops_hash local_hash;
|
||||
struct ftrace_ops_hash *func_hash;
|
||||
struct ftrace_hash *tramp_hash;
|
||||
struct mutex regex_lock;
|
||||
unsigned long trampoline;
|
||||
#endif
|
||||
};
|
||||
|
|
|
|||
|
|
@ -16,8 +16,6 @@ struct device;
|
|||
*/
|
||||
struct gpio_desc;
|
||||
|
||||
#ifdef CONFIG_GPIOLIB
|
||||
|
||||
#define GPIOD_FLAGS_BIT_DIR_SET BIT(0)
|
||||
#define GPIOD_FLAGS_BIT_DIR_OUT BIT(1)
|
||||
#define GPIOD_FLAGS_BIT_DIR_VAL BIT(2)
|
||||
|
|
@ -34,64 +32,38 @@ enum gpiod_flags {
|
|||
GPIOD_FLAGS_BIT_DIR_VAL,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_GPIOLIB
|
||||
|
||||
/* Acquire and dispose GPIOs */
|
||||
struct gpio_desc *__must_check __gpiod_get(struct device *dev,
|
||||
const char *con_id,
|
||||
enum gpiod_flags flags);
|
||||
#define __gpiod_get(dev, con_id, flags, ...) __gpiod_get(dev, con_id, flags)
|
||||
#define gpiod_get(varargs...) __gpiod_get(varargs, 0)
|
||||
struct gpio_desc *__must_check __gpiod_get_index(struct device *dev,
|
||||
const char *con_id,
|
||||
unsigned int idx,
|
||||
enum gpiod_flags flags);
|
||||
#define __gpiod_get_index(dev, con_id, index, flags, ...) \
|
||||
__gpiod_get_index(dev, con_id, index, flags)
|
||||
#define gpiod_get_index(varargs...) __gpiod_get_index(varargs, 0)
|
||||
struct gpio_desc *__must_check __gpiod_get_optional(struct device *dev,
|
||||
const char *con_id,
|
||||
enum gpiod_flags flags);
|
||||
#define __gpiod_get_optional(dev, con_id, flags, ...) \
|
||||
__gpiod_get_optional(dev, con_id, flags)
|
||||
#define gpiod_get_optional(varargs...) __gpiod_get_optional(varargs, 0)
|
||||
struct gpio_desc *__must_check __gpiod_get_index_optional(struct device *dev,
|
||||
const char *con_id,
|
||||
unsigned int index,
|
||||
enum gpiod_flags flags);
|
||||
#define __gpiod_get_index_optional(dev, con_id, index, flags, ...) \
|
||||
__gpiod_get_index_optional(dev, con_id, index, flags)
|
||||
#define gpiod_get_index_optional(varargs...) \
|
||||
__gpiod_get_index_optional(varargs, 0)
|
||||
|
||||
void gpiod_put(struct gpio_desc *desc);
|
||||
|
||||
struct gpio_desc *__must_check __devm_gpiod_get(struct device *dev,
|
||||
const char *con_id,
|
||||
enum gpiod_flags flags);
|
||||
#define __devm_gpiod_get(dev, con_id, flags, ...) \
|
||||
__devm_gpiod_get(dev, con_id, flags)
|
||||
#define devm_gpiod_get(varargs...) __devm_gpiod_get(varargs, 0)
|
||||
struct gpio_desc *__must_check __devm_gpiod_get_index(struct device *dev,
|
||||
const char *con_id,
|
||||
unsigned int idx,
|
||||
enum gpiod_flags flags);
|
||||
#define __devm_gpiod_get_index(dev, con_id, index, flags, ...) \
|
||||
__devm_gpiod_get_index(dev, con_id, index, flags)
|
||||
#define devm_gpiod_get_index(varargs...) __devm_gpiod_get_index(varargs, 0)
|
||||
struct gpio_desc *__must_check __devm_gpiod_get_optional(struct device *dev,
|
||||
const char *con_id,
|
||||
enum gpiod_flags flags);
|
||||
#define __devm_gpiod_get_optional(dev, con_id, flags, ...) \
|
||||
__devm_gpiod_get_optional(dev, con_id, flags)
|
||||
#define devm_gpiod_get_optional(varargs...) \
|
||||
__devm_gpiod_get_optional(varargs, 0)
|
||||
struct gpio_desc *__must_check
|
||||
__devm_gpiod_get_index_optional(struct device *dev, const char *con_id,
|
||||
unsigned int index, enum gpiod_flags flags);
|
||||
#define __devm_gpiod_get_index_optional(dev, con_id, index, flags, ...) \
|
||||
__devm_gpiod_get_index_optional(dev, con_id, index, flags)
|
||||
#define devm_gpiod_get_index_optional(varargs...) \
|
||||
__devm_gpiod_get_index_optional(varargs, 0)
|
||||
|
||||
void devm_gpiod_put(struct device *dev, struct gpio_desc *desc);
|
||||
|
||||
int gpiod_get_direction(const struct gpio_desc *desc);
|
||||
|
|
@ -124,27 +96,31 @@ int desc_to_gpio(const struct gpio_desc *desc);
|
|||
|
||||
#else /* CONFIG_GPIOLIB */
|
||||
|
||||
static inline struct gpio_desc *__must_check gpiod_get(struct device *dev,
|
||||
const char *con_id)
|
||||
static inline struct gpio_desc *__must_check __gpiod_get(struct device *dev,
|
||||
const char *con_id,
|
||||
enum gpiod_flags flags)
|
||||
{
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
static inline struct gpio_desc *__must_check gpiod_get_index(struct device *dev,
|
||||
const char *con_id,
|
||||
unsigned int idx)
|
||||
static inline struct gpio_desc *__must_check
|
||||
__gpiod_get_index(struct device *dev,
|
||||
const char *con_id,
|
||||
unsigned int idx,
|
||||
enum gpiod_flags flags)
|
||||
{
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
|
||||
static inline struct gpio_desc *__must_check
|
||||
gpiod_get_optional(struct device *dev, const char *con_id)
|
||||
__gpiod_get_optional(struct device *dev, const char *con_id,
|
||||
enum gpiod_flags flags)
|
||||
{
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
|
||||
static inline struct gpio_desc *__must_check
|
||||
gpiod_get_index_optional(struct device *dev, const char *con_id,
|
||||
unsigned int index)
|
||||
__gpiod_get_index_optional(struct device *dev, const char *con_id,
|
||||
unsigned int index, enum gpiod_flags flags)
|
||||
{
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
|
|
@ -157,28 +133,33 @@ static inline void gpiod_put(struct gpio_desc *desc)
|
|||
WARN_ON(1);
|
||||
}
|
||||
|
||||
static inline struct gpio_desc *__must_check devm_gpiod_get(struct device *dev,
|
||||
const char *con_id)
|
||||
static inline struct gpio_desc *__must_check
|
||||
__devm_gpiod_get(struct device *dev,
|
||||
const char *con_id,
|
||||
enum gpiod_flags flags)
|
||||
{
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
static inline
|
||||
struct gpio_desc *__must_check devm_gpiod_get_index(struct device *dev,
|
||||
const char *con_id,
|
||||
unsigned int idx)
|
||||
struct gpio_desc *__must_check
|
||||
__devm_gpiod_get_index(struct device *dev,
|
||||
const char *con_id,
|
||||
unsigned int idx,
|
||||
enum gpiod_flags flags)
|
||||
{
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
|
||||
static inline struct gpio_desc *__must_check
|
||||
devm_gpiod_get_optional(struct device *dev, const char *con_id)
|
||||
__devm_gpiod_get_optional(struct device *dev, const char *con_id,
|
||||
enum gpiod_flags flags)
|
||||
{
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
|
||||
static inline struct gpio_desc *__must_check
|
||||
devm_gpiod_get_index_optional(struct device *dev, const char *con_id,
|
||||
unsigned int index)
|
||||
__devm_gpiod_get_index_optional(struct device *dev, const char *con_id,
|
||||
unsigned int index, enum gpiod_flags flags)
|
||||
{
|
||||
return ERR_PTR(-ENOSYS);
|
||||
}
|
||||
|
|
@ -303,9 +284,43 @@ static inline int desc_to_gpio(const struct gpio_desc *desc)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
||||
#endif /* CONFIG_GPIOLIB */
|
||||
|
||||
/*
|
||||
* Vararg-hacks! This is done to transition the kernel to always pass
|
||||
* the options flags argument to the below functions. During a transition
|
||||
* phase these vararg macros make both old-and-newstyle code compile,
|
||||
* but when all calls to the elder API are removed, these should go away
|
||||
* and the __gpiod_get() etc functions above be renamed just gpiod_get()
|
||||
* etc.
|
||||
*/
|
||||
#define __gpiod_get(dev, con_id, flags, ...) __gpiod_get(dev, con_id, flags)
|
||||
#define gpiod_get(varargs...) __gpiod_get(varargs, 0)
|
||||
#define __gpiod_get_index(dev, con_id, index, flags, ...) \
|
||||
__gpiod_get_index(dev, con_id, index, flags)
|
||||
#define gpiod_get_index(varargs...) __gpiod_get_index(varargs, 0)
|
||||
#define __gpiod_get_optional(dev, con_id, flags, ...) \
|
||||
__gpiod_get_optional(dev, con_id, flags)
|
||||
#define gpiod_get_optional(varargs...) __gpiod_get_optional(varargs, 0)
|
||||
#define __gpiod_get_index_optional(dev, con_id, index, flags, ...) \
|
||||
__gpiod_get_index_optional(dev, con_id, index, flags)
|
||||
#define gpiod_get_index_optional(varargs...) \
|
||||
__gpiod_get_index_optional(varargs, 0)
|
||||
#define __devm_gpiod_get(dev, con_id, flags, ...) \
|
||||
__devm_gpiod_get(dev, con_id, flags)
|
||||
#define devm_gpiod_get(varargs...) __devm_gpiod_get(varargs, 0)
|
||||
#define __devm_gpiod_get_index(dev, con_id, index, flags, ...) \
|
||||
__devm_gpiod_get_index(dev, con_id, index, flags)
|
||||
#define devm_gpiod_get_index(varargs...) __devm_gpiod_get_index(varargs, 0)
|
||||
#define __devm_gpiod_get_optional(dev, con_id, flags, ...) \
|
||||
__devm_gpiod_get_optional(dev, con_id, flags)
|
||||
#define devm_gpiod_get_optional(varargs...) \
|
||||
__devm_gpiod_get_optional(varargs, 0)
|
||||
#define __devm_gpiod_get_index_optional(dev, con_id, index, flags, ...) \
|
||||
__devm_gpiod_get_index_optional(dev, con_id, index, flags)
|
||||
#define devm_gpiod_get_index_optional(varargs...) \
|
||||
__devm_gpiod_get_index_optional(varargs, 0)
|
||||
|
||||
#if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS)
|
||||
|
||||
int gpiod_export(struct gpio_desc *desc, bool direction_may_change);
|
||||
|
|
|
|||
|
|
@ -159,7 +159,11 @@ typedef struct journal_header_s
|
|||
* journal_block_tag (in the descriptor). The other h_chksum* fields are
|
||||
* not used.
|
||||
*
|
||||
* Checksum v1 and v2 are mutually exclusive features.
|
||||
* If FEATURE_INCOMPAT_CSUM_V3 is set, the descriptor block uses
|
||||
* journal_block_tag3_t to store a full 32-bit checksum. Everything else
|
||||
* is the same as v2.
|
||||
*
|
||||
* Checksum v1, v2, and v3 are mutually exclusive features.
|
||||
*/
|
||||
struct commit_header {
|
||||
__be32 h_magic;
|
||||
|
|
@ -179,6 +183,14 @@ struct commit_header {
|
|||
* raw struct shouldn't be used for pointer math or sizeof() - use
|
||||
* journal_tag_bytes(journal) instead to compute this.
|
||||
*/
|
||||
typedef struct journal_block_tag3_s
|
||||
{
|
||||
__be32 t_blocknr; /* The on-disk block number */
|
||||
__be32 t_flags; /* See below */
|
||||
__be32 t_blocknr_high; /* most-significant high 32bits. */
|
||||
__be32 t_checksum; /* crc32c(uuid+seq+block) */
|
||||
} journal_block_tag3_t;
|
||||
|
||||
typedef struct journal_block_tag_s
|
||||
{
|
||||
__be32 t_blocknr; /* The on-disk block number */
|
||||
|
|
@ -187,9 +199,6 @@ typedef struct journal_block_tag_s
|
|||
__be32 t_blocknr_high; /* most-significant high 32bits. */
|
||||
} journal_block_tag_t;
|
||||
|
||||
#define JBD2_TAG_SIZE32 (offsetof(journal_block_tag_t, t_blocknr_high))
|
||||
#define JBD2_TAG_SIZE64 (sizeof(journal_block_tag_t))
|
||||
|
||||
/* Tail of descriptor block, for checksumming */
|
||||
struct jbd2_journal_block_tail {
|
||||
__be32 t_checksum; /* crc32c(uuid+descr_block) */
|
||||
|
|
@ -284,6 +293,7 @@ typedef struct journal_superblock_s
|
|||
#define JBD2_FEATURE_INCOMPAT_64BIT 0x00000002
|
||||
#define JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT 0x00000004
|
||||
#define JBD2_FEATURE_INCOMPAT_CSUM_V2 0x00000008
|
||||
#define JBD2_FEATURE_INCOMPAT_CSUM_V3 0x00000010
|
||||
|
||||
/* Features known to this kernel version: */
|
||||
#define JBD2_KNOWN_COMPAT_FEATURES JBD2_FEATURE_COMPAT_CHECKSUM
|
||||
|
|
@ -291,7 +301,8 @@ typedef struct journal_superblock_s
|
|||
#define JBD2_KNOWN_INCOMPAT_FEATURES (JBD2_FEATURE_INCOMPAT_REVOKE | \
|
||||
JBD2_FEATURE_INCOMPAT_64BIT | \
|
||||
JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT | \
|
||||
JBD2_FEATURE_INCOMPAT_CSUM_V2)
|
||||
JBD2_FEATURE_INCOMPAT_CSUM_V2 | \
|
||||
JBD2_FEATURE_INCOMPAT_CSUM_V3)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
|
|
@ -1296,6 +1307,15 @@ static inline int tid_geq(tid_t x, tid_t y)
|
|||
extern int jbd2_journal_blocks_per_page(struct inode *inode);
|
||||
extern size_t journal_tag_bytes(journal_t *journal);
|
||||
|
||||
static inline int jbd2_journal_has_csum_v2or3(journal_t *journal)
|
||||
{
|
||||
if (JBD2_HAS_INCOMPAT_FEATURE(journal, JBD2_FEATURE_INCOMPAT_CSUM_V2) ||
|
||||
JBD2_HAS_INCOMPAT_FEATURE(journal, JBD2_FEATURE_INCOMPAT_CSUM_V3))
|
||||
return 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* We reserve t_outstanding_credits >> JBD2_CONTROL_BLOCKS_SHIFT for
|
||||
* transaction control blocks.
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
#include <linux/list.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/rwsem.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
struct device;
|
||||
|
|
@ -68,7 +69,7 @@ struct led_classdev {
|
|||
const char *default_trigger; /* Trigger to use */
|
||||
|
||||
unsigned long blink_delay_on, blink_delay_off;
|
||||
struct delayed_work blink_work;
|
||||
struct timer_list blink_timer;
|
||||
int blink_brightness;
|
||||
|
||||
struct work_struct set_brightness_work;
|
||||
|
|
|
|||
|
|
@ -1197,6 +1197,9 @@ int mlx4_map_sw_to_hw_steering_id(struct mlx4_dev *dev,
|
|||
enum mlx4_net_trans_rule_id id);
|
||||
int mlx4_hw_rule_sz(struct mlx4_dev *dev, enum mlx4_net_trans_rule_id id);
|
||||
|
||||
int mlx4_tunnel_steer_add(struct mlx4_dev *dev, unsigned char *addr,
|
||||
int port, int qpn, u16 prio, u64 *reg_id);
|
||||
|
||||
void mlx4_sync_pkey_table(struct mlx4_dev *dev, int slave, int port,
|
||||
int i, int val);
|
||||
|
||||
|
|
|
|||
|
|
@ -949,7 +949,7 @@ static inline int jedec_feature(struct nand_chip *chip)
|
|||
: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
/*
|
||||
* struct nand_sdr_timings - SDR NAND chip timings
|
||||
*
|
||||
* This struct defines the timing requirements of a SDR NAND chip.
|
||||
|
|
|
|||
|
|
@ -3272,7 +3272,7 @@ static inline int __dev_uc_sync(struct net_device *dev,
|
|||
}
|
||||
|
||||
/**
|
||||
* __dev_uc_unsync - Remove synchonized addresses from device
|
||||
* __dev_uc_unsync - Remove synchronized addresses from device
|
||||
* @dev: device to sync
|
||||
* @unsync: function to call if address should be removed
|
||||
*
|
||||
|
|
@ -3316,7 +3316,7 @@ static inline int __dev_mc_sync(struct net_device *dev,
|
|||
}
|
||||
|
||||
/**
|
||||
* __dev_mc_unsync - Remove synchonized addresses from device
|
||||
* __dev_mc_unsync - Remove synchronized addresses from device
|
||||
* @dev: device to sync
|
||||
* @unsync: function to call if address should be removed
|
||||
*
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#include <linux/in6.h>
|
||||
#include <linux/wait.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/static_key.h>
|
||||
#include <uapi/linux/netfilter.h>
|
||||
#ifdef CONFIG_NETFILTER
|
||||
static inline int NF_DROP_GETERR(int verdict)
|
||||
|
|
@ -99,9 +100,9 @@ void nf_unregister_sockopt(struct nf_sockopt_ops *reg);
|
|||
|
||||
extern struct list_head nf_hooks[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
|
||||
|
||||
#if defined(CONFIG_JUMP_LABEL)
|
||||
#include <linux/static_key.h>
|
||||
#ifdef HAVE_JUMP_LABEL
|
||||
extern struct static_key nf_hooks_needed[NFPROTO_NUMPROTO][NF_MAX_HOOKS];
|
||||
|
||||
static inline bool nf_hooks_active(u_int8_t pf, unsigned int hook)
|
||||
{
|
||||
if (__builtin_constant_p(pf) &&
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@ extern int nfs_wait_on_request(struct nfs_page *);
|
|||
extern void nfs_unlock_request(struct nfs_page *req);
|
||||
extern void nfs_unlock_and_release_request(struct nfs_page *);
|
||||
extern int nfs_page_group_lock(struct nfs_page *, bool);
|
||||
extern void nfs_page_group_lock_wait(struct nfs_page *);
|
||||
extern void nfs_page_group_unlock(struct nfs_page *);
|
||||
extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int);
|
||||
|
||||
|
|
|
|||
|
|
@ -21,8 +21,17 @@ enum nand_io {
|
|||
};
|
||||
|
||||
enum omap_ecc {
|
||||
/* 1-bit ECC calculation by GPMC, Error detection by Software */
|
||||
OMAP_ECC_HAM1_CODE_HW = 0,
|
||||
/*
|
||||
* 1-bit ECC: calculation and correction by SW
|
||||
* ECC stored at end of spare area
|
||||
*/
|
||||
OMAP_ECC_HAM1_CODE_SW = 0,
|
||||
|
||||
/*
|
||||
* 1-bit ECC: calculation by GPMC, Error detection by Software
|
||||
* ECC layout compatible with ROM code layout
|
||||
*/
|
||||
OMAP_ECC_HAM1_CODE_HW,
|
||||
/* 4-bit ECC calculation by GPMC, Error detection by Software */
|
||||
OMAP_ECC_BCH4_CODE_HW_DETECTION_SW,
|
||||
/* 4-bit ECC calculation by GPMC, Error detection by ELM */
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ struct generic_pm_domain {
|
|||
struct mutex lock;
|
||||
struct dev_power_governor *gov;
|
||||
struct work_struct power_off_work;
|
||||
char *name;
|
||||
const char *name;
|
||||
unsigned int in_progress; /* Number of devices being suspended now */
|
||||
atomic_t sd_count; /* Number of subdomains with power "on" */
|
||||
enum gpd_status status; /* Current state of the domain */
|
||||
|
|
|
|||
|
|
@ -218,6 +218,8 @@ enum regulator_type {
|
|||
* @linear_min_sel: Minimal selector for starting linear mapping
|
||||
* @fixed_uV: Fixed voltage of rails.
|
||||
* @ramp_delay: Time to settle down after voltage change (unit: uV/us)
|
||||
* @linear_ranges: A constant table of possible voltage ranges.
|
||||
* @n_linear_ranges: Number of entries in the @linear_ranges table.
|
||||
* @volt_table: Voltage mapping table (if table based mapping)
|
||||
*
|
||||
* @vsel_reg: Register for selector when using regulator_regmap_X_voltage_
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ struct regulator_state {
|
|||
* bootloader then it will be enabled when the constraints are
|
||||
* applied.
|
||||
* @apply_uV: Apply the voltage constraint when initialising.
|
||||
* @ramp_disable: Disable ramp delay when initialising or when setting voltage.
|
||||
*
|
||||
* @input_uV: Input voltage for regulator when supplied by another regulator.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ to_seqno_fence(struct fence *fence)
|
|||
* @context: the execution context this fence is a part of
|
||||
* @seqno_ofs: the offset within @sync_buf
|
||||
* @seqno: the sequence # to signal on
|
||||
* @cond: fence wait condition
|
||||
* @ops: the fence_ops for operations on this seqno fence
|
||||
*
|
||||
* This function initializes a struct seqno_fence with passed parameters,
|
||||
|
|
|
|||
|
|
@ -253,6 +253,7 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
|
|||
* the device whose settings are being modified.
|
||||
* @transfer: adds a message to the controller's transfer queue.
|
||||
* @cleanup: frees controller-specific state
|
||||
* @can_dma: determine whether this master supports DMA
|
||||
* @queued: whether this master is providing an internal message queue
|
||||
* @kworker: thread struct for message pump
|
||||
* @kworker_task: pointer to task for message pump kworker thread
|
||||
|
|
@ -262,6 +263,7 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
|
|||
* @cur_msg: the currently in-flight message
|
||||
* @cur_msg_prepared: spi_prepare_message was called for the currently
|
||||
* in-flight message
|
||||
* @cur_msg_mapped: message has been mapped for DMA
|
||||
* @xfer_completion: used by core transfer_one_message()
|
||||
* @busy: message pump is busy
|
||||
* @running: message pump is running
|
||||
|
|
@ -299,6 +301,10 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv)
|
|||
* @cs_gpios: Array of GPIOs to use as chip select lines; one per CS
|
||||
* number. Any individual value may be -ENOENT for CS lines that
|
||||
* are not GPIOs (driven by the SPI controller itself).
|
||||
* @dma_tx: DMA transmit channel
|
||||
* @dma_rx: DMA receive channel
|
||||
* @dummy_rx: dummy receive buffer for full-duplex devices
|
||||
* @dummy_tx: dummy transmit buffer for full-duplex devices
|
||||
*
|
||||
* Each SPI master controller can communicate with one or more @spi_device
|
||||
* children. These make a small bus, sharing MOSI, MISO and SCK signals
|
||||
|
|
@ -632,6 +638,7 @@ struct spi_transfer {
|
|||
* addresses for each transfer buffer
|
||||
* @complete: called to report transaction completions
|
||||
* @context: the argument to complete() when it's called
|
||||
* @frame_length: the total number of bytes in the message
|
||||
* @actual_length: the total number of bytes that were transferred in all
|
||||
* successful segments
|
||||
* @status: zero for success, else negative errno
|
||||
|
|
|
|||
|
|
@ -183,13 +183,8 @@ static inline bool tick_nohz_full_cpu(int cpu)
|
|||
|
||||
extern void tick_nohz_init(void);
|
||||
extern void __tick_nohz_full_check(void);
|
||||
extern void tick_nohz_full_kick(void);
|
||||
extern void tick_nohz_full_kick_cpu(int cpu);
|
||||
|
||||
static inline void tick_nohz_full_kick(void)
|
||||
{
|
||||
tick_nohz_full_kick_cpu(smp_processor_id());
|
||||
}
|
||||
|
||||
extern void tick_nohz_full_kick_all(void);
|
||||
extern void __tick_nohz_task_switch(struct task_struct *tsk);
|
||||
#else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue