Messages in this thread | | | From | (Eric W. Biederman) | Subject | [PATCH 0/6] MSI portability cleanups | Date | Sun, 28 Jan 2007 12:40:53 -0700 |
| |
This patchset is against gregkh-pci but except for the context around msi_lookup_irq being completely different it applies cleanly to 2.6.20-rc6 as well.
When I first looked at this problem I thought no big deal it will one or two simple patches and that is it.
When I looked more closely I discovered that to be certain of not introducing bugs I would have to kill msi_lock, which made the problem a little more difficult.
The result of this patchset is that architecture hooks become:
int arch_setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc); void arch_teardown_msi_irq(unsigned int irq);
and are responsible for allocating and freeing the irq as well as setting it up.
This touches the architecture code for i386, x86_64, and ia64 to accomplish this.
Since I couldn't test ia64 I reviewed the code closely, and compile tested it.
The other big change is that I added a field to irq_desc to point at the msi_desc. This removes the conflicts with the existing pointer fields and makes the irq -> msi_desc mapping useable outside of msi.c
The only architecture problem that isn't solvable in this context is the problem of supporting the crazy hypervisor on the ppc RTAS, which asks us to drive the hardware but does not give us access to the hardware registers.
Eric - 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/
| |