On 2023/12/12 01:57, Roger Pau Monné wrote: > On Mon, Dec 11, 2023 at 12:15:19AM +0800, Jiqian Chen wrote: >> There is a need for some scenarios to use gsi sysfs. >> For example, when xen passthrough a device to dumU, it will >> use gsi to map pirq, but currently userspace can't get gsi >> number. >> So, add gsi sysfs for that and for other potential scenarios. >> >> Co-developed-by: Huang Rui <ray.huang@xxxxxxx> >> Signed-off-by: Jiqian Chen <Jiqian.Chen@xxxxxxx> >> --- >> drivers/acpi/pci_irq.c | 1 + >> drivers/pci/pci-sysfs.c | 11 +++++++++++ >> include/linux/pci.h | 2 ++ >> 3 files changed, 14 insertions(+) >> >> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c >> index 630fe0a34bc6..739a58755df2 100644 >> --- a/drivers/acpi/pci_irq.c >> +++ b/drivers/acpi/pci_irq.c >> @@ -449,6 +449,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev) >> kfree(entry); >> return 0; >> } >> + dev->gsi = gsi; > > It would be better if the gsi if fetched without requiring calling > acpi_pci_irq_enable(), as the gsi doesn't require the interrupt to be > enabled. The gsi is known at boot time and won't change for the > lifetime of the device. Do you have any suggest places to do this? > >> >> rc = acpi_register_gsi(&dev->dev, gsi, triggering, polarity); >> if (rc < 0) { >> diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c >> index 2321fdfefd7d..c51df88d079e 100644 >> --- a/drivers/pci/pci-sysfs.c >> +++ b/drivers/pci/pci-sysfs.c >> @@ -71,6 +71,16 @@ static ssize_t irq_show(struct device *dev, >> } >> static DEVICE_ATTR_RO(irq); >> >> +static ssize_t gsi_show(struct device *dev, >> + struct device_attribute *attr, >> + char *buf) >> +{ >> + struct pci_dev *pdev = to_pci_dev(dev); > > const Do you mean "const struct pci_dev *pdev = to_pci_dev(dev);" ? > > Thanks, Roger. -- Best regards, Jiqian Chen.