Re: [PATCH 7/9] irqchip: add a RISC-V PLIC driver

From: Christoph Hellwig
Date: Tue Jul 31 2018 - 12:33:18 EST


On Fri, Jul 27, 2018 at 05:04:52PM -0700, Atish Patra wrote:
>> +#define MAX_DEVICES 1024
>> +#define MAX_CONTEXTS 15872
>> +
>
> Is there any way we can preserve some of the comments in the original patch
> about memory-mapped control registers or at least a reference where to find
> the register offset calculations?

The comments really do not help to describe a why or how. I'd love to
add a reference to a spec, but I could not find anything that looks
like an authoritative spec for the SiFive PLIC layout.

>> + u32 __iomem *reg = plic_regs + ENABLE_BASE + ctxid * ENABLE_PER_HART;
>
> shouldn't it be
> u32 __iomem *reg = plic_regs + ENABLE_BASE + ctxid * ENABLE_PER_HART +
> (hwirq / 32) * 4;

Yes, it should. Fixed.

>> + if (unlikely(irq <= 0)) {
>> + pr_warn_ratelimited("can't find mapping for hwirq %lu\n",
>> + hwirq);
>
> Ratlimiting the warning message here didn't help as ack_bad_irq() still
> print message still flooded the console without any useful info.

I've dropped the somewhat pointless ack_bad_irq call, thanks.