diff options
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r-- | arch/powerpc/kernel/ibmebus.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/iommu.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/irq.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/prom.c | 2 | ||||
-rw-r--r-- | arch/powerpc/kernel/prom_parse.c | 17 | ||||
-rw-r--r-- | arch/powerpc/kernel/time.c | 2 |
6 files changed, 16 insertions, 11 deletions
diff --git a/arch/powerpc/kernel/ibmebus.c b/arch/powerpc/kernel/ibmebus.c index 124dbcba94a8..da9fe254eb94 100644 --- a/arch/powerpc/kernel/ibmebus.c +++ b/arch/powerpc/kernel/ibmebus.c | |||
@@ -319,7 +319,7 @@ EXPORT_SYMBOL(ibmebus_unregister_driver); | |||
319 | 319 | ||
320 | int ibmebus_request_irq(struct ibmebus_dev *dev, | 320 | int ibmebus_request_irq(struct ibmebus_dev *dev, |
321 | u32 ist, | 321 | u32 ist, |
322 | irqreturn_t (*handler)(int, void*, struct pt_regs *), | 322 | irqreturn_t (*handler)(int, void*), |
323 | unsigned long irq_flags, const char * devname, | 323 | unsigned long irq_flags, const char * devname, |
324 | void *dev_id) | 324 | void *dev_id) |
325 | { | 325 | { |
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c index ba0694071728..f88a2a675d90 100644 --- a/arch/powerpc/kernel/iommu.c +++ b/arch/powerpc/kernel/iommu.c | |||
@@ -75,7 +75,7 @@ static unsigned long iommu_range_alloc(struct iommu_table *tbl, | |||
75 | /* This allocator was derived from x86_64's bit string search */ | 75 | /* This allocator was derived from x86_64's bit string search */ |
76 | 76 | ||
77 | /* Sanity check */ | 77 | /* Sanity check */ |
78 | if (unlikely(npages) == 0) { | 78 | if (unlikely(npages == 0)) { |
79 | if (printk_ratelimit()) | 79 | if (printk_ratelimit()) |
80 | WARN_ON(1); | 80 | WARN_ON(1); |
81 | return DMA_ERROR_CODE; | 81 | return DMA_ERROR_CODE; |
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c index 5deaab3090b4..829ac18b566c 100644 --- a/arch/powerpc/kernel/irq.c +++ b/arch/powerpc/kernel/irq.c | |||
@@ -217,7 +217,7 @@ void do_IRQ(struct pt_regs *regs) | |||
217 | * The value -2 is for buggy hardware and means that this IRQ | 217 | * The value -2 is for buggy hardware and means that this IRQ |
218 | * has already been handled. -- Tom | 218 | * has already been handled. -- Tom |
219 | */ | 219 | */ |
220 | irq = ppc_md.get_irq(regs); | 220 | irq = ppc_md.get_irq(); |
221 | 221 | ||
222 | if (irq != NO_IRQ && irq != NO_IRQ_IGNORE) { | 222 | if (irq != NO_IRQ && irq != NO_IRQ_IGNORE) { |
223 | #ifdef CONFIG_IRQSTACKS | 223 | #ifdef CONFIG_IRQSTACKS |
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index eb913f80bfb1..865b9648d0d5 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -724,7 +724,7 @@ static int __init early_init_dt_scan_chosen(unsigned long node, | |||
724 | strlcpy(cmd_line, p, min((int)l, COMMAND_LINE_SIZE)); | 724 | strlcpy(cmd_line, p, min((int)l, COMMAND_LINE_SIZE)); |
725 | 725 | ||
726 | #ifdef CONFIG_CMDLINE | 726 | #ifdef CONFIG_CMDLINE |
727 | if (l == 0 || (l == 1 && (*p) == 0)) | 727 | if (p == NULL || l == 0 || (l == 1 && (*p) == 0)) |
728 | strlcpy(cmd_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); | 728 | strlcpy(cmd_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); |
729 | #endif /* CONFIG_CMDLINE */ | 729 | #endif /* CONFIG_CMDLINE */ |
730 | 730 | ||
diff --git a/arch/powerpc/kernel/prom_parse.c b/arch/powerpc/kernel/prom_parse.c index 603dff3ad62a..17fcb4842fe5 100644 --- a/arch/powerpc/kernel/prom_parse.c +++ b/arch/powerpc/kernel/prom_parse.c | |||
@@ -914,6 +914,17 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq) | |||
914 | u8 pin; | 914 | u8 pin; |
915 | int rc; | 915 | int rc; |
916 | 916 | ||
917 | /* We need to first check if the PCI device has a PCI interrupt at all | ||
918 | * since we have cases where the device-node might expose non-PCI | ||
919 | * interrupts, but the device has no PCI interrupt to it | ||
920 | */ | ||
921 | rc = pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin); | ||
922 | if (rc != 0) | ||
923 | return rc; | ||
924 | /* No pin, exit */ | ||
925 | if (pin == 0) | ||
926 | return -ENODEV; | ||
927 | |||
917 | /* Check if we have a device node, if yes, fallback to standard OF | 928 | /* Check if we have a device node, if yes, fallback to standard OF |
918 | * parsing | 929 | * parsing |
919 | */ | 930 | */ |
@@ -925,12 +936,6 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq) | |||
925 | * interrupt spec. we assume #interrupt-cells is 1, which is standard | 936 | * interrupt spec. we assume #interrupt-cells is 1, which is standard |
926 | * for PCI. If you do different, then don't use that routine. | 937 | * for PCI. If you do different, then don't use that routine. |
927 | */ | 938 | */ |
928 | rc = pci_read_config_byte(pdev, PCI_INTERRUPT_PIN, &pin); | ||
929 | if (rc != 0) | ||
930 | return rc; | ||
931 | /* No pin, exit */ | ||
932 | if (pin == 0) | ||
933 | return -ENODEV; | ||
934 | 939 | ||
935 | /* Now we walk up the PCI tree */ | 940 | /* Now we walk up the PCI tree */ |
936 | lspec = pin; | 941 | lspec = pin; |
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index d210d0a5006b..5b59bc18dfe7 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -706,7 +706,7 @@ void timer_interrupt(struct pt_regs * regs) | |||
706 | 706 | ||
707 | #ifdef CONFIG_PPC_ISERIES | 707 | #ifdef CONFIG_PPC_ISERIES |
708 | if (hvlpevent_is_pending()) | 708 | if (hvlpevent_is_pending()) |
709 | process_hvlpevents(regs); | 709 | process_hvlpevents(); |
710 | #endif | 710 | #endif |
711 | 711 | ||
712 | #ifdef CONFIG_PPC64 | 712 | #ifdef CONFIG_PPC64 |