diff options
Diffstat (limited to 'kernel/lib')
-rw-r--r-- | kernel/lib/bitmap.c | 17 | ||||
-rw-r--r-- | kernel/lib/dma-debug.c | 3 | ||||
-rw-r--r-- | kernel/lib/dump_stack.c | 4 |
3 files changed, 14 insertions, 10 deletions
diff --git a/kernel/lib/bitmap.c b/kernel/lib/bitmap.c index 64c0926f5..40162f87e 100644 --- a/kernel/lib/bitmap.c +++ b/kernel/lib/bitmap.c @@ -506,12 +506,12 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen, unsigned a, b; int c, old_c, totaldigits; const char __user __force *ubuf = (const char __user __force *)buf; - int exp_digit, in_range; + int at_start, in_range; totaldigits = c = 0; bitmap_zero(maskp, nmaskbits); do { - exp_digit = 1; + at_start = 1; in_range = 0; a = b = 0; @@ -540,11 +540,10 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen, break; if (c == '-') { - if (exp_digit || in_range) + if (at_start || in_range) return -EINVAL; b = 0; in_range = 1; - exp_digit = 1; continue; } @@ -554,16 +553,18 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen, b = b * 10 + (c - '0'); if (!in_range) a = b; - exp_digit = 0; + at_start = 0; totaldigits++; } if (!(a <= b)) return -EINVAL; if (b >= nmaskbits) return -ERANGE; - while (a <= b) { - set_bit(a, maskp); - a++; + if (!at_start) { + while (a <= b) { + set_bit(a, maskp); + a++; + } } } while (buflen && c == ','); return 0; diff --git a/kernel/lib/dma-debug.c b/kernel/lib/dma-debug.c index ae4b65e17..dace71fe4 100644 --- a/kernel/lib/dma-debug.c +++ b/kernel/lib/dma-debug.c @@ -574,6 +574,9 @@ void debug_dma_assert_idle(struct page *page) unsigned long flags; phys_addr_t cln; + if (dma_debug_disabled()) + return; + if (!page) return; diff --git a/kernel/lib/dump_stack.c b/kernel/lib/dump_stack.c index 6745c6230..7ccbc6ff8 100644 --- a/kernel/lib/dump_stack.c +++ b/kernel/lib/dump_stack.c @@ -33,7 +33,7 @@ asmlinkage __visible void dump_stack(void) * Permit this cpu to perform nested stack dumps while serialising * against other CPUs */ - preempt_disable(); + migrate_disable(); retry: cpu = smp_processor_id(); @@ -52,7 +52,7 @@ retry: if (!was_locked) atomic_set(&dump_lock, -1); - preempt_enable(); + migrate_enable(); } #else asmlinkage __visible void dump_stack(void) |