[PATCH 3/3] libchip/network/if_fxp.c: do not use rtems_interrupt_disable.

Chris Johns chrisj at rtems.org
Wed Oct 12 21:05:30 UTC 2016


On 13/10/2016 03:22, Pavel Pisa wrote:
> But RTEMS i8269 support has been broken to disable
> vector for level triggered interrupts in generic
> IRQ processing code.

I am not sure where the blame should be placed. We need to disable at 
the PIC when using libbsd with shared PCI interrupts because an 
interrupt server is used that is common to a few architectures. Some 
legacy drivers like this one assume processing inside the interrupt 
context. It is not clear to me shared interrupts were ever supported 
with these drivers. I would assume it means some type of per driver 
interrupt chaining.

> So I have introduced reenable
> bsp_interrupt_vector_enable to ensure that driver
> can work even with that setup.

I am not sure we can mix both models without some changes.

>
> classic networking: adapt FXP driver to work with actual PCI and IRQ code.
>
> The hack is not required after
>

Which hack?

> bsps/i386: Separate variable for i8259 IRQs disable due to in progress state.
>
> so I have removed unneeded reenable from daemon hot path.
> I have left it in the setup to be sure that it is enabled
> after some driver stop start cycles.
>
> In theory, this occurrence should be deleted as well.
>
> Generally, I am not sure if/how much I have broken/I am
> breaking i386 support by all these changes.

I have not testing the i386 with libbsd with your recent changes. I will 
see what I can do. I did not notice the enables/disables had been changed.

>
> I believe only, hat it is the right direction.

I am sorry it is not clear to me what direction this is.

Chris


More information about the devel mailing list