>  - Remove the populating of the tree from the revmap function as
>    you already do
>  - Move it to irq_create_mapping() for the normal case
>  - For pre-existing interrupt, have the generic code that initializes
>    the radix tree walk through all interrupts and setup the revmap for
>    them. If that needs locking vs. concurrent irq_create_mapping, it's
>    easy to use one of the available spinlocks for that.

And in fact, you may even be able to avoid GFP_ATOMIC completely here
and switch it to GFP_KERNEL since irq_create_mapping() can sleep afaik,
provided that you avoid the spinlocking.

Ben.


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to