Skip to content

Commit b966b11

Browse files
committed
Revert "PCI/MSI: Provide IMS (Interrupt Message Store) support"
This reverts commit 0194425. IMS (Interrupt Message Store) support appeared in v6.2, but there are no users yet. Remove it for now. We can add it back when a user comes along. If this is re-added later, the relevant part of 41efa43 ("PCI/MSI: Provide stubs for IMS functions") should be squashed into it. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Bjorn Helgaas <[email protected]> Reviewed-by: Kevin Tian <[email protected]> Reviewed-by: Thomas Gleixner <[email protected]>
1 parent 1794808 commit b966b11

File tree

2 files changed

+0
-64
lines changed

2 files changed

+0
-64
lines changed

drivers/pci/msi/irqdomain.c

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -355,65 +355,6 @@ bool pci_msi_domain_supports(struct pci_dev *pdev, unsigned int feature_mask,
355355
return (supported & feature_mask) == feature_mask;
356356
}
357357

358-
/**
359-
* pci_create_ims_domain - Create a secondary IMS domain for a PCI device
360-
* @pdev: The PCI device to operate on
361-
* @template: The MSI info template which describes the domain
362-
* @hwsize: The size of the hardware entry table or 0 if the domain
363-
* is purely software managed
364-
* @data: Optional pointer to domain specific data to be stored
365-
* in msi_domain_info::data
366-
*
367-
* Return: True on success, false otherwise
368-
*
369-
* An IMS domain is expected to have the following constraints:
370-
* - The index space is managed by the core code
371-
*
372-
* - There is no requirement for consecutive index ranges
373-
*
374-
* - The interrupt chip must provide the following callbacks:
375-
* - irq_mask()
376-
* - irq_unmask()
377-
* - irq_write_msi_msg()
378-
*
379-
* - The interrupt chip must provide the following optional callbacks
380-
* when the irq_mask(), irq_unmask() and irq_write_msi_msg() callbacks
381-
* cannot operate directly on hardware, e.g. in the case that the
382-
* interrupt message store is in queue memory:
383-
* - irq_bus_lock()
384-
* - irq_bus_unlock()
385-
*
386-
* These callbacks are invoked from preemptible task context and are
387-
* allowed to sleep. In this case the mandatory callbacks above just
388-
* store the information. The irq_bus_unlock() callback is supposed
389-
* to make the change effective before returning.
390-
*
391-
* - Interrupt affinity setting is handled by the underlying parent
392-
* interrupt domain and communicated to the IMS domain via
393-
* irq_write_msi_msg().
394-
*
395-
* The domain is automatically destroyed when the PCI device is removed.
396-
*/
397-
bool pci_create_ims_domain(struct pci_dev *pdev, const struct msi_domain_template *template,
398-
unsigned int hwsize, void *data)
399-
{
400-
struct irq_domain *domain = dev_get_msi_domain(&pdev->dev);
401-
402-
if (!domain || !irq_domain_is_msi_parent(domain))
403-
return false;
404-
405-
if (template->info.bus_token != DOMAIN_BUS_PCI_DEVICE_IMS ||
406-
!(template->info.flags & MSI_FLAG_ALLOC_SIMPLE_MSI_DESCS) ||
407-
!(template->info.flags & MSI_FLAG_FREE_MSI_DESCS) ||
408-
!template->chip.irq_mask || !template->chip.irq_unmask ||
409-
!template->chip.irq_write_msi_msg || template->chip.irq_set_affinity)
410-
return false;
411-
412-
return msi_create_device_irq_domain(&pdev->dev, MSI_SECONDARY_DOMAIN, template,
413-
hwsize, data, NULL);
414-
}
415-
EXPORT_SYMBOL_GPL(pci_create_ims_domain);
416-
417358
/*
418359
* Users of the generic MSI infrastructure expect a device to have a single ID,
419360
* so with DMA aliases we have to pick the least-worst compromise. Devices with

include/linux/pci.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2664,11 +2664,6 @@ static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
26642664
void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type);
26652665
#endif
26662666

2667-
struct msi_domain_template;
2668-
2669-
bool pci_create_ims_domain(struct pci_dev *pdev, const struct msi_domain_template *template,
2670-
unsigned int hwsize, void *data);
2671-
26722667
#include <linux/dma-mapping.h>
26732668

26742669
#define pci_printk(level, pdev, fmt, arg...) \

0 commit comments

Comments
 (0)