lkml.org 
[lkml]   [2007]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] IB/ehca: Forward event client-reregister-required to registered clients
    Date
    This patch allows ehca to forward event client-reregister-required to
    registered clients. Such one event is generated by the switch eg. after
    its reboot.

    Signed-off-by: Hoang-Nam Nguyen <hnguyen@de.ibm.com>
    ---
    drivers/infiniband/hw/ehca/ehca_irq.c | 12 ++++++++++++
    1 files changed, 12 insertions(+), 0 deletions(-)

    diff --git a/drivers/infiniband/hw/ehca/ehca_irq.c b/drivers/infiniband/hw/ehca/ehca_irq.c
    index 3f617b2..4c734ec 100644
    --- a/drivers/infiniband/hw/ehca/ehca_irq.c
    +++ b/drivers/infiniband/hw/ehca/ehca_irq.c
    @@ -62,6 +62,7 @@
    #define NEQE_PORT_NUMBER EHCA_BMASK_IBM( 8, 15)
    #define NEQE_PORT_AVAILABILITY EHCA_BMASK_IBM(16, 16)
    #define NEQE_DISRUPTIVE EHCA_BMASK_IBM(16, 16)
    +#define NEQE_SPECIFIC_EVENT EHCA_BMASK_IBM(16, 23)

    #define ERROR_DATA_LENGTH EHCA_BMASK_IBM(52, 63)
    #define ERROR_DATA_TYPE EHCA_BMASK_IBM( 0, 7)
    @@ -354,6 +355,7 @@ static void parse_ec(struct ehca_shca *shca, u64 eqe)
    {
    u8 ec = EHCA_BMASK_GET(NEQE_EVENT_CODE, eqe);
    u8 port = EHCA_BMASK_GET(NEQE_PORT_NUMBER, eqe);
    + u8 spec_event;

    switch (ec) {
    case 0x30: /* port availability change */
    @@ -394,6 +396,16 @@ static void parse_ec(struct ehca_shca *shca, u64 eqe)
    case 0x33: /* trace stopped */
    ehca_err(&shca->ib_device, "Traced stopped.");
    break;
    + case 0x34: /* util async event */
    + spec_event = EHCA_BMASK_GET(NEQE_SPECIFIC_EVENT, eqe);
    + if (spec_event == 0x80) /* client reregister required */
    + dispatch_port_event(shca, port,
    + IB_EVENT_CLIENT_REREGISTER,
    + "client reregister req.");
    + else
    + ehca_warn(&shca->ib_device, "Unknown util async "
    + "event %x on port %x", spec_event, port);
    + break;
    default:
    ehca_err(&shca->ib_device, "Unknown event code: %x on %s.",
    ec, shca->ib_device.name);
    --
    1.5.2



    \
     
     \ /
      Last update: 2007-12-20 15:35    [W:0.021 / U:0.256 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site