lkml.org 
[lkml]   [2009]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[Patch 10/12] GRU - fixes to grudump utility
    From: Jack Steiner <steiner@sgi.com>

    Minor fixes to the SGI GRU grudump facility:
    - fix address where user data is written
    - add gru number to data passed to user
    - indicate if context is locked


    Signed-off-by: Jack Steiner <steiner@sgi.com>

    ---
    drivers/misc/sgi-gru/grukdump.c | 8 ++++++--
    drivers/misc/sgi-gru/grulib.h | 4 ++--
    2 files changed, 8 insertions(+), 4 deletions(-)

    Index: linux/drivers/misc/sgi-gru/grukdump.c
    ===================================================================
    --- linux.orig/drivers/misc/sgi-gru/grukdump.c 2009-06-05 15:16:57.000000000 -0500
    +++ linux/drivers/misc/sgi-gru/grukdump.c 2009-06-05 15:20:36.000000000 -0500
    @@ -26,7 +26,7 @@

    static int gru_user_copy_handle(void __user **dp, void *s)
    {
    - if (copy_to_user(dp, s, GRU_HANDLE_BYTES))
    + if (copy_to_user(*dp, s, GRU_HANDLE_BYTES))
    return -1;
    *dp += GRU_HANDLE_BYTES;
    return 0;
    @@ -109,7 +109,7 @@ static int gru_dump_context(struct gru_s
    {
    struct gru_dump_context_header hdr;
    struct gru_dump_context_header __user *uhdr = ubuf;
    - struct gru_context_configuration_handle *cch;
    + struct gru_context_configuration_handle *cch, *ubufcch;
    struct gru_thread_state *gts;
    int try, cch_locked, cbrcnt = 0, dsrcnt = 0, bytes = 0, ret = 0;
    void *grubase;
    @@ -125,8 +125,11 @@ static int gru_dump_context(struct gru_s
    }

    ubuf += sizeof(hdr);
    + ubufcch = ubuf;
    if (gru_user_copy_handle(&ubuf, cch))
    goto fail;
    + if (cch_locked)
    + ubufcch->delresp = 0;
    bytes = sizeof(hdr) + GRU_CACHE_LINE_BYTES;

    if (cch_locked || !lock_cch) {
    @@ -155,6 +158,7 @@ static int gru_dump_context(struct gru_s
    return ret;

    hdr.magic = GRU_DUMP_MAGIC;
    + hdr.gid = gru->gs_gid;
    hdr.ctxnum = ctxnum;
    hdr.cbrcnt = cbrcnt;
    hdr.dsrcnt = dsrcnt;
    Index: linux/drivers/misc/sgi-gru/grulib.h
    ===================================================================
    --- linux.orig/drivers/misc/sgi-gru/grulib.h 2009-06-05 15:16:57.000000000 -0500
    +++ linux/drivers/misc/sgi-gru/grulib.h 2009-06-05 15:20:46.000000000 -0500
    @@ -120,7 +120,7 @@ struct gru_flush_tlb_req {
    enum {dcs_pid, dcs_gid};
    struct gru_dump_chiplet_state_req {
    unsigned int op;
    - int gid;
    + unsigned int gid;
    int ctxnum;
    char data_opt;
    char lock_cch;
    @@ -134,7 +134,7 @@ struct gru_dump_chiplet_state_req {
    #define GRU_DUMP_MAGIC 0x3474ab6c
    struct gru_dump_context_header {
    unsigned int magic;
    - unsigned char gid;
    + unsigned int gid;
    unsigned char ctxnum;
    unsigned char cbrcnt;
    unsigned char dsrcnt;


    \
     
     \ /
      Last update: 2009-06-08 19:25    [W:0.025 / U:5.476 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site