Skip to content

Commit

Permalink
xive/p9: remove XIVE_INT_SAFETY_GAP
Browse files Browse the repository at this point in the history
It was used by bringup code only.

Using HW interrupt numbers in a high range was a way to check that HW
interrupt numbers (OPAL) and logical interrupt numbers (Linux) were
not getting mixed in the event queues.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
  • Loading branch information
legoater authored and oohal committed Nov 3, 2019
1 parent 5d0a413 commit ca46415
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions hw/xive.c
Expand Up @@ -36,15 +36,13 @@
#define XIVE_EXTRA_CHECK_INIT_CACHE
#undef XIVE_CHECK_MISROUTED_IPI
#define XIVE_CHECK_LOCKS
#define XIVE_INT_SAFETY_GAP 0x1000
#else
#undef XIVE_DEBUG_DUPLICATES
#undef XIVE_PERCPU_LOG
#undef XIVE_DEBUG_INIT_CACHE_UPDATES
#undef XIVE_EXTRA_CHECK_INIT_CACHE
#undef XIVE_CHECK_MISROUTED_IPI
#undef XIVE_CHECK_LOCKS
#define XIVE_INT_SAFETY_GAP 0x10
#endif

/*
Expand Down Expand Up @@ -151,6 +149,12 @@
*/
#define MAX_INT_ENTRIES (1 * 1024 * 1024)

/*
* First interrupt number, also the first logical interrupt number
* allocated by Linux
*/
#define XIVE_INT_FIRST 0x10

/* Corresponding direct table sizes */
#define SBE_SIZE (MAX_INT_ENTRIES / 4)
#define IVT_SIZE (MAX_INT_ENTRIES * 8)
Expand Down Expand Up @@ -2590,8 +2594,8 @@ static struct xive *init_one_xive(struct dt_node *np)
/* Make sure we never hand out "2" as it's reserved for XICS emulation
* IPI returns. Generally start handing out at 0x10
*/
if (x->int_ipi_top < XIVE_INT_SAFETY_GAP)
x->int_ipi_top = XIVE_INT_SAFETY_GAP;
if (x->int_ipi_top < XIVE_INT_FIRST)
x->int_ipi_top = XIVE_INT_FIRST;

/* Allocate a few bitmaps */
x->eq_map = zalloc(BITMAP_BYTES(MAX_EQ_COUNT >> 3));
Expand Down Expand Up @@ -3490,7 +3494,7 @@ static int64_t opal_xive_get_xirr(uint32_t *out_xirr, bool just_poll)
/* XXX Use "p" to select queue */
val = xive_read_eq(xs, just_poll);

if (val && val < XIVE_INT_SAFETY_GAP)
if (val && val < XIVE_INT_FIRST)
xive_cpu_err(c, "Bogus interrupt 0x%x received !\n", val);

/* Convert to magic IPI if needed */
Expand Down

0 comments on commit ca46415

Please sign in to comment.