Merge branch 'linus' into x86/pat

This commit is contained in:
Thomas Gleixner
2008-05-18 11:54:43 +02:00
614 changed files with 19320 additions and 7315 deletions

View File

@@ -110,7 +110,6 @@ extern int __bitmap_weight(const unsigned long *bitmap, int bits);
extern int bitmap_scnprintf(char *buf, unsigned int len,
const unsigned long *src, int nbits);
extern int bitmap_scnprintf_len(unsigned int len);
extern int __bitmap_parse(const char *buf, unsigned int buflen, int is_user,
unsigned long *dst, int nbits);
extern int bitmap_parse_user(const char __user *ubuf, unsigned int ulen,

View File

@@ -289,13 +289,6 @@ static inline int __cpumask_scnprintf(char *buf, int len,
return bitmap_scnprintf(buf, len, srcp->bits, nbits);
}
#define cpumask_scnprintf_len(len) \
__cpumask_scnprintf_len((len))
static inline int __cpumask_scnprintf_len(int len)
{
return bitmap_scnprintf_len(len);
}
#define cpumask_parse_user(ubuf, ulen, dst) \
__cpumask_parse_user((ubuf), (ulen), &(dst), NR_CPUS)
static inline int __cpumask_parse_user(const char __user *buf, int len,

View File

@@ -183,7 +183,6 @@ struct class {
struct module *owner;
struct kset subsys;
struct list_head children;
struct list_head devices;
struct list_head interfaces;
struct kset class_dirs;

View File

@@ -109,6 +109,7 @@ struct fuse_file_lock {
#define FUSE_POSIX_LOCKS (1 << 1)
#define FUSE_FILE_OPS (1 << 2)
#define FUSE_ATOMIC_O_TRUNC (1 << 3)
#define FUSE_BIG_WRITES (1 << 5)
/**
* Release flags

View File

@@ -525,7 +525,7 @@ struct unixware_disklabel {
#define ADDPART_FLAG_RAID 1
#define ADDPART_FLAG_WHOLEDISK 2
extern dev_t blk_lookup_devt(const char *name);
extern dev_t blk_lookup_devt(const char *name, int part);
extern char *disk_name (struct gendisk *hd, int part, char *buf);
extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev);
@@ -553,7 +553,7 @@ static inline struct block_device *bdget_disk(struct gendisk *disk, int index)
static inline void printk_all_partitions(void) { }
static inline dev_t blk_lookup_devt(const char *name)
static inline dev_t blk_lookup_devt(const char *name, int part)
{
dev_t devt = MKDEV(0, 0);
return devt;

View File

@@ -965,7 +965,6 @@ typedef struct ide_task_s {
void ide_tf_dump(const char *, struct ide_taskfile *);
extern void SELECT_DRIVE(ide_drive_t *);
extern void SELECT_MASK(ide_drive_t *, int);
extern int drive_is_ready(ide_drive_t *);
@@ -1058,8 +1057,8 @@ enum {
IDE_HFLAG_NO_SET_MODE = (1 << 9),
/* trust BIOS for programming chipset/device for DMA */
IDE_HFLAG_TRUST_BIOS_FOR_DMA = (1 << 10),
/* host uses VDMA (tied with IDE_HFLAG_CS5520 for now) */
IDE_HFLAG_VDMA = (1 << 11),
/* host is CS5510/CS5520 */
IDE_HFLAG_CS5520 = (1 << 11),
/* ATAPI DMA is unsupported */
IDE_HFLAG_NO_ATAPI_DMA = (1 << 12),
/* set if host is a "non-bootable" controller */
@@ -1070,8 +1069,6 @@ enum {
IDE_HFLAG_NO_AUTODMA = (1 << 15),
/* host uses MMIO */
IDE_HFLAG_MMIO = (1 << 16),
/* host is CS5510/CS5520 */
IDE_HFLAG_CS5520 = IDE_HFLAG_VDMA,
/* no LBA48 */
IDE_HFLAG_NO_LBA48 = (1 << 17),
/* no LBA48 DMA */
@@ -1101,6 +1098,8 @@ enum {
IDE_HFLAG_NO_IO_32BIT = (1 << 30),
/* never unmask IRQs */
IDE_HFLAG_NO_UNMASK_IRQS = (1 << 31),
/* host uses VDMA (disabled for now) */
IDE_HFLAG_VDMA = 0,
};
#ifdef CONFIG_BLK_DEV_OFFBOARD

View File

@@ -83,16 +83,6 @@ __attribute__((format(printf,1,2)));
static inline void __check_printsym_format(const char *fmt, ...)
{
}
/* ia64 and ppc64 use function descriptors, which contain the real address */
#if defined(CONFIG_IA64) || defined(CONFIG_PPC64)
#define print_fn_descriptor_symbol(fmt, addr) \
do { \
unsigned long *__faddr = (unsigned long*) addr; \
print_symbol(fmt, __faddr[0]); \
} while (0)
#else
#define print_fn_descriptor_symbol(fmt, addr) print_symbol(fmt, addr)
#endif
static inline void print_symbol(const char *fmt, unsigned long addr)
{
@@ -101,6 +91,20 @@ static inline void print_symbol(const char *fmt, unsigned long addr)
__builtin_extract_return_addr((void *)addr));
}
/*
* Pretty-print a function pointer.
*
* ia64 and ppc64 function pointers are really function descriptors,
* which contain a pointer the real address.
*/
static inline void print_fn_descriptor_symbol(const char *fmt, void *addr)
{
#if defined(CONFIG_IA64) || defined(CONFIG_PPC64)
addr = *(void **)addr;
#endif
print_symbol(fmt, (unsigned long)addr);
}
#ifndef CONFIG_64BIT
#define print_ip_sym(ip) \
do { \

View File

@@ -276,7 +276,17 @@ extern void print_hex_dump(const char *level, const char *prefix_str,
const void *buf, size_t len, bool ascii);
extern void print_hex_dump_bytes(const char *prefix_str, int prefix_type,
const void *buf, size_t len);
#define hex_asc(x) "0123456789abcdef"[x]
extern const char hex_asc[];
#define hex_asc_lo(x) hex_asc[((x) & 0x0f)]
#define hex_asc_hi(x) hex_asc[((x) & 0xf0) >> 4]
static inline char *pack_hex_byte(char *buf, u8 byte)
{
*buf++ = hex_asc_hi(byte);
*buf++ = hex_asc_lo(byte);
return buf;
}
#define pr_emerg(fmt, arg...) \
printk(KERN_EMERG fmt, ##arg)

View File

@@ -226,8 +226,17 @@ struct mm_struct {
rwlock_t ioctx_list_lock; /* aio lock */
struct kioctx *ioctx_list;
#ifdef CONFIG_MM_OWNER
struct task_struct *owner; /* The thread group leader that */
/* owns the mm_struct. */
/*
* "owner" points to a task that is regarded as the canonical
* user/owner of this mm. All of the following must be true in
* order for it to be changed:
*
* current == mm->owner
* current->mm != mm
* new_owner->mm == mm
* new_owner->alloc_lock is held
*/
struct task_struct *owner;
#endif
#ifdef CONFIG_PROC_FS

View File

@@ -93,14 +93,16 @@ struct wireless_dev;
* used.
*/
#if !defined(CONFIG_AX25) && !defined(CONFIG_AX25_MODULE) && !defined(CONFIG_TR)
#define LL_MAX_HEADER 32
#if defined(CONFIG_WLAN_80211) || defined(CONFIG_AX25) || defined(CONFIG_AX25_MODULE)
# if defined(CONFIG_MAC80211_MESH)
# define LL_MAX_HEADER 128
# else
# define LL_MAX_HEADER 96
# endif
#elif defined(CONFIG_TR)
# define LL_MAX_HEADER 48
#else
#if defined(CONFIG_AX25) || defined(CONFIG_AX25_MODULE)
#define LL_MAX_HEADER 96
#else
#define LL_MAX_HEADER 48
#endif
# define LL_MAX_HEADER 32
#endif
#if !defined(CONFIG_NET_IPIP) && !defined(CONFIG_NET_IPIP_MODULE) && \
@@ -244,11 +246,16 @@ struct hh_cache
*
* We could use other alignment values, but we must maintain the
* relationship HH alignment <= LL alignment.
*
* LL_ALLOCATED_SPACE also takes into account the tailroom the device
* may need.
*/
#define LL_RESERVED_SPACE(dev) \
(((dev)->hard_header_len&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)
((((dev)->hard_header_len+(dev)->needed_headroom)&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)
#define LL_RESERVED_SPACE_EXTRA(dev,extra) \
((((dev)->hard_header_len+extra)&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)
((((dev)->hard_header_len+(dev)->needed_headroom+(extra))&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)
#define LL_ALLOCATED_SPACE(dev) \
((((dev)->hard_header_len+(dev)->needed_headroom+(dev)->needed_tailroom)&~(HH_DATA_MOD - 1)) + HH_DATA_MOD)
struct header_ops {
int (*create) (struct sk_buff *skb, struct net_device *dev,
@@ -567,6 +574,13 @@ struct net_device
unsigned short type; /* interface hardware type */
unsigned short hard_header_len; /* hardware hdr length */
/* extra head- and tailroom the hardware may need, but not in all cases
* can this be guaranteed, especially tailroom. Some cases also use
* LL_MAX_HEADER instead to allocate the skb.
*/
unsigned short needed_headroom;
unsigned short needed_tailroom;
struct net_device *master; /* Pointer to master device of a group,
* which this device is member of.
*/
@@ -715,6 +729,9 @@ struct net_device
struct net *nd_net;
#endif
/* mid-layer private */
void *ml_priv;
/* bridge stuff */
struct net_bridge_port *br_port;
/* macvlan */

View File

@@ -29,5 +29,5 @@ int match_token(char *, match_table_t table, substring_t args[]);
int match_int(substring_t *, int *result);
int match_octal(substring_t *, int *result);
int match_hex(substring_t *, int *result);
void match_strcpy(char *, const substring_t *);
size_t match_strlcpy(char *, const substring_t *, size_t);
char *match_strdup(const substring_t *);

View File

@@ -13,8 +13,14 @@
__attribute__((__section__(".data.percpu"))) \
PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name
#ifdef MODULE
#define SHARED_ALIGNED_SECTION ".data.percpu"
#else
#define SHARED_ALIGNED_SECTION ".data.percpu.shared_aligned"
#endif
#define DEFINE_PER_CPU_SHARED_ALIGNED(type, name) \
__attribute__((__section__(".data.percpu.shared_aligned"))) \
__attribute__((__section__(SHARED_ALIGNED_SECTION))) \
PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name \
____cacheline_aligned_in_smp
#else

View File

@@ -2027,7 +2027,7 @@ static inline int fatal_signal_pending(struct task_struct *p)
static inline int need_resched(void)
{
return unlikely(test_tsk_need_resched(current));
return unlikely(test_thread_flag(TIF_NEED_RESCHED));
}
/*
@@ -2038,7 +2038,7 @@ static inline int need_resched(void)
* cond_resched_softirq() will enable bhs before scheduling.
*/
extern int _cond_resched(void);
#ifdef CONFIG_PREEMPT
#ifdef CONFIG_PREEMPT_BKL
static inline int cond_resched(void)
{
return 0;

View File

@@ -0,0 +1,150 @@
/*
* Wireless USB - Cable Based Association
*
* Copyright (C) 2006 Intel Corporation
* Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version
* 2 as published by the Free Software Foundation.
*
*/
#ifndef __LINUX_USB_ASSOCIATION_H
#define __LINUX_USB_ASSOCIATION_H
/*
* Association attributes
*
* Association Models Supplement to WUSB 1.0 T[3-1]
*
* Each field in the structures has it's ID, it's length and then the
* value. This is the actual definition of the field's ID and its
* length.
*/
struct wusb_am_attr {
__u8 id;
__u8 len;
};
/* Different fields defined by the spec */
#define WUSB_AR_AssociationTypeId { .id = 0x0000, .len = 2 }
#define WUSB_AR_AssociationSubTypeId { .id = 0x0001, .len = 2 }
#define WUSB_AR_Length { .id = 0x0002, .len = 4 }
#define WUSB_AR_AssociationStatus { .id = 0x0004, .len = 4 }
#define WUSB_AR_LangID { .id = 0x0008, .len = 2 }
#define WUSB_AR_DeviceFriendlyName { .id = 0x000b, .len = 64 } /* max */
#define WUSB_AR_HostFriendlyName { .id = 0x000c, .len = 64 } /* max */
#define WUSB_AR_CHID { .id = 0x1000, .len = 16 }
#define WUSB_AR_CDID { .id = 0x1001, .len = 16 }
#define WUSB_AR_ConnectionContext { .id = 0x1002, .len = 48 }
#define WUSB_AR_BandGroups { .id = 0x1004, .len = 2 }
/* CBAF Control Requests (AMS1.0[T4-1] */
enum {
CBAF_REQ_GET_ASSOCIATION_INFORMATION = 0x01,
CBAF_REQ_GET_ASSOCIATION_REQUEST,
CBAF_REQ_SET_ASSOCIATION_RESPONSE
};
/*
* CBAF USB-interface defitions
*
* No altsettings, one optional interrupt endpoint.
*/
enum {
CBAF_IFACECLASS = 0xef,
CBAF_IFACESUBCLASS = 0x03,
CBAF_IFACEPROTOCOL = 0x01,
};
/* Association Information (AMS1.0[T4-3]) */
struct wusb_cbaf_assoc_info {
__le16 Length;
__u8 NumAssociationRequests;
__le16 Flags;
__u8 AssociationRequestsArray[];
} __attribute__((packed));
/* Association Request (AMS1.0[T4-4]) */
struct wusb_cbaf_assoc_request {
__u8 AssociationDataIndex;
__u8 Reserved;
__le16 AssociationTypeId;
__le16 AssociationSubTypeId;
__le32 AssociationTypeInfoSize;
} __attribute__((packed));
enum {
AR_TYPE_WUSB = 0x0001,
AR_TYPE_WUSB_RETRIEVE_HOST_INFO = 0x0000,
AR_TYPE_WUSB_ASSOCIATE = 0x0001,
};
/* Association Attribute header (AMS1.0[3.8]) */
struct wusb_cbaf_attr_hdr {
__le16 id;
__le16 len;
} __attribute__((packed));
/* Host Info (AMS1.0[T4-7]) (yeah, more headers and fields...) */
struct wusb_cbaf_host_info {
struct wusb_cbaf_attr_hdr AssociationTypeId_hdr;
__le16 AssociationTypeId;
struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr;
__le16 AssociationSubTypeId;
struct wusb_cbaf_attr_hdr CHID_hdr;
struct wusb_ckhdid CHID;
struct wusb_cbaf_attr_hdr LangID_hdr;
__le16 LangID;
struct wusb_cbaf_attr_hdr HostFriendlyName_hdr;
__u8 HostFriendlyName[];
} __attribute__((packed));
/* Device Info (AMS1.0[T4-8])
*
* I still don't get this tag'n'header stuff for each goddamn
* field...
*/
struct wusb_cbaf_device_info {
struct wusb_cbaf_attr_hdr Length_hdr;
__le32 Length;
struct wusb_cbaf_attr_hdr CDID_hdr;
struct wusb_ckhdid CDID;
struct wusb_cbaf_attr_hdr BandGroups_hdr;
__le16 BandGroups;
struct wusb_cbaf_attr_hdr LangID_hdr;
__le16 LangID;
struct wusb_cbaf_attr_hdr DeviceFriendlyName_hdr;
__u8 DeviceFriendlyName[];
} __attribute__((packed));
/* Connection Context; CC_DATA - Success case (AMS1.0[T4-9]) */
struct wusb_cbaf_cc_data {
struct wusb_cbaf_attr_hdr AssociationTypeId_hdr;
__le16 AssociationTypeId;
struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr;
__le16 AssociationSubTypeId;
struct wusb_cbaf_attr_hdr Length_hdr;
__le32 Length;
struct wusb_cbaf_attr_hdr ConnectionContext_hdr;
struct wusb_ckhdid CHID;
struct wusb_ckhdid CDID;
struct wusb_ckhdid CK;
struct wusb_cbaf_attr_hdr BandGroups_hdr;
__le16 BandGroups;
} __attribute__((packed));
/* CC_DATA - Failure case (AMS1.0[T4-10]) */
struct wusb_cbaf_cc_data_fail {
struct wusb_cbaf_attr_hdr AssociationTypeId_hdr;
__le16 AssociationTypeId;
struct wusb_cbaf_attr_hdr AssociationSubTypeId_hdr;
__le16 AssociationSubTypeId;
struct wusb_cbaf_attr_hdr Length_hdr;
__le16 Length;
struct wusb_cbaf_attr_hdr AssociationStatus_hdr;
__u32 AssociationStatus;
} __attribute__((packed));
#endif /* __LINUX_USB_ASSOCIATION_H */