diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Kconfig.debug | 32 | ||||
-rw-r--r-- | lib/asn1_decoder.c | 2 | ||||
-rw-r--r-- | lib/atomic64_test.c | 13 | ||||
-rw-r--r-- | lib/btree.c | 1 | ||||
-rw-r--r-- | lib/bug.c | 21 | ||||
-rw-r--r-- | lib/crc32.c | 4 | ||||
-rw-r--r-- | lib/debugobjects.c | 19 | ||||
-rw-r--r-- | lib/devres.c | 10 | ||||
-rw-r--r-- | lib/digsig.c | 5 | ||||
-rw-r--r-- | lib/dump_stack.c | 4 | ||||
-rw-r--r-- | lib/kobject_uevent.c | 6 | ||||
-rw-r--r-- | lib/libcrc32c.c | 5 | ||||
-rw-r--r-- | lib/nlattr.c | 17 | ||||
-rw-r--r-- | lib/plist.c | 56 | ||||
-rw-r--r-- | lib/radix-tree.c | 7 | ||||
-rw-r--r-- | lib/string.c | 26 | ||||
-rw-r--r-- | lib/swiotlb.c | 2 | ||||
-rw-r--r-- | lib/textsearch.c | 9 | ||||
-rw-r--r-- | lib/vsprintf.c | 4 | ||||
-rw-r--r-- | lib/xz/Kconfig | 24 | ||||
-rw-r--r-- | lib/xz/xz_dec_lzma2.c | 4 |
21 files changed, 182 insertions, 89 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 140b66a874c1..ccca32264748 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
@@ -501,12 +501,21 @@ config DEBUG_VM | |||
501 | 501 | ||
502 | If unsure, say N. | 502 | If unsure, say N. |
503 | 503 | ||
504 | config DEBUG_VM_VMACACHE | ||
505 | bool "Debug VMA caching" | ||
506 | depends on DEBUG_VM | ||
507 | help | ||
508 | Enable this to turn on VMA caching debug information. Doing so | ||
509 | can cause significant overhead, so only enable it in non-production | ||
510 | environments. | ||
511 | |||
512 | If unsure, say N. | ||
513 | |||
504 | config DEBUG_VM_RB | 514 | config DEBUG_VM_RB |
505 | bool "Debug VM red-black trees" | 515 | bool "Debug VM red-black trees" |
506 | depends on DEBUG_VM | 516 | depends on DEBUG_VM |
507 | help | 517 | help |
508 | Enable this to turn on more extended checks in the virtual-memory | 518 | Enable VM red-black tree debugging information and extra validations. |
509 | system that may impact performance. | ||
510 | 519 | ||
511 | If unsure, say N. | 520 | If unsure, say N. |
512 | 521 | ||
@@ -576,8 +585,8 @@ config DEBUG_HIGHMEM | |||
576 | bool "Highmem debugging" | 585 | bool "Highmem debugging" |
577 | depends on DEBUG_KERNEL && HIGHMEM | 586 | depends on DEBUG_KERNEL && HIGHMEM |
578 | help | 587 | help |
579 | This options enables addition error checking for high memory systems. | 588 | This option enables additional error checking for high memory |
580 | Disable for production systems. | 589 | systems. Disable for production systems. |
581 | 590 | ||
582 | config HAVE_DEBUG_STACKOVERFLOW | 591 | config HAVE_DEBUG_STACKOVERFLOW |
583 | bool | 592 | bool |
@@ -824,11 +833,6 @@ config DEBUG_RT_MUTEXES | |||
824 | This allows rt mutex semantics violations and rt mutex related | 833 | This allows rt mutex semantics violations and rt mutex related |
825 | deadlocks (lockups) to be detected and reported automatically. | 834 | deadlocks (lockups) to be detected and reported automatically. |
826 | 835 | ||
827 | config DEBUG_PI_LIST | ||
828 | bool | ||
829 | default y | ||
830 | depends on DEBUG_RT_MUTEXES | ||
831 | |||
832 | config RT_MUTEX_TESTER | 836 | config RT_MUTEX_TESTER |
833 | bool "Built-in scriptable tester for rt-mutexes" | 837 | bool "Built-in scriptable tester for rt-mutexes" |
834 | depends on DEBUG_KERNEL && RT_MUTEXES | 838 | depends on DEBUG_KERNEL && RT_MUTEXES |
@@ -1054,6 +1058,16 @@ config DEBUG_LIST | |||
1054 | 1058 | ||
1055 | If unsure, say N. | 1059 | If unsure, say N. |
1056 | 1060 | ||
1061 | config DEBUG_PI_LIST | ||
1062 | bool "Debug priority linked list manipulation" | ||
1063 | depends on DEBUG_KERNEL | ||
1064 | help | ||
1065 | Enable this to turn on extended checks in the priority-ordered | ||
1066 | linked-list (plist) walking routines. This checks the entire | ||
1067 | list multiple times during each manipulation. | ||
1068 | |||
1069 | If unsure, say N. | ||
1070 | |||
1057 | config DEBUG_SG | 1071 | config DEBUG_SG |
1058 | bool "Debug SG table operations" | 1072 | bool "Debug SG table operations" |
1059 | depends on DEBUG_KERNEL | 1073 | depends on DEBUG_KERNEL |
diff --git a/lib/asn1_decoder.c b/lib/asn1_decoder.c index 11b9b01fda6b..1a000bb050f9 100644 --- a/lib/asn1_decoder.c +++ b/lib/asn1_decoder.c | |||
@@ -140,7 +140,7 @@ error: | |||
140 | * @decoder: The decoder definition (produced by asn1_compiler) | 140 | * @decoder: The decoder definition (produced by asn1_compiler) |
141 | * @context: The caller's context (to be passed to the action functions) | 141 | * @context: The caller's context (to be passed to the action functions) |
142 | * @data: The encoded data | 142 | * @data: The encoded data |
143 | * @datasize: The size of the encoded data | 143 | * @datalen: The size of the encoded data |
144 | * | 144 | * |
145 | * Decode BER/DER/CER encoded ASN.1 data according to a bytecode pattern | 145 | * Decode BER/DER/CER encoded ASN.1 data according to a bytecode pattern |
146 | * produced by asn1_compiler. Action functions are called on marked tags to | 146 | * produced by asn1_compiler. Action functions are called on marked tags to |
diff --git a/lib/atomic64_test.c b/lib/atomic64_test.c index 00bca223d1e1..0211d30d8c39 100644 --- a/lib/atomic64_test.c +++ b/lib/atomic64_test.c | |||
@@ -8,6 +8,9 @@ | |||
8 | * the Free Software Foundation; either version 2 of the License, or | 8 | * the Free Software Foundation; either version 2 of the License, or |
9 | * (at your option) any later version. | 9 | * (at your option) any later version. |
10 | */ | 10 | */ |
11 | |||
12 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
13 | |||
11 | #include <linux/init.h> | 14 | #include <linux/init.h> |
12 | #include <linux/bug.h> | 15 | #include <linux/bug.h> |
13 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
@@ -146,18 +149,18 @@ static __init int test_atomic64(void) | |||
146 | BUG_ON(v.counter != r); | 149 | BUG_ON(v.counter != r); |
147 | 150 | ||
148 | #ifdef CONFIG_X86 | 151 | #ifdef CONFIG_X86 |
149 | printk(KERN_INFO "atomic64 test passed for %s platform %s CX8 and %s SSE\n", | 152 | pr_info("passed for %s platform %s CX8 and %s SSE\n", |
150 | #ifdef CONFIG_X86_64 | 153 | #ifdef CONFIG_X86_64 |
151 | "x86-64", | 154 | "x86-64", |
152 | #elif defined(CONFIG_X86_CMPXCHG64) | 155 | #elif defined(CONFIG_X86_CMPXCHG64) |
153 | "i586+", | 156 | "i586+", |
154 | #else | 157 | #else |
155 | "i386+", | 158 | "i386+", |
156 | #endif | 159 | #endif |
157 | boot_cpu_has(X86_FEATURE_CX8) ? "with" : "without", | 160 | boot_cpu_has(X86_FEATURE_CX8) ? "with" : "without", |
158 | boot_cpu_has(X86_FEATURE_XMM) ? "with" : "without"); | 161 | boot_cpu_has(X86_FEATURE_XMM) ? "with" : "without"); |
159 | #else | 162 | #else |
160 | printk(KERN_INFO "atomic64 test passed\n"); | 163 | pr_info("passed\n"); |
161 | #endif | 164 | #endif |
162 | 165 | ||
163 | return 0; | 166 | return 0; |
diff --git a/lib/btree.c b/lib/btree.c index f9a484676cb6..4264871ea1a0 100644 --- a/lib/btree.c +++ b/lib/btree.c | |||
@@ -198,6 +198,7 @@ EXPORT_SYMBOL_GPL(btree_init); | |||
198 | 198 | ||
199 | void btree_destroy(struct btree_head *head) | 199 | void btree_destroy(struct btree_head *head) |
200 | { | 200 | { |
201 | mempool_free(head->node, head->mempool); | ||
201 | mempool_destroy(head->mempool); | 202 | mempool_destroy(head->mempool); |
202 | head->mempool = NULL; | 203 | head->mempool = NULL; |
203 | } | 204 | } |
@@ -37,6 +37,9 @@ | |||
37 | 37 | ||
38 | Jeremy Fitzhardinge <jeremy@goop.org> 2006 | 38 | Jeremy Fitzhardinge <jeremy@goop.org> 2006 |
39 | */ | 39 | */ |
40 | |||
41 | #define pr_fmt(fmt) fmt | ||
42 | |||
40 | #include <linux/list.h> | 43 | #include <linux/list.h> |
41 | #include <linux/module.h> | 44 | #include <linux/module.h> |
42 | #include <linux/kernel.h> | 45 | #include <linux/kernel.h> |
@@ -153,15 +156,13 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs) | |||
153 | 156 | ||
154 | if (warning) { | 157 | if (warning) { |
155 | /* this is a WARN_ON rather than BUG/BUG_ON */ | 158 | /* this is a WARN_ON rather than BUG/BUG_ON */ |
156 | printk(KERN_WARNING "------------[ cut here ]------------\n"); | 159 | pr_warn("------------[ cut here ]------------\n"); |
157 | 160 | ||
158 | if (file) | 161 | if (file) |
159 | printk(KERN_WARNING "WARNING: at %s:%u\n", | 162 | pr_warn("WARNING: at %s:%u\n", file, line); |
160 | file, line); | ||
161 | else | 163 | else |
162 | printk(KERN_WARNING "WARNING: at %p " | 164 | pr_warn("WARNING: at %p [verbose debug info unavailable]\n", |
163 | "[verbose debug info unavailable]\n", | 165 | (void *)bugaddr); |
164 | (void *)bugaddr); | ||
165 | 166 | ||
166 | print_modules(); | 167 | print_modules(); |
167 | show_regs(regs); | 168 | show_regs(regs); |
@@ -174,12 +175,10 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs) | |||
174 | printk(KERN_DEFAULT "------------[ cut here ]------------\n"); | 175 | printk(KERN_DEFAULT "------------[ cut here ]------------\n"); |
175 | 176 | ||
176 | if (file) | 177 | if (file) |
177 | printk(KERN_CRIT "kernel BUG at %s:%u!\n", | 178 | pr_crit("kernel BUG at %s:%u!\n", file, line); |
178 | file, line); | ||
179 | else | 179 | else |
180 | printk(KERN_CRIT "Kernel BUG at %p " | 180 | pr_crit("Kernel BUG at %p [verbose debug info unavailable]\n", |
181 | "[verbose debug info unavailable]\n", | 181 | (void *)bugaddr); |
182 | (void *)bugaddr); | ||
183 | 182 | ||
184 | return BUG_TRAP_TYPE_BUG; | 183 | return BUG_TRAP_TYPE_BUG; |
185 | } | 184 | } |
diff --git a/lib/crc32.c b/lib/crc32.c index 70f00ca5ef1e..21a7b2135af6 100644 --- a/lib/crc32.c +++ b/lib/crc32.c | |||
@@ -33,13 +33,13 @@ | |||
33 | #include "crc32defs.h" | 33 | #include "crc32defs.h" |
34 | 34 | ||
35 | #if CRC_LE_BITS > 8 | 35 | #if CRC_LE_BITS > 8 |
36 | # define tole(x) ((__force u32) __constant_cpu_to_le32(x)) | 36 | # define tole(x) ((__force u32) cpu_to_le32(x)) |
37 | #else | 37 | #else |
38 | # define tole(x) (x) | 38 | # define tole(x) (x) |
39 | #endif | 39 | #endif |
40 | 40 | ||
41 | #if CRC_BE_BITS > 8 | 41 | #if CRC_BE_BITS > 8 |
42 | # define tobe(x) ((__force u32) __constant_cpu_to_be32(x)) | 42 | # define tobe(x) ((__force u32) cpu_to_be32(x)) |
43 | #else | 43 | #else |
44 | # define tobe(x) (x) | 44 | # define tobe(x) (x) |
45 | #endif | 45 | #endif |
diff --git a/lib/debugobjects.c b/lib/debugobjects.c index e0731c3db706..547f7f923dbc 100644 --- a/lib/debugobjects.c +++ b/lib/debugobjects.c | |||
@@ -7,6 +7,9 @@ | |||
7 | * | 7 | * |
8 | * For licencing details see kernel-base/COPYING | 8 | * For licencing details see kernel-base/COPYING |
9 | */ | 9 | */ |
10 | |||
11 | #define pr_fmt(fmt) "ODEBUG: " fmt | ||
12 | |||
10 | #include <linux/debugobjects.h> | 13 | #include <linux/debugobjects.h> |
11 | #include <linux/interrupt.h> | 14 | #include <linux/interrupt.h> |
12 | #include <linux/sched.h> | 15 | #include <linux/sched.h> |
@@ -218,7 +221,7 @@ static void debug_objects_oom(void) | |||
218 | unsigned long flags; | 221 | unsigned long flags; |
219 | int i; | 222 | int i; |
220 | 223 | ||
221 | printk(KERN_WARNING "ODEBUG: Out of memory. ODEBUG disabled\n"); | 224 | pr_warn("Out of memory. ODEBUG disabled\n"); |
222 | 225 | ||
223 | for (i = 0; i < ODEBUG_HASH_SIZE; i++, db++) { | 226 | for (i = 0; i < ODEBUG_HASH_SIZE; i++, db++) { |
224 | raw_spin_lock_irqsave(&db->lock, flags); | 227 | raw_spin_lock_irqsave(&db->lock, flags); |
@@ -292,11 +295,9 @@ static void debug_object_is_on_stack(void *addr, int onstack) | |||
292 | 295 | ||
293 | limit++; | 296 | limit++; |
294 | if (is_on_stack) | 297 | if (is_on_stack) |
295 | printk(KERN_WARNING | 298 | pr_warn("object is on stack, but not annotated\n"); |
296 | "ODEBUG: object is on stack, but not annotated\n"); | ||
297 | else | 299 | else |
298 | printk(KERN_WARNING | 300 | pr_warn("object is not on stack, but annotated\n"); |
299 | "ODEBUG: object is not on stack, but annotated\n"); | ||
300 | WARN_ON(1); | 301 | WARN_ON(1); |
301 | } | 302 | } |
302 | 303 | ||
@@ -985,7 +986,7 @@ static void __init debug_objects_selftest(void) | |||
985 | if (check_results(&obj, ODEBUG_STATE_NONE, ++fixups, ++warnings)) | 986 | if (check_results(&obj, ODEBUG_STATE_NONE, ++fixups, ++warnings)) |
986 | goto out; | 987 | goto out; |
987 | #endif | 988 | #endif |
988 | printk(KERN_INFO "ODEBUG: selftest passed\n"); | 989 | pr_info("selftest passed\n"); |
989 | 990 | ||
990 | out: | 991 | out: |
991 | debug_objects_fixups = oldfixups; | 992 | debug_objects_fixups = oldfixups; |
@@ -1060,8 +1061,8 @@ static int __init debug_objects_replace_static_objects(void) | |||
1060 | } | 1061 | } |
1061 | local_irq_enable(); | 1062 | local_irq_enable(); |
1062 | 1063 | ||
1063 | printk(KERN_DEBUG "ODEBUG: %d of %d active objects replaced\n", cnt, | 1064 | pr_debug("%d of %d active objects replaced\n", |
1064 | obj_pool_used); | 1065 | cnt, obj_pool_used); |
1065 | return 0; | 1066 | return 0; |
1066 | free: | 1067 | free: |
1067 | hlist_for_each_entry_safe(obj, tmp, &objects, node) { | 1068 | hlist_for_each_entry_safe(obj, tmp, &objects, node) { |
@@ -1090,7 +1091,7 @@ void __init debug_objects_mem_init(void) | |||
1090 | debug_objects_enabled = 0; | 1091 | debug_objects_enabled = 0; |
1091 | if (obj_cache) | 1092 | if (obj_cache) |
1092 | kmem_cache_destroy(obj_cache); | 1093 | kmem_cache_destroy(obj_cache); |
1093 | printk(KERN_WARNING "ODEBUG: out of memory.\n"); | 1094 | pr_warn("out of memory.\n"); |
1094 | } else | 1095 | } else |
1095 | debug_objects_selftest(); | 1096 | debug_objects_selftest(); |
1096 | } | 1097 | } |
diff --git a/lib/devres.c b/lib/devres.c index 2f16c133fd36..f562bf6ff71d 100644 --- a/lib/devres.c +++ b/lib/devres.c | |||
@@ -157,12 +157,12 @@ EXPORT_SYMBOL(devm_ioremap_resource); | |||
157 | * if (!base) | 157 | * if (!base) |
158 | * return -EADDRNOTAVAIL; | 158 | * return -EADDRNOTAVAIL; |
159 | */ | 159 | */ |
160 | void __iomem *devm_request_and_ioremap(struct device *device, | 160 | void __iomem *devm_request_and_ioremap(struct device *dev, |
161 | struct resource *res) | 161 | struct resource *res) |
162 | { | 162 | { |
163 | void __iomem *dest_ptr; | 163 | void __iomem *dest_ptr; |
164 | 164 | ||
165 | dest_ptr = devm_ioremap_resource(device, res); | 165 | dest_ptr = devm_ioremap_resource(dev, res); |
166 | if (IS_ERR(dest_ptr)) | 166 | if (IS_ERR(dest_ptr)) |
167 | return NULL; | 167 | return NULL; |
168 | 168 | ||
@@ -194,7 +194,7 @@ static int devm_ioport_map_match(struct device *dev, void *res, | |||
194 | * Managed ioport_map(). Map is automatically unmapped on driver | 194 | * Managed ioport_map(). Map is automatically unmapped on driver |
195 | * detach. | 195 | * detach. |
196 | */ | 196 | */ |
197 | void __iomem * devm_ioport_map(struct device *dev, unsigned long port, | 197 | void __iomem *devm_ioport_map(struct device *dev, unsigned long port, |
198 | unsigned int nr) | 198 | unsigned int nr) |
199 | { | 199 | { |
200 | void __iomem **ptr, *addr; | 200 | void __iomem **ptr, *addr; |
@@ -265,7 +265,7 @@ static void pcim_iomap_release(struct device *gendev, void *res) | |||
265 | * be safely called without context and guaranteed to succed once | 265 | * be safely called without context and guaranteed to succed once |
266 | * allocated. | 266 | * allocated. |
267 | */ | 267 | */ |
268 | void __iomem * const * pcim_iomap_table(struct pci_dev *pdev) | 268 | void __iomem * const *pcim_iomap_table(struct pci_dev *pdev) |
269 | { | 269 | { |
270 | struct pcim_iomap_devres *dr, *new_dr; | 270 | struct pcim_iomap_devres *dr, *new_dr; |
271 | 271 | ||
@@ -290,7 +290,7 @@ EXPORT_SYMBOL(pcim_iomap_table); | |||
290 | * Managed pci_iomap(). Map is automatically unmapped on driver | 290 | * Managed pci_iomap(). Map is automatically unmapped on driver |
291 | * detach. | 291 | * detach. |
292 | */ | 292 | */ |
293 | void __iomem * pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen) | 293 | void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen) |
294 | { | 294 | { |
295 | void __iomem **tbl; | 295 | void __iomem **tbl; |
296 | 296 | ||
diff --git a/lib/digsig.c b/lib/digsig.c index 8793aeda30ca..ae05ea393fc8 100644 --- a/lib/digsig.c +++ b/lib/digsig.c | |||
@@ -175,10 +175,11 @@ err1: | |||
175 | * digsig_verify() - digital signature verification with public key | 175 | * digsig_verify() - digital signature verification with public key |
176 | * @keyring: keyring to search key in | 176 | * @keyring: keyring to search key in |
177 | * @sig: digital signature | 177 | * @sig: digital signature |
178 | * @sigen: length of the signature | 178 | * @siglen: length of the signature |
179 | * @data: data | 179 | * @data: data |
180 | * @datalen: length of the data | 180 | * @datalen: length of the data |
181 | * @return: 0 on success, -EINVAL otherwise | 181 | * |
182 | * Returns 0 on success, -EINVAL otherwise | ||
182 | * | 183 | * |
183 | * Verifies data integrity against digital signature. | 184 | * Verifies data integrity against digital signature. |
184 | * Currently only RSA is supported. | 185 | * Currently only RSA is supported. |
diff --git a/lib/dump_stack.c b/lib/dump_stack.c index f23b63f0a1c3..6745c6230db3 100644 --- a/lib/dump_stack.c +++ b/lib/dump_stack.c | |||
@@ -23,7 +23,7 @@ static void __dump_stack(void) | |||
23 | #ifdef CONFIG_SMP | 23 | #ifdef CONFIG_SMP |
24 | static atomic_t dump_lock = ATOMIC_INIT(-1); | 24 | static atomic_t dump_lock = ATOMIC_INIT(-1); |
25 | 25 | ||
26 | asmlinkage void dump_stack(void) | 26 | asmlinkage __visible void dump_stack(void) |
27 | { | 27 | { |
28 | int was_locked; | 28 | int was_locked; |
29 | int old; | 29 | int old; |
@@ -55,7 +55,7 @@ retry: | |||
55 | preempt_enable(); | 55 | preempt_enable(); |
56 | } | 56 | } |
57 | #else | 57 | #else |
58 | asmlinkage void dump_stack(void) | 58 | asmlinkage __visible void dump_stack(void) |
59 | { | 59 | { |
60 | __dump_stack(); | 60 | __dump_stack(); |
61 | } | 61 | } |
diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c index 4e3bd71bd949..9ebf9e20de53 100644 --- a/lib/kobject_uevent.c +++ b/lib/kobject_uevent.c | |||
@@ -29,7 +29,9 @@ | |||
29 | 29 | ||
30 | 30 | ||
31 | u64 uevent_seqnum; | 31 | u64 uevent_seqnum; |
32 | #ifdef CONFIG_UEVENT_HELPER | ||
32 | char uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH; | 33 | char uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH; |
34 | #endif | ||
33 | #ifdef CONFIG_NET | 35 | #ifdef CONFIG_NET |
34 | struct uevent_sock { | 36 | struct uevent_sock { |
35 | struct list_head list; | 37 | struct list_head list; |
@@ -109,6 +111,7 @@ static int kobj_bcast_filter(struct sock *dsk, struct sk_buff *skb, void *data) | |||
109 | } | 111 | } |
110 | #endif | 112 | #endif |
111 | 113 | ||
114 | #ifdef CONFIG_UEVENT_HELPER | ||
112 | static int kobj_usermode_filter(struct kobject *kobj) | 115 | static int kobj_usermode_filter(struct kobject *kobj) |
113 | { | 116 | { |
114 | const struct kobj_ns_type_operations *ops; | 117 | const struct kobj_ns_type_operations *ops; |
@@ -147,6 +150,7 @@ static void cleanup_uevent_env(struct subprocess_info *info) | |||
147 | { | 150 | { |
148 | kfree(info->data); | 151 | kfree(info->data); |
149 | } | 152 | } |
153 | #endif | ||
150 | 154 | ||
151 | /** | 155 | /** |
152 | * kobject_uevent_env - send an uevent with environmental data | 156 | * kobject_uevent_env - send an uevent with environmental data |
@@ -323,6 +327,7 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, | |||
323 | #endif | 327 | #endif |
324 | mutex_unlock(&uevent_sock_mutex); | 328 | mutex_unlock(&uevent_sock_mutex); |
325 | 329 | ||
330 | #ifdef CONFIG_UEVENT_HELPER | ||
326 | /* call uevent_helper, usually only enabled during early boot */ | 331 | /* call uevent_helper, usually only enabled during early boot */ |
327 | if (uevent_helper[0] && !kobj_usermode_filter(kobj)) { | 332 | if (uevent_helper[0] && !kobj_usermode_filter(kobj)) { |
328 | struct subprocess_info *info; | 333 | struct subprocess_info *info; |
@@ -347,6 +352,7 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action, | |||
347 | env = NULL; /* freed by cleanup_uevent_env */ | 352 | env = NULL; /* freed by cleanup_uevent_env */ |
348 | } | 353 | } |
349 | } | 354 | } |
355 | #endif | ||
350 | 356 | ||
351 | exit: | 357 | exit: |
352 | kfree(devpath); | 358 | kfree(devpath); |
diff --git a/lib/libcrc32c.c b/lib/libcrc32c.c index 244f5480c898..b3131f5cf8a2 100644 --- a/lib/libcrc32c.c +++ b/lib/libcrc32c.c | |||
@@ -62,10 +62,7 @@ EXPORT_SYMBOL(crc32c); | |||
62 | static int __init libcrc32c_mod_init(void) | 62 | static int __init libcrc32c_mod_init(void) |
63 | { | 63 | { |
64 | tfm = crypto_alloc_shash("crc32c", 0, 0); | 64 | tfm = crypto_alloc_shash("crc32c", 0, 0); |
65 | if (IS_ERR(tfm)) | 65 | return PTR_ERR_OR_ZERO(tfm); |
66 | return PTR_ERR(tfm); | ||
67 | |||
68 | return 0; | ||
69 | } | 66 | } |
70 | 67 | ||
71 | static void __exit libcrc32c_mod_fini(void) | 68 | static void __exit libcrc32c_mod_fini(void) |
diff --git a/lib/nlattr.c b/lib/nlattr.c index fc6754720ced..0c5778752aec 100644 --- a/lib/nlattr.c +++ b/lib/nlattr.c | |||
@@ -136,6 +136,7 @@ int nla_validate(const struct nlattr *head, int len, int maxtype, | |||
136 | errout: | 136 | errout: |
137 | return err; | 137 | return err; |
138 | } | 138 | } |
139 | EXPORT_SYMBOL(nla_validate); | ||
139 | 140 | ||
140 | /** | 141 | /** |
141 | * nla_policy_len - Determin the max. length of a policy | 142 | * nla_policy_len - Determin the max. length of a policy |
@@ -162,6 +163,7 @@ nla_policy_len(const struct nla_policy *p, int n) | |||
162 | 163 | ||
163 | return len; | 164 | return len; |
164 | } | 165 | } |
166 | EXPORT_SYMBOL(nla_policy_len); | ||
165 | 167 | ||
166 | /** | 168 | /** |
167 | * nla_parse - Parse a stream of attributes into a tb buffer | 169 | * nla_parse - Parse a stream of attributes into a tb buffer |
@@ -208,6 +210,7 @@ int nla_parse(struct nlattr **tb, int maxtype, const struct nlattr *head, | |||
208 | errout: | 210 | errout: |
209 | return err; | 211 | return err; |
210 | } | 212 | } |
213 | EXPORT_SYMBOL(nla_parse); | ||
211 | 214 | ||
212 | /** | 215 | /** |
213 | * nla_find - Find a specific attribute in a stream of attributes | 216 | * nla_find - Find a specific attribute in a stream of attributes |
@@ -228,6 +231,7 @@ struct nlattr *nla_find(const struct nlattr *head, int len, int attrtype) | |||
228 | 231 | ||
229 | return NULL; | 232 | return NULL; |
230 | } | 233 | } |
234 | EXPORT_SYMBOL(nla_find); | ||
231 | 235 | ||
232 | /** | 236 | /** |
233 | * nla_strlcpy - Copy string attribute payload into a sized buffer | 237 | * nla_strlcpy - Copy string attribute payload into a sized buffer |
@@ -258,6 +262,7 @@ size_t nla_strlcpy(char *dst, const struct nlattr *nla, size_t dstsize) | |||
258 | 262 | ||
259 | return srclen; | 263 | return srclen; |
260 | } | 264 | } |
265 | EXPORT_SYMBOL(nla_strlcpy); | ||
261 | 266 | ||
262 | /** | 267 | /** |
263 | * nla_memcpy - Copy a netlink attribute into another memory area | 268 | * nla_memcpy - Copy a netlink attribute into another memory area |
@@ -278,6 +283,7 @@ int nla_memcpy(void *dest, const struct nlattr *src, int count) | |||
278 | 283 | ||
279 | return minlen; | 284 | return minlen; |
280 | } | 285 | } |
286 | EXPORT_SYMBOL(nla_memcpy); | ||
281 | 287 | ||
282 | /** | 288 | /** |
283 | * nla_memcmp - Compare an attribute with sized memory area | 289 | * nla_memcmp - Compare an attribute with sized memory area |
@@ -295,6 +301,7 @@ int nla_memcmp(const struct nlattr *nla, const void *data, | |||
295 | 301 | ||
296 | return d; | 302 | return d; |
297 | } | 303 | } |
304 | EXPORT_SYMBOL(nla_memcmp); | ||
298 | 305 | ||
299 | /** | 306 | /** |
300 | * nla_strcmp - Compare a string attribute against a string | 307 | * nla_strcmp - Compare a string attribute against a string |
@@ -317,6 +324,7 @@ int nla_strcmp(const struct nlattr *nla, const char *str) | |||
317 | 324 | ||
318 | return d; | 325 | return d; |
319 | } | 326 | } |
327 | EXPORT_SYMBOL(nla_strcmp); | ||
320 | 328 | ||
321 | #ifdef CONFIG_NET | 329 | #ifdef CONFIG_NET |
322 | /** | 330 | /** |
@@ -502,12 +510,3 @@ int nla_append(struct sk_buff *skb, int attrlen, const void *data) | |||
502 | } | 510 | } |
503 | EXPORT_SYMBOL(nla_append); | 511 | EXPORT_SYMBOL(nla_append); |
504 | #endif | 512 | #endif |
505 | |||
506 | EXPORT_SYMBOL(nla_validate); | ||
507 | EXPORT_SYMBOL(nla_policy_len); | ||
508 | EXPORT_SYMBOL(nla_parse); | ||
509 | EXPORT_SYMBOL(nla_find); | ||
510 | EXPORT_SYMBOL(nla_strlcpy); | ||
511 | EXPORT_SYMBOL(nla_memcpy); | ||
512 | EXPORT_SYMBOL(nla_memcmp); | ||
513 | EXPORT_SYMBOL(nla_strcmp); | ||
diff --git a/lib/plist.c b/lib/plist.c index 1ebc95f7a46f..d408e774b746 100644 --- a/lib/plist.c +++ b/lib/plist.c | |||
@@ -134,6 +134,46 @@ void plist_del(struct plist_node *node, struct plist_head *head) | |||
134 | plist_check_head(head); | 134 | plist_check_head(head); |
135 | } | 135 | } |
136 | 136 | ||
137 | /** | ||
138 | * plist_requeue - Requeue @node at end of same-prio entries. | ||
139 | * | ||
140 | * This is essentially an optimized plist_del() followed by | ||
141 | * plist_add(). It moves an entry already in the plist to | ||
142 | * after any other same-priority entries. | ||
143 | * | ||
144 | * @node: &struct plist_node pointer - entry to be moved | ||
145 | * @head: &struct plist_head pointer - list head | ||
146 | */ | ||
147 | void plist_requeue(struct plist_node *node, struct plist_head *head) | ||
148 | { | ||
149 | struct plist_node *iter; | ||
150 | struct list_head *node_next = &head->node_list; | ||
151 | |||
152 | plist_check_head(head); | ||
153 | BUG_ON(plist_head_empty(head)); | ||
154 | BUG_ON(plist_node_empty(node)); | ||
155 | |||
156 | if (node == plist_last(head)) | ||
157 | return; | ||
158 | |||
159 | iter = plist_next(node); | ||
160 | |||
161 | if (node->prio != iter->prio) | ||
162 | return; | ||
163 | |||
164 | plist_del(node, head); | ||
165 | |||
166 | plist_for_each_continue(iter, head) { | ||
167 | if (node->prio != iter->prio) { | ||
168 | node_next = &iter->node_list; | ||
169 | break; | ||
170 | } | ||
171 | } | ||
172 | list_add_tail(&node->node_list, node_next); | ||
173 | |||
174 | plist_check_head(head); | ||
175 | } | ||
176 | |||
137 | #ifdef CONFIG_DEBUG_PI_LIST | 177 | #ifdef CONFIG_DEBUG_PI_LIST |
138 | #include <linux/sched.h> | 178 | #include <linux/sched.h> |
139 | #include <linux/module.h> | 179 | #include <linux/module.h> |
@@ -170,12 +210,20 @@ static void __init plist_test_check(int nr_expect) | |||
170 | BUG_ON(prio_pos->prio_list.next != &first->prio_list); | 210 | BUG_ON(prio_pos->prio_list.next != &first->prio_list); |
171 | } | 211 | } |
172 | 212 | ||
213 | static void __init plist_test_requeue(struct plist_node *node) | ||
214 | { | ||
215 | plist_requeue(node, &test_head); | ||
216 | |||
217 | if (node != plist_last(&test_head)) | ||
218 | BUG_ON(node->prio == plist_next(node)->prio); | ||
219 | } | ||
220 | |||
173 | static int __init plist_test(void) | 221 | static int __init plist_test(void) |
174 | { | 222 | { |
175 | int nr_expect = 0, i, loop; | 223 | int nr_expect = 0, i, loop; |
176 | unsigned int r = local_clock(); | 224 | unsigned int r = local_clock(); |
177 | 225 | ||
178 | pr_debug("start plist test\n"); | 226 | printk(KERN_DEBUG "start plist test\n"); |
179 | plist_head_init(&test_head); | 227 | plist_head_init(&test_head); |
180 | for (i = 0; i < ARRAY_SIZE(test_node); i++) | 228 | for (i = 0; i < ARRAY_SIZE(test_node); i++) |
181 | plist_node_init(test_node + i, 0); | 229 | plist_node_init(test_node + i, 0); |
@@ -193,6 +241,10 @@ static int __init plist_test(void) | |||
193 | nr_expect--; | 241 | nr_expect--; |
194 | } | 242 | } |
195 | plist_test_check(nr_expect); | 243 | plist_test_check(nr_expect); |
244 | if (!plist_node_empty(test_node + i)) { | ||
245 | plist_test_requeue(test_node + i); | ||
246 | plist_test_check(nr_expect); | ||
247 | } | ||
196 | } | 248 | } |
197 | 249 | ||
198 | for (i = 0; i < ARRAY_SIZE(test_node); i++) { | 250 | for (i = 0; i < ARRAY_SIZE(test_node); i++) { |
@@ -203,7 +255,7 @@ static int __init plist_test(void) | |||
203 | plist_test_check(nr_expect); | 255 | plist_test_check(nr_expect); |
204 | } | 256 | } |
205 | 257 | ||
206 | pr_debug("end plist test\n"); | 258 | printk(KERN_DEBUG "end plist test\n"); |
207 | return 0; | 259 | return 0; |
208 | } | 260 | } |
209 | 261 | ||
diff --git a/lib/radix-tree.c b/lib/radix-tree.c index 9599aa72d7a0..d64815651e90 100644 --- a/lib/radix-tree.c +++ b/lib/radix-tree.c | |||
@@ -194,7 +194,7 @@ radix_tree_node_alloc(struct radix_tree_root *root) | |||
194 | * succeed in getting a node here (and never reach | 194 | * succeed in getting a node here (and never reach |
195 | * kmem_cache_alloc) | 195 | * kmem_cache_alloc) |
196 | */ | 196 | */ |
197 | rtp = &__get_cpu_var(radix_tree_preloads); | 197 | rtp = this_cpu_ptr(&radix_tree_preloads); |
198 | if (rtp->nr) { | 198 | if (rtp->nr) { |
199 | ret = rtp->nodes[rtp->nr - 1]; | 199 | ret = rtp->nodes[rtp->nr - 1]; |
200 | rtp->nodes[rtp->nr - 1] = NULL; | 200 | rtp->nodes[rtp->nr - 1] = NULL; |
@@ -250,14 +250,14 @@ static int __radix_tree_preload(gfp_t gfp_mask) | |||
250 | int ret = -ENOMEM; | 250 | int ret = -ENOMEM; |
251 | 251 | ||
252 | preempt_disable(); | 252 | preempt_disable(); |
253 | rtp = &__get_cpu_var(radix_tree_preloads); | 253 | rtp = this_cpu_ptr(&radix_tree_preloads); |
254 | while (rtp->nr < ARRAY_SIZE(rtp->nodes)) { | 254 | while (rtp->nr < ARRAY_SIZE(rtp->nodes)) { |
255 | preempt_enable(); | 255 | preempt_enable(); |
256 | node = kmem_cache_alloc(radix_tree_node_cachep, gfp_mask); | 256 | node = kmem_cache_alloc(radix_tree_node_cachep, gfp_mask); |
257 | if (node == NULL) | 257 | if (node == NULL) |
258 | goto out; | 258 | goto out; |
259 | preempt_disable(); | 259 | preempt_disable(); |
260 | rtp = &__get_cpu_var(radix_tree_preloads); | 260 | rtp = this_cpu_ptr(&radix_tree_preloads); |
261 | if (rtp->nr < ARRAY_SIZE(rtp->nodes)) | 261 | if (rtp->nr < ARRAY_SIZE(rtp->nodes)) |
262 | rtp->nodes[rtp->nr++] = node; | 262 | rtp->nodes[rtp->nr++] = node; |
263 | else | 263 | else |
@@ -1296,7 +1296,6 @@ static inline void radix_tree_shrink(struct radix_tree_root *root) | |||
1296 | /** | 1296 | /** |
1297 | * __radix_tree_delete_node - try to free node after clearing a slot | 1297 | * __radix_tree_delete_node - try to free node after clearing a slot |
1298 | * @root: radix tree root | 1298 | * @root: radix tree root |
1299 | * @index: index key | ||
1300 | * @node: node containing @index | 1299 | * @node: node containing @index |
1301 | * | 1300 | * |
1302 | * After clearing the slot at @index in @node from radix tree | 1301 | * After clearing the slot at @index in @node from radix tree |
diff --git a/lib/string.c b/lib/string.c index 9b1f9062a202..992bf30af759 100644 --- a/lib/string.c +++ b/lib/string.c | |||
@@ -107,7 +107,7 @@ EXPORT_SYMBOL(strcpy); | |||
107 | 107 | ||
108 | #ifndef __HAVE_ARCH_STRNCPY | 108 | #ifndef __HAVE_ARCH_STRNCPY |
109 | /** | 109 | /** |
110 | * strncpy - Copy a length-limited, %NUL-terminated string | 110 | * strncpy - Copy a length-limited, C-string |
111 | * @dest: Where to copy the string to | 111 | * @dest: Where to copy the string to |
112 | * @src: Where to copy the string from | 112 | * @src: Where to copy the string from |
113 | * @count: The maximum number of bytes to copy | 113 | * @count: The maximum number of bytes to copy |
@@ -136,7 +136,7 @@ EXPORT_SYMBOL(strncpy); | |||
136 | 136 | ||
137 | #ifndef __HAVE_ARCH_STRLCPY | 137 | #ifndef __HAVE_ARCH_STRLCPY |
138 | /** | 138 | /** |
139 | * strlcpy - Copy a %NUL terminated string into a sized buffer | 139 | * strlcpy - Copy a C-string into a sized buffer |
140 | * @dest: Where to copy the string to | 140 | * @dest: Where to copy the string to |
141 | * @src: Where to copy the string from | 141 | * @src: Where to copy the string from |
142 | * @size: size of destination buffer | 142 | * @size: size of destination buffer |
@@ -182,7 +182,7 @@ EXPORT_SYMBOL(strcat); | |||
182 | 182 | ||
183 | #ifndef __HAVE_ARCH_STRNCAT | 183 | #ifndef __HAVE_ARCH_STRNCAT |
184 | /** | 184 | /** |
185 | * strncat - Append a length-limited, %NUL-terminated string to another | 185 | * strncat - Append a length-limited, C-string to another |
186 | * @dest: The string to be appended to | 186 | * @dest: The string to be appended to |
187 | * @src: The string to append to it | 187 | * @src: The string to append to it |
188 | * @count: The maximum numbers of bytes to copy | 188 | * @count: The maximum numbers of bytes to copy |
@@ -211,7 +211,7 @@ EXPORT_SYMBOL(strncat); | |||
211 | 211 | ||
212 | #ifndef __HAVE_ARCH_STRLCAT | 212 | #ifndef __HAVE_ARCH_STRLCAT |
213 | /** | 213 | /** |
214 | * strlcat - Append a length-limited, %NUL-terminated string to another | 214 | * strlcat - Append a length-limited, C-string to another |
215 | * @dest: The string to be appended to | 215 | * @dest: The string to be appended to |
216 | * @src: The string to append to it | 216 | * @src: The string to append to it |
217 | * @count: The size of the destination buffer. | 217 | * @count: The size of the destination buffer. |
@@ -301,6 +301,24 @@ char *strchr(const char *s, int c) | |||
301 | EXPORT_SYMBOL(strchr); | 301 | EXPORT_SYMBOL(strchr); |
302 | #endif | 302 | #endif |
303 | 303 | ||
304 | #ifndef __HAVE_ARCH_STRCHRNUL | ||
305 | /** | ||
306 | * strchrnul - Find and return a character in a string, or end of string | ||
307 | * @s: The string to be searched | ||
308 | * @c: The character to search for | ||
309 | * | ||
310 | * Returns pointer to first occurrence of 'c' in s. If c is not found, then | ||
311 | * return a pointer to the null byte at the end of s. | ||
312 | */ | ||
313 | char *strchrnul(const char *s, int c) | ||
314 | { | ||
315 | while (*s && *s != (char)c) | ||
316 | s++; | ||
317 | return (char *)s; | ||
318 | } | ||
319 | EXPORT_SYMBOL(strchrnul); | ||
320 | #endif | ||
321 | |||
304 | #ifndef __HAVE_ARCH_STRRCHR | 322 | #ifndef __HAVE_ARCH_STRRCHR |
305 | /** | 323 | /** |
306 | * strrchr - Find the last occurrence of a character in a string | 324 | * strrchr - Find the last occurrence of a character in a string |
diff --git a/lib/swiotlb.c b/lib/swiotlb.c index b604b831f4d1..649d097853a1 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c | |||
@@ -374,7 +374,7 @@ void __init swiotlb_free(void) | |||
374 | io_tlb_nslabs = 0; | 374 | io_tlb_nslabs = 0; |
375 | } | 375 | } |
376 | 376 | ||
377 | static int is_swiotlb_buffer(phys_addr_t paddr) | 377 | int is_swiotlb_buffer(phys_addr_t paddr) |
378 | { | 378 | { |
379 | return paddr >= io_tlb_start && paddr < io_tlb_end; | 379 | return paddr >= io_tlb_start && paddr < io_tlb_end; |
380 | } | 380 | } |
diff --git a/lib/textsearch.c b/lib/textsearch.c index e0cc0146ae62..0c7e9ab2d88f 100644 --- a/lib/textsearch.c +++ b/lib/textsearch.c | |||
@@ -159,6 +159,7 @@ errout: | |||
159 | spin_unlock(&ts_mod_lock); | 159 | spin_unlock(&ts_mod_lock); |
160 | return err; | 160 | return err; |
161 | } | 161 | } |
162 | EXPORT_SYMBOL(textsearch_register); | ||
162 | 163 | ||
163 | /** | 164 | /** |
164 | * textsearch_unregister - unregister a textsearch module | 165 | * textsearch_unregister - unregister a textsearch module |
@@ -190,6 +191,7 @@ out: | |||
190 | spin_unlock(&ts_mod_lock); | 191 | spin_unlock(&ts_mod_lock); |
191 | return err; | 192 | return err; |
192 | } | 193 | } |
194 | EXPORT_SYMBOL(textsearch_unregister); | ||
193 | 195 | ||
194 | struct ts_linear_state | 196 | struct ts_linear_state |
195 | { | 197 | { |
@@ -236,6 +238,7 @@ unsigned int textsearch_find_continuous(struct ts_config *conf, | |||
236 | 238 | ||
237 | return textsearch_find(conf, state); | 239 | return textsearch_find(conf, state); |
238 | } | 240 | } |
241 | EXPORT_SYMBOL(textsearch_find_continuous); | ||
239 | 242 | ||
240 | /** | 243 | /** |
241 | * textsearch_prepare - Prepare a search | 244 | * textsearch_prepare - Prepare a search |
@@ -298,6 +301,7 @@ errout: | |||
298 | 301 | ||
299 | return ERR_PTR(err); | 302 | return ERR_PTR(err); |
300 | } | 303 | } |
304 | EXPORT_SYMBOL(textsearch_prepare); | ||
301 | 305 | ||
302 | /** | 306 | /** |
303 | * textsearch_destroy - destroy a search configuration | 307 | * textsearch_destroy - destroy a search configuration |
@@ -316,9 +320,4 @@ void textsearch_destroy(struct ts_config *conf) | |||
316 | 320 | ||
317 | kfree(conf); | 321 | kfree(conf); |
318 | } | 322 | } |
319 | |||
320 | EXPORT_SYMBOL(textsearch_register); | ||
321 | EXPORT_SYMBOL(textsearch_unregister); | ||
322 | EXPORT_SYMBOL(textsearch_prepare); | ||
323 | EXPORT_SYMBOL(textsearch_find_continuous); | ||
324 | EXPORT_SYMBOL(textsearch_destroy); | 323 | EXPORT_SYMBOL(textsearch_destroy); |
diff --git a/lib/vsprintf.c b/lib/vsprintf.c index 0648291cdafe..6fe2c84eb055 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c | |||
@@ -2347,7 +2347,7 @@ int vsscanf(const char *buf, const char *fmt, va_list args) | |||
2347 | break; | 2347 | break; |
2348 | 2348 | ||
2349 | base = 10; | 2349 | base = 10; |
2350 | is_sign = 0; | 2350 | is_sign = false; |
2351 | 2351 | ||
2352 | switch (*fmt++) { | 2352 | switch (*fmt++) { |
2353 | case 'c': | 2353 | case 'c': |
@@ -2386,7 +2386,7 @@ int vsscanf(const char *buf, const char *fmt, va_list args) | |||
2386 | case 'i': | 2386 | case 'i': |
2387 | base = 0; | 2387 | base = 0; |
2388 | case 'd': | 2388 | case 'd': |
2389 | is_sign = 1; | 2389 | is_sign = true; |
2390 | case 'u': | 2390 | case 'u': |
2391 | break; | 2391 | break; |
2392 | case '%': | 2392 | case '%': |
diff --git a/lib/xz/Kconfig b/lib/xz/Kconfig index 08837db52d94..12d2d777f36b 100644 --- a/lib/xz/Kconfig +++ b/lib/xz/Kconfig | |||
@@ -9,33 +9,33 @@ config XZ_DEC | |||
9 | if XZ_DEC | 9 | if XZ_DEC |
10 | 10 | ||
11 | config XZ_DEC_X86 | 11 | config XZ_DEC_X86 |
12 | bool "x86 BCJ filter decoder" | 12 | bool "x86 BCJ filter decoder" if EXPERT |
13 | default y if X86 | 13 | default y |
14 | select XZ_DEC_BCJ | 14 | select XZ_DEC_BCJ |
15 | 15 | ||
16 | config XZ_DEC_POWERPC | 16 | config XZ_DEC_POWERPC |
17 | bool "PowerPC BCJ filter decoder" | 17 | bool "PowerPC BCJ filter decoder" if EXPERT |
18 | default y if PPC | 18 | default y |
19 | select XZ_DEC_BCJ | 19 | select XZ_DEC_BCJ |
20 | 20 | ||
21 | config XZ_DEC_IA64 | 21 | config XZ_DEC_IA64 |
22 | bool "IA-64 BCJ filter decoder" | 22 | bool "IA-64 BCJ filter decoder" if EXPERT |
23 | default y if IA64 | 23 | default y |
24 | select XZ_DEC_BCJ | 24 | select XZ_DEC_BCJ |
25 | 25 | ||
26 | config XZ_DEC_ARM | 26 | config XZ_DEC_ARM |
27 | bool "ARM BCJ filter decoder" | 27 | bool "ARM BCJ filter decoder" if EXPERT |
28 | default y if ARM | 28 | default y |
29 | select XZ_DEC_BCJ | 29 | select XZ_DEC_BCJ |
30 | 30 | ||
31 | config XZ_DEC_ARMTHUMB | 31 | config XZ_DEC_ARMTHUMB |
32 | bool "ARM-Thumb BCJ filter decoder" | 32 | bool "ARM-Thumb BCJ filter decoder" if EXPERT |
33 | default y if (ARM && ARM_THUMB) | 33 | default y |
34 | select XZ_DEC_BCJ | 34 | select XZ_DEC_BCJ |
35 | 35 | ||
36 | config XZ_DEC_SPARC | 36 | config XZ_DEC_SPARC |
37 | bool "SPARC BCJ filter decoder" | 37 | bool "SPARC BCJ filter decoder" if EXPERT |
38 | default y if SPARC | 38 | default y |
39 | select XZ_DEC_BCJ | 39 | select XZ_DEC_BCJ |
40 | 40 | ||
41 | endif | 41 | endif |
diff --git a/lib/xz/xz_dec_lzma2.c b/lib/xz/xz_dec_lzma2.c index a6cdc969ea42..08c3c8049998 100644 --- a/lib/xz/xz_dec_lzma2.c +++ b/lib/xz/xz_dec_lzma2.c | |||
@@ -1043,6 +1043,8 @@ XZ_EXTERN enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s, | |||
1043 | 1043 | ||
1044 | s->lzma2.sequence = SEQ_LZMA_PREPARE; | 1044 | s->lzma2.sequence = SEQ_LZMA_PREPARE; |
1045 | 1045 | ||
1046 | /* Fall through */ | ||
1047 | |||
1046 | case SEQ_LZMA_PREPARE: | 1048 | case SEQ_LZMA_PREPARE: |
1047 | if (s->lzma2.compressed < RC_INIT_BYTES) | 1049 | if (s->lzma2.compressed < RC_INIT_BYTES) |
1048 | return XZ_DATA_ERROR; | 1050 | return XZ_DATA_ERROR; |
@@ -1053,6 +1055,8 @@ XZ_EXTERN enum xz_ret xz_dec_lzma2_run(struct xz_dec_lzma2 *s, | |||
1053 | s->lzma2.compressed -= RC_INIT_BYTES; | 1055 | s->lzma2.compressed -= RC_INIT_BYTES; |
1054 | s->lzma2.sequence = SEQ_LZMA_RUN; | 1056 | s->lzma2.sequence = SEQ_LZMA_RUN; |
1055 | 1057 | ||
1058 | /* Fall through */ | ||
1059 | |||
1056 | case SEQ_LZMA_RUN: | 1060 | case SEQ_LZMA_RUN: |
1057 | /* | 1061 | /* |
1058 | * Set dictionary limit to indicate how much we want | 1062 | * Set dictionary limit to indicate how much we want |