Merge commit 'v2.6.38-rc3' into devicetree/next
This commit is contained in:
commit
c64eae9a73
1425 changed files with 14429 additions and 10212 deletions
|
@ -306,9 +306,6 @@ extern acpi_status acpi_pci_osc_control_set(acpi_handle handle,
|
|||
u32 *mask, u32 req);
|
||||
extern void acpi_early_init(void);
|
||||
|
||||
int acpi_os_map_generic_address(struct acpi_generic_address *addr);
|
||||
void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);
|
||||
|
||||
#else /* !CONFIG_ACPI */
|
||||
|
||||
#define acpi_disabled 1
|
||||
|
|
16
include/linux/acpi_io.h
Normal file
16
include/linux/acpi_io.h
Normal file
|
@ -0,0 +1,16 @@
|
|||
#ifndef _ACPI_IO_H_
|
||||
#define _ACPI_IO_H_
|
||||
|
||||
#include <linux/io.h>
|
||||
#include <acpi/acpi.h>
|
||||
|
||||
static inline void __iomem *acpi_os_ioremap(acpi_physical_address phys,
|
||||
acpi_size size)
|
||||
{
|
||||
return ioremap_cache(phys, size);
|
||||
}
|
||||
|
||||
int acpi_os_map_generic_address(struct acpi_generic_address *addr);
|
||||
void acpi_os_unmap_generic_address(struct acpi_generic_address *addr);
|
||||
|
||||
#endif
|
|
@ -139,9 +139,9 @@ extern int update_console_cmdline(char *name, int idx, char *name_new, int idx_n
|
|||
extern void register_console(struct console *);
|
||||
extern int unregister_console(struct console *);
|
||||
extern struct console *console_drivers;
|
||||
extern void acquire_console_sem(void);
|
||||
extern int try_acquire_console_sem(void);
|
||||
extern void release_console_sem(void);
|
||||
extern void console_lock(void);
|
||||
extern int console_trylock(void);
|
||||
extern void console_unlock(void);
|
||||
extern void console_conditional_schedule(void);
|
||||
extern void console_unblank(void);
|
||||
extern struct tty_driver *console_device(int *);
|
||||
|
|
|
@ -249,7 +249,7 @@ static inline enum zone_type gfp_zone(gfp_t flags)
|
|||
((1 << ZONES_SHIFT) - 1);
|
||||
|
||||
if (__builtin_constant_p(bit))
|
||||
MAYBE_BUILD_BUG_ON((GFP_ZONE_BAD >> bit) & 1);
|
||||
BUILD_BUG_ON((GFP_ZONE_BAD >> bit) & 1);
|
||||
else {
|
||||
#ifdef CONFIG_DEBUG_VM
|
||||
BUG_ON((GFP_ZONE_BAD >> bit) & 1);
|
||||
|
|
|
@ -959,7 +959,7 @@ struct ieee80211_ht_info {
|
|||
/* block-ack parameters */
|
||||
#define IEEE80211_ADDBA_PARAM_POLICY_MASK 0x0002
|
||||
#define IEEE80211_ADDBA_PARAM_TID_MASK 0x003C
|
||||
#define IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK 0xFFA0
|
||||
#define IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK 0xFFC0
|
||||
#define IEEE80211_DELBA_PARAM_TID_MASK 0xF000
|
||||
#define IEEE80211_DELBA_PARAM_INITIATOR_MASK 0x0800
|
||||
|
||||
|
|
|
@ -12,8 +12,6 @@
|
|||
* @cs_en: pointer to the cs enable function
|
||||
* @cs_dis: pointer to the cs disable function
|
||||
* @irq_read_val: pointer to read the pen irq value function
|
||||
* @x_max_res: xmax resolution
|
||||
* @y_max_res: ymax resolution
|
||||
* @touch_x_max: touch x max
|
||||
* @touch_y_max: touch y max
|
||||
* @cs_pin: chip select pin
|
||||
|
@ -29,8 +27,6 @@ struct bu21013_platform_device {
|
|||
int (*cs_en)(int reset_pin);
|
||||
int (*cs_dis)(int reset_pin);
|
||||
int (*irq_read_val)(void);
|
||||
int x_max_res;
|
||||
int y_max_res;
|
||||
int touch_x_max;
|
||||
int touch_y_max;
|
||||
unsigned int cs_pin;
|
||||
|
|
|
@ -100,13 +100,6 @@ static inline struct irq_desc *move_irq_desc(struct irq_desc *desc, int node)
|
|||
#define get_irq_desc_data(desc) ((desc)->irq_data.handler_data)
|
||||
#define get_irq_desc_msi(desc) ((desc)->irq_data.msi_desc)
|
||||
|
||||
/*
|
||||
* Monolithic do_IRQ implementation.
|
||||
*/
|
||||
#ifndef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ
|
||||
extern unsigned int __do_IRQ(unsigned int irq);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Architectures call this to let the generic IRQ layer
|
||||
* handle an interrupt. If the descriptor is attached to an
|
||||
|
@ -115,14 +108,7 @@ extern unsigned int __do_IRQ(unsigned int irq);
|
|||
*/
|
||||
static inline void generic_handle_irq_desc(unsigned int irq, struct irq_desc *desc)
|
||||
{
|
||||
#ifdef CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ
|
||||
desc->handle_irq(irq, desc);
|
||||
#else
|
||||
if (likely(desc->handle_irq))
|
||||
desc->handle_irq(irq, desc);
|
||||
else
|
||||
__do_IRQ(irq);
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline void generic_handle_irq(unsigned int irq)
|
||||
|
|
|
@ -243,6 +243,8 @@ extern int test_taint(unsigned flag);
|
|||
extern unsigned long get_taint(void);
|
||||
extern int root_mountflags;
|
||||
|
||||
extern bool early_boot_irqs_disabled;
|
||||
|
||||
/* Values used for system_state */
|
||||
extern enum system_states {
|
||||
SYSTEM_BOOTING,
|
||||
|
@ -573,12 +575,6 @@ struct sysinfo {
|
|||
char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding: libc5 uses this.. */
|
||||
};
|
||||
|
||||
/* Force a compilation error if condition is true */
|
||||
#define BUILD_BUG_ON(condition) ((void)BUILD_BUG_ON_ZERO(condition))
|
||||
|
||||
/* Force a compilation error if condition is constant and true */
|
||||
#define MAYBE_BUILD_BUG_ON(cond) ((void)sizeof(char[1 - 2 * !!(cond)]))
|
||||
|
||||
/* Force a compilation error if a constant expression is not a power of 2 */
|
||||
#define BUILD_BUG_ON_NOT_POWER_OF_2(n) \
|
||||
BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0))
|
||||
|
@ -590,6 +586,32 @@ struct sysinfo {
|
|||
#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
|
||||
#define BUILD_BUG_ON_NULL(e) ((void *)sizeof(struct { int:-!!(e); }))
|
||||
|
||||
/**
|
||||
* BUILD_BUG_ON - break compile if a condition is true.
|
||||
* @condition: the condition which the compiler should know is false.
|
||||
*
|
||||
* If you have some code which relies on certain constants being equal, or
|
||||
* other compile-time-evaluated condition, you should use BUILD_BUG_ON to
|
||||
* detect if someone changes it.
|
||||
*
|
||||
* The implementation uses gcc's reluctance to create a negative array, but
|
||||
* gcc (as of 4.4) only emits that error for obvious cases (eg. not arguments
|
||||
* to inline functions). So as a fallback we use the optimizer; if it can't
|
||||
* prove the condition is false, it will cause a link error on the undefined
|
||||
* "__build_bug_on_failed". This error message can be harder to track down
|
||||
* though, hence the two different methods.
|
||||
*/
|
||||
#ifndef __OPTIMIZE__
|
||||
#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
|
||||
#else
|
||||
extern int __build_bug_on_failed;
|
||||
#define BUILD_BUG_ON(condition) \
|
||||
do { \
|
||||
((void)sizeof(char[1 - 2*!!(condition)])); \
|
||||
if (condition) __build_bug_on_failed = 1; \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
/* Trap pasters of __FUNCTION__ at compile-time */
|
||||
#define __FUNCTION__ (__func__)
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size);
|
|||
\
|
||||
_n = (long) &((ptr)->name##_end) \
|
||||
- (long) &((ptr)->name##_begin); \
|
||||
MAYBE_BUILD_BUG_ON(_n < 0); \
|
||||
BUILD_BUG_ON(_n < 0); \
|
||||
\
|
||||
kmemcheck_mark_initialized(&((ptr)->name##_begin), _n); \
|
||||
} while (0)
|
||||
|
|
|
@ -436,16 +436,8 @@ do { \
|
|||
#endif /* CONFIG_LOCKDEP */
|
||||
|
||||
#ifdef CONFIG_TRACE_IRQFLAGS
|
||||
extern void early_boot_irqs_off(void);
|
||||
extern void early_boot_irqs_on(void);
|
||||
extern void print_irqtrace_events(struct task_struct *curr);
|
||||
#else
|
||||
static inline void early_boot_irqs_off(void)
|
||||
{
|
||||
}
|
||||
static inline void early_boot_irqs_on(void)
|
||||
{
|
||||
}
|
||||
static inline void print_irqtrace_events(struct task_struct *curr)
|
||||
{
|
||||
}
|
||||
|
@ -522,12 +514,15 @@ static inline void print_irqtrace_events(struct task_struct *curr)
|
|||
#ifdef CONFIG_DEBUG_LOCK_ALLOC
|
||||
# ifdef CONFIG_PROVE_LOCKING
|
||||
# define lock_map_acquire(l) lock_acquire(l, 0, 0, 0, 2, NULL, _THIS_IP_)
|
||||
# define lock_map_acquire_read(l) lock_acquire(l, 0, 0, 2, 2, NULL, _THIS_IP_)
|
||||
# else
|
||||
# define lock_map_acquire(l) lock_acquire(l, 0, 0, 0, 1, NULL, _THIS_IP_)
|
||||
# define lock_map_acquire_read(l) lock_acquire(l, 0, 0, 2, 1, NULL, _THIS_IP_)
|
||||
# endif
|
||||
# define lock_map_release(l) lock_release(l, 1, _THIS_IP_)
|
||||
#else
|
||||
# define lock_map_acquire(l) do { } while (0)
|
||||
# define lock_map_acquire_read(l) do { } while (0)
|
||||
# define lock_map_release(l) do { } while (0)
|
||||
#endif
|
||||
|
||||
|
|
|
@ -146,6 +146,10 @@ unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order,
|
|||
gfp_t gfp_mask);
|
||||
u64 mem_cgroup_get_limit(struct mem_cgroup *mem);
|
||||
|
||||
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
||||
void mem_cgroup_split_huge_fixup(struct page *head, struct page *tail);
|
||||
#endif
|
||||
|
||||
#else /* CONFIG_CGROUP_MEM_RES_CTLR */
|
||||
struct mem_cgroup;
|
||||
|
||||
|
@ -335,6 +339,11 @@ u64 mem_cgroup_get_limit(struct mem_cgroup *mem)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline void mem_cgroup_split_huge_fixup(struct page *head,
|
||||
struct page *tail)
|
||||
{
|
||||
}
|
||||
|
||||
#endif /* CONFIG_CGROUP_MEM_CONT */
|
||||
|
||||
#endif /* _LINUX_MEMCONTROL_H */
|
||||
|
|
|
@ -470,6 +470,7 @@ static inline void set_compound_order(struct page *page, unsigned long order)
|
|||
page[1].lru.prev = (void *)order;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
/*
|
||||
* Do pte_mkwrite, but only if the vma says VM_WRITE. We do this when
|
||||
* servicing faults for write access. In the normal case, do always want
|
||||
|
@ -482,6 +483,7 @@ static inline pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma)
|
|||
pte = pte_mkwrite(pte);
|
||||
return pte;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Multiple processes may "see" the same page. E.g. for untouched
|
||||
|
|
|
@ -94,12 +94,12 @@ struct sh_mmcif_plat_data {
|
|||
|
||||
static inline u32 sh_mmcif_readl(void __iomem *addr, int reg)
|
||||
{
|
||||
return readl(addr + reg);
|
||||
return __raw_readl(addr + reg);
|
||||
}
|
||||
|
||||
static inline void sh_mmcif_writel(void __iomem *addr, int reg, u32 val)
|
||||
{
|
||||
writel(val, addr + reg);
|
||||
__raw_writel(val, addr + reg);
|
||||
}
|
||||
|
||||
#define SH_MMCIF_BBS 512 /* boot block size */
|
||||
|
|
|
@ -58,6 +58,12 @@ struct module_attribute {
|
|||
void (*free)(struct module *);
|
||||
};
|
||||
|
||||
struct module_version_attribute {
|
||||
struct module_attribute mattr;
|
||||
const char *module_name;
|
||||
const char *version;
|
||||
};
|
||||
|
||||
struct module_kobject
|
||||
{
|
||||
struct kobject kobj;
|
||||
|
@ -161,7 +167,28 @@ extern struct module __this_module;
|
|||
Using this automatically adds a checksum of the .c files and the
|
||||
local headers in "srcversion".
|
||||
*/
|
||||
|
||||
#if defined(MODULE) || !defined(CONFIG_SYSFS)
|
||||
#define MODULE_VERSION(_version) MODULE_INFO(version, _version)
|
||||
#else
|
||||
#define MODULE_VERSION(_version) \
|
||||
extern ssize_t __modver_version_show(struct module_attribute *, \
|
||||
struct module *, char *); \
|
||||
static struct module_version_attribute __modver_version_attr \
|
||||
__used \
|
||||
__attribute__ ((__section__ ("__modver"),aligned(sizeof(void *)))) \
|
||||
= { \
|
||||
.mattr = { \
|
||||
.attr = { \
|
||||
.name = "version", \
|
||||
.mode = S_IRUGO, \
|
||||
}, \
|
||||
.show = __modver_version_show, \
|
||||
}, \
|
||||
.module_name = KBUILD_MODNAME, \
|
||||
.version = _version, \
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Optional firmware file (or files) needed by the module
|
||||
* format is simply firmware file name. Multiple firmware
|
||||
|
|
|
@ -16,15 +16,17 @@
|
|||
/* Chosen so that structs with an unsigned long line up. */
|
||||
#define MAX_PARAM_PREFIX_LEN (64 - sizeof(unsigned long))
|
||||
|
||||
#ifdef MODULE
|
||||
#define ___module_cat(a,b) __mod_ ## a ## b
|
||||
#define __module_cat(a,b) ___module_cat(a,b)
|
||||
#ifdef MODULE
|
||||
#define __MODULE_INFO(tag, name, info) \
|
||||
static const char __module_cat(name,__LINE__)[] \
|
||||
__used __attribute__((section(".modinfo"), unused, aligned(1))) \
|
||||
= __stringify(tag) "=" info
|
||||
#else /* !MODULE */
|
||||
#define __MODULE_INFO(tag, name, info)
|
||||
/* This struct is here for syntactic coherency, it is not used */
|
||||
#define __MODULE_INFO(tag, name, info) \
|
||||
struct __module_cat(name,__LINE__) {}
|
||||
#endif
|
||||
#define __MODULE_PARM_TYPE(name, _type) \
|
||||
__MODULE_INFO(parmtype, name##type, #name ":" _type)
|
||||
|
|
|
@ -51,10 +51,10 @@ nfsacl_size(struct posix_acl *acl_access, struct posix_acl *acl_default)
|
|||
return w;
|
||||
}
|
||||
|
||||
extern unsigned int
|
||||
extern int
|
||||
nfsacl_encode(struct xdr_buf *buf, unsigned int base, struct inode *inode,
|
||||
struct posix_acl *acl, int encode_entries, int typeflag);
|
||||
extern unsigned int
|
||||
extern int
|
||||
nfsacl_decode(struct xdr_buf *buf, unsigned int base, unsigned int *aclcnt,
|
||||
struct posix_acl **pacl);
|
||||
|
||||
|
|
|
@ -71,6 +71,7 @@ posix_acl_release(struct posix_acl *acl)
|
|||
|
||||
/* posix_acl.c */
|
||||
|
||||
extern void posix_acl_init(struct posix_acl *, int);
|
||||
extern struct posix_acl *posix_acl_alloc(int, gfp_t);
|
||||
extern struct posix_acl *posix_acl_clone(const struct posix_acl *, gfp_t);
|
||||
extern int posix_acl_valid(const struct posix_acl *);
|
||||
|
|
|
@ -322,9 +322,12 @@ struct dquot_operations {
|
|||
qsize_t *(*get_reserved_space) (struct inode *);
|
||||
};
|
||||
|
||||
struct path;
|
||||
|
||||
/* Operations handling requests from userspace */
|
||||
struct quotactl_ops {
|
||||
int (*quota_on)(struct super_block *, int, int, char *);
|
||||
int (*quota_on)(struct super_block *, int, int, struct path *);
|
||||
int (*quota_on_meta)(struct super_block *, int, int);
|
||||
int (*quota_off)(struct super_block *, int);
|
||||
int (*quota_sync)(struct super_block *, int, int);
|
||||
int (*get_info)(struct super_block *, int, struct if_dqinfo *);
|
||||
|
|
|
@ -76,11 +76,9 @@ int dquot_mark_dquot_dirty(struct dquot *dquot);
|
|||
|
||||
int dquot_file_open(struct inode *inode, struct file *file);
|
||||
|
||||
int dquot_quota_on(struct super_block *sb, int type, int format_id,
|
||||
char *path);
|
||||
int dquot_enable(struct inode *inode, int type, int format_id,
|
||||
unsigned int flags);
|
||||
int dquot_quota_on_path(struct super_block *sb, int type, int format_id,
|
||||
int dquot_quota_on(struct super_block *sb, int type, int format_id,
|
||||
struct path *path);
|
||||
int dquot_quota_on_mount(struct super_block *sb, char *qf_name,
|
||||
int format_id, int type);
|
||||
|
|
|
@ -235,8 +235,6 @@ extern int rtc_irq_set_freq(struct rtc_device *rtc,
|
|||
struct rtc_task *task, int freq);
|
||||
extern int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int enabled);
|
||||
extern int rtc_alarm_irq_enable(struct rtc_device *rtc, unsigned int enabled);
|
||||
extern int rtc_dev_update_irq_enable_emul(struct rtc_device *rtc,
|
||||
unsigned int enabled);
|
||||
|
||||
void rtc_aie_update_irq(void *private);
|
||||
void rtc_uie_update_irq(void *private);
|
||||
|
@ -246,8 +244,6 @@ int rtc_register(rtc_task_t *task);
|
|||
int rtc_unregister(rtc_task_t *task);
|
||||
int rtc_control(rtc_task_t *t, unsigned int cmd, unsigned long arg);
|
||||
|
||||
void rtc_timer_enqueue(struct rtc_device *rtc, struct rtc_timer *timer);
|
||||
void rtc_timer_remove(struct rtc_device *rtc, struct rtc_timer *timer);
|
||||
void rtc_timer_init(struct rtc_timer *timer, void (*f)(void* p), void* data);
|
||||
int rtc_timer_start(struct rtc_device *rtc, struct rtc_timer* timer,
|
||||
ktime_t expires, ktime_t period);
|
||||
|
|
|
@ -47,14 +47,6 @@ static inline int svc_is_backchannel(const struct svc_rqst *rqstp)
|
|||
return 1;
|
||||
return 0;
|
||||
}
|
||||
static inline struct nfs4_sessionid *bc_xprt_sid(struct svc_rqst *rqstp)
|
||||
{
|
||||
if (svc_is_backchannel(rqstp))
|
||||
return (struct nfs4_sessionid *)
|
||||
rqstp->rq_server->sv_bc_xprt->xpt_bc_sid;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#else /* CONFIG_NFS_V4_1 */
|
||||
static inline int xprt_setup_backchannel(struct rpc_xprt *xprt,
|
||||
unsigned int min_reqs)
|
||||
|
@ -67,11 +59,6 @@ static inline int svc_is_backchannel(const struct svc_rqst *rqstp)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline struct nfs4_sessionid *bc_xprt_sid(struct svc_rqst *rqstp)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline void xprt_free_bc_request(struct rpc_rqst *req)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -77,7 +77,6 @@ struct svc_xprt {
|
|||
size_t xpt_remotelen; /* length of address */
|
||||
struct rpc_wait_queue xpt_bc_pending; /* backchannel wait queue */
|
||||
struct list_head xpt_users; /* callbacks on free */
|
||||
void *xpt_bc_sid; /* back channel session ID */
|
||||
|
||||
struct net *xpt_net;
|
||||
struct rpc_xprt *xpt_bc_xprt; /* NFSv4.1 backchannel */
|
||||
|
|
|
@ -17,6 +17,9 @@
|
|||
#include <linux/errno.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/* Enable/disable SYSRQ support by default (0==no, 1==yes). */
|
||||
#define SYSRQ_DEFAULT_ENABLE 1
|
||||
|
||||
/* Possible values of bitmask for enabling sysrq functions */
|
||||
/* 0x0001 is reserved for enable everything */
|
||||
#define SYSRQ_ENABLE_LOG 0x0002
|
||||
|
|
|
@ -112,6 +112,7 @@ struct usb_hcd {
|
|||
/* Flags that get set only during HCD registration or removal. */
|
||||
unsigned rh_registered:1;/* is root hub registered? */
|
||||
unsigned rh_pollable:1; /* may we poll the root hub? */
|
||||
unsigned msix_enabled:1; /* driver has MSI-X enabled? */
|
||||
|
||||
/* The next flag is a stopgap, to be removed when all the HCDs
|
||||
* support the new root-hub polling mechanism. */
|
||||
|
|
|
@ -347,6 +347,9 @@ extern int usb_serial_generic_prepare_write_buffer(struct usb_serial_port *port,
|
|||
extern int usb_serial_handle_sysrq_char(struct usb_serial_port *port,
|
||||
unsigned int ch);
|
||||
extern int usb_serial_handle_break(struct usb_serial_port *port);
|
||||
extern void usb_serial_handle_dcd_change(struct usb_serial_port *usb_port,
|
||||
struct tty_struct *tty,
|
||||
unsigned int status);
|
||||
|
||||
|
||||
extern int usb_serial_bus_register(struct usb_serial_driver *device);
|
||||
|
|
|
@ -109,7 +109,10 @@ static inline bool virtio_has_feature(const struct virtio_device *vdev,
|
|||
unsigned int fbit)
|
||||
{
|
||||
/* Did you forget to fix assumptions on max features? */
|
||||
MAYBE_BUILD_BUG_ON(fbit >= 32);
|
||||
if (__builtin_constant_p(fbit))
|
||||
BUILD_BUG_ON(fbit >= 32);
|
||||
else
|
||||
BUG_ON(fbit >= 32);
|
||||
|
||||
if (fbit < VIRTIO_TRANSPORT_F_START)
|
||||
virtio_check_driver_offered_feature(vdev, fbit);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue