Merge branch 'akpm-incoming-2'
* akpm-incoming-2: (139 commits) epoll: make epoll_wait() use the hrtimer range feature select: rename estimate_accuracy() to select_estimate_accuracy() Remove duplicate includes from many files ramoops: use the platform data structure instead of module params kernel/resource.c: handle reinsertion of an already-inserted resource kfifo: fix kfifo_alloc() to return a signed int value w1: don't allow arbitrary users to remove w1 devices alpha: remove dma64_addr_t usage mips: remove dma64_addr_t usage sparc: remove dma64_addr_t usage fuse: use release_pages() taskstats: use real microsecond granularity for CPU times taskstats: split fill_pid function taskstats: separate taskstats commands delayacct: align to 8 byte boundary on 64-bit systems delay-accounting: reimplement -c for getdelays.c to report information on a target command namespaces Kconfig: move namespace menu location after the cgroup namespaces Kconfig: remove the cgroup device whitelist experimental tag namespaces Kconfig: remove pointless cgroup dependency namespaces Kconfig: make namespace a submenu ...
This commit is contained in:
20
include/linux/basic_mmio_gpio.h
Normal file
20
include/linux/basic_mmio_gpio.h
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Basic memory-mapped GPIO controllers.
|
||||
*
|
||||
* Copyright 2008 MontaVista Software, Inc.
|
||||
* Copyright 2008,2010 Anton Vorontsov <cbouatmailru@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License as published by the
|
||||
* Free Software Foundation; either version 2 of the License, or (at your
|
||||
* option) any later version.
|
||||
*/
|
||||
|
||||
#ifndef __BASIC_MMIO_GPIO_H
|
||||
#define __BASIC_MMIO_GPIO_H
|
||||
|
||||
struct bgpio_pdata {
|
||||
int base;
|
||||
};
|
||||
|
||||
#endif /* __BASIC_MMIO_GPIO_H */
|
@@ -154,6 +154,10 @@ enum {
|
||||
* A thread in rmdir() is wating for this cgroup.
|
||||
*/
|
||||
CGRP_WAIT_ON_RMDIR,
|
||||
/*
|
||||
* Clone cgroup values when creating a new child cgroup
|
||||
*/
|
||||
CGRP_CLONE_CHILDREN,
|
||||
};
|
||||
|
||||
/* which pidlist file are we talking about? */
|
||||
|
@@ -931,6 +931,8 @@ static inline struct apertures_struct *alloc_apertures(unsigned int max_num) {
|
||||
#define fb_writel sbus_writel
|
||||
#define fb_writeq sbus_writeq
|
||||
#define fb_memset sbus_memset_io
|
||||
#define fb_memcpy_fromfb sbus_memcpy_fromio
|
||||
#define fb_memcpy_tofb sbus_memcpy_toio
|
||||
|
||||
#elif defined(__i386__) || defined(__alpha__) || defined(__x86_64__) || defined(__hppa__) || defined(__sh__) || defined(__powerpc__) || defined(__avr32__) || defined(__bfin__)
|
||||
|
||||
@@ -943,6 +945,8 @@ static inline struct apertures_struct *alloc_apertures(unsigned int max_num) {
|
||||
#define fb_writel __raw_writel
|
||||
#define fb_writeq __raw_writeq
|
||||
#define fb_memset memset_io
|
||||
#define fb_memcpy_fromfb memcpy_fromio
|
||||
#define fb_memcpy_tofb memcpy_toio
|
||||
|
||||
#else
|
||||
|
||||
@@ -955,6 +959,8 @@ static inline struct apertures_struct *alloc_apertures(unsigned int max_num) {
|
||||
#define fb_writel(b,addr) (*(volatile u32 *) (addr) = (b))
|
||||
#define fb_writeq(b,addr) (*(volatile u64 *) (addr) = (b))
|
||||
#define fb_memset memset
|
||||
#define fb_memcpy_fromfb memcpy
|
||||
#define fb_memcpy_tofb memcpy
|
||||
|
||||
#endif
|
||||
|
||||
|
@@ -37,27 +37,6 @@ extern unsigned long totalhigh_pages;
|
||||
|
||||
void kmap_flush_unused(void);
|
||||
|
||||
DECLARE_PER_CPU(int, __kmap_atomic_idx);
|
||||
|
||||
static inline int kmap_atomic_idx_push(void)
|
||||
{
|
||||
int idx = __get_cpu_var(__kmap_atomic_idx)++;
|
||||
#ifdef CONFIG_DEBUG_HIGHMEM
|
||||
WARN_ON_ONCE(in_irq() && !irqs_disabled());
|
||||
BUG_ON(idx > KM_TYPE_NR);
|
||||
#endif
|
||||
return idx;
|
||||
}
|
||||
|
||||
static inline int kmap_atomic_idx_pop(void)
|
||||
{
|
||||
int idx = --__get_cpu_var(__kmap_atomic_idx);
|
||||
#ifdef CONFIG_DEBUG_HIGHMEM
|
||||
BUG_ON(idx < 0);
|
||||
#endif
|
||||
return idx;
|
||||
}
|
||||
|
||||
#else /* CONFIG_HIGHMEM */
|
||||
|
||||
static inline unsigned int nr_free_highpages(void) { return 0; }
|
||||
@@ -95,6 +74,36 @@ static inline void __kunmap_atomic(void *addr)
|
||||
|
||||
#endif /* CONFIG_HIGHMEM */
|
||||
|
||||
#if defined(CONFIG_HIGHMEM) || defined(CONFIG_X86_32)
|
||||
|
||||
DECLARE_PER_CPU(int, __kmap_atomic_idx);
|
||||
|
||||
static inline int kmap_atomic_idx_push(void)
|
||||
{
|
||||
int idx = __get_cpu_var(__kmap_atomic_idx)++;
|
||||
#ifdef CONFIG_DEBUG_HIGHMEM
|
||||
WARN_ON_ONCE(in_irq() && !irqs_disabled());
|
||||
BUG_ON(idx > KM_TYPE_NR);
|
||||
#endif
|
||||
return idx;
|
||||
}
|
||||
|
||||
static inline int kmap_atomic_idx(void)
|
||||
{
|
||||
return __get_cpu_var(__kmap_atomic_idx) - 1;
|
||||
}
|
||||
|
||||
static inline int kmap_atomic_idx_pop(void)
|
||||
{
|
||||
int idx = --__get_cpu_var(__kmap_atomic_idx);
|
||||
#ifdef CONFIG_DEBUG_HIGHMEM
|
||||
BUG_ON(idx < 0);
|
||||
#endif
|
||||
return idx;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Make both: kmap_atomic(page, idx) and kmap_atomic(page) work.
|
||||
*/
|
||||
|
@@ -74,6 +74,20 @@
|
||||
|
||||
#define ADP5588_DEVICE_ID_MASK 0xF
|
||||
|
||||
/* Configuration Register1 */
|
||||
#define ADP5588_AUTO_INC (1 << 7)
|
||||
#define ADP5588_GPIEM_CFG (1 << 6)
|
||||
#define ADP5588_INT_CFG (1 << 4)
|
||||
#define ADP5588_GPI_IEN (1 << 1)
|
||||
|
||||
/* Interrupt Status Register */
|
||||
#define ADP5588_GPI_INT (1 << 1)
|
||||
#define ADP5588_KE_INT (1 << 0)
|
||||
|
||||
#define ADP5588_MAXGPIO 18
|
||||
#define ADP5588_BANK(offs) ((offs) >> 3)
|
||||
#define ADP5588_BIT(offs) (1u << ((offs) & 0x7))
|
||||
|
||||
/* Put one of these structures in i2c_board_info platform_data */
|
||||
|
||||
#define ADP5588_KEYMAPSIZE 80
|
||||
@@ -126,9 +140,12 @@ struct adp5588_kpad_platform_data {
|
||||
const struct adp5588_gpio_platform_data *gpio_data;
|
||||
};
|
||||
|
||||
struct i2c_client; /* forward declaration */
|
||||
|
||||
struct adp5588_gpio_platform_data {
|
||||
unsigned gpio_start; /* GPIO Chip base # */
|
||||
unsigned pullup_dis_mask; /* Pull-Up Disable Mask */
|
||||
int gpio_start; /* GPIO Chip base # */
|
||||
unsigned irq_base; /* interrupt base # */
|
||||
unsigned pullup_dis_mask; /* Pull-Up Disable Mask */
|
||||
int (*setup)(struct i2c_client *client,
|
||||
int gpio, unsigned ngpio,
|
||||
void *context);
|
||||
|
@@ -29,6 +29,8 @@ extern struct fs_struct init_fs;
|
||||
.running = 0, \
|
||||
.lock = __SPIN_LOCK_UNLOCKED(sig.cputimer.lock), \
|
||||
}, \
|
||||
.cred_guard_mutex = \
|
||||
__MUTEX_INITIALIZER(sig.cred_guard_mutex), \
|
||||
}
|
||||
|
||||
extern struct nsproxy init_nsproxy;
|
||||
@@ -145,8 +147,6 @@ extern struct cred init_cred;
|
||||
.group_leader = &tsk, \
|
||||
RCU_INIT_POINTER(.real_cred, &init_cred), \
|
||||
RCU_INIT_POINTER(.cred, &init_cred), \
|
||||
.cred_guard_mutex = \
|
||||
__MUTEX_INITIALIZER(tsk.cred_guard_mutex), \
|
||||
.comm = "swapper", \
|
||||
.thread = INIT_THREAD, \
|
||||
.fs = &init_fs, \
|
||||
|
@@ -33,6 +33,7 @@ struct kernel_stat {
|
||||
#ifndef CONFIG_GENERIC_HARDIRQS
|
||||
unsigned int irqs[NR_IRQS];
|
||||
#endif
|
||||
unsigned long irqs_sum;
|
||||
unsigned int softirqs[NR_SOFTIRQS];
|
||||
};
|
||||
|
||||
@@ -54,6 +55,7 @@ static inline void kstat_incr_irqs_this_cpu(unsigned int irq,
|
||||
struct irq_desc *desc)
|
||||
{
|
||||
kstat_this_cpu.irqs[irq]++;
|
||||
kstat_this_cpu.irqs_sum++;
|
||||
}
|
||||
|
||||
static inline unsigned int kstat_irqs_cpu(unsigned int irq, int cpu)
|
||||
@@ -65,8 +67,9 @@ static inline unsigned int kstat_irqs_cpu(unsigned int irq, int cpu)
|
||||
extern unsigned int kstat_irqs_cpu(unsigned int irq, int cpu);
|
||||
#define kstat_irqs_this_cpu(DESC) \
|
||||
((DESC)->kstat_irqs[smp_processor_id()])
|
||||
#define kstat_incr_irqs_this_cpu(irqno, DESC) \
|
||||
((DESC)->kstat_irqs[smp_processor_id()]++)
|
||||
#define kstat_incr_irqs_this_cpu(irqno, DESC) do {\
|
||||
((DESC)->kstat_irqs[smp_processor_id()]++);\
|
||||
kstat_this_cpu.irqs_sum++; } while (0)
|
||||
|
||||
#endif
|
||||
|
||||
@@ -83,6 +86,7 @@ static inline unsigned int kstat_softirqs_cpu(unsigned int irq, int cpu)
|
||||
/*
|
||||
* Number of interrupts per specific IRQ source, since bootup
|
||||
*/
|
||||
#ifndef CONFIG_GENERIC_HARDIRQS
|
||||
static inline unsigned int kstat_irqs(unsigned int irq)
|
||||
{
|
||||
unsigned int sum = 0;
|
||||
@@ -93,7 +97,17 @@ static inline unsigned int kstat_irqs(unsigned int irq)
|
||||
|
||||
return sum;
|
||||
}
|
||||
#else
|
||||
extern unsigned int kstat_irqs(unsigned int irq);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Number of interrupts per cpu, since bootup
|
||||
*/
|
||||
static inline unsigned int kstat_cpu_irqs_sum(unsigned int cpu)
|
||||
{
|
||||
return kstat_cpu(cpu).irqs_sum;
|
||||
}
|
||||
|
||||
/*
|
||||
* Lock/unlock the current runqueue - to extract task statistics:
|
||||
|
@@ -171,8 +171,17 @@ struct kfifo_rec_ptr_2 __STRUCT_KFIFO_PTR(unsigned char, 2, void);
|
||||
}
|
||||
|
||||
|
||||
/* __kfifo_must_check_helper() is temporarily disabled because it was faulty */
|
||||
#define __kfifo_must_check_helper(x) (x)
|
||||
static inline unsigned int __must_check
|
||||
__kfifo_uint_must_check_helper(unsigned int val)
|
||||
{
|
||||
return val;
|
||||
}
|
||||
|
||||
static inline int __must_check
|
||||
__kfifo_int_must_check_helper(int val)
|
||||
{
|
||||
return val;
|
||||
}
|
||||
|
||||
/**
|
||||
* kfifo_initialized - Check if the fifo is initialized
|
||||
@@ -264,7 +273,7 @@ struct kfifo_rec_ptr_2 __STRUCT_KFIFO_PTR(unsigned char, 2, void);
|
||||
* @fifo: address of the fifo to be used
|
||||
*/
|
||||
#define kfifo_avail(fifo) \
|
||||
__kfifo_must_check_helper( \
|
||||
__kfifo_uint_must_check_helper( \
|
||||
({ \
|
||||
typeof((fifo) + 1) __tmpq = (fifo); \
|
||||
const size_t __recsize = sizeof(*__tmpq->rectype); \
|
||||
@@ -297,7 +306,7 @@ __kfifo_must_check_helper( \
|
||||
* This function returns the size of the next fifo record in number of bytes.
|
||||
*/
|
||||
#define kfifo_peek_len(fifo) \
|
||||
__kfifo_must_check_helper( \
|
||||
__kfifo_uint_must_check_helper( \
|
||||
({ \
|
||||
typeof((fifo) + 1) __tmp = (fifo); \
|
||||
const size_t __recsize = sizeof(*__tmp->rectype); \
|
||||
@@ -320,7 +329,7 @@ __kfifo_must_check_helper( \
|
||||
* Return 0 if no error, otherwise an error code.
|
||||
*/
|
||||
#define kfifo_alloc(fifo, size, gfp_mask) \
|
||||
__kfifo_must_check_helper( \
|
||||
__kfifo_int_must_check_helper( \
|
||||
({ \
|
||||
typeof((fifo) + 1) __tmp = (fifo); \
|
||||
struct __kfifo *__kfifo = &__tmp->kfifo; \
|
||||
@@ -416,7 +425,7 @@ __kfifo_must_check_helper( \
|
||||
* writer, you don't need extra locking to use these macro.
|
||||
*/
|
||||
#define kfifo_get(fifo, val) \
|
||||
__kfifo_must_check_helper( \
|
||||
__kfifo_uint_must_check_helper( \
|
||||
({ \
|
||||
typeof((fifo) + 1) __tmp = (fifo); \
|
||||
typeof((val) + 1) __val = (val); \
|
||||
@@ -457,7 +466,7 @@ __kfifo_must_check_helper( \
|
||||
* writer, you don't need extra locking to use these macro.
|
||||
*/
|
||||
#define kfifo_peek(fifo, val) \
|
||||
__kfifo_must_check_helper( \
|
||||
__kfifo_uint_must_check_helper( \
|
||||
({ \
|
||||
typeof((fifo) + 1) __tmp = (fifo); \
|
||||
typeof((val) + 1) __val = (val); \
|
||||
@@ -549,7 +558,7 @@ __kfifo_must_check_helper( \
|
||||
* writer, you don't need extra locking to use these macro.
|
||||
*/
|
||||
#define kfifo_out(fifo, buf, n) \
|
||||
__kfifo_must_check_helper( \
|
||||
__kfifo_uint_must_check_helper( \
|
||||
({ \
|
||||
typeof((fifo) + 1) __tmp = (fifo); \
|
||||
typeof((buf) + 1) __buf = (buf); \
|
||||
@@ -577,7 +586,7 @@ __kfifo_must_check_helper( \
|
||||
* copied.
|
||||
*/
|
||||
#define kfifo_out_spinlocked(fifo, buf, n, lock) \
|
||||
__kfifo_must_check_helper( \
|
||||
__kfifo_uint_must_check_helper( \
|
||||
({ \
|
||||
unsigned long __flags; \
|
||||
unsigned int __ret; \
|
||||
@@ -606,7 +615,7 @@ __kfifo_must_check_helper( \
|
||||
* writer, you don't need extra locking to use these macro.
|
||||
*/
|
||||
#define kfifo_from_user(fifo, from, len, copied) \
|
||||
__kfifo_must_check_helper( \
|
||||
__kfifo_uint_must_check_helper( \
|
||||
({ \
|
||||
typeof((fifo) + 1) __tmp = (fifo); \
|
||||
const void __user *__from = (from); \
|
||||
@@ -634,7 +643,7 @@ __kfifo_must_check_helper( \
|
||||
* writer, you don't need extra locking to use these macro.
|
||||
*/
|
||||
#define kfifo_to_user(fifo, to, len, copied) \
|
||||
__kfifo_must_check_helper( \
|
||||
__kfifo_uint_must_check_helper( \
|
||||
({ \
|
||||
typeof((fifo) + 1) __tmp = (fifo); \
|
||||
void __user *__to = (to); \
|
||||
@@ -761,7 +770,7 @@ __kfifo_must_check_helper( \
|
||||
* writer, you don't need extra locking to use these macro.
|
||||
*/
|
||||
#define kfifo_out_peek(fifo, buf, n) \
|
||||
__kfifo_must_check_helper( \
|
||||
__kfifo_uint_must_check_helper( \
|
||||
({ \
|
||||
typeof((fifo) + 1) __tmp = (fifo); \
|
||||
typeof((buf) + 1) __buf = (buf); \
|
||||
|
@@ -73,6 +73,8 @@ extern void poll_initwait(struct poll_wqueues *pwq);
|
||||
extern void poll_freewait(struct poll_wqueues *pwq);
|
||||
extern int poll_schedule_timeout(struct poll_wqueues *pwq, int state,
|
||||
ktime_t *expires, unsigned long slack);
|
||||
extern long select_estimate_accuracy(struct timespec *tv);
|
||||
|
||||
|
||||
static inline int poll_schedule(struct poll_wqueues *pwq, int state)
|
||||
{
|
||||
|
@@ -100,7 +100,8 @@
|
||||
#include <linux/sched.h> /* For struct task_struct. */
|
||||
|
||||
|
||||
extern long arch_ptrace(struct task_struct *child, long request, long addr, long data);
|
||||
extern long arch_ptrace(struct task_struct *child, long request,
|
||||
unsigned long addr, unsigned long data);
|
||||
extern int ptrace_traceme(void);
|
||||
extern int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst, int len);
|
||||
extern int ptrace_writedata(struct task_struct *tsk, char __user *src, unsigned long dst, int len);
|
||||
@@ -108,7 +109,8 @@ extern int ptrace_attach(struct task_struct *tsk);
|
||||
extern int ptrace_detach(struct task_struct *, unsigned int);
|
||||
extern void ptrace_disable(struct task_struct *);
|
||||
extern int ptrace_check_attach(struct task_struct *task, int kill);
|
||||
extern int ptrace_request(struct task_struct *child, long request, long addr, long data);
|
||||
extern int ptrace_request(struct task_struct *child, long request,
|
||||
unsigned long addr, unsigned long data);
|
||||
extern void ptrace_notify(int exit_code);
|
||||
extern void __ptrace_link(struct task_struct *child,
|
||||
struct task_struct *new_parent);
|
||||
@@ -132,8 +134,10 @@ static inline void ptrace_unlink(struct task_struct *child)
|
||||
__ptrace_unlink(child);
|
||||
}
|
||||
|
||||
int generic_ptrace_peekdata(struct task_struct *tsk, long addr, long data);
|
||||
int generic_ptrace_pokedata(struct task_struct *tsk, long addr, long data);
|
||||
int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
|
||||
unsigned long data);
|
||||
int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr,
|
||||
unsigned long data);
|
||||
|
||||
/**
|
||||
* task_ptrace - return %PT_* flags that apply to a task
|
||||
|
15
include/linux/ramoops.h
Normal file
15
include/linux/ramoops.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#ifndef __RAMOOPS_H
|
||||
#define __RAMOOPS_H
|
||||
|
||||
/*
|
||||
* Ramoops platform data
|
||||
* @mem_size memory size for ramoops
|
||||
* @mem_address physical memory address to contain ramoops
|
||||
*/
|
||||
|
||||
struct ramoops_platform_data {
|
||||
unsigned long mem_size;
|
||||
unsigned long mem_address;
|
||||
};
|
||||
|
||||
#endif
|
@@ -67,6 +67,7 @@
|
||||
#define RIO_PW_MSG_SIZE 64
|
||||
|
||||
extern struct bus_type rio_bus_type;
|
||||
extern struct device rio_bus;
|
||||
extern struct list_head rio_devices; /* list of all devices */
|
||||
|
||||
struct rio_mport;
|
||||
@@ -98,6 +99,7 @@ union rio_pw_msg;
|
||||
* @riores: RIO resources this device owns
|
||||
* @pwcback: port-write callback function for this device
|
||||
* @destid: Network destination ID
|
||||
* @prev: Previous RIO device connected to the current one
|
||||
*/
|
||||
struct rio_dev {
|
||||
struct list_head global_list; /* node in list of all RIO devices */
|
||||
@@ -111,7 +113,7 @@ struct rio_dev {
|
||||
u16 asm_rev;
|
||||
u16 efptr;
|
||||
u32 pef;
|
||||
u32 swpinfo; /* Only used for switches */
|
||||
u32 swpinfo;
|
||||
u32 src_ops;
|
||||
u32 dst_ops;
|
||||
u32 comp_tag;
|
||||
@@ -124,6 +126,7 @@ struct rio_dev {
|
||||
struct resource riores[RIO_MAX_DEV_RESOURCES];
|
||||
int (*pwcback) (struct rio_dev *rdev, union rio_pw_msg *msg, int step);
|
||||
u16 destid;
|
||||
struct rio_dev *prev;
|
||||
};
|
||||
|
||||
#define rio_dev_g(n) list_entry(n, struct rio_dev, global_list)
|
||||
@@ -174,6 +177,7 @@ enum rio_phy_type {
|
||||
* @index: Port index, unique among all port interfaces of the same type
|
||||
* @sys_size: RapidIO common transport system size
|
||||
* @phy_type: RapidIO phy type
|
||||
* @phys_efptr: RIO port extended features pointer
|
||||
* @name: Port name string
|
||||
* @priv: Master port private data
|
||||
*/
|
||||
@@ -195,6 +199,7 @@ struct rio_mport {
|
||||
* 1 - Large size, 65536 devices.
|
||||
*/
|
||||
enum rio_phy_type phy_type; /* RapidIO phy type */
|
||||
u32 phys_efptr;
|
||||
unsigned char name[40];
|
||||
void *priv; /* Master port private data */
|
||||
};
|
||||
@@ -215,9 +220,14 @@ struct rio_net {
|
||||
unsigned char id; /* RIO network ID */
|
||||
};
|
||||
|
||||
/* Definitions used by switch sysfs initialization callback */
|
||||
#define RIO_SW_SYSFS_CREATE 1 /* Create switch attributes */
|
||||
#define RIO_SW_SYSFS_REMOVE 0 /* Remove switch attributes */
|
||||
|
||||
/**
|
||||
* struct rio_switch - RIO switch info
|
||||
* @node: Node in global list of switches
|
||||
* @rdev: Associated RIO device structure
|
||||
* @switchid: Switch ID that is unique across a network
|
||||
* @hopcount: Hopcount to this switch
|
||||
* @destid: Associated destid in the path
|
||||
@@ -230,9 +240,12 @@ struct rio_net {
|
||||
* @get_domain: Callback for switch-specific domain get function
|
||||
* @em_init: Callback for switch-specific error management initialization function
|
||||
* @em_handle: Callback for switch-specific error management handler function
|
||||
* @sw_sysfs: Callback that initializes switch-specific sysfs attributes
|
||||
* @nextdev: Array of per-port pointers to the next attached device
|
||||
*/
|
||||
struct rio_switch {
|
||||
struct list_head node;
|
||||
struct rio_dev *rdev;
|
||||
u16 switchid;
|
||||
u16 hopcount;
|
||||
u16 destid;
|
||||
@@ -250,6 +263,8 @@ struct rio_switch {
|
||||
u8 *sw_domain);
|
||||
int (*em_init) (struct rio_dev *dev);
|
||||
int (*em_handle) (struct rio_dev *dev, u8 swport);
|
||||
int (*sw_sysfs) (struct rio_dev *dev, int create);
|
||||
struct rio_dev *nextdev[0];
|
||||
};
|
||||
|
||||
/* Low-level architecture-dependent routines */
|
||||
|
@@ -34,5 +34,7 @@
|
||||
#define RIO_DID_IDTCPS16 0x035b
|
||||
#define RIO_DID_IDTCPS6Q 0x035f
|
||||
#define RIO_DID_IDTCPS10Q 0x035e
|
||||
#define RIO_DID_IDTCPS1848 0x0374
|
||||
#define RIO_DID_IDTCPS1616 0x0379
|
||||
|
||||
#endif /* LINUX_RIO_IDS_H */
|
||||
|
@@ -33,6 +33,7 @@
|
||||
#define RIO_PEF_MEMORY 0x40000000 /* [I] MMIO */
|
||||
#define RIO_PEF_PROCESSOR 0x20000000 /* [I] Processor */
|
||||
#define RIO_PEF_SWITCH 0x10000000 /* [I] Switch */
|
||||
#define RIO_PEF_MULTIPORT 0x08000000 /* [VI, 2.1] Multiport */
|
||||
#define RIO_PEF_INB_MBOX 0x00f00000 /* [II] Mailboxes */
|
||||
#define RIO_PEF_INB_MBOX0 0x00800000 /* [II] Mailbox 0 */
|
||||
#define RIO_PEF_INB_MBOX1 0x00400000 /* [II] Mailbox 1 */
|
||||
@@ -51,6 +52,7 @@
|
||||
#define RIO_SWP_INFO_PORT_TOTAL_MASK 0x0000ff00 /* [I] Total number of ports */
|
||||
#define RIO_SWP_INFO_PORT_NUM_MASK 0x000000ff /* [I] Maintenance transaction port number */
|
||||
#define RIO_GET_TOTAL_PORTS(x) ((x & RIO_SWP_INFO_PORT_TOTAL_MASK) >> 8)
|
||||
#define RIO_GET_PORT_NUM(x) (x & RIO_SWP_INFO_PORT_NUM_MASK)
|
||||
|
||||
#define RIO_SRC_OPS_CAR 0x18 /* [I] Source Operations CAR */
|
||||
#define RIO_SRC_OPS_READ 0x00008000 /* [I] Read op */
|
||||
@@ -159,6 +161,7 @@
|
||||
#define RIO_COMPONENT_TAG_CSR 0x6c /* [III] Component Tag CSR */
|
||||
|
||||
#define RIO_STD_RTE_CONF_DESTID_SEL_CSR 0x70
|
||||
#define RIO_STD_RTE_CONF_EXTCFGEN 0x80000000
|
||||
#define RIO_STD_RTE_CONF_PORT_SEL_CSR 0x74
|
||||
#define RIO_STD_RTE_DEFAULT_PORT 0x78
|
||||
|
||||
@@ -222,15 +225,17 @@
|
||||
#define RIO_PORT_GEN_MASTER 0x40000000
|
||||
#define RIO_PORT_GEN_DISCOVERED 0x20000000
|
||||
#define RIO_PORT_N_MNT_REQ_CSR(x) (0x0040 + x*0x20) /* 0x0002 */
|
||||
#define RIO_MNT_REQ_CMD_RD 0x03 /* Reset-device command */
|
||||
#define RIO_MNT_REQ_CMD_IS 0x04 /* Input-status command */
|
||||
#define RIO_PORT_N_MNT_RSP_CSR(x) (0x0044 + x*0x20) /* 0x0002 */
|
||||
#define RIO_PORT_N_MNT_RSP_RVAL 0x80000000 /* Response Valid */
|
||||
#define RIO_PORT_N_MNT_RSP_ASTAT 0x000003e0 /* ackID Status */
|
||||
#define RIO_PORT_N_MNT_RSP_ASTAT 0x000007e0 /* ackID Status */
|
||||
#define RIO_PORT_N_MNT_RSP_LSTAT 0x0000001f /* Link Status */
|
||||
#define RIO_PORT_N_ACK_STS_CSR(x) (0x0048 + x*0x20) /* 0x0002 */
|
||||
#define RIO_PORT_N_ACK_CLEAR 0x80000000
|
||||
#define RIO_PORT_N_ACK_INBOUND 0x1f000000
|
||||
#define RIO_PORT_N_ACK_OUTSTAND 0x00001f00
|
||||
#define RIO_PORT_N_ACK_OUTBOUND 0x0000001f
|
||||
#define RIO_PORT_N_ACK_INBOUND 0x3f000000
|
||||
#define RIO_PORT_N_ACK_OUTSTAND 0x00003f00
|
||||
#define RIO_PORT_N_ACK_OUTBOUND 0x0000003f
|
||||
#define RIO_PORT_N_ERR_STS_CSR(x) (0x0058 + x*0x20)
|
||||
#define RIO_PORT_N_ERR_STS_PW_OUT_ES 0x00010000 /* Output Error-stopped */
|
||||
#define RIO_PORT_N_ERR_STS_PW_INP_ES 0x00000100 /* Input Error-stopped */
|
||||
@@ -238,7 +243,6 @@
|
||||
#define RIO_PORT_N_ERR_STS_PORT_ERR 0x00000004
|
||||
#define RIO_PORT_N_ERR_STS_PORT_OK 0x00000002
|
||||
#define RIO_PORT_N_ERR_STS_PORT_UNINIT 0x00000001
|
||||
#define RIO_PORT_N_ERR_STS_CLR_MASK 0x07120204
|
||||
#define RIO_PORT_N_CTL_CSR(x) (0x005c + x*0x20)
|
||||
#define RIO_PORT_N_CTL_PWIDTH 0xc0000000
|
||||
#define RIO_PORT_N_CTL_PWIDTH_1 0x00000000
|
||||
@@ -261,6 +265,10 @@
|
||||
#define RIO_EM_EFB_HEADER 0x000 /* Error Management Extensions Block Header */
|
||||
#define RIO_EM_LTL_ERR_DETECT 0x008 /* Logical/Transport Layer Error Detect CSR */
|
||||
#define RIO_EM_LTL_ERR_EN 0x00c /* Logical/Transport Layer Error Enable CSR */
|
||||
#define REM_LTL_ERR_ILLTRAN 0x08000000 /* Illegal Transaction decode */
|
||||
#define REM_LTL_ERR_UNSOLR 0x00800000 /* Unsolicited Response */
|
||||
#define REM_LTL_ERR_UNSUPTR 0x00400000 /* Unsupported Transaction */
|
||||
#define REM_LTL_ERR_IMPSPEC 0x000000ff /* Implementation Specific */
|
||||
#define RIO_EM_LTL_HIADDR_CAP 0x010 /* Logical/Transport Layer High Address Capture CSR */
|
||||
#define RIO_EM_LTL_ADDR_CAP 0x014 /* Logical/Transport Layer Address Capture CSR */
|
||||
#define RIO_EM_LTL_DEVID_CAP 0x018 /* Logical/Transport Layer Device ID Capture CSR */
|
||||
|
@@ -626,6 +626,10 @@ struct signal_struct {
|
||||
|
||||
int oom_adj; /* OOM kill score adjustment (bit shift) */
|
||||
int oom_score_adj; /* OOM kill score adjustment */
|
||||
|
||||
struct mutex cred_guard_mutex; /* guard against foreign influences on
|
||||
* credential calculations
|
||||
* (notably. ptrace) */
|
||||
};
|
||||
|
||||
/* Context switch must be unlocked if interrupts are to be enabled */
|
||||
@@ -1305,9 +1309,6 @@ struct task_struct {
|
||||
* credentials (COW) */
|
||||
const struct cred __rcu *cred; /* effective (overridable) subjective task
|
||||
* credentials (COW) */
|
||||
struct mutex cred_guard_mutex; /* guard against foreign influences on
|
||||
* credential calculations
|
||||
* (notably. ptrace) */
|
||||
struct cred *replacement_session_keyring; /* for KEYCTL_SESSION_TO_PARENT */
|
||||
|
||||
char comm[TASK_COMM_LEN]; /* executable name excluding path
|
||||
@@ -2236,9 +2237,16 @@ static inline void task_unlock(struct task_struct *p)
|
||||
spin_unlock(&p->alloc_lock);
|
||||
}
|
||||
|
||||
extern struct sighand_struct *lock_task_sighand(struct task_struct *tsk,
|
||||
extern struct sighand_struct *__lock_task_sighand(struct task_struct *tsk,
|
||||
unsigned long *flags);
|
||||
|
||||
#define lock_task_sighand(tsk, flags) \
|
||||
({ struct sighand_struct *__ss; \
|
||||
__cond_lock(&(tsk)->sighand->siglock, \
|
||||
(__ss = __lock_task_sighand(tsk, flags))); \
|
||||
__ss; \
|
||||
}) \
|
||||
|
||||
static inline void unlock_task_sighand(struct task_struct *tsk,
|
||||
unsigned long *flags)
|
||||
{
|
||||
|
11
include/linux/spi/74x164.h
Normal file
11
include/linux/spi/74x164.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#ifndef LINUX_SPI_74X164_H
|
||||
#define LINUX_SPI_74X164_H
|
||||
|
||||
#define GEN_74X164_DRIVER_NAME "74x164"
|
||||
|
||||
struct gen_74x164_chip_platform_data {
|
||||
/* number assigned to the first GPIO */
|
||||
unsigned base;
|
||||
};
|
||||
|
||||
#endif
|
@@ -126,6 +126,7 @@
|
||||
#define MGSL_MODE_BISYNC 4
|
||||
#define MGSL_MODE_RAW 6
|
||||
#define MGSL_MODE_BASE_CLOCK 7
|
||||
#define MGSL_MODE_XSYNC 8
|
||||
|
||||
#define MGSL_BUS_TYPE_ISA 1
|
||||
#define MGSL_BUS_TYPE_EISA 2
|
||||
@@ -290,6 +291,10 @@ struct gpio_desc {
|
||||
#define MGSL_IOCSGPIO _IOW(MGSL_MAGIC_IOC,16,struct gpio_desc)
|
||||
#define MGSL_IOCGGPIO _IOR(MGSL_MAGIC_IOC,17,struct gpio_desc)
|
||||
#define MGSL_IOCWAITGPIO _IOWR(MGSL_MAGIC_IOC,18,struct gpio_desc)
|
||||
#define MGSL_IOCSXSYNC _IO(MGSL_MAGIC_IOC, 19)
|
||||
#define MGSL_IOCGXSYNC _IO(MGSL_MAGIC_IOC, 20)
|
||||
#define MGSL_IOCSXCTRL _IO(MGSL_MAGIC_IOC, 21)
|
||||
#define MGSL_IOCGXCTRL _IO(MGSL_MAGIC_IOC, 22)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
/* provide 32 bit ioctl compatibility on 64 bit systems */
|
||||
|
@@ -701,7 +701,8 @@ asmlinkage long sys_nfsservctl(int cmd,
|
||||
asmlinkage long sys_syslog(int type, char __user *buf, int len);
|
||||
asmlinkage long sys_uselib(const char __user *library);
|
||||
asmlinkage long sys_ni_syscall(void);
|
||||
asmlinkage long sys_ptrace(long request, long pid, long addr, long data);
|
||||
asmlinkage long sys_ptrace(long request, long pid, unsigned long addr,
|
||||
unsigned long data);
|
||||
|
||||
asmlinkage long sys_add_key(const char __user *_type,
|
||||
const char __user *_description,
|
||||
|
@@ -150,7 +150,7 @@ static inline void tracehook_report_syscall_exit(struct pt_regs *regs, int step)
|
||||
*
|
||||
* Return %LSM_UNSAFE_* bits applied to an exec because of tracing.
|
||||
*
|
||||
* @task->cred_guard_mutex is held by the caller through the do_execve().
|
||||
* @task->signal->cred_guard_mutex is held by the caller through the do_execve().
|
||||
*/
|
||||
static inline int tracehook_unsafe_exec(struct task_struct *task)
|
||||
{
|
||||
|
@@ -5,7 +5,6 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/virtio_ids.h>
|
||||
#include <linux/virtio_config.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/* The feature bitmap for virtio 9P */
|
||||
|
||||
|
Reference in New Issue
Block a user