IB/ehca: Fix ilog2() compile failure
authorKyle McMartin <kmcmartin@redhat.com>
Mon, 27 Feb 2012 22:02:56 +0000 (17:02 -0500)
committerRoland Dreier <roland@purestorage.com>
Mon, 5 Mar 2012 18:12:35 +0000 (10:12 -0800)
commitbd50f8924c684f84416fb58c11eb24619b041f25
tree1663476c9a64c9bc9afd900b79404523936aaea5
parent6aeaa48b0dd3a4261804be1cccaea46d82be3fcb
IB/ehca: Fix ilog2() compile failure

I'm getting compile failures building this driver, which I narrowed
down to the ilog2 call in ehca_get_max_hwpage_size...

    ERROR: ".____ilog2_NaN" [drivers/infiniband/hw/ehca/ib_ehca.ko]
    undefined!
    make[1]: *** [__modpost] Error 1
    make: *** [modules] Error 2

The use of shca->hca_cap_mr_pgsize is confusing the compiler, and
resulting in the __builtin_constant_p in ilog2 going insane.

I tried making it take the u32 pgsize as an argument and the expansion
of shca->_pgsize in the caller, but that failed as well.

With this patch in place, the driver compiles on my GCC 4.6.2 here.

Suggested-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Kyle McMartin <kmcmarti@redhat.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/ehca/ehca_mrmw.c