diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-08-17 14:39:54 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-08-17 14:39:54 -0400 |
commit | 3bc6c906eacec34f0d8dcfd3c7e4513edf152297 (patch) | |
tree | 6fdca669a44a3084d140fffeda7fc4a157b5772b | |
parent | 99f781b1bfc199ec8eb86d4e015920faf79d5d57 (diff) | |
parent | d6957f3396d0b1ee54d183524550d791054b5ebe (diff) |
Merge branch 'parisc-4.13-5' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull parisc fixes from Helge Deller:
- Fix PCI memory bar assignments with 64-bit kernels on machines with
Dino/Cujo PCI chipsets. This makes PCI graphic cards work on such
machines (from Thomas Bogendoerfer).
- Fix documentation to be more clear about the difference between %pF
and %pS printk format usage. There are still many places in the
kernel which have it wrong (from Petr Mladek, Sergey Senozhatsky &
me).
* 'parisc-4.13-5' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
printk-formats.txt: Better describe the difference between %pS and %pF
parisc: pci memory bar assignment fails with 64bit kernels on dino/cujo
-rw-r--r-- | Documentation/printk-formats.txt | 19 | ||||
-rw-r--r-- | drivers/parisc/dino.c | 2 |
2 files changed, 12 insertions, 9 deletions
diff --git a/Documentation/printk-formats.txt b/Documentation/printk-formats.txt index 65ea5915178b..074670b98bac 100644 --- a/Documentation/printk-formats.txt +++ b/Documentation/printk-formats.txt | |||
@@ -58,20 +58,23 @@ Symbols/Function Pointers | |||
58 | %ps versatile_init | 58 | %ps versatile_init |
59 | %pB prev_fn_of_versatile_init+0x88/0x88 | 59 | %pB prev_fn_of_versatile_init+0x88/0x88 |
60 | 60 | ||
61 | For printing symbols and function pointers. The ``S`` and ``s`` specifiers | 61 | The ``F`` and ``f`` specifiers are for printing function pointers, |
62 | result in the symbol name with (``S``) or without (``s``) offsets. Where | 62 | for example, f->func, &gettimeofday. They have the same result as |
63 | this is used on a kernel without KALLSYMS - the symbol address is | 63 | ``S`` and ``s`` specifiers. But they do an extra conversion on |
64 | printed instead. | 64 | ia64, ppc64 and parisc64 architectures where the function pointers |
65 | are actually function descriptors. | ||
66 | |||
67 | The ``S`` and ``s`` specifiers can be used for printing symbols | ||
68 | from direct addresses, for example, __builtin_return_address(0), | ||
69 | (void *)regs->ip. They result in the symbol name with (``S``) or | ||
70 | without (``s``) offsets. If KALLSYMS are disabled then the symbol | ||
71 | address is printed instead. | ||
65 | 72 | ||
66 | The ``B`` specifier results in the symbol name with offsets and should be | 73 | The ``B`` specifier results in the symbol name with offsets and should be |
67 | used when printing stack backtraces. The specifier takes into | 74 | used when printing stack backtraces. The specifier takes into |
68 | consideration the effect of compiler optimisations which may occur | 75 | consideration the effect of compiler optimisations which may occur |
69 | when tail-call``s are used and marked with the noreturn GCC attribute. | 76 | when tail-call``s are used and marked with the noreturn GCC attribute. |
70 | 77 | ||
71 | On ia64, ppc64 and parisc64 architectures function pointers are | ||
72 | actually function descriptors which must first be resolved. The ``F`` and | ||
73 | ``f`` specifiers perform this resolution and then provide the same | ||
74 | functionality as the ``S`` and ``s`` specifiers. | ||
75 | 78 | ||
76 | Kernel Pointers | 79 | Kernel Pointers |
77 | =============== | 80 | =============== |
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c index 5c63b920b471..ed92c1254cff 100644 --- a/drivers/parisc/dino.c +++ b/drivers/parisc/dino.c | |||
@@ -956,7 +956,7 @@ static int __init dino_probe(struct parisc_device *dev) | |||
956 | 956 | ||
957 | dino_dev->hba.dev = dev; | 957 | dino_dev->hba.dev = dev; |
958 | dino_dev->hba.base_addr = ioremap_nocache(hpa, 4096); | 958 | dino_dev->hba.base_addr = ioremap_nocache(hpa, 4096); |
959 | dino_dev->hba.lmmio_space_offset = 0; /* CPU addrs == bus addrs */ | 959 | dino_dev->hba.lmmio_space_offset = PCI_F_EXTEND; |
960 | spin_lock_init(&dino_dev->dinosaur_pen); | 960 | spin_lock_init(&dino_dev->dinosaur_pen); |
961 | dino_dev->hba.iommu = ccio_get_iommu(dev); | 961 | dino_dev->hba.iommu = ccio_get_iommu(dev); |
962 | 962 | ||