Hi Suravee, Just a few minor comments. On Sat, Sep 20, 2014 at 05:31:37PM +0100, suravee.suthikulpanit@xxxxxxx wrote: > From: Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx> > > This patch implelments the ARM64 version of arch_setup_msi_irqs(), > which does not return 1 for when PCI_CAP_ID_MSI and nvec > 1. s/implelments/implements/ > Signed-off-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@xxxxxxx> > Acked-by: Marc Zyngier <Marc.Zyngier@xxxxxxx> > Cc: Mark Rutland <Mark.Rutland@xxxxxxx> > Cc: Jason Cooper <jason@xxxxxxxxxxxxxx> > Cc: Catalin Marinas <Catalin.Marinas@xxxxxxx> > Cc: Will Deacon <Will.Deacon@xxxxxxx> > --- > arch/arm64/kernel/Makefile | 1 + > arch/arm64/kernel/msi.c | 41 +++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 42 insertions(+) > create mode 100644 arch/arm64/kernel/msi.c > > diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile > index df7ef87..a921c42 100644 > --- a/arch/arm64/kernel/Makefile > +++ b/arch/arm64/kernel/Makefile > @@ -29,6 +29,7 @@ arm64-obj-$(CONFIG_ARM64_CPU_SUSPEND) += sleep.o suspend.o > arm64-obj-$(CONFIG_JUMP_LABEL) += jump_label.o > arm64-obj-$(CONFIG_KGDB) += kgdb.o > arm64-obj-$(CONFIG_EFI) += efi.o efi-stub.o efi-entry.o > +arm64-obj-$(CONFIG_PCI_MSI) += msi.o > > obj-y += $(arm64-obj-y) vdso/ > obj-m += $(arm64-obj-m) > diff --git a/arch/arm64/kernel/msi.c b/arch/arm64/kernel/msi.c > new file mode 100644 > index 0000000..a295862 > --- /dev/null > +++ b/arch/arm64/kernel/msi.c > @@ -0,0 +1,41 @@ > +/* > + * ARM64 architectural MSI implemention > + * > + * Support for Message Signalelled Interrupts for systems that > + * implement ARM Generic Interrupt Controller: GICv2m. You can drop the GICv2M reference here, as there's not really anything GIC-specific in this file. > + * Copyright (C) 2014 Advanced Micro Devices, Inc. > + * Authors: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx> > + * > + * This program is free software; you can redistribute it and/or modify it > + * under the terms of the GNU General Public License version 2 as published > + * by the Free Software Foundation. > + */ > + > +#include <linux/irq.h> > +#include <linux/msi.h> > +#include <linux/pci.h> > + > +/* > + * ARM64 function for seting up MSI irqs. > + * Based on driver/pci/msi.c: arch_setup_msi_irqs(). > + * > + * Note: > + * Current implementation assumes that all interrupt controller used in > + * ARM64 architecture _MUST_ supports multi-MSI. I think you can remove this comment, to be honest. > + */ > +int arm64_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) > +{ Shouldn't this be called arch_setup_msi_irqs, since the intention is that you override the weak symbol? > + struct msi_desc *entry; > + int ret; > + > + list_for_each_entry(entry, &dev->msi_list, list) { > + ret = arch_setup_msi_irq(dev, entry); > + if (ret < 0) > + return ret; > + if (ret > 0) > + return -ENOSPC; When does this function ever return a value > 0? Will -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html