On Tue, Jan 15, 2019 at 9:26 PM Christoph Hellwig <h...@infradead.org> wrote: > > On Thu, Dec 27, 2018 at 04:48:20PM +0530, Anup Patel wrote: > > We explicitly differentiate between PLIC handler and context because > > PLIC context is for given mode of HART whereas PLIC handler is per-CPU > > software construct meant for handling interrupts from a particular > > PLIC context. > > > > To achieve this differentiation, we rename "nr_handlers" to "nr_contexts" > > and "nr_mapped" to "nr_handlers" in plic_init(). > > Not sure what this differenciates that we previously didn't. As far > as I can tell it just is a slight naming cleanup.
There is a disconnect between PLIC documentation and PLIC driver. If we have 8 HARTs then we can have 16 PLIC contexts whereas PLIC handlers (SW construct) are always same as number of HARTs. In other words, there will be separate PLIC context for M-mode and S-mode of a HART. Linux runs in S-mode so we can only use PLIC context meant for S-mode. This means per-CPU handlers in PLIC driver only handle PLIC S-mode context of a HART. This patch makes PLIC driver more readable and matching PLIC HW documentation by differentiating between PLIC handler and PLIC context. Regards, Anup