diff options
| author | Olof Johansson <olof@lixom.net> | 2013-06-14 17:31:36 -0400 |
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2013-06-14 17:32:01 -0400 |
| commit | 10f8902b47340fc792cf503dd3caaba410d23615 (patch) | |
| tree | c81e0af4e9b3b7c2f221c74c02dea034350f8907 /include | |
| parent | eb25862dee69a0a0ba835f6ed093c75f8ed3123b (diff) | |
| parent | 4f288f081bb67813d35c10d1b2fa68e863c4b188 (diff) | |
Merge tag 'omap-for-v3.11/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc
From Tony Lindgren:
Omap SoC changes. Mostly improves am33xx support, and adds
minimal support for am43x SoCs.
* tag 'omap-for-v3.11/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: OMAP2+: AM43x: SRAM base and size
ARM: OMAP2+: AM43x: GP or HS ?
ARM: OMAP2+: AM43x: early init
ARM: OMAP2+: AM43x: static mapping
ARM: OMAP2+: AM437x: SoC revision detection
ARM: OMAP2+: AM43x: soc_is support
ARM: OMAP2+: AM43x: kbuild
ARM: OMAP2+: AM43x: Kconfig
ARM: OMAP2+: separate out OMAP4 restart
ARM: AM33XX: clk: Add clock node for EHRPWM TBCLK
ARM: OMAP3: clock data: get rid of unused USB host clock aliases and dummies
ARM: OMAP2+: AM33xx: Add missing reset status info to GFX hwmod
+ Linux 3.10-rc5
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-generic/io.h | 4 | ||||
| -rw-r--r-- | include/asm-generic/tlb.h | 17 | ||||
| -rw-r--r-- | include/linux/cgroup.h | 2 | ||||
| -rw-r--r-- | include/linux/list.h | 11 | ||||
| -rw-r--r-- | include/linux/netfilter_ipv6.h | 16 | ||||
| -rw-r--r-- | include/linux/rculist.h | 20 | ||||
| -rw-r--r-- | include/linux/rculist_nulls.h | 7 | ||||
| -rw-r--r-- | include/linux/rcupdate.h | 9 | ||||
| -rw-r--r-- | include/linux/skbuff.h | 15 | ||||
| -rw-r--r-- | include/linux/socket.h | 3 | ||||
| -rw-r--r-- | include/net/addrconf.h | 2 | ||||
| -rw-r--r-- | include/net/sch_generic.h | 18 | ||||
| -rw-r--r-- | include/net/xfrm.h | 5 |
13 files changed, 103 insertions, 26 deletions
diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h index ac9da00e9f2c..d5afe96adba6 100644 --- a/include/asm-generic/io.h +++ b/include/asm-generic/io.h | |||
| @@ -343,8 +343,12 @@ extern void ioport_unmap(void __iomem *p); | |||
| 343 | #endif /* CONFIG_GENERIC_IOMAP */ | 343 | #endif /* CONFIG_GENERIC_IOMAP */ |
| 344 | #endif /* CONFIG_HAS_IOPORT */ | 344 | #endif /* CONFIG_HAS_IOPORT */ |
| 345 | 345 | ||
| 346 | #ifndef xlate_dev_kmem_ptr | ||
| 346 | #define xlate_dev_kmem_ptr(p) p | 347 | #define xlate_dev_kmem_ptr(p) p |
| 348 | #endif | ||
| 349 | #ifndef xlate_dev_mem_ptr | ||
| 347 | #define xlate_dev_mem_ptr(p) __va(p) | 350 | #define xlate_dev_mem_ptr(p) __va(p) |
| 351 | #endif | ||
| 348 | 352 | ||
| 349 | #ifdef CONFIG_VIRT_TO_BUS | 353 | #ifdef CONFIG_VIRT_TO_BUS |
| 350 | #ifndef virt_to_bus | 354 | #ifndef virt_to_bus |
diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index b1b1fa6ffffe..13821c339a41 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h | |||
| @@ -97,11 +97,9 @@ struct mmu_gather { | |||
| 97 | unsigned long start; | 97 | unsigned long start; |
| 98 | unsigned long end; | 98 | unsigned long end; |
| 99 | unsigned int need_flush : 1, /* Did free PTEs */ | 99 | unsigned int need_flush : 1, /* Did free PTEs */ |
| 100 | fast_mode : 1; /* No batching */ | ||
| 101 | |||
| 102 | /* we are in the middle of an operation to clear | 100 | /* we are in the middle of an operation to clear |
| 103 | * a full mm and can make some optimizations */ | 101 | * a full mm and can make some optimizations */ |
| 104 | unsigned int fullmm : 1, | 102 | fullmm : 1, |
| 105 | /* we have performed an operation which | 103 | /* we have performed an operation which |
| 106 | * requires a complete flush of the tlb */ | 104 | * requires a complete flush of the tlb */ |
| 107 | need_flush_all : 1; | 105 | need_flush_all : 1; |
| @@ -114,19 +112,6 @@ struct mmu_gather { | |||
| 114 | 112 | ||
| 115 | #define HAVE_GENERIC_MMU_GATHER | 113 | #define HAVE_GENERIC_MMU_GATHER |
| 116 | 114 | ||
| 117 | static inline int tlb_fast_mode(struct mmu_gather *tlb) | ||
| 118 | { | ||
| 119 | #ifdef CONFIG_SMP | ||
| 120 | return tlb->fast_mode; | ||
| 121 | #else | ||
| 122 | /* | ||
| 123 | * For UP we don't need to worry about TLB flush | ||
| 124 | * and page free order so much.. | ||
| 125 | */ | ||
| 126 | return 1; | ||
| 127 | #endif | ||
| 128 | } | ||
| 129 | |||
| 130 | void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, bool fullmm); | 115 | void tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, bool fullmm); |
| 131 | void tlb_flush_mmu(struct mmu_gather *tlb); | 116 | void tlb_flush_mmu(struct mmu_gather *tlb); |
| 132 | void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, | 117 | void tlb_finish_mmu(struct mmu_gather *tlb, unsigned long start, |
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 5047355b9a0f..8bda1294c035 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
| @@ -707,7 +707,7 @@ struct cgroup *cgroup_rightmost_descendant(struct cgroup *pos); | |||
| 707 | * | 707 | * |
| 708 | * If a subsystem synchronizes against the parent in its ->css_online() and | 708 | * If a subsystem synchronizes against the parent in its ->css_online() and |
| 709 | * before starting iterating, and synchronizes against @pos on each | 709 | * before starting iterating, and synchronizes against @pos on each |
| 710 | * iteration, any descendant cgroup which finished ->css_offline() is | 710 | * iteration, any descendant cgroup which finished ->css_online() is |
| 711 | * guaranteed to be visible in the future iterations. | 711 | * guaranteed to be visible in the future iterations. |
| 712 | * | 712 | * |
| 713 | * In other words, the following guarantees that a descendant can't escape | 713 | * In other words, the following guarantees that a descendant can't escape |
diff --git a/include/linux/list.h b/include/linux/list.h index 6a1f8df9144b..b83e5657365a 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
| @@ -362,6 +362,17 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
| 362 | list_entry((ptr)->next, type, member) | 362 | list_entry((ptr)->next, type, member) |
| 363 | 363 | ||
| 364 | /** | 364 | /** |
| 365 | * list_first_entry_or_null - get the first element from a list | ||
| 366 | * @ptr: the list head to take the element from. | ||
| 367 | * @type: the type of the struct this is embedded in. | ||
| 368 | * @member: the name of the list_struct within the struct. | ||
| 369 | * | ||
| 370 | * Note that if the list is empty, it returns NULL. | ||
| 371 | */ | ||
| 372 | #define list_first_entry_or_null(ptr, type, member) \ | ||
| 373 | (!list_empty(ptr) ? list_first_entry(ptr, type, member) : NULL) | ||
| 374 | |||
| 375 | /** | ||
| 365 | * list_for_each - iterate over a list | 376 | * list_for_each - iterate over a list |
| 366 | * @pos: the &struct list_head to use as a loop cursor. | 377 | * @pos: the &struct list_head to use as a loop cursor. |
| 367 | * @head: the head for your list. | 378 | * @head: the head for your list. |
diff --git a/include/linux/netfilter_ipv6.h b/include/linux/netfilter_ipv6.h index 98ffb54988b6..2d4df6ce043e 100644 --- a/include/linux/netfilter_ipv6.h +++ b/include/linux/netfilter_ipv6.h | |||
| @@ -17,6 +17,22 @@ extern __sum16 nf_ip6_checksum(struct sk_buff *skb, unsigned int hook, | |||
| 17 | 17 | ||
| 18 | extern int ipv6_netfilter_init(void); | 18 | extern int ipv6_netfilter_init(void); |
| 19 | extern void ipv6_netfilter_fini(void); | 19 | extern void ipv6_netfilter_fini(void); |
| 20 | |||
| 21 | /* | ||
| 22 | * Hook functions for ipv6 to allow xt_* modules to be built-in even | ||
| 23 | * if IPv6 is a module. | ||
| 24 | */ | ||
| 25 | struct nf_ipv6_ops { | ||
| 26 | int (*chk_addr)(struct net *net, const struct in6_addr *addr, | ||
| 27 | const struct net_device *dev, int strict); | ||
| 28 | }; | ||
| 29 | |||
| 30 | extern const struct nf_ipv6_ops __rcu *nf_ipv6_ops; | ||
| 31 | static inline const struct nf_ipv6_ops *nf_get_ipv6_ops(void) | ||
| 32 | { | ||
| 33 | return rcu_dereference(nf_ipv6_ops); | ||
| 34 | } | ||
| 35 | |||
| 20 | #else /* CONFIG_NETFILTER */ | 36 | #else /* CONFIG_NETFILTER */ |
| 21 | static inline int ipv6_netfilter_init(void) { return 0; } | 37 | static inline int ipv6_netfilter_init(void) { return 0; } |
| 22 | static inline void ipv6_netfilter_fini(void) { return; } | 38 | static inline void ipv6_netfilter_fini(void) { return; } |
diff --git a/include/linux/rculist.h b/include/linux/rculist.h index 8089e35d47ac..f4b1001a4676 100644 --- a/include/linux/rculist.h +++ b/include/linux/rculist.h | |||
| @@ -461,6 +461,26 @@ static inline void hlist_add_after_rcu(struct hlist_node *prev, | |||
| 461 | &(pos)->member)), typeof(*(pos)), member)) | 461 | &(pos)->member)), typeof(*(pos)), member)) |
| 462 | 462 | ||
| 463 | /** | 463 | /** |
| 464 | * hlist_for_each_entry_rcu_notrace - iterate over rcu list of given type (for tracing) | ||
| 465 | * @pos: the type * to use as a loop cursor. | ||
| 466 | * @head: the head for your list. | ||
| 467 | * @member: the name of the hlist_node within the struct. | ||
| 468 | * | ||
| 469 | * This list-traversal primitive may safely run concurrently with | ||
| 470 | * the _rcu list-mutation primitives such as hlist_add_head_rcu() | ||
| 471 | * as long as the traversal is guarded by rcu_read_lock(). | ||
| 472 | * | ||
| 473 | * This is the same as hlist_for_each_entry_rcu() except that it does | ||
| 474 | * not do any RCU debugging or tracing. | ||
| 475 | */ | ||
| 476 | #define hlist_for_each_entry_rcu_notrace(pos, head, member) \ | ||
| 477 | for (pos = hlist_entry_safe (rcu_dereference_raw_notrace(hlist_first_rcu(head)),\ | ||
| 478 | typeof(*(pos)), member); \ | ||
| 479 | pos; \ | ||
| 480 | pos = hlist_entry_safe(rcu_dereference_raw_notrace(hlist_next_rcu(\ | ||
| 481 | &(pos)->member)), typeof(*(pos)), member)) | ||
| 482 | |||
| 483 | /** | ||
| 464 | * hlist_for_each_entry_rcu_bh - iterate over rcu list of given type | 484 | * hlist_for_each_entry_rcu_bh - iterate over rcu list of given type |
| 465 | * @pos: the type * to use as a loop cursor. | 485 | * @pos: the type * to use as a loop cursor. |
| 466 | * @head: the head for your list. | 486 | * @head: the head for your list. |
diff --git a/include/linux/rculist_nulls.h b/include/linux/rculist_nulls.h index 2ae13714828b..1c33dd7da4a7 100644 --- a/include/linux/rculist_nulls.h +++ b/include/linux/rculist_nulls.h | |||
| @@ -105,9 +105,14 @@ static inline void hlist_nulls_add_head_rcu(struct hlist_nulls_node *n, | |||
| 105 | * @head: the head for your list. | 105 | * @head: the head for your list. |
| 106 | * @member: the name of the hlist_nulls_node within the struct. | 106 | * @member: the name of the hlist_nulls_node within the struct. |
| 107 | * | 107 | * |
| 108 | * The barrier() is needed to make sure compiler doesn't cache first element [1], | ||
| 109 | * as this loop can be restarted [2] | ||
| 110 | * [1] Documentation/atomic_ops.txt around line 114 | ||
| 111 | * [2] Documentation/RCU/rculist_nulls.txt around line 146 | ||
| 108 | */ | 112 | */ |
| 109 | #define hlist_nulls_for_each_entry_rcu(tpos, pos, head, member) \ | 113 | #define hlist_nulls_for_each_entry_rcu(tpos, pos, head, member) \ |
