lkml.org 
[lkml]   [2012]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH EDAC] edac: allow specifying the error count with fake_inject
    Date
    In order to test if the error counters are properly incremented,
    add a way to specify how many errors were generated by a trace.

    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
    ---
    drivers/edac/edac_mc_sysfs.c | 15 +++++++++++++--
    include/linux/edac.h | 1 +
    2 files changed, 14 insertions(+), 2 deletions(-)

    diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
    index a2bf7e9..ed0bc07 100644
    --- a/drivers/edac/edac_mc_sysfs.c
    +++ b/drivers/edac/edac_mc_sysfs.c
    @@ -812,18 +812,24 @@ static ssize_t edac_fake_inject_write(struct file *file,
    struct device *dev = file->private_data;
    struct mem_ctl_info *mci = to_mci(dev);
    static enum hw_event_mc_err_type type;
    + u16 errcount = mci->fake_inject_count;
    +
    + if (!errcount)
    + errcount = 1;

    type = mci->fake_inject_ue ? HW_EVENT_ERR_UNCORRECTED
    : HW_EVENT_ERR_CORRECTED;

    printk(KERN_DEBUG
    - "Generating a %s fake error to %d.%d.%d to test core handling. NOTE: this won't test the driver-specific decoding logic.\n",
    + "Generating %d %s fake error%s to %d.%d.%d to test core handling. NOTE: this won't test the driver-specific decoding logic.\n",
    + errcount,
    (type == HW_EVENT_ERR_UNCORRECTED) ? "UE" : "CE",
    + errcount > 1 ? "s" : "",
    mci->fake_inject_layer[0],
    mci->fake_inject_layer[1],
    mci->fake_inject_layer[2]
    );
    - edac_mc_handle_error(type, mci, 1, 0, 0, 0,
    + edac_mc_handle_error(type, mci, errcount, 0, 0, 0,
    mci->fake_inject_layer[0],
    mci->fake_inject_layer[1],
    mci->fake_inject_layer[2],
    @@ -944,6 +950,11 @@ int edac_create_debug_nodes(struct mem_ctl_info *mci)
    if (!d)
    goto nomem;

    + d = debugfs_create_u16("fake_inject_count", S_IRUGO | S_IWUSR, parent,
    + &mci->fake_inject_count);
    + if (!d)
    + goto nomem;
    +
    d = debugfs_create_file("fake_inject", S_IWUSR, parent,
    &mci->dev,
    &debug_fake_inject_fops);
    diff --git a/include/linux/edac.h b/include/linux/edac.h
    index 6677af8..bab9f84 100644
    --- a/include/linux/edac.h
    +++ b/include/linux/edac.h
    @@ -665,6 +665,7 @@ struct mem_ctl_info {
    struct dentry *debugfs;
    u8 fake_inject_layer[EDAC_MAX_LAYERS];
    u32 fake_inject_ue;
    + u16 fake_inject_count;
    #endif
    };

    --
    1.7.10.2


    \
     
     \ /
      Last update: 2012-06-12 18:21    [W:0.025 / U:122.812 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site