diff options
Diffstat (limited to 'arch/parisc/kernel')
| -rw-r--r-- | arch/parisc/kernel/cache.c | 5 | ||||
| -rw-r--r-- | arch/parisc/kernel/entry.S | 6 | ||||
| -rw-r--r-- | arch/parisc/kernel/firmware.c | 12 | ||||
| -rw-r--r-- | arch/parisc/kernel/irq.c | 20 | ||||
| -rw-r--r-- | arch/parisc/kernel/pci-dma.c | 22 |
5 files changed, 27 insertions, 38 deletions
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index 5259d8c20676..837530ea32e7 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c | |||
| @@ -551,10 +551,7 @@ void flush_cache_range(struct vm_area_struct *vma, | |||
| 551 | { | 551 | { |
| 552 | int sr3; | 552 | int sr3; |
| 553 | 553 | ||
| 554 | if (!vma->vm_mm->context) { | 554 | BUG_ON(!vma->vm_mm->context); |
| 555 | BUG(); | ||
| 556 | return; | ||
| 557 | } | ||
| 558 | 555 | ||
| 559 | sr3 = mfsp(3); | 556 | sr3 = mfsp(3); |
| 560 | if (vma->vm_mm->context == sr3) { | 557 | if (vma->vm_mm->context == sr3) { |
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index d1fa4edd2d80..0db9fdcb7709 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S | |||
| @@ -368,7 +368,7 @@ | |||
| 368 | * abstractions for the macros */ | 368 | * abstractions for the macros */ |
| 369 | .macro EXTR reg1,start,length,reg2 | 369 | .macro EXTR reg1,start,length,reg2 |
| 370 | #ifdef CONFIG_64BIT | 370 | #ifdef CONFIG_64BIT |
| 371 | extrd,u \reg1,32+\start,\length,\reg2 | 371 | extrd,u \reg1,32+(\start),\length,\reg2 |
| 372 | #else | 372 | #else |
| 373 | extrw,u \reg1,\start,\length,\reg2 | 373 | extrw,u \reg1,\start,\length,\reg2 |
| 374 | #endif | 374 | #endif |
| @@ -376,7 +376,7 @@ | |||
| 376 | 376 | ||
| 377 | .macro DEP reg1,start,length,reg2 | 377 | .macro DEP reg1,start,length,reg2 |
| 378 | #ifdef CONFIG_64BIT | 378 | #ifdef CONFIG_64BIT |
| 379 | depd \reg1,32+\start,\length,\reg2 | 379 | depd \reg1,32+(\start),\length,\reg2 |
| 380 | #else | 380 | #else |
| 381 | depw \reg1,\start,\length,\reg2 | 381 | depw \reg1,\start,\length,\reg2 |
| 382 | #endif | 382 | #endif |
| @@ -384,7 +384,7 @@ | |||
| 384 | 384 | ||
| 385 | .macro DEPI val,start,length,reg | 385 | .macro DEPI val,start,length,reg |
| 386 | #ifdef CONFIG_64BIT | 386 | #ifdef CONFIG_64BIT |
| 387 | depdi \val,32+\start,\length,\reg | 387 | depdi \val,32+(\start),\length,\reg |
| 388 | #else | 388 | #else |
| 389 | depwi \val,\start,\length,\reg | 389 | depwi \val,\start,\length,\reg |
| 390 | #endif | 390 | #endif |
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c index 03f26bd75bd8..f6d241238a78 100644 --- a/arch/parisc/kernel/firmware.c +++ b/arch/parisc/kernel/firmware.c | |||
| @@ -151,7 +151,7 @@ static void convert_to_wide(unsigned long *addr) | |||
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | #ifdef CONFIG_64BIT | 153 | #ifdef CONFIG_64BIT |
| 154 | void __init set_firmware_width_unlocked(void) | 154 | void __cpuinit set_firmware_width_unlocked(void) |
| 155 | { | 155 | { |
| 156 | int ret; | 156 | int ret; |
| 157 | 157 | ||
| @@ -168,7 +168,7 @@ void __init set_firmware_width_unlocked(void) | |||
| 168 | * This function must be called before any pdc_* function that uses the | 168 | * This function must be called before any pdc_* function that uses the |
| 169 | * convert_to_wide function. | 169 | * convert_to_wide function. |
| 170 | */ | 170 | */ |
| 171 | void __init set_firmware_width(void) | 171 | void __cpuinit set_firmware_width(void) |
| 172 | { | 172 | { |
| 173 | unsigned long flags; | 173 | unsigned long flags; |
| 174 | spin_lock_irqsave(&pdc_lock, flags); | 174 | spin_lock_irqsave(&pdc_lock, flags); |
| @@ -176,11 +176,11 @@ void __init set_firmware_width(void) | |||
| 176 | spin_unlock_irqrestore(&pdc_lock, flags); | 176 | spin_unlock_irqrestore(&pdc_lock, flags); |
| 177 | } | 177 | } |
| 178 | #else | 178 | #else |
| 179 | void __init set_firmware_width_unlocked(void) { | 179 | void __cpuinit set_firmware_width_unlocked(void) { |
| 180 | return; | 180 | return; |
| 181 | } | 181 | } |
| 182 | 182 | ||
| 183 | void __init set_firmware_width(void) { | 183 | void __cpuinit set_firmware_width(void) { |
| 184 | return; | 184 | return; |
| 185 | } | 185 | } |
| 186 | #endif /*CONFIG_64BIT*/ | 186 | #endif /*CONFIG_64BIT*/ |
| @@ -302,7 +302,7 @@ int pdc_chassis_warn(unsigned long *warn) | |||
| 302 | return retval; | 302 | return retval; |
| 303 | } | 303 | } |
| 304 | 304 | ||
| 305 | int __init pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info) | 305 | int __cpuinit pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info) |
| 306 | { | 306 | { |
| 307 | int ret; | 307 | int ret; |
| 308 | 308 | ||
| @@ -323,7 +323,7 @@ int __init pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info) | |||
| 323 | * This PDC call returns the presence and status of all the coprocessors | 323 | * This PDC call returns the presence and status of all the coprocessors |
| 324 | * attached to the processor. | 324 | * attached to the processor. |
| 325 | */ | 325 | */ |
| 326 | int __init pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info) | 326 | int __cpuinit pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info) |
| 327 | { | 327 | { |
| 328 | int ret; | 328 | int ret; |
| 329 | unsigned long flags; | 329 | unsigned long flags; |
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c index 49482806863f..1c740f5cbd63 100644 --- a/arch/parisc/kernel/irq.c +++ b/arch/parisc/kernel/irq.c | |||
| @@ -112,7 +112,7 @@ void cpu_end_irq(unsigned int irq) | |||
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | #ifdef CONFIG_SMP | 114 | #ifdef CONFIG_SMP |
| 115 | int cpu_check_affinity(unsigned int irq, cpumask_t *dest) | 115 | int cpu_check_affinity(unsigned int irq, const struct cpumask *dest) |
| 116 | { | 116 | { |
| 117 | int cpu_dest; | 117 | int cpu_dest; |
| 118 | 118 | ||
| @@ -120,23 +120,25 @@ int cpu_check_affinity(unsigned int irq, cpumask_t *dest) | |||
| 120 | if (CHECK_IRQ_PER_CPU(irq)) { | 120 | if (CHECK_IRQ_PER_CPU(irq)) { |
| 121 | /* Bad linux design decision. The mask has already | 121 | /* Bad linux design decision. The mask has already |
| 122 | * been set; we must reset it */ | 122 | * been set; we must reset it */ |
| 123 | cpumask_setall(irq_desc[irq].affinity); | 123 | cpumask_setall(&irq_desc[irq].affinity); |
| 124 | return -EINVAL; | 124 | return -EINVAL; |
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | /* whatever mask they set, we just allow one CPU */ | 127 | /* whatever mask they set, we just allow one CPU */ |
| 128 | cpu_dest = first_cpu(*dest); | 128 | cpu_dest = first_cpu(*dest); |
| 129 | *dest = cpumask_of_cpu(cpu_dest); | ||
| 130 | 129 | ||
| 131 | return 0; | 130 | return cpu_dest; |
| 132 | } | 131 | } |
| 133 | 132 | ||
| 134 | static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest) | 133 | static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest) |
| 135 | { | 134 | { |
| 136 | if (cpu_check_affinity(irq, dest)) | 135 | int cpu_dest; |
| 136 | |||
| 137 | cpu_dest = cpu_check_affinity(irq, dest); | ||
| 138 | if (cpu_dest < 0) | ||
| 137 | return; | 139 | return; |
| 138 | 140 | ||
| 139 | cpumask_copy(irq_desc[irq].affinity, dest); | 141 | cpumask_copy(&irq_desc[irq].affinity, dest); |
| 140 | } | 142 | } |
| 141 | #endif | 143 | #endif |
| 142 | 144 | ||
| @@ -183,7 +185,7 @@ int show_interrupts(struct seq_file *p, void *v) | |||
| 183 | seq_printf(p, "%3d: ", i); | 185 | seq_printf(p, "%3d: ", i); |
| 184 | #ifdef CONFIG_SMP | 186 | #ifdef CONFIG_SMP |
| 185 | for_each_online_cpu(j) | 187 | for_each_online_cpu(j) |
| 186 | seq_printf(p, "%10u ", kstat_cpu(j).irqs[i]); | 188 | seq_printf(p, "%10u ", kstat_irqs_cpu(i, j)); |
| 187 | #else | 189 | #else |
| 188 | seq_printf(p, "%10u ", kstat_irqs(i)); | 190 | seq_printf(p, "%10u ", kstat_irqs(i)); |
| 189 | #endif | 191 | #endif |
| @@ -295,7 +297,7 @@ int txn_alloc_irq(unsigned int bits_wide) | |||
| 295 | unsigned long txn_affinity_addr(unsigned int irq, int cpu) | 297 | unsigned long txn_affinity_addr(unsigned int irq, int cpu) |
| 296 | { | 298 | { |
| 297 | #ifdef CONFIG_SMP | 299 | #ifdef CONFIG_SMP |
| 298 | cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu)); | 300 | cpumask_copy(&irq_desc[irq].affinity, cpumask_of(cpu)); |
| 299 | #endif | 301 | #endif |
| 300 | 302 | ||
| 301 | return per_cpu(cpu_data, cpu).txn_addr; | 303 | return per_cpu(cpu_data, cpu).txn_addr; |
| @@ -352,7 +354,7 @@ void do_cpu_irq_mask(struct pt_regs *regs) | |||
| 352 | irq = eirr_to_irq(eirr_val); | 354 | irq = eirr_to_irq(eirr_val); |
| 353 | 355 | ||
| 354 | #ifdef CONFIG_SMP | 356 | #ifdef CONFIG_SMP |
| 355 | cpumask_copy(&dest, irq_desc[irq].affinity); | 357 | cpumask_copy(&dest, &irq_desc[irq].affinity); |
| 356 | if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) && | 358 | if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) && |
| 357 | !cpu_isset(smp_processor_id(), dest)) { | 359 | !cpu_isset(smp_processor_id(), dest)) { |
| 358 | int cpu = first_cpu(dest); | 360 | int cpu = first_cpu(dest); |
diff --git a/arch/parisc/kernel/pci-dma.c b/arch/parisc/kernel/pci-dma.c index df47895db828..7d927eac932b 100644 --- a/arch/parisc/kernel/pci-dma.c +++ b/arch/parisc/kernel/pci-dma.c | |||
| @@ -447,10 +447,7 @@ static void pa11_dma_free_consistent (struct device *dev, size_t size, void *vad | |||
| 447 | 447 | ||
| 448 | static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t size, enum dma_data_direction direction) | 448 | static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t size, enum dma_data_direction direction) |
| 449 | { | 449 | { |
| 450 | if (direction == DMA_NONE) { | 450 | BUG_ON(direction == DMA_NONE); |
| 451 | printk(KERN_ERR "pa11_dma_map_single(PCI_DMA_NONE) called by %p\n", __builtin_return_address(0)); | ||
| 452 | BUG(); | ||
| 453 | } | ||
| 454 | 451 | ||
| 455 | flush_kernel_dcache_range((unsigned long) addr, size); | 452 | flush_kernel_dcache_range((unsigned long) addr, size); |
| 456 | return virt_to_phys(addr); | 453 | return virt_to_phys(addr); |
| @@ -458,10 +455,7 @@ static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t siz | |||
| 458 | 455 | ||
| 459 | static void pa11_dma_unmap_single(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction direction) | 456 | static void pa11_dma_unmap_single(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction direction) |
| 460 | { | 457 | { |
| 461 | if (direction == DMA_NONE) { | 458 | BUG_ON(direction == DMA_NONE); |
| 462 | printk(KERN_ERR "pa11_dma_unmap_single(PCI_DMA_NONE) called by %p\n", __builtin_return_address(0)); | ||
| 463 | BUG(); | ||
| 464 | } | ||
| 465 | 459 | ||
| 466 | if (direction == DMA_TO_DEVICE) | 460 | if (direction == DMA_TO_DEVICE) |
| 467 | return; | 461 | return; |
| @@ -480,8 +474,7 @@ static int pa11_dma_map_sg(struct device *dev, struct scatterlist *sglist, int n | |||
| 480 | { | 474 | { |
| 481 | int i; | 475 | int i; |
| 482 | 476 | ||
| 483 | if (direction == DMA_NONE) | 477 | BUG_ON(direction == DMA_NONE); |
| 484 | BUG(); | ||
| 485 | 478 | ||
| 486 | for (i = 0; i < nents; i++, sglist++ ) { | 479 | for (i = 0; i < nents; i++, sglist++ ) { |
| 487 | unsigned long vaddr = sg_virt_addr(sglist); | 480 | unsigned long vaddr = sg_virt_addr(sglist); |
| @@ -496,8 +489,7 @@ static void pa11_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, in | |||
| 496 | { | 489 | { |
| 497 | int i; | 490 | int i; |
| 498 | 491 | ||
| 499 | if (direction == DMA_NONE) | 492 | BUG_ON(direction == DMA_NONE); |
| 500 | BUG(); | ||
| 501 | 493 | ||
| 502 | if (direction == DMA_TO_DEVICE) | 494 | if (direction == DMA_TO_DEVICE) |
| 503 | return; | 495 | return; |
| @@ -511,16 +503,14 @@ static void pa11_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, in | |||
| 511 | 503 | ||
| 512 | static void pa11_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) | 504 | static void pa11_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) |
| 513 | { | 505 | { |
| 514 | if (direction == DMA_NONE) | 506 | BUG_ON(direction == DMA_NONE); |
| 515 | BUG(); | ||
| 516 | 507 | ||
| 517 | flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); | 508 | flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); |
| 518 | } | 509 | } |
| 519 | 510 | ||
| 520 | static void pa11_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) | 511 | static void pa11_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) |
| 521 | { | 512 | { |
| 522 | if (direction == DMA_NONE) | 513 | BUG_ON(direction == DMA_NONE); |
| 523 | BUG(); | ||
| 524 | 514 | ||
| 525 | flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); | 515 | flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); |
| 526 | } | 516 | } |
