10 Oct, 2007

2 commits

  • Doing min_t(int, foo, INT_MAX) doesn't work correctly, because if foo
    is bigger than INT_MAX, then when treated as a signed integer, it will
    become negative and hence such an expression is just an elaborate NOP.

    Fix such cases in ehca to do min_t(unsigned, foo, INT_MAX) instead.
    This fixes negative reported values for max_cqe, max_pd and max_ah:

    Before:

    max_cqe: -64
    max_pd: -1
    max_ah: -1

    After:
    max_cqe: 2147483647
    max_pd: 2147483647
    max_ah: 2147483647

    Based on a bug report and fix from Anton Blanchard .

    Signed-off-by: Roland Dreier

    Roland Dreier
     
  • ...because -12 is easier to read than FFFFFFF4.

    Signed-off-by: Joachim Fenkes
    Signed-off-by: Roland Dreier

    Joachim Fenkes
     

01 Sep, 2007

1 commit

  • Fix ehca SRQ support so that IPoIB connected mode works:

    - Report max_srq > 0 if SRQ is supported
    - Report "last wqe reached" asynchronous event when base QP dies;
    this is required by the IB spec and IPoIB CM relies on receiving it
    when cleaning up.

    Signed-off-by: Joachim Fenkes
    Signed-off-by: Roland Dreier

    Joachim Fenkes
     

18 Jul, 2007

1 commit


10 Jul, 2007

2 commits


25 Apr, 2007

1 commit


17 Feb, 2007

1 commit


10 Jan, 2007

1 commit

  • Here is a patch for ehca to use proper flag, ie. GFP_ATOMIC
    resp. GFP_KERNEL, when calling get_zeroed_page() to prevent "Bug:
    scheduling while atomic...". This error does not cause a kernel panic
    but makes ipoib un-usable afterwards. It is reproducible on
    2.6.20-rc4 if one does ifconfig down during a flood ping test. I have
    not observed this error in earlier releases incl. 2.6.20-rc1.

    This error occurs when a qp event/irq is received and ehca event
    handler allocates a control block/page to obtain HCA error data block.
    Use of GFP_ATOMIC when in interrupt context prevents this issue.

    Signed-off-by Hoang-Nam Nguyen
    Signed-off-by: Roland Dreier

    Hoang-Nam Nguyen
     

10 Nov, 2006

1 commit

  • Assure 4K alignment for firmware control blocks in 64K page mode,
    because kzalloc()'s result address might not be 4K aligned if 64K
    pages are enabled. Thus, we introduce wrappers called
    ehca_{alloc,free}_fw_ctrlblock(), which use a slab cache for objects
    with 4K length and 4K alignment in order to alloc/free firmware
    control blocks in 64K page mode. In 4K page mode those wrappers just
    are defines of get_zeroed_page() and free_page().

    Signed-off-by: Hoang-Nam Nguyen
    Signed-off-by: Roland Dreier

    Hoang-Nam Nguyen
     

23 Sep, 2006

1 commit