提交 09686219 编写于 作者: L Linus Torvalds

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()
WARN_ONCE / WARN_ON_ONCE only print a warning once. WARN_ONCE / WARN_ON_ONCE / printk_once only emit a message once.
echo 1 > /sys/kernel/debug/clear_warn_once echo 1 > /sys/kernel/debug/clear_warn_once
......
...@@ -58,6 +58,14 @@ A raw pointer value may be printed with %p which will hash the address ...@@ -58,6 +58,14 @@ A raw pointer value may be printed with %p which will hash the address
before printing. The kernel also supports extended specifiers for printing before printing. The kernel also supports extended specifiers for printing
pointers of different types. pointers of different types.
Some of the extended specifiers print the data on the given address instead
of printing the address itself. In this case, the following error messages
might be printed instead of the unreachable information::
(null) data on plain NULL address
(efault) data on invalid address
(einval) invalid data on a valid address
Plain Pointers Plain Pointers
-------------- --------------
......
...@@ -249,7 +249,7 @@ static int pci_dac_dma_supported(struct pci_dev *dev, u64 mask) ...@@ -249,7 +249,7 @@ static int pci_dac_dma_supported(struct pci_dev *dev, u64 mask)
ok = 0; ok = 0;
/* If both conditions above are met, we are fine. */ /* If both conditions above are met, we are fine. */
DBGA("pci_dac_dma_supported %s from %pf\n", DBGA("pci_dac_dma_supported %s from %ps\n",
ok ? "yes" : "no", __builtin_return_address(0)); ok ? "yes" : "no", __builtin_return_address(0));
return ok; return ok;
...@@ -281,7 +281,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size, ...@@ -281,7 +281,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size,
&& paddr + size <= __direct_map_size) { && paddr + size <= __direct_map_size) {
ret = paddr + __direct_map_base; ret = paddr + __direct_map_base;
DBGA2("pci_map_single: [%p,%zx] -> direct %llx from %pf\n", DBGA2("pci_map_single: [%p,%zx] -> direct %llx from %ps\n",
cpu_addr, size, ret, __builtin_return_address(0)); cpu_addr, size, ret, __builtin_return_address(0));
return ret; return ret;
...@@ -292,7 +292,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size, ...@@ -292,7 +292,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size,
if (dac_allowed) { if (dac_allowed) {
ret = paddr + alpha_mv.pci_dac_offset; ret = paddr + alpha_mv.pci_dac_offset;
DBGA2("pci_map_single: [%p,%zx] -> DAC %llx from %pf\n", DBGA2("pci_map_single: [%p,%zx] -> DAC %llx from %ps\n",
cpu_addr, size, ret, __builtin_return_address(0)); cpu_addr, size, ret, __builtin_return_address(0));
return ret; return ret;
...@@ -329,7 +329,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size, ...@@ -329,7 +329,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size,
ret = arena->dma_base + dma_ofs * PAGE_SIZE; ret = arena->dma_base + dma_ofs * PAGE_SIZE;
ret += (unsigned long)cpu_addr & ~PAGE_MASK; ret += (unsigned long)cpu_addr & ~PAGE_MASK;
DBGA2("pci_map_single: [%p,%zx] np %ld -> sg %llx from %pf\n", DBGA2("pci_map_single: [%p,%zx] np %ld -> sg %llx from %ps\n",
cpu_addr, size, npages, ret, __builtin_return_address(0)); cpu_addr, size, npages, ret, __builtin_return_address(0));
return ret; return ret;
...@@ -396,14 +396,14 @@ static void alpha_pci_unmap_page(struct device *dev, dma_addr_t dma_addr, ...@@ -396,14 +396,14 @@ static void alpha_pci_unmap_page(struct device *dev, dma_addr_t dma_addr,
&& dma_addr < __direct_map_base + __direct_map_size) { && dma_addr < __direct_map_base + __direct_map_size) {
/* Nothing to do. */ /* Nothing to do. */
DBGA2("pci_unmap_single: direct [%llx,%zx] from %pf\n", DBGA2("pci_unmap_single: direct [%llx,%zx] from %ps\n",
dma_addr, size, __builtin_return_address(0)); dma_addr, size, __builtin_return_address(0));
return; return;
} }
if (dma_addr > 0xffffffff) { if (dma_addr > 0xffffffff) {
DBGA2("pci64_unmap_single: DAC [%llx,%zx] from %pf\n", DBGA2("pci64_unmap_single: DAC [%llx,%zx] from %ps\n",
dma_addr, size, __builtin_return_address(0)); dma_addr, size, __builtin_return_address(0));
return; return;
} }
...@@ -435,7 +435,7 @@ static void alpha_pci_unmap_page(struct device *dev, dma_addr_t dma_addr, ...@@ -435,7 +435,7 @@ static void alpha_pci_unmap_page(struct device *dev, dma_addr_t dma_addr,
spin_unlock_irqrestore(&arena->lock, flags); spin_unlock_irqrestore(&arena->lock, flags);
DBGA2("pci_unmap_single: sg [%llx,%zx] np %ld from %pf\n", DBGA2("pci_unmap_single: sg [%llx,%zx] np %ld from %ps\n",
dma_addr, size, npages, __builtin_return_address(0)); dma_addr, size, npages, __builtin_return_address(0));
} }
...@@ -458,7 +458,7 @@ static void *alpha_pci_alloc_coherent(struct device *dev, size_t size, ...@@ -458,7 +458,7 @@ static void *alpha_pci_alloc_coherent(struct device *dev, size_t size,
cpu_addr = (void *)__get_free_pages(gfp | __GFP_ZERO, order); cpu_addr = (void *)__get_free_pages(gfp | __GFP_ZERO, order);
if (! cpu_addr) { if (! cpu_addr) {
printk(KERN_INFO "pci_alloc_consistent: " printk(KERN_INFO "pci_alloc_consistent: "
"get_free_pages failed from %pf\n", "get_free_pages failed from %ps\n",
__builtin_return_address(0)); __builtin_return_address(0));
/* ??? Really atomic allocation? Otherwise we could play /* ??? Really atomic allocation? Otherwise we could play
with vmalloc and sg if we can't find contiguous memory. */ with vmalloc and sg if we can't find contiguous memory. */
...@@ -477,7 +477,7 @@ static void *alpha_pci_alloc_coherent(struct device *dev, size_t size, ...@@ -477,7 +477,7 @@ static void *alpha_pci_alloc_coherent(struct device *dev, size_t size,
goto try_again; goto try_again;
} }
DBGA2("pci_alloc_consistent: %zx -> [%p,%llx] from %pf\n", DBGA2("pci_alloc_consistent: %zx -> [%p,%llx] from %ps\n",
size, cpu_addr, *dma_addrp, __builtin_return_address(0)); size, cpu_addr, *dma_addrp, __builtin_return_address(0));
return cpu_addr; return cpu_addr;
...@@ -497,7 +497,7 @@ static void alpha_pci_free_coherent(struct device *dev, size_t size, ...@@ -497,7 +497,7 @@ static void alpha_pci_free_coherent(struct device *dev, size_t size,
pci_unmap_single(pdev, dma_addr, size, PCI_DMA_BIDIRECTIONAL); pci_unmap_single(pdev, dma_addr, size, PCI_DMA_BIDIRECTIONAL);
free_pages((unsigned long)cpu_addr, get_order(size)); free_pages((unsigned long)cpu_addr, get_order(size));
DBGA2("pci_free_consistent: [%llx,%zx] from %pf\n", DBGA2("pci_free_consistent: [%llx,%zx] from %ps\n",
dma_addr, size, __builtin_return_address(0)); dma_addr, size, __builtin_return_address(0));
} }
......
...@@ -631,7 +631,7 @@ static void imx6_pm_stby_poweroff(void) ...@@ -631,7 +631,7 @@ static void imx6_pm_stby_poweroff(void)
static int imx6_pm_stby_poweroff_probe(void) static int imx6_pm_stby_poweroff_probe(void)
{ {
if (pm_power_off) { if (pm_power_off) {
pr_warn("%s: pm_power_off already claimed %p %pf!\n", pr_warn("%s: pm_power_off already claimed %p %ps!\n",
__func__, pm_power_off, pm_power_off); __func__, pm_power_off, pm_power_off);
return -EBUSY; return -EBUSY;
} }
......
...@@ -133,7 +133,7 @@ static const char *usermode_action[] = { ...@@ -133,7 +133,7 @@ static const char *usermode_action[] = {
static int alignment_proc_show(struct seq_file *m, void *v) static int alignment_proc_show(struct seq_file *m, void *v)
{ {
seq_printf(m, "User:\t\t%lu\n", ai_user); seq_printf(m, "User:\t\t%lu\n", ai_user);
seq_printf(m, "System:\t\t%lu (%pF)\n", ai_sys, ai_sys_last_pc); seq_printf(m, "System:\t\t%lu (%pS)\n", ai_sys, ai_sys_last_pc);
seq_printf(m, "Skipped:\t%lu\n", ai_skipped); seq_printf(m, "Skipped:\t%lu\n", ai_skipped);
seq_printf(m, "Half:\t\t%lu\n", ai_half); seq_printf(m, "Half:\t\t%lu\n", ai_half);
seq_printf(m, "Word:\t\t%lu\n", ai_word); seq_printf(m, "Word:\t\t%lu\n", ai_word);
......
...@@ -147,7 +147,7 @@ void float_raise(signed char flags) ...@@ -147,7 +147,7 @@ void float_raise(signed char flags)
#ifdef CONFIG_DEBUG_USER #ifdef CONFIG_DEBUG_USER
if (flags & debug) if (flags & debug)
printk(KERN_DEBUG printk(KERN_DEBUG
"NWFPE: %s[%d] takes exception %08x at %pf from %08lx\n", "NWFPE: %s[%d] takes exception %08x at %ps from %08lx\n",
current->comm, current->pid, flags, current->comm, current->pid, flags,
__builtin_return_address(0), GET_USERREG()->ARM_pc); __builtin_return_address(0), GET_USERREG()->ARM_pc);
#endif #endif
......
...@@ -75,7 +75,7 @@ static void __iomem *__ioremap(phys_addr_t addr, unsigned long size, ...@@ -75,7 +75,7 @@ static void __iomem *__ioremap(phys_addr_t addr, unsigned long size,
p >= memory_start && p < virt_to_phys(high_memory) && p >= memory_start && p < virt_to_phys(high_memory) &&
!(p >= __virt_to_phys((phys_addr_t)__bss_stop) && !(p >= __virt_to_phys((phys_addr_t)__bss_stop) &&
p < __virt_to_phys((phys_addr_t)__bss_stop))) { p < __virt_to_phys((phys_addr_t)__bss_stop))) {
pr_warn("__ioremap(): phys addr "PTE_FMT" is RAM lr %pf\n", pr_warn("__ioremap(): phys addr "PTE_FMT" is RAM lr %ps\n",
(unsigned long)p, __builtin_return_address(0)); (unsigned long)p, __builtin_return_address(0));
return NULL; return NULL;
} }
......
...@@ -876,7 +876,7 @@ void ldom_power_off(void) ...@@ -876,7 +876,7 @@ void ldom_power_off(void)
static void ds_conn_reset(struct ds_info *dp) static void ds_conn_reset(struct ds_info *dp)
{ {
printk(KERN_ERR "ds-%llu: ds_conn_reset() from %pf\n", printk(KERN_ERR "ds-%llu: ds_conn_reset() from %ps\n",
dp->id, __builtin_return_address(0)); dp->id, __builtin_return_address(0));
} }
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
static void _print_addr(void *data, unsigned long address, int reliable) static void _print_addr(void *data, unsigned long address, int reliable)
{ {
pr_info(" [<%08lx>] %s%pF\n", address, reliable ? "" : "? ", pr_info(" [<%08lx>] %s%pS\n", address, reliable ? "" : "? ",
(void *)address); (void *)address);
} }
......
...@@ -30,7 +30,7 @@ DECLARE_EVENT_CLASS(x86_exceptions, ...@@ -30,7 +30,7 @@ DECLARE_EVENT_CLASS(x86_exceptions,
__entry->error_code = error_code; __entry->error_code = error_code;
), ),
TP_printk("address=%pf ip=%pf error_code=0x%lx", TP_printk("address=%ps ip=%ps error_code=0x%lx",
(void *)__entry->address, (void *)__entry->ip, (void *)__entry->address, (void *)__entry->ip,
__entry->error_code) ); __entry->error_code) );
......
...@@ -145,7 +145,7 @@ __visible bool ex_handler_rdmsr_unsafe(const struct exception_table_entry *fixup ...@@ -145,7 +145,7 @@ __visible bool ex_handler_rdmsr_unsafe(const struct exception_table_entry *fixup
unsigned long error_code, unsigned long error_code,
unsigned long fault_addr) unsigned long fault_addr)
{ {
if (pr_warn_once("unchecked MSR access error: RDMSR from 0x%x at rIP: 0x%lx (%pF)\n", if (pr_warn_once("unchecked MSR access error: RDMSR from 0x%x at rIP: 0x%lx (%pS)\n",
(unsigned int)regs->cx, regs->ip, (void *)regs->ip)) (unsigned int)regs->cx, regs->ip, (void *)regs->ip))
show_stack_regs(regs); show_stack_regs(regs);
...@@ -162,7 +162,7 @@ __visible bool ex_handler_wrmsr_unsafe(const struct exception_table_entry *fixup ...@@ -162,7 +162,7 @@ __visible bool ex_handler_wrmsr_unsafe(const struct exception_table_entry *fixup
unsigned long error_code, unsigned long error_code,
unsigned long fault_addr) unsigned long fault_addr)
{ {
if (pr_warn_once("unchecked MSR access error: WRMSR to 0x%x (tried to write 0x%08x%08x) at rIP: 0x%lx (%pF)\n", if (pr_warn_once("unchecked MSR access error: WRMSR to 0x%x (tried to write 0x%08x%08x) at rIP: 0x%lx (%pS)\n",
(unsigned int)regs->cx, (unsigned int)regs->dx, (unsigned int)regs->cx, (unsigned int)regs->dx,
(unsigned int)regs->ax, regs->ip, (void *)regs->ip)) (unsigned int)regs->ax, regs->ip, (void *)regs->ip))
show_stack_regs(regs); show_stack_regs(regs);
......
...@@ -105,7 +105,7 @@ void xen_mc_flush(void) ...@@ -105,7 +105,7 @@ void xen_mc_flush(void)
for (i = 0; i < b->mcidx; i++) { for (i = 0; i < b->mcidx; i++) {
if (b->entries[i].result < 0) { if (b->entries[i].result < 0) {
#if MC_DEBUG #if MC_DEBUG
pr_err(" call %2d: op=%lu arg=[%lx] result=%ld\t%pF\n", pr_err(" call %2d: op=%lu arg=[%lx] result=%ld\t%pS\n",
i + 1, i + 1,
b->debug[i].op, b->debug[i].op,
b->debug[i].args[0], b->debug[i].args[0],
......
...@@ -414,7 +414,7 @@ static void acpi_pm_notify_handler(acpi_handle handle, u32 val, void *not_used) ...@@ -414,7 +414,7 @@ static void acpi_pm_notify_handler(acpi_handle handle, u32 val, void *not_used)
if (adev->wakeup.flags.notifier_present) { if (adev->wakeup.flags.notifier_present) {
pm_wakeup_ws_event(adev->wakeup.ws, 0, acpi_s2idle_wakeup()); pm_wakeup_ws_event(adev->wakeup.ws, 0, acpi_s2idle_wakeup());
if (adev->wakeup.context.func) { if (adev->wakeup.context.func) {
acpi_handle_debug(handle, "Running %pF for %s\n", acpi_handle_debug(handle, "Running %pS for %s\n",
adev->wakeup.context.func, adev->wakeup.context.func,
dev_name(adev->wakeup.context.dev)); dev_name(adev->wakeup.context.dev));
adev->wakeup.context.func(&adev->wakeup.context); adev->wakeup.context.func(&adev->wakeup.context);
......
...@@ -207,7 +207,7 @@ static ktime_t initcall_debug_start(struct device *dev, void *cb) ...@@ -207,7 +207,7 @@ static ktime_t initcall_debug_start(struct device *dev, void *cb)
if (!pm_print_times_enabled) if (!pm_print_times_enabled)
return 0; return 0;
dev_info(dev, "calling %pF @ %i, parent: %s\n", cb, dev_info(dev, "calling %pS @ %i, parent: %s\n", cb,
task_pid_nr(current), task_pid_nr(current),
dev->parent ? dev_name(dev->parent) : "none"); dev->parent ? dev_name(dev->parent) : "none");
return ktime_get(); return ktime_get();
...@@ -225,7 +225,7 @@ static void initcall_debug_report(struct device *dev, ktime_t calltime, ...@@ -225,7 +225,7 @@ static void initcall_debug_report(struct device *dev, ktime_t calltime,
rettime = ktime_get(); rettime = ktime_get();
nsecs = (s64) ktime_to_ns(ktime_sub(rettime, calltime)); nsecs = (s64) ktime_to_ns(ktime_sub(rettime, calltime));
dev_info(dev, "%pF returned %d after %Ld usecs\n", cb, error, dev_info(dev, "%pS returned %d after %Ld usecs\n", cb, error,
(unsigned long long)nsecs >> 10); (unsigned long long)nsecs >> 10);
} }
...@@ -2051,7 +2051,7 @@ EXPORT_SYMBOL_GPL(dpm_suspend_start); ...@@ -2051,7 +2051,7 @@ EXPORT_SYMBOL_GPL(dpm_suspend_start);
void __suspend_report_result(const char *function, void *fn, int ret) void __suspend_report_result(const char *function, void *fn, int ret)
{ {
if (ret) if (ret)
pr_err("%s(): %pF returns %d\n", function, fn, ret); pr_err("%s(): %pS returns %d\n", function, fn, ret);
} }
EXPORT_SYMBOL_GPL(__suspend_report_result); EXPORT_SYMBOL_GPL(__suspend_report_result);
......
...@@ -62,19 +62,19 @@ int syscore_suspend(void) ...@@ -62,19 +62,19 @@ int syscore_suspend(void)
list_for_each_entry_reverse(ops, &syscore_ops_list, node) list_for_each_entry_reverse(ops, &syscore_ops_list, node)
if (ops->suspend) { if (ops->suspend) {
if (initcall_debug) if (initcall_debug)
pr_info("PM: Calling %pF\n", ops->suspend); pr_info("PM: Calling %pS\n", ops->suspend);
ret = ops->suspend(); ret = ops->suspend();
if (ret) if (ret)
goto err_out; goto err_out;
WARN_ONCE(!irqs_disabled(), WARN_ONCE(!irqs_disabled(),
"Interrupts enabled after %pF\n", ops->suspend); "Interrupts enabled after %pS\n", ops->suspend);
} }
trace_suspend_resume(TPS("syscore_suspend"), 0, false); trace_suspend_resume(TPS("syscore_suspend"), 0, false);
return 0; return 0;
err_out: err_out:
pr_err("PM: System core suspend callback %pF failed.\n", ops->suspend); pr_err("PM: System core suspend callback %pS failed.\n", ops->suspend);
list_for_each_entry_continue(ops, &syscore_ops_list, node) list_for_each_entry_continue(ops, &syscore_ops_list, node)
if (ops->resume) if (ops->resume)
...@@ -100,10 +100,10 @@ void syscore_resume(void) ...@@ -100,10 +100,10 @@ void syscore_resume(void)
list_for_each_entry(ops, &syscore_ops_list, node) list_for_each_entry(ops, &syscore_ops_list, node)
if (ops->resume) { if (ops->resume) {
if (initcall_debug) if (initcall_debug)
pr_info("PM: Calling %pF\n", ops->resume); pr_info("PM: Calling %pS\n", ops->resume);
ops->resume(); ops->resume();
WARN_ONCE(!irqs_disabled(), WARN_ONCE(!irqs_disabled(),
"Interrupts enabled after %pF\n", ops->resume); "Interrupts enabled after %pS\n", ops->resume);
} }
trace_suspend_resume(TPS("syscore_resume"), 0, false); trace_suspend_resume(TPS("syscore_resume"), 0, false);
} }
...@@ -122,7 +122,7 @@ void syscore_shutdown(void) ...@@ -122,7 +122,7 @@ void syscore_shutdown(void)
list_for_each_entry_reverse(ops, &syscore_ops_list, node) list_for_each_entry_reverse(ops, &syscore_ops_list, node)
if (ops->shutdown) { if (ops->shutdown) {
if (initcall_debug) if (initcall_debug)
pr_info("PM: Calling %pF\n", ops->shutdown); pr_info("PM: Calling %pS\n", ops->shutdown);
ops->shutdown(); ops->shutdown();
} }
......
...@@ -6115,7 +6115,7 @@ int drbd_ack_receiver(struct drbd_thread *thi) ...@@ -6115,7 +6115,7 @@ int drbd_ack_receiver(struct drbd_thread *thi)
err = cmd->fn(connection, &pi); err = cmd->fn(connection, &pi);
if (err) { if (err) {
drbd_err(connection, "%pf failed\n", cmd->fn); drbd_err(connection, "%ps failed\n", cmd->fn);
goto reconnect; goto reconnect;
} }
......
...@@ -1693,7 +1693,7 @@ irqreturn_t floppy_interrupt(int irq, void *dev_id) ...@@ -1693,7 +1693,7 @@ irqreturn_t floppy_interrupt(int irq, void *dev_id)
/* we don't even know which FDC is the culprit */ /* we don't even know which FDC is the culprit */
pr_info("DOR0=%x\n", fdc_state[0].dor); pr_info("DOR0=%x\n", fdc_state[0].dor);
pr_info("floppy interrupt on bizarre fdc %d\n", fdc); pr_info("floppy interrupt on bizarre fdc %d\n", fdc);
pr_info("handler=%pf\n", handler); pr_info("handler=%ps\n", handler);
is_alive(__func__, "bizarre fdc"); is_alive(__func__, "bizarre fdc");
return IRQ_NONE; return IRQ_NONE;
} }
...@@ -1752,7 +1752,7 @@ static void reset_interrupt(void) ...@@ -1752,7 +1752,7 @@ static void reset_interrupt(void)
debugt(__func__, ""); debugt(__func__, "");
result(); /* get the status ready for set_fdc */ result(); /* get the status ready for set_fdc */
if (FDCS->reset) { if (FDCS->reset) {
pr_info("reset set in interrupt, calling %pf\n", cont->error); pr_info("reset set in interrupt, calling %ps\n", cont->error);
cont->error(); /* a reset just after a reset. BAD! */ cont->error(); /* a reset just after a reset. BAD! */
} }
cont->redo(); cont->redo();
...@@ -1793,7 +1793,7 @@ static void show_floppy(void) ...@@ -1793,7 +1793,7 @@ static void show_floppy(void)
pr_info("\n"); pr_info("\n");
pr_info("floppy driver state\n"); pr_info("floppy driver state\n");
pr_info("-------------------\n"); pr_info("-------------------\n");
pr_info("now=%lu last interrupt=%lu diff=%lu last called handler=%pf\n", pr_info("now=%lu last interrupt=%lu diff=%lu last called handler=%ps\n",
jiffies, interruptjiffies, jiffies - interruptjiffies, jiffies, interruptjiffies, jiffies - interruptjiffies,
lasthandler); lasthandler);
...@@ -1812,9 +1812,9 @@ static void show_floppy(void) ...@@ -1812,9 +1812,9 @@ static void show_floppy(void)
pr_info("status=%x\n", fd_inb(FD_STATUS)); pr_info("status=%x\n", fd_inb(FD_STATUS));
pr_info("fdc_busy=%lu\n", fdc_busy); pr_info("fdc_busy=%lu\n", fdc_busy);
if (do_floppy) if (do_floppy)
pr_info("do_floppy=%pf\n", do_floppy); pr_info("do_floppy=%ps\n", do_floppy);
if (work_pending(&floppy_work)) if (work_pending(&floppy_work))
pr_info("floppy_work.func=%pf\n", floppy_work.func); pr_info("floppy_work.func=%ps\n", floppy_work.func);
if (delayed_work_pending(&fd_timer)) if (delayed_work_pending(&fd_timer))
pr_info("delayed work.function=%p expires=%ld\n", pr_info("delayed work.function=%p expires=%ld\n",
fd_timer.work.func, fd_timer.work.func,
......
...@@ -466,7 +466,7 @@ static void cpufreq_list_transition_notifiers(void) ...@@ -466,7 +466,7 @@ static void cpufreq_list_transition_notifiers(void)
mutex_lock(&cpufreq_transition_notifier_list.mutex); mutex_lock(&cpufreq_transition_notifier_list.mutex);
for (nb = cpufreq_transition_notifier_list.head; nb; nb = nb->next) for (nb = cpufreq_transition_notifier_list.head; nb; nb = nb->next)
pr_info("%pF\n", nb->notifier_call); pr_info("%pS\n", nb->notifier_call);
mutex_unlock(&cpufreq_transition_notifier_list.mutex); mutex_unlock(&cpufreq_transition_notifier_list.mutex);
} }
......
...@@ -159,7 +159,7 @@ static inline void mmc_fixup_device(struct mmc_card *card, ...@@ -159,7 +159,7 @@ static inline void mmc_fixup_device(struct mmc_card *card,
(f->ext_csd_rev == EXT_CSD_REV_ANY || (f->ext_csd_rev == EXT_CSD_REV_ANY ||
f->ext_csd_rev == card->ext_csd.rev) && f->ext_csd_rev == card->ext_csd.rev) &&
rev >= f->rev_start && rev <= f->rev_end) { rev >= f->rev_start && rev <= f->rev_end) {
dev_dbg(&card->dev, "calling %pf\n", f->vendor_fixup); dev_dbg(&card->dev, "calling %ps\n", f->vendor_fixup);
f->vendor_fixup(card, f->data); f->vendor_fixup(card, f->data);
} }
} }
......
...@@ -581,7 +581,7 @@ int __nd_driver_register(struct nd_device_driver *nd_drv, struct module *owner, ...@@ -581,7 +581,7 @@ int __nd_driver_register(struct nd_device_driver *nd_drv, struct module *owner,
struct device_driver *drv = &nd_drv->drv; struct device_driver *drv = &nd_drv->drv;
if (!nd_drv->type) { if (!nd_drv->type) {
pr_debug("driver type bitmask not set (%pf)\n", pr_debug("driver type bitmask not set (%ps)\n",
__builtin_return_address(0)); __builtin_return_address(0));
return -EINVAL; return -EINVAL;
} }
......
...@@ -58,7 +58,7 @@ static int validate_dimm(struct nvdimm_drvdata *ndd) ...@@ -58,7 +58,7 @@ static int validate_dimm(struct nvdimm_drvdata *ndd)
rc = nvdimm_check_config_data(ndd->dev); rc = nvdimm_check_config_data(ndd->dev);
if (rc) if (rc)
dev_dbg(ndd->dev, "%pf: %s error: %d\n", dev_dbg(ndd->dev, "%ps: %s error: %d\n",
__builtin_return_address(0), __func__, rc); __builtin_return_address(0), __func__, rc);
return rc; return rc;
} }
......
...@@ -578,7 +578,7 @@ static int pci_legacy_suspend(struct device *dev, pm_message_t state) ...@@ -578,7 +578,7 @@ static int pci_legacy_suspend(struct device *dev, pm_message_t state)
if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
&& pci_dev->current_state != PCI_UNKNOWN) { && pci_dev->current_state != PCI_UNKNOWN) {
WARN_ONCE(pci_dev->current_state != prev, WARN_ONCE(pci_dev->current_state != prev,
"PCI PM: Device state not saved by %pF\n", "PCI PM: Device state not saved by %pS\n",
drv->suspend); drv->suspend);
} }
} }
...@@ -605,7 +605,7 @@ static int pci_legacy_suspend_late(struct device *dev, pm_message_t state) ...@@ -605,7 +605,7 @@ static int pci_legacy_suspend_late(struct device *dev, pm_message_t state)
if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
&& pci_dev->current_state != PCI_UNKNOWN) { && pci_dev->current_state != PCI_UNKNOWN) {
WARN_ONCE(pci_dev->current_state != prev, WARN_ONCE(pci_dev->current_state != prev,
"PCI PM: Device state not saved by %pF\n", "PCI PM: Device state not saved by %pS\n",
drv->suspend_late); drv->suspend_late);
goto Fixup; goto Fixup;
} }
...@@ -773,7 +773,7 @@ static int pci_pm_suspend(struct device *dev) ...@@ -773,7 +773,7 @@ static int pci_pm_suspend(struct device *dev)
if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
&& pci_dev->current_state != PCI_UNKNOWN) { && pci_dev->current_state != PCI_UNKNOWN) {
WARN_ONCE(pci_dev->current_state != prev, WARN_ONCE(pci_dev->current_state != prev,
"PCI PM: State of device not saved by %pF\n", "PCI PM: State of device not saved by %pS\n",
pm->suspend); pm->suspend);
} }
} }
...@@ -821,7 +821,7 @@ static int pci_pm_suspend_noirq(struct device *dev) ...@@ -821,7 +821,7 @@ static int pci_pm_suspend_noirq(struct device *dev)
if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0 if (!pci_dev->state_saved && pci_dev->current_state != PCI_D0
&& pci_dev->current_state != PCI_UNKNOWN) { && pci_dev->current_state != PCI_UNKNOWN) {
WARN_ONCE(pci_dev->current_state != prev, WARN_ONCE(pci_dev->current_state != prev,
"PCI PM: State of device not saved by %pF\n", "PCI PM: State of device not saved by %pS\n",
pm->suspend_noirq); pm->suspend_noirq);
goto Fixup; goto Fixup;
} }
...@@ -1260,11 +1260,11 @@ static int pci_pm_runtime_suspend(struct device *dev) ...@@ -1260,11 +1260,11 @@ static int pci_pm_runtime_suspend(struct device *dev)
* log level. * log level.
*/ */
if (error == -EBUSY || error == -EAGAIN) { if (error == -EBUSY || error == -EAGAIN) {
dev_dbg(dev, "can't suspend now (%pf returned %d)\n", dev_dbg(dev, "can't suspend now (%ps returned %d)\n",
pm->runtime_suspend, error); pm->runtime_suspend, error);
return error; return error;
} else if (error) { } else if (error) {
dev_err(dev, "can't suspend (%pf returned %d)\n", dev_err(dev, "can't suspend (%ps returned %d)\n",
pm->runtime_suspend, error); pm->runtime_suspend, error);
return error; return error;
} }
...@@ -1276,7 +1276,7 @@ static int pci_pm_runtime_suspend(struct device *dev) ...@@ -1276,7 +1276,7 @@ static int pci_pm_runtime_suspend(struct device *dev)
&& !pci_dev->state_saved && pci_dev->current_state != PCI_D0 && !pci_dev->state_saved && pci_dev->current_state != PCI_D0
&& pci_dev->current_state != PCI_UNKNOWN) { && pci_dev->current_state != PCI_UNKNOWN) {
WARN_ONCE(pci_dev->current_state != prev, WARN_ONCE(pci_dev->current_state != prev,
"PCI PM: State of device not saved by %pF\n", "PCI PM: State of device not saved by %pS\n",
pm->runtime_suspend); pm->runtime_suspend);
return 0; return 0;
} }
......
...@@ -36,7 +36,7 @@ static ktime_t fixup_debug_start(struct pci_dev *dev, ...@@ -36,7 +36,7 @@ static ktime_t fixup_debug_start(struct pci_dev *dev,
void (*fn)(struct pci_dev *dev)) void (*fn)(struct pci_dev *dev))
{ {
if (initcall_debug) if (initcall_debug)
pci_info(dev, "calling %pF @ %i\n", fn, task_pid_nr(current)); pci_info(dev, "calling %pS @ %i\n", fn, task_pid_nr(current));
return ktime_get(); return ktime_get();
} }
...@@ -51,7 +51,7 @@ static void fixup_debug_report(struct pci_dev *dev, ktime_t calltime, ...@@ -51,7 +51,7 @@ static void fixup_debug_report(struct pci_dev *dev, ktime_t calltime,
delta = ktime_sub(rettime, calltime); delta = ktime_sub(rettime, calltime);
duration = (unsigned long long) ktime_to_ns(delta) >> 10; duration = (unsigned long long) ktime_to_ns(delta) >> 10;
if (initcall_debug || duration > 10000) if (initcall_debug || duration > 10000)
pci_info(dev, "%pF took %lld usecs\n", fn, duration); pci_info(dev, "%pS took %lld usecs\n", fn, duration);
} }
static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f, static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f,
......
...@@ -458,7 +458,7 @@ void pnp_fixup_device(struct pnp_dev *dev) ...@@ -458,7 +458,7 @@ void pnp_fixup_device(struct pnp_dev *dev)
for (f = pnp_fixups; *f->id; f++) { for (f = pnp_fixups; *f->id; f++) {
if (!compare_pnp_id(dev->id, f->id)) if (!compare_pnp_id(dev->id, f->id))
continue; continue;
pnp_dbg(&dev->dev, "%s: calling %pF\n", f->id, pnp_dbg(&dev->dev, "%s: calling %pS\n", f->id,
f->quirk_function); f->quirk_function);
f->quirk_function(dev); f->quirk_function(dev);
} }
......
...@@ -1031,7 +1031,7 @@ static int esp_check_spur_intr(struct esp *esp) ...@@ -1031,7 +1031,7 @@ static int esp_check_spur_intr(struct esp *esp)
static void esp_schedule_reset(struct esp *esp) static void esp_schedule_reset(struct esp *esp)
{ {
esp_log_reset("esp_schedule_reset() from %pf\n", esp_log_reset("esp_schedule_reset() from %ps\n",
__builtin_return_address(0)); __builtin_return_address(0));
esp->flags |= ESP_FLAG_RESETTING; esp->flags |= ESP_FLAG_RESETTING;
esp_event(esp, ESP_EVENT_RESET); esp_event(esp, ESP_EVENT_RESET);
......
...@@ -539,7 +539,7 @@ static int run_test_both_formats(test_func_t test_func, u32 sectorsize, ...@@ -539,7 +539,7 @@ static int run_test_both_formats(test_func_t test_func, u32 sectorsize,
ret = run_test(test_func, 0, sectorsize, nodesize, alignment); ret = run_test(test_func, 0, sectorsize, nodesize, alignment);
if (ret) { if (ret) {
test_err( test_err(
"%pf failed with extents, sectorsize=%u, nodesize=%u, alignment=%u", "%ps failed with extents, sectorsize=%u, nodesize=%u, alignment=%u",
test_func, sectorsize, nodesize, alignment); test_func, sectorsize, nodesize, alignment);
test_ret = ret; test_ret = ret;
} }
...@@ -547,7 +547,7 @@ static int run_test_both_formats(test_func_t test_func, u32 sectorsize, ...@@ -547,7 +547,7 @@ static int run_test_both_formats(test_func_t test_func, u32 sectorsize,
ret = run_test(test_func, 1, sectorsize, nodesize, alignment); ret = run_test(test_func, 1, sectorsize, nodesize, alignment);
if (ret) { if (ret) {
test_err( test_err(
"%pf failed with bitmaps, sectorsize=%u, nodesize=%u, alignment=%u", "%ps failed with bitmaps, sectorsize=%u, nodesize=%u, alignment=%u",
test_func, sectorsize, nodesize, alignment); test_func, sectorsize, nodesize, alignment);
test_ret = ret; test_ret = ret;
} }
......
...@@ -1338,7 +1338,7 @@ struct f2fs_private_dio { ...@@ -1338,7 +1338,7 @@ struct f2fs_private_dio {
#ifdef CONFIG_F2FS_FAULT_INJECTION #ifdef CONFIG_F2FS_FAULT_INJECTION
#define f2fs_show_injection_info(type) \ #define f2fs_show_injection_info(type) \
printk_ratelimited("%sF2FS-fs : inject %s in %s of %pF\n", \ printk_ratelimited("%sF2FS-fs : inject %s in %s of %pS\n", \
KERN_INFO, f2fs_fault_name[type], \ KERN_INFO, f2fs_fault_name[type], \
__func__, __builtin_return_address(0)) __func__, __builtin_return_address(0))
static inline bool time_to_inject(struct f2fs_sb_info *sbi, int type) static inline bool time_to_inject(struct f2fs_sb_info *sbi, int type)
......
...@@ -115,7 +115,7 @@ static int pstore_ftrace_seq_show(struct seq_file *s, void *v) ...@@ -115,7 +115,7 @@ static int pstore_ftrace_seq_show(struct seq_file *s, void *v)
rec = (struct pstore_ftrace_record *)(ps->record->buf + data->off); rec = (struct pstore_ftrace_record *)(ps->record->buf + data->off);
seq_printf(s, "CPU:%d ts:%llu %08lx %08lx %pf <- %pF\n", seq_printf(s, "CPU:%d ts:%llu %08lx %08lx %ps <- %pS\n",
pstore_ftrace_decode_cpu(rec), pstore_ftrace_decode_cpu(rec),
pstore_ftrace_read_timestamp(rec), pstore_ftrace_read_timestamp(rec),
rec->ip, rec->parent_ip, (void *)rec->ip, rec->ip, rec->parent_ip, (void *)rec->ip,
......
...@@ -347,7 +347,7 @@ extern int kptr_restrict; ...@@ -347,7 +347,7 @@ extern int kptr_restrict;
#ifdef CONFIG_PRINTK #ifdef CONFIG_PRINTK
#define printk_once(fmt, ...) \ #define printk_once(fmt, ...) \
({ \ ({ \
static bool __print_once __read_mostly; \ static bool __section(.data.once) __print_once; \
bool __ret_print_once = !__print_once; \ bool __ret_print_once = !__print_once; \
\ \
if (!__print_once) { \ if (!__print_once) { \
...@@ -358,7 +358,7 @@ extern int kptr_restrict; ...@@ -358,7 +358,7 @@ extern int kptr_restrict;
}) })
#define printk_deferred_once(fmt, ...) \ #define printk_deferred_once(fmt, ...) \
({ \ ({ \
static bool __print_once __read_mostly; \ static bool __section(.data.once) __print_once; \
bool __ret_print_once = !__print_once; \ bool __ret_print_once = !__print_once; \
\ \
if (!__print_once) { \ if (!__print_once) { \
......
...@@ -1345,7 +1345,7 @@ DECLARE_EVENT_CLASS(btrfs__work, ...@@ -1345,7 +1345,7 @@ DECLARE_EVENT_CLASS(btrfs__work,
__entry->normal_work = &work->normal_work; __entry->normal_work = &work->normal_work;
), ),
TP_printk_btrfs("work=%p (normal_work=%p) wq=%p func=%pf ordered_func=%p " TP_printk_btrfs("work=%p (normal_work=%p) wq=%p func=%ps ordered_func=%p "
"ordered_free=%p", "ordered_free=%p",
__entry->work, __entry->normal_work, __entry->wq, __entry->work, __entry->normal_work, __entry->wq,
__entry->func, __entry->ordered_func, __entry->ordered_free) __entry->func, __entry->ordered_func, __entry->ordered_free)
......
...@@ -30,7 +30,7 @@ TRACE_EVENT(cpuhp_enter, ...@@ -30,7 +30,7 @@ TRACE_EVENT(cpuhp_enter,
__entry->fun = fun; __entry->fun = fun;
), ),
TP_printk("cpu: %04u target: %3d step: %3d (%pf)", TP_printk("cpu: %04u target: %3d step: %3d (%ps)",
__entry->cpu, __entry->target, __entry->idx, __entry->fun) __entry->cpu, __entry->target, __entry->idx, __entry->fun)
); );
...@@ -58,7 +58,7 @@ TRACE_EVENT(cpuhp_multi_enter, ...@@ -58,7 +58,7 @@ TRACE_EVENT(cpuhp_multi_enter,
__entry->fun = fun; __entry->fun = fun;
), ),
TP_printk("cpu: %04u target: %3d step: %3d (%pf)", TP_printk("cpu: %04u target: %3d step: %3d (%ps)",
__entry->cpu, __entry->target, __entry->idx, __entry->fun) __entry->cpu, __entry->target, __entry->idx, __entry->fun)
); );
......
...@@ -27,7 +27,7 @@ DECLARE_EVENT_CLASS(preemptirq_template, ...@@ -27,7 +27,7 @@ DECLARE_EVENT_CLASS(preemptirq_template,
__entry->parent_offs = (u32)(parent_ip - (unsigned long)_stext); __entry->parent_offs = (u32)(parent_ip - (unsigned long)_stext);
), ),
TP_printk("caller=%pF parent=%pF", TP_printk("caller=%pS parent=%pS",
(void *)((unsigned long)(_stext) + __entry->caller_offs), (void *)((unsigned long)(_stext) + __entry->caller_offs),
(void *)((unsigned long)(_stext) + __entry->parent_offs)) (void *)((unsigned long)(_stext) + __entry->parent_offs))
); );
......
...@@ -491,7 +491,7 @@ TRACE_EVENT(rcu_callback, ...@@ -491,7 +491,7 @@ TRACE_EVENT(rcu_callback,
__entry->qlen = qlen; __entry->qlen = qlen;
), ),
TP_printk("%s rhp=%p func=%pf %ld/%ld", TP_printk("%s rhp=%p func=%ps %ld/%ld",
__entry->rcuname, __entry->rhp, __entry->func, __entry->rcuname, __entry->rhp, __entry->func,
__entry->qlen_lazy, __entry->qlen) __entry->qlen_lazy, __entry->qlen)
); );
...@@ -587,7 +587,7 @@ TRACE_EVENT(rcu_invoke_callback, ...@@ -587,7 +587,7 @@ TRACE_EVENT(rcu_invoke_callback,
__entry->func = rhp->func; __entry->func = rhp->func;
), ),
TP_printk("%s rhp=%p func=%pf", TP_printk("%s rhp=%p func=%ps",
__entry->rcuname, __entry->rhp, __entry->func) __entry->rcuname, __entry->rhp, __entry->func)
); );
......
...@@ -146,7 +146,7 @@ DECLARE_EVENT_CLASS(rpc_task_running, ...@@ -146,7 +146,7 @@ DECLARE_EVENT_CLASS(rpc_task_running,
__entry->flags = task->tk_flags; __entry->flags = task->tk_flags;
), ),
TP_printk("task:%u@%d flags=%s runstate=%s status=%d action=%pf", TP_printk("task:%u@%d flags=%s runstate=%s status=%d action=%ps",
__entry->task_id, __entry->client_id, __entry->task_id, __entry->client_id,
rpc_show_task_flags(__entry->flags), rpc_show_task_flags(__entry->flags),
rpc_show_runstate(__entry->runstate), rpc_show_runstate(__entry->runstate),
......
...@@ -226,7 +226,7 @@ TRACE_EVENT(mm_shrink_slab_start, ...@@ -226,7 +226,7 @@ TRACE_EVENT(mm_shrink_slab_start,
__entry->priority = priority; __entry->priority = priority;
), ),
TP_printk("%pF %p: nid: %d objects to shrink %ld gfp_flags %s cache items %ld delta %lld total_scan %ld priority %d", TP_printk("%pS %p: nid: %d objects to shrink %ld gfp_flags %s cache items %ld delta %lld total_scan %ld priority %d",
__entry->shrink, __entry->shrink,
__entry->shr, __entry->shr,
__entry->nid, __entry->nid,
...@@ -265,7 +265,7 @@ TRACE_EVENT(mm_shrink_slab_end, ...@@ -265,7 +265,7 @@ TRACE_EVENT(mm_shrink_slab_end,
__entry->total_scan = total_scan; __entry->total_scan = total_scan;
), ),
TP_printk("%pF %p: nid: %d unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d", TP_printk("%pS %p: nid: %d unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d",
__entry->shrink, __entry->shrink,
__entry->shr, __entry->shr,
__entry->nid, __entry->nid,
......
...@@ -60,7 +60,7 @@ TRACE_EVENT(workqueue_queue_work, ...@@ -60,7 +60,7 @@ TRACE_EVENT(workqueue_queue_work,
__entry->cpu = pwq->pool->cpu; __entry->cpu = pwq->pool->cpu;
), ),
TP_printk("work struct=%p function=%pf workqueue=%p req_cpu=%u cpu=%u", TP_printk("work struct=%p function=%ps workqueue=%p req_cpu=%u cpu=%u",
__entry->work, __entry->function, __entry->workqueue, __entry->work, __entry->function, __entry->workqueue,
__entry->req_cpu, __entry->cpu) __entry->req_cpu, __entry->cpu)
); );
...@@ -102,7 +102,7 @@ TRACE_EVENT(workqueue_execute_start, ...@@ -102,7 +102,7 @@ TRACE_EVENT(workqueue_execute_start,
__entry->function = work->func; __entry->function = work->func;
), ),
TP_printk("work struct %p: function %pf", __entry->work, __entry->function) TP_printk("work struct %p: function %ps", __entry->work, __entry->function)
); );
/** /**
......
...@@ -73,7 +73,7 @@ TRACE_EVENT(xen_mc_callback, ...@@ -73,7 +73,7 @@ TRACE_EVENT(xen_mc_callback,
__entry->fn = fn; __entry->fn = fn;
__entry->data = data; __entry->data = data;
), ),
TP_printk("callback %pf, data %p", TP_printk("callback %ps, data %p",
__entry->fn, __entry->data) __entry->fn, __entry->data)
); );
......
...@@ -846,7 +846,7 @@ trace_initcall_start_cb(void *data, initcall_t fn) ...@@ -846,7 +846,7 @@ trace_initcall_start_cb(void *data, initcall_t fn)
{ {
ktime_t *calltime = (ktime_t *)data; ktime_t *calltime = (ktime_t *)data;
printk(KERN_DEBUG "calling %pF @ %i\n", fn, task_pid_nr(current)); printk(KERN_DEBUG "calling %pS @ %i\n", fn, task_pid_nr(current));
*calltime = ktime_get(); *calltime = ktime_get();
} }
...@@ -860,7 +860,7 @@ trace_initcall_finish_cb(void *data, initcall_t fn, int ret) ...@@ -860,7 +860,7 @@ trace_initcall_finish_cb(void *data, initcall_t fn, int ret)
rettime = ktime_get(); rettime = ktime_get();
delta = ktime_sub(rettime, *calltime); delta = ktime_sub(rettime, *calltime);
duration = (unsigned long long) ktime_to_ns(delta) >> 10; duration = (unsigned long long) ktime_to_ns(delta) >> 10;
printk(KERN_DEBUG "initcall %pF returned %d after %lld usecs\n", printk(KERN_DEBUG "initcall %pS returned %d after %lld usecs\n",
fn, ret, duration); fn, ret, duration);
} }
...@@ -917,7 +917,7 @@ int __init_or_module do_one_initcall(initcall_t fn) ...@@ -917,7 +917,7 @@ int __init_or_module do_one_initcall(initcall_t fn)
strlcat(msgbuf, "disabled interrupts ", sizeof(msgbuf)); strlcat(msgbuf, "disabled interrupts ", sizeof(msgbuf));
local_irq_enable(); local_irq_enable();
} }
WARN(msgbuf[0], "initcall %pF returned with %s\n", fn, msgbuf); WARN(msgbuf[0], "initcall %pS returned with %s\n", fn, msgbuf);
add_latent_entropy(); add_latent_entropy();
return ret; return ret;
......
...@@ -119,7 +119,7 @@ static void async_run_entry_fn(struct work_struct *work) ...@@ -119,7 +119,7 @@ static void async_run_entry_fn(struct work_struct *work)
/* 1) run (and print duration) */ /* 1) run (and print duration) */
if (initcall_debug && system_state < SYSTEM_RUNNING) { if (initcall_debug && system_state < SYSTEM_RUNNING) {
pr_debug("calling %lli_%pF @ %i\n", pr_debug("calling %lli_%pS @ %i\n",
(long long)entry->cookie, (long long)entry->cookie,
entry->func, task_pid_nr(current)); entry->func, task_pid_nr(current));
calltime = ktime_get(); calltime = ktime_get();
...@@ -128,7 +128,7 @@ static void async_run_entry_fn(struct work_struct *work) ...@@ -128,7 +128,7 @@ static void async_run_entry_fn(struct work_struct *work)
if (initcall_debug && system_state < SYSTEM_RUNNING) { if (initcall_debug && system_state < SYSTEM_RUNNING) {
rettime = ktime_get(); rettime = ktime_get();
delta = ktime_sub(rettime, calltime); delta = ktime_sub(rettime, calltime);
pr_debug("initcall %lli_%pF returned 0 after %lld usecs\n", pr_debug("initcall %lli_%pS returned 0 after %lld usecs\n",
(long long)entry->cookie, (long long)entry->cookie,
entry->func, entry->func,
(long long)ktime_to_ns(delta) >> 10); (long long)ktime_to_ns(delta) >> 10);
......
...@@ -2028,7 +2028,7 @@ static void handler_chain(struct uprobe *uprobe, struct pt_regs *regs) ...@@ -2028,7 +2028,7 @@ static void handler_chain(struct uprobe *uprobe, struct pt_regs *regs)
if (uc->handler) { if (uc->handler) {
rc = uc->handler(uc, regs); rc = uc->handler(uc, regs);
WARN(rc & ~UPROBE_HANDLER_MASK, WARN(rc & ~UPROBE_HANDLER_MASK,
"bad rc=0x%x from %pf()\n", rc, uc->handler); "bad rc=0x%x from %ps()\n", rc, uc->handler);
} }
if (uc->ret_handler) if (uc->ret_handler)
......
...@@ -210,7 +210,7 @@ static int fei_seq_show(struct seq_file *m, void *v) ...@@ -210,7 +210,7 @@ static int fei_seq_show(struct seq_file *m, void *v)
{ {
struct fei_attr *attr = list_entry(v, struct fei_attr, list); struct fei_attr *attr = list_entry(v, struct fei_attr, list);
seq_printf(m, "%pf\n", attr->kp.addr); seq_printf(m, "%ps\n", attr->kp.addr);
return 0; return 0;
} }
......
...@@ -152,7 +152,7 @@ static int irq_debug_show(struct seq_file *m, void *p) ...@@ -152,7 +152,7 @@ static int irq_debug_show(struct seq_file *m, void *p)
raw_spin_lock_irq(&desc->lock); raw_spin_lock_irq(&desc->lock);
data = irq_desc_get_irq_data(desc); data = irq_desc_get_irq_data(desc);
seq_printf(m, "handler: %pf\n", desc->handle_irq); seq_printf(m, "handler: %ps\n", desc->handle_irq);
seq_printf(m, "device: %s\n", desc->dev_name); seq_printf(m, "device: %s\n", desc->dev_name);
seq_printf(m, "status: 0x%08x\n", desc->status_use_accessors); seq_printf(m, "status: 0x%08x\n", desc->status_use_accessors);
irq_debug_show_bits(m, 0, desc->status_use_accessors, irqdesc_states, irq_debug_show_bits(m, 0, desc->status_use_accessors, irqdesc_states,
......
...@@ -149,7 +149,7 @@ irqreturn_t __handle_irq_event_percpu(struct irq_desc *desc, unsigned int *flags ...@@ -149,7 +149,7 @@ irqreturn_t __handle_irq_event_percpu(struct irq_desc *desc, unsigned int *flags
res = action->handler(irq, action->dev_id); res = action->handler(irq, action->dev_id);
trace_irq_handler_exit(irq, action, res); trace_irq_handler_exit(irq, action, res);
if (WARN_ONCE(!irqs_disabled(),"irq %u handler %pF enabled interrupts\n", if (WARN_ONCE(!irqs_disabled(),"irq %u handler %pS enabled interrupts\n",
irq, action->handler)) irq, action->handler))
local_irq_disable(); local_irq_disable();
......
...@@ -781,7 +781,7 @@ int __irq_set_trigger(struct irq_desc *desc, unsigned long flags) ...@@ -781,7 +781,7 @@ int __irq_set_trigger(struct irq_desc *desc, unsigned long flags)
ret = 0; ret = 0;
break; break;
default: default:
pr_err("Setting trigger mode %lu for irq %u failed (%pF)\n", pr_err("Setting trigger mode %lu for irq %u failed (%pS)\n",
flags, irq_desc_get_irq(desc), chip->irq_set_type); flags, irq_desc_get_irq(desc), chip->irq_set_type);
} }
if (unmask) if (unmask)
......
...@@ -212,9 +212,9 @@ static void __report_bad_irq(struct irq_desc *desc, irqreturn_t action_ret) ...@@ -212,9 +212,9 @@ static void __report_bad_irq(struct irq_desc *desc, irqreturn_t action_ret)
*/ */
raw_spin_lock_irqsave(&desc->lock, flags); raw_spin_lock_irqsave(&desc->lock, flags);
for_each_action_of_desc(desc, action) { for_each_action_of_desc(desc, action) {
printk(KERN_ERR "[<%p>] %pf", action->handler, action->handler); printk(KERN_ERR "[<%p>] %ps", action->handler, action->handler);
if (action->thread_fn) if (action->thread_fn)
printk(KERN_CONT " threaded [<%p>] %pf", printk(KERN_CONT " threaded [<%p>] %ps",
action->thread_fn, action->thread_fn); action->thread_fn, action->thread_fn);
printk(KERN_CONT "\n"); printk(KERN_CONT "\n");
} }
......
...@@ -2392,7 +2392,7 @@ __call_rcu(struct rcu_head *head, rcu_callback_t func, int cpu, bool lazy) ...@@ -2392,7 +2392,7 @@ __call_rcu(struct rcu_head *head, rcu_callback_t func, int cpu, bool lazy)
* Use rcu:rcu_callback trace event to find the previous * Use rcu:rcu_callback trace event to find the previous
* time callback was passed to __call_rcu(). * time callback was passed to __call_rcu().
*/ */
WARN_ONCE(1, "__call_rcu(): Double-freed CB %p->%pF()!!!\n", WARN_ONCE(1, "__call_rcu(): Double-freed CB %p->%pS()!!!\n",
head, head->func); head, head->func);
WRITE_ONCE(head->func, rcu_leak_callback); WRITE_ONCE(head->func, rcu_leak_callback);
return; return;
......
...@@ -513,7 +513,7 @@ static void cpu_stopper_thread(unsigned int cpu) ...@@ -513,7 +513,7 @@ static void cpu_stopper_thread(unsigned int cpu)
} }
preempt_count_dec(); preempt_count_dec();
WARN_ONCE(preempt_count(), WARN_ONCE(preempt_count(),
"cpu_stop: %pf(%p) leaked preempt count\n", fn, arg); "cpu_stop: %ps(%p) leaked preempt count\n", fn, arg);
goto repeat; goto repeat;
} }
} }
......
...@@ -231,7 +231,7 @@ sched_clock_register(u64 (*read)(void), int bits, unsigned long rate) ...@@ -231,7 +231,7 @@ sched_clock_register(u64 (*read)(void), int bits, unsigned long rate)
if (irqtime > 0 || (irqtime == -1 && rate >= 1000000)) if (irqtime > 0 || (irqtime == -1 && rate >= 1000000))
enable_sched_clock_irqtime(); enable_sched_clock_irqtime();
pr_debug("Registered %pF as sched_clock source\n", read); pr_debug("Registered %pS as sched_clock source\n", read);
} }
void __init generic_sched_clock_init(void) void __init generic_sched_clock_init(void)
......
...@@ -1325,7 +1325,7 @@ static void call_timer_fn(struct timer_list *timer, ...@@ -1325,7 +1325,7 @@ static void call_timer_fn(struct timer_list *timer,
lock_map_release(&lockdep_map); lock_map_release(&lockdep_map);
if (count != preempt_count()) { if (count != preempt_count()) {
WARN_ONCE(1, "timer: %pF preempt leak: %08x -> %08x\n", WARN_ONCE(1, "timer: %pS preempt leak: %08x -> %08x\n",
fn, count, preempt_count()); fn, count, preempt_count());
/* /*
* Restore the preempt count. That gives us a decent * Restore the preempt count. That gives us a decent
......
...@@ -2271,7 +2271,7 @@ __acquires(&pool->lock) ...@@ -2271,7 +2271,7 @@ __acquires(&pool->lock)
if (unlikely(in_atomic() || lockdep_depth(current) > 0)) { if (unlikely(in_atomic() || lockdep_depth(current) > 0)) {
pr_err("BUG: workqueue leaked lock or atomic: %s/0x%08x/%d\n" pr_err("BUG: workqueue leaked lock or atomic: %s/0x%08x/%d\n"
" last function: %pf\n", " last function: %ps\n",
current->comm, preempt_count(), task_pid_nr(current), current->comm, preempt_count(), task_pid_nr(current),
worker->current_func); worker->current_func);
debug_show_held_locks(current); debug_show_held_locks(current);
...@@ -2590,11 +2590,11 @@ static void check_flush_dependency(struct workqueue_struct *target_wq, ...@@ -2590,11 +2590,11 @@ static void check_flush_dependency(struct workqueue_struct *target_wq,
worker = current_wq_worker(); worker = current_wq_worker();
WARN_ONCE(current->flags & PF_MEMALLOC, WARN_ONCE(current->flags & PF_MEMALLOC,
"workqueue: PF_MEMALLOC task %d(%s) is flushing !WQ_MEM_RECLAIM %s:%pf", "workqueue: PF_MEMALLOC task %d(%s) is flushing !WQ_MEM_RECLAIM %s:%ps",
current->pid, current->comm, target_wq->name, target_func); current->pid, current->comm, target_wq->name, target_func);
WARN_ONCE(worker && ((worker->current_pwq->wq->flags & WARN_ONCE(worker && ((worker->current_pwq->wq->flags &
(WQ_MEM_RECLAIM | __WQ_LEGACY)) == WQ_MEM_RECLAIM), (WQ_MEM_RECLAIM | __WQ_LEGACY)) == WQ_MEM_RECLAIM),
"workqueue: WQ_MEM_RECLAIM %s:%pf is flushing !WQ_MEM_RECLAIM %s:%pf", "workqueue: WQ_MEM_RECLAIM %s:%ps is flushing !WQ_MEM_RECLAIM %s:%ps",
worker->current_pwq->wq->name, worker->current_func, worker->current_pwq->wq->name, worker->current_func,
target_wq->name, target_func); target_wq->name, target_func);
} }
...@@ -4581,7 +4581,7 @@ void print_worker_info(const char *log_lvl, struct task_struct *task) ...@@ -4581,7 +4581,7 @@ void print_worker_info(const char *log_lvl, struct task_struct *task)
probe_kernel_read(desc, worker->desc, sizeof(desc) - 1); probe_kernel_read(desc, worker->desc, sizeof(desc) - 1);
if (fn || name[0] || desc[0]) { if (fn || name[0] || desc[0]) {
printk("%sWorkqueue: %s %pf", log_lvl, name, fn); printk("%sWorkqueue: %s %ps", log_lvl, name, fn);
if (strcmp(name, desc)) if (strcmp(name, desc))
pr_cont(" (%s)", desc); pr_cont(" (%s)", desc);
pr_cont("\n"); pr_cont("\n");
...@@ -4606,7 +4606,7 @@ static void pr_cont_work(bool comma, struct work_struct *work) ...@@ -4606,7 +4606,7 @@ static void pr_cont_work(bool comma, struct work_struct *work)
pr_cont("%s BAR(%d)", comma ? "," : "", pr_cont("%s BAR(%d)", comma ? "," : "",
task_pid_nr(barr->task)); task_pid_nr(barr->task));
} else { } else {
pr_cont("%s %pf", comma ? "," : "", work->func); pr_cont("%s %ps", comma ? "," : "", work->func);
} }
} }
...@@ -4638,7 +4638,7 @@ static void show_pwq(struct pool_workqueue *pwq) ...@@ -4638,7 +4638,7 @@ static void show_pwq(struct pool_workqueue *pwq)
if (worker->current_pwq != pwq) if (worker->current_pwq != pwq)
continue; continue;
pr_cont("%s %d%s:%pf", comma ? "," : "", pr_cont("%s %d%s:%ps", comma ? "," : "",
task_pid_nr(worker->task), task_pid_nr(worker->task),
worker == pwq->wq->rescuer ? "(RESCUER)" : "", worker == pwq->wq->rescuer ? "(RESCUER)" : "",
worker->current_func); worker->current_func);
......
...@@ -189,7 +189,7 @@ static int ei_seq_show(struct seq_file *m, void *v) ...@@ -189,7 +189,7 @@ static int ei_seq_show(struct seq_file *m, void *v)
{ {
struct ei_entry *ent = list_entry(v, struct ei_entry, list); struct ei_entry *ent = list_entry(v, struct ei_entry, list);
seq_printf(m, "%pf\t%s\n", (void *)ent->start_addr, seq_printf(m, "%ps\t%s\n", (void *)ent->start_addr,
error_type_string(ent->etype)); error_type_string(ent->etype));
return 0; return 0;
} }
......
...@@ -151,7 +151,7 @@ static void percpu_ref_switch_to_atomic_rcu(struct rcu_head *rcu) ...@@ -151,7 +151,7 @@ static void percpu_ref_switch_to_atomic_rcu(struct rcu_head *rcu)
atomic_long_add((long)count - PERCPU_COUNT_BIAS, &ref->count); atomic_long_add((long)count - PERCPU_COUNT_BIAS, &ref->count);
WARN_ONCE(atomic_long_read(&ref->count) <= 0, WARN_ONCE(atomic_long_read(&ref->count) <= 0,
"percpu ref (%pf) <= 0 (%ld) after switching to atomic", "percpu ref (%ps) <= 0 (%ld) after switching to atomic",
ref->release, atomic_long_read(&ref->count)); ref->release, atomic_long_read(&ref->count));
/* @ref is viewed as dead on all CPUs, send out switch confirmation */ /* @ref is viewed as dead on all CPUs, send out switch confirmation */
...@@ -333,7 +333,7 @@ void percpu_ref_kill_and_confirm(struct percpu_ref *ref, ...@@ -333,7 +333,7 @@ void percpu_ref_kill_and_confirm(struct percpu_ref *ref,
spin_lock_irqsave(&percpu_ref_switch_lock, flags); spin_lock_irqsave(&percpu_ref_switch_lock, flags);
WARN_ONCE(ref->percpu_count_ptr & __PERCPU_REF_DEAD, WARN_ONCE(ref->percpu_count_ptr & __PERCPU_REF_DEAD,
"%s called more than once on %pf!", __func__, ref->release); "%s called more than once on %ps!", __func__, ref->release);
ref->percpu_count_ptr |= __PERCPU_REF_DEAD; ref->percpu_count_ptr |= __PERCPU_REF_DEAD;
__percpu_ref_switch_mode(ref, confirm_kill); __percpu_ref_switch_mode(ref, confirm_kill);
......
...@@ -241,6 +241,7 @@ plain_format(void) ...@@ -241,6 +241,7 @@ plain_format(void)
#define PTR ((void *)0x456789ab) #define PTR ((void *)0x456789ab)
#define PTR_STR "456789ab" #define PTR_STR "456789ab"
#define PTR_VAL_NO_CRNG "(ptrval)" #define PTR_VAL_NO_CRNG "(ptrval)"
#define ZEROS ""
static int __init static int __init
plain_format(void) plain_format(void)
...@@ -270,7 +271,6 @@ plain_hash_to_buffer(const void *p, char *buf, size_t len) ...@@ -270,7 +271,6 @@ plain_hash_to_buffer(const void *p, char *buf, size_t len)
return 0; return 0;
} }
static int __init static int __init
plain_hash(void) plain_hash(void)
{ {
...@@ -327,6 +327,24 @@ test_hashed(const char *fmt, const void *p) ...@@ -327,6 +327,24 @@ test_hashed(const char *fmt, const void *p)
test(buf, fmt, p); test(buf, fmt, p);
} }
static void __init
null_pointer(void)
{
test_hashed("%p", NULL);
test(ZEROS "00000000", "%px", NULL);
test("(null)", "%pE", NULL);
}
#define PTR_INVALID ((void *)0x000000ab)
static void __init
invalid_pointer(void)
{
test_hashed("%p", PTR_INVALID);
test(ZEROS "000000ab", "%px", PTR_INVALID);
test("(efault)", "%pE", PTR_INVALID);
}
static void __init static void __init
symbol_ptr(void) symbol_ptr(void)
{ {
...@@ -464,8 +482,7 @@ struct_rtc_time(void) ...@@ -464,8 +482,7 @@ struct_rtc_time(void)
.tm_year = 118, .tm_year = 118,
}; };
test_hashed("%pt", &tm); test("(%ptR?)", "%pt", &tm);
test("2018-11-26T05:35:43", "%ptR", &tm); test("2018-11-26T05:35:43", "%ptR", &tm);
test("0118-10-26T05:35:43", "%ptRr", &tm); test("0118-10-26T05:35:43", "%ptRr", &tm);
test("05:35:43|2018-11-26", "%ptRt|%ptRd", &tm, &tm); test("05:35:43|2018-11-26", "%ptRt|%ptRd", &tm, &tm);
...@@ -483,14 +500,14 @@ static void __init ...@@ -483,14 +500,14 @@ static void __init
large_bitmap(void) large_bitmap(void)
{ {
const int nbits = 1 << 16; const int nbits = 1 << 16;
unsigned long *bits = kcalloc(BITS_TO_LONGS(nbits), sizeof(long), GFP_KERNEL); unsigned long *bits = bitmap_zalloc(nbits, GFP_KERNEL);
if (!bits) if (!bits)
return; return;
bitmap_set(bits, 1, 20); bitmap_set(bits, 1, 20);
bitmap_set(bits, 60000, 15); bitmap_set(bits, 60000, 15);
test("1-20,60000-60014", "%*pbl", nbits, bits); test("1-20,60000-60014", "%*pbl", nbits, bits);
kfree(bits); bitmap_free(bits);
} }
static void __init static void __init
...@@ -574,6 +591,8 @@ static void __init ...@@ -574,6 +591,8 @@ static void __init
test_pointer(void) test_pointer(void)
{ {
plain(); plain();
null_pointer();
invalid_pointer();
symbol_ptr(); symbol_ptr();
kernel_ptr(); kernel_ptr();
struct_resource(); struct_resource();
......
此差异已折叠。
...@@ -702,7 +702,7 @@ int __init_memblock memblock_add(phys_addr_t base, phys_addr_t size) ...@@ -702,7 +702,7 @@ int __init_memblock memblock_add(phys_addr_t base, phys_addr_t size)
{ {
phys_addr_t end = base + size - 1; phys_addr_t end = base + size - 1;
memblock_dbg("memblock_add: [%pa-%pa] %pF\n", memblock_dbg("memblock_add: [%pa-%pa] %pS\n",
&base, &end, (void *)_RET_IP_); &base, &end, (void *)_RET_IP_);
return memblock_add_range(&memblock.memory, base, size, MAX_NUMNODES, 0); return memblock_add_range(&memblock.memory, base, size, MAX_NUMNODES, 0);
...@@ -821,7 +821,7 @@ int __init_memblock memblock_free(phys_addr_t base, phys_addr_t size) ...@@ -821,7 +821,7 @@ int __init_memblock memblock_free(phys_addr_t base, phys_addr_t size)
{ {
phys_addr_t end = base + size - 1; phys_addr_t end = base + size - 1;
memblock_dbg(" memblock_free: [%pa-%pa] %pF\n", memblock_dbg(" memblock_free: [%pa-%pa] %pS\n",
&base, &end, (void *)_RET_IP_); &base, &end, (void *)_RET_IP_);
kmemleak_free_part_phys(base, size); kmemleak_free_part_phys(base, size);
...@@ -832,7 +832,7 @@ int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size) ...@@ -832,7 +832,7 @@ int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size)
{ {
phys_addr_t end = base + size - 1; phys_addr_t end = base + size - 1;
memblock_dbg("memblock_reserve: [%pa-%pa] %pF\n", memblock_dbg("memblock_reserve: [%pa-%pa] %pS\n",
&base, &end, (void *)_RET_IP_); &base, &end, (void *)_RET_IP_);
return memblock_add_range(&memblock.reserved, base, size, MAX_NUMNODES, 0); return memblock_add_range(&memblock.reserved, base, size, MAX_NUMNODES, 0);
...@@ -1447,7 +1447,7 @@ void * __init memblock_alloc_try_nid_raw( ...@@ -1447,7 +1447,7 @@ void * __init memblock_alloc_try_nid_raw(
{ {
void *ptr; void *ptr;
memblock_dbg("%s: %llu bytes align=0x%llx nid=%d from=%pa max_addr=%pa %pF\n", memblock_dbg("%s: %llu bytes align=0x%llx nid=%d from=%pa max_addr=%pa %pS\n",
__func__, (u64)size, (u64)align, nid, &min_addr, __func__, (u64)size, (u64)align, nid, &min_addr,
&max_addr, (void *)_RET_IP_); &max_addr, (void *)_RET_IP_);
...@@ -1483,7 +1483,7 @@ void * __init memblock_alloc_try_nid( ...@@ -1483,7 +1483,7 @@ void * __init memblock_alloc_try_nid(
{ {
void *ptr; void *ptr;
memblock_dbg("%s: %llu bytes align=0x%llx nid=%d from=%pa max_addr=%pa %pF\n", memblock_dbg("%s: %llu bytes align=0x%llx nid=%d from=%pa max_addr=%pa %pS\n",
__func__, (u64)size, (u64)align, nid, &min_addr, __func__, (u64)size, (u64)align, nid, &min_addr,
&max_addr, (void *)_RET_IP_); &max_addr, (void *)_RET_IP_);
ptr = memblock_alloc_internal(size, align, ptr = memblock_alloc_internal(size, align,
...@@ -1508,7 +1508,7 @@ void __init __memblock_free_late(phys_addr_t base, phys_addr_t size) ...@@ -1508,7 +1508,7 @@ void __init __memblock_free_late(phys_addr_t base, phys_addr_t size)
phys_addr_t cursor, end; phys_addr_t cursor, end;
end = base + size - 1; end = base + size - 1;
memblock_dbg("%s: [%pa-%pa] %pF\n", memblock_dbg("%s: [%pa-%pa] %pS\n",
__func__, &base, &end, (void *)_RET_IP_); __func__, &base, &end, (void *)_RET_IP_);
kmemleak_free_part_phys(base, size); kmemleak_free_part_phys(base, size);
cursor = PFN_UP(base); cursor = PFN_UP(base);
......
...@@ -519,7 +519,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr, ...@@ -519,7 +519,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
dump_page(page, "bad pte"); dump_page(page, "bad pte");
pr_alert("addr:%p vm_flags:%08lx anon_vma:%p mapping:%p index:%lx\n", pr_alert("addr:%p vm_flags:%08lx anon_vma:%p mapping:%p index:%lx\n",
(void *)addr, vma->vm_flags, vma->anon_vma, mapping, index); (void *)addr, vma->vm_flags, vma->anon_vma, mapping, index);
pr_alert("file:%pD fault:%pf mmap:%pf readpage:%pf\n", pr_alert("file:%pD fault:%ps mmap:%ps readpage:%ps\n",
vma->vm_file, vma->vm_file,
vma->vm_ops ? vma->vm_ops->fault : NULL, vma->vm_ops ? vma->vm_ops->fault : NULL,
vma->vm_file ? vma->vm_file->f_op->mmap : NULL, vma->vm_file ? vma->vm_file->f_op->mmap : NULL,
......
...@@ -493,7 +493,7 @@ static unsigned long do_shrink_slab(struct shrink_control *shrinkctl, ...@@ -493,7 +493,7 @@ static unsigned long do_shrink_slab(struct shrink_control *shrinkctl,
total_scan += delta; total_scan += delta;
if (total_scan < 0) { if (total_scan < 0) {
pr_err("shrink_slab: %pF negative objects to delete nr=%ld\n", pr_err("shrink_slab: %pS negative objects to delete nr=%ld\n",
shrinker->scan_objects, total_scan); shrinker->scan_objects, total_scan);
total_scan = freeable; total_scan = freeable;
next_deferred = nr; next_deferred = nr;
......
...@@ -2398,7 +2398,7 @@ static void finish_request(struct ceph_osd_request *req) ...@@ -2398,7 +2398,7 @@ static void finish_request(struct ceph_osd_request *req)
static void __complete_request(struct ceph_osd_request *req) static void __complete_request(struct ceph_osd_request *req)
{ {
dout("%s req %p tid %llu cb %pf result %d\n", __func__, req, dout("%s req %p tid %llu cb %ps result %d\n", __func__, req,
req->r_tid, req->r_callback, req->r_result); req->r_tid, req->r_callback, req->r_result);
if (req->r_callback) if (req->r_callback)
......
...@@ -258,7 +258,7 @@ static int ptype_seq_show(struct seq_file *seq, void *v) ...@@ -258,7 +258,7 @@ static int ptype_seq_show(struct seq_file *seq, void *v)
else else
seq_printf(seq, "%04x", ntohs(pt->type)); seq_printf(seq, "%04x", ntohs(pt->type));
seq_printf(seq, " %-8s %pf\n", seq_printf(seq, " %-8s %ps\n",
pt->dev ? pt->dev->name : "", pt->func); pt->dev ? pt->dev->name : "", pt->func);
} }
......
...@@ -149,7 +149,7 @@ static void poll_one_napi(struct napi_struct *napi) ...@@ -149,7 +149,7 @@ static void poll_one_napi(struct napi_struct *napi)
* indicate that we are clearing the Tx path only. * indicate that we are clearing the Tx path only.
*/ */
work = napi->poll(napi, 0); work = napi->poll(napi, 0);
WARN_ONCE(work, "%pF exceeded budget in poll\n", napi->poll); WARN_ONCE(work, "%pS exceeded budget in poll\n", napi->poll);
trace_napi_poll(napi, work, 0); trace_napi_poll(napi, work, 0);
clear_bit(NAPI_STATE_NPSVC, &napi->state); clear_bit(NAPI_STATE_NPSVC, &napi->state);
...@@ -346,7 +346,7 @@ void netpoll_send_skb_on_dev(struct netpoll *np, struct sk_buff *skb, ...@@ -346,7 +346,7 @@ void netpoll_send_skb_on_dev(struct netpoll *np, struct sk_buff *skb,
} }
WARN_ONCE(!irqs_disabled(), WARN_ONCE(!irqs_disabled(),
"netpoll_send_skb_on_dev(): %s enabled interrupts in poll (%pF)\n", "netpoll_send_skb_on_dev(): %s enabled interrupts in poll (%pS)\n",
dev->name, dev->netdev_ops->ndo_start_xmit); dev->name, dev->netdev_ops->ndo_start_xmit);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册