History

Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net

Conflicts are simple overlapping changes.

David S. Miller committed 5 years ago

Commit 5af84df2 parents 090597b 9f42f67371 files · +3766 −3026Browse files

Showing the changes to kernel (7 of 371 files). Show all

Unified · Split

7 files
  1. kernel/bpf/verifier.c +2 −0
  2. kernel/debug/gdbstub.c +1 −1
  3. kernel/rcu/refscale.c +3 −3
  4. kernel/rcu/tasks.h +2 −4
  5. kernel/rcu/tree_stall.h +2 −2
  6. kernel/scftorture.c +3 −3
  7. kernel/trace/trace_events_hist.c +3 −3
kernel/bpf/verifier.c+2−0
@@ -3754,6 +3754,8 @@ continue_func: · 3753 unmodified lines
37543754 if (tail_call_reachable)
37553755 for (j = 0; j < frame; j++)
37563756 subprog[ret_prog[j]].tail_call_reachable = true;
3757+ if (subprog[0].tail_call_reachable)
3758+ env->prog->aux->tail_call_reachable = true;
37573759
37583760 /* end of for() loop means the last insn of the 'subprog'
37593761 * was reached. Doesn't matter whether it was JA or EXIT
kernel/debug/gdbstub.c+1−1
@@ -1045,8 +1045,8 @@ int gdb_serial_stub(struct kgdb_state *ks) · 1044 unmodified lines
10451045 gdb_cmd_detachkill(ks);
10461046 return DBG_PASS_EVENT;
10471047 }
1048−#endif
10491048 fallthrough;
1049+#endif
10501050 case 'C': /* Exception passing */
10511051 tmp = gdb_cmd_exception_pass(ks);
10521052 if (tmp > 0)
kernel/rcu/refscale.c+3−3
@@ -487,13 +487,13 @@ ref_scale_reader(void *arg) · 486 unmodified lines
487487 s64 duration;
488488
489489 VERBOSE_SCALEOUT_BATCH("ref_scale_reader %ld: task started", me);
490− set_cpus_allowed_ptr(current, cpumask_of(me % nr_cpu_ids));
490+ WARN_ON_ONCE(set_cpus_allowed_ptr(current, cpumask_of(me % nr_cpu_ids)));
491491 set_user_nice(current, MAX_NICE);
492492 atomic_inc(&n_init);
493493 if (holdoff)
494494 schedule_timeout_interruptible(holdoff * HZ);
495495 repeat:
496− VERBOSE_SCALEOUT_BATCH("ref_scale_reader %ld: waiting to start next experiment on cpu %d", me, smp_processor_id());
496+ VERBOSE_SCALEOUT_BATCH("ref_scale_reader %ld: waiting to start next experiment on cpu %d", me, raw_smp_processor_id());
497497
498498 // Wait for signal that this reader can start.
499499 wait_event(rt->wq, (atomic_read(&nreaders_exp) && smp_load_acquire(&rt->start_reader)) ||
@@ -503,7 +503,7 @@ repeat: · 3 unmodified lines
503503 goto end;
504504
505505 // Make sure that the CPU is affinitized appropriately during testing.
506− WARN_ON_ONCE(smp_processor_id() != me);
506+ WARN_ON_ONCE(raw_smp_processor_id() != me);
507507
508508 WRITE_ONCE(rt->start_reader, 0);
509509 if (!atomic_dec_return(&n_started))
kernel/rcu/tasks.h+2−4
@@ -953,10 +953,9 @@ static bool trc_inspect_reader(struct task_struct *t, void *arg) · 952 unmodified lines
953953 in_qs = likely(!t->trc_reader_nesting);
954954 }
955955
956− // Mark as checked. Because this is called from the grace-period
957− // kthread, also remove the task from the holdout list.
956+ // Mark as checked so that the grace-period kthread will
957+ // remove it from the holdout list.
958958 t->trc_reader_checked = true;
959− trc_del_holdout(t);
960959
961960 if (in_qs)
962961 return true; // Already in quiescent state, done!!!
@@ -983,7 +982,6 @@ static void trc_wait_for_one_reader(struct task_struct *t, · 20 unmodified lines
983982 // The current task had better be in a quiescent state.
984983 if (t == current) {
985984 t->trc_reader_checked = true;
986− trc_del_holdout(t);
987985 WARN_ON_ONCE(t->trc_reader_nesting);
988986 return;
989987 }
kernel/rcu/tree_stall.h+2−2
@@ -795,9 +795,9 @@ void show_rcu_gp_kthreads(void) · 794 unmodified lines
795795 jr = j - data_race(rcu_state.gp_req_activity);
796796 js = j - data_race(rcu_state.gp_start);
797797 jw = j - data_race(rcu_state.gp_wake_time);
798− pr_info("%s: wait state: %s(%d) ->state: %#lx ->rt_priority %u delta ->gp_start %lu ->gp_activity %lu ->gp_req_activity %lu ->gp_wake_time %lu ->gp_wake_seq %ld ->gp_seq %ld ->gp_seq_needed %ld ->gp_max %lu ->gp_flags %#x\n",
798+ pr_info("%s: wait state: %s(%d) ->state: %#x ->rt_priority %u delta ->gp_start %lu ->gp_activity %lu ->gp_req_activity %lu ->gp_wake_time %lu ->gp_wake_seq %ld ->gp_seq %ld ->gp_seq_needed %ld ->gp_max %lu ->gp_flags %#x\n",
799799 rcu_state.name, gp_state_getname(rcu_state.gp_state),
800− rcu_state.gp_state, t ? t->__state : 0x1ffffL, t ? t->rt_priority : 0xffU,
800+ rcu_state.gp_state, t ? t->__state : 0x1ffff, t ? t->rt_priority : 0xffU,
801801 js, ja, jr, jw, (long)data_race(rcu_state.gp_wake_seq),
802802 (long)data_race(rcu_state.gp_seq),
803803 (long)data_race(rcu_get_root()->gp_seq_needed),
kernel/scftorture.c+3−3
@@ -405,15 +405,15 @@ static int scftorture_invoker(void *arg) · 404 unmodified lines
405405
406406 VERBOSE_SCFTORTOUT("scftorture_invoker %d: task started", scfp->cpu);
407407 cpu = scfp->cpu % nr_cpu_ids;
408− set_cpus_allowed_ptr(current, cpumask_of(cpu));
408+ WARN_ON_ONCE(set_cpus_allowed_ptr(current, cpumask_of(cpu)));
409409 set_user_nice(current, MAX_NICE);
410410 if (holdoff)
411411 schedule_timeout_interruptible(holdoff * HZ);
412412
413− VERBOSE_SCFTORTOUT("scftorture_invoker %d: Waiting for all SCF torturers from cpu %d", scfp->cpu, smp_processor_id());
413+ VERBOSE_SCFTORTOUT("scftorture_invoker %d: Waiting for all SCF torturers from cpu %d", scfp->cpu, raw_smp_processor_id());
414414
415415 // Make sure that the CPU is affinitized appropriately during testing.
416− curcpu = smp_processor_id();
416+ curcpu = raw_smp_processor_id();
417417 WARN_ONCE(curcpu != scfp->cpu % nr_cpu_ids,
418418 "%s: Wanted CPU %d, running on %d, nr_cpu_ids = %d\n",
419419 __func__, scfp->cpu, curcpu, nr_cpu_ids);
kernel/trace/trace_events_hist.c+3−3
@@ -1689,7 +1689,9 @@ static struct hist_field *create_hist_field(struct hist_trigger_data *hist_data, · 1688 unmodified lines
16891689 if (WARN_ON_ONCE(!field))
16901690 goto out;
16911691
1692− if (is_string_field(field)) {
1692+ /* Pointers to strings are just pointers and dangerous to dereference */
1693+ if (is_string_field(field) &&
1694+ (field->filter_type != FILTER_PTR_STRING)) {
16931695 flags |= HIST_FIELD_FL_STRING;
16941696
16951697 hist_field->size = MAX_FILTER_STR_VAL;
@@ -4495,8 +4497,6 @@ static inline void add_to_key(char *compound_key, void *key, · 2799 unmodified lines
44954497 field = key_field->field;
44964498 if (field->filter_type == FILTER_DYN_STRING)
44974499 size = *(u32 *)(rec + field->offset) >> 16;
4498− else if (field->filter_type == FILTER_PTR_STRING)
4499− size = strlen(key);
45004500 else if (field->filter_type == FILTER_STATIC_STRING)
45014501 size = field->size;
45024502

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t