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 | 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 | 530 | /* Arch-specific enabling code. */ |
| 538 | 531 | ret = __cpu_up(cpu, idle); |
| 539 | 532 | |
| 540 | − irq_unlock_sparse(); | |
| 541 | − | |
| 542 | 533 | if (ret != 0) |
| 543 | 534 | goto out_notify; |
| 544 | 535 | BUG_ON(!cpu_online(cpu)); |
| @@ -287,6 +287,11 @@ static void set_max_threads(unsigned int max_threads_suggested) · 286 unmodified lines | ||
| 287 | 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 | 295 | void __init fork_init(void) |
| 291 | 296 | { |
| 292 | 297 | #ifndef CONFIG_ARCH_TASK_STRUCT_ALLOCATOR |
| @@ -295,7 +300,7 @@ void __init fork_init(void) · 2 unmodified lines | ||
| 295 | 300 | #endif |
| 296 | 301 | /* create a slab on which task_structs can be allocated */ |
| 297 | 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 | 304 | ARCH_MIN_TASKALIGN, SLAB_PANIC | SLAB_NOTRACK, NULL); |
| 300 | 305 | #endif |
| 301 | 306 | |
| @@ -75,13 +75,21 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq) · 74 unmodified lines | ||
| 75 | 75 | !desc->irq_data.chip->irq_retrigger(&desc->irq_data)) { |
| 76 | 76 | #ifdef CONFIG_HARDIRQS_SW_RESEND |
| 77 | 77 | /* |
| 78 | − * If the interrupt has a parent irq and runs | |
| 79 | − * in the thread context of the parent irq, | |
| 80 | − * retrigger the parent. | |
| 78 | + * If the interrupt is running in the thread | |
| 79 | + * context of the parent irq we need to be | |
| 80 | + * careful, because we cannot trigger it | |
| 81 | + * directly. | |
| 81 | 82 | */ |
| 82 | − if (desc->parent_irq && | |
| 83 | − irq_settings_is_nested_thread(desc)) | |
| 83 | + if (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 | 91 | irq = desc->parent_irq; |
| 92 | + } | |
| 85 | 93 | /* Set it pending and activate the softirq: */ |
| 86 | 94 | set_bit(irq, irqs_resend); |
| 87 | 95 | tasklet_schedule(&resend_tasklet); |
| @@ -3683,7 +3683,7 @@ static void throttle_cfs_rq(struct cfs_rq *cfs_rq) · 3682 unmodified lines | ||
| 3683 | 3683 | cfs_rq->throttled = 1; |
| 3684 | 3684 | cfs_rq->throttled_clock = rq_clock(rq); |
| 3685 | 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 | 3689 | * Add to the _head_ of the list, so that an already-started |
| @@ -839,7 +839,6 @@ out: · 838 unmodified lines | ||
| 839 | 839 | raw_spin_unlock(&tick_broadcast_lock); |
| 840 | 840 | return ret; |
| 841 | 841 | } |
| 842 | −EXPORT_SYMBOL_GPL(tick_broadcast_oneshot_control); | |
| 843 | 842 | |
| 844 | 843 | /* |
| 845 | 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 | 364 | return __tick_broadcast_oneshot_control(state); |
| 365 | 365 | } |
| 366 | +EXPORT_SYMBOL_GPL(tick_broadcast_oneshot_control); | |
| 366 | 367 | |
| 367 | 368 | #ifdef CONFIG_HOTPLUG_CPU |
| 368 | 369 | /* |
| @@ -444,6 +444,7 @@ enum { · 443 unmodified lines | ||
| 444 | 444 | |
| 445 | 445 | TRACE_CONTROL_BIT, |
| 446 | 446 | |
| 447 | + TRACE_BRANCH_BIT, | |
| 447 | 448 | /* |
| 448 | 449 | * Abuse of the trace_recursion. |
| 449 | 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 | 36 | struct trace_branch *entry; |
| 37 | 37 | struct ring_buffer *buffer; |
| 38 | 38 | unsigned long flags; |
| 39 | − int cpu, pc; | |
| 39 | + int pc; | |
| 40 | 40 | const char *p; |
| 41 | 41 | |
| 42 | + if (current->trace_recursion & TRACE_BRANCH_BIT) | |
| 43 | + return; | |
| 44 | + | |
| 42 | 45 | /* |
| 43 | 46 | * I would love to save just the ftrace_likely_data pointer, but |
| 44 | 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 | 52 | if (unlikely(!tr)) |
| 50 | 53 | return; |
| 51 | 54 | |
| 52 | − local_irq_save(flags); | |
| 53 | − cpu = raw_smp_processor_id(); | |
| 54 | − data = per_cpu_ptr(tr->trace_buffer.data, cpu); | |
| 55 | − if (atomic_inc_return(&data->disabled) != 1) | |
| 55 | + raw_local_irq_save(flags); | |
| 56 | + current->trace_recursion |= TRACE_BRANCH_BIT; | |
| 57 | + data = this_cpu_ptr(tr->trace_buffer.data); | |
| 58 | + if (atomic_read(&data->disabled)) | |
| 56 | 59 | goto out; |
| 57 | 60 | |
| 58 | 61 | pc = preempt_count(); |
| @@ -81,8 +84,8 @@ probe_likely_condition(struct ftrace_branch_data *f, int val, int expect) · 22 unmodified lines | ||
| 81 | 84 | __buffer_unlock_commit(buffer, event); |
| 82 | 85 | |
| 83 | 86 | out: |
| 84 | − atomic_dec(&data->disabled); | |
| 85 | − local_irq_restore(flags); | |
| 87 | + current->trace_recursion &= ~TRACE_BRANCH_BIT; | |
| 88 | + raw_local_irq_restore(flags); | |
| 86 | 89 | } |
| 87 | 90 | |
| 88 | 91 | static inline |