• Roland Dreier's avatar
    IB/mthca: Avoid integer overflow when allocating huge ICM table · c263ff65
    Roland Dreier authored
    In mthca_alloc_icm_table(), the number of entries to allocate for the
    table->icm array is computed by calculating obj_size * nobj and then
    dividing by MTHCA_TABLE_CHUNK_SIZE.  If nobj is really large, then
    obj_size * nobj may overflow and the division may get the wrong value
    (even a negative value).  Fix this by calculating the number of
    objects per chunk and then dividing nobj by this value instead.
    
    This patch allows crazy configurations such as loading ib_mthca with
    the module parameter num_mtt=33554432 to work properly.
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    c263ff65
mthca_memfree.c 17.8 KB