diff --git a/src/lib/efrm/vi_resource_alloc.c b/src/lib/efrm/vi_resource_alloc.c --- a/src/lib/efrm/vi_resource_alloc.c +++ b/src/lib/efrm/vi_resource_alloc.c @@ -1432,6 +1432,15 @@ qso->q_len_entries = n_q_entries; qso->q_len_bytes = efrm_vi_q_bytes(virs, q_type, n_q_entries); + + /* This value should always be positive, but if we don't check for this + * explicitly, some compilers will assume that undefined logarithms + * can be taken in get_order() and will generate code that won't link. + * See bug63982. */ + EFRM_ASSERT(qso->q_len_bytes > 0); + if (qso->q_len_bytes <= 0) + return -EINVAL; + qso->q_len_page_order = get_order(qso->q_len_bytes); return 0; } --- a/src/include/onload/version.h +++ b/src/include/onload/version.h @@ -29,7 +29,7 @@ #ifndef ONLOAD_VERSION -# define ONLOAD_VERSION "201606" +# define ONLOAD_VERSION "201606-patch63982" #endif #define ONLOAD_PRODUCT "OpenOnload"