Merge branch 'master' into for-next
This commit is contained in:
@@ -212,7 +212,7 @@ char const *acpi_gbl_exception_names_env[] = {
|
||||
"AE_NO_GLOBAL_LOCK",
|
||||
"AE_ABORT_METHOD",
|
||||
"AE_SAME_HANDLER",
|
||||
"AE_WAKE_ONLY_GPE",
|
||||
"AE_NO_HANDLER",
|
||||
"AE_OWNER_ID_LIMIT"
|
||||
};
|
||||
|
||||
|
||||
@@ -69,6 +69,7 @@ extern acpi_name acpi_gbl_trace_method_name;
|
||||
extern u32 acpi_gbl_trace_flags;
|
||||
extern u8 acpi_gbl_enable_aml_debug_object;
|
||||
extern u8 acpi_gbl_copy_dsdt_locally;
|
||||
extern u8 acpi_gbl_truncate_io_addresses;
|
||||
|
||||
extern u32 acpi_current_gpe_count;
|
||||
extern struct acpi_table_fadt acpi_gbl_FADT;
|
||||
|
||||
@@ -663,10 +663,11 @@ typedef u32 acpi_event_status;
|
||||
#define ACPI_GPE_MAX 0xFF
|
||||
#define ACPI_NUM_GPE 256
|
||||
|
||||
/* Actions for acpi_set_gpe */
|
||||
/* Actions for acpi_set_gpe and acpi_hw_low_set_gpe */
|
||||
|
||||
#define ACPI_GPE_ENABLE 0
|
||||
#define ACPI_GPE_DISABLE 1
|
||||
#define ACPI_GPE_COND_ENABLE 2
|
||||
|
||||
/* gpe_types for acpi_enable_gpe and acpi_disable_gpe */
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ struct acpi_power_register {
|
||||
u8 space_id;
|
||||
u8 bit_width;
|
||||
u8 bit_offset;
|
||||
u8 reserved;
|
||||
u8 access_size;
|
||||
u64 address;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
@@ -63,6 +63,7 @@ struct acpi_processor_cx {
|
||||
u32 power;
|
||||
u32 usage;
|
||||
u64 time;
|
||||
u8 bm_sts_skip;
|
||||
char desc[ACPI_CX_DESC_LEN];
|
||||
};
|
||||
|
||||
|
||||
@@ -63,6 +63,12 @@
|
||||
/* Align . to a 8 byte boundary equals to maximum function alignment. */
|
||||
#define ALIGN_FUNCTION() . = ALIGN(8)
|
||||
|
||||
/*
|
||||
* Align to a 32 byte boundary equal to the
|
||||
* alignment gcc 4.5 uses for a struct
|
||||
*/
|
||||
#define STRUCT_ALIGN() . = ALIGN(32)
|
||||
|
||||
/* The actual configuration determine if the init/exit sections
|
||||
* are handled as text/data or they can be discarded (which
|
||||
* often happens at runtime)
|
||||
@@ -166,7 +172,11 @@
|
||||
LIKELY_PROFILE() \
|
||||
BRANCH_PROFILE() \
|
||||
TRACE_PRINTKS() \
|
||||
\
|
||||
STRUCT_ALIGN(); \
|
||||
FTRACE_EVENTS() \
|
||||
\
|
||||
STRUCT_ALIGN(); \
|
||||
TRACE_SYSCALLS()
|
||||
|
||||
/*
|
||||
@@ -435,7 +445,7 @@
|
||||
*/
|
||||
#define INIT_TASK_DATA_SECTION(align) \
|
||||
. = ALIGN(align); \
|
||||
.data..init_task : { \
|
||||
.data..init_task : AT(ADDR(.data..init_task) - LOAD_OFFSET) { \
|
||||
INIT_TASK_DATA(align) \
|
||||
}
|
||||
|
||||
|
||||
@@ -56,10 +56,6 @@ void ttm_put_pages(struct list_head *pages,
|
||||
enum ttm_caching_state cstate);
|
||||
/**
|
||||
* Initialize pool allocator.
|
||||
*
|
||||
* Pool allocator is internaly reference counted so it can be initialized
|
||||
* multiple times but ttm_page_alloc_fini has to be called same number of
|
||||
* times.
|
||||
*/
|
||||
int ttm_page_alloc_init(struct ttm_mem_global *glob, unsigned max_pages);
|
||||
/**
|
||||
|
||||
@@ -253,7 +253,7 @@ int acpi_resources_are_enforced(void);
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
void __init acpi_no_s4_hw_signature(void);
|
||||
void __init acpi_old_suspend_ordering(void);
|
||||
void __init acpi_s4_no_nvs(void);
|
||||
void __init acpi_nvs_nosave(void);
|
||||
#endif /* CONFIG_PM_SLEEP */
|
||||
|
||||
struct acpi_osc_context {
|
||||
|
||||
@@ -79,7 +79,6 @@ struct agp_memory {
|
||||
u32 physical;
|
||||
bool is_bound;
|
||||
bool is_flushed;
|
||||
bool vmalloc_flag;
|
||||
/* list of agp_memory mapped to the aperture */
|
||||
struct list_head mapped_list;
|
||||
/* DMA-mapped addresses */
|
||||
|
||||
@@ -14,14 +14,19 @@
|
||||
#ifndef ASMARM_AMBA_H
|
||||
#define ASMARM_AMBA_H
|
||||
|
||||
#include <linux/clk.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/err.h>
|
||||
#include <linux/resource.h>
|
||||
|
||||
#define AMBA_NR_IRQS 2
|
||||
|
||||
struct clk;
|
||||
|
||||
struct amba_device {
|
||||
struct device dev;
|
||||
struct resource res;
|
||||
struct clk *pclk;
|
||||
u64 dma_mask;
|
||||
unsigned int periphid;
|
||||
unsigned int irq[AMBA_NR_IRQS];
|
||||
@@ -59,6 +64,12 @@ struct amba_device *amba_find_device(const char *, struct device *, unsigned int
|
||||
int amba_request_regions(struct amba_device *, const char *);
|
||||
void amba_release_regions(struct amba_device *);
|
||||
|
||||
#define amba_pclk_enable(d) \
|
||||
(IS_ERR((d)->pclk) ? 0 : clk_enable((d)->pclk))
|
||||
|
||||
#define amba_pclk_disable(d) \
|
||||
do { if (!IS_ERR((d)->pclk)) clk_disable((d)->pclk); } while (0)
|
||||
|
||||
#define amba_config(d) (((d)->periphid >> 24) & 0xff)
|
||||
#define amba_rev(d) (((d)->periphid >> 20) & 0x0f)
|
||||
#define amba_manf(d) (((d)->periphid >> 12) & 0xff)
|
||||
|
||||
@@ -15,9 +15,10 @@
|
||||
* @ocr_mask: available voltages on the 4 pins from the block, this
|
||||
* is ignored if a regulator is used, see the MMC_VDD_* masks in
|
||||
* mmc/host.h
|
||||
* @translate_vdd: a callback function to translate a MMC_VDD_*
|
||||
* mask into a value to be binary or:ed and written into the
|
||||
* MMCIPWR register of the block
|
||||
* @vdd_handler: a callback function to translate a MMC_VDD_*
|
||||
* mask into a value to be binary (or set some other custom bits
|
||||
* in MMCIPWR) or:ed and written into the MMCIPWR register of the
|
||||
* block. May also control external power based on the power_mode.
|
||||
* @status: if no GPIO read function was given to the block in
|
||||
* gpio_wp (below) this function will be called to determine
|
||||
* whether a card is present in the MMC slot or not
|
||||
@@ -29,7 +30,8 @@
|
||||
struct mmci_platform_data {
|
||||
unsigned int f_max;
|
||||
unsigned int ocr_mask;
|
||||
u32 (*translate_vdd)(struct device *, unsigned int);
|
||||
u32 (*vdd_handler)(struct device *, unsigned int vdd,
|
||||
unsigned char power_mode);
|
||||
unsigned int (*status)(struct device *);
|
||||
int gpio_wp;
|
||||
int gpio_cd;
|
||||
|
||||
@@ -38,10 +38,12 @@
|
||||
#define UART01x_FR 0x18 /* Flag register (Read only). */
|
||||
#define UART010_IIR 0x1C /* Interrupt indentification register (Read). */
|
||||
#define UART010_ICR 0x1C /* Interrupt clear register (Write). */
|
||||
#define ST_UART011_LCRH_RX 0x1C /* Rx line control register. */
|
||||
#define UART01x_ILPR 0x20 /* IrDA low power counter register. */
|
||||
#define UART011_IBRD 0x24 /* Integer baud rate divisor register. */
|
||||
#define UART011_FBRD 0x28 /* Fractional baud rate divisor register. */
|
||||
#define UART011_LCRH 0x2c /* Line control register. */
|
||||
#define ST_UART011_LCRH_TX 0x2c /* Tx Line control register. */
|
||||
#define UART011_CR 0x30 /* Control register. */
|
||||
#define UART011_IFLS 0x34 /* Interrupt fifo level select. */
|
||||
#define UART011_IMSC 0x38 /* Interrupt mask. */
|
||||
@@ -84,6 +86,7 @@
|
||||
#define UART010_CR_TIE 0x0020
|
||||
#define UART010_CR_RIE 0x0010
|
||||
#define UART010_CR_MSIE 0x0008
|
||||
#define ST_UART011_CR_OVSFACT 0x0008 /* Oversampling factor */
|
||||
#define UART01x_CR_IIRLP 0x0004 /* SIR low power mode */
|
||||
#define UART01x_CR_SIREN 0x0002 /* SIR enable */
|
||||
#define UART01x_CR_UARTEN 0x0001 /* UART enable */
|
||||
|
||||
@@ -82,8 +82,6 @@ struct backing_dev_info {
|
||||
struct bdi_writeback wb; /* default writeback info for this bdi */
|
||||
spinlock_t wb_lock; /* protects update side of wb_list */
|
||||
struct list_head wb_list; /* the flusher threads hanging off this bdi */
|
||||
unsigned long wb_mask; /* bitmask of registered tasks */
|
||||
unsigned int wb_cnt; /* number of registered tasks */
|
||||
|
||||
struct list_head work_list;
|
||||
|
||||
@@ -105,8 +103,8 @@ int bdi_register(struct backing_dev_info *bdi, struct device *parent,
|
||||
int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev);
|
||||
void bdi_unregister(struct backing_dev_info *bdi);
|
||||
int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int);
|
||||
void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb,
|
||||
long nr_pages);
|
||||
void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages);
|
||||
void bdi_start_background_writeback(struct backing_dev_info *bdi);
|
||||
int bdi_writeback_task(struct bdi_writeback *wb);
|
||||
int bdi_has_dirty_io(struct backing_dev_info *bdi);
|
||||
void bdi_arm_supers_timer(void);
|
||||
|
||||
+14
-6
@@ -525,13 +525,21 @@ static inline struct cgroup_subsys_state *cgroup_subsys_state(
|
||||
return cgrp->subsys[subsys_id];
|
||||
}
|
||||
|
||||
static inline struct cgroup_subsys_state *task_subsys_state(
|
||||
struct task_struct *task, int subsys_id)
|
||||
/*
|
||||
* function to get the cgroup_subsys_state which allows for extra
|
||||
* rcu_dereference_check() conditions, such as locks used during the
|
||||
* cgroup_subsys::attach() methods.
|
||||
*/
|
||||
#define task_subsys_state_check(task, subsys_id, __c) \
|
||||
rcu_dereference_check(task->cgroups->subsys[subsys_id], \
|
||||
rcu_read_lock_held() || \
|
||||
lockdep_is_held(&task->alloc_lock) || \
|
||||
cgroup_lock_is_held() || (__c))
|
||||
|
||||
static inline struct cgroup_subsys_state *
|
||||
task_subsys_state(struct task_struct *task, int subsys_id)
|
||||
{
|
||||
return rcu_dereference_check(task->cgroups->subsys[subsys_id],
|
||||
rcu_read_lock_held() ||
|
||||
lockdep_is_held(&task->alloc_lock) ||
|
||||
cgroup_lock_is_held());
|
||||
return task_subsys_state_check(task, subsys_id, false);
|
||||
}
|
||||
|
||||
static inline struct cgroup* task_cgroup(struct task_struct *task,
|
||||
|
||||
@@ -58,8 +58,12 @@
|
||||
* naked functions because then mcount is called without stack and frame pointer
|
||||
* being set up and there is no chance to restore the lr register to the value
|
||||
* before mcount was called.
|
||||
*
|
||||
* The asm() bodies of naked functions often depend on standard calling conventions,
|
||||
* therefore they must be noinline and noclone. GCC 4.[56] currently fail to enforce
|
||||
* this, so we must do so ourselves. See GCC PR44290.
|
||||
*/
|
||||
#define __naked __attribute__((naked)) notrace
|
||||
#define __naked __attribute__((naked)) noinline __noclone notrace
|
||||
|
||||
#define __noreturn __attribute__((noreturn))
|
||||
|
||||
@@ -85,3 +89,7 @@
|
||||
#define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h)
|
||||
#define gcc_header(x) _gcc_header(x)
|
||||
#include gcc_header(__GNUC__)
|
||||
|
||||
#if !defined(__noclone)
|
||||
#define __noclone /* not needed */
|
||||
#endif
|
||||
|
||||
@@ -48,6 +48,10 @@
|
||||
* unreleased. Really, we need to have autoconf for the kernel.
|
||||
*/
|
||||
#define unreachable() __builtin_unreachable()
|
||||
|
||||
/* Mark a function definition as prohibited from being cloned. */
|
||||
#define __noclone __attribute__((__noclone__))
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
+11
-25
@@ -153,6 +153,7 @@ struct cred {
|
||||
extern void __put_cred(struct cred *);
|
||||
extern void exit_creds(struct task_struct *);
|
||||
extern int copy_creds(struct task_struct *, unsigned long);
|
||||
extern const struct cred *get_task_cred(struct task_struct *);
|
||||
extern struct cred *cred_alloc_blank(void);
|
||||
extern struct cred *prepare_creds(void);
|
||||
extern struct cred *prepare_exec_creds(void);
|
||||
@@ -273,33 +274,18 @@ static inline void put_cred(const struct cred *_cred)
|
||||
* @task: The task to query
|
||||
*
|
||||
* Access the objective credentials of a task. The caller must hold the RCU
|
||||
* readlock.
|
||||
* readlock or the task must be dead and unable to change its own credentials.
|
||||
*
|
||||
* The caller must make sure task doesn't go away, either by holding a ref on
|
||||
* task or by holding tasklist_lock to prevent it from being unlinked.
|
||||
* The result of this function should not be passed directly to get_cred();
|
||||
* rather get_task_cred() should be used instead.
|
||||
*/
|
||||
#define __task_cred(task) \
|
||||
((const struct cred *)(rcu_dereference_check((task)->real_cred, rcu_read_lock_held() || lockdep_tasklist_lock_is_held())))
|
||||
|
||||
/**
|
||||
* get_task_cred - Get another task's objective credentials
|
||||
* @task: The task to query
|
||||
*
|
||||
* Get the objective credentials of a task, pinning them so that they can't go
|
||||
* away. Accessing a task's credentials directly is not permitted.
|
||||
*
|
||||
* The caller must make sure task doesn't go away, either by holding a ref on
|
||||
* task or by holding tasklist_lock to prevent it from being unlinked.
|
||||
*/
|
||||
#define get_task_cred(task) \
|
||||
({ \
|
||||
struct cred *__cred; \
|
||||
rcu_read_lock(); \
|
||||
__cred = (struct cred *) __task_cred((task)); \
|
||||
get_cred(__cred); \
|
||||
rcu_read_unlock(); \
|
||||
__cred; \
|
||||
})
|
||||
#define __task_cred(task) \
|
||||
({ \
|
||||
const struct task_struct *__t = (task); \
|
||||
rcu_dereference_check(__t->real_cred, \
|
||||
rcu_read_lock_held() || \
|
||||
task_is_dead(__t)); \
|
||||
})
|
||||
|
||||
/**
|
||||
* get_current_cred - Get the current task's subjective credentials
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
|
||||
extern const char *drbd_buildtag(void);
|
||||
#define REL_VERSION "8.3.8rc2"
|
||||
#define REL_VERSION "8.3.8"
|
||||
#define API_VERSION 88
|
||||
#define PRO_VERSION_MIN 86
|
||||
#define PRO_VERSION_MAX 94
|
||||
|
||||
@@ -40,7 +40,7 @@ int ddebug_add_module(struct _ddebug *tab, unsigned int n,
|
||||
const char *modname);
|
||||
|
||||
#if defined(CONFIG_DYNAMIC_DEBUG)
|
||||
extern int ddebug_remove_module(char *mod_name);
|
||||
extern int ddebug_remove_module(const char *mod_name);
|
||||
|
||||
#define __dynamic_dbg_enabled(dd) ({ \
|
||||
int __ret = 0; \
|
||||
@@ -73,7 +73,7 @@ extern int ddebug_remove_module(char *mod_name);
|
||||
|
||||
#else
|
||||
|
||||
static inline int ddebug_remove_module(char *mod)
|
||||
static inline int ddebug_remove_module(const char *mod)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -379,6 +379,8 @@ struct ethtool_rxnfc {
|
||||
__u32 flow_type;
|
||||
/* The rx flow hash value or the rule DB size */
|
||||
__u64 data;
|
||||
/* The following fields are not valid and must not be used for
|
||||
* the ETHTOOL_{G,X}RXFH commands. */
|
||||
struct ethtool_rx_flow_spec fs;
|
||||
__u32 rule_cnt;
|
||||
__u32 rule_locs[0];
|
||||
|
||||
+4
-2
@@ -786,8 +786,6 @@ struct fb_tile_ops {
|
||||
#define FBINFO_MISC_USEREVENT 0x10000 /* event request
|
||||
from userspace */
|
||||
#define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */
|
||||
#define FBINFO_MISC_FIRMWARE 0x40000 /* a replaceable firmware
|
||||
inited framebuffer */
|
||||
|
||||
/* A driver may set this flag to indicate that it does want a set_par to be
|
||||
* called every time when fbcon_switch is executed. The advantage is that with
|
||||
@@ -801,6 +799,8 @@ struct fb_tile_ops {
|
||||
*/
|
||||
#define FBINFO_MISC_ALWAYS_SETPAR 0x40000
|
||||
|
||||
/* where the fb is a firmware driver, and can be replaced with a proper one */
|
||||
#define FBINFO_MISC_FIRMWARE 0x80000
|
||||
/*
|
||||
* Host and GPU endianness differ.
|
||||
*/
|
||||
@@ -873,6 +873,8 @@ struct fb_info {
|
||||
static inline struct apertures_struct *alloc_apertures(unsigned int max_num) {
|
||||
struct apertures_struct *a = kzalloc(sizeof(struct apertures_struct)
|
||||
+ max_num * sizeof(struct aperture), GFP_KERNEL);
|
||||
if (!a)
|
||||
return NULL;
|
||||
a->count = max_num;
|
||||
return a;
|
||||
}
|
||||
|
||||
@@ -61,7 +61,8 @@ struct files_struct {
|
||||
(rcu_dereference_check((fdtfd), \
|
||||
rcu_read_lock_held() || \
|
||||
lockdep_is_held(&(files)->file_lock) || \
|
||||
atomic_read(&(files)->count) == 1))
|
||||
atomic_read(&(files)->count) == 1 || \
|
||||
rcu_my_thread_group_empty()))
|
||||
|
||||
#define files_fdtable(files) \
|
||||
(rcu_dereference_check_fdtable((files), (files)->fdt))
|
||||
|
||||
+15
-1
@@ -415,7 +415,8 @@ struct buffer_head;
|
||||
typedef int (get_block_t)(struct inode *inode, sector_t iblock,
|
||||
struct buffer_head *bh_result, int create);
|
||||
typedef void (dio_iodone_t)(struct kiocb *iocb, loff_t offset,
|
||||
ssize_t bytes, void *private);
|
||||
ssize_t bytes, void *private, int ret,
|
||||
bool is_async);
|
||||
|
||||
/*
|
||||
* Attribute flags. These should be or-ed together to figure out what
|
||||
@@ -1783,6 +1784,19 @@ extern int get_sb_pseudo(struct file_system_type *, char *,
|
||||
struct vfsmount *mnt);
|
||||
extern void simple_set_mnt(struct vfsmount *mnt, struct super_block *sb);
|
||||
|
||||
static inline void sb_mark_dirty(struct super_block *sb)
|
||||
{
|
||||
sb->s_dirt = 1;
|
||||
}
|
||||
static inline void sb_mark_clean(struct super_block *sb)
|
||||
{
|
||||
sb->s_dirt = 0;
|
||||
}
|
||||
static inline int sb_is_dirty(struct super_block *sb)
|
||||
{
|
||||
return sb->s_dirt;
|
||||
}
|
||||
|
||||
/* Alas, no aliases. Too much hassle with bringing module.h everywhere */
|
||||
#define fops_get(fops) \
|
||||
(((fops) && try_module_get((fops)->owner) ? (fops) : NULL))
|
||||
|
||||
@@ -46,31 +46,31 @@ int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str,
|
||||
|
||||
#else
|
||||
|
||||
void i8042_lock_chip(void)
|
||||
static inline void i8042_lock_chip(void)
|
||||
{
|
||||
}
|
||||
|
||||
void i8042_unlock_chip(void)
|
||||
static inline void i8042_unlock_chip(void)
|
||||
{
|
||||
}
|
||||
|
||||
int i8042_command(unsigned char *param, int command)
|
||||
static inline int i8042_command(unsigned char *param, int command)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
bool i8042_check_port_owner(const struct serio *serio)
|
||||
static inline bool i8042_check_port_owner(const struct serio *serio)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
|
||||
static inline int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
|
||||
struct serio *serio))
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str,
|
||||
static inline int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str,
|
||||
struct serio *serio))
|
||||
{
|
||||
return -ENODEV;
|
||||
|
||||
@@ -67,6 +67,8 @@ static inline void macvlan_count_rx(const struct macvlan_dev *vlan,
|
||||
}
|
||||
}
|
||||
|
||||
extern void macvlan_common_setup(struct net_device *dev);
|
||||
|
||||
extern int macvlan_common_newlink(struct net *src_net, struct net_device *dev,
|
||||
struct nlattr *tb[], struct nlattr *data[],
|
||||
int (*receive)(struct sk_buff *skb),
|
||||
|
||||
@@ -1026,11 +1026,12 @@ void __jbd2_journal_insert_checkpoint(struct journal_head *, transaction_t *);
|
||||
|
||||
struct jbd2_buffer_trigger_type {
|
||||
/*
|
||||
* Fired just before a buffer is written to the journal.
|
||||
* mapped_data is a mapped buffer that is the frozen data for
|
||||
* commit.
|
||||
* Fired a the moment data to write to the journal are known to be
|
||||
* stable - so either at the moment b_frozen_data is created or just
|
||||
* before a buffer is written to the journal. mapped_data is a mapped
|
||||
* buffer that is the frozen data for commit.
|
||||
*/
|
||||
void (*t_commit)(struct jbd2_buffer_trigger_type *type,
|
||||
void (*t_frozen)(struct jbd2_buffer_trigger_type *type,
|
||||
struct buffer_head *bh, void *mapped_data,
|
||||
size_t size);
|
||||
|
||||
@@ -1042,7 +1043,7 @@ struct jbd2_buffer_trigger_type {
|
||||
struct buffer_head *bh);
|
||||
};
|
||||
|
||||
extern void jbd2_buffer_commit_trigger(struct journal_head *jh,
|
||||
extern void jbd2_buffer_frozen_trigger(struct journal_head *jh,
|
||||
void *mapped_data,
|
||||
struct jbd2_buffer_trigger_type *triggers);
|
||||
extern void jbd2_buffer_abort_trigger(struct journal_head *jh,
|
||||
|
||||
@@ -544,6 +544,21 @@ static inline void list_splice_tail_init(struct list_head *list,
|
||||
&pos->member != (head); \
|
||||
pos = n, n = list_entry(n->member.prev, typeof(*n), member))
|
||||
|
||||
/**
|
||||
* list_safe_reset_next - reset a stale list_for_each_entry_safe loop
|
||||
* @pos: the loop cursor used in the list_for_each_entry_safe loop
|
||||
* @n: temporary storage used in list_for_each_entry_safe
|
||||
* @member: the name of the list_struct within the struct.
|
||||
*
|
||||
* list_safe_reset_next is not safe to use in general if the list may be
|
||||
* modified concurrently (eg. the lock is dropped in the loop body). An
|
||||
* exception to this is if the cursor element (pos) is pinned in the list,
|
||||
* and list_safe_reset_next is called after re-taking the lock and before
|
||||
* completing the current iteration of the loop body.
|
||||
*/
|
||||
#define list_safe_reset_next(pos, n, member) \
|
||||
n = list_entry(pos->member.next, typeof(*pos), member)
|
||||
|
||||
/*
|
||||
* Double linked lists with a single pointer list head.
|
||||
* Mostly useful for hash tables where the two pointer list head is
|
||||
|
||||
@@ -1,89 +0,0 @@
|
||||
#ifndef _LINUX_LMB_H
|
||||
#define _LINUX_LMB_H
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/*
|
||||
* Logical memory blocks.
|
||||
*
|
||||
* Copyright (C) 2001 Peter Bergner, IBM Corp.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
|
||||
#define MAX_LMB_REGIONS 128
|
||||
|
||||
struct lmb_property {
|
||||
u64 base;
|
||||
u64 size;
|
||||
};
|
||||
|
||||
struct lmb_region {
|
||||
unsigned long cnt;
|
||||
u64 size;
|
||||
struct lmb_property region[MAX_LMB_REGIONS+1];
|
||||
};
|
||||
|
||||
struct lmb {
|
||||
unsigned long debug;
|
||||
u64 rmo_size;
|
||||
struct lmb_region memory;
|
||||
struct lmb_region reserved;
|
||||
};
|
||||
|
||||
extern struct lmb lmb;
|
||||
|
||||
extern void __init lmb_init(void);
|
||||
extern void __init lmb_analyze(void);
|
||||
extern long lmb_add(u64 base, u64 size);
|
||||
extern long lmb_remove(u64 base, u64 size);
|
||||
extern long __init lmb_free(u64 base, u64 size);
|
||||
extern long __init lmb_reserve(u64 base, u64 size);
|
||||
extern u64 __init lmb_alloc_nid(u64 size, u64 align, int nid,
|
||||
u64 (*nid_range)(u64, u64, int *));
|
||||
extern u64 __init lmb_alloc(u64 size, u64 align);
|
||||
extern u64 __init lmb_alloc_base(u64 size,
|
||||
u64, u64 max_addr);
|
||||
extern u64 __init __lmb_alloc_base(u64 size,
|
||||
u64 align, u64 max_addr);
|
||||
extern u64 __init lmb_phys_mem_size(void);
|
||||
extern u64 lmb_end_of_DRAM(void);
|
||||
extern void __init lmb_enforce_memory_limit(u64 memory_limit);
|
||||
extern int __init lmb_is_reserved(u64 addr);
|
||||
extern int lmb_is_region_reserved(u64 base, u64 size);
|
||||
extern int lmb_find(struct lmb_property *res);
|
||||
|
||||
extern void lmb_dump_all(void);
|
||||
|
||||
static inline u64
|
||||
lmb_size_bytes(struct lmb_region *type, unsigned long region_nr)
|
||||
{
|
||||
return type->region[region_nr].size;
|
||||
}
|
||||
static inline u64
|
||||
lmb_size_pages(struct lmb_region *type, unsigned long region_nr)
|
||||
{
|
||||
return lmb_size_bytes(type, region_nr) >> PAGE_SHIFT;
|
||||
}
|
||||
static inline u64
|
||||
lmb_start_pfn(struct lmb_region *type, unsigned long region_nr)
|
||||
{
|
||||
return type->region[region_nr].base >> PAGE_SHIFT;
|
||||
}
|
||||
static inline u64
|
||||
lmb_end_pfn(struct lmb_region *type, unsigned long region_nr)
|
||||
{
|
||||
return lmb_start_pfn(type, region_nr) +
|
||||
lmb_size_pages(type, region_nr);
|
||||
}
|
||||
|
||||
#include <asm/lmb.h>
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _LINUX_LMB_H */
|
||||
@@ -0,0 +1,20 @@
|
||||
#ifndef _MARVELL_PHY_H
|
||||
#define _MARVELL_PHY_H
|
||||
|
||||
/* Mask used for ID comparisons */
|
||||
#define MARVELL_PHY_ID_MASK 0xfffffff0
|
||||
|
||||
/* Known PHY IDs */
|
||||
#define MARVELL_PHY_ID_88E1101 0x01410c60
|
||||
#define MARVELL_PHY_ID_88E1112 0x01410c90
|
||||
#define MARVELL_PHY_ID_88E1111 0x01410cc0
|
||||
#define MARVELL_PHY_ID_88E1118 0x01410e10
|
||||
#define MARVELL_PHY_ID_88E1121R 0x01410cb0
|
||||
#define MARVELL_PHY_ID_88E1145 0x01410cd0
|
||||
#define MARVELL_PHY_ID_88E1240 0x01410e30
|
||||
|
||||
/* struct phy_device dev_flags definitions */
|
||||
#define MARVELL_PHY_M1145_FLAGS_RESISTANCE 0x00000001
|
||||
#define MARVELL_PHY_M1118_DNS323_LEDS 0x00000002
|
||||
|
||||
#endif /* _MARVELL_PHY_H */
|
||||
@@ -0,0 +1,89 @@
|
||||
#ifndef _LINUX_MEMBLOCK_H
|
||||
#define _LINUX_MEMBLOCK_H
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/*
|
||||
* Logical memory blocks.
|
||||
*
|
||||
* Copyright (C) 2001 Peter Bergner, IBM Corp.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include <linux/init.h>
|
||||
#include <linux/mm.h>
|
||||
|
||||
#define MAX_MEMBLOCK_REGIONS 128
|
||||
|
||||
struct memblock_property {
|
||||
u64 base;
|
||||
u64 size;
|
||||
};
|
||||
|
||||
struct memblock_region {
|
||||
unsigned long cnt;
|
||||
u64 size;
|
||||
struct memblock_property region[MAX_MEMBLOCK_REGIONS+1];
|
||||
};
|
||||
|
||||
struct memblock {
|
||||
unsigned long debug;
|
||||
u64 rmo_size;
|
||||
struct memblock_region memory;
|
||||
struct memblock_region reserved;
|
||||
};
|
||||
|
||||
extern struct memblock memblock;
|
||||
|
||||
extern void __init memblock_init(void);
|
||||
extern void __init memblock_analyze(void);
|
||||
extern long memblock_add(u64 base, u64 size);
|
||||
extern long memblock_remove(u64 base, u64 size);
|
||||
extern long __init memblock_free(u64 base, u64 size);
|
||||
extern long __init memblock_reserve(u64 base, u64 size);
|
||||
extern u64 __init memblock_alloc_nid(u64 size, u64 align, int nid,
|
||||
u64 (*nid_range)(u64, u64, int *));
|
||||
extern u64 __init memblock_alloc(u64 size, u64 align);
|
||||
extern u64 __init memblock_alloc_base(u64 size,
|
||||
u64, u64 max_addr);
|
||||
extern u64 __init __memblock_alloc_base(u64 size,
|
||||
u64 align, u64 max_addr);
|
||||
extern u64 __init memblock_phys_mem_size(void);
|
||||
extern u64 memblock_end_of_DRAM(void);
|
||||
extern void __init memblock_enforce_memory_limit(u64 memory_limit);
|
||||
extern int __init memblock_is_reserved(u64 addr);
|
||||
extern int memblock_is_region_reserved(u64 base, u64 size);
|
||||
extern int memblock_find(struct memblock_property *res);
|
||||
|
||||
extern void memblock_dump_all(void);
|
||||
|
||||
static inline u64
|
||||
memblock_size_bytes(struct memblock_region *type, unsigned long region_nr)
|
||||
{
|
||||
return type->region[region_nr].size;
|
||||
}
|
||||
static inline u64
|
||||
memblock_size_pages(struct memblock_region *type, unsigned long region_nr)
|
||||
{
|
||||
return memblock_size_bytes(type, region_nr) >> PAGE_SHIFT;
|
||||
}
|
||||
static inline u64
|
||||
memblock_start_pfn(struct memblock_region *type, unsigned long region_nr)
|
||||
{
|
||||
return type->region[region_nr].base >> PAGE_SHIFT;
|
||||
}
|
||||
static inline u64
|
||||
memblock_end_pfn(struct memblock_region *type, unsigned long region_nr)
|
||||
{
|
||||
return memblock_start_pfn(type, region_nr) +
|
||||
memblock_size_pages(type, region_nr);
|
||||
}
|
||||
|
||||
#include <asm/memblock.h>
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _LINUX_MEMBLOCK_H */
|
||||
+1
-1
@@ -999,7 +999,7 @@ static inline void sync_mm_rss(struct task_struct *task, struct mm_struct *mm)
|
||||
* querying the cache size, so a fastpath for that case is appropriate.
|
||||
*/
|
||||
struct shrinker {
|
||||
int (*shrink)(int nr_to_scan, gfp_t gfp_mask);
|
||||
int (*shrink)(struct shrinker *, int nr_to_scan, gfp_t gfp_mask);
|
||||
int seeks; /* seeks to recreate an obj */
|
||||
|
||||
/* These are for internal use */
|
||||
|
||||
@@ -19,6 +19,11 @@ struct mv643xx_eth_shared_platform_data {
|
||||
struct mbus_dram_target_info *dram;
|
||||
struct platform_device *shared_smi;
|
||||
unsigned int t_clk;
|
||||
/*
|
||||
* Max packet size for Tx IP/Layer 4 checksum, when set to 0, default
|
||||
* limit of 9KiB will be used.
|
||||
*/
|
||||
int tx_csum_limit;
|
||||
};
|
||||
|
||||
#define MV643XX_ETH_PHY_ADDR_DEFAULT 0
|
||||
|
||||
+1
-2
@@ -129,10 +129,9 @@ struct socket_wq {
|
||||
* @type: socket type (%SOCK_STREAM, etc)
|
||||
* @flags: socket flags (%SOCK_ASYNC_NOSPACE, etc)
|
||||
* @ops: protocol specific socket operations
|
||||
* @fasync_list: Asynchronous wake up list
|
||||
* @file: File back pointer for gc
|
||||
* @sk: internal networking protocol agnostic socket representation
|
||||
* @wait: wait queue for several uses
|
||||
* @wq: wait queue for several uses
|
||||
*/
|
||||
struct socket {
|
||||
socket_state state;
|
||||
|
||||
@@ -1656,6 +1656,9 @@ static inline int netif_is_multiqueue(const struct net_device *dev)
|
||||
return (dev->num_tx_queues > 1);
|
||||
}
|
||||
|
||||
extern void netif_set_real_num_tx_queues(struct net_device *dev,
|
||||
unsigned int txq);
|
||||
|
||||
/* Use this variant when it is known for sure that it
|
||||
* is executing from hardware interrupt context or with hardware interrupts
|
||||
* disabled.
|
||||
@@ -2329,7 +2332,7 @@ do { \
|
||||
#endif
|
||||
|
||||
#if defined(VERBOSE_DEBUG)
|
||||
#define netif_vdbg netdev_dbg
|
||||
#define netif_vdbg netif_dbg
|
||||
#else
|
||||
#define netif_vdbg(priv, type, dev, format, args...) \
|
||||
({ \
|
||||
|
||||
@@ -493,8 +493,15 @@ extern int nfs_wb_all(struct inode *inode);
|
||||
extern int nfs_wb_page(struct inode *inode, struct page* page);
|
||||
extern int nfs_wb_page_cancel(struct inode *inode, struct page* page);
|
||||
#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4)
|
||||
extern int nfs_commit_inode(struct inode *, int);
|
||||
extern struct nfs_write_data *nfs_commitdata_alloc(void);
|
||||
extern void nfs_commit_free(struct nfs_write_data *wdata);
|
||||
#else
|
||||
static inline int
|
||||
nfs_commit_inode(struct inode *inode, int how)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline int
|
||||
|
||||
@@ -253,7 +253,7 @@ struct omapfb_platform_data {
|
||||
/* in arch/arm/plat-omap/fb.c */
|
||||
extern void omapfb_set_platform_data(struct omapfb_platform_data *data);
|
||||
extern void omapfb_set_ctrl_platform_data(void *pdata);
|
||||
extern void omapfb_reserve_sdram(void);
|
||||
extern void omapfb_reserve_sdram_memblock(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -288,6 +288,7 @@ struct pci_dev {
|
||||
*/
|
||||
unsigned int irq;
|
||||
struct resource resource[DEVICE_COUNT_RESOURCE]; /* I/O and memory regions + expansion ROMs */
|
||||
resource_size_t fw_addr[DEVICE_COUNT_RESOURCE]; /* FW-assigned addr */
|
||||
|
||||
/* These fields are used by common fixups */
|
||||
unsigned int transparent:1; /* Transparent PCI bridge */
|
||||
|
||||
@@ -1261,6 +1261,7 @@
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2
|
||||
#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP89_SATA 0x0D85
|
||||
|
||||
#define PCI_VENDOR_ID_IMS 0x10e0
|
||||
#define PCI_DEVICE_ID_IMS_TT128 0x9128
|
||||
|
||||
@@ -110,7 +110,6 @@ struct rb_node
|
||||
struct rb_root
|
||||
{
|
||||
struct rb_node *rb_node;
|
||||
void (*augment_cb)(struct rb_node *node);
|
||||
};
|
||||
|
||||
|
||||
@@ -130,9 +129,7 @@ static inline void rb_set_color(struct rb_node *rb, int color)
|
||||
rb->rb_parent_color = (rb->rb_parent_color & ~1) | color;
|
||||
}
|
||||
|
||||
#define RB_ROOT (struct rb_root) { NULL, NULL, }
|
||||
#define RB_AUGMENT_ROOT(x) (struct rb_root) { NULL, x}
|
||||
|
||||
#define RB_ROOT (struct rb_root) { NULL, }
|
||||
#define rb_entry(ptr, type, member) container_of(ptr, type, member)
|
||||
|
||||
#define RB_EMPTY_ROOT(root) ((root)->rb_node == NULL)
|
||||
@@ -142,6 +139,14 @@ static inline void rb_set_color(struct rb_node *rb, int color)
|
||||
extern void rb_insert_color(struct rb_node *, struct rb_root *);
|
||||
extern void rb_erase(struct rb_node *, struct rb_root *);
|
||||
|
||||
typedef void (*rb_augment_f)(struct rb_node *node, void *data);
|
||||
|
||||
extern void rb_augment_insert(struct rb_node *node,
|
||||
rb_augment_f func, void *data);
|
||||
extern struct rb_node *rb_augment_erase_begin(struct rb_node *node);
|
||||
extern void rb_augment_erase_end(struct rb_node *node,
|
||||
rb_augment_f func, void *data);
|
||||
|
||||
/* Find logical next and previous nodes in a tree */
|
||||
extern struct rb_node *rb_next(const struct rb_node *);
|
||||
extern struct rb_node *rb_prev(const struct rb_node *);
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* tps6507x.h -- Voltage regulation for the Texas Instruments TPS6507X
|
||||
*
|
||||
* Copyright (C) 2010 Texas Instruments, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef REGULATOR_TPS6507X
|
||||
#define REGULATOR_TPS6507X
|
||||
|
||||
/**
|
||||
* tps6507x_reg_platform_data - platform data for tps6507x
|
||||
* @defdcdc_default: Defines whether DCDC high or the low register controls
|
||||
* output voltage by default. Valid for DCDC2 and DCDC3 outputs only.
|
||||
*/
|
||||
struct tps6507x_reg_platform_data {
|
||||
bool defdcdc_default;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -139,7 +139,7 @@ extern int nr_processes(void);
|
||||
extern unsigned long nr_running(void);
|
||||
extern unsigned long nr_uninterruptible(void);
|
||||
extern unsigned long nr_iowait(void);
|
||||
extern unsigned long nr_iowait_cpu(void);
|
||||
extern unsigned long nr_iowait_cpu(int cpu);
|
||||
extern unsigned long this_cpu_load(void);
|
||||
|
||||
|
||||
@@ -214,6 +214,7 @@ extern char ___assert_task_state[1 - 2*!!(
|
||||
|
||||
#define task_is_traced(task) ((task->state & __TASK_TRACED) != 0)
|
||||
#define task_is_stopped(task) ((task->state & __TASK_STOPPED) != 0)
|
||||
#define task_is_dead(task) ((task)->exit_state != 0)
|
||||
#define task_is_stopped_or_traced(task) \
|
||||
((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0)
|
||||
#define task_contributes_to_load(task) \
|
||||
|
||||
+13
-13
@@ -256,22 +256,22 @@ static inline int hibernate(void) { return -ENOSYS; }
|
||||
static inline bool system_entering_hibernation(void) { return false; }
|
||||
#endif /* CONFIG_HIBERNATION */
|
||||
|
||||
#ifdef CONFIG_HIBERNATION_NVS
|
||||
extern int hibernate_nvs_register(unsigned long start, unsigned long size);
|
||||
extern int hibernate_nvs_alloc(void);
|
||||
extern void hibernate_nvs_free(void);
|
||||
extern void hibernate_nvs_save(void);
|
||||
extern void hibernate_nvs_restore(void);
|
||||
#else /* CONFIG_HIBERNATION_NVS */
|
||||
static inline int hibernate_nvs_register(unsigned long a, unsigned long b)
|
||||
#ifdef CONFIG_SUSPEND_NVS
|
||||
extern int suspend_nvs_register(unsigned long start, unsigned long size);
|
||||
extern int suspend_nvs_alloc(void);
|
||||
extern void suspend_nvs_free(void);
|
||||
extern void suspend_nvs_save(void);
|
||||
extern void suspend_nvs_restore(void);
|
||||
#else /* CONFIG_SUSPEND_NVS */
|
||||
static inline int suspend_nvs_register(unsigned long a, unsigned long b)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int hibernate_nvs_alloc(void) { return 0; }
|
||||
static inline void hibernate_nvs_free(void) {}
|
||||
static inline void hibernate_nvs_save(void) {}
|
||||
static inline void hibernate_nvs_restore(void) {}
|
||||
#endif /* CONFIG_HIBERNATION_NVS */
|
||||
static inline int suspend_nvs_alloc(void) { return 0; }
|
||||
static inline void suspend_nvs_free(void) {}
|
||||
static inline void suspend_nvs_save(void) {}
|
||||
static inline void suspend_nvs_restore(void) {}
|
||||
#endif /* CONFIG_SUSPEND_NVS */
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
void save_processor_state(void);
|
||||
|
||||
@@ -124,7 +124,8 @@ extern struct trace_event_functions enter_syscall_print_funcs;
|
||||
extern struct trace_event_functions exit_syscall_print_funcs;
|
||||
|
||||
#define SYSCALL_TRACE_ENTER_EVENT(sname) \
|
||||
static struct syscall_metadata __syscall_meta_##sname; \
|
||||
static struct syscall_metadata \
|
||||
__attribute__((__aligned__(4))) __syscall_meta_##sname; \
|
||||
static struct ftrace_event_call \
|
||||
__attribute__((__aligned__(4))) event_enter_##sname; \
|
||||
static struct ftrace_event_call __used \
|
||||
@@ -138,7 +139,8 @@ extern struct trace_event_functions exit_syscall_print_funcs;
|
||||
}
|
||||
|
||||
#define SYSCALL_TRACE_EXIT_EVENT(sname) \
|
||||
static struct syscall_metadata __syscall_meta_##sname; \
|
||||
static struct syscall_metadata \
|
||||
__attribute__((__aligned__(4))) __syscall_meta_##sname; \
|
||||
static struct ftrace_event_call \
|
||||
__attribute__((__aligned__(4))) event_exit_##sname; \
|
||||
static struct ftrace_event_call __used \
|
||||
|
||||
@@ -45,6 +45,7 @@ struct sysrq_key_op {
|
||||
*/
|
||||
|
||||
void handle_sysrq(int key, struct tty_struct *tty);
|
||||
void __handle_sysrq(int key, struct tty_struct *tty, int check_mask);
|
||||
int register_sysrq_key(int key, struct sysrq_key_op *op);
|
||||
int unregister_sysrq_key(int key, struct sysrq_key_op *op);
|
||||
struct sysrq_key_op *__sysrq_get_key_op(int key);
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
* See the file COPYING for more details.
|
||||
*/
|
||||
|
||||
#include <linux/errno.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/rcupdate.h>
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
*/
|
||||
|
||||
#ifndef LINUX_VGA_H
|
||||
#define LINUX_VGA_H
|
||||
|
||||
#include <asm/vga.h>
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
* compatible drivers/servers. */
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/* The feature bitmap for virtio 9P */
|
||||
|
||||
|
||||
@@ -27,10 +27,6 @@ enum writeback_sync_modes {
|
||||
* in a manner such that unspecified fields are set to zero.
|
||||
*/
|
||||
struct writeback_control {
|
||||
struct backing_dev_info *bdi; /* If !NULL, only write back this
|
||||
queue */
|
||||
struct super_block *sb; /* if !NULL, only write inodes from
|
||||
this super_block */
|
||||
enum writeback_sync_modes sync_mode;
|
||||
unsigned long *older_than_this; /* If !NULL, only write back inodes
|
||||
older than this */
|
||||
@@ -66,7 +62,8 @@ int inode_wait(void *);
|
||||
void writeback_inodes_sb(struct super_block *);
|
||||
int writeback_inodes_sb_if_idle(struct super_block *);
|
||||
void sync_inodes_sb(struct super_block *);
|
||||
void writeback_inodes_wbc(struct writeback_control *wbc);
|
||||
void writeback_inodes_wb(struct bdi_writeback *wb,
|
||||
struct writeback_control *wbc);
|
||||
long wb_do_writeback(struct bdi_writeback *wb, int force_wait);
|
||||
void wakeup_flusher_threads(long nr_pages);
|
||||
|
||||
|
||||
@@ -799,7 +799,7 @@ do { \
|
||||
X##_e -= (_FP_W_TYPE_SIZE - rsize); \
|
||||
X##_e = rsize - X##_e - 1; \
|
||||
\
|
||||
if (_FP_FRACBITS_##fs < rsize && _FP_WFRACBITS_##fs < X##_e) \
|
||||
if (_FP_FRACBITS_##fs < rsize && _FP_WFRACBITS_##fs <= X##_e) \
|
||||
__FP_FRAC_SRS_1(ur_, (X##_e - _FP_WFRACBITS_##fs + 1), rsize);\
|
||||
_FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize); \
|
||||
if ((_FP_WFRACBITS_##fs - X##_e - 1) > 0) \
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
#define TUNER_PHILIPS_CU1216L 82
|
||||
#define TUNER_NXP_TDA18271 83
|
||||
#define TUNER_SONY_BTF_PXN01Z 84
|
||||
#define TUNER_PHILIPS_FQ1236_MK5 85 /* NTSC, TDA9885, no FM radio */
|
||||
|
||||
/* tv card specific */
|
||||
#define TDA9887_PRESENT (1<<0)
|
||||
|
||||
@@ -88,8 +88,16 @@ do { \
|
||||
* enum p9_msg_t - 9P message types
|
||||
* @P9_TSTATFS: file system status request
|
||||
* @P9_RSTATFS: file system status response
|
||||
* @P9_TSYMLINK: make symlink request
|
||||
* @P9_RSYMLINK: make symlink response
|
||||
* @P9_TMKNOD: create a special file object request
|
||||
* @P9_RMKNOD: create a special file object response
|
||||
* @P9_TLCREATE: prepare a handle for I/O on an new file for 9P2000.L
|
||||
* @P9_RLCREATE: response with file access information for 9P2000.L
|
||||
* @P9_TRENAME: rename request
|
||||
* @P9_RRENAME: rename response
|
||||
* @P9_TMKDIR: create a directory request
|
||||
* @P9_RMKDIR: create a directory response
|
||||
* @P9_TVERSION: version handshake request
|
||||
* @P9_RVERSION: version handshake response
|
||||
* @P9_TAUTH: request to establish authentication channel
|
||||
@@ -131,8 +139,30 @@ do { \
|
||||
enum p9_msg_t {
|
||||
P9_TSTATFS = 8,
|
||||
P9_RSTATFS,
|
||||
P9_TLOPEN = 12,
|
||||
P9_RLOPEN,
|
||||
P9_TLCREATE = 14,
|
||||
P9_RLCREATE,
|
||||
P9_TSYMLINK = 16,
|
||||
P9_RSYMLINK,
|
||||
P9_TMKNOD = 18,
|
||||
P9_RMKNOD,
|
||||
P9_TRENAME = 20,
|
||||
P9_RRENAME,
|
||||
P9_TGETATTR = 24,
|
||||
P9_RGETATTR,
|
||||
P9_TSETATTR = 26,
|
||||
P9_RSETATTR,
|
||||
P9_TXATTRWALK = 30,
|
||||
P9_RXATTRWALK,
|
||||
P9_TXATTRCREATE = 32,
|
||||
P9_RXATTRCREATE,
|
||||
P9_TREADDIR = 40,
|
||||
P9_RREADDIR,
|
||||
P9_TLINK = 70,
|
||||
P9_RLINK,
|
||||
P9_TMKDIR = 72,
|
||||
P9_RMKDIR,
|
||||
P9_TVERSION = 100,
|
||||
P9_RVERSION,
|
||||
P9_TAUTH = 102,
|
||||
@@ -275,6 +305,9 @@ enum p9_qid_t {
|
||||
/* ample room for Twrite/Rread header */
|
||||
#define P9_IOHDRSZ 24
|
||||
|
||||
/* Room for readdir header */
|
||||
#define P9_READDIRHDRSZ 24
|
||||
|
||||
/**
|
||||
* struct p9_str - length prefixed string type
|
||||
* @len: length of the string
|
||||
@@ -357,6 +390,74 @@ struct p9_wstat {
|
||||
u32 n_muid; /* 9p2000.u extensions */
|
||||
};
|
||||
|
||||
struct p9_stat_dotl {
|
||||
u64 st_result_mask;
|
||||
struct p9_qid qid;
|
||||
u32 st_mode;
|
||||
u32 st_uid;
|
||||
u32 st_gid;
|
||||
u64 st_nlink;
|
||||
u64 st_rdev;
|
||||
u64 st_size;
|
||||
u64 st_blksize;
|
||||
u64 st_blocks;
|
||||
u64 st_atime_sec;
|
||||
u64 st_atime_nsec;
|
||||
u64 st_mtime_sec;
|
||||
u64 st_mtime_nsec;
|
||||
u64 st_ctime_sec;
|
||||
u64 st_ctime_nsec;
|
||||
u64 st_btime_sec;
|
||||
u64 st_btime_nsec;
|
||||
u64 st_gen;
|
||||
u64 st_data_version;
|
||||
};
|
||||
|
||||
#define P9_STATS_MODE 0x00000001ULL
|
||||
#define P9_STATS_NLINK 0x00000002ULL
|
||||
#define P9_STATS_UID 0x00000004ULL
|
||||
#define P9_STATS_GID 0x00000008ULL
|
||||
#define P9_STATS_RDEV 0x00000010ULL
|
||||
#define P9_STATS_ATIME 0x00000020ULL
|
||||
#define P9_STATS_MTIME 0x00000040ULL
|
||||
#define P9_STATS_CTIME 0x00000080ULL
|
||||
#define P9_STATS_INO 0x00000100ULL
|
||||
#define P9_STATS_SIZE 0x00000200ULL
|
||||
#define P9_STATS_BLOCKS 0x00000400ULL
|
||||
|
||||
#define P9_STATS_BTIME 0x00000800ULL
|
||||
#define P9_STATS_GEN 0x00001000ULL
|
||||
#define P9_STATS_DATA_VERSION 0x00002000ULL
|
||||
|
||||
#define P9_STATS_BASIC 0x000007ffULL /* Mask for fields up to BLOCKS */
|
||||
#define P9_STATS_ALL 0x00003fffULL /* Mask for All fields above */
|
||||
|
||||
/**
|
||||
* struct p9_iattr_dotl - P9 inode attribute for setattr
|
||||
* @valid: bitfield specifying which fields are valid
|
||||
* same as in struct iattr
|
||||
* @mode: File permission bits
|
||||
* @uid: user id of owner
|
||||
* @gid: group id
|
||||
* @size: File size
|
||||
* @atime_sec: Last access time, seconds
|
||||
* @atime_nsec: Last access time, nanoseconds
|
||||
* @mtime_sec: Last modification time, seconds
|
||||
* @mtime_nsec: Last modification time, nanoseconds
|
||||
*/
|
||||
|
||||
struct p9_iattr_dotl {
|
||||
u32 valid;
|
||||
u32 mode;
|
||||
u32 uid;
|
||||
u32 gid;
|
||||
u64 size;
|
||||
u64 atime_sec;
|
||||
u64 atime_nsec;
|
||||
u64 mtime_sec;
|
||||
u64 mtime_nsec;
|
||||
};
|
||||
|
||||
/* Structures for Protocol Operations */
|
||||
struct p9_tstatfs {
|
||||
u32 fid;
|
||||
@@ -485,6 +586,18 @@ struct p9_rwrite {
|
||||
u32 count;
|
||||
};
|
||||
|
||||
struct p9_treaddir {
|
||||
u32 fid;
|
||||
u64 offset;
|
||||
u32 count;
|
||||
};
|
||||
|
||||
struct p9_rreaddir {
|
||||
u32 count;
|
||||
u8 *data;
|
||||
};
|
||||
|
||||
|
||||
struct p9_tclunk {
|
||||
u32 fid;
|
||||
};
|
||||
|
||||
@@ -195,6 +195,21 @@ struct p9_fid {
|
||||
struct list_head dlist; /* list of all fids attached to a dentry */
|
||||
};
|
||||
|
||||
/**
|
||||
* struct p9_dirent - directory entry structure
|
||||
* @qid: The p9 server qid for this dirent
|
||||
* @d_off: offset to the next dirent
|
||||
* @d_type: type of file
|
||||
* @d_name: file name
|
||||
*/
|
||||
|
||||
struct p9_dirent {
|
||||
struct p9_qid qid;
|
||||
u64 d_off;
|
||||
unsigned char d_type;
|
||||
char d_name[256];
|
||||
};
|
||||
|
||||
int p9_client_statfs(struct p9_fid *fid, struct p9_rstatfs *sb);
|
||||
int p9_client_rename(struct p9_fid *fid, struct p9_fid *newdirfid, char *name);
|
||||
int p9_client_version(struct p9_client *);
|
||||
@@ -211,15 +226,31 @@ struct p9_fid *p9_client_walk(struct p9_fid *oldfid, int nwname, char **wnames,
|
||||
int p9_client_open(struct p9_fid *fid, int mode);
|
||||
int p9_client_fcreate(struct p9_fid *fid, char *name, u32 perm, int mode,
|
||||
char *extension);
|
||||
int p9_client_link(struct p9_fid *fid, struct p9_fid *oldfid, char *newname);
|
||||
int p9_client_symlink(struct p9_fid *fid, char *name, char *symname, gid_t gid,
|
||||
struct p9_qid *qid);
|
||||
int p9_client_create_dotl(struct p9_fid *ofid, char *name, u32 flags, u32 mode,
|
||||
gid_t gid, struct p9_qid *qid);
|
||||
int p9_client_clunk(struct p9_fid *fid);
|
||||
int p9_client_remove(struct p9_fid *fid);
|
||||
int p9_client_read(struct p9_fid *fid, char *data, char __user *udata,
|
||||
u64 offset, u32 count);
|
||||
int p9_client_write(struct p9_fid *fid, char *data, const char __user *udata,
|
||||
u64 offset, u32 count);
|
||||
int p9_client_readdir(struct p9_fid *fid, char *data, u32 count, u64 offset);
|
||||
int p9dirent_read(char *buf, int len, struct p9_dirent *dirent,
|
||||
int proto_version);
|
||||
struct p9_wstat *p9_client_stat(struct p9_fid *fid);
|
||||
int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst);
|
||||
int p9_client_setattr(struct p9_fid *fid, struct p9_iattr_dotl *attr);
|
||||
|
||||
struct p9_stat_dotl *p9_client_getattr_dotl(struct p9_fid *fid,
|
||||
u64 request_mask);
|
||||
|
||||
int p9_client_mknod_dotl(struct p9_fid *oldfid, char *name, int mode,
|
||||
dev_t rdev, gid_t gid, struct p9_qid *);
|
||||
int p9_client_mkdir_dotl(struct p9_fid *fid, char *name, int mode,
|
||||
gid_t gid, struct p9_qid *);
|
||||
struct p9_req_t *p9_tag_lookup(struct p9_client *, u16);
|
||||
void p9_client_cb(struct p9_client *c, struct p9_req_t *req);
|
||||
|
||||
@@ -229,5 +260,7 @@ void p9stat_free(struct p9_wstat *);
|
||||
|
||||
int p9_is_proto_dotu(struct p9_client *clnt);
|
||||
int p9_is_proto_dotl(struct p9_client *clnt);
|
||||
struct p9_fid *p9_client_xattrwalk(struct p9_fid *, const char *, u64 *);
|
||||
int p9_client_xattrcreate(struct p9_fid *, const char *, u64, int);
|
||||
|
||||
#endif /* NET_9P_CLIENT_H */
|
||||
|
||||
@@ -313,12 +313,24 @@ extern void qdisc_calculate_pkt_len(struct sk_buff *skb,
|
||||
extern void tcf_destroy(struct tcf_proto *tp);
|
||||
extern void tcf_destroy_chain(struct tcf_proto **fl);
|
||||
|
||||
/* Reset all TX qdiscs of a device. */
|
||||
/* Reset all TX qdiscs greater then index of a device. */
|
||||
static inline void qdisc_reset_all_tx_gt(struct net_device *dev, unsigned int i)
|
||||
{
|
||||
struct Qdisc *qdisc;
|
||||
|
||||
for (; i < dev->num_tx_queues; i++) {
|
||||
qdisc = netdev_get_tx_queue(dev, i)->qdisc;
|
||||
if (qdisc) {
|
||||
spin_lock_bh(qdisc_lock(qdisc));
|
||||
qdisc_reset(qdisc);
|
||||
spin_unlock_bh(qdisc_lock(qdisc));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static inline void qdisc_reset_all_tx(struct net_device *dev)
|
||||
{
|
||||
unsigned int i;
|
||||
for (i = 0; i < dev->num_tx_queues; i++)
|
||||
qdisc_reset(netdev_get_tx_queue(dev, i)->qdisc);
|
||||
qdisc_reset_all_tx_gt(dev, 0);
|
||||
}
|
||||
|
||||
/* Are all TX queues of the device empty? */
|
||||
|
||||
+1
-1
@@ -134,7 +134,7 @@ struct linux_xfrm_mib {
|
||||
#define SNMP_ADD_STATS_USER(mib, field, addend) \
|
||||
this_cpu_add(mib[1]->mibs[field], addend)
|
||||
#define SNMP_ADD_STATS(mib, field, addend) \
|
||||
this_cpu_add(mib[0]->mibs[field], addend)
|
||||
this_cpu_add(mib[!in_softirq()]->mibs[field], addend)
|
||||
/*
|
||||
* Use "__typeof__(*mib[0]) *ptr" instead of "__typeof__(mib[0]) ptr"
|
||||
* to make @ptr a non-percpu pointer.
|
||||
|
||||
+1
-6
@@ -1224,12 +1224,7 @@ static inline void sk_tx_queue_clear(struct sock *sk)
|
||||
|
||||
static inline int sk_tx_queue_get(const struct sock *sk)
|
||||
{
|
||||
return sk->sk_tx_queue_mapping;
|
||||
}
|
||||
|
||||
static inline bool sk_tx_queue_recorded(const struct sock *sk)
|
||||
{
|
||||
return (sk && sk->sk_tx_queue_mapping >= 0);
|
||||
return sk ? sk->sk_tx_queue_mapping : -1;
|
||||
}
|
||||
|
||||
static inline void sk_set_socket(struct sock *sk, struct socket *sock)
|
||||
|
||||
@@ -9,6 +9,7 @@ struct tcf_mirred {
|
||||
int tcfm_ifindex;
|
||||
int tcfm_ok_push;
|
||||
struct net_device *tcfm_dev;
|
||||
struct list_head tcfm_list;
|
||||
};
|
||||
#define to_mirred(pc) \
|
||||
container_of(pc, struct tcf_mirred, common)
|
||||
|
||||
+1
-1
@@ -1586,7 +1586,7 @@ static inline struct xfrm_state *xfrm_input_state(struct sk_buff *skb)
|
||||
static inline int xfrm_mark_get(struct nlattr **attrs, struct xfrm_mark *m)
|
||||
{
|
||||
if (attrs[XFRMA_MARK])
|
||||
memcpy(m, nla_data(attrs[XFRMA_MARK]), sizeof(m));
|
||||
memcpy(m, nla_data(attrs[XFRMA_MARK]), sizeof(struct xfrm_mark));
|
||||
else
|
||||
m->v = m->m = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user