Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
This commit is contained in:
@@ -61,6 +61,7 @@ header-y += efs_fs_sb.h
|
||||
header-y += elf-fdpic.h
|
||||
header-y += elf-em.h
|
||||
header-y += fadvise.h
|
||||
header-y += falloc.h
|
||||
header-y += fd.h
|
||||
header-y += fdreg.h
|
||||
header-y += fib_rules.h
|
||||
@@ -204,7 +205,6 @@ unifdef-y += futex.h
|
||||
unifdef-y += fs.h
|
||||
unifdef-y += gameport.h
|
||||
unifdef-y += generic_serial.h
|
||||
unifdef-y += genhd.h
|
||||
unifdef-y += gfs2_ondisk.h
|
||||
unifdef-y += hayesesp.h
|
||||
unifdef-y += hdlcdrv.h
|
||||
|
||||
@@ -216,8 +216,8 @@ struct request {
|
||||
unsigned int cmd_len;
|
||||
unsigned char cmd[BLK_MAX_CDB];
|
||||
|
||||
unsigned int raw_data_len;
|
||||
unsigned int data_len;
|
||||
unsigned int extra_len; /* length of alignment and padding */
|
||||
unsigned int sense_len;
|
||||
void *data;
|
||||
void *sense;
|
||||
@@ -362,6 +362,7 @@ struct request_queue
|
||||
unsigned long seg_boundary_mask;
|
||||
void *dma_drain_buffer;
|
||||
unsigned int dma_drain_size;
|
||||
unsigned int dma_pad_mask;
|
||||
unsigned int dma_alignment;
|
||||
|
||||
struct blk_queue_tag *queue_tags;
|
||||
@@ -701,6 +702,7 @@ extern void blk_queue_max_hw_segments(struct request_queue *, unsigned short);
|
||||
extern void blk_queue_max_segment_size(struct request_queue *, unsigned int);
|
||||
extern void blk_queue_hardsect_size(struct request_queue *, unsigned short);
|
||||
extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b);
|
||||
extern void blk_queue_dma_pad(struct request_queue *, unsigned int);
|
||||
extern int blk_queue_dma_drain(struct request_queue *q,
|
||||
dma_drain_needed_fn *dma_drain_needed,
|
||||
void *buf, unsigned int size);
|
||||
|
||||
@@ -37,7 +37,7 @@ SUBSYS(cpuacct)
|
||||
|
||||
/* */
|
||||
|
||||
#ifdef CONFIG_CGROUP_MEM_CONT
|
||||
#ifdef CONFIG_CGROUP_MEM_RES_CTLR
|
||||
SUBSYS(mem_cgroup)
|
||||
#endif
|
||||
|
||||
|
||||
@@ -138,6 +138,12 @@ extern void __chk_io_ptr(const volatile void __iomem *);
|
||||
#define noinline
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Rather then using noinline to prevent stack consumption, use
|
||||
* noinline_for_stack instead. For documentaiton reasons.
|
||||
*/
|
||||
#define noinline_for_stack noinline
|
||||
|
||||
#ifndef __always_inline
|
||||
#define __always_inline inline
|
||||
#endif
|
||||
|
||||
@@ -27,6 +27,11 @@ struct debugfs_blob_wrapper {
|
||||
};
|
||||
|
||||
#if defined(CONFIG_DEBUG_FS)
|
||||
|
||||
/* declared over in file.c */
|
||||
extern const struct file_operations debugfs_file_operations;
|
||||
extern const struct inode_operations debugfs_link_operations;
|
||||
|
||||
struct dentry *debugfs_create_file(const char *name, mode_t mode,
|
||||
struct dentry *parent, void *data,
|
||||
const struct file_operations *fops);
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
* Delay routines, using a pre-computed "loops_per_jiffy" value.
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
|
||||
extern unsigned long loops_per_jiffy;
|
||||
|
||||
#include <asm/delay.h>
|
||||
@@ -32,7 +34,11 @@ extern unsigned long loops_per_jiffy;
|
||||
#endif
|
||||
|
||||
#ifndef ndelay
|
||||
#define ndelay(x) udelay(((x)+999)/1000)
|
||||
static inline void ndelay(unsigned long x)
|
||||
{
|
||||
udelay(DIV_ROUND_UP(x, 1000));
|
||||
}
|
||||
#define ndelay(x) ndelay(x)
|
||||
#endif
|
||||
|
||||
void calibrate_delay(void);
|
||||
|
||||
@@ -366,7 +366,7 @@ __dma_has_cap(enum dma_transaction_type tx_type, dma_cap_mask_t *srcp)
|
||||
*/
|
||||
static inline void dma_async_issue_pending(struct dma_chan *chan)
|
||||
{
|
||||
return chan->device->device_issue_pending(chan);
|
||||
chan->device->device_issue_pending(chan);
|
||||
}
|
||||
|
||||
#define dma_async_memcpy_issue_pending(chan) dma_async_issue_pending(chan)
|
||||
|
||||
@@ -45,8 +45,8 @@ struct compat_elf_prpsinfo
|
||||
char pr_zomb;
|
||||
char pr_nice;
|
||||
compat_ulong_t pr_flag;
|
||||
compat_uid_t pr_uid;
|
||||
compat_gid_t pr_gid;
|
||||
__compat_uid_t pr_uid;
|
||||
__compat_gid_t pr_gid;
|
||||
compat_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
|
||||
char pr_fname[16];
|
||||
char pr_psargs[ELF_PRARGSZ];
|
||||
|
||||
@@ -49,11 +49,11 @@ struct fid {
|
||||
|
||||
/**
|
||||
* struct export_operations - for nfsd to communicate with file systems
|
||||
* @decode_fh: decode a file handle fragment and return a &struct dentry
|
||||
* @encode_fh: encode a file handle fragment from a dentry
|
||||
* @fh_to_dentry: find the implied object and get a dentry for it
|
||||
* @fh_to_parent: find the implied object's parent and get a dentry for it
|
||||
* @get_name: find the name for a given inode in a given directory
|
||||
* @get_parent: find the parent of a given directory
|
||||
* @get_dentry: find a dentry for the inode given a file handle sub-fragment
|
||||
*
|
||||
* See Documentation/filesystems/Exporting for details on how to use
|
||||
* this interface correctly.
|
||||
|
||||
@@ -227,5 +227,6 @@ extern int ext4_ext_search_left(struct inode *, struct ext4_ext_path *,
|
||||
ext4_lblk_t *, ext4_fsblk_t *);
|
||||
extern int ext4_ext_search_right(struct inode *, struct ext4_ext_path *,
|
||||
ext4_lblk_t *, ext4_fsblk_t *);
|
||||
extern void ext4_ext_drop_refs(struct ext4_ext_path *);
|
||||
#endif /* _LINUX_EXT4_EXTENTS */
|
||||
|
||||
|
||||
@@ -10,7 +10,10 @@ struct firmware {
|
||||
size_t size;
|
||||
u8 *data;
|
||||
};
|
||||
|
||||
struct device;
|
||||
|
||||
#if defined(CONFIG_FW_LOADER) || defined(CONFIG_FW_LOADER_MODULE)
|
||||
int request_firmware(const struct firmware **fw, const char *name,
|
||||
struct device *device);
|
||||
int request_firmware_nowait(
|
||||
@@ -19,4 +22,24 @@ int request_firmware_nowait(
|
||||
void (*cont)(const struct firmware *fw, void *context));
|
||||
|
||||
void release_firmware(const struct firmware *fw);
|
||||
#else
|
||||
static inline int request_firmware(const struct firmware **fw,
|
||||
const char *name,
|
||||
struct device *device)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
static inline int request_firmware_nowait(
|
||||
struct module *module, int uevent,
|
||||
const char *name, struct device *device, void *context,
|
||||
void (*cont)(const struct firmware *fw, void *context))
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static inline void release_firmware(const struct firmware *fw)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
+6
-29
@@ -18,11 +18,13 @@
|
||||
#define dev_to_disk(device) container_of(device, struct gendisk, dev)
|
||||
#define dev_to_part(device) container_of(device, struct hd_struct, dev)
|
||||
|
||||
extern struct device_type disk_type;
|
||||
extern struct device_type part_type;
|
||||
extern struct kobject *block_depr;
|
||||
extern struct class block_class;
|
||||
|
||||
extern const struct seq_operations partitions_op;
|
||||
extern const struct seq_operations diskstats_op;
|
||||
|
||||
enum {
|
||||
/* These three have identical behaviour; use the second one if DOS FDISK gets
|
||||
confused about extended/logical partitions starting past cylinder 1023. */
|
||||
@@ -53,24 +55,6 @@ enum {
|
||||
UNIXWARE_PARTITION = 0x63, /* Same as GNU_HURD and SCO Unix */
|
||||
};
|
||||
|
||||
#ifndef __KERNEL__
|
||||
|
||||
struct partition {
|
||||
unsigned char boot_ind; /* 0x80 - active */
|
||||
unsigned char head; /* starting head */
|
||||
unsigned char sector; /* starting sector */
|
||||
unsigned char cyl; /* starting cylinder */
|
||||
unsigned char sys_ind; /* What partition type */
|
||||
unsigned char end_head; /* end head */
|
||||
unsigned char end_sector; /* end sector */
|
||||
unsigned char end_cyl; /* end cylinder */
|
||||
unsigned int start_sect; /* starting sector counting from 0 */
|
||||
unsigned int nr_sects; /* nr of sectors in partition */
|
||||
} __attribute__((packed));
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/major.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/smp.h>
|
||||
@@ -226,7 +210,7 @@ static inline void part_stat_set_all(struct hd_struct *part, int value) {
|
||||
sizeof(struct disk_stats));
|
||||
}
|
||||
|
||||
#else
|
||||
#else /* !CONFIG_SMP */
|
||||
#define __disk_stat_add(gendiskp, field, addnd) \
|
||||
(gendiskp->dkstats.field += addnd)
|
||||
#define disk_stat_read(gendiskp, field) (gendiskp->dkstats.field)
|
||||
@@ -254,7 +238,7 @@ static inline void part_stat_set_all(struct hd_struct *part, int value)
|
||||
memset(&part->dkstats, value, sizeof(struct disk_stats));
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
#define disk_stat_add(gendiskp, field, addnd) \
|
||||
do { \
|
||||
@@ -393,8 +377,6 @@ static inline void set_capacity(struct gendisk *disk, sector_t size)
|
||||
disk->capacity = size;
|
||||
}
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#ifdef CONFIG_SOLARIS_X86_PARTITION
|
||||
|
||||
#define SOLARIS_X86_NUMSLICE 16
|
||||
@@ -538,8 +520,6 @@ struct unixware_disklabel {
|
||||
# define MINIX_NR_SUBPARTITIONS 4
|
||||
#endif /* CONFIG_MINIX_SUBPARTITION */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
#define ADDPART_FLAG_NONE 0
|
||||
#define ADDPART_FLAG_RAID 1
|
||||
#define ADDPART_FLAG_WHOLEDISK 2
|
||||
@@ -556,7 +536,6 @@ extern struct gendisk *alloc_disk_node(int minors, int node_id);
|
||||
extern struct gendisk *alloc_disk(int minors);
|
||||
extern struct kobject *get_disk(struct gendisk *disk);
|
||||
extern void put_disk(struct gendisk *disk);
|
||||
extern void genhd_media_change_notify(struct gendisk *disk);
|
||||
extern void blk_register_region(dev_t devt, unsigned long range,
|
||||
struct module *module,
|
||||
struct kobject *(*probe)(dev_t, int *, void *),
|
||||
@@ -569,8 +548,6 @@ static inline struct block_device *bdget_disk(struct gendisk *disk, int index)
|
||||
return bdget(MKDEV(disk->major, disk->first_minor) + index);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#else /* CONFIG_BLOCK */
|
||||
|
||||
static inline void printk_all_partitions(void) { }
|
||||
@@ -583,4 +560,4 @@ static inline dev_t blk_lookup_devt(const char *name)
|
||||
|
||||
#endif /* CONFIG_BLOCK */
|
||||
|
||||
#endif
|
||||
#endif /* _LINUX_GENHD_H */
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
#ifndef __LINUX_GPIO_H
|
||||
#define __LINUX_GPIO_H
|
||||
|
||||
/* see Documentation/gpio.txt */
|
||||
|
||||
#ifdef CONFIG_GENERIC_GPIO
|
||||
#include <asm/gpio.h>
|
||||
|
||||
#else
|
||||
|
||||
/*
|
||||
* Some platforms don't support the GPIO programming interface.
|
||||
*
|
||||
* In case some driver uses it anyway (it should normally have
|
||||
* depended on GENERIC_GPIO), these routines help the compiler
|
||||
* optimize out much GPIO-related code ... or trigger a runtime
|
||||
* warning when something is wrongly called.
|
||||
*/
|
||||
|
||||
static inline int gpio_is_valid(int number)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int gpio_request(unsigned gpio, const char *label)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline void gpio_free(unsigned gpio)
|
||||
{
|
||||
/* GPIO can never have been requested */
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
||||
static inline int gpio_direction_input(unsigned gpio)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int gpio_direction_output(unsigned gpio, int value)
|
||||
{
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static inline int gpio_get_value(unsigned gpio)
|
||||
{
|
||||
/* GPIO can never have been requested or set as {in,out}put */
|
||||
WARN_ON(1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void gpio_set_value(unsigned gpio, int value)
|
||||
{
|
||||
/* GPIO can never have been requested or set as output */
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
||||
static inline int gpio_cansleep(unsigned gpio)
|
||||
{
|
||||
/* GPIO can never have been requested or set as {in,out}put */
|
||||
WARN_ON(1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int gpio_get_value_cansleep(unsigned gpio)
|
||||
{
|
||||
/* GPIO can never have been requested or set as {in,out}put */
|
||||
WARN_ON(1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void gpio_set_value_cansleep(unsigned gpio, int value)
|
||||
{
|
||||
/* GPIO can never have been requested or set as output */
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
||||
static inline int gpio_to_irq(unsigned gpio)
|
||||
{
|
||||
/* GPIO can never have been requested or set as input */
|
||||
WARN_ON(1);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static inline int irq_to_gpio(unsigned irq)
|
||||
{
|
||||
/* irq can never have been returned from gpio_to_irq() */
|
||||
WARN_ON(1);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* __LINUX_GPIO_H */
|
||||
@@ -109,6 +109,14 @@ static inline void account_system_vtime(struct task_struct *tsk)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PREEMPT_RCU) && defined(CONFIG_NO_HZ)
|
||||
extern void rcu_irq_enter(void);
|
||||
extern void rcu_irq_exit(void);
|
||||
#else
|
||||
# define rcu_irq_enter() do { } while (0)
|
||||
# define rcu_irq_exit() do { } while (0)
|
||||
#endif /* CONFIG_PREEMPT_RCU */
|
||||
|
||||
/*
|
||||
* It is safe to do non-atomic ops on ->hardirq_context,
|
||||
* because NMI handlers may not preempt and the ops are
|
||||
@@ -117,6 +125,7 @@ static inline void account_system_vtime(struct task_struct *tsk)
|
||||
*/
|
||||
#define __irq_enter() \
|
||||
do { \
|
||||
rcu_irq_enter(); \
|
||||
account_system_vtime(current); \
|
||||
add_preempt_count(HARDIRQ_OFFSET); \
|
||||
trace_hardirq_enter(); \
|
||||
@@ -135,6 +144,7 @@ extern void irq_enter(void);
|
||||
trace_hardirq_exit(); \
|
||||
account_system_vtime(current); \
|
||||
sub_preempt_count(HARDIRQ_OFFSET); \
|
||||
rcu_irq_exit(); \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
extern int iommu_is_span_boundary(unsigned int index, unsigned int nr,
|
||||
unsigned long shift,
|
||||
unsigned long boundary_size);
|
||||
extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,
|
||||
unsigned long start, unsigned int nr,
|
||||
unsigned long shift,
|
||||
|
||||
@@ -125,11 +125,11 @@ struct jprobe {
|
||||
DECLARE_PER_CPU(struct kprobe *, current_kprobe);
|
||||
DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
|
||||
|
||||
#ifdef ARCH_SUPPORTS_KRETPROBES
|
||||
#ifdef CONFIG_KRETPROBES
|
||||
extern void arch_prepare_kretprobe(struct kretprobe_instance *ri,
|
||||
struct pt_regs *regs);
|
||||
extern int arch_trampoline_kprobe(struct kprobe *p);
|
||||
#else /* ARCH_SUPPORTS_KRETPROBES */
|
||||
#else /* CONFIG_KRETPROBES */
|
||||
static inline void arch_prepare_kretprobe(struct kretprobe *rp,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
@@ -138,7 +138,7 @@ static inline int arch_trampoline_kprobe(struct kprobe *p)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif /* ARCH_SUPPORTS_KRETPROBES */
|
||||
#endif /* CONFIG_KRETPROBES */
|
||||
/*
|
||||
* Function-return probe -
|
||||
* Note:
|
||||
|
||||
+2
-2
@@ -221,6 +221,7 @@ struct kvm_vapic_addr {
|
||||
* Get size for mmap(vcpu_fd)
|
||||
*/
|
||||
#define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */
|
||||
#define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x05, struct kvm_cpuid2)
|
||||
|
||||
/*
|
||||
* Extension capability list.
|
||||
@@ -230,8 +231,8 @@ struct kvm_vapic_addr {
|
||||
#define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2
|
||||
#define KVM_CAP_USER_MEMORY 3
|
||||
#define KVM_CAP_SET_TSS_ADDR 4
|
||||
#define KVM_CAP_EXT_CPUID 5
|
||||
#define KVM_CAP_VAPIC 6
|
||||
#define KVM_CAP_EXT_CPUID 7
|
||||
|
||||
/*
|
||||
* ioctls for VM fds
|
||||
@@ -249,7 +250,6 @@ struct kvm_vapic_addr {
|
||||
#define KVM_CREATE_VCPU _IO(KVMIO, 0x41)
|
||||
#define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log)
|
||||
#define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias)
|
||||
#define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x48, struct kvm_cpuid2)
|
||||
/* Device model IOC */
|
||||
#define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60)
|
||||
#define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level)
|
||||
|
||||
@@ -107,6 +107,7 @@ struct kvm_memory_slot {
|
||||
struct kvm {
|
||||
struct mutex lock; /* protects the vcpus array and APIC accesses */
|
||||
spinlock_t mmu_lock;
|
||||
struct rw_semaphore slots_lock;
|
||||
struct mm_struct *mm; /* userspace tied to this vm */
|
||||
int nmemslots;
|
||||
struct kvm_memory_slot memslots[KVM_MEMORY_SLOTS +
|
||||
|
||||
@@ -64,7 +64,6 @@ struct maple_driver {
|
||||
int (*connect) (struct maple_device * dev);
|
||||
void (*disconnect) (struct maple_device * dev);
|
||||
struct device_driver drv;
|
||||
int registered;
|
||||
};
|
||||
|
||||
void maple_getcond_callback(struct maple_device *dev,
|
||||
|
||||
@@ -104,10 +104,16 @@ static inline void marker_update_probe_range(struct marker *begin,
|
||||
#define MARK_NOARGS " "
|
||||
|
||||
/* To be used for string format validity checking with gcc */
|
||||
static inline void __printf(1, 2) __mark_check_format(const char *fmt, ...)
|
||||
static inline void __printf(1, 2) ___mark_check_format(const char *fmt, ...)
|
||||
{
|
||||
}
|
||||
|
||||
#define __mark_check_format(format, args...) \
|
||||
do { \
|
||||
if (0) \
|
||||
___mark_check_format(format, ## args); \
|
||||
} while (0)
|
||||
|
||||
extern marker_probe_func __mark_empty_function;
|
||||
|
||||
extern void marker_probe_cb(const struct marker *mdata,
|
||||
|
||||
+17
-24
@@ -25,18 +25,20 @@ struct page_cgroup;
|
||||
struct page;
|
||||
struct mm_struct;
|
||||
|
||||
#ifdef CONFIG_CGROUP_MEM_CONT
|
||||
#ifdef CONFIG_CGROUP_MEM_RES_CTLR
|
||||
|
||||
extern void mm_init_cgroup(struct mm_struct *mm, struct task_struct *p);
|
||||
extern void mm_free_cgroup(struct mm_struct *mm);
|
||||
extern void page_assign_page_cgroup(struct page *page,
|
||||
struct page_cgroup *pc);
|
||||
|
||||
#define page_reset_bad_cgroup(page) ((page)->page_cgroup = 0)
|
||||
|
||||
extern struct page_cgroup *page_get_page_cgroup(struct page *page);
|
||||
extern int mem_cgroup_charge(struct page *page, struct mm_struct *mm,
|
||||
gfp_t gfp_mask);
|
||||
extern void mem_cgroup_uncharge(struct page_cgroup *pc);
|
||||
extern int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm,
|
||||
gfp_t gfp_mask);
|
||||
extern void mem_cgroup_uncharge_page(struct page *page);
|
||||
extern void mem_cgroup_move_lists(struct page_cgroup *pc, bool active);
|
||||
extern void mem_cgroup_move_lists(struct page *page, bool active);
|
||||
extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan,
|
||||
struct list_head *dst,
|
||||
unsigned long *scanned, int order,
|
||||
@@ -44,11 +46,9 @@ extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan,
|
||||
struct mem_cgroup *mem_cont,
|
||||
int active);
|
||||
extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask);
|
||||
extern int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm,
|
||||
gfp_t gfp_mask);
|
||||
int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem);
|
||||
|
||||
#define vm_match_cgroup(mm, cgroup) \
|
||||
#define mm_match_cgroup(mm, cgroup) \
|
||||
((cgroup) == rcu_dereference((mm)->mem_cgroup))
|
||||
|
||||
extern int mem_cgroup_prepare_migration(struct page *page);
|
||||
@@ -72,7 +72,7 @@ extern long mem_cgroup_calc_reclaim_active(struct mem_cgroup *mem,
|
||||
extern long mem_cgroup_calc_reclaim_inactive(struct mem_cgroup *mem,
|
||||
struct zone *zone, int priority);
|
||||
|
||||
#else /* CONFIG_CGROUP_MEM_CONT */
|
||||
#else /* CONFIG_CGROUP_MEM_RES_CTLR */
|
||||
static inline void mm_init_cgroup(struct mm_struct *mm,
|
||||
struct task_struct *p)
|
||||
{
|
||||
@@ -82,8 +82,7 @@ static inline void mm_free_cgroup(struct mm_struct *mm)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void page_assign_page_cgroup(struct page *page,
|
||||
struct page_cgroup *pc)
|
||||
static inline void page_reset_bad_cgroup(struct page *page)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -92,33 +91,27 @@ static inline struct page_cgroup *page_get_page_cgroup(struct page *page)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline int mem_cgroup_charge(struct page *page, struct mm_struct *mm,
|
||||
gfp_t gfp_mask)
|
||||
static inline int mem_cgroup_charge(struct page *page,
|
||||
struct mm_struct *mm, gfp_t gfp_mask)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void mem_cgroup_uncharge(struct page_cgroup *pc)
|
||||
static inline int mem_cgroup_cache_charge(struct page *page,
|
||||
struct mm_struct *mm, gfp_t gfp_mask)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void mem_cgroup_uncharge_page(struct page *page)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void mem_cgroup_move_lists(struct page_cgroup *pc,
|
||||
bool active)
|
||||
static inline void mem_cgroup_move_lists(struct page *page, bool active)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int mem_cgroup_cache_charge(struct page *page,
|
||||
struct mm_struct *mm,
|
||||
gfp_t gfp_mask)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int vm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem)
|
||||
static inline int mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
+88
-44
@@ -22,6 +22,8 @@ struct ms_status_register {
|
||||
unsigned char reserved;
|
||||
unsigned char interrupt;
|
||||
#define MEMSTICK_INT_CMDNAK 0x0001
|
||||
#define MEMSTICK_INT_IOREQ 0x0008
|
||||
#define MEMSTICK_INT_IOBREQ 0x0010
|
||||
#define MEMSTICK_INT_BREQ 0x0020
|
||||
#define MEMSTICK_INT_ERR 0x0040
|
||||
#define MEMSTICK_INT_CED 0x0080
|
||||
@@ -47,13 +49,17 @@ struct ms_status_register {
|
||||
|
||||
struct ms_id_register {
|
||||
unsigned char type;
|
||||
unsigned char reserved;
|
||||
unsigned char if_mode;
|
||||
unsigned char category;
|
||||
unsigned char class;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct ms_param_register {
|
||||
unsigned char system;
|
||||
#define MEMSTICK_SYS_ATEN 0xc0
|
||||
#define MEMSTICK_SYS_BAMD 0x80
|
||||
#define MEMSTICK_SYS_PAM 0x08
|
||||
|
||||
unsigned char block_address_msb;
|
||||
unsigned short block_address;
|
||||
unsigned char cp;
|
||||
@@ -90,16 +96,48 @@ struct ms_register {
|
||||
|
||||
struct mspro_param_register {
|
||||
unsigned char system;
|
||||
#define MEMSTICK_SYS_SERIAL 0x80
|
||||
#define MEMSTICK_SYS_PAR4 0x00
|
||||
#define MEMSTICK_SYS_PAR8 0x40
|
||||
|
||||
unsigned short data_count;
|
||||
unsigned int data_address;
|
||||
unsigned char tpc_param;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct mspro_io_info_register {
|
||||
unsigned char version;
|
||||
unsigned char io_category;
|
||||
unsigned char current_req;
|
||||
unsigned char card_opt_info;
|
||||
unsigned char rdy_wait_time;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct mspro_io_func_register {
|
||||
unsigned char func_enable;
|
||||
unsigned char func_select;
|
||||
unsigned char func_intmask;
|
||||
unsigned char transfer_mode;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct mspro_io_cmd_register {
|
||||
unsigned short tpc_param;
|
||||
unsigned short data_count;
|
||||
unsigned int data_address;
|
||||
unsigned char cmd_param;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct mspro_register {
|
||||
struct ms_status_register status;
|
||||
struct ms_id_register id;
|
||||
unsigned char reserved[8];
|
||||
struct mspro_param_register param;
|
||||
struct ms_status_register status;
|
||||
struct ms_id_register id;
|
||||
unsigned char reserved0[8];
|
||||
struct mspro_param_register param;
|
||||
unsigned char reserved1[8];
|
||||
struct mspro_io_info_register io_info;
|
||||
struct mspro_io_func_register io_func;
|
||||
unsigned char reserved2[7];
|
||||
struct mspro_io_cmd_register io_cmd;
|
||||
unsigned char io_int;
|
||||
unsigned char io_int_func;
|
||||
} __attribute__((packed));
|
||||
|
||||
struct ms_register_addr {
|
||||
@@ -110,49 +148,55 @@ struct ms_register_addr {
|
||||
} __attribute__((packed));
|
||||
|
||||
enum {
|
||||
MS_TPC_READ_MG_STATUS = 0x01,
|
||||
MS_TPC_READ_LONG_DATA = 0x02,
|
||||
MS_TPC_READ_SHORT_DATA = 0x03,
|
||||
MS_TPC_READ_MG_DATA = 0x03,
|
||||
MS_TPC_READ_REG = 0x04,
|
||||
MS_TPC_READ_IO_DATA = 0x05, /* unverified */
|
||||
MS_TPC_READ_QUAD_DATA = 0x05,
|
||||
MS_TPC_READ_IO_DATA = 0x05,
|
||||
MS_TPC_GET_INT = 0x07,
|
||||
MS_TPC_SET_RW_REG_ADRS = 0x08,
|
||||
MS_TPC_EX_SET_CMD = 0x09,
|
||||
MS_TPC_WRITE_IO_DATA = 0x0a, /* unverified */
|
||||
MS_TPC_WRITE_QUAD_DATA = 0x0a,
|
||||
MS_TPC_WRITE_IO_DATA = 0x0a,
|
||||
MS_TPC_WRITE_REG = 0x0b,
|
||||
MS_TPC_WRITE_SHORT_DATA = 0x0c,
|
||||
MS_TPC_WRITE_MG_DATA = 0x0c,
|
||||
MS_TPC_WRITE_LONG_DATA = 0x0d,
|
||||
MS_TPC_SET_CMD = 0x0e
|
||||
};
|
||||
|
||||
enum {
|
||||
MS_CMD_BLOCK_END = 0x33,
|
||||
MS_CMD_RESET = 0x3c,
|
||||
MS_CMD_BLOCK_WRITE = 0x55,
|
||||
MS_CMD_SLEEP = 0x5a,
|
||||
MS_CMD_BLOCK_ERASE = 0x99,
|
||||
MS_CMD_BLOCK_READ = 0xaa,
|
||||
MS_CMD_CLEAR_BUF = 0xc3,
|
||||
MS_CMD_FLASH_STOP = 0xcc,
|
||||
MSPRO_CMD_FORMAT = 0x10,
|
||||
MSPRO_CMD_SLEEP = 0x11,
|
||||
MSPRO_CMD_READ_DATA = 0x20,
|
||||
MSPRO_CMD_WRITE_DATA = 0x21,
|
||||
MSPRO_CMD_READ_ATRB = 0x24,
|
||||
MSPRO_CMD_STOP = 0x25,
|
||||
MSPRO_CMD_ERASE = 0x26,
|
||||
MSPRO_CMD_SET_IBA = 0x46,
|
||||
MSPRO_CMD_SET_IBD = 0x47
|
||||
/*
|
||||
MSPRO_CMD_RESET
|
||||
MSPRO_CMD_WAKEUP
|
||||
MSPRO_CMD_IN_IO_DATA
|
||||
MSPRO_CMD_OUT_IO_DATA
|
||||
MSPRO_CMD_READ_IO_ATRB
|
||||
MSPRO_CMD_IN_IO_FIFO
|
||||
MSPRO_CMD_OUT_IO_FIFO
|
||||
MSPRO_CMD_IN_IOM
|
||||
MSPRO_CMD_OUT_IOM
|
||||
*/
|
||||
MS_CMD_BLOCK_END = 0x33,
|
||||
MS_CMD_RESET = 0x3c,
|
||||
MS_CMD_BLOCK_WRITE = 0x55,
|
||||
MS_CMD_SLEEP = 0x5a,
|
||||
MS_CMD_BLOCK_ERASE = 0x99,
|
||||
MS_CMD_BLOCK_READ = 0xaa,
|
||||
MS_CMD_CLEAR_BUF = 0xc3,
|
||||
MS_CMD_FLASH_STOP = 0xcc,
|
||||
MS_CMD_LOAD_ID = 0x60,
|
||||
MS_CMD_CMP_ICV = 0x7f,
|
||||
MSPRO_CMD_FORMAT = 0x10,
|
||||
MSPRO_CMD_SLEEP = 0x11,
|
||||
MSPRO_CMD_WAKEUP = 0x12,
|
||||
MSPRO_CMD_READ_DATA = 0x20,
|
||||
MSPRO_CMD_WRITE_DATA = 0x21,
|
||||
MSPRO_CMD_READ_ATRB = 0x24,
|
||||
MSPRO_CMD_STOP = 0x25,
|
||||
MSPRO_CMD_ERASE = 0x26,
|
||||
MSPRO_CMD_READ_QUAD = 0x27,
|
||||
MSPRO_CMD_WRITE_QUAD = 0x28,
|
||||
MSPRO_CMD_SET_IBD = 0x46,
|
||||
MSPRO_CMD_GET_IBD = 0x47,
|
||||
MSPRO_CMD_IN_IO_DATA = 0xb0,
|
||||
MSPRO_CMD_OUT_IO_DATA = 0xb1,
|
||||
MSPRO_CMD_READ_IO_ATRB = 0xb2,
|
||||
MSPRO_CMD_IN_IO_FIFO = 0xb3,
|
||||
MSPRO_CMD_OUT_IO_FIFO = 0xb4,
|
||||
MSPRO_CMD_IN_IOM = 0xb5,
|
||||
MSPRO_CMD_OUT_IOM = 0xb6,
|
||||
};
|
||||
|
||||
/*** Driver structures and functions ***/
|
||||
@@ -165,7 +209,8 @@ enum memstick_param { MEMSTICK_POWER = 1, MEMSTICK_INTERFACE };
|
||||
#define MEMSTICK_POWER_ON 1
|
||||
|
||||
#define MEMSTICK_SERIAL 0
|
||||
#define MEMSTICK_PARALLEL 1
|
||||
#define MEMSTICK_PAR4 1
|
||||
#define MEMSTICK_PAR8 2
|
||||
|
||||
struct memstick_host;
|
||||
struct memstick_driver;
|
||||
@@ -195,11 +240,7 @@ struct memstick_request {
|
||||
unsigned char data_dir:1,
|
||||
need_card_int:1,
|
||||
get_int_reg:1,
|
||||
io_type:2;
|
||||
#define MEMSTICK_IO_NONE 0
|
||||
#define MEMSTICK_IO_VAL 1
|
||||
#define MEMSTICK_IO_SG 2
|
||||
|
||||
long_data:1;
|
||||
unsigned char int_reg;
|
||||
int error;
|
||||
union {
|
||||
@@ -231,8 +272,9 @@ struct memstick_host {
|
||||
struct mutex lock;
|
||||
unsigned int id;
|
||||
unsigned int caps;
|
||||
#define MEMSTICK_CAP_PARALLEL 1
|
||||
#define MEMSTICK_CAP_AUTO_GET_INT 2
|
||||
#define MEMSTICK_CAP_AUTO_GET_INT 1
|
||||
#define MEMSTICK_CAP_PAR4 2
|
||||
#define MEMSTICK_CAP_PAR8 4
|
||||
|
||||
struct work_struct media_checker;
|
||||
struct class_device cdev;
|
||||
@@ -270,6 +312,8 @@ int memstick_add_host(struct memstick_host *host);
|
||||
void memstick_remove_host(struct memstick_host *host);
|
||||
void memstick_free_host(struct memstick_host *host);
|
||||
void memstick_detect_change(struct memstick_host *host);
|
||||
void memstick_suspend_host(struct memstick_host *host);
|
||||
void memstick_resume_host(struct memstick_host *host);
|
||||
|
||||
void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc,
|
||||
struct scatterlist *sg);
|
||||
|
||||
+10
-3
@@ -235,15 +235,22 @@ static inline int get_page_unless_zero(struct page *page)
|
||||
struct page *vmalloc_to_page(const void *addr);
|
||||
unsigned long vmalloc_to_pfn(const void *addr);
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
/* Determine if an address is within the vmalloc range */
|
||||
/*
|
||||
* Determine if an address is within the vmalloc range
|
||||
*
|
||||
* On nommu, vmalloc/vfree wrap through kmalloc/kfree directly, so there
|
||||
* is no special casing required.
|
||||
*/
|
||||
static inline int is_vmalloc_addr(const void *x)
|
||||
{
|
||||
#ifdef CONFIG_MMU
|
||||
unsigned long addr = (unsigned long)x;
|
||||
|
||||
return addr >= VMALLOC_START && addr < VMALLOC_END;
|
||||
}
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline struct page *compound_head(struct page *page)
|
||||
{
|
||||
|
||||
@@ -64,10 +64,7 @@ struct page {
|
||||
#if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS
|
||||
spinlock_t ptl;
|
||||
#endif
|
||||
struct {
|
||||
struct kmem_cache *slab; /* SLUB: Pointer to slab */
|
||||
void *end; /* SLUB: end marker */
|
||||
};
|
||||
struct kmem_cache *slab; /* SLUB: Pointer to slab */
|
||||
struct page *first_page; /* Compound tail pages */
|
||||
};
|
||||
union {
|
||||
@@ -91,7 +88,7 @@ struct page {
|
||||
void *virtual; /* Kernel virtual address (NULL if
|
||||
not kmapped, ie. highmem) */
|
||||
#endif /* WANT_PAGE_VIRTUAL */
|
||||
#ifdef CONFIG_CGROUP_MEM_CONT
|
||||
#ifdef CONFIG_CGROUP_MEM_RES_CTLR
|
||||
unsigned long page_cgroup;
|
||||
#endif
|
||||
};
|
||||
@@ -225,7 +222,7 @@ struct mm_struct {
|
||||
/* aio bits */
|
||||
rwlock_t ioctx_list_lock;
|
||||
struct kioctx *ioctx_list;
|
||||
#ifdef CONFIG_CGROUP_MEM_CONT
|
||||
#ifdef CONFIG_CGROUP_MEM_RES_CTLR
|
||||
struct mem_cgroup *mem_cgroup;
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -195,6 +195,7 @@ struct nfs_inode {
|
||||
#define NFS_INO_ADVISE_RDPLUS (1) /* advise readdirplus */
|
||||
#define NFS_INO_STALE (2) /* possible stale inode */
|
||||
#define NFS_INO_ACL_LRU_SET (3) /* Inode is on the LRU list */
|
||||
#define NFS_INO_MOUNTPOINT (4) /* inode is remote mountpoint */
|
||||
|
||||
static inline struct nfs_inode *NFS_I(const struct inode *inode)
|
||||
{
|
||||
|
||||
@@ -278,6 +278,7 @@ struct pci_bus {
|
||||
struct device dev;
|
||||
struct bin_attribute *legacy_io; /* legacy I/O for this bus */
|
||||
struct bin_attribute *legacy_mem; /* legacy mem */
|
||||
unsigned int is_added:1;
|
||||
};
|
||||
|
||||
#define pci_bus_b(n) list_entry(n, struct pci_bus, node)
|
||||
@@ -388,6 +389,16 @@ struct pci_driver {
|
||||
|
||||
#define to_pci_driver(drv) container_of(drv, struct pci_driver, driver)
|
||||
|
||||
/**
|
||||
* DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table
|
||||
* @_table: device table name
|
||||
*
|
||||
* This macro is used to create a struct pci_device_id array (a device table)
|
||||
* in a generic manner.
|
||||
*/
|
||||
#define DEFINE_PCI_DEVICE_TABLE(_table) \
|
||||
const struct pci_device_id _table[] __devinitconst
|
||||
|
||||
/**
|
||||
* PCI_DEVICE - macro used to describe a specific pci device
|
||||
* @vend: the 16 bit PCI Vendor ID
|
||||
@@ -1034,6 +1045,8 @@ void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen);
|
||||
void pcim_iounmap(struct pci_dev *pdev, void __iomem *addr);
|
||||
void __iomem * const *pcim_iomap_table(struct pci_dev *pdev);
|
||||
int pcim_iomap_regions(struct pci_dev *pdev, u16 mask, const char *name);
|
||||
int pcim_iomap_regions_request_all(struct pci_dev *pdev, u16 mask,
|
||||
const char *name);
|
||||
void pcim_iounmap_regions(struct pci_dev *pdev, u16 mask);
|
||||
|
||||
extern int pci_pci_problems;
|
||||
|
||||
@@ -2184,6 +2184,7 @@
|
||||
#define PCI_DEVICE_ID_JMICRON_JMB366 0x2366
|
||||
#define PCI_DEVICE_ID_JMICRON_JMB368 0x2368
|
||||
#define PCI_DEVICE_ID_JMICRON_JMB38X_SD 0x2381
|
||||
#define PCI_DEVICE_ID_JMICRON_JMB38X_MS 0x2383
|
||||
|
||||
#define PCI_VENDOR_ID_KORENIX 0x1982
|
||||
#define PCI_DEVICE_ID_KORENIX_JETCARDF0 0x1600
|
||||
|
||||
+8
-1
@@ -147,8 +147,15 @@ extern void pmu_wait_complete(struct adb_request *req);
|
||||
/* For use before switching interrupts off for a long time;
|
||||
* warning: not stackable
|
||||
*/
|
||||
#if defined(CONFIG_ADB_PMU)
|
||||
extern void pmu_suspend(void);
|
||||
extern void pmu_resume(void);
|
||||
#else
|
||||
static inline void pmu_suspend(void)
|
||||
{}
|
||||
static inline void pmu_resume(void)
|
||||
{}
|
||||
#endif
|
||||
|
||||
extern void pmu_enable_irled(int on);
|
||||
|
||||
@@ -192,7 +199,7 @@ extern unsigned int pmu_power_flags;
|
||||
extern void pmu_backlight_init(void);
|
||||
|
||||
/* some code needs to know if the PMU was suspended for hibernation */
|
||||
#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
|
||||
#if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32)
|
||||
extern int pmu_sys_suspended;
|
||||
#else
|
||||
/* if power management is not configured it can't be suspended */
|
||||
|
||||
@@ -235,6 +235,8 @@ struct bitmap {
|
||||
|
||||
unsigned long flags;
|
||||
|
||||
int allclean;
|
||||
|
||||
unsigned long max_write_behind; /* write-behind mode */
|
||||
atomic_t behind_writes;
|
||||
|
||||
|
||||
@@ -83,6 +83,7 @@ struct mdk_rdev_s
|
||||
#define BarriersNotsupp 5 /* BIO_RW_BARRIER is not supported */
|
||||
#define AllReserved 6 /* If whole device is reserved for
|
||||
* one array */
|
||||
#define AutoDetected 7 /* added by auto-detect */
|
||||
|
||||
int desc_nr; /* descriptor index in the superblock */
|
||||
int raid_disk; /* role of device in array */
|
||||
|
||||
@@ -160,5 +160,8 @@ extern void rcu_restart_cpu(int cpu);
|
||||
extern long rcu_batches_completed(void);
|
||||
extern long rcu_batches_completed_bh(void);
|
||||
|
||||
#define rcu_enter_nohz() do { } while (0)
|
||||
#define rcu_exit_nohz() do { } while (0)
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __LINUX_RCUCLASSIC_H */
|
||||
|
||||
@@ -82,5 +82,27 @@ extern struct rcupreempt_trace *rcupreempt_trace_cpu(int cpu);
|
||||
|
||||
struct softirq_action;
|
||||
|
||||
#ifdef CONFIG_NO_HZ
|
||||
DECLARE_PER_CPU(long, dynticks_progress_counter);
|
||||
|
||||
static inline void rcu_enter_nohz(void)
|
||||
{
|
||||
__get_cpu_var(dynticks_progress_counter)++;
|
||||
WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1);
|
||||
mb();
|
||||
}
|
||||
|
||||
static inline void rcu_exit_nohz(void)
|
||||
{
|
||||
mb();
|
||||
__get_cpu_var(dynticks_progress_counter)++;
|
||||
WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1));
|
||||
}
|
||||
|
||||
#else /* CONFIG_NO_HZ */
|
||||
#define rcu_enter_nohz() do { } while (0)
|
||||
#define rcu_exit_nohz() do { } while (0)
|
||||
#endif /* CONFIG_NO_HZ */
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* __LINUX_RCUPREEMPT_H */
|
||||
|
||||
@@ -242,6 +242,7 @@ struct task_struct;
|
||||
|
||||
extern void sched_init(void);
|
||||
extern void sched_init_smp(void);
|
||||
extern asmlinkage void schedule_tail(struct task_struct *prev);
|
||||
extern void init_idle(struct task_struct *idle, int cpu);
|
||||
extern void init_idle_bootup_task(struct task_struct *idle);
|
||||
|
||||
@@ -898,6 +899,10 @@ struct sched_class {
|
||||
int running);
|
||||
void (*prio_changed) (struct rq *this_rq, struct task_struct *task,
|
||||
int oldprio, int running);
|
||||
|
||||
#ifdef CONFIG_FAIR_GROUP_SCHED
|
||||
void (*moved_group) (struct task_struct *p);
|
||||
#endif
|
||||
};
|
||||
|
||||
struct load_weight {
|
||||
@@ -1189,7 +1194,7 @@ struct task_struct {
|
||||
int softirq_context;
|
||||
#endif
|
||||
#ifdef CONFIG_LOCKDEP
|
||||
# define MAX_LOCK_DEPTH 30UL
|
||||
# define MAX_LOCK_DEPTH 48UL
|
||||
u64 curr_chain_key;
|
||||
int lockdep_depth;
|
||||
struct held_lock held_locks[MAX_LOCK_DEPTH];
|
||||
@@ -1541,10 +1546,6 @@ extern unsigned int sysctl_sched_child_runs_first;
|
||||
extern unsigned int sysctl_sched_features;
|
||||
extern unsigned int sysctl_sched_migration_cost;
|
||||
extern unsigned int sysctl_sched_nr_migrate;
|
||||
#if defined(CONFIG_FAIR_GROUP_SCHED) && defined(CONFIG_SMP)
|
||||
extern unsigned int sysctl_sched_min_bal_int_shares;
|
||||
extern unsigned int sysctl_sched_max_bal_int_shares;
|
||||
#endif
|
||||
|
||||
int sched_nr_latency_handler(struct ctl_table *table, int write,
|
||||
struct file *file, void __user *buffer, size_t *length,
|
||||
|
||||
+74
-25
@@ -34,12 +34,6 @@
|
||||
#include <linux/xfrm.h>
|
||||
#include <net/flow.h>
|
||||
|
||||
/* only a char in selinux superblock security struct flags */
|
||||
#define FSCONTEXT_MNT 0x01
|
||||
#define CONTEXT_MNT 0x02
|
||||
#define ROOTCONTEXT_MNT 0x04
|
||||
#define DEFCONTEXT_MNT 0x08
|
||||
|
||||
extern unsigned securebits;
|
||||
|
||||
struct ctl_table;
|
||||
@@ -114,6 +108,32 @@ struct request_sock;
|
||||
|
||||
#ifdef CONFIG_SECURITY
|
||||
|
||||
struct security_mnt_opts {
|
||||
char **mnt_opts;
|
||||
int *mnt_opts_flags;
|
||||
int num_mnt_opts;
|
||||
};
|
||||
|
||||
static inline void security_init_mnt_opts(struct security_mnt_opts *opts)
|
||||
{
|
||||
opts->mnt_opts = NULL;
|
||||
opts->mnt_opts_flags = NULL;
|
||||
opts->num_mnt_opts = 0;
|
||||
}
|
||||
|
||||
static inline void security_free_mnt_opts(struct security_mnt_opts *opts)
|
||||
{
|
||||
int i;
|
||||
if (opts->mnt_opts)
|
||||
for(i = 0; i < opts->num_mnt_opts; i++)
|
||||
kfree(opts->mnt_opts[i]);
|
||||
kfree(opts->mnt_opts);
|
||||
opts->mnt_opts = NULL;
|
||||
kfree(opts->mnt_opts_flags);
|
||||
opts->mnt_opts_flags = NULL;
|
||||
opts->num_mnt_opts = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* struct security_operations - main security structure
|
||||
*
|
||||
@@ -262,19 +282,19 @@ struct request_sock;
|
||||
* @sb_get_mnt_opts:
|
||||
* Get the security relevant mount options used for a superblock
|
||||
* @sb the superblock to get security mount options from
|
||||
* @mount_options array for pointers to mount options
|
||||
* @mount_flags array of ints specifying what each mount options is
|
||||
* @num_opts number of options in the arrays
|
||||
* @opts binary data structure containing all lsm mount data
|
||||
* @sb_set_mnt_opts:
|
||||
* Set the security relevant mount options used for a superblock
|
||||
* @sb the superblock to set security mount options for
|
||||
* @mount_options array for pointers to mount options
|
||||
* @mount_flags array of ints specifying what each mount options is
|
||||
* @num_opts number of options in the arrays
|
||||
* @opts binary data structure containing all lsm mount data
|
||||
* @sb_clone_mnt_opts:
|
||||
* Copy all security options from a given superblock to another
|
||||
* @oldsb old superblock which contain information to clone
|
||||
* @newsb new superblock which needs filled in
|
||||
* @sb_parse_opts_str:
|
||||
* Parse a string of security data filling in the opts structure
|
||||
* @options string containing all mount options known by the LSM
|
||||
* @opts binary data structure usable by the LSM
|
||||
*
|
||||
* Security hooks for inode operations.
|
||||
*
|
||||
@@ -1238,8 +1258,7 @@ struct security_operations {
|
||||
|
||||
int (*sb_alloc_security) (struct super_block * sb);
|
||||
void (*sb_free_security) (struct super_block * sb);
|
||||
int (*sb_copy_data)(struct file_system_type *type,
|
||||
void *orig, void *copy);
|
||||
int (*sb_copy_data)(char *orig, char *copy);
|
||||
int (*sb_kern_mount) (struct super_block *sb, void *data);
|
||||
int (*sb_statfs) (struct dentry *dentry);
|
||||
int (*sb_mount) (char *dev_name, struct nameidata * nd,
|
||||
@@ -1257,12 +1276,12 @@ struct security_operations {
|
||||
void (*sb_post_pivotroot) (struct nameidata * old_nd,
|
||||
struct nameidata * new_nd);
|
||||
int (*sb_get_mnt_opts) (const struct super_block *sb,
|
||||
char ***mount_options, int **flags,
|
||||
int *num_opts);
|
||||
int (*sb_set_mnt_opts) (struct super_block *sb, char **mount_options,
|
||||
int *flags, int num_opts);
|
||||
struct security_mnt_opts *opts);
|
||||
int (*sb_set_mnt_opts) (struct super_block *sb,
|
||||
struct security_mnt_opts *opts);
|
||||
void (*sb_clone_mnt_opts) (const struct super_block *oldsb,
|
||||
struct super_block *newsb);
|
||||
int (*sb_parse_opts_str) (char *options, struct security_mnt_opts *opts);
|
||||
|
||||
int (*inode_alloc_security) (struct inode *inode);
|
||||
void (*inode_free_security) (struct inode *inode);
|
||||
@@ -1507,7 +1526,7 @@ int security_bprm_check(struct linux_binprm *bprm);
|
||||
int security_bprm_secureexec(struct linux_binprm *bprm);
|
||||
int security_sb_alloc(struct super_block *sb);
|
||||
void security_sb_free(struct super_block *sb);
|
||||
int security_sb_copy_data(struct file_system_type *type, void *orig, void *copy);
|
||||
int security_sb_copy_data(char *orig, char *copy);
|
||||
int security_sb_kern_mount(struct super_block *sb, void *data);
|
||||
int security_sb_statfs(struct dentry *dentry);
|
||||
int security_sb_mount(char *dev_name, struct nameidata *nd,
|
||||
@@ -1520,12 +1539,12 @@ void security_sb_post_remount(struct vfsmount *mnt, unsigned long flags, void *d
|
||||
void security_sb_post_addmount(struct vfsmount *mnt, struct nameidata *mountpoint_nd);
|
||||
int security_sb_pivotroot(struct nameidata *old_nd, struct nameidata *new_nd);
|
||||
void security_sb_post_pivotroot(struct nameidata *old_nd, struct nameidata *new_nd);
|
||||
int security_sb_get_mnt_opts(const struct super_block *sb, char ***mount_options,
|
||||
int **flags, int *num_opts);
|
||||
int security_sb_set_mnt_opts(struct super_block *sb, char **mount_options,
|
||||
int *flags, int num_opts);
|
||||
int security_sb_get_mnt_opts(const struct super_block *sb,
|
||||
struct security_mnt_opts *opts);
|
||||
int security_sb_set_mnt_opts(struct super_block *sb, struct security_mnt_opts *opts);
|
||||
void security_sb_clone_mnt_opts(const struct super_block *oldsb,
|
||||
struct super_block *newsb);
|
||||
int security_sb_parse_opts_str(char *options, struct security_mnt_opts *opts);
|
||||
|
||||
int security_inode_alloc(struct inode *inode);
|
||||
void security_inode_free(struct inode *inode);
|
||||
@@ -1635,6 +1654,16 @@ int security_secctx_to_secid(char *secdata, u32 seclen, u32 *secid);
|
||||
void security_release_secctx(char *secdata, u32 seclen);
|
||||
|
||||
#else /* CONFIG_SECURITY */
|
||||
struct security_mnt_opts {
|
||||
};
|
||||
|
||||
static inline void security_init_mnt_opts(struct security_mnt_opts *opts)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void security_free_mnt_opts(struct security_mnt_opts *opts)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* This is the default capabilities functionality. Most of these functions
|
||||
@@ -1762,8 +1791,7 @@ static inline int security_sb_alloc (struct super_block *sb)
|
||||
static inline void security_sb_free (struct super_block *sb)
|
||||
{ }
|
||||
|
||||
static inline int security_sb_copy_data (struct file_system_type *type,
|
||||
void *orig, void *copy)
|
||||
static inline int security_sb_copy_data (char *orig, char *copy)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -1819,6 +1847,27 @@ static inline int security_sb_pivotroot (struct nameidata *old_nd,
|
||||
static inline void security_sb_post_pivotroot (struct nameidata *old_nd,
|
||||
struct nameidata *new_nd)
|
||||
{ }
|
||||
static inline int security_sb_get_mnt_opts(const struct super_block *sb,
|
||||
struct security_mnt_opts *opts)
|
||||
{
|
||||
security_init_mnt_opts(opts);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int security_sb_set_mnt_opts(struct super_block *sb,
|
||||
struct security_mnt_opts *opts)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void security_sb_clone_mnt_opts(const struct super_block *oldsb,
|
||||
struct super_block *newsb)
|
||||
{ }
|
||||
|
||||
static inline int security_sb_parse_opts_str(char *options, struct security_mnt_opts *opts)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int security_inode_alloc (struct inode *inode)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
#ifndef __LINUX_SERIAL_SCI_H
|
||||
#define __LINUX_SERIAL_SCI_H
|
||||
|
||||
#include <linux/serial_core.h>
|
||||
|
||||
/*
|
||||
* Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts)
|
||||
*/
|
||||
|
||||
/* Offsets into the sci_port->irqs array */
|
||||
enum {
|
||||
SCIx_ERI_IRQ,
|
||||
SCIx_RXI_IRQ,
|
||||
SCIx_TXI_IRQ,
|
||||
SCIx_BRI_IRQ,
|
||||
SCIx_NR_IRQS,
|
||||
};
|
||||
|
||||
/*
|
||||
* Platform device specific platform_data struct
|
||||
*/
|
||||
struct plat_sci_port {
|
||||
void __iomem *membase; /* io cookie */
|
||||
unsigned long mapbase; /* resource base */
|
||||
unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */
|
||||
unsigned int type; /* SCI / SCIF / IRDA */
|
||||
upf_t flags; /* UPF_* flags */
|
||||
};
|
||||
|
||||
int early_sci_setup(struct uart_port *port);
|
||||
|
||||
#endif /* __LINUX_SERIAL_SCI_H */
|
||||
@@ -41,7 +41,7 @@ static inline void *kmalloc(size_t size, gfp_t flags)
|
||||
goto found; \
|
||||
else \
|
||||
i++;
|
||||
#include "kmalloc_sizes.h"
|
||||
#include <linux/kmalloc_sizes.h>
|
||||
#undef CACHE
|
||||
{
|
||||
extern void __you_cannot_kmalloc_that_much(void);
|
||||
@@ -75,7 +75,7 @@ static inline void *kmalloc_node(size_t size, gfp_t flags, int node)
|
||||
goto found; \
|
||||
else \
|
||||
i++;
|
||||
#include "kmalloc_sizes.h"
|
||||
#include <linux/kmalloc_sizes.h>
|
||||
#undef CACHE
|
||||
{
|
||||
extern void __you_cannot_kmalloc_that_much(void);
|
||||
|
||||
@@ -61,7 +61,7 @@ struct kmem_cache {
|
||||
int size; /* The size of an object including meta data */
|
||||
int objsize; /* The size of an object without meta data */
|
||||
int offset; /* Free pointer offset. */
|
||||
int order;
|
||||
int order; /* Current preferred allocation order */
|
||||
|
||||
/*
|
||||
* Avoid an extra cache line for UP, SMP and for the node local to
|
||||
@@ -138,11 +138,11 @@ static __always_inline int kmalloc_index(size_t size)
|
||||
if (size <= 512) return 9;
|
||||
if (size <= 1024) return 10;
|
||||
if (size <= 2 * 1024) return 11;
|
||||
if (size <= 4 * 1024) return 12;
|
||||
/*
|
||||
* The following is only needed to support architectures with a larger page
|
||||
* size than 4k.
|
||||
*/
|
||||
if (size <= 4 * 1024) return 12;
|
||||
if (size <= 8 * 1024) return 13;
|
||||
if (size <= 16 * 1024) return 14;
|
||||
if (size <= 32 * 1024) return 15;
|
||||
|
||||
@@ -129,11 +129,14 @@
|
||||
|
||||
#define SM501_DEVICEID_SM501 (0x05010000)
|
||||
#define SM501_DEVICEID_IDMASK (0xffff0000)
|
||||
#define SM501_DEVICEID_REVMASK (0x000000ff)
|
||||
|
||||
#define SM501_PLLCLOCK_COUNT (0x000064)
|
||||
#define SM501_MISC_TIMING (0x000068)
|
||||
#define SM501_CURRENT_SDRAM_CLOCK (0x00006C)
|
||||
|
||||
#define SM501_PROGRAMMABLE_PLL_CONTROL (0x000074)
|
||||
|
||||
/* GPIO base */
|
||||
#define SM501_GPIO (0x010000)
|
||||
#define SM501_GPIO_DATA_LOW (0x00)
|
||||
|
||||
@@ -24,7 +24,8 @@ extern int sm501_unit_power(struct device *dev,
|
||||
extern unsigned long sm501_set_clock(struct device *dev,
|
||||
int clksrc, unsigned long freq);
|
||||
|
||||
extern unsigned long sm501_find_clock(int clksrc, unsigned long req_freq);
|
||||
extern unsigned long sm501_find_clock(struct device *dev,
|
||||
int clksrc, unsigned long req_freq);
|
||||
|
||||
/* sm501_misc_control
|
||||
*
|
||||
|
||||
@@ -70,9 +70,9 @@ enum {
|
||||
|
||||
#define TIFM_FIFO_ENABLE 0x00000001
|
||||
#define TIFM_FIFO_READY 0x00000001
|
||||
#define TIFM_FIFO_MORE 0x00000008
|
||||
#define TIFM_FIFO_INT_SETALL 0x0000ffff
|
||||
#define TIFM_FIFO_INTMASK 0x00000005
|
||||
#define TIFM_FIFO_SIZE 0x00000200
|
||||
|
||||
#define TIFM_DMA_RESET 0x00000002
|
||||
#define TIFM_DMA_TX 0x00008000
|
||||
|
||||
@@ -174,6 +174,10 @@ static inline void timespec_add_ns(struct timespec *a, u64 ns)
|
||||
{
|
||||
ns += a->tv_nsec;
|
||||
while(unlikely(ns >= NSEC_PER_SEC)) {
|
||||
/* The following asm() prevents the compiler from
|
||||
* optimising this loop into a modulo operation. */
|
||||
asm("" : "+r"(ns));
|
||||
|
||||
ns -= NSEC_PER_SEC;
|
||||
a->tv_sec++;
|
||||
}
|
||||
|
||||
@@ -232,14 +232,7 @@ static inline int ntp_synced(void)
|
||||
#else
|
||||
#define NTP_INTERVAL_FREQ (HZ)
|
||||
#endif
|
||||
|
||||
#define CLOCK_TICK_OVERFLOW (LATCH * HZ - CLOCK_TICK_RATE)
|
||||
#define CLOCK_TICK_ADJUST (((s64)CLOCK_TICK_OVERFLOW * NSEC_PER_SEC) / \
|
||||
(s64)CLOCK_TICK_RATE)
|
||||
|
||||
/* Because using NSEC_PER_SEC would be too easy */
|
||||
#define NTP_INTERVAL_LENGTH ((((s64)TICK_USEC * NSEC_PER_USEC * USER_HZ) + \
|
||||
CLOCK_TICK_ADJUST) / NTP_INTERVAL_FREQ)
|
||||
#define NTP_INTERVAL_LENGTH (NSEC_PER_SEC/NTP_INTERVAL_FREQ)
|
||||
|
||||
/* Returns how long ticks are at present, in ns / 2^(SHIFT_SCALE-10). */
|
||||
extern u64 current_tick_length(void);
|
||||
|
||||
+4
-8
@@ -94,10 +94,9 @@ enum usb_interface_condition {
|
||||
* @altsetting: array of interface structures, one for each alternate
|
||||
* setting that may be selected. Each one includes a set of
|
||||
* endpoint configurations. They will be in no particular order.
|
||||
* @num_altsetting: number of altsettings defined.
|
||||
* @cur_altsetting: the current altsetting.
|
||||
* @num_altsetting: number of altsettings defined.
|
||||
* @intf_assoc: interface association descriptor
|
||||
* @driver: the USB driver that is bound to this interface.
|
||||
* @minor: the minor number assigned to this interface, if this
|
||||
* interface is bound to a driver that uses the USB major number.
|
||||
* If this interface does not use the USB major, this field should
|
||||
@@ -781,8 +780,7 @@ static inline int usb_endpoint_is_isoc_out(
|
||||
.idVendor = (vend), \
|
||||
.idProduct = (prod)
|
||||
/**
|
||||
* USB_DEVICE_VER - macro used to describe a specific usb device with a
|
||||
* version range
|
||||
* USB_DEVICE_VER - describe a specific usb device with a version range
|
||||
* @vend: the 16 bit USB Vendor ID
|
||||
* @prod: the 16 bit USB Product ID
|
||||
* @lo: the bcdDevice_lo value
|
||||
@@ -799,8 +797,7 @@ static inline int usb_endpoint_is_isoc_out(
|
||||
.bcdDevice_hi = (hi)
|
||||
|
||||
/**
|
||||
* USB_DEVICE_INTERFACE_PROTOCOL - macro used to describe a usb
|
||||
* device with a specific interface protocol
|
||||
* USB_DEVICE_INTERFACE_PROTOCOL - describe a usb device with a specific interface protocol
|
||||
* @vend: the 16 bit USB Vendor ID
|
||||
* @prod: the 16 bit USB Product ID
|
||||
* @pr: bInterfaceProtocol value
|
||||
@@ -846,8 +843,7 @@ static inline int usb_endpoint_is_isoc_out(
|
||||
.bInterfaceProtocol = (pr)
|
||||
|
||||
/**
|
||||
* USB_DEVICE_AND_INTERFACE_INFO - macro used to describe a specific usb device
|
||||
* with a class of usb interfaces
|
||||
* USB_DEVICE_AND_INTERFACE_INFO - describe a specific usb device with a class of usb interfaces
|
||||
* @vend: the 16 bit USB Vendor ID
|
||||
* @prod: the 16 bit USB Product ID
|
||||
* @cl: bInterfaceClass value
|
||||
|
||||
@@ -3,5 +3,5 @@ header-y += cdc.h
|
||||
header-y += ch9.h
|
||||
header-y += gadgetfs.h
|
||||
header-y += midi.h
|
||||
unifdef-y += g_printer.h
|
||||
header-y += g_printer.h
|
||||
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
#ifndef __LINUX_USB_GADGET_H
|
||||
#define __LINUX_USB_GADGET_H
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
struct usb_ep;
|
||||
|
||||
/**
|
||||
@@ -848,6 +846,4 @@ extern struct usb_ep *usb_ep_autoconfig(struct usb_gadget *,
|
||||
|
||||
extern void usb_ep_autoconfig_reset(struct usb_gadget *) __devinit;
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* __LINUX_USB_GADGET_H */
|
||||
|
||||
@@ -43,8 +43,9 @@ struct virtqueue
|
||||
* vq: the struct virtqueue we're talking about.
|
||||
* @enable_cb: restart callbacks after disable_cb.
|
||||
* vq: the struct virtqueue we're talking about.
|
||||
* This returns "false" (and doesn't re-enable) if there are pending
|
||||
* buffers in the queue, to avoid a race.
|
||||
* This re-enables callbacks; it returns "false" if there are pending
|
||||
* buffers in the queue, to detect a possible race between the driver
|
||||
* checking for more work, and enabling callbacks.
|
||||
*
|
||||
* Locking rules are straightforward: the driver is responsible for
|
||||
* locking. No two operations may be invoked simultaneously.
|
||||
|
||||
@@ -246,8 +246,7 @@ static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
|
||||
static inline void __dec_zone_page_state(struct page *page,
|
||||
enum zone_stat_item item)
|
||||
{
|
||||
atomic_long_dec(&page_zone(page)->vm_stat[item]);
|
||||
atomic_long_dec(&vm_stat[item]);
|
||||
__dec_zone_state(page_zone(page), item);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user