• Roland Dreier's avatar
    IB/ehca: Fix clipping of device limits to INT_MAX · 76dea3bc
    Roland Dreier authored
    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 <anton@samba.org>.
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    76dea3bc
ehca_hca.c 10.8 KB