Messages in this thread | | | Date | Sat, 23 Jan 2016 03:00:48 +0100 | Subject | Re: [PATCH] pci: fix unavailable irq number 255 reported by BIOS | From | "Rafael J. Wysocki" <> |
| |
On Fri, Jan 22, 2016 at 8:23 PM, David Daney <ddaney.cavm@gmail.com> wrote: > On 01/22/2016 09:53 AM, Bjorn Helgaas wrote: >> >> On Thu, Jan 21, 2016 at 11:58:26PM +0100, Rafael J. Wysocki wrote: >>> >>> On Thu, Jan 21, 2016 at 3:41 PM, Cao jin <caoj.fnst@cn.fujitsu.com> >>> wrote: >>>> >>>> Hi, >>>> >>>> IMHO, I think maybe modification on i801_smbus driver is easier. >>>> >>>> Because when i801_smbus request_irq using pci_dev->irq, this >>>> pci_dev->irq seems still holds the value read from register( >>>> pci_setup_device->pci_read_irq), if the value is 255, it is invalid in >>>> register, >>> >>> >>> Right. >>> >>> Which is why the PCI core should not leak it into the driver's ->probe >>> callback. >> >> >> Is there a reserved IRQ value we could use to mean "invalid"? > > > In many (most) cases, zero indicates no irq.
Zero is a valid timer IRQ on x86, though, so it's better not to give any special meaning to it in general.
Using ~0 as suggested by Bjorn should work as it would cause request_irq() to return -EINVAL if passed to it AFAICS.
Thanks, Rafael
| |