Skip to content

x86, MSI, AHCI: Support multiple MSIs

Alexander Gordeev linux-ide linux-pci lkml 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest posting 2/23 patches 4 repliesIn review
  2. v4 posting 1/23 patches 4 repliesSuperseded
  3. v35 patches 14 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v25 patches6 repliesSuperseded
v15 patches5 repliesSuperseded

Patches in v4 posting 2/2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3x86, MSI: Support multiple MSIs in presense of IRQ remappingarch/x86/kernel/apic/io_apic.c include/linux/irq.h kernel/irq/chip.c+160 -401 reply
2/3PCI, MSI: Enable multiple MSIs with pci_enable_msi_block_auto()Documentation/PCI/MSI-HOWTO.txt drivers/pci/msi.c include/linux/pci.h+65 -51 reply
3/3AHCI: Support multiple MSIsdrivers/ata/ahci.c drivers/ata/ahci.h drivers/ata/libahci.c+207 -102 replies

Reviews trailers per patch

2 of 3 patches have a Reviewed-by or Acked-by.

PatchBjorn HelgaasJeff Garzik
1/3
2/3A-b A-b
3/3A-b A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

Cover letter [PATCH v4 -tip 0/3] x86, MSI, AHCI: Support multiple MSIs

Hi Jeff,

I am resending this series with changes based on Ingo's review of v3.

Patch #3 has a single change in functionality compared to the previous version you acked before - that is a fix of invalid index spotted by Ingo (below is the interdiff's hunk). Could you please review the patch again and ack or comment?

@@ -1129,8 +1131,8 @@
out_free_all_irqs:
i = host->n_ports;
out_free_irqs:
- for (; i; i--)
- devm_free_irq(host->dev, irq + i - 1, host->ports[i]);
+ for (i--; i >= 0; i--)
+ devm_free_irq(host->dev, irq + i, host->ports[i]);

return rc;
}

Whole series compared to v3:

I have not noticed that v3 2/5 patch "x86, MSI: Allocate as many multiple IRQs as requested" is redundant, since the AHCI code tries to allocate maximum possible number of MSIs. As there are no other users of this functionality, I removed v3 2/5 patch for now;

v3 patch 3/5 "x86, MSI: Minor readability fixes" merged into v4 patch 1/3 "x86, MSI: Support multiple MSIs in presense of IRQ remapping";

1/3: - racy can_create_irqs() check removed;
- multi-line comments fixed;
- loops 'for (; i; i--)' changed to 'for (i--; i >= 0; i--)';

v1 conditionally acked by Suresh
v2 concerned Yinghai's comments

2/3: v2 acked by Bjorn, no changes since

3/3: - ahci_host_activate() failure path fixed and tested;
- ahci_port_priv::lock field commented;
- multi-line comments fixed;

v3 acked by Jeff

Alexander Gordeev (3):
x86, MSI: Support multiple MSIs in presense of IRQ remapping PCI, MSI: Enable multiple MSIs with pci_enable_msi_block_auto()
AHCI: Support multiple MSIs

 Documentation/PCI/MSI-HOWTO.txt |   37 ++++++++-
 arch/x86/kernel/apic/io_apic.c  |  165 +++++++++++++++++++++++++++++++--------
 drivers/ata/ahci.c              |   93 +++++++++++++++++++++-
 drivers/ata/ahci.h              |    6 ++
 drivers/ata/libahci.c           |  118 ++++++++++++++++++++++++++--
 drivers/pci/msi.c               |   26 ++++++
 include/linux/irq.h             |    5 +
 include/linux/pci.h             |    7 ++
 kernel/irq/chip.c               |   30 +++++--
 9 files changed, 432 insertions(+), 55 deletions(-)
Signature · 7 lines
1.7.7.6


-- 
Regards,
Alexander Gordeev
[email protected]