Re: [GIT PULL] s390 patches for the 3.9-rc6

From: Grant Likely
Date: Tue Jun 25 2013 - 09:30:47 EST


On Tue, Jun 25, 2013 at 2:11 PM, Martin Schwidefsky
<schwidefsky@xxxxxxxxxx> wrote:
> On Tue, 25 Jun 2013 13:42:23 +0100
> Grant Likely <grant.likely@xxxxxxxxxxxx> wrote:
>
>> On Tue, Jun 25, 2013 at 1:15 PM, Martin Schwidefsky
>> <schwidefsky@xxxxxxxxxx> wrote:
>> > On Tue, 25 Jun 2013 13:09:51 +0100
>> > Grant Likely <grant.likely@xxxxxxxxxxxx> wrote:
>> >
>> >> On Wed, Apr 3, 2013 at 4:25 PM, Martin Schwidefsky
>> >> <schwidefsky@xxxxxxxxxx> wrote:
>> >> > Hi Linus,
>> >> >
>> >> > please pull from the 'for-linus' branch of
>> >> >
>> >> > git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git for-linus
>> >> >
>> >> > to receive the following updates: Just a bunch of bugfixes.
>> >> >
>> >> > Heiko Carstens (4):
>> >> > drivers/Kconfig: add several missing GENERIC_HARDIRQS dependencies
>> >>
>> >> Is anyone currently working on fixing this? s390 is the only
>> >> architecture left that does not enable GENERIC_HARDIRQS. It's painful
>> >> to keep adding dependencies on GENERIC_HARDIRQS to driver configs.
>> >
>> > I am working on it. The hardest part is MSI irqs for PCI. Chances are
>> > that I get it done for the merge window of 3.12.
>>
>> How are you handling the MSIs? I've just been looking at some code for
>> irq_domain to handle MSI mapping. What's the part that is getting you
>> hung up?
>
> Basically a name-space thing. The current code allocates 64 interrupts numbers
> for each PCI device, starting at 0. With GENERIC_HARDIRQS=y irq #0 is used for
> for external interrupts, irq #1 for I/O interrupts and irq #2 for adapter
> interrupts. The adapter interrupt handler for PCI has to scan the interrupt
> vectors and call generic_handle_irq for the MSI interrupts starting at irq #3.
> As I don't want to create a huge irq_desc array the number of allocatable
> interrupts for MSI will be limited and I can not simply assign 64 interrupts
> numbers to each device anymore.

Have you looked at irq_domain? It was created to solve that exact
problem. irq_descs can get allocated dynamically as irqs are
requested.

g.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/