lkml.org 
[lkml]   [2010]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC][PATCH] irq_work: Don't ignore possible cmpxchg failure
    Date
    Although is very unlikely, it's better to make sure we're not
    letting this happen.

    This solves this compilation warning:

    kernel/irq_work.c: In function 'irq_work_run':
    kernel/irq_work.c:148: warning: value computed is not used

    Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
    Cc: Huang Ying <ying.huang@intel.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Kyle McMartin <kyle@mcmartin.ca>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    ---
    kernel/irq_work.c | 7 +++++--
    1 files changed, 5 insertions(+), 2 deletions(-)

    diff --git a/kernel/irq_work.c b/kernel/irq_work.c
    index f16763f..5da635b 100644
    --- a/kernel/irq_work.c
    +++ b/kernel/irq_work.c
    @@ -131,7 +131,7 @@ void irq_work_run(void)

    list = xchg(head, NULL);
    while (list != NULL) {
    - struct irq_work *entry = list;
    + struct irq_work *entry = list, *xchgres;

    list = irq_work_next(list);

    @@ -145,7 +145,10 @@ void irq_work_run(void)
    * Clear the BUSY bit and return to the free state if
    * no-one else claimed it meanwhile.
    */
    - cmpxchg(&entry->next, next_flags(NULL, IRQ_WORK_BUSY), NULL);
    + xchgres = cmpxchg(&entry->next,
    + next_flags(NULL, IRQ_WORK_BUSY),
    + NULL);
    + BUG_ON(unlikely(xchgres != next_flags(NULL, IRQ_WORK_BUSY)));
    }
    }
    EXPORT_SYMBOL_GPL(irq_work_run);
    --
    1.7.0.4


    \
     
     \ /
      Last update: 2010-11-16 17:35    [W:0.022 / U:0.500 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site