lkml.org 
[lkml]   [2020]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 28/30] xen/events: Reduce irq_info::spurious_cnt storage size
    To prepare for interrupt spreading reduce the storage size of
    irq_info::spurious_cnt to u8 so the required flag for the spreading logic
    will not increase the storage size.

    Protect the usage site against overruns.

    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Stefano Stabellini <sstabellini@kernel.org>
    Cc: xen-devel@lists.xenproject.org
    ---
    drivers/xen/events/events_base.c | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    --- a/drivers/xen/events/events_base.c
    +++ b/drivers/xen/events/events_base.c
    @@ -95,7 +95,7 @@ struct irq_info {
    struct list_head list;
    struct list_head eoi_list;
    short refcnt;
    - short spurious_cnt;
    + u8 spurious_cnt;
    enum xen_irq_type type; /* type */
    unsigned irq;
    evtchn_port_t evtchn; /* event channel */
    @@ -528,8 +528,10 @@ static void xen_irq_lateeoi_locked(struc
    return;

    if (spurious) {
    - if ((1 << info->spurious_cnt) < (HZ << 2))
    - info->spurious_cnt++;
    + if ((1 << info->spurious_cnt) < (HZ << 2)) {
    + if (info->spurious_cnt != 0xFF)
    + info->spurious_cnt++;
    + }
    if (info->spurious_cnt > 1) {
    delay = 1 << (info->spurious_cnt - 2);
    if (delay > HZ)
    \
     
     \ /
      Last update: 2020-12-10 20:47    [W:4.470 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site