Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b29900e6 authored by Alexander Gordeev's avatar Alexander Gordeev Committed by Tejun Heo
Browse files

AHCI: Make distinct names for ports in /proc/interrupts



Currently all interrupts assigned to AHCI ports show up in
'/proc/interrupts' as 'ahci'. This fix adds port numbers as
suffixes and hence makes the descriptions distinct.

Reported-by: default avatarJan Beulich <JBeulich@suse.com>
Signed-off-by: default avatarAlexander Gordeev <agordeev@redhat.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent 966fbe19
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1142,9 +1142,11 @@ int ahci_host_activate(struct ata_host *host, int irq, unsigned int n_msis)
		return rc;

	for (i = 0; i < host->n_ports; i++) {
		struct ahci_port_priv *pp = host->ports[i]->private_data;

		rc = devm_request_threaded_irq(host->dev,
			irq + i, ahci_hw_interrupt, ahci_thread_fn, IRQF_SHARED,
			dev_driver_string(host->dev), host->ports[i]);
			pp->irq_desc, host->ports[i]);
		if (rc)
			goto out_free_irqs;
	}
+1 −0
Original line number Diff line number Diff line
@@ -306,6 +306,7 @@ struct ahci_port_priv {
	int			fbs_last_dev;	/* save FBS.DEV of last FIS */
	/* enclosure management info per PM slot */
	struct ahci_em_priv	em_priv[EM_MAX_SLOTS];
	char			*irq_desc;	/* desc in /proc/interrupts */
};

struct ahci_host_priv {
+10 −0
Original line number Diff line number Diff line
@@ -2234,6 +2234,16 @@ static int ahci_port_start(struct ata_port *ap)
	if (!pp)
		return -ENOMEM;

	if (ap->host->n_ports > 1) {
		pp->irq_desc = devm_kzalloc(dev, 8, GFP_KERNEL);
		if (!pp->irq_desc) {
			devm_kfree(dev, pp);
			return -ENOMEM;
		}
		snprintf(pp->irq_desc, 8,
			 "%s%d", dev_driver_string(dev), ap->port_no);
	}

	/* check FBS capability */
	if ((hpriv->cap & HOST_CAP_FBS) && sata_pmp_supported(ap)) {
		void __iomem *port_mmio = ahci_port_base(ap);