diff options
Diffstat (limited to 'arch/sparc64')
-rw-r--r-- | arch/sparc64/Kconfig | 1 | ||||
-rw-r--r-- | arch/sparc64/kernel/pci.c | 4 | ||||
-rw-r--r-- | arch/sparc64/kernel/pci_sun4v.c | 4 | ||||
-rw-r--r-- | arch/sparc64/solaris/ioctl.c | 3 |
4 files changed, 7 insertions, 5 deletions
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig index 590a41b864b9..be9e10b94ef8 100644 --- a/arch/sparc64/Kconfig +++ b/arch/sparc64/Kconfig | |||
@@ -306,6 +306,7 @@ config SUN_IO | |||
306 | 306 | ||
307 | config PCI | 307 | config PCI |
308 | bool "PCI support" | 308 | bool "PCI support" |
309 | select ARCH_SUPPORTS_MSI | ||
309 | help | 310 | help |
310 | Find out whether you have a PCI motherboard. PCI is the name of a | 311 | Find out whether you have a PCI motherboard. PCI is the name of a |
311 | bus system, i.e. the way the CPU talks to the other stuff inside | 312 | bus system, i.e. the way the CPU talks to the other stuff inside |
diff --git a/arch/sparc64/kernel/pci.c b/arch/sparc64/kernel/pci.c index 023af41ad68d..9a549547cb2b 100644 --- a/arch/sparc64/kernel/pci.c +++ b/arch/sparc64/kernel/pci.c | |||
@@ -1092,10 +1092,10 @@ int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc) | |||
1092 | return -EINVAL; | 1092 | return -EINVAL; |
1093 | 1093 | ||
1094 | err = p->setup_msi_irq(&virt_irq, pdev, desc); | 1094 | err = p->setup_msi_irq(&virt_irq, pdev, desc); |
1095 | if (err < 0) | 1095 | if (err) |
1096 | return err; | 1096 | return err; |
1097 | 1097 | ||
1098 | return virt_irq; | 1098 | return 0; |
1099 | } | 1099 | } |
1100 | 1100 | ||
1101 | void arch_teardown_msi_irq(unsigned int virt_irq) | 1101 | void arch_teardown_msi_irq(unsigned int virt_irq) |
diff --git a/arch/sparc64/kernel/pci_sun4v.c b/arch/sparc64/kernel/pci_sun4v.c index 94295c219329..1ccf4c9a9a43 100644 --- a/arch/sparc64/kernel/pci_sun4v.c +++ b/arch/sparc64/kernel/pci_sun4v.c | |||
@@ -1169,8 +1169,6 @@ static int pci_sun4v_setup_msi_irq(unsigned int *virt_irq_p, | |||
1169 | if (!devino) | 1169 | if (!devino) |
1170 | goto out_err; | 1170 | goto out_err; |
1171 | 1171 | ||
1172 | set_irq_msi(*virt_irq_p, entry); | ||
1173 | |||
1174 | msiqid = ((devino - pbm->msiq_first_devino) + | 1172 | msiqid = ((devino - pbm->msiq_first_devino) + |
1175 | pbm->msiq_first); | 1173 | pbm->msiq_first); |
1176 | 1174 | ||
@@ -1204,6 +1202,8 @@ static int pci_sun4v_setup_msi_irq(unsigned int *virt_irq_p, | |||
1204 | msg.address_lo = pbm->msi32_start; | 1202 | msg.address_lo = pbm->msi32_start; |
1205 | } | 1203 | } |
1206 | msg.data = msi_num; | 1204 | msg.data = msi_num; |
1205 | |||
1206 | set_irq_msi(*virt_irq_p, entry); | ||
1207 | write_msi_msg(*virt_irq_p, &msg); | 1207 | write_msi_msg(*virt_irq_p, &msg); |
1208 | 1208 | ||
1209 | irq_install_pre_handler(*virt_irq_p, | 1209 | irq_install_pre_handler(*virt_irq_p, |
diff --git a/arch/sparc64/solaris/ioctl.c b/arch/sparc64/solaris/ioctl.c index 330743c5b3d8..18352a498628 100644 --- a/arch/sparc64/solaris/ioctl.c +++ b/arch/sparc64/solaris/ioctl.c | |||
@@ -686,7 +686,8 @@ static inline int solaris_i(unsigned int fd, unsigned int cmd, u32 arg) | |||
686 | int i = 0; | 686 | int i = 0; |
687 | 687 | ||
688 | read_lock_bh(&dev_base_lock); | 688 | read_lock_bh(&dev_base_lock); |
689 | for (d = dev_base; d; d = d->next) i++; | 689 | for_each_netdev(d) |
690 | i++; | ||
690 | read_unlock_bh(&dev_base_lock); | 691 | read_unlock_bh(&dev_base_lock); |
691 | 692 | ||
692 | if (put_user (i, (int __user *)A(arg))) | 693 | if (put_user (i, (int __user *)A(arg))) |