Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
This commit is contained in:
commit
7ccbefe07e
1149 changed files with 21335 additions and 11009 deletions
|
|
@ -219,7 +219,7 @@ static inline int acpi_video_display_switch_support(void)
|
|||
|
||||
extern int acpi_blacklisted(void);
|
||||
extern void acpi_dmi_osi_linux(int enable, const struct dmi_system_id *d);
|
||||
extern int acpi_osi_setup(char *str);
|
||||
extern void acpi_osi_setup(char *str);
|
||||
|
||||
#ifdef CONFIG_ACPI_NUMA
|
||||
int acpi_get_pxm(acpi_handle handle);
|
||||
|
|
|
|||
|
|
@ -427,8 +427,10 @@ extern rwlock_t vcc_sklist_lock;
|
|||
|
||||
#define ATM_SKB(skb) (((struct atm_skb_data *) (skb)->cb))
|
||||
|
||||
struct atm_dev *atm_dev_register(const char *type,const struct atmdev_ops *ops,
|
||||
int number,unsigned long *flags); /* number == -1: pick first available */
|
||||
struct atm_dev *atm_dev_register(const char *type, struct device *parent,
|
||||
const struct atmdev_ops *ops,
|
||||
int number, /* -1 == pick first available */
|
||||
unsigned long *flags);
|
||||
struct atm_dev *atm_dev_lookup(int number);
|
||||
void atm_dev_deregister(struct atm_dev *dev);
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ struct linux_binprm{
|
|||
char buf[BINPRM_BUF_SIZE];
|
||||
#ifdef CONFIG_MMU
|
||||
struct vm_area_struct *vma;
|
||||
unsigned long vma_pages;
|
||||
#else
|
||||
# define MAX_ARG_PAGES 32
|
||||
struct page *page[MAX_ARG_PAGES];
|
||||
|
|
@ -59,6 +60,10 @@ struct linux_binprm{
|
|||
unsigned long loader, exec;
|
||||
};
|
||||
|
||||
extern void acct_arg_size(struct linux_binprm *bprm, unsigned long pages);
|
||||
extern struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
|
||||
int write);
|
||||
|
||||
#define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0
|
||||
#define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT)
|
||||
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ struct queue_limits {
|
|||
|
||||
unsigned char misaligned;
|
||||
unsigned char discard_misaligned;
|
||||
unsigned char no_cluster;
|
||||
unsigned char cluster;
|
||||
signed char discard_zeroes_data;
|
||||
};
|
||||
|
||||
|
|
@ -380,7 +380,6 @@ struct request_queue
|
|||
#endif
|
||||
};
|
||||
|
||||
#define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */
|
||||
#define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */
|
||||
#define QUEUE_FLAG_STOPPED 2 /* queue is stopped */
|
||||
#define QUEUE_FLAG_SYNCFULL 3 /* read queue has been filled */
|
||||
|
|
@ -403,7 +402,6 @@ struct request_queue
|
|||
#define QUEUE_FLAG_SECDISCARD 19 /* supports SECDISCARD */
|
||||
|
||||
#define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \
|
||||
(1 << QUEUE_FLAG_CLUSTER) | \
|
||||
(1 << QUEUE_FLAG_STACKABLE) | \
|
||||
(1 << QUEUE_FLAG_SAME_COMP) | \
|
||||
(1 << QUEUE_FLAG_ADD_RANDOM))
|
||||
|
|
@ -510,6 +508,11 @@ static inline void queue_flag_clear(unsigned int flag, struct request_queue *q)
|
|||
|
||||
#define rq_data_dir(rq) ((rq)->cmd_flags & 1)
|
||||
|
||||
static inline unsigned int blk_queue_cluster(struct request_queue *q)
|
||||
{
|
||||
return q->limits.cluster;
|
||||
}
|
||||
|
||||
/*
|
||||
* We regard a request as sync, if either a read or a sync write
|
||||
*/
|
||||
|
|
@ -805,6 +808,7 @@ extern struct request_queue *blk_init_allocated_queue(struct request_queue *,
|
|||
extern void blk_cleanup_queue(struct request_queue *);
|
||||
extern void blk_queue_make_request(struct request_queue *, make_request_fn *);
|
||||
extern void blk_queue_bounce_limit(struct request_queue *, u64);
|
||||
extern void blk_limits_max_hw_sectors(struct queue_limits *, unsigned int);
|
||||
extern void blk_queue_max_hw_sectors(struct request_queue *, unsigned int);
|
||||
extern void blk_queue_max_segments(struct request_queue *, unsigned short);
|
||||
extern void blk_queue_max_segment_size(struct request_queue *, unsigned int);
|
||||
|
|
|
|||
|
|
@ -105,6 +105,8 @@ extern void *__alloc_bootmem_low_node(pg_data_t *pgdat,
|
|||
|
||||
#define alloc_bootmem(x) \
|
||||
__alloc_bootmem(x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
|
||||
#define alloc_bootmem_align(x, align) \
|
||||
__alloc_bootmem(x, align, __pa(MAX_DMA_ADDRESS))
|
||||
#define alloc_bootmem_nopanic(x) \
|
||||
__alloc_bootmem_nopanic(x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
|
||||
#define alloc_bootmem_pages(x) \
|
||||
|
|
|
|||
|
|
@ -227,9 +227,10 @@ extern int ceph_open_session(struct ceph_client *client);
|
|||
extern void ceph_release_page_vector(struct page **pages, int num_pages);
|
||||
|
||||
extern struct page **ceph_get_direct_page_vector(const char __user *data,
|
||||
int num_pages,
|
||||
loff_t off, size_t len);
|
||||
extern void ceph_put_page_vector(struct page **pages, int num_pages);
|
||||
int num_pages,
|
||||
bool write_page);
|
||||
extern void ceph_put_page_vector(struct page **pages, int num_pages,
|
||||
bool dirty);
|
||||
extern void ceph_release_page_vector(struct page **pages, int num_pages);
|
||||
extern struct page **ceph_alloc_page_vector(int num_pages, gfp_t flags);
|
||||
extern int ceph_copy_user_to_page_vector(struct page **pages,
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ struct ceph_msg {
|
|||
struct ceph_buffer *middle;
|
||||
struct page **pages; /* data payload. NOT OWNER. */
|
||||
unsigned nr_pages; /* size of page array */
|
||||
unsigned page_alignment; /* io offset in first page */
|
||||
struct ceph_pagelist *pagelist; /* instead of pages */
|
||||
struct list_head list_head;
|
||||
struct kref kref;
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@ struct ceph_osd_request {
|
|||
struct ceph_file_layout r_file_layout;
|
||||
struct ceph_snap_context *r_snapc; /* snap context for writes */
|
||||
unsigned r_num_pages; /* size of page array (follows) */
|
||||
unsigned r_page_alignment; /* io offset in first page */
|
||||
struct page **r_pages; /* pages for data payload */
|
||||
int r_pages_from_pool;
|
||||
int r_own_pages; /* if true, i own page list */
|
||||
|
|
@ -194,7 +195,8 @@ extern struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *,
|
|||
int do_sync, u32 truncate_seq,
|
||||
u64 truncate_size,
|
||||
struct timespec *mtime,
|
||||
bool use_mempool, int num_reply);
|
||||
bool use_mempool, int num_reply,
|
||||
int page_align);
|
||||
|
||||
static inline void ceph_osdc_get_request(struct ceph_osd_request *req)
|
||||
{
|
||||
|
|
@ -218,7 +220,8 @@ extern int ceph_osdc_readpages(struct ceph_osd_client *osdc,
|
|||
struct ceph_file_layout *layout,
|
||||
u64 off, u64 *plen,
|
||||
u32 truncate_seq, u64 truncate_size,
|
||||
struct page **pages, int nr_pages);
|
||||
struct page **pages, int nr_pages,
|
||||
int page_align);
|
||||
|
||||
extern int ceph_osdc_writepages(struct ceph_osd_client *osdc,
|
||||
struct ceph_vino vino,
|
||||
|
|
|
|||
|
|
@ -61,13 +61,31 @@ union cnt32_to_63 {
|
|||
*
|
||||
* 2) this code must not be preempted for a duration longer than the
|
||||
* 32-bit counter half period minus the longest period between two
|
||||
* calls to this code.
|
||||
* calls to this code;
|
||||
*
|
||||
* Those requirements ensure proper update to the state bit in memory.
|
||||
* This is usually not a problem in practice, but if it is then a kernel
|
||||
* timer should be scheduled to manage for this code to be executed often
|
||||
* enough.
|
||||
*
|
||||
* And finally:
|
||||
*
|
||||
* 3) the cnt_lo argument must be seen as a globally incrementing value,
|
||||
* meaning that it should be a direct reference to the counter data which
|
||||
* can be evaluated according to a specific ordering within the macro,
|
||||
* and not the result of a previous evaluation stored in a variable.
|
||||
*
|
||||
* For example, this is wrong:
|
||||
*
|
||||
* u32 partial = get_hw_count();
|
||||
* u64 full = cnt32_to_63(partial);
|
||||
* return full;
|
||||
*
|
||||
* This is fine:
|
||||
*
|
||||
* u64 full = cnt32_to_63(get_hw_count());
|
||||
* return full;
|
||||
*
|
||||
* Note that the top bit (bit 63) in the returned value should be considered
|
||||
* as garbage. It is not cleared here because callers are likely to use a
|
||||
* multiplier on the returned value which can get rid of the top bit
|
||||
|
|
|
|||
|
|
@ -10,11 +10,6 @@
|
|||
*
|
||||
* CPUs are exported via sysfs in the class/cpu/devices/
|
||||
* directory.
|
||||
*
|
||||
* Per-cpu interfaces can be implemented using a struct device_interface.
|
||||
* See the following for how to do this:
|
||||
* - drivers/base/intf.c
|
||||
* - Documentation/driver-model/interface.txt
|
||||
*/
|
||||
#ifndef _LINUX_CPU_H_
|
||||
#define _LINUX_CPU_H_
|
||||
|
|
|
|||
|
|
@ -175,10 +175,21 @@ static inline int set_msi_sid(struct irte *irte, struct pci_dev *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#define enable_intr_remapping(mode) (-1)
|
||||
#define disable_intr_remapping() (0)
|
||||
#define reenable_intr_remapping(mode) (0)
|
||||
#define intr_remapping_enabled (0)
|
||||
|
||||
static inline int enable_intr_remapping(int eim)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline void disable_intr_remapping(void)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int reenable_intr_remapping(int eim)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Can't use the common MSI interrupt functions
|
||||
|
|
|
|||
|
|
@ -83,11 +83,13 @@
|
|||
FAN_ALL_PERM_EVENTS |\
|
||||
FAN_Q_OVERFLOW)
|
||||
|
||||
#define FANOTIFY_METADATA_VERSION 2
|
||||
#define FANOTIFY_METADATA_VERSION 3
|
||||
|
||||
struct fanotify_event_metadata {
|
||||
__u32 event_len;
|
||||
__u32 vers;
|
||||
__u8 vers;
|
||||
__u8 reserved;
|
||||
__u16 metadata_len;
|
||||
__aligned_u64 mask;
|
||||
__s32 fd;
|
||||
__s32 pid;
|
||||
|
|
@ -96,11 +98,13 @@ struct fanotify_event_metadata {
|
|||
struct fanotify_response {
|
||||
__s32 fd;
|
||||
__u32 response;
|
||||
} __attribute__ ((packed));
|
||||
};
|
||||
|
||||
/* Legit userspace responses to a _PERM event */
|
||||
#define FAN_ALLOW 0x01
|
||||
#define FAN_DENY 0x02
|
||||
/* No fd set in event */
|
||||
#define FAN_NOFD -1
|
||||
|
||||
/* Helper functions to deal with fanotify_event_metadata buffers */
|
||||
#define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))
|
||||
|
|
|
|||
|
|
@ -1124,6 +1124,7 @@ extern const struct fb_videomode *fb_find_best_display(const struct fb_monspecs
|
|||
|
||||
/* drivers/video/fbcmap.c */
|
||||
extern int fb_alloc_cmap(struct fb_cmap *cmap, int len, int transp);
|
||||
extern int fb_alloc_cmap_gfp(struct fb_cmap *cmap, int len, int transp, gfp_t flags);
|
||||
extern void fb_dealloc_cmap(struct fb_cmap *cmap);
|
||||
extern int fb_copy_cmap(const struct fb_cmap *from, struct fb_cmap *to);
|
||||
extern int fb_cmap_to_user(const struct fb_cmap *from, struct fb_cmap_user *to);
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@
|
|||
#define SEEK_MAX SEEK_END
|
||||
|
||||
struct fstrim_range {
|
||||
uint64_t start;
|
||||
uint64_t len;
|
||||
uint64_t minlen;
|
||||
__u64 start;
|
||||
__u64 len;
|
||||
__u64 minlen;
|
||||
};
|
||||
|
||||
/* And dynamically-tunable limits and defaults: */
|
||||
|
|
@ -602,6 +602,7 @@ struct address_space_operations {
|
|||
sector_t (*bmap)(struct address_space *, sector_t);
|
||||
void (*invalidatepage) (struct page *, unsigned long);
|
||||
int (*releasepage) (struct page *, gfp_t);
|
||||
void (*freepage)(struct page *);
|
||||
ssize_t (*direct_IO)(int, struct kiocb *, const struct iovec *iov,
|
||||
loff_t offset, unsigned long nr_segs);
|
||||
int (*get_xip_mem)(struct address_space *, pgoff_t, int,
|
||||
|
|
@ -1612,7 +1613,6 @@ struct super_operations {
|
|||
ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
|
||||
#endif
|
||||
int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
|
||||
int (*trim_fs) (struct super_block *, struct fstrim_range *);
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -235,9 +235,6 @@ static inline void fsnotify_open(struct file *file)
|
|||
if (S_ISDIR(inode->i_mode))
|
||||
mask |= FS_ISDIR;
|
||||
|
||||
/* FMODE_NONOTIFY must never be set from user */
|
||||
file->f_mode &= ~FMODE_NONOTIFY;
|
||||
|
||||
fsnotify_parent(path, NULL, mask);
|
||||
fsnotify(inode, mask, path, FSNOTIFY_EVENT_PATH, NULL, 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ struct fsnotify_group {
|
|||
struct mutex access_mutex;
|
||||
struct list_head access_list;
|
||||
wait_queue_head_t access_waitq;
|
||||
bool bypass_perm; /* protected by access_mutex */
|
||||
atomic_t bypass_perm;
|
||||
#endif /* CONFIG_FANOTIFY_ACCESS_PERMISSIONS */
|
||||
int f_flags;
|
||||
unsigned int max_marks;
|
||||
|
|
|
|||
|
|
@ -360,7 +360,7 @@ void drain_local_pages(void *dummy);
|
|||
|
||||
extern gfp_t gfp_allowed_mask;
|
||||
|
||||
extern void set_gfp_allowed_mask(gfp_t mask);
|
||||
extern gfp_t clear_gfp_allowed_mask(gfp_t mask);
|
||||
extern void pm_restrict_gfp_mask(void);
|
||||
extern void pm_restore_gfp_mask(void);
|
||||
|
||||
#endif /* __LINUX_GFP_H */
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@ struct gpio_keys_button {
|
|||
struct gpio_keys_platform_data {
|
||||
struct gpio_keys_button *buttons;
|
||||
int nbuttons;
|
||||
unsigned int poll_interval; /* polling interval in msecs -
|
||||
for polling driver only */
|
||||
unsigned int rep:1; /* enable input subsystem auto repeat */
|
||||
int (*enable)(struct device *dev);
|
||||
void (*disable)(struct device *dev);
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@
|
|||
#define in_nmi() (preempt_count() & NMI_MASK)
|
||||
|
||||
#if defined(CONFIG_PREEMPT) && defined(CONFIG_BKL)
|
||||
# include <linux/sched.h>
|
||||
# define PREEMPT_INATOMIC_BASE (current->lock_depth >= 0)
|
||||
#else
|
||||
# define PREEMPT_INATOMIC_BASE 0
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@ enum bp_type_idx {
|
|||
|
||||
#ifdef CONFIG_HAVE_HW_BREAKPOINT
|
||||
|
||||
extern int __init init_hw_breakpoint(void);
|
||||
|
||||
static inline void hw_breakpoint_init(struct perf_event_attr *attr)
|
||||
{
|
||||
memset(attr, 0, sizeof(*attr));
|
||||
|
|
@ -108,6 +110,8 @@ static inline struct arch_hw_breakpoint *counter_arch_bp(struct perf_event *bp)
|
|||
|
||||
#else /* !CONFIG_HAVE_HW_BREAKPOINT */
|
||||
|
||||
static inline int __init init_hw_breakpoint(void) { return 0; }
|
||||
|
||||
static inline struct perf_event *
|
||||
register_user_hw_breakpoint(struct perf_event_attr *attr,
|
||||
perf_overflow_handler_t triggered,
|
||||
|
|
|
|||
|
|
@ -47,6 +47,25 @@ struct input_id {
|
|||
__u16 version;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct input_absinfo - used by EVIOCGABS/EVIOCSABS ioctls
|
||||
* @value: latest reported value for the axis.
|
||||
* @minimum: specifies minimum value for the axis.
|
||||
* @maximum: specifies maximum value for the axis.
|
||||
* @fuzz: specifies fuzz value that is used to filter noise from
|
||||
* the event stream.
|
||||
* @flat: values that are within this value will be discarded by
|
||||
* joydev interface and reported as 0 instead.
|
||||
* @resolution: specifies resolution for the values reported for
|
||||
* the axis.
|
||||
*
|
||||
* Note that input core does not clamp reported values to the
|
||||
* [minimum, maximum] limits, such task is left to userspace.
|
||||
*
|
||||
* Resolution for main axes (ABS_X, ABS_Y, ABS_Z) is reported in
|
||||
* units per millimeter (units/mm), resolution for rotational axes
|
||||
* (ABS_RX, ABS_RY, ABS_RZ) is reported in units per radian.
|
||||
*/
|
||||
struct input_absinfo {
|
||||
__s32 value;
|
||||
__s32 minimum;
|
||||
|
|
@ -85,8 +104,10 @@ struct input_keymap_entry {
|
|||
#define EVIOCGREP _IOR('E', 0x03, unsigned int[2]) /* get repeat settings */
|
||||
#define EVIOCSREP _IOW('E', 0x03, unsigned int[2]) /* set repeat settings */
|
||||
|
||||
#define EVIOCGKEYCODE _IOR('E', 0x04, struct input_keymap_entry) /* get keycode */
|
||||
#define EVIOCSKEYCODE _IOW('E', 0x04, struct input_keymap_entry) /* set keycode */
|
||||
#define EVIOCGKEYCODE _IOR('E', 0x04, unsigned int[2]) /* get keycode */
|
||||
#define EVIOCGKEYCODE_V2 _IOR('E', 0x04, struct input_keymap_entry)
|
||||
#define EVIOCSKEYCODE _IOW('E', 0x04, unsigned int[2]) /* set keycode */
|
||||
#define EVIOCSKEYCODE_V2 _IOW('E', 0x04, struct input_keymap_entry)
|
||||
|
||||
#define EVIOCGNAME(len) _IOC(_IOC_READ, 'E', 0x06, len) /* get device name */
|
||||
#define EVIOCGPHYS(len) _IOC(_IOC_READ, 'E', 0x07, len) /* get physical location */
|
||||
|
|
@ -624,6 +645,10 @@ struct input_keymap_entry {
|
|||
#define KEY_CAMERA_FOCUS 0x210
|
||||
#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */
|
||||
|
||||
#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */
|
||||
#define KEY_TOUCHPAD_ON 0x213
|
||||
#define KEY_TOUCHPAD_OFF 0x214
|
||||
|
||||
#define BTN_TRIGGER_HAPPY 0x2c0
|
||||
#define BTN_TRIGGER_HAPPY1 0x2c0
|
||||
#define BTN_TRIGGER_HAPPY2 0x2c1
|
||||
|
|
@ -1130,7 +1155,7 @@ struct input_mt_slot {
|
|||
* of tracked contacts
|
||||
* @mtsize: number of MT slots the device uses
|
||||
* @slot: MT slot currently being transmitted
|
||||
* @absinfo: array of &struct absinfo elements holding information
|
||||
* @absinfo: array of &struct input_absinfo elements holding information
|
||||
* about absolute axes (current value, min, max, flat, fuzz,
|
||||
* resolution)
|
||||
* @key: reflects current state of device's keys/buttons
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@ struct resource_list {
|
|||
/* PC/ISA/whatever - the normal PC address spaces: IO and memory */
|
||||
extern struct resource ioport_resource;
|
||||
extern struct resource iomem_resource;
|
||||
extern int resource_alloc_from_bottom;
|
||||
|
||||
extern struct resource *request_resource_conflict(struct resource *root, struct resource *new);
|
||||
extern int request_resource(struct resource *root, struct resource *new);
|
||||
|
|
@ -124,6 +123,7 @@ extern void reserve_region_with_split(struct resource *root,
|
|||
extern struct resource *insert_resource_conflict(struct resource *parent, struct resource *new);
|
||||
extern int insert_resource(struct resource *parent, struct resource *new);
|
||||
extern void insert_resource_expand_to_fit(struct resource *root, struct resource *new);
|
||||
extern void arch_remove_reservations(struct resource *avail);
|
||||
extern int allocate_resource(struct resource *root, struct resource *new,
|
||||
resource_size_t size, resource_size_t min,
|
||||
resource_size_t max, resource_size_t align,
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#define MARVELL_PHY_ID_88E1118 0x01410e10
|
||||
#define MARVELL_PHY_ID_88E1121R 0x01410cb0
|
||||
#define MARVELL_PHY_ID_88E1145 0x01410cd0
|
||||
#define MARVELL_PHY_ID_88E1149R 0x01410e50
|
||||
#define MARVELL_PHY_ID_88E1240 0x01410e30
|
||||
#define MARVELL_PHY_ID_88E1318S 0x01410e90
|
||||
|
||||
|
|
|
|||
|
|
@ -161,6 +161,9 @@ extern void register_page_bootmem_info_node(struct pglist_data *pgdat);
|
|||
extern void put_page_bootmem(struct page *page);
|
||||
#endif
|
||||
|
||||
void lock_memory_hotplug(void);
|
||||
void unlock_memory_hotplug(void);
|
||||
|
||||
#else /* ! CONFIG_MEMORY_HOTPLUG */
|
||||
/*
|
||||
* Stub functions for when hotplug is off
|
||||
|
|
@ -192,6 +195,9 @@ static inline void register_page_bootmem_info_node(struct pglist_data *pgdat)
|
|||
{
|
||||
}
|
||||
|
||||
static inline void lock_memory_hotplug(void) {}
|
||||
static inline void unlock_memory_hotplug(void) {}
|
||||
|
||||
#endif /* ! CONFIG_MEMORY_HOTPLUG */
|
||||
|
||||
#ifdef CONFIG_MEMORY_HOTREMOVE
|
||||
|
|
|
|||
|
|
@ -522,9 +522,6 @@
|
|||
#define WM8350_MCLK_SEL_PLL_32K 3
|
||||
#define WM8350_MCLK_SEL_MCLK 5
|
||||
|
||||
#define WM8350_MCLK_DIR_OUT 0
|
||||
#define WM8350_MCLK_DIR_IN 1
|
||||
|
||||
/* clock divider id's */
|
||||
#define WM8350_ADC_CLKDIV 0
|
||||
#define WM8350_DAC_CLKDIV 1
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ struct wm8994_ldo_pdata {
|
|||
#define WM8994_CONFIGURE_GPIO 0x8000
|
||||
|
||||
#define WM8994_DRC_REGS 5
|
||||
#define WM8994_EQ_REGS 19
|
||||
#define WM8994_EQ_REGS 20
|
||||
|
||||
/**
|
||||
* DRC configurations are specified with a label and a set of register
|
||||
|
|
|
|||
|
|
@ -168,6 +168,7 @@ struct mmc_host {
|
|||
/* DDR mode at 1.8V */
|
||||
#define MMC_CAP_1_2V_DDR (1 << 12) /* can support */
|
||||
/* DDR mode at 1.2V */
|
||||
#define MMC_CAP_POWER_OFF_CARD (1 << 13) /* Can power off after boot */
|
||||
|
||||
mmc_pm_flag_t pm_caps; /* supported pm features */
|
||||
|
||||
|
|
|
|||
|
|
@ -517,7 +517,7 @@ static inline void __module_get(struct module *module)
|
|||
#define symbol_put_addr(p) do { } while(0)
|
||||
|
||||
#endif /* CONFIG_MODULE_UNLOAD */
|
||||
int use_module(struct module *a, struct module *b);
|
||||
int ref_module(struct module *a, struct module *b);
|
||||
|
||||
/* This is a #define so the string doesn't get put in every .o file */
|
||||
#define module_name(mod) \
|
||||
|
|
|
|||
|
|
@ -401,6 +401,7 @@ extern const struct inode_operations nfs3_file_inode_operations;
|
|||
#endif /* CONFIG_NFS_V3 */
|
||||
extern const struct file_operations nfs_file_operations;
|
||||
extern const struct address_space_operations nfs_file_aops;
|
||||
extern const struct address_space_operations nfs_dir_aops;
|
||||
|
||||
static inline struct nfs_open_context *nfs_file_open_context(struct file *filp)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@
|
|||
*/
|
||||
enum {
|
||||
PG_BUSY = 0,
|
||||
PG_MAPPED,
|
||||
PG_CLEAN,
|
||||
PG_NEED_COMMIT,
|
||||
PG_NEED_RESCHED,
|
||||
|
|
|
|||
|
|
@ -483,6 +483,7 @@ struct nfs_entry {
|
|||
int eof;
|
||||
struct nfs_fh * fh;
|
||||
struct nfs_fattr * fattr;
|
||||
unsigned char d_type;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -10,11 +10,6 @@
|
|||
*
|
||||
* Nodes are exported via driverfs in the class/node/devices/
|
||||
* directory.
|
||||
*
|
||||
* Per-node interfaces can be implemented using a struct device_interface.
|
||||
* See the following for how to do this:
|
||||
* - drivers/base/intf.c
|
||||
* - Documentation/driver-model/interface.txt
|
||||
*/
|
||||
#ifndef _LINUX_NODE_H_
|
||||
#define _LINUX_NODE_H_
|
||||
|
|
|
|||
|
|
@ -59,8 +59,6 @@ static inline void ClearPageCgroup##uname(struct page_cgroup *pc) \
|
|||
static inline int TestClearPageCgroup##uname(struct page_cgroup *pc) \
|
||||
{ return test_and_clear_bit(PCG_##lname, &pc->flags); }
|
||||
|
||||
TESTPCGFLAG(Locked, LOCK)
|
||||
|
||||
/* Cache flag is set only once (at allocation) */
|
||||
TESTPCGFLAG(Cache, CACHE)
|
||||
CLEARPCGFLAG(Cache, CACHE)
|
||||
|
|
@ -104,6 +102,11 @@ static inline void unlock_page_cgroup(struct page_cgroup *pc)
|
|||
bit_spin_unlock(PCG_LOCK, &pc->flags);
|
||||
}
|
||||
|
||||
static inline int page_is_cgroup_locked(struct page_cgroup *pc)
|
||||
{
|
||||
return bit_spin_is_locked(PCG_LOCK, &pc->flags);
|
||||
}
|
||||
|
||||
#else /* CONFIG_CGROUP_MEM_RES_CTLR */
|
||||
struct page_cgroup;
|
||||
|
||||
|
|
|
|||
|
|
@ -2047,6 +2047,7 @@
|
|||
#define PCI_DEVICE_ID_AFAVLAB_P030 0x2182
|
||||
#define PCI_SUBDEVICE_ID_AFAVLAB_P061 0x2150
|
||||
|
||||
#define PCI_VENDOR_ID_BCM_GVC 0x14a4
|
||||
#define PCI_VENDOR_ID_BROADCOM 0x14e4
|
||||
#define PCI_DEVICE_ID_TIGON3_5752 0x1600
|
||||
#define PCI_DEVICE_ID_TIGON3_5752M 0x1601
|
||||
|
|
@ -2441,6 +2442,7 @@
|
|||
#define PCI_DEVICE_ID_INTEL_MFD_SDIO2 0x0822
|
||||
#define PCI_DEVICE_ID_INTEL_MFD_EMMC0 0x0823
|
||||
#define PCI_DEVICE_ID_INTEL_MFD_EMMC1 0x0824
|
||||
#define PCI_DEVICE_ID_INTEL_MRST_SD2 0x084F
|
||||
#define PCI_DEVICE_ID_INTEL_I960 0x0960
|
||||
#define PCI_DEVICE_ID_INTEL_I960RM 0x0962
|
||||
#define PCI_DEVICE_ID_INTEL_8257X_SOL 0x1062
|
||||
|
|
|
|||
|
|
@ -850,6 +850,7 @@ struct perf_event_context {
|
|||
int nr_active;
|
||||
int is_active;
|
||||
int nr_stat;
|
||||
int rotate_disable;
|
||||
atomic_t refcount;
|
||||
struct task_struct *task;
|
||||
|
||||
|
|
@ -886,6 +887,7 @@ struct perf_cpu_context {
|
|||
int exclusive;
|
||||
struct list_head rotation_list;
|
||||
int jiffies_interval;
|
||||
struct pmu *active_pmu;
|
||||
};
|
||||
|
||||
struct perf_output_handle {
|
||||
|
|
@ -908,20 +910,6 @@ extern int perf_num_counters(void);
|
|||
extern const char *perf_pmu_name(void);
|
||||
extern void __perf_event_task_sched_in(struct task_struct *task);
|
||||
extern void __perf_event_task_sched_out(struct task_struct *task, struct task_struct *next);
|
||||
|
||||
extern atomic_t perf_task_events;
|
||||
|
||||
static inline void perf_event_task_sched_in(struct task_struct *task)
|
||||
{
|
||||
COND_STMT(&perf_task_events, __perf_event_task_sched_in(task));
|
||||
}
|
||||
|
||||
static inline
|
||||
void perf_event_task_sched_out(struct task_struct *task, struct task_struct *next)
|
||||
{
|
||||
COND_STMT(&perf_task_events, __perf_event_task_sched_out(task, next));
|
||||
}
|
||||
|
||||
extern int perf_event_init_task(struct task_struct *child);
|
||||
extern void perf_event_exit_task(struct task_struct *child);
|
||||
extern void perf_event_free_task(struct task_struct *task);
|
||||
|
|
@ -1030,6 +1018,21 @@ have_event:
|
|||
__perf_sw_event(event_id, nr, nmi, regs, addr);
|
||||
}
|
||||
|
||||
extern atomic_t perf_task_events;
|
||||
|
||||
static inline void perf_event_task_sched_in(struct task_struct *task)
|
||||
{
|
||||
COND_STMT(&perf_task_events, __perf_event_task_sched_in(task));
|
||||
}
|
||||
|
||||
static inline
|
||||
void perf_event_task_sched_out(struct task_struct *task, struct task_struct *next)
|
||||
{
|
||||
perf_sw_event(PERF_COUNT_SW_CONTEXT_SWITCHES, 1, 1, NULL, 0);
|
||||
|
||||
COND_STMT(&perf_task_events, __perf_event_task_sched_out(task, next));
|
||||
}
|
||||
|
||||
extern void perf_event_mmap(struct vm_area_struct *vma);
|
||||
extern struct perf_guest_info_callbacks *perf_guest_cbs;
|
||||
extern int perf_register_guest_info_callbacks(struct perf_guest_info_callbacks *callbacks);
|
||||
|
|
|
|||
|
|
@ -160,5 +160,6 @@ void generic_pipe_buf_release(struct pipe_inode_info *, struct pipe_buffer *);
|
|||
|
||||
/* for F_SETPIPE_SZ and F_GETPIPE_SZ */
|
||||
long pipe_fcntl(struct file *, unsigned int, unsigned long arg);
|
||||
struct pipe_inode_info *get_pipe_info(struct file *file);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -77,7 +77,8 @@ static inline void device_set_run_wake(struct device *dev, bool enable)
|
|||
|
||||
static inline bool pm_runtime_suspended(struct device *dev)
|
||||
{
|
||||
return dev->power.runtime_status == RPM_SUSPENDED;
|
||||
return dev->power.runtime_status == RPM_SUSPENDED
|
||||
&& !dev->power.disable_depth;
|
||||
}
|
||||
|
||||
static inline void pm_runtime_mark_last_busy(struct device *dev)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
#include <linux/if_link.h>
|
||||
#include <linux/if_addr.h>
|
||||
#include <linux/neighbour.h>
|
||||
#include <linux/netdevice.h>
|
||||
|
||||
/* rtnetlink families. Values up to 127 are reserved for real address
|
||||
* families, values above 128 may be used arbitrarily.
|
||||
|
|
@ -606,6 +605,7 @@ struct tcamsg {
|
|||
#ifdef __KERNEL__
|
||||
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/netdevice.h>
|
||||
|
||||
static __inline__ int rtattr_strcmp(const struct rtattr *rta, const char *str)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ extern unsigned long nr_iowait_cpu(int cpu);
|
|||
extern unsigned long this_cpu_load(void);
|
||||
|
||||
|
||||
extern void calc_global_load(void);
|
||||
extern void calc_global_load(unsigned long ticks);
|
||||
|
||||
extern unsigned long get_parent_ip(unsigned long addr);
|
||||
|
||||
|
|
|
|||
|
|
@ -19,11 +19,13 @@ struct clk_mapping {
|
|||
};
|
||||
|
||||
struct clk_ops {
|
||||
#ifdef CONFIG_SH_CLK_CPG_LEGACY
|
||||
void (*init)(struct clk *clk);
|
||||
#endif
|
||||
int (*enable)(struct clk *clk);
|
||||
void (*disable)(struct clk *clk);
|
||||
unsigned long (*recalc)(struct clk *clk);
|
||||
int (*set_rate)(struct clk *clk, unsigned long rate, int algo_id);
|
||||
int (*set_rate)(struct clk *clk, unsigned long rate);
|
||||
int (*set_parent)(struct clk *clk, struct clk *parent);
|
||||
long (*round_rate)(struct clk *clk, unsigned long rate);
|
||||
};
|
||||
|
|
@ -67,36 +69,6 @@ int clk_register(struct clk *);
|
|||
void clk_unregister(struct clk *);
|
||||
void clk_enable_init_clocks(void);
|
||||
|
||||
/**
|
||||
* clk_set_rate_ex - set the clock rate for a clock source, with additional parameter
|
||||
* @clk: clock source
|
||||
* @rate: desired clock rate in Hz
|
||||
* @algo_id: algorithm id to be passed down to ops->set_rate
|
||||
*
|
||||
* Returns success (0) or negative errno.
|
||||
*/
|
||||
int clk_set_rate_ex(struct clk *clk, unsigned long rate, int algo_id);
|
||||
|
||||
enum clk_sh_algo_id {
|
||||
NO_CHANGE = 0,
|
||||
|
||||
IUS_N1_N1,
|
||||
IUS_322,
|
||||
IUS_522,
|
||||
IUS_N11,
|
||||
|
||||
SB_N1,
|
||||
|
||||
SB3_N1,
|
||||
SB3_32,
|
||||
SB3_43,
|
||||
SB3_54,
|
||||
|
||||
BP_N1,
|
||||
|
||||
IP_N1,
|
||||
};
|
||||
|
||||
struct clk_div_mult_table {
|
||||
unsigned int *divisors;
|
||||
unsigned int nr_divisors;
|
||||
|
|
|
|||
|
|
@ -230,6 +230,7 @@ enum
|
|||
LINUX_MIB_TCPMINTTLDROP, /* RFC 5082 */
|
||||
LINUX_MIB_TCPDEFERACCEPTDROP,
|
||||
LINUX_MIB_IPRPFILTER, /* IP Reverse Path Filter (rp_filter) */
|
||||
LINUX_MIB_TCPTIMEWAITOVERFLOW, /* TCPTimeWaitOverflow */
|
||||
__LINUX_MIB_MAX
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -96,16 +96,21 @@ static inline bool ssb_gige_must_flush_posted_writes(struct pci_dev *pdev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
extern char * nvram_get(const char *name);
|
||||
#ifdef CONFIG_BCM47XX
|
||||
#include <asm/mach-bcm47xx/nvram.h>
|
||||
/* Get the device MAC address */
|
||||
static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr)
|
||||
{
|
||||
#ifdef CONFIG_BCM47XX
|
||||
char *res = nvram_get("et0macaddr");
|
||||
if (res)
|
||||
memcpy(macaddr, res, 6);
|
||||
#endif
|
||||
char buf[20];
|
||||
if (nvram_getenv("et0macaddr", buf, sizeof(buf)) < 0)
|
||||
return;
|
||||
nvram_parse_macaddr(buf, macaddr);
|
||||
}
|
||||
#else
|
||||
static inline void ssb_gige_get_macaddr(struct pci_dev *pdev, u8 *macaddr)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
extern int ssb_gige_pcibios_plat_dev_init(struct ssb_device *sdev,
|
||||
struct pci_dev *pdev);
|
||||
|
|
|
|||
|
|
@ -366,6 +366,7 @@ struct tty_file_private {
|
|||
#define TTY_HUPPED 18 /* Post driver->hangup() */
|
||||
#define TTY_FLUSHING 19 /* Flushing to ldisc in progress */
|
||||
#define TTY_FLUSHPENDING 20 /* Queued buffer flush pending */
|
||||
#define TTY_HUPPING 21 /* ->hangup() in progress */
|
||||
|
||||
#define TTY_WRITE_FLUSH(tty) tty_write_flush((tty))
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* Copyright(C) 2005, Benedikt Spranger <b.spranger@linutronix.de>
|
||||
* Copyright(C) 2005, Thomas Gleixner <tglx@linutronix.de>
|
||||
* Copyright(C) 2006, Hans J. Koch <hjk@linutronix.de>
|
||||
* Copyright(C) 2006, Hans J. Koch <hjk@hansjkoch.de>
|
||||
* Copyright(C) 2006, Greg Kroah-Hartman <greg@kroah.com>
|
||||
*
|
||||
* Userspace IO driver.
|
||||
|
|
|
|||
|
|
@ -313,6 +313,10 @@ struct usb_bus {
|
|||
int busnum; /* Bus number (in order of reg) */
|
||||
const char *bus_name; /* stable id (PCI slot_name etc) */
|
||||
u8 uses_dma; /* Does the host controller use DMA? */
|
||||
u8 uses_pio_for_control; /*
|
||||
* Does the host controller use PIO
|
||||
* for control transfers?
|
||||
*/
|
||||
u8 otg_port; /* 0, or number of OTG/HNP port */
|
||||
unsigned is_b_host:1; /* true during some HNP roleswitches */
|
||||
unsigned b_hnp_enable:1; /* OTG: did A-Host enable HNP? */
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@
|
|||
#ifndef _LINUX_VIDEO_OUTPUT_H
|
||||
#define _LINUX_VIDEO_OUTPUT_H
|
||||
#include <linux/device.h>
|
||||
#include <linux/err.h>
|
||||
struct output_device;
|
||||
struct output_properties {
|
||||
int (*set_state)(struct output_device *);
|
||||
|
|
@ -34,9 +35,23 @@ struct output_device {
|
|||
struct device dev;
|
||||
};
|
||||
#define to_output_device(obj) container_of(obj, struct output_device, dev)
|
||||
#if defined(CONFIG_VIDEO_OUTPUT_CONTROL) || defined(CONFIG_VIDEO_OUTPUT_CONTROL_MODULE)
|
||||
struct output_device *video_output_register(const char *name,
|
||||
struct device *dev,
|
||||
void *devdata,
|
||||
struct output_properties *op);
|
||||
void video_output_unregister(struct output_device *dev);
|
||||
#else
|
||||
static struct output_device *video_output_register(const char *name,
|
||||
struct device *dev,
|
||||
void *devdata,
|
||||
struct output_properties *op)
|
||||
{
|
||||
return ERR_PTR(-ENODEV);
|
||||
}
|
||||
static void video_output_unregister(struct output_device *dev)
|
||||
{
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
struct vm_area_struct; /* vma defining user mapping in mm_types.h */
|
||||
|
||||
extern bool vmap_lazy_unmap;
|
||||
|
||||
/* bits in flags of vmalloc's vm_struct below */
|
||||
#define VM_IOREMAP 0x00000001 /* ioremap() and friends */
|
||||
#define VM_ALLOC 0x00000002 /* vmalloc() */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue