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 | 18 | ||||
-rw-r--r-- | arch/parisc/kernel/pci-dma.c | 22 |
5 files changed, 26 insertions, 37 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 ac2c822928c7..29e70e16ede8 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 | irq_desc[irq].affinity = CPU_MASK_ALL; | 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 | irq_desc[irq].affinity = *dest; | 141 | cpumask_copy(&irq_desc[irq].affinity, &cpumask_of_cpu(cpu_dest)); |
140 | } | 142 | } |
141 | #endif | 143 | #endif |
142 | 144 | ||
@@ -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 | irq_desc[irq].affinity = cpumask_of_cpu(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 | 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 | } |