History

Merge tag 'printk-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk

Pull printk updates from Petr Mladek: - Allow state reset of printk_once() calls. - Prevent crashes when dereferencing invalid pointers in vsprintf(). Only the first byte is checked for simplicity. - Make vsprintf warnings consistent and inlined. - Treewide conversion of obsolete %pf, %pF to %ps, %pF printf modifiers. - Some clean up of vsprintf and test_printf code. * tag 'printk-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: lib/vsprintf: Make function pointer_string static vsprintf: Limit the length of inlined error messages vsprintf: Avoid confusion between invalid address and value vsprintf: Prevent crash when dereferencing invalid pointers vsprintf: Consolidate handling of unknown pointer specifiers vsprintf: Factor out %pO handler as kobject_string() vsprintf: Factor out %pV handler as va_format() vsprintf: Factor out %p[iI] handler as ip_addr_string() vsprintf: Do not check address of well-known strings vsprintf: Consistent %pK handling for kptr_restrict == 0 vsprintf: Shuffle restricted_pointer() printk: Tie printk_once / printk_deferred_once into .data.once for reset treewide: Switch printk users from %pf and %pF to %ps and %pS, respectively lib/test_printf: Switch to bitmap_zalloc()

Linus Torvalds committed 7 years ago

Commit 09686212 parents 573de2a 0f46c7860 files · +410 −272Browse files

Showing the changes to kernel/workqueue.c (1 of 60 files). Show all

Unified · Split

kernel/workqueue.c+6−6
@@ -2271,7 +2271,7 @@ __acquires(&pool->lock) · 2270 unmodified lines
2271 2271
2272 if (unlikely(in_atomic() || lockdep_depth(current) > 0)) {2272 if (unlikely(in_atomic() || lockdep_depth(current) > 0)) {
2273 pr_err("BUG: workqueue leaked lock or atomic: %s/0x%08x/%d\n"2273 pr_err("BUG: workqueue leaked lock or atomic: %s/0x%08x/%d\n"
2274 " last function: %pf\n",2274 " last function: %ps\n",
2275 current->comm, preempt_count(), task_pid_nr(current),2275 current->comm, preempt_count(), task_pid_nr(current),
2276 worker->current_func);2276 worker->current_func);
2277 debug_show_held_locks(current);2277 debug_show_held_locks(current);
@@ -2590,11 +2590,11 @@ static void check_flush_dependency(struct workqueue_struct *target_wq, · 312 unmodified lines
2590 worker = current_wq_worker();2590 worker = current_wq_worker();
2591 2591
2592 WARN_ONCE(current->flags & PF_MEMALLOC,2592 WARN_ONCE(current->flags & PF_MEMALLOC,
2593 "workqueue: PF_MEMALLOC task %d(%s) is flushing !WQ_MEM_RECLAIM %s:%pf",2593 "workqueue: PF_MEMALLOC task %d(%s) is flushing !WQ_MEM_RECLAIM %s:%ps",
2594 current->pid, current->comm, target_wq->name, target_func);2594 current->pid, current->comm, target_wq->name, target_func);
2595 WARN_ONCE(worker && ((worker->current_pwq->wq->flags &2595 WARN_ONCE(worker && ((worker->current_pwq->wq->flags &
2596 (WQ_MEM_RECLAIM | __WQ_LEGACY)) == WQ_MEM_RECLAIM),2596 (WQ_MEM_RECLAIM | __WQ_LEGACY)) == WQ_MEM_RECLAIM),
2597 "workqueue: WQ_MEM_RECLAIM %s:%pf is flushing !WQ_MEM_RECLAIM %s:%pf",2597 "workqueue: WQ_MEM_RECLAIM %s:%ps is flushing !WQ_MEM_RECLAIM %s:%ps",
2598 worker->current_pwq->wq->name, worker->current_func,2598 worker->current_pwq->wq->name, worker->current_func,
2599 target_wq->name, target_func);2599 target_wq->name, target_func);
2600}2600}
@@ -4581,7 +4581,7 @@ void print_worker_info(const char *log_lvl, struct task_struct *task) · 1980 unmodified lines
4581 probe_kernel_read(desc, worker->desc, sizeof(desc) - 1);4581 probe_kernel_read(desc, worker->desc, sizeof(desc) - 1);
4582 4582
4583 if (fn || name[0] || desc[0]) {4583 if (fn || name[0] || desc[0]) {
4584 printk("%sWorkqueue: %s %pf", log_lvl, name, fn);4584 printk("%sWorkqueue: %s %ps", log_lvl, name, fn);
4585 if (strcmp(name, desc))4585 if (strcmp(name, desc))
4586 pr_cont(" (%s)", desc);4586 pr_cont(" (%s)", desc);
4587 pr_cont("\n");4587 pr_cont("\n");
@@ -4606,7 +4606,7 @@ static void pr_cont_work(bool comma, struct work_struct *work) · 18 unmodified lines
4606 pr_cont("%s BAR(%d)", comma ? "," : "",4606 pr_cont("%s BAR(%d)", comma ? "," : "",
4607 task_pid_nr(barr->task));4607 task_pid_nr(barr->task));
4608 } else {4608 } else {
4609 pr_cont("%s %pf", comma ? "," : "", work->func);4609 pr_cont("%s %ps", comma ? "," : "", work->func);
4610 }4610 }
4611}4611}
4612 4612
@@ -4638,7 +4638,7 @@ static void show_pwq(struct pool_workqueue *pwq) · 25 unmodified lines
4638 if (worker->current_pwq != pwq)4638 if (worker->current_pwq != pwq)
4639 continue;4639 continue;
4640 4640
4641 pr_cont("%s %d%s:%pf", comma ? "," : "",4641 pr_cont("%s %d%s:%ps", comma ? "," : "",
4642 task_pid_nr(worker->task),4642 task_pid_nr(worker->task),
4643 worker == pwq->wq->rescuer ? "(RESCUER)" : "",4643 worker == pwq->wq->rescuer ? "(RESCUER)" : "",
4644 worker->current_func);4644 worker->current_func);

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