Conflicts: net/bridge/br_mdb.c br_mdb.c conflict was a function call being removed to fix a bug in 'net' but whose signature was changed in 'net-next'.
Showing the changes to kernel (8 of 544 files). Show all
Unified · Split
| @@ -527,18 +527,9 @@ static int _cpu_up(unsigned int cpu, int tasks_frozen) · 526 unmodified lines | |||
| 527 | goto out_notify; | 527 | goto out_notify; |
| 528 | } | 528 | } |
| 529 | 529 | ||
| 530 | /* | ||
| 531 | * Some architectures have to walk the irq descriptors to | ||
| 532 | * setup the vector space for the cpu which comes online. | ||
| 533 | * Prevent irq alloc/free across the bringup. | ||
| 534 | */ | ||
| 535 | irq_lock_sparse(); | ||
| 536 | |||
| 537 | /* Arch-specific enabling code. */ | 530 | /* Arch-specific enabling code. */ |
| 538 | ret = __cpu_up(cpu, idle); | 531 | ret = __cpu_up(cpu, idle); |
| 539 | 532 | ||
| 540 | irq_unlock_sparse(); | ||
| 541 | |||
| 542 | if (ret != 0) | 533 | if (ret != 0) |
| 543 | goto out_notify; | 534 | goto out_notify; |
| 544 | BUG_ON(!cpu_online(cpu)); | 535 | BUG_ON(!cpu_online(cpu)); |
| @@ -287,6 +287,11 @@ static void set_max_threads(unsigned int max_threads_suggested) · 286 unmodified lines | |||
| 287 | max_threads = clamp_t(u64, threads, MIN_THREADS, MAX_THREADS); | 287 | max_threads = clamp_t(u64, threads, MIN_THREADS, MAX_THREADS); |
| 288 | } | 288 | } |
| 289 | 289 | ||
| 290 | #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT | ||
| 291 | /* Initialized by the architecture: */ | ||
| 292 | int arch_task_struct_size __read_mostly; | ||
| 293 | #endif | ||
| 294 | |||
| 290 | void __init fork_init(void) | 295 | void __init fork_init(void) |
| 291 | { | 296 | { |
| 292 | #ifndef CONFIG_ARCH_TASK_STRUCT_ALLOCATOR | 297 | #ifndef CONFIG_ARCH_TASK_STRUCT_ALLOCATOR |
| @@ -295,7 +300,7 @@ void __init fork_init(void) · 2 unmodified lines | |||
| 295 | #endif | 300 | #endif |
| 296 | /* create a slab on which task_structs can be allocated */ | 301 | /* create a slab on which task_structs can be allocated */ |
| 297 | task_struct_cachep = | 302 | task_struct_cachep = |
| 298 | kmem_cache_create("task_struct", sizeof(struct task_struct), | 303 | kmem_cache_create("task_struct", arch_task_struct_size, |
| 299 | ARCH_MIN_TASKALIGN, SLAB_PANIC | SLAB_NOTRACK, NULL); | 304 | ARCH_MIN_TASKALIGN, SLAB_PANIC | SLAB_NOTRACK, NULL); |
| 300 | #endif | 305 | #endif |
| 301 | 306 | ||
| @@ -75,13 +75,21 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq) · 74 unmodified lines | |||
| 75 | !desc->irq_data.chip->irq_retrigger(&desc->irq_data)) { | 75 | !desc->irq_data.chip->irq_retrigger(&desc->irq_data)) { |
| 76 | #ifdef CONFIG_HARDIRQS_SW_RESEND | 76 | #ifdef CONFIG_HARDIRQS_SW_RESEND |
| 77 | /* | 77 | /* |
| 78 | * If the interrupt has a parent irq and runs | 78 | * If the interrupt is running in the thread |
| 79 | * in the thread context of the parent irq, | 79 | * context of the parent irq we need to be |
| 80 | * retrigger the parent. | 80 | * careful, because we cannot trigger it |
| 81 | * directly. | ||
| 81 | */ | 82 | */ |
| 82 | if (desc->parent_irq && | 83 | if (irq_settings_is_nested_thread(desc)) { |
| 83 | irq_settings_is_nested_thread(desc)) | 84 | /* |
| 85 | * If the parent_irq is valid, we | ||
| 86 | * retrigger the parent, otherwise we | ||
| 87 | * do nothing. | ||
| 88 | */ | ||
| 89 | if (!desc->parent_irq) | ||
| 90 | return; | ||
| 84 | irq = desc->parent_irq; | 91 | irq = desc->parent_irq; |
| 92 | } | ||
| 85 | /* Set it pending and activate the softirq: */ | 93 | /* Set it pending and activate the softirq: */ |
| 86 | set_bit(irq, irqs_resend); | 94 | set_bit(irq, irqs_resend); |
| 87 | tasklet_schedule(&resend_tasklet); | 95 | tasklet_schedule(&resend_tasklet); |
| @@ -3683,7 +3683,7 @@ static void throttle_cfs_rq(struct cfs_rq *cfs_rq) · 3682 unmodified lines | |||
| 3683 | cfs_rq->throttled = 1; | 3683 | cfs_rq->throttled = 1; |
| 3684 | cfs_rq->throttled_clock = rq_clock(rq); | 3684 | cfs_rq->throttled_clock = rq_clock(rq); |
| 3685 | raw_spin_lock(&cfs_b->lock); | 3685 | raw_spin_lock(&cfs_b->lock); |
| 3686 | empty = list_empty(&cfs_rq->throttled_list); | 3686 | empty = list_empty(&cfs_b->throttled_cfs_rq); |
| 3687 | 3687 | ||
| 3688 | /* | 3688 | /* |
| 3689 | * Add to the _head_ of the list, so that an already-started | 3689 | * Add to the _head_ of the list, so that an already-started |
| @@ -839,7 +839,6 @@ out: · 838 unmodified lines | |||
| 839 | raw_spin_unlock(&tick_broadcast_lock); | 839 | raw_spin_unlock(&tick_broadcast_lock); |
| 840 | return ret; | 840 | return ret; |
| 841 | } | 841 | } |
| 842 | EXPORT_SYMBOL_GPL(tick_broadcast_oneshot_control); | ||
| 843 | 842 | ||
| 844 | /* | 843 | /* |
| 845 | * Reset the one shot broadcast for a cpu | 844 | * Reset the one shot broadcast for a cpu |
| @@ -363,6 +363,7 @@ int tick_broadcast_oneshot_control(enum tick_broadcast_state state) · 362 unmodified lines | |||
| 363 | 363 | ||
| 364 | return __tick_broadcast_oneshot_control(state); | 364 | return __tick_broadcast_oneshot_control(state); |
| 365 | } | 365 | } |
| 366 | EXPORT_SYMBOL_GPL(tick_broadcast_oneshot_control); | ||
| 366 | 367 | ||
| 367 | #ifdef CONFIG_HOTPLUG_CPU | 368 | #ifdef CONFIG_HOTPLUG_CPU |
| 368 | /* | 369 | /* |
| @@ -444,6 +444,7 @@ enum { · 443 unmodified lines | |||
| 444 | 444 | ||
| 445 | TRACE_CONTROL_BIT, | 445 | TRACE_CONTROL_BIT, |
| 446 | 446 | ||
| 447 | TRACE_BRANCH_BIT, | ||
| 447 | /* | 448 | /* |
| 448 | * Abuse of the trace_recursion. | 449 | * Abuse of the trace_recursion. |
| 449 | * As we need a way to maintain state if we are tracing the function | 450 | * As we need a way to maintain state if we are tracing the function |
| @@ -36,9 +36,12 @@ probe_likely_condition(struct ftrace_branch_data *f, int val, int expect) · 35 unmodified lines | |||
| 36 | struct trace_branch *entry; | 36 | struct trace_branch *entry; |
| 37 | struct ring_buffer *buffer; | 37 | struct ring_buffer *buffer; |
| 38 | unsigned long flags; | 38 | unsigned long flags; |
| 39 | int cpu, pc; | 39 | int pc; |
| 40 | const char *p; | 40 | const char *p; |
| 41 | 41 | ||
| 42 | if (current->trace_recursion & TRACE_BRANCH_BIT) | ||
| 43 | return; | ||
| 44 | |||
| 42 | /* | 45 | /* |
| 43 | * I would love to save just the ftrace_likely_data pointer, but | 46 | * I would love to save just the ftrace_likely_data pointer, but |
| 44 | * this code can also be used by modules. Ugly things can happen | 47 | * this code can also be used by modules. Ugly things can happen |
| @@ -49,10 +52,10 @@ probe_likely_condition(struct ftrace_branch_data *f, int val, int expect) · 4 unmodified lines | |||
| 49 | if (unlikely(!tr)) | 52 | if (unlikely(!tr)) |
| 50 | return; | 53 | return; |
| 51 | 54 | ||
| 52 | local_irq_save(flags); | 55 | raw_local_irq_save(flags); |
| 53 | cpu = raw_smp_processor_id(); | 56 | current->trace_recursion |= TRACE_BRANCH_BIT; |
| 54 | data = per_cpu_ptr(tr->trace_buffer.data, cpu); | 57 | data = this_cpu_ptr(tr->trace_buffer.data); |
| 55 | if (atomic_inc_return(&data->disabled) != 1) | 58 | if (atomic_read(&data->disabled)) |
| 56 | goto out; | 59 | goto out; |
| 57 | 60 | ||
| 58 | pc = preempt_count(); | 61 | pc = preempt_count(); |
| @@ -81,8 +84,8 @@ probe_likely_condition(struct ftrace_branch_data *f, int val, int expect) · 22 unmodified lines | |||
| 81 | __buffer_unlock_commit(buffer, event); | 84 | __buffer_unlock_commit(buffer, event); |
| 82 | 85 | ||
| 83 | out: | 86 | out: |
| 84 | atomic_dec(&data->disabled); | 87 | current->trace_recursion &= ~TRACE_BRANCH_BIT; |
| 85 | local_irq_restore(flags); | 88 | raw_local_irq_restore(flags); |
| 86 | } | 89 | } |
| 87 | 90 | ||
| 88 | static inline | 91 | static inline |