(no subject)

From: Matthew Wilcox (matthew_at_wil.cx)
Date: 11/21/05

  • Next message: liyu: "Re: [Question] spin_lock in interrupt handler."
    To: Linus Torvalds <torvalds@osdl.org>, Andrew Morton <akpm@osdl.org>
    Date:	Sun, 20 Nov 2005 20:14:07 -0500
    
    

    Subject: [PATCH 2/5] Introduce PCI_NO_IRQ and pci_valid_irq()

    Explicitly initialise pci_dev->irq with PCI_NO_IRQ, allowing us to change
    the value of PCI_NO_IRQ once all drivers have been audited.

    Signed-off-by: Matthew Wilcox <matthew@wil.cx>
    Acked-by: Ingo Molnar <mingo@elte.hu>

    ---
     drivers/pci/probe.c |    7 +++++--
     include/linux/pci.h |    9 +++++++++
     2 files changed, 14 insertions(+), 2 deletions(-)
    applies-to: 48ad7d3f9b055a9d4c1a1ab1f6dd0a584cfed99c
    53424f050aff8200f80f4d3edf9af7b7f085e6f6
    diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
    index fce2cb2..35ba70b 100644
    --- a/drivers/pci/probe.c
    +++ b/drivers/pci/probe.c
    @@ -571,9 +571,12 @@ static void pci_read_irq(struct pci_dev 
     	unsigned char irq;
     
     	pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &irq);
    -	if (irq)
    +	if (irq) {
     		pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
    -	dev->irq = irq;
    +		dev->irq = irq;
    +	} else {
    +		dev->irq = PCI_NO_IRQ;
    +	}
     }
     
     /**
    diff --git a/include/linux/pci.h b/include/linux/pci.h
    index de690ca..69cdd00 100644
    --- a/include/linux/pci.h
    +++ b/include/linux/pci.h
    @@ -140,6 +140,15 @@ struct pci_dev {
     	struct bin_attribute *res_attr[DEVICE_COUNT_RESOURCE]; /* sysfs file for resources */
     };
     
    +/*
    + * The PCI subsystem has traditionally filled in 0 when no interrupt has been
    + * assigned.  While we should move to using NO_IRQ instead, many drivers
    + * remain to be converted.  Once all drivers are using PCI_NO_IRQ, switching
    + * over should be a simple search-and-replace.
    + */
    +#define PCI_NO_IRQ		0
    +#define pci_valid_irq(irq)	(irq != PCI_NO_IRQ)
    +
     #define pci_dev_g(n) list_entry(n, struct pci_dev, global_list)
     #define pci_dev_b(n) list_entry(n, struct pci_dev, bus_list)
     #define	to_pci_dev(n) container_of(n, struct pci_dev, dev)
    ---
    0.99.8.GIT
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: liyu: "Re: [Question] spin_lock in interrupt handler."

    Relevant Pages