Merge Linux 2.6.23
This commit is contained in:
@@ -7,6 +7,7 @@ header-y += raid/
|
||||
header-y += spi/
|
||||
header-y += sunrpc/
|
||||
header-y += tc_act/
|
||||
header-y += tc_ematch/
|
||||
header-y += netfilter/
|
||||
header-y += netfilter_arp/
|
||||
header-y += netfilter_bridge/
|
||||
|
@@ -15,11 +15,26 @@ extern int pci_disable_pcie_error_reporting(struct pci_dev *dev);
|
||||
extern int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev);
|
||||
extern int pci_cleanup_aer_correct_error_status(struct pci_dev *dev);
|
||||
#else
|
||||
#define pci_enable_pcie_error_reporting(dev) (-EINVAL)
|
||||
#define pci_find_aer_capability(dev) (0)
|
||||
#define pci_disable_pcie_error_reporting(dev) (-EINVAL)
|
||||
#define pci_cleanup_aer_uncorrect_error_status(dev) (-EINVAL)
|
||||
#define pci_cleanup_aer_correct_error_status(dev) (-EINVAL)
|
||||
static inline int pci_enable_pcie_error_reporting(struct pci_dev *dev)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
static inline int pci_find_aer_capability(struct pci_dev *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline int pci_disable_pcie_error_reporting(struct pci_dev *dev)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
static inline int pci_cleanup_aer_uncorrect_error_status(struct pci_dev *dev)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
static inline int pci_cleanup_aer_correct_error_status(struct pci_dev *dev)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif //_AER_H_
|
||||
|
@@ -73,6 +73,19 @@ enum {
|
||||
ATA_PIO5 = ATA_PIO4 | (1 << 5),
|
||||
ATA_PIO6 = ATA_PIO5 | (1 << 6),
|
||||
|
||||
ATA_SWDMA0 = (1 << 0),
|
||||
ATA_SWDMA1 = ATA_SWDMA0 | (1 << 1),
|
||||
ATA_SWDMA2 = ATA_SWDMA1 | (1 << 2),
|
||||
|
||||
ATA_SWDMA2_ONLY = (1 << 2),
|
||||
|
||||
ATA_MWDMA0 = (1 << 0),
|
||||
ATA_MWDMA1 = ATA_MWDMA0 | (1 << 1),
|
||||
ATA_MWDMA2 = ATA_MWDMA1 | (1 << 2),
|
||||
|
||||
ATA_MWDMA12_ONLY = (1 << 1) | (1 << 2),
|
||||
ATA_MWDMA2_ONLY = (1 << 2),
|
||||
|
||||
ATA_UDMA0 = (1 << 0),
|
||||
ATA_UDMA1 = ATA_UDMA0 | (1 << 1),
|
||||
ATA_UDMA2 = ATA_UDMA1 | (1 << 2),
|
||||
|
@@ -63,8 +63,8 @@
|
||||
#define AUDIT_ADD_RULE 1011 /* Add syscall filtering rule */
|
||||
#define AUDIT_DEL_RULE 1012 /* Delete syscall filtering rule */
|
||||
#define AUDIT_LIST_RULES 1013 /* List syscall filtering rules */
|
||||
#define AUDIT_TTY_GET 1014 /* Get TTY auditing status */
|
||||
#define AUDIT_TTY_SET 1015 /* Set TTY auditing status */
|
||||
#define AUDIT_TTY_GET 1016 /* Get TTY auditing status */
|
||||
#define AUDIT_TTY_SET 1017 /* Set TTY auditing status */
|
||||
|
||||
#define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages mostly uninteresting to kernel */
|
||||
#define AUDIT_USER_AVC 1107 /* We filter this differently */
|
||||
|
@@ -126,16 +126,16 @@ static inline void cpuhotplug_mutex_unlock(struct mutex *cpu_hp_mutex)
|
||||
static inline int cpu_is_offline(int cpu) { return 0; }
|
||||
#endif /* CONFIG_HOTPLUG_CPU */
|
||||
|
||||
#ifdef CONFIG_SUSPEND_SMP
|
||||
#ifdef CONFIG_PM_SLEEP_SMP
|
||||
extern int suspend_cpu_hotplug;
|
||||
|
||||
extern int disable_nonboot_cpus(void);
|
||||
extern void enable_nonboot_cpus(void);
|
||||
#else
|
||||
#else /* !CONFIG_PM_SLEEP_SMP */
|
||||
#define suspend_cpu_hotplug 0
|
||||
|
||||
static inline int disable_nonboot_cpus(void) { return 0; }
|
||||
static inline void enable_nonboot_cpus(void) {}
|
||||
#endif
|
||||
#endif /* !CONFIG_PM_SLEEP_SMP */
|
||||
|
||||
#endif /* _LINUX_CPU_H_ */
|
||||
|
@@ -32,15 +32,7 @@
|
||||
* CPUFREQ NOTIFIER INTERFACE *
|
||||
*********************************************************************/
|
||||
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
int cpufreq_register_notifier(struct notifier_block *nb, unsigned int list);
|
||||
#else
|
||||
static inline int cpufreq_register_notifier(struct notifier_block *nb,
|
||||
unsigned int list)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
int cpufreq_unregister_notifier(struct notifier_block *nb, unsigned int list);
|
||||
|
||||
#define CPUFREQ_TRANSITION_NOTIFIER (0)
|
||||
@@ -268,22 +260,17 @@ struct freq_attr {
|
||||
int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu);
|
||||
int cpufreq_update_policy(unsigned int cpu);
|
||||
|
||||
/* query the current CPU frequency (in kHz). If zero, cpufreq couldn't detect it */
|
||||
unsigned int cpufreq_get(unsigned int cpu);
|
||||
|
||||
/*
|
||||
* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it
|
||||
*/
|
||||
/* query the last known CPU freq (in kHz). If zero, cpufreq couldn't detect it */
|
||||
#ifdef CONFIG_CPU_FREQ
|
||||
unsigned int cpufreq_quick_get(unsigned int cpu);
|
||||
unsigned int cpufreq_get(unsigned int cpu);
|
||||
#else
|
||||
static inline unsigned int cpufreq_quick_get(unsigned int cpu)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline unsigned int cpufreq_get(unsigned int cpu)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
@@ -66,11 +66,8 @@ void hugetlb_free_pgd_range(struct mmu_gather **tlb, unsigned long addr,
|
||||
* If the arch doesn't supply something else, assume that hugepage
|
||||
* size aligned regions are ok without further preparation.
|
||||
*/
|
||||
static inline int prepare_hugepage_range(unsigned long addr, unsigned long len,
|
||||
pgoff_t pgoff)
|
||||
static inline int prepare_hugepage_range(unsigned long addr, unsigned long len)
|
||||
{
|
||||
if (pgoff & (~HPAGE_MASK >> PAGE_SHIFT))
|
||||
return -EINVAL;
|
||||
if (len & ~HPAGE_MASK)
|
||||
return -EINVAL;
|
||||
if (addr & ~HPAGE_MASK)
|
||||
@@ -78,8 +75,7 @@ static inline int prepare_hugepage_range(unsigned long addr, unsigned long len,
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int prepare_hugepage_range(unsigned long addr, unsigned long len,
|
||||
pgoff_t pgoff);
|
||||
int prepare_hugepage_range(unsigned long addr, unsigned long len);
|
||||
#endif
|
||||
|
||||
#ifndef ARCH_HAS_SETCLEAR_HUGE_PTE
|
||||
@@ -117,7 +113,7 @@ static inline unsigned long hugetlb_total_pages(void)
|
||||
#define hugetlb_report_meminfo(buf) 0
|
||||
#define hugetlb_report_node_meminfo(n, buf) 0
|
||||
#define follow_huge_pmd(mm, addr, pmd, write) NULL
|
||||
#define prepare_hugepage_range(addr,len,pgoff) (-EINVAL)
|
||||
#define prepare_hugepage_range(addr,len) (-EINVAL)
|
||||
#define pmd_huge(x) 0
|
||||
#define is_hugepage_only_range(mm, addr, len) 0
|
||||
#define hugetlb_free_pgd_range(tlb, addr, end, floor, ceiling) ({BUG(); 0; })
|
||||
|
@@ -1378,6 +1378,19 @@ static inline int ide_dev_has_iordy(struct hd_driveid *id)
|
||||
return ((id->field_valid & 2) && (id->capability & 8)) ? 1 : 0;
|
||||
}
|
||||
|
||||
static inline int ide_dev_is_sata(struct hd_driveid *id)
|
||||
{
|
||||
/*
|
||||
* See if word 93 is 0 AND drive is at least ATA-5 compatible
|
||||
* verifying that word 80 by casting it to a signed type --
|
||||
* this trick allows us to filter out the reserved values of
|
||||
* 0x0000 and 0xffff along with the earlier ATA revisions...
|
||||
*/
|
||||
if (id->hw_config == 0 && (short)id->major_rev_num >= 0x0020)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 ide_dump_status(ide_drive_t *, const char *, u8);
|
||||
|
||||
typedef struct ide_pio_timings_s {
|
||||
|
@@ -32,8 +32,8 @@ struct pppol2tp_addr
|
||||
|
||||
struct sockaddr_in addr; /* IP address and port to send to */
|
||||
|
||||
__be16 s_tunnel, s_session; /* For matching incoming packets */
|
||||
__be16 d_tunnel, d_session; /* For sending outgoing packets */
|
||||
__u16 s_tunnel, s_session; /* For matching incoming packets */
|
||||
__u16 d_tunnel, d_session; /* For sending outgoing packets */
|
||||
};
|
||||
|
||||
/* Socket options:
|
||||
|
@@ -86,7 +86,7 @@ extern struct nsproxy init_nsproxy;
|
||||
.count = ATOMIC_INIT(1), \
|
||||
.action = { { { .sa_handler = NULL, } }, }, \
|
||||
.siglock = __SPIN_LOCK_UNLOCKED(sighand.siglock), \
|
||||
.signalfd_list = LIST_HEAD_INIT(sighand.signalfd_list), \
|
||||
.signalfd_wqh = __WAIT_QUEUE_HEAD_INITIALIZER(sighand.signalfd_wqh), \
|
||||
}
|
||||
|
||||
extern struct group_info init_groups;
|
||||
|
@@ -363,6 +363,12 @@ struct input_absinfo {
|
||||
|
||||
#define KEY_UNKNOWN 240
|
||||
|
||||
#define KEY_VIDEO_NEXT 241 /* drive next video source */
|
||||
#define KEY_VIDEO_PREV 242 /* drive previous video source */
|
||||
#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */
|
||||
#define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */
|
||||
#define KEY_DISPLAY_OFF 245 /* display device to off state */
|
||||
|
||||
#define BTN_MISC 0x100
|
||||
#define BTN_0 0x100
|
||||
#define BTN_1 0x101
|
||||
@@ -552,6 +558,8 @@ struct input_absinfo {
|
||||
#define KEY_BRL_DOT6 0x1f6
|
||||
#define KEY_BRL_DOT7 0x1f7
|
||||
#define KEY_BRL_DOT8 0x1f8
|
||||
#define KEY_BRL_DOT9 0x1f9
|
||||
#define KEY_BRL_DOT10 0x1fa
|
||||
|
||||
/* We avoid low common keys in module aliases so they don't get huge. */
|
||||
#define KEY_MIN_INTERESTING KEY_MUTE
|
||||
|
@@ -22,7 +22,18 @@ struct isa_driver {
|
||||
|
||||
#define to_isa_driver(x) container_of((x), struct isa_driver, driver)
|
||||
|
||||
#ifdef CONFIG_ISA
|
||||
int isa_register_driver(struct isa_driver *, unsigned int);
|
||||
void isa_unregister_driver(struct isa_driver *);
|
||||
#else
|
||||
static inline int isa_register_driver(struct isa_driver *d, unsigned int i)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline void isa_unregister_driver(struct isa_driver *d)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __LINUX_ISA_H */
|
||||
|
@@ -34,6 +34,7 @@ extern const char linux_proc_banner[];
|
||||
|
||||
#define ALIGN(x,a) __ALIGN_MASK(x,(typeof(x))(a)-1)
|
||||
#define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask))
|
||||
#define PTR_ALIGN(p, a) ((typeof(p))ALIGN((unsigned long)(p), (a)))
|
||||
|
||||
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
|
||||
|
||||
|
@@ -437,8 +437,10 @@ extern unsigned short plain_map[NR_KEYS];
|
||||
#define K_BRL_DOT6 K(KT_BRL, 6)
|
||||
#define K_BRL_DOT7 K(KT_BRL, 7)
|
||||
#define K_BRL_DOT8 K(KT_BRL, 8)
|
||||
#define K_BRL_DOT9 K(KT_BRL, 9)
|
||||
#define K_BRL_DOT10 K(KT_BRL, 10)
|
||||
|
||||
#define NR_BRL 9
|
||||
#define NR_BRL 11
|
||||
|
||||
#define MAX_DIACR 256
|
||||
#endif
|
||||
|
@@ -13,6 +13,7 @@
|
||||
#define __LINUX_LEDS_H_INCLUDED
|
||||
|
||||
#include <linux/list.h>
|
||||
#include <linux/spinlock.h>
|
||||
|
||||
struct device;
|
||||
/*
|
||||
|
@@ -303,6 +303,7 @@ enum {
|
||||
ATA_HORKAGE_NODMA = (1 << 1), /* DMA problems */
|
||||
ATA_HORKAGE_NONCQ = (1 << 2), /* Don't use NCQ */
|
||||
ATA_HORKAGE_MAX_SEC_128 = (1 << 3), /* Limit max sects to 128 */
|
||||
ATA_HORKAGE_BROKEN_HPA = (1 << 4), /* Broken HPA */
|
||||
};
|
||||
|
||||
enum hsm_task_states {
|
||||
|
@@ -159,7 +159,7 @@ extern void mpol_fix_fork_child_flag(struct task_struct *p);
|
||||
|
||||
extern struct mempolicy default_policy;
|
||||
extern struct zonelist *huge_zonelist(struct vm_area_struct *vma,
|
||||
unsigned long addr, gfp_t gfp_flags);
|
||||
unsigned long addr, gfp_t gfp_flags, struct mempolicy **mpol);
|
||||
extern unsigned slab_node(struct mempolicy *policy);
|
||||
|
||||
extern enum zone_type policy_zone;
|
||||
@@ -256,7 +256,7 @@ static inline void mpol_fix_fork_child_flag(struct task_struct *p)
|
||||
#define set_cpuset_being_rebound(x) do {} while (0)
|
||||
|
||||
static inline struct zonelist *huge_zonelist(struct vm_area_struct *vma,
|
||||
unsigned long addr, gfp_t gfp_flags)
|
||||
unsigned long addr, gfp_t gfp_flags, struct mempolicy **mpol)
|
||||
{
|
||||
return NODE_DATA(0)->node_zonelists + gfp_zone(gfp_flags);
|
||||
}
|
||||
|
@@ -88,9 +88,8 @@ struct nf_sockopt_ops
|
||||
int (*compat_get)(struct sock *sk, int optval,
|
||||
void __user *user, int *len);
|
||||
|
||||
/* Number of users inside set() or get(). */
|
||||
unsigned int use;
|
||||
struct task_struct *cleanup_task;
|
||||
/* Use the module struct to lock set/get code in place */
|
||||
struct module *owner;
|
||||
};
|
||||
|
||||
/* Each queued (to userspace) skbuff has one of these. */
|
||||
|
@@ -431,6 +431,7 @@ extern int nfs_sync_mapping_range(struct address_space *, loff_t, loff_t, int);
|
||||
extern int nfs_wb_all(struct inode *inode);
|
||||
extern int nfs_wb_page(struct inode *inode, struct page* page);
|
||||
extern int nfs_wb_page_priority(struct inode *inode, struct page* page, int how);
|
||||
extern int nfs_wb_page_cancel(struct inode *inode, struct page* page);
|
||||
#if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4)
|
||||
extern int nfs_commit_inode(struct inode *, int);
|
||||
extern struct nfs_write_data *nfs_commit_alloc(void);
|
||||
|
@@ -557,6 +557,7 @@ int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask);
|
||||
int pcix_get_max_mmrbc(struct pci_dev *dev);
|
||||
int pcix_get_mmrbc(struct pci_dev *dev);
|
||||
int pcix_set_mmrbc(struct pci_dev *dev, int mmrbc);
|
||||
int pcie_get_readrq(struct pci_dev *dev);
|
||||
int pcie_set_readrq(struct pci_dev *dev, int rq);
|
||||
void pci_update_resource(struct pci_dev *dev, struct resource *res, int resno);
|
||||
int __must_check pci_assign_resource(struct pci_dev *dev, int i);
|
||||
@@ -578,6 +579,9 @@ int pci_set_power_state(struct pci_dev *dev, pci_power_t state);
|
||||
pci_power_t pci_choose_state(struct pci_dev *dev, pm_message_t state);
|
||||
int pci_enable_wake(struct pci_dev *dev, pci_power_t state, int enable);
|
||||
|
||||
/* Functions for PCI Hotplug drivers to use */
|
||||
int pci_bus_find_capability (struct pci_bus *bus, unsigned int devfn, int cap);
|
||||
|
||||
/* Helper functions for low-level code (drivers/pci/setup-[bus,res].c) */
|
||||
void pci_bus_assign_resources(struct pci_bus *bus);
|
||||
void pci_bus_size_bridges(struct pci_bus *bus);
|
||||
|
@@ -360,6 +360,9 @@
|
||||
#define PCI_DEVICE_ID_ATI_RS400_166 0x5a32
|
||||
#define PCI_DEVICE_ID_ATI_RS400_200 0x5a33
|
||||
#define PCI_DEVICE_ID_ATI_RS480 0x5950
|
||||
#define PCI_DEVICE_ID_ATI_RD580 0x5952
|
||||
#define PCI_DEVICE_ID_ATI_RX790 0x5957
|
||||
#define PCI_DEVICE_ID_ATI_RS690 0x7910
|
||||
/* ATI IXP Chipset */
|
||||
#define PCI_DEVICE_ID_ATI_IXP200_IDE 0x4349
|
||||
#define PCI_DEVICE_ID_ATI_IXP200_SMBUS 0x4353
|
||||
@@ -371,10 +374,9 @@
|
||||
#define PCI_DEVICE_ID_ATI_IXP400_SATA 0x4379
|
||||
#define PCI_DEVICE_ID_ATI_IXP400_SATA2 0x437a
|
||||
#define PCI_DEVICE_ID_ATI_IXP600_SATA 0x4380
|
||||
#define PCI_DEVICE_ID_ATI_IXP600_SMBUS 0x4385
|
||||
#define PCI_DEVICE_ID_ATI_SBX00_SMBUS 0x4385
|
||||
#define PCI_DEVICE_ID_ATI_IXP600_IDE 0x438c
|
||||
#define PCI_DEVICE_ID_ATI_IXP700_SATA 0x4390
|
||||
#define PCI_DEVICE_ID_ATI_IXP700_SMBUS 0x4395
|
||||
#define PCI_DEVICE_ID_ATI_IXP700_IDE 0x439c
|
||||
|
||||
#define PCI_VENDOR_ID_VLSI 0x1004
|
||||
@@ -1287,6 +1289,7 @@
|
||||
#define PCI_DEVICE_ID_VIA_VT3324 0x0324
|
||||
#define PCI_DEVICE_ID_VIA_VT3336 0x0336
|
||||
#define PCI_DEVICE_ID_VIA_VT3351 0x0351
|
||||
#define PCI_DEVICE_ID_VIA_VT3364 0x0364
|
||||
#define PCI_DEVICE_ID_VIA_8371_0 0x0391
|
||||
#define PCI_DEVICE_ID_VIA_8501_0 0x0501
|
||||
#define PCI_DEVICE_ID_VIA_82C561 0x0561
|
||||
@@ -1340,6 +1343,7 @@
|
||||
#define PCI_DEVICE_ID_VIA_8231_4 0x8235
|
||||
#define PCI_DEVICE_ID_VIA_8365_1 0x8305
|
||||
#define PCI_DEVICE_ID_VIA_CX700 0x8324
|
||||
#define PCI_DEVICE_ID_VIA_VX800 0x8353
|
||||
#define PCI_DEVICE_ID_VIA_8371_1 0x8391
|
||||
#define PCI_DEVICE_ID_VIA_82C598_1 0x8598
|
||||
#define PCI_DEVICE_ID_VIA_838X_1 0xB188
|
||||
@@ -2289,6 +2293,8 @@
|
||||
#define PCI_DEVICE_ID_INTEL_MCH_PC 0x3599
|
||||
#define PCI_DEVICE_ID_INTEL_MCH_PC1 0x359a
|
||||
#define PCI_DEVICE_ID_INTEL_E7525_MCH 0x359e
|
||||
#define PCI_DEVICE_ID_INTEL_TOLAPAI_0 0x5031
|
||||
#define PCI_DEVICE_ID_INTEL_TOLAPAI_1 0x5032
|
||||
#define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000
|
||||
#define PCI_DEVICE_ID_INTEL_82371SB_1 0x7010
|
||||
#define PCI_DEVICE_ID_INTEL_82371SB_2 0x7020
|
||||
|
@@ -226,7 +226,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) && defined(CONFIG_PPC32)
|
||||
#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
|
||||
extern int pmu_sys_suspended;
|
||||
#else
|
||||
/* if power management is not configured it can't be suspended */
|
||||
|
@@ -21,6 +21,8 @@
|
||||
#define WQUEUES_STACK_ALLOC (MAX_STACK_ALLOC - FRONTEND_STACK_ALLOC)
|
||||
#define N_INLINE_POLL_ENTRIES (WQUEUES_STACK_ALLOC / sizeof(struct poll_table_entry))
|
||||
|
||||
#define DEFAULT_POLLMASK (POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM)
|
||||
|
||||
struct poll_table_struct;
|
||||
|
||||
/*
|
||||
|
@@ -351,6 +351,8 @@ enum
|
||||
#define RTAX_INITCWND RTAX_INITCWND
|
||||
RTAX_FEATURES,
|
||||
#define RTAX_FEATURES RTAX_FEATURES
|
||||
RTAX_RTO_MIN,
|
||||
#define RTAX_RTO_MIN RTAX_RTO_MIN
|
||||
__RTAX_MAX
|
||||
};
|
||||
|
||||
|
@@ -113,7 +113,7 @@ extern unsigned long avenrun[]; /* Load averages */
|
||||
|
||||
#define FSHIFT 11 /* nr of bits of precision */
|
||||
#define FIXED_1 (1<<FSHIFT) /* 1.0 as fixed-point */
|
||||
#define LOAD_FREQ (5*HZ) /* 5 sec intervals */
|
||||
#define LOAD_FREQ (5*HZ+1) /* 5 sec intervals */
|
||||
#define EXP_1 1884 /* 1/exp(5sec/1min) as fixed-point */
|
||||
#define EXP_5 2014 /* 1/exp(5sec/5min) */
|
||||
#define EXP_15 2037 /* 1/exp(5sec/15min) */
|
||||
@@ -438,7 +438,7 @@ struct sighand_struct {
|
||||
atomic_t count;
|
||||
struct k_sigaction action[_NSIG];
|
||||
spinlock_t siglock;
|
||||
struct list_head signalfd_list;
|
||||
wait_queue_head_t signalfd_wqh;
|
||||
};
|
||||
|
||||
struct pacct_struct {
|
||||
@@ -593,7 +593,7 @@ struct user_struct {
|
||||
#endif
|
||||
|
||||
/* Hash table maintenance information */
|
||||
struct list_head uidhash_list;
|
||||
struct hlist_node uidhash_node;
|
||||
uid_t uid;
|
||||
};
|
||||
|
||||
@@ -681,7 +681,7 @@ enum cpu_idle_type {
|
||||
#define SCHED_LOAD_SHIFT 10
|
||||
#define SCHED_LOAD_SCALE (1L << SCHED_LOAD_SHIFT)
|
||||
|
||||
#define SCHED_LOAD_SCALE_FUZZ (SCHED_LOAD_SCALE >> 1)
|
||||
#define SCHED_LOAD_SCALE_FUZZ SCHED_LOAD_SCALE
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
#define SD_LOAD_BALANCE 1 /* Do load balancing on this domain. */
|
||||
@@ -904,6 +904,7 @@ struct sched_entity {
|
||||
|
||||
u64 exec_start;
|
||||
u64 sum_exec_runtime;
|
||||
u64 prev_sum_exec_runtime;
|
||||
u64 wait_start_fair;
|
||||
u64 sleep_start_fair;
|
||||
|
||||
@@ -1388,7 +1389,8 @@ extern void sched_exec(void);
|
||||
#define sched_exec() {}
|
||||
#endif
|
||||
|
||||
extern void sched_clock_unstable_event(void);
|
||||
extern void sched_clock_idle_sleep_event(void);
|
||||
extern void sched_clock_idle_wakeup_event(u64 delta_ns);
|
||||
|
||||
#ifdef CONFIG_HOTPLUG_CPU
|
||||
extern void idle_task_exit(void);
|
||||
@@ -1398,11 +1400,13 @@ static inline void idle_task_exit(void) {}
|
||||
|
||||
extern void sched_idle_next(void);
|
||||
|
||||
extern unsigned int sysctl_sched_granularity;
|
||||
extern unsigned int sysctl_sched_latency;
|
||||
extern unsigned int sysctl_sched_min_granularity;
|
||||
extern unsigned int sysctl_sched_wakeup_granularity;
|
||||
extern unsigned int sysctl_sched_batch_wakeup_granularity;
|
||||
extern unsigned int sysctl_sched_stat_granularity;
|
||||
extern unsigned int sysctl_sched_runtime_limit;
|
||||
extern unsigned int sysctl_sched_compat_yield;
|
||||
extern unsigned int sysctl_sched_child_runs_first;
|
||||
extern unsigned int sysctl_sched_features;
|
||||
|
||||
@@ -1469,6 +1473,7 @@ static inline struct user_struct *get_uid(struct user_struct *u)
|
||||
}
|
||||
extern void free_uid(struct user_struct *);
|
||||
extern void switch_uid(struct user_struct *);
|
||||
extern void release_uids(struct user_namespace *ns);
|
||||
|
||||
#include <asm/current.h>
|
||||
|
||||
|
@@ -45,49 +45,17 @@ struct signalfd_siginfo {
|
||||
#ifdef CONFIG_SIGNALFD
|
||||
|
||||
/*
|
||||
* Deliver the signal to listening signalfd. This must be called
|
||||
* with the sighand lock held. Same are the following that end up
|
||||
* calling signalfd_deliver().
|
||||
*/
|
||||
void signalfd_deliver(struct task_struct *tsk, int sig);
|
||||
|
||||
/*
|
||||
* No need to fall inside signalfd_deliver() if no signal listeners
|
||||
* are available.
|
||||
* Deliver the signal to listening signalfd.
|
||||
*/
|
||||
static inline void signalfd_notify(struct task_struct *tsk, int sig)
|
||||
{
|
||||
if (unlikely(!list_empty(&tsk->sighand->signalfd_list)))
|
||||
signalfd_deliver(tsk, sig);
|
||||
}
|
||||
|
||||
/*
|
||||
* The signal -1 is used to notify the signalfd that the sighand
|
||||
* is on its way to be detached.
|
||||
*/
|
||||
static inline void signalfd_detach_locked(struct task_struct *tsk)
|
||||
{
|
||||
if (unlikely(!list_empty(&tsk->sighand->signalfd_list)))
|
||||
signalfd_deliver(tsk, -1);
|
||||
}
|
||||
|
||||
static inline void signalfd_detach(struct task_struct *tsk)
|
||||
{
|
||||
struct sighand_struct *sighand = tsk->sighand;
|
||||
|
||||
if (unlikely(!list_empty(&sighand->signalfd_list))) {
|
||||
spin_lock_irq(&sighand->siglock);
|
||||
signalfd_deliver(tsk, -1);
|
||||
spin_unlock_irq(&sighand->siglock);
|
||||
}
|
||||
if (unlikely(waitqueue_active(&tsk->sighand->signalfd_wqh)))
|
||||
wake_up(&tsk->sighand->signalfd_wqh);
|
||||
}
|
||||
|
||||
#else /* CONFIG_SIGNALFD */
|
||||
|
||||
#define signalfd_deliver(t, s) do { } while (0)
|
||||
#define signalfd_notify(t, s) do { } while (0)
|
||||
#define signalfd_detach_locked(t) do { } while (0)
|
||||
#define signalfd_detach(t) do { } while (0)
|
||||
static inline void signalfd_notify(struct task_struct *tsk, int sig) { }
|
||||
|
||||
#endif /* CONFIG_SIGNALFD */
|
||||
|
||||
|
@@ -1352,6 +1352,22 @@ static inline int skb_clone_writable(struct sk_buff *skb, int len)
|
||||
skb_headroom(skb) + len <= skb->hdr_len;
|
||||
}
|
||||
|
||||
static inline int __skb_cow(struct sk_buff *skb, unsigned int headroom,
|
||||
int cloned)
|
||||
{
|
||||
int delta = 0;
|
||||
|
||||
if (headroom < NET_SKB_PAD)
|
||||
headroom = NET_SKB_PAD;
|
||||
if (headroom > skb_headroom(skb))
|
||||
delta = headroom - skb_headroom(skb);
|
||||
|
||||
if (delta || cloned)
|
||||
return pskb_expand_head(skb, ALIGN(delta, NET_SKB_PAD), 0,
|
||||
GFP_ATOMIC);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* skb_cow - copy header of skb when it is required
|
||||
* @skb: buffer to cow
|
||||
@@ -1366,16 +1382,22 @@ static inline int skb_clone_writable(struct sk_buff *skb, int len)
|
||||
*/
|
||||
static inline int skb_cow(struct sk_buff *skb, unsigned int headroom)
|
||||
{
|
||||
int delta = (headroom > NET_SKB_PAD ? headroom : NET_SKB_PAD) -
|
||||
skb_headroom(skb);
|
||||
return __skb_cow(skb, headroom, skb_cloned(skb));
|
||||
}
|
||||
|
||||
if (delta < 0)
|
||||
delta = 0;
|
||||
|
||||
if (delta || skb_cloned(skb))
|
||||
return pskb_expand_head(skb, (delta + (NET_SKB_PAD-1)) &
|
||||
~(NET_SKB_PAD-1), 0, GFP_ATOMIC);
|
||||
return 0;
|
||||
/**
|
||||
* skb_cow_head - skb_cow but only making the head writable
|
||||
* @skb: buffer to cow
|
||||
* @headroom: needed headroom
|
||||
*
|
||||
* This function is identical to skb_cow except that we replace the
|
||||
* skb_cloned check by skb_header_cloned. It should be used when
|
||||
* you only need to push on some header and do not need to modify
|
||||
* the data.
|
||||
*/
|
||||
static inline int skb_cow_head(struct sk_buff *skb, unsigned int headroom)
|
||||
{
|
||||
return __skb_cow(skb, headroom, skb_header_cloned(skb));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -78,7 +78,7 @@ extern struct kmem_cache kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
|
||||
* Sorry that the following has to be that ugly but some versions of GCC
|
||||
* have trouble with constant propagation and loops.
|
||||
*/
|
||||
static inline int kmalloc_index(size_t size)
|
||||
static __always_inline int kmalloc_index(size_t size)
|
||||
{
|
||||
if (!size)
|
||||
return 0;
|
||||
@@ -133,7 +133,7 @@ static inline int kmalloc_index(size_t size)
|
||||
* This ought to end up with a global pointer to the right cache
|
||||
* in kmalloc_caches.
|
||||
*/
|
||||
static inline struct kmem_cache *kmalloc_slab(size_t size)
|
||||
static __always_inline struct kmem_cache *kmalloc_slab(size_t size)
|
||||
{
|
||||
int index = kmalloc_index(size);
|
||||
|
||||
@@ -166,7 +166,7 @@ static inline struct kmem_cache *kmalloc_slab(size_t size)
|
||||
void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
|
||||
void *__kmalloc(size_t size, gfp_t flags);
|
||||
|
||||
static inline void *kmalloc(size_t size, gfp_t flags)
|
||||
static __always_inline void *kmalloc(size_t size, gfp_t flags)
|
||||
{
|
||||
if (__builtin_constant_p(size) && !(flags & SLUB_DMA)) {
|
||||
struct kmem_cache *s = kmalloc_slab(size);
|
||||
@@ -183,7 +183,7 @@ static inline void *kmalloc(size_t size, gfp_t flags)
|
||||
void *__kmalloc_node(size_t size, gfp_t flags, int node);
|
||||
void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
|
||||
|
||||
static inline void *kmalloc_node(size_t size, gfp_t flags, int node)
|
||||
static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
|
||||
{
|
||||
if (__builtin_constant_p(size) && !(flags & SLUB_DMA)) {
|
||||
struct kmem_cache *s = kmalloc_slab(size);
|
||||
|
@@ -11,7 +11,7 @@
|
||||
|
||||
struct user_namespace {
|
||||
struct kref kref;
|
||||
struct list_head uidhash_table[UIDHASH_SZ];
|
||||
struct hlist_head uidhash_table[UIDHASH_SZ];
|
||||
struct user_struct *root_user;
|
||||
};
|
||||
|
||||
|
@@ -127,7 +127,7 @@ int sync_page_range(struct inode *inode, struct address_space *mapping,
|
||||
loff_t pos, loff_t count);
|
||||
int sync_page_range_nolock(struct inode *inode, struct address_space *mapping,
|
||||
loff_t pos, loff_t count);
|
||||
void set_page_dirty_balance(struct page *page);
|
||||
void set_page_dirty_balance(struct page *page, int page_mkwrite);
|
||||
void writeback_set_ratelimit(void);
|
||||
|
||||
/* pdflush.c */
|
||||
|
Reference in New Issue
Block a user