diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/agp_backend.h | 1 | ||||
| -rw-r--r-- | include/linux/backing-dev.h | 6 | ||||
| -rw-r--r-- | include/linux/cgroup.h | 20 | ||||
| -rw-r--r-- | include/linux/compiler-gcc.h | 10 | ||||
| -rw-r--r-- | include/linux/compiler-gcc4.h | 4 | ||||
| -rw-r--r-- | include/linux/drbd.h | 2 | ||||
| -rw-r--r-- | include/linux/dynamic_debug.h | 4 | ||||
| -rw-r--r-- | include/linux/ethtool.h | 2 | ||||
| -rw-r--r-- | include/linux/fb.h | 4 | ||||
| -rw-r--r-- | include/linux/fs.h | 13 | ||||
| -rw-r--r-- | include/linux/list.h | 15 | ||||
| -rw-r--r-- | include/linux/lmb.h | 89 | ||||
| -rw-r--r-- | include/linux/memblock.h | 89 | ||||
| -rw-r--r-- | include/linux/mv643xx_eth.h | 5 | ||||
| -rw-r--r-- | include/linux/net.h | 3 | ||||
| -rw-r--r-- | include/linux/netdevice.h | 5 | ||||
| -rw-r--r-- | include/linux/pci_ids.h | 1 | ||||
| -rw-r--r-- | include/linux/rbtree.h | 13 | ||||
| -rw-r--r-- | include/linux/sched.h | 2 | ||||
| -rw-r--r-- | include/linux/suspend.h | 26 | ||||
| -rw-r--r-- | include/linux/tracepoint.h | 1 | ||||
| -rw-r--r-- | include/linux/writeback.h | 7 |
22 files changed, 190 insertions, 132 deletions
diff --git a/include/linux/agp_backend.h b/include/linux/agp_backend.h index 9101ed64f803..09ea4a1e9505 100644 --- a/include/linux/agp_backend.h +++ b/include/linux/agp_backend.h | |||
| @@ -79,7 +79,6 @@ struct agp_memory { | |||
| 79 | u32 physical; | 79 | u32 physical; |
| 80 | bool is_bound; | 80 | bool is_bound; |
| 81 | bool is_flushed; | 81 | bool is_flushed; |
| 82 | bool vmalloc_flag; | ||
| 83 | /* list of agp_memory mapped to the aperture */ | 82 | /* list of agp_memory mapped to the aperture */ |
| 84 | struct list_head mapped_list; | 83 | struct list_head mapped_list; |
| 85 | /* DMA-mapped addresses */ | 84 | /* DMA-mapped addresses */ |
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index aee5f6ce166e..e9aec0d099df 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h | |||
| @@ -82,8 +82,6 @@ struct backing_dev_info { | |||
| 82 | struct bdi_writeback wb; /* default writeback info for this bdi */ | 82 | struct bdi_writeback wb; /* default writeback info for this bdi */ |
| 83 | spinlock_t wb_lock; /* protects update side of wb_list */ | 83 | spinlock_t wb_lock; /* protects update side of wb_list */ |
| 84 | struct list_head wb_list; /* the flusher threads hanging off this bdi */ | 84 | struct list_head wb_list; /* the flusher threads hanging off this bdi */ |
| 85 | unsigned long wb_mask; /* bitmask of registered tasks */ | ||
| 86 | unsigned int wb_cnt; /* number of registered tasks */ | ||
| 87 | 85 | ||
| 88 | struct list_head work_list; | 86 | struct list_head work_list; |
| 89 | 87 | ||
| @@ -105,8 +103,8 @@ int bdi_register(struct backing_dev_info *bdi, struct device *parent, | |||
| 105 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); | 103 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); |
| 106 | void bdi_unregister(struct backing_dev_info *bdi); | 104 | void bdi_unregister(struct backing_dev_info *bdi); |
| 107 | int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int); | 105 | int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int); |
| 108 | void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb, | 106 | void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages); |
| 109 | long nr_pages); | 107 | void bdi_start_background_writeback(struct backing_dev_info *bdi); |
| 110 | int bdi_writeback_task(struct bdi_writeback *wb); | 108 | int bdi_writeback_task(struct bdi_writeback *wb); |
| 111 | int bdi_has_dirty_io(struct backing_dev_info *bdi); | 109 | int bdi_has_dirty_io(struct backing_dev_info *bdi); |
| 112 | void bdi_arm_supers_timer(void); | 110 | void bdi_arm_supers_timer(void); |
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 0c621604baa1..e3d00fdb858d 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
| @@ -525,13 +525,21 @@ static inline struct cgroup_subsys_state *cgroup_subsys_state( | |||
| 525 | return cgrp->subsys[subsys_id]; | 525 | return cgrp->subsys[subsys_id]; |
| 526 | } | 526 | } |
| 527 | 527 | ||
| 528 | static inline struct cgroup_subsys_state *task_subsys_state( | 528 | /* |
| 529 | struct task_struct *task, int subsys_id) | 529 | * function to get the cgroup_subsys_state which allows for extra |
| 530 | * rcu_dereference_check() conditions, such as locks used during the | ||
| 531 | * cgroup_subsys::attach() methods. | ||
| 532 | */ | ||
| 533 | #define task_subsys_state_check(task, subsys_id, __c) \ | ||
| 534 | rcu_dereference_check(task->cgroups->subsys[subsys_id], \ | ||
| 535 | rcu_read_lock_held() || \ | ||
| 536 | lockdep_is_held(&task->alloc_lock) || \ | ||
| 537 | cgroup_lock_is_held() || (__c)) | ||
| 538 | |||
| 539 | static inline struct cgroup_subsys_state * | ||
| 540 | task_subsys_state(struct task_struct *task, int subsys_id) | ||
| 530 | { | 541 | { |
| 531 | return rcu_dereference_check(task->cgroups->subsys[subsys_id], | 542 | return task_subsys_state_check(task, subsys_id, false); |
| 532 | rcu_read_lock_held() || | ||
| 533 | lockdep_is_held(&task->alloc_lock) || | ||
| 534 | cgroup_lock_is_held()); | ||
| 535 | } | 543 | } |
| 536 | 544 | ||
| 537 | static inline struct cgroup* task_cgroup(struct task_struct *task, | 545 | static inline struct cgroup* task_cgroup(struct task_struct *task, |
diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 73dcf804bc94..0da5b187f124 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h | |||
| @@ -58,8 +58,12 @@ | |||
| 58 | * naked functions because then mcount is called without stack and frame pointer | 58 | * naked functions because then mcount is called without stack and frame pointer |
| 59 | * being set up and there is no chance to restore the lr register to the value | 59 | * being set up and there is no chance to restore the lr register to the value |
| 60 | * before mcount was called. | 60 | * before mcount was called. |
| 61 | * | ||
| 62 | * The asm() bodies of naked functions often depend on standard calling conventions, | ||
| 63 | * therefore they must be noinline and noclone. GCC 4.[56] currently fail to enforce | ||
| 64 | * this, so we must do so ourselves. See GCC PR44290. | ||
| 61 | */ | 65 | */ |
| 62 | #define __naked __attribute__((naked)) notrace | 66 | #define __naked __attribute__((naked)) noinline __noclone notrace |
| 63 | 67 | ||
| 64 | #define __noreturn __attribute__((noreturn)) | 68 | #define __noreturn __attribute__((noreturn)) |
| 65 | 69 | ||
| @@ -85,3 +89,7 @@ | |||
| 85 | #define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h) | 89 | #define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h) |
| 86 | #define gcc_header(x) _gcc_header(x) | 90 | #define gcc_header(x) _gcc_header(x) |
| 87 | #include gcc_header(__GNUC__) | 91 | #include gcc_header(__GNUC__) |
| 92 | |||
| 93 | #if !defined(__noclone) | ||
| 94 | #define __noclone /* not needed */ | ||
| 95 | #endif | ||
diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h index 94dea3ffbfa1..fcfa5b9a4317 100644 --- a/include/linux/compiler-gcc4.h +++ b/include/linux/compiler-gcc4.h | |||
| @@ -48,6 +48,10 @@ | |||
| 48 | * unreleased. Really, we need to have autoconf for the kernel. | 48 | * unreleased. Really, we need to have autoconf for the kernel. |
| 49 | */ | 49 | */ |
| 50 | #define unreachable() __builtin_unreachable() | 50 | #define unreachable() __builtin_unreachable() |
| 51 | |||
| 52 | /* Mark a function definition as prohibited from being cloned. */ | ||
| 53 | #define __noclone __attribute__((__noclone__)) | ||
| 54 | |||
| 51 | #endif | 55 | #endif |
| 52 | 56 | ||
| 53 | #endif | 57 | #endif |
diff --git a/include/linux/drbd.h b/include/linux/drbd.h index 30da4ae48972..b8d2516668aa 100644 --- a/include/linux/drbd.h +++ b/include/linux/drbd.h | |||
| @@ -53,7 +53,7 @@ | |||
| 53 | 53 | ||
| 54 | 54 | ||
| 55 | extern const char *drbd_buildtag(void); | 55 | extern const char *drbd_buildtag(void); |
| 56 | #define REL_VERSION "8.3.8rc2" | 56 | #define REL_VERSION "8.3.8" |
| 57 | #define API_VERSION 88 | 57 | #define API_VERSION 88 |
| 58 | #define PRO_VERSION_MIN 86 | 58 | #define PRO_VERSION_MIN 86 |
| 59 | #define PRO_VERSION_MAX 94 | 59 | #define PRO_VERSION_MAX 94 |
diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h index b3cd4de9432b..52c0da4bdd18 100644 --- a/include/linux/dynamic_debug.h +++ b/include/linux/dynamic_debug.h | |||
| @@ -40,7 +40,7 @@ int ddebug_add_module(struct _ddebug *tab, unsigned int n, | |||
| 40 | const char *modname); | 40 | const char *modname); |
| 41 | 41 | ||
| 42 | #if defined(CONFIG_DYNAMIC_DEBUG) | 42 | #if defined(CONFIG_DYNAMIC_DEBUG) |
| 43 | extern int ddebug_remove_module(char *mod_name); | 43 | extern int ddebug_remove_module(const char *mod_name); |
| 44 | 44 | ||
| 45 | #define __dynamic_dbg_enabled(dd) ({ \ | 45 | #define __dynamic_dbg_enabled(dd) ({ \ |
| 46 | int __ret = 0; \ | 46 | int __ret = 0; \ |
| @@ -73,7 +73,7 @@ extern int ddebug_remove_module(char *mod_name); | |||
| 73 | 73 | ||
| 74 | #else | 74 | #else |
| 75 | 75 | ||
| 76 | static inline int ddebug_remove_module(char *mod) | 76 | static inline int ddebug_remove_module(const char *mod) |
| 77 | { | 77 | { |
| 78 | return 0; | 78 | return 0; |
| 79 | } | 79 | } |
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 276b40a16835..b4207ca3ad52 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h | |||
| @@ -379,6 +379,8 @@ struct ethtool_rxnfc { | |||
| 379 | __u32 flow_type; | 379 | __u32 flow_type; |
| 380 | /* The rx flow hash value or the rule DB size */ | 380 | /* The rx flow hash value or the rule DB size */ |
| 381 | __u64 data; | 381 | __u64 data; |
| 382 | /* The following fields are not valid and must not be used for | ||
| 383 | * the ETHTOOL_{G,X}RXFH commands. */ | ||
| 382 | struct ethtool_rx_flow_spec fs; | 384 | struct ethtool_rx_flow_spec fs; |
| 383 | __u32 rule_cnt; | 385 | __u32 rule_cnt; |
| 384 | __u32 rule_locs[0]; | 386 | __u32 rule_locs[0]; |
diff --git a/include/linux/fb.h b/include/linux/fb.h index 907ace3a64c8..8e5a9dfb76bf 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
| @@ -786,8 +786,6 @@ struct fb_tile_ops { | |||
| 786 | #define FBINFO_MISC_USEREVENT 0x10000 /* event request | 786 | #define FBINFO_MISC_USEREVENT 0x10000 /* event request |
| 787 | from userspace */ | 787 | from userspace */ |
| 788 | #define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */ | 788 | #define FBINFO_MISC_TILEBLITTING 0x20000 /* use tile blitting */ |
| 789 | #define FBINFO_MISC_FIRMWARE 0x40000 /* a replaceable firmware | ||
| 790 | inited framebuffer */ | ||
| 791 | 789 | ||
| 792 | /* A driver may set this flag to indicate that it does want a set_par to be | 790 | /* A driver may set this flag to indicate that it does want a set_par to be |
| 793 | * called every time when fbcon_switch is executed. The advantage is that with | 791 | * called every time when fbcon_switch is executed. The advantage is that with |
| @@ -801,6 +799,8 @@ struct fb_tile_ops { | |||
| 801 | */ | 799 | */ |
| 802 | #define FBINFO_MISC_ALWAYS_SETPAR 0x40000 | 800 | #define FBINFO_MISC_ALWAYS_SETPAR 0x40000 |
| 803 | 801 | ||
| 802 | /* where the fb is a firmware driver, and can be replaced with a proper one */ | ||
| 803 | #define FBINFO_MISC_FIRMWARE 0x80000 | ||
| 804 | /* | 804 | /* |
| 805 | * Host and GPU endianness differ. | 805 | * Host and GPU endianness differ. |
| 806 | */ | 806 | */ |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 471e1ff5079a..68ca1b0491af 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
| @@ -1783,6 +1783,19 @@ extern int get_sb_pseudo(struct file_system_type *, char *, | |||
| 1783 | struct vfsmount *mnt); | 1783 | struct vfsmount *mnt); |
| 1784 | extern void simple_set_mnt(struct vfsmount *mnt, struct super_block *sb); | 1784 | extern void simple_set_mnt(struct vfsmount *mnt, struct super_block *sb); |
| 1785 | 1785 | ||
| 1786 | static inline void sb_mark_dirty(struct super_block *sb) | ||
| 1787 | { | ||
| 1788 | sb->s_dirt = 1; | ||
| 1789 | } | ||
| 1790 | static inline void sb_mark_clean(struct super_block *sb) | ||
| 1791 | { | ||
| 1792 | sb->s_dirt = 0; | ||
| 1793 | } | ||
| 1794 | static inline int sb_is_dirty(struct super_block *sb) | ||
| 1795 | { | ||
| 1796 | return sb->s_dirt; | ||
| 1797 | } | ||
| 1798 | |||
| 1786 | /* Alas, no aliases. Too much hassle with bringing module.h everywhere */ | 1799 | /* Alas, no aliases. Too much hassle with bringing module.h everywhere */ |
| 1787 | #define fops_get(fops) \ | 1800 | #define fops_get(fops) \ |
| 1788 | (((fops) && try_module_get((fops)->owner) ? (fops) : NULL)) | 1801 | (((fops) && try_module_get((fops)->owner) ? (fops) : NULL)) |
diff --git a/include/linux/list.h b/include/linux/list.h index 8392884a2977..5d57a3a1fa1b 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
| @@ -544,6 +544,21 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
| 544 | &pos->member != (head); \ | 544 | &pos->member != (head); \ |
| 545 | pos = n, n = list_entry(n->member.prev, typeof(*n), member)) | 545 | pos = n, n = list_entry(n->member.prev, typeof(*n), member)) |
| 546 | 546 | ||
| 547 | /** | ||
| 548 | * list_safe_reset_next - reset a stale list_for_each_entry_safe loop | ||
| 549 | * @pos: the loop cursor used in the list_for_each_entry_safe loop | ||
| 550 | * @n: temporary storage used in list_for_each_entry_safe | ||
| 551 | * @member: the name of the list_struct within the struct. | ||
| 552 | * | ||
| 553 | * list_safe_reset_next is not safe to use in general if the list may be | ||
| 554 | * modified concurrently (eg. the lock is dropped in the loop body). An | ||
| 555 | * exception to this is if the cursor element (pos) is pinned in the list, | ||
| 556 | * and list_safe_reset_next is called after re-taking the lock and before | ||
| 557 | * completing the current iteration of the loop body. | ||
| 558 | */ | ||
| 559 | #define list_safe_reset_next(pos, n, member) \ | ||
| 560 | n = list_entry(pos->member.next, typeof(*pos), member) | ||
| 561 | |||
| 547 | /* | 562 | /* |
| 548 | * Double linked lists with a single pointer list head. | 563 | * Double linked lists with a single pointer list head. |
| 549 | * Mostly useful for hash tables where the two pointer list head is | 564 | * Mostly useful for hash tables where the two pointer list head is |
diff --git a/include/linux/lmb.h b/include/linux/lmb.h deleted file mode 100644 index f3d14333ebed..000000000000 --- a/include/linux/lmb.h +++ /dev/null | |||
| @@ -1,89 +0,0 @@ | |||
| 1 | #ifndef _LINUX_LMB_H | ||
| 2 | #define _LINUX_LMB_H | ||
| 3 | #ifdef __KERNEL__ | ||
| 4 | |||
| 5 | /* | ||
| 6 | * Logical memory blocks. | ||
| 7 | * | ||
| 8 | * Copyright (C) 2001 Peter Bergner, IBM Corp. | ||
| 9 | * | ||
| 10 | * This program is free software; you can redistribute it and/or | ||
| 11 | * modify it under the terms of the GNU General Public License | ||
| 12 | * as published by the Free Software Foundation; either version | ||
| 13 | * 2 of the License, or (at your option) any later version. | ||
| 14 | */ | ||
| 15 | |||
| 16 | #include <linux/init.h> | ||
| 17 | #include <linux/mm.h> | ||
| 18 | |||
| 19 | #define MAX_LMB_REGIONS 128 | ||
| 20 | |||
| 21 | struct lmb_property { | ||
| 22 | u64 base; | ||
| 23 | u64 size; | ||
| 24 | }; | ||
| 25 | |||
| 26 | struct lmb_region { | ||
| 27 | unsigned long cnt; | ||
| 28 | u64 size; | ||
| 29 | struct lmb_property region[MAX_LMB_REGIONS+1]; | ||
| 30 | }; | ||
| 31 | |||
| 32 | struct lmb { | ||
| 33 | unsigned long debug; | ||
| 34 | u64 rmo_size; | ||
| 35 | struct lmb_region memory; | ||
| 36 | struct lmb_region reserved; | ||
| 37 | }; | ||
| 38 | |||
| 39 | extern struct lmb lmb; | ||
| 40 | |||
| 41 | extern void __init lmb_init(void); | ||
| 42 | extern void __init lmb_analyze(void); | ||
| 43 | extern long lmb_add(u64 base, u64 size); | ||
| 44 | extern long lmb_remove(u64 base, u64 size); | ||
| 45 | extern long __init lmb_free(u64 base, u64 size); | ||
| 46 | extern long __init lmb_reserve(u64 base, u64 size); | ||
| 47 | extern u64 __init lmb_alloc_nid(u64 size, u64 align, int nid, | ||
| 48 | u64 (*nid_range)(u64, u64, int *)); | ||
| 49 | extern u64 __init lmb_alloc(u64 size, u64 align); | ||
| 50 | extern u64 __init lmb_alloc_base(u64 size, | ||
| 51 | u64, u64 max_addr); | ||
| 52 | extern u64 __init __lmb_alloc_base(u64 size, | ||
| 53 | u64 align, u64 max_addr); | ||
| 54 | extern u64 __init lmb_phys_mem_size(void); | ||
| 55 | extern u64 lmb_end_of_DRAM(void); | ||
| 56 | extern void __init lmb_enforce_memory_limit(u64 memory_limit); | ||
| 57 | extern int __init lmb_is_reserved(u64 addr); | ||
| 58 | extern int lmb_is_region_reserved(u64 base, u64 size); | ||
| 59 | extern int lmb_find(struct lmb_property *res); | ||
| 60 | |||
| 61 | extern void lmb_dump_all(void); | ||
| 62 | |||
| 63 | static inline u64 | ||
| 64 | lmb_size_bytes(struct lmb_region *type, unsigned long region_nr) | ||
| 65 | { | ||
| 66 | return type->region[region_nr].size; | ||
| 67 | } | ||
| 68 | static inline u64 | ||
| 69 | lmb_size_pages(struct lmb_region *type, unsigned long region_nr) | ||
| 70 | { | ||
| 71 | return lmb_size_bytes(type, region_nr) >> PAGE_SHIFT; | ||
| 72 | } | ||
| 73 | static inline u64 | ||
| 74 | lmb_start_pfn(struct lmb_region *type, unsigned long region_nr) | ||
| 75 | { | ||
| 76 | return type->region[region_nr].base >> PAGE_SHIFT; | ||
| 77 | } | ||
| 78 | static inline u64 | ||
| 79 | lmb_end_pfn(struct lmb_region *type, unsigned long region_nr) | ||
| 80 | { | ||
| 81 | return lmb_start_pfn(type, region_nr) + | ||
| 82 | lmb_size_pages(type, region_nr); | ||
| 83 | } | ||
| 84 | |||
| 85 | #include <asm/lmb.h> | ||
| 86 | |||
| 87 | #endif /* __KERNEL__ */ | ||
| 88 | |||
| 89 | #endif /* _LINUX_LMB_H */ | ||
diff --git a/include/linux/memblock.h b/include/linux/memblock.h new file mode 100644 index 000000000000..a59faf2b5edd --- /dev/null +++ b/include/linux/memblock.h | |||
| @@ -0,0 +1,89 @@ | |||
| 1 | #ifndef _LINUX_MEMBLOCK_H | ||
| 2 | #define _LINUX_MEMBLOCK_H | ||
| 3 | #ifdef __KERNEL__ | ||
| 4 | |||
| 5 | /* | ||
| 6 | * Logical memory blocks. | ||
| 7 | * | ||
| 8 | * Copyright (C) 2001 Peter Bergner, IBM Corp. | ||
| 9 | * | ||
| 10 | * This program is free software; you can redistribute it and/or | ||
| 11 | * modify it under the terms of the GNU General Public License | ||
| 12 | * as published by the Free Software Foundation; either version | ||
| 13 | * 2 of the License, or (at your option) any later version. | ||
| 14 | */ | ||
| 15 | |||
| 16 | #include <linux/init.h> | ||
| 17 | #include <linux/mm.h> | ||
| 18 | |||
| 19 | #define MAX_MEMBLOCK_REGIONS 128 | ||
| 20 | |||
| 21 | struct memblock_property { | ||
| 22 | u64 base; | ||
| 23 | u64 size; | ||
| 24 | }; | ||
| 25 | |||
| 26 | struct memblock_region { | ||
| 27 | unsigned long cnt; | ||
| 28 | u64 size; | ||
| 29 | struct memblock_property region[MAX_MEMBLOCK_REGIONS+1]; | ||
| 30 | }; | ||
| 31 | |||
| 32 | struct memblock { | ||
| 33 | unsigned long debug; | ||
| 34 | u64 rmo_size; | ||
| 35 | struct memblock_region memory; | ||
| 36 | struct memblock_region reserved; | ||
| 37 | }; | ||
| 38 | |||
| 39 | extern struct memblock memblock; | ||
| 40 | |||
| 41 | extern void __init memblock_init(void); | ||
| 42 | extern void __init memblock_analyze(void); | ||
| 43 | extern long memblock_add(u64 base, u64 size); | ||
| 44 | extern long memblock_remove(u64 base, u64 size); | ||
| 45 | extern long __init memblock_free(u64 base, u64 size); | ||
| 46 | extern long __init memblock_reserve(u64 base, u64 size); | ||
| 47 | extern u64 __init memblock_alloc_nid(u64 size, u64 align, int nid, | ||
| 48 | u64 (*nid_range)(u64, u64, int *)); | ||
| 49 | extern u64 __init memblock_alloc(u64 size, u64 align); | ||
| 50 | extern u64 __init memblock_alloc_base(u64 size, | ||
| 51 | u64, u64 max_addr); | ||
| 52 | extern u64 __init __memblock_alloc_base(u64 size, | ||
| 53 | u64 align, u64 max_addr); | ||
| 54 | extern u64 __init memblock_phys_mem_size(void); | ||
| 55 | extern u64 memblock_end_of_DRAM(void); | ||
| 56 | extern void __init memblock_enforce_memory_limit(u64 memory_limit); | ||
| 57 | extern int __init memblock_is_reserved(u64 addr); | ||
| 58 | extern int memblock_is_region_reserved(u64 base, u64 size); | ||
| 59 | extern int memblock_find(struct memblock_property *res); | ||
| 60 | |||
| 61 | extern void memblock_dump_all(void); | ||
| 62 | |||
| 63 | static inline u64 | ||
| 64 | memblock_size_bytes(struct memblock_region *type, unsigned long region_nr) | ||
| 65 | { | ||
| 66 | return type->region[region_nr].size; | ||
| 67 | } | ||
| 68 | static inline u64 | ||
| 69 | memblock_size_pages(struct memblock_region *type, unsigned long region_nr) | ||
| 70 | { | ||
| 71 | return memblock_size_bytes(type, region_nr) >> PAGE_SHIFT; | ||
| 72 | } | ||
| 73 | static inline u64 | ||
| 74 | memblock_start_pfn(struct memblock_region *type, unsigned long region_nr) | ||
| 75 | { | ||
| 76 | return type->region[region_nr].base >> PAGE_SHIFT; | ||
| 77 | } | ||
| 78 | static inline u64 | ||
| 79 | memblock_end_pfn(struct memblock_region *type, unsigned long region_nr) | ||
| 80 | { | ||
| 81 | return memblock_start_pfn(type, region_nr) + | ||
| 82 | memblock_size_pages(type, region_nr); | ||
| 83 | } | ||
| 84 | |||
| 85 | #include <asm/memblock.h> | ||
| 86 | |||
| 87 | #endif /* __KERNEL__ */ | ||
| 88 | |||
| 89 | #endif /* _LINUX_MEMBLOCK_H */ | ||
diff --git a/include/linux/mv643xx_eth.h b/include/linux/mv643xx_eth.h index cbbbe9bfecad..30b0c4e78f91 100644 --- a/include/linux/mv643xx_eth.h +++ b/include/linux/mv643xx_eth.h | |||
| @@ -19,6 +19,11 @@ struct mv643xx_eth_shared_platform_data { | |||
| 19 | struct mbus_dram_target_info *dram; | 19 | struct mbus_dram_target_info *dram; |
| 20 | struct platform_device *shared_smi; | 20 | struct platform_device *shared_smi; |
| 21 | unsigned int t_clk; | 21 | unsigned int t_clk; |
| 22 | /* | ||
| 23 | * Max packet size for Tx IP/Layer 4 checksum, when set to 0, default | ||
| 24 | * limit of 9KiB will be used. | ||
| 25 | */ | ||
| 26 | int tx_csum_limit; | ||
| 22 | }; | 27 | }; |
| 23 | 28 | ||
| 24 | #define MV643XX_ETH_PHY_ADDR_DEFAULT 0 | 29 | #define MV643XX_ETH_PHY_ADDR_DEFAULT 0 |
diff --git a/include/linux/net.h b/include/linux/net.h index 2b4deeeb8646..dee0b11a8759 100644 --- a/include/linux/net.h +++ b/include/linux/net.h | |||
| @@ -129,10 +129,9 @@ struct socket_wq { | |||
| 129 | * @type: socket type (%SOCK_STREAM, etc) | 129 | * @type: socket type (%SOCK_STREAM, etc) |
| 130 | * @flags: socket flags (%SOCK_ASYNC_NOSPACE, etc) | 130 | * @flags: socket flags (%SOCK_ASYNC_NOSPACE, etc) |
| 131 | * @ops: protocol specific socket operations | 131 | * @ops: protocol specific socket operations |
| 132 | * @fasync_list: Asynchronous wake up list | ||
| 133 | * @file: File back pointer for gc | 132 | * @file: File back pointer for gc |
| 134 | * @sk: internal networking protocol agnostic socket representation | 133 | * @sk: internal networking protocol agnostic socket representation |
| 135 | * @wait: wait queue for several uses | 134 | * @wq: wait queue for several uses |
| 136 | */ | 135 | */ |
| 137 | struct socket { | 136 | struct socket { |
| 138 | socket_state state; | 137 | socket_state state; |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 40291f375024..b21e4054c12c 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
| @@ -1656,6 +1656,9 @@ static inline int netif_is_multiqueue(const struct net_device *dev) | |||
| 1656 | return (dev->num_tx_queues > 1); | 1656 | return (dev->num_tx_queues > 1); |
| 1657 | } | 1657 | } |
| 1658 | 1658 | ||
| 1659 | extern void netif_set_real_num_tx_queues(struct net_device *dev, | ||
| 1660 | unsigned int txq); | ||
| 1661 | |||
| 1659 | /* Use this variant when it is known for sure that it | 1662 | /* Use this variant when it is known for sure that it |
| 1660 | * is executing from hardware interrupt context or with hardware interrupts | 1663 | * is executing from hardware interrupt context or with hardware interrupts |
| 1661 | * disabled. | 1664 | * disabled. |
| @@ -2329,7 +2332,7 @@ do { \ | |||
| 2329 | #endif | 2332 | #endif |
| 2330 | 2333 | ||
| 2331 | #if defined(VERBOSE_DEBUG) | 2334 | #if defined(VERBOSE_DEBUG) |
| 2332 | #define netif_vdbg netdev_dbg | 2335 | #define netif_vdbg netif_dbg |
| 2333 | #else | 2336 | #else |
| 2334 | #define netif_vdbg(priv, type, dev, format, args...) \ | 2337 | #define netif_vdbg(priv, type, dev, format, args...) \ |
| 2335 | ({ \ | 2338 | ({ \ |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 4eb467910a45..3bedcc149c84 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
| @@ -1261,6 +1261,7 @@ | |||
| 1261 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759 | 1261 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP77_IDE 0x0759 |
| 1262 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8 | 1262 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP73_SMBUS 0x07D8 |
| 1263 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2 | 1263 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP79_SMBUS 0x0AA2 |
| 1264 | #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP89_SATA 0x0D85 | ||
| 1264 | 1265 | ||
| 1265 | #define PCI_VENDOR_ID_IMS 0x10e0 | 1266 | #define PCI_VENDOR_ID_IMS 0x10e0 |
| 1266 | #define PCI_DEVICE_ID_IMS_TT128 0x9128 | 1267 | #define PCI_DEVICE_ID_IMS_TT128 0x9128 |
diff --git a/include/linux/rbtree.h b/include/linux/rbtree.h index fe1872e5b37e..7066acb2c530 100644 --- a/include/linux/rbtree.h +++ b/include/linux/rbtree.h | |||
| @@ -110,7 +110,6 @@ struct rb_node | |||
| 110 | struct rb_root | 110 | struct rb_root |
| 111 | { | 111 | { |
| 112 | struct rb_node *rb_node; | 112 | struct rb_node *rb_node; |
| 113 | void (*augment_cb)(struct rb_node *node); | ||
| 114 | }; | 113 | }; |
| 115 | 114 | ||
| 116 | 115 | ||
| @@ -130,9 +129,7 @@ static inline void rb_set_color(struct rb_node *rb, int color) | |||
| 130 | rb->rb_parent_color = (rb->rb_parent_color & ~1) | color; | 129 | rb->rb_parent_color = (rb->rb_parent_color & ~1) | color; |
| 131 | } | 130 | } |
| 132 | 131 | ||
| 133 | #define RB_ROOT (struct rb_root) { NULL, NULL, } | 132 | #define RB_ROOT (struct rb_root) { NULL, } |
| 134 | #define RB_AUGMENT_ROOT(x) (struct rb_root) { NULL, x} | ||
| 135 | |||
| 136 | #define rb_entry(ptr, type, member) container_of(ptr, type, member) | 133 | #define rb_entry(ptr, type, member) container_of(ptr, type, member) |
| 137 | 134 | ||
| 138 | #define RB_EMPTY_ROOT(root) ((root)->rb_node == NULL) | 135 | #define RB_EMPTY_ROOT(root) ((root)->rb_node == NULL) |
| @@ -142,6 +139,14 @@ static inline void rb_set_color(struct rb_node *rb, int color) | |||
| 142 | extern void rb_insert_color(struct rb_node *, struct rb_root *); | 139 | extern void rb_insert_color(struct rb_node *, struct rb_root *); |
| 143 | extern void rb_erase(struct rb_node *, struct rb_root *); | 140 | extern void rb_erase(struct rb_node *, struct rb_root *); |
| 144 | 141 | ||
| 142 | typedef void (*rb_augment_f)(struct rb_node *node, void *data); | ||
| 143 | |||
| 144 | extern void rb_augment_insert(struct rb_node *node, | ||
| 145 | rb_augment_f func, void *data); | ||
| 146 | extern struct rb_node *rb_augment_erase_begin(struct rb_node *node); | ||
| 147 | extern void rb_augment_erase_end(struct rb_node *node, | ||
| 148 | rb_augment_f func, void *data); | ||
| 149 | |||
| 145 | /* Find logical next and previous nodes in a tree */ | 150 | /* Find logical next and previous nodes in a tree */ |
| 146 | extern struct rb_node *rb_next(const struct rb_node *); | 151 | extern struct rb_node *rb_next(const struct rb_node *); |
| 147 | extern struct rb_node *rb_prev(const struct rb_node *); | 152 | extern struct rb_node *rb_prev(const struct rb_node *); |
diff --git a/include/linux/sched.h b/include/linux/sched.h index f118809c953f..747fcaedddb7 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -139,7 +139,7 @@ extern int nr_processes(void); | |||
| 139 | extern unsigned long nr_running(void); | 139 | extern unsigned long nr_running(void); |
| 140 | extern unsigned long nr_uninterruptible(void); | 140 | extern unsigned long nr_uninterruptible(void); |
| 141 | extern unsigned long nr_iowait(void); | 141 | extern unsigned long nr_iowait(void); |
| 142 | extern unsigned long nr_iowait_cpu(void); | 142 | extern unsigned long nr_iowait_cpu(int cpu); |
| 143 | extern unsigned long this_cpu_load(void); | 143 | extern unsigned long this_cpu_load(void); |
| 144 | 144 | ||
| 145 | 145 | ||
diff --git a/include/linux/suspend.h b/include/linux/suspend.h index 5e781d824e6d..bc7d6bb4cd8e 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h | |||
| @@ -256,22 +256,22 @@ static inline int hibernate(void) { return -ENOSYS; } | |||
| 256 | static inline bool system_entering_hibernation(void) { return false; } | 256 | static inline bool system_entering_hibernation(void) { return false; } |
| 257 | #endif /* CONFIG_HIBERNATION */ | 257 | #endif /* CONFIG_HIBERNATION */ |
| 258 | 258 | ||
| 259 | #ifdef CONFIG_HIBERNATION_NVS | 259 | #ifdef CONFIG_SUSPEND_NVS |
| 260 | extern int hibernate_nvs_register(unsigned long start, unsigned long size); | 260 | extern int suspend_nvs_register(unsigned long start, unsigned long size); |
| 261 | extern int hibernate_nvs_alloc(void); | 261 | extern int suspend_nvs_alloc(void); |
| 262 | extern void hibernate_nvs_free(void); | 262 | extern void suspend_nvs_free(void); |
| 263 | extern void hibernate_nvs_save(void); | 263 | extern void suspend_nvs_save(void); |
| 264 | extern void hibernate_nvs_restore(void); | 264 | extern void suspend_nvs_restore(void); |
| 265 | #else /* CONFIG_HIBERNATION_NVS */ | 265 | #else /* CONFIG_SUSPEND_NVS */ |
| 266 | static inline int hibernate_nvs_register(unsigned long a, unsigned long b) | 266 | static inline int suspend_nvs_register(unsigned long a, unsigned long b) |
| 267 | { | 267 | { |
| 268 | return 0; | 268 | return 0; |
| 269 | } | 269 | } |
| 270 | static inline int hibernate_nvs_alloc(void) { return 0; } | 270 | static inline int suspend_nvs_alloc(void) { return 0; } |
| 271 | static inline void hibernate_nvs_free(void) {} | 271 | static inline void suspend_nvs_free(void) {} |
| 272 | static inline void hibernate_nvs_save(void) {} | 272 | static inline void suspend_nvs_save(void) {} |
| 273 | static inline void hibernate_nvs_restore(void) {} | 273 | static inline void suspend_nvs_restore(void) {} |
| 274 | #endif /* CONFIG_HIBERNATION_NVS */ | 274 | #endif /* CONFIG_SUSPEND_NVS */ |
| 275 | 275 | ||
| 276 | #ifdef CONFIG_PM_SLEEP | 276 | #ifdef CONFIG_PM_SLEEP |
| 277 | void save_processor_state(void); | 277 | void save_processor_state(void); |
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h index 9a59d1f98cd4..103d1b61aacb 100644 --- a/include/linux/tracepoint.h +++ b/include/linux/tracepoint.h | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | * See the file COPYING for more details. | 14 | * See the file COPYING for more details. |
| 15 | */ | 15 | */ |
| 16 | 16 | ||
| 17 | #include <linux/errno.h> | ||
| 17 | #include <linux/types.h> | 18 | #include <linux/types.h> |
| 18 | #include <linux/rcupdate.h> | 19 | #include <linux/rcupdate.h> |
| 19 | 20 | ||
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index d63ef8f9609f..c24eca71e80c 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
| @@ -27,10 +27,6 @@ enum writeback_sync_modes { | |||
| 27 | * in a manner such that unspecified fields are set to zero. | 27 | * in a manner such that unspecified fields are set to zero. |
| 28 | */ | 28 | */ |
| 29 | struct writeback_control { | 29 | struct writeback_control { |
| 30 | struct backing_dev_info *bdi; /* If !NULL, only write back this | ||
| 31 | queue */ | ||
| 32 | struct super_block *sb; /* if !NULL, only write inodes from | ||
| 33 | this super_block */ | ||
| 34 | enum writeback_sync_modes sync_mode; | 30 | enum writeback_sync_modes sync_mode; |
| 35 | unsigned long *older_than_this; /* If !NULL, only write back inodes | 31 | unsigned long *older_than_this; /* If !NULL, only write back inodes |
| 36 | older than this */ | 32 | older than this */ |
| @@ -66,7 +62,8 @@ int inode_wait(void *); | |||
| 66 | void writeback_inodes_sb(struct super_block *); | 62 | void writeback_inodes_sb(struct super_block *); |
| 67 | int writeback_inodes_sb_if_idle(struct super_block *); | 63 | int writeback_inodes_sb_if_idle(struct super_block *); |
| 68 | void sync_inodes_sb(struct super_block *); | 64 | void sync_inodes_sb(struct super_block *); |
| 69 | void writeback_inodes_wbc(struct writeback_control *wbc); | 65 | void writeback_inodes_wb(struct bdi_writeback *wb, |
| 66 | struct writeback_control *wbc); | ||
| 70 | long wb_do_writeback(struct bdi_writeback *wb, int force_wait); | 67 | long wb_do_writeback(struct bdi_writeback *wb, int force_wait); |
| 71 | void wakeup_flusher_threads(long nr_pages); | 68 | void wakeup_flusher_threads(long nr_pages); |
| 72 | 69 | ||
